/* Reset page outer spacing to avoid gap below footer */
html, body { height: auto; margin: 0 !important; }
/* Ensure full-viewport layout so footer can stick to bottom on short pages */
html { min-height: 100%; }
body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}
/* Prevent minor sub-pixel overflows from shifting layout horizontally */
html, body { overflow-x: hidden; }
/* Footer will follow normal document flow */
/* Shorten hero height from full-screen preset */
.preset-fullscreen-text-on-background-v2-home-logo-nav-h1-image-text {
  height: auto !important;
  min-height: 420px !important;
}
.preset-fullscreen-text-on-background-v2-home-logo-nav-h1-image-text > .inner {
	padding-top: 24px !important;
	padding-bottom: 4px !important; /* reduce gap below hero */
}
/* Reduce generic spacer heights between hero and next section */
#ed-976602534.wv-spacer, #ed-976601486.wv-spacer { --spacer-size: 0 !important; margin-bottom: 6px !important; }
/* Reduce gap between hero and About */
#ed-976602534 { /* hero section */
	margin-bottom: 2px !important; /* minimum spacing after hero */
}
#ed-976602538 .inner + .ed-spacer .space { height: 0 !important; } /* fully collapse spacer below bubble */
#ed-976601486 { /* About wrapper section */
  margin-top: 4px !important;
}
/* About image now uses <img>, not a background holder */
/* Ensure About bubble has compact padding */
#about-1 {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}
@media (max-width: 767px) {
  #ed-976602534 { margin-bottom: 8px !important; }
  #about-1 { padding-top: 12px !important; padding-bottom: 12px !important; }
}
/* Future hardware animated background overlay */
#ed-976602534 .background {
	position: relative;
	overflow: hidden;
}
#ed-976602534 .background .future-hw-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 2; /* above background image holder, below text */
	pointer-events: none;
	mix-blend-mode: screen; /* visually fuse with underlying and 3D */
}
#ed-976602534 .background figure.ed-image {
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Remove/disable any hero background animation canvases */
#ed-976602534 .background .future-hw-canvas,
#ed-976602534 .background canvas {
	display: none !important;
}

/* Fully hide the hero background block (image + overlays) so the bubble is never covered */
#ed-976602534 .background,
#ed-976602534 .background::after,
#ed-976602534 .background::before,
#ed-976602534 .background .background-image-holder {
	display: none !important;
	content: none !important;
}

/* Slight darkening to improve text contrast over animation */
#ed-976602534 .background::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Lighten overlay to avoid greying out the hero too much */
	background: radial-gradient(ellipse at center, rgba(0,0,0,0.12), rgba(0,0,0,0.28));
	z-index: 4; /* below the hero bubble (z=20) */
	pointer-events: none;
}

/* Hero: square card for headline + paragraph over animation */
#ed-976602534 { position: relative; }

#ed-976602538 .inner {
	position: relative;
	display: inline-block;
	max-width: 820px;
	padding: 18px 22px;
	border-radius: 16px;
	/* Slightly lighter glass background for better brightness */
	background: rgba(20,20,20,0.22);
	box-shadow: 0 12px 28px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.35);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	z-index: 100; /* ensure on top of animation/background */
    isolation: isolate; /* create stacking context so z-index takes effect reliably */
    /* Lift the bubble over the background animation */
    margin-top: -72px; /* desktop default lift */
}
#ed-976602538 .inner h2,
#ed-976602538 .inner p { color: #fff !important; }
@media (max-width: 767px) {
	#ed-976602538 .inner { display: block; max-width: 100%; margin: -32px 12px 0; }
}

/* Tablet adjustments */
@media (min-width: 768px) and (max-width: 1024px) {
  #ed-976602538 .inner { margin-top: -56px; }
}

/* Global 3D background layer (was removed earlier) */

/* Services: turn boxes into glass bubbles */
.preset-boxes-v3-services2 .boxes-box > .inner {
		position: relative;
		/* Soft gray glass bubble so edges are visible over page gradient */
		background:
			radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
			rgba(18,18,22,0.10) !important;
		border: 1px solid rgba(255,255,255,0.18) !important;
		border-radius: 20px !important;
		box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important;
		backdrop-filter: saturate(140%) blur(8px);
		-webkit-backdrop-filter: saturate(140%) blur(8px);
		overflow: visible !important; /* allow icons/text to protrude if needed */
		transition: transform 220ms ease;
		/* Make cards a bit smaller and allow text to wrap naturally */
		padding: 12px 10px; 
		min-height: 160px; /* room for wrapped text without collisions */
}

/* Services grid: fallback layout if vendor grid is missing */
.preset-boxes-v3-services2 > .inner {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	/* tighten layout: ~60% less gap */
	gap: 16px !important; /* was 72px */
}
.preset-boxes-v3-services2 .boxes-box { width: 100% !important; }
.preset-boxes-v3-services2 .boxes-box > .inner { min-height: 180px; }
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner > .inner { padding: 8px 6px !important; }
@media (max-width: 575px) {
	.preset-boxes-v3-services2 > .inner { grid-template-columns: 1fr; }
}

/* Services: shrink bubble width by 20% and keep same inter-item gap */
.preset-boxes-v3-services2 .boxes-box {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important; /* center the bubble within the grid cell */
}
.preset-boxes-v3-services2 .boxes-box > .inner {
	width: 100% !important; /* fill grid cell for equal gutters */
}
@media (max-width: 639px) {
	/* On small screens, keep full width for readability */
	.preset-boxes-v3-services2 .boxes-box > .inner { width: 100% !important; }
}

/* Services grid: fallback layout if vendor grid is missing */
.preset-boxes-v3-services2 > .inner {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	/* tighten layout: ~60% less gap */
	gap: 16px !important; /* was 72px */
}
.preset-boxes-v3-services2 .boxes-box { width: 100% !important; }
.preset-boxes-v3-services2 .boxes-box > .inner { min-height: 180px; }

/* Services only: smaller min-height to match 50% size visual */
#ed-976601664 .preset-boxes-v3-services2 .boxes-box > .inner { min-height: 120px !important; }

/* Services only: ensure text/content is at least ~10px from bubble edges */
#ed-976601664 .preset-boxes-v3-services2 .boxes-box > .inner { padding: 10px !important; }
/* Also add symmetric padding to the inner content wrapper */
#ed-976601664 .preset-boxes-v3-services2 .boxes-box .boxes-box-inner > .inner { padding: 10px !important; }
/* Prevent long words from pushing to the edge */
#ed-976601664 .preset-boxes-v3-services2 .ed-text p { overflow-wrap: anywhere; word-break: break-word; margin-left: 0 !important; margin-right: 0 !important; }

/* Packages: independent layout matching Services look (own variables) */
#ed-hero-packages-grid { --pkg-gap: 48px; --pkg-col: 260px; --pkg-pad: 10px; }
#ed-hero-packages-grid > .inner {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--pkg-gap) !important;
	row-gap: var(--pkg-gap) !important;
	column-gap: var(--pkg-gap) !important;
	justify-content: center !important;
	max-width: calc(3 * var(--pkg-col) + 2 * var(--pkg-gap));
	margin-left: auto; margin-right: auto;
}
#ed-hero-packages-grid .boxes-box { box-sizing: border-box !important; flex: 0 0 var(--pkg-col) !important; padding: var(--pkg-pad) !important; }
#ed-hero-packages-grid .boxes-box { position: relative !important; z-index: 2; }
#ed-hero-packages-grid .boxes-box > .inner { width: 100% !important; margin: 0 !important; transform: none !important; min-height: 120px !important; position: relative !important; z-index: 10 !important; overflow: visible !important; mix-blend-mode: normal !important; background-blend-mode: normal !important; }

/* Packages: ensure bubbles are above any background gradients/overlays in this section */
#ed-hero-packages-grid { position: relative; isolation: isolate; z-index: 5; background: transparent !important; }
#ed-hero-packages-grid::before,
#ed-hero-packages-grid::after { display: none !important; content: none !important; }
#ed-hero-packages-grid .boxes-box > .inner::before {
	display: none !important;
	content: none !important;
	mix-blend-mode: normal !important;
}

/* Packages: prevent wrapper blends from tinting bubbles */
#ed-hero-packages-grid .boxes-box,
#ed-hero-packages-grid .boxes-box .boxes-box-inner,
#ed-hero-packages-grid .boxes-box .boxes-box-inner > .inner {
	mix-blend-mode: normal !important;
	background-blend-mode: normal !important;
	position: relative;
	z-index: 5;
}

/* Packages: make sure no default backgrounds leak through */
#ed-hero-packages-grid .boxes-box { background: transparent !important; }
#ed-hero-packages-grid .boxes-box > .inner { background: transparent !important; background-image: none !important; }
#ed-hero-packages-grid .boxes-box .boxes-box-inner,
#ed-hero-packages-grid .boxes-box .boxes-box-inner > .inner { background: transparent !important; background-image: none !important; }

/* Packages: per-bubble metallic tints via ::before overlay so color sits above any inner wrappers */
#ed-hero-packages-grid .boxes-box > .inner { background: transparent !important; }
#ed-hero-packages-grid .boxes-box .boxes-box-inner,
#ed-hero-packages-grid .boxes-box .boxes-box-inner > .inner { background: transparent !important; }
#ed-hero-packages-grid .boxes-box > .inner::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	border-radius: inherit !important;
	z-index: 0 !important;
	pointer-events: none !important;
	mix-blend-mode: normal !important;
	background-blend-mode: normal !important;
	display: block !important;
}
#ed-hero-packages-grid .boxes-box > .inner > * { position: relative !important; z-index: 2 !important; }
#ed-hero-packages-grid .boxes-box:nth-child(1) > .inner { box-shadow:
		0 0 0 0 rgba(0,255,170,0.00),
		0 0 44px 12px rgba(0,255,170,0.18),
		0 0 20px 4px rgba(0,255,170,0.10),
		0 0 40px 10px rgba(0,255,170,0.16),
		0 0 16px 2px rgba(0,255,170,0.08);
}
#ed-hero-packages-grid .boxes-box:nth-child(1) > .inner::before {
	--pkg-h: 155; /* green hue */
	background:
		linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.00) 40%),
		linear-gradient(135deg, hsla(var(--pkg-h), 72%, 52%, 0.32) 0%, hsla(var(--pkg-h), 72%, 38%, 0.22) 50%, hsla(var(--pkg-h), 72%, 60%, 0.32) 100%),
		repeating-linear-gradient(90deg, hsla(var(--pkg-h), 40%, 70%, 0.14) 0 1px, transparent 1px 5px),
		hsla(var(--pkg-h), 80%, 38%, 0.24),
		#0b0f13 !important; /* neutral base to isolate from page gradient */
	filter: saturate(1.2) brightness(0.98);
}
#ed-hero-packages-grid .boxes-box:nth-child(2) > .inner { box-shadow:
		0 0 0 0 rgba(255,160,0,0.00),
		0 0 44px 12px rgba(255,160,0,0.18),
		0 0 20px 4px rgba(255,160,0,0.10),
		0 0 40px 10px rgba(255,160,0,0.16),
		0 0 16px 2px rgba(255,160,0,0.08);
}
#ed-hero-packages-grid .boxes-box:nth-child(2) > .inner::before {
	--pkg-h: 30; /* orange hue */
	background:
		linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.00) 40%),
		linear-gradient(135deg, hsla(var(--pkg-h), 88%, 56%, 0.32) 0%, hsla(var(--pkg-h), 88%, 42%, 0.22) 50%, hsla(var(--pkg-h), 88%, 60%, 0.32) 100%),
		repeating-linear-gradient(90deg, hsla(var(--pkg-h), 45%, 70%, 0.14) 0 1px, transparent 1px 5px),
		hsla(var(--pkg-h), 90%, 50%, 0.24),
		#0b0f13 !important;
	filter: saturate(1.2) brightness(0.98);
}
#ed-hero-packages-grid .boxes-box:nth-child(3) > .inner { box-shadow:
		0 0 0 0 rgba(255,60,60,0.00),
		0 0 44px 12px rgba(255,60,60,0.18),
		0 0 20px 4px rgba(255,60,60,0.10),
		0 0 40px 10px rgba(255,60,60,0.16),
		0 0 16px 2px rgba(255,60,60,0.08);
}
#ed-hero-packages-grid .boxes-box:nth-child(3) > .inner::before {
	--pkg-h: 0; /* red hue */
	background:
		linear-gradient(180deg, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.00) 40%),
		linear-gradient(135deg, hsla(var(--pkg-h), 85%, 52%, 0.32) 0%, hsla(var(--pkg-h), 85%, 38%, 0.22) 50%, hsla(var(--pkg-h), 85%, 60%, 0.32) 100%),
		repeating-linear-gradient(90deg, hsla(var(--pkg-h), 40%, 70%, 0.14) 0 1px, transparent 1px 5px),
		hsla(var(--pkg-h), 85%, 46%, 0.24),
		#0b0f13 !important;
	filter: saturate(1.2) brightness(0.98);
}

/* Packages: colored heartbeat glow per bubble on hover */
#ed-hero-packages-grid .boxes-box > .inner::after { content: ""; position: absolute; inset: -2px; border-radius: inherit; pointer-events: none; opacity: 0; box-shadow: 0 0 0 rgba(0,0,0,0); z-index: 3; }
#ed-hero-packages-grid .boxes-box:nth-child(1) > .inner:hover::after { animation: heartbeat-glow-green 1300ms ease-in-out infinite !important; opacity: 1 !important; }
#ed-hero-packages-grid .boxes-box:nth-child(2) > .inner:hover::after { animation: heartbeat-glow-orange 1300ms ease-in-out infinite !important; opacity: 1 !important; }
#ed-hero-packages-grid .boxes-box:nth-child(3) > .inner:hover::after { animation: heartbeat-glow-red 1300ms ease-in-out infinite !important; opacity: 1 !important; }
@media (min-width: 640px) and (max-width: 1024px) {
	#ed-hero-packages-grid { --pkg-gap: 48px; --pkg-col: 260px; --pkg-pad: 8px; }
	#ed-hero-packages-grid > .inner { max-width: calc(2 * var(--pkg-col) + 1 * var(--pkg-gap)); }
	#ed-hero-packages-grid .boxes-box { flex: 0 0 var(--pkg-col) !important; }
}
@media (max-width: 639px) {
	#ed-hero-packages-grid { --pkg-gap: 12px; --pkg-pad: 6px; }
	#ed-hero-packages-grid > .inner { max-width: none; }
	#ed-hero-packages-grid .boxes-box { flex: 0 1 100% !important; }
	#ed-hero-packages-grid .boxes-box > .inner { width: 100% !important; }
}
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner > .inner { padding: 8px 6px !important; }
@media (max-width: 575px) {
	.preset-boxes-v3-services2 > .inner { grid-template-columns: 1fr; }
}

.preset-boxes-v3-services2 .boxes-box > .inner::before { display: none !important; }

/* Override the generic rule above: allow ::before overlays in the Packages grid */
#ed-hero-packages-grid .boxes-box > .inner::before { display: block !important; }

.preset-boxes-v3-services2 .boxes-box > .inner:hover { 
	/* Avoid vertical shift that can collide with previous/next rows */
	transform: none !important; 
	box-shadow: 0 16px 36px rgba(0,0,0,0.22) !important; 
}

/* Services: force 3-2-1 responsive grid and prevent clipping */
@media (min-width: 1025px) {
	.preset-boxes-v3-services2 > .inner { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px !important; } /* was 40px */
}
@media (min-width: 640px) and (max-width: 1024px) {
	.preset-boxes-v3-services2 > .inner { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px !important; } /* was 28px */
}
@media (max-width: 639px) {
	.preset-boxes-v3-services2 > .inner { display: grid !important; grid-template-columns: 1fr; gap: 8px !important; } /* was 20px */
}

.preset-boxes-v3-services2 .boxes-box,
.preset-boxes-v3-services2 .boxes-box > .inner,
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner,
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner > .inner {
	overflow: visible !important;
	clip-path: none !important;
	-webkit-clip-path: none !important;
	-webkit-mask: none !important;
	mask: none !important;
}

/* Avoid forced fixed heights that cut content */
.preset-boxes-v3-services2 .boxes-box > .inner { min-height: auto !important; }

/* Slightly scale down service bubbles to make them feel lighter */
/* Services bubbles: keep original size (do not scale) */
.preset-boxes-v3-services2 .boxes-box > .inner {
	transform: none !important;
	transform-origin: center center !important;
}
.preset-boxes-v3-services2 .boxes-box > .inner:hover {
	transform: none !important; /* no hover jump */
}

/* Ensure content sits above bubble background */
.preset-boxes-v3-services2 .boxes-box > .inner > * { position: relative; z-index: 2; }
.preset-boxes-v3-services2 .boxes-box .boxes-icon { z-index: 2; }
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner { background: transparent !important; }

/* Services icons: spin on hover */
.preset-boxes-v3-services2 .boxes-box .boxes-icon svg {
	transition: transform 400ms ease;
	transform-origin: 50% 50%;
	will-change: transform;
}
.preset-boxes-v3-services2 .boxes-box:hover .boxes-icon svg { transform: rotate(360deg); }

/* Services: white pulsating glow (heartbeat) on hover */
.preset-boxes-v3-services2 .boxes-box > .inner::after {
	content: "";
	position: absolute;
	inset: -2px; /* tiny overspill so glow isn't clipped by border */
	border-radius: inherit;
	pointer-events: none;
	opacity: 0;
	box-shadow: 0 0 0 rgba(255,255,255,0);
	will-change: box-shadow, transform, opacity;
}
.preset-boxes-v3-services2 .boxes-box > .inner:hover::after {
	opacity: 1;
	animation: heartbeat-glow 1300ms ease-in-out infinite;
}

@keyframes heartbeat-glow {
	0%   { box-shadow: 0 0 0 0 rgba(255,255,255,0.0); }
	10%  { box-shadow: 0 0 44px 12px rgba(255,255,255,0.45); }
	20%  { box-shadow: 0 0 20px 4px rgba(255,255,255,0.28); }
	30%  { box-shadow: 0 0 40px 10px rgba(255,255,255,0.40); }
	40%  { box-shadow: 0 0 16px 2px rgba(255,255,255,0.22); }
	60%  { box-shadow: 0 0 0 0 rgba(255,255,255,0.0); }
	100% { box-shadow: 0 0 0 0 rgba(255,255,255,0.0); }
}

/* Small note line under package titles (reverted; no longer used) */

/* DevTools overlay removed: related styles deleted */

/* Ensure Services bottom-row glow is not clipped and has equal bottom breathing room */
.preset-boxes-v3-services2 { overflow: visible !important; padding-bottom: 36px !important; }
#ed-976601670 { overflow: visible !important; }

/* Packages heading: force white text */
#packages .ed-headline h2,
#packages h2 { color: #ffffff !important; }

/* Services only: scale cards to 75% uniformly and offset with negative margins so visible gaps don't grow */
/* Services only: use flex layout with real smaller cards and tight gaps (no transforms) */
#ed-976601664 { --svc-gap: 48px; --svc-col: 260px; --svc-pad: 10px; }
#ed-976601664 .preset-boxes-v3-services2 > .inner {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--svc-gap) !important;
	row-gap: var(--svc-gap) !important;
	column-gap: var(--svc-gap) !important;
	justify-content: center !important;
	max-width: calc(3 * var(--svc-col) + 2 * var(--svc-gap));
	margin-left: auto; margin-right: auto;
}

/* Ensure all six service boxes render; override any theme limits hiding items beyond the fourth */
#ed-976601664 .preset-boxes-v3-services2 .boxes-box { display: flex !important; visibility: visible !important; opacity: 1 !important; }
#ed-976601664 .preset-boxes-v3-services2 .boxes-box:nth-child(n+5) { display: flex !important; }

#ed-976601664 .preset-boxes-v3-services2 .boxes-box {
	box-sizing: border-box !important;
	/* Exactly 3 columns on desktop, clustered at center */
	flex: 0 0 var(--svc-col) !important;
	padding: var(--svc-pad) !important; /* space for glow inside the cell */
}
#ed-976601664 .preset-boxes-v3-services2 .boxes-box > .inner {
    width: 100% !important;
    margin: 0 !important;
    transform: none !important;
}
@media (min-width: 640px) and (max-width: 1024px) {
	#ed-976601664 { --svc-gap: 48px; --svc-col: 260px; --svc-pad: 8px; }
	#ed-976601664 .preset-boxes-v3-services2 > .inner { max-width: calc(2 * var(--svc-col) + 1 * var(--svc-gap)); }
	#ed-976601664 .preset-boxes-v3-services2 .boxes-box { flex: 0 0 var(--svc-col) !important; }
}
@media (max-width: 639px) {
	#ed-976601664 { --svc-gap: 4px; --svc-pad: 6px; }
	#ed-976601664 .preset-boxes-v3-services2 > .inner { max-width: none; }
	#ed-976601664 .preset-boxes-v3-services2 .boxes-box { flex: 0 1 100% !important; } /* 1 column */
	#ed-976601664 .preset-boxes-v3-services2 .boxes-box > .inner { width: 100% !important; }
}

/* Services/Packages: equal gaps (larger to avoid any overlap) */
.preset-boxes-v3-services2 > .inner { row-gap: 24px !important; column-gap: 24px !important; }
@media (min-width: 640px) and (max-width: 1024px) {
	.preset-boxes-v3-services2 > .inner { row-gap: 16px !important; column-gap: 16px !important; }
}
@media (max-width: 639px) {
	.preset-boxes-v3-services2 > .inner { row-gap: 12px !important; column-gap: 12px !important; }
}


/* Services: readable text inside bubbles (dark text fallback) */
/* Keep service text readable; let theme colors shine if present */
.preset-boxes-v3-services2 .boxes-box > .inner h3,
.preset-boxes-v3-services2 .boxes-box > .inner p,
.preset-boxes-v3-services2 .boxes-box > .inner li { color: inherit; }

/* Enlarge 'Our Services' heading */
#ed-976601666 h2 { font-size: 2em !important; line-height: 1.1; text-align: center !important; }

/* Legacy pricing section styles removed; section will be removed from HTML. */

/* Pricing-related wrapper overrides removed */

/* Pricing title rule removed */

/* Pricing centering rules removed */

/* Pricing wrapper flattening rules removed */

/* Pricing inner centering rules removed */

/* Pricing background removal rules removed */

/* Pricing grid rules removed */

/* Pricing spacing rules removed */

/* Pricing bubble glass styles removed */
/* Show original builder head/content (was hidden earlier); keep them visible and stylable */
#ed-976601962 .pricing-boxes-head, #ed-976601962 .pricing-boxes-content,
#ed-976601982 .pricing_boxes-head, #ed-976601982 .pricing-boxes-content,
#ed-976602002 .pricing-boxes-head, #ed-976602002 .pricing-boxes-content { display: block !important; }

/* New simple centered pricing content */
.simple-pricing { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; width: 100%; padding: 12px; color: #fff; }
.simple-pricing .sp-title { font-weight: 600; }
.simple-pricing .sp-price { font-size: 1.05rem; }
.simple-pricing .sp-features { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.simple-pricing .sp-cta .button { display: inline-block; margin: 8px auto 0; }

/* Left (green), Middle (orange), Right (red) bubble tint overlays */
#ed-976601962 > .inner::before,
#ed-976601982 > .inner::before,
#ed-976602002 > .inner::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	border-radius: inherit; /* follow the rounded bubble edge */
	/* Make color tints look more intense without increasing coverage */
	filter: saturate(300%) brightness(1.15);
}
/* Colored heartbeat glow for pricing bubbles */
#ed-976601962 > .inner::after,
#ed-976601982 > .inner::after,
#ed-976602002 > .inner::after {
		content: "";
		position: absolute;
		inset: -3px;
		border-radius: inherit;
		pointer-events: none;
		opacity: 0;
}
#ed-976601962 > .inner:hover::after { animation: heartbeat-glow-green 1300ms ease-in-out infinite; opacity: 1; }
#ed-976601982 > .inner:hover::after { animation: heartbeat-glow-orange 1300ms ease-in-out infinite; opacity: 1; }
#ed-976602002 > .inner:hover::after { animation: heartbeat-glow-red 1300ms ease-in-out infinite; opacity: 1; }

@keyframes heartbeat-glow-green {
	0%   { box-shadow: 0 0 0 0 rgba(0,255,170,0.00); }
	10%  { box-shadow: 0 0 44px 12px rgba(0,255,170,0.45); }
	20%  { box-shadow: 0 0 20px 4px rgba(0,255,170,0.28); }
	30%  { box-shadow: 0 0 40px 10px rgba(0,255,170,0.40); }
	40%  { box-shadow: 0 0 16px 2px rgba(0,255,170,0.22); }
	60%  { box-shadow: 0 0 0 0 rgba(0,255,170,0.00); }
	100% { box-shadow: 0 0 0 0 rgba(0,255,170,0.00); }
}
@keyframes heartbeat-glow-orange {
	0%   { box-shadow: 0 0 0 0 rgba(255,160,0,0.00); }
	10%  { box-shadow: 0 0 44px 12px rgba(255,160,0,0.45); }
	20%  { box-shadow: 0 0 20px 4px rgba(255,160,0,0.28); }
	30%  { box-shadow: 0 0 40px 10px rgba(255,160,0,0.40); }
	40%  { box-shadow: 0 0 16px 2px rgba(255,160,0,0.22); }
	60%  { box-shadow: 0 0 0 0 rgba(255,160,0,0.00); }
	100% { box-shadow: 0 0 0 0 rgba(255,160,0,0.00); }
}
@keyframes heartbeat-glow-red {
	0%   { box-shadow: 0 0 0 0 rgba(255,60,60,0.00); }
	10%  { box-shadow: 0 0 44px 12px rgba(255,60,60,0.45); }
	20%  { box-shadow: 0 0 20px 4px rgba(255,60,60,0.28); }
	30%  { box-shadow: 0 0 40px 10px rgba(255,60,60,0.40); }
	40%  { box-shadow: 0 0 16px 2px rgba(255,60,60,0.22); }
	60%  { box-shadow: 0 0 0 0 rgba(255,60,60,0.00); }
	100% { box-shadow: 0 0 0 0 rgba(255,60,60,0.00); }
}
/* Pricing overlays: half the intensity of the gradient tints */
/* Pricing overlays: 3x color intensity via filter above, but 1/2 opacity in the fills */
#ed-976601962 > .inner::before { /* green */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(0,255,170,0.125) 0%, rgba(0,255,170,0) 45%),
		rgba(0,255,140,0.03);
}
#ed-976601982 > .inner::before { /* orange */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,160,0,0.14) 0%, rgba(255,160,0,0) 45%),
		rgba(255,160,0,0.03);
}
#ed-976602002 > .inner::before { /* red */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,60,60,0.14) 0%, rgba(255,60,60,0) 45%),
		rgba(255,60,60,0.03);
}

/* Clip inner visuals to rounded card to prevent square artifact */
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner { overflow: hidden !important; }

/* Remove any parent pseudo-elements that may draw square backgrounds */
.preset-pricing-boxes-v3-default .pricing-boxes-box::before,
.preset-pricing-boxes-v3-default .pricing-boxes-box::after { content: none !important; display: none !important; }

/* Spark canvas over the red pricing bubble */
#ed-976602002 { position: relative; }
#ed-976602002 .spark-canvas {
    position: absolute; inset: 0;
    pointer-events: none;
    z-index: 3;
    mix-blend-mode: screen;
}

/* Ensure pricing texts stay white */
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner,
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner a,
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner h3,
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner p,
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner li { color: #fff !important; }

/* Pricing highlight: remove any black/colored background behind the "Free" word */
.preset-pricing-boxes-v3-default .pricing-boxes-highlight span,
.preset-pricing-boxes-v3-default .pricing-boxes-highlight mark,
#ed-976601972 span,
#ed-976601972 mark {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

/* Remove any default white backgrounds on the card wrappers */
.preset-boxes-v3-services2 .boxes-box { background: transparent !important; }
.preset-boxes-v3-services2 .boxes-box > .inner .inner { background: transparent !important; }

/* Lift the icon so it sticks out of the bubble's top edge */
.preset-boxes-v3-services2 .boxes-box .boxes-icon {
	position: relative;
	z-index: 6;
	/* Remove upward lift to avoid overlapping with previous row */
	transform: none !important;
	background: transparent !important;
	/* Center the icon above the title for consistency */
	text-align: center !important;
	margin-left: 0 !important;
	margin-bottom: 6px !important;
}
.preset-boxes-v3-services2 .boxes-box .boxes-icon svg {
	/* Prevent giant SVGs if vendor sizing is missing */
	width: 24px !important;
	height: 24px !important;
	filter: drop-shadow(0 4px 8px rgba(0,0,0,0.25));
}
/* Make sure service icons are white on glass background */
.preset-boxes-v3-services2 .boxes-box .boxes-icon svg,
.preset-boxes-v3-services2 .boxes-box .boxes-icon svg path {
	fill: #ffffff !important;
	stroke: none !important;
}

/* Ensure headline wrappers are centered and bold titles emphasized */
.preset-boxes-v3-services2 .boxes-box .ed-headline,
.preset-boxes-v3-services2 .boxes-box .ed-headline h3 { 
	text-align: center !important; 
}
/* Extra hardening for bold first word/titles */
.preset-boxes-v3-services2 .boxes-box .ed-headline h3 strong:first-child { 
	display: block; text-align: center !important; 
}

/* Wrap long words to keep cards compact without overflow */
.preset-boxes-v3-services2 .boxes-box > .inner p,
.preset-boxes-v3-services2 .boxes-box > .inner li,
.preset-boxes-v3-services2 .boxes-box > .inner h3 {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Keep icons centered on small screens for balance */
@media (max-width: 767px) {
	.preset-boxes-v3-services2 .boxes-box .boxes-icon {
		margin-left: 0 !important;
		text-align: center !important;
	}
}

/* Center and emphasize the top title in each service bubble */
.preset-boxes-v3-services2 .boxes-box > .inner h3,
.preset-boxes-v3-services2 .boxes-box > .inner h3 strong,
.preset-boxes-v3-services2 .boxes-box .boxes-box-inner > .inner > .ed-text > strong:first-child {
	text-align: center !important;
	font-weight: 700 !important;
	display: block;
}

/* Lift main content above backgrounds (global 3D removed) */
body > * {
	position: relative;
	z-index: 10;
}

/* Header bubble styling (top menu) */
#home-2-menu {
	position: relative;
	border-radius: 24px;
	/* Neutral glass bubble (no blue fill) so it overlaps/fuses with background animations */
	background:
		/* soft cyan/blue tint */
		radial-gradient(120% 180% at 20% -20%, rgba(0,146,255,0.22) 0%, rgba(0,146,255,0) 60%),
		linear-gradient(180deg, rgba(0,120,255,0.06), rgba(0,200,255,0.03)),
		/* neutral highlight */
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 60%),
		rgba(255,255,255,0.06);
	box-shadow: 0 10px 30px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.35);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	/* Confine visuals within the rounded bubble */
	overflow: hidden; /* confine flames and content inside the bubble */
}

/* Add breathing room before the brand text inside the header bubble */
#home-2-menu { padding-left: 10px !important; }

/* Hide legacy hero block and the interim install card */
#ed-976602534, /* old hero section */
#ed-hero-install-card { display: none !important; }

/* Welcome bubble (new section above About) */
#ed-hero-welcome-card { margin: 7px auto 8px !important; }
#ed-hero-welcome-card > .inner { display: flex; justify-content: center; align-items: center; }
#ed-hero-welcome-card .welcome-bubble {
	max-width: 820px; width: 100%;
	margin-left: auto; margin-right: auto;
	border-radius: 16px;
	padding: 18px 26px 18px 30px; /* more left padding for space before brand text */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
		rgba(18,18,22,0.10);
	border: 1px solid rgba(255,255,255,0.18);
	box-shadow: 0 12px 28px rgba(0,0,0,0.18);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
}
#ed-hero-welcome-card .welcome-bubble h2,
#ed-hero-welcome-card .welcome-bubble p { color: #fff !important; text-align: center; }

/* Fallback: ensure header inner uses flex layout if theme CSS fails */
#ed-976602414 > .inner {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px !important;
}

/* Make header slimmer (desktop and tablet) */
#home-2-menu {
	padding-top: 3px !important;
	padding-bottom: 3px !important;
}
#home-2-menu { padding-right: 0 !important; }
#ed-976602424 { margin-left: auto !important; }
#home-2-menu h1 { margin: 0 !important; color: #ffffff !important; }
#ed-976602416 h1,
#ed-976602416 h1 span,
#ed-976602416 a,
#home-2-menu .ed-logo h1,
#home-2-menu .ed-logo h1 span,
#home-2-menu .ed-logo a { color: #ffffff !important; }
#home-2-menu .inner { min-height: 28px !important; }

/* Fallback base fonts to avoid raw UA defaults */
body {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	/* Page gradient background, half-intensity via alpha and soft mix */
	background:
		linear-gradient(180deg, rgba(25,229,155,0.5) 0%, rgba(0,183,255,0.5) 50%, rgba(155,92,255,0.5) 100%) fixed,
		#0b0f13; /* base color */
	background-blend-mode: screen; /* soften impact */
}

/* Header: remove phone icon entirely */
#ed-976602420 { display: none !important; }

/* Header menu: fallback layout if theme CSS is not applied */
#ed-976602424 ul.menu-level-0 {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	gap: 18px !important;
	align-items: center !important;
}
#ed-976602424 ul.menu-level-0 > li { list-style: none !important; }
#ed-976602424 ul.menu-level-0 > li > a {
	text-decoration: none !important;
	font-weight: 700 !important;
}
#ed-976602424 ul.menu-level-0 > li > a:hover { text-decoration: underline !important; }

/* Header menu: make links look like colorful bubble buttons (not plain hyperlinks) */
#home-2-menu #ed-976602424 ul.menu-level-0 > li > a {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 14px !important;
	border-radius: 999px !important; /* pill */
	border: 1px solid rgba(255,255,255,0.35) !important;
	box-shadow: 0 6px 16px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.55) !important;
	text-decoration: none !important;
	background-size: 200% 100% !important;
	background-position: 0% 50% !important;
	transition: transform 160ms ease, box-shadow 200ms ease, background-position 220ms ease, filter 200ms ease !important;
}
/* Per-item shaded gradients and text colors */
#home-2-menu #ed-976602424 ul.menu-level-0 > li:nth-child(1) > a { /* Home */
	background: linear-gradient(135deg, #aef7ff 0%, #7bdcff 50%, #b1a0ff 100%) !important;
	color: #0b0f13 !important;
}
#home-2-menu #ed-976602424 ul.menu-level-0 > li:nth-child(2) > a { /* About Us */
	background: linear-gradient(135deg, #b7ffcf 0%, #7ff0c8 50%, #b1d6ff 100%) !important;
	color: #0b0f13 !important;
}
#home-2-menu #ed-976602424 ul.menu-level-0 > li:nth-child(3) > a { /* Services */
	background: linear-gradient(135deg, #ffe0a6 0%, #ffc073 50%, #ffd0b6 100%) !important;
	color: #0b0f13 !important;
}
#home-2-menu #ed-976602424 ul.menu-level-0 > li:nth-child(4) > a { /* Packages */
	background: linear-gradient(135deg, #d6c5ff 0%, #b499ff 50%, #8f7bff 100%) !important;
	color: #0b0f13 !important;
}
/* Hover/active/focus styles */
#home-2-menu #ed-976602424 ul.menu-level-0 > li > a:hover {
	text-decoration: none !important;
	transform: translateY(-1px) scale(1.02);
	box-shadow: 0 10px 22px rgba(0,0,0,0.24), inset 0 1px 0 rgba(255,255,255,0.65) !important;
	background-position: 100% 50% !important;
}
#home-2-menu #ed-976602424 ul.menu-level-0 > li > a:active {
	transform: translateY(0) scale(0.99);
}
#home-2-menu #ed-976602424 ul.menu-level-0 > li > a:focus-visible {
	outline: 2px solid #00d6ff !important;
	outline-offset: 2px !important;
}

/* Ensure all links in header adopt fallback color when theme CSS is absent */
#home-2-menu a { color: #0b0f13 !important; }

/* Center common container inners and add padding (fallback) */
.ed-container > .inner {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;   /* avoid pushing content visually to the right on wide screens */
	padding-right: 0;
}
@media (max-width: 767px) {
	.ed-container > .inner { padding-left: 12px; padding-right: 12px; }
}

/* Prevent inline SVGs from overflowing when base CSS is missing */
svg { max-width: 100%; height: auto; }

/* Generic fallback for any ed-menu lists */
.ed-menu ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	gap: 18px !important;
	align-items: center !important;
}
.ed-menu ul li { list-style: none !important; }

/* Sheen highlight on the bubble */
#home-2-menu::before {
	content: "";
	position: absolute;
	top: -20px; left: 50%; transform: translateX(-50%);
	width: 30%; height: 60px;
	background: radial-gradient(60% 100% at 50% 50%, rgba(255,255,255,0.5), rgba(255,255,255,0));
	filter: blur(6px);
	pointer-events: none;
}

/* Green flame canvas under the header, rising into it (anchored to header) */
/* Header scrolls with the page (non-sticky) */
.menu-wrapper {
	position: relative;
	z-index: 9999; /* maintain high layer when needed (e.g., mobile menu open) */
}
#home-2-menu { position: relative; }
.menu-wrapper .menu-flames {
	position: absolute; /* inside header so it doesn't move on scroll */
	inset: 0; /* fill full header bubble area */
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0; /* stay under header content; JS lifts children */
	mix-blend-mode: screen; /* fuse neon greens nicely */
	border-radius: inherit; /* clip to bubble rounding */
}

/* Prevent blend layers from affecting the header by isolating stacking context */
.menu-wrapper { isolation: isolate; }

/* Ensure header container is above its local decorative canvases; don't cap children z-index */
#home-2-menu { position: relative; z-index: 5; }

/* Mobile: avoid excessive header bubble height when menu is closed */
@media (max-width: 767px) {
	#home-2-menu {
		max-height: 72px;
		padding-top: 8px !important;
		padding-bottom: 8px !important;
	}
	#home-2-menu > .inner { min-height: 0 !important; }
	body.menu-open #home-2-menu { max-height: none; overflow: visible; }
}

/* Mobile: force opened menu to be on top of everything */
@media (max-width: 767px) {
	.menu-wrapper, #home-2-menu { z-index: 99999; }
	/* Cover common menu containers within the header */
	#home-2-menu .inner,
	#home-2-menu nav,
	#home-2-menu .menu,
	#home-2-menu [class*="menu"],
	#home-2-menu [class*="nav"] {
		position: relative;
		z-index: 100000;
	}
}

/* When menu is opened, ensure any global effect canvas stays below the menu */
body.open-menu #click-puff-canvas,
body.open #click-puff-canvas {
	z-index: 1 !important; /* lower than header/menu */
}

/* Guard against builder sticky class forcing fixed positioning */
.menu-wrapper.sticky {
	position: relative !important;
	top: auto !important;
}

/* Footer flames canvas */
.footer { position: relative; overflow: visible; isolation: isolate; }
#footer-3 { overflow: hidden; } /* confine footer flames to bubble */
#footer-3 .footer-flames {
	position: absolute;
	left: 0; right: 0;
	bottom: 0; /* fully inside footer bubble */
	height: 80px; /* doubled */
	pointer-events: none;
	z-index: 6; /* above bubble overlay, under text */
	mix-blend-mode: screen;
	background: transparent !important; /* ensure no black fill */
}

/* Keep footer content above flames without affecting the flames canvas */
#footer-3 { position: relative; text-align: center; padding: 10px 12px !important; display: flex; flex-direction: column; gap: 6px; align-items: center; justify-content: center; }
#footer-3 > * { position: relative; z-index: 7; }
#footer-3 .ed-logo, #footer-3 .ed-text, #footer-3 .ed-text p { margin: 0 auto !important; text-align: center !important; }

/* Sticky, centered footer layout */
#ed-976601840 { /* footer wrapper */
	margin-top: auto !important; /* push footer to bottom when content is short */
	width: 100%;
	display: block;
	box-sizing: border-box;
	padding-left: 16px;
	padding-right: 16px;
	padding-bottom: 0 !important;
	position: sticky !important; /* sticky fallback if flow collapses */
	bottom: 0 !important;
	z-index: 10000 !important; /* ensure above overlays like click canvas */
}
#ed-976601840 > .inner { /* remove vertical padding that creates gap above/below footer */
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
#footer-3 { /* footer inner bubble */
	width: 100%;
	max-width: 1200px; /* match site content width */
	margin-left: auto;
	margin-right: auto; /* center horizontally */
	box-sizing: border-box;
	position: relative !important;
	z-index: 10001 !important; /* above wrapper visuals and overlays */
	background: rgba(10, 14, 18, 0.35) !important; /* subtle dark glass if overlay fails */
}

/* Demote global click overlay canvas behind content */
#click-puff-canvas { z-index: 1 !important; }
/* Remove any top margin above the footer bubble */
#footer-3 { margin-top: 0 !important; }

/* Final clamp: absolutely no gap below the footer */
html, body,
#ed-976601840, #ed-976601840 > .inner,
#footer-3 { margin-bottom: 0 !important; padding-bottom: 0 !important; }
#ed-976601840::before, #ed-976601840::after { display: none !important; content: none !important; }

/* Alternate footer (inserted after Packages) */
#alt-footer-wrap { margin: 16px auto 0 !important; padding: 0 16px !important; }
#footer-alt { position: relative; text-align: center; padding: 10px 12px !important; display: flex; flex-direction: column; gap: 6px; align-items: center; justify-content: center; min-height: 80px; color: #fff !important; background:
	radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
	rgba(10,14,18,0.35) !important; border: 1px solid rgba(255,255,255,0.18) !important; border-radius: 16px; box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important; backdrop-filter: saturate(140%) blur(8px); -webkit-backdrop-filter: saturate(140%) blur(8px); }
#footer-alt a { color: #fff !important; text-decoration: none; }
#footer-alt a:hover { text-decoration: underline; }

/* Background-holder not used for About image anymore */

/* Our Services: force all text/icons to white for readability */
#services-2, #services-2 p, #services-2 h2, #services-2 h3, #services-2 li,
#services-2 .ed-text, #services-2 .ed-text p { color: #ffffff !important; }
#services-2 .boxes-icon svg, #services-2 .boxes-icon svg path { fill: #ffffff !important; stroke: none !important; }

/* Pricing: apply glass bubble style similar to services */
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner {
	position: relative;
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
		rgba(18,18,22,0.10) !important;
	border: 1px solid rgba(255,255,255,0.18) !important;
	border-radius: 20px !important;
	box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important;
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	overflow: visible !important;
}

/* Pricing (glow variant): pulsating glow like services vibe */
.preset-pricing-boxes-v3-default .pricing-boxes-box.glow > .inner::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 24px;
	box-shadow:
		0 0 0 0 rgba(0, 214, 255, 0.22),
		0 0 40px 4px rgba(147, 112, 255, 0.20);
	animation: pulseGlow 2.8s ease-in-out infinite;
	pointer-events: none;
}

@keyframes pulseGlow {
	0%, 100% { opacity: 0.8; filter: saturate(110%); }
	50% { opacity: 1; box-shadow: 0 0 0 0 rgba(0, 214, 255, 0.32), 0 0 64px 10px rgba(147,112,255,0.35); filter: saturate(140%); }
}

/* Independent design for injected pricing feature bubbles */
.preset-pricing-boxes-v3-default .pricing-feature-bubble > .inner {
	position: relative;
	border-radius: 20px !important;
	border: 1px solid rgba(255,255,255,0.18) !important;
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
		rgba(18,18,22,0.10) !important;
	box-shadow: 0 10px 24px rgba(0,0,0,0.18) !important;
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	color: #fff; overflow: visible !important;
}
.preset-pricing-boxes-v3-default .pricing-feature-bubble > .inner::after {
	content: ""; position: absolute; inset: -6px; border-radius: 24px; pointer-events: none;
	box-shadow: 0 0 0 0 rgba(0, 214, 255, 0.22), 0 0 40px 4px rgba(147, 112, 255, 0.20);
	animation: pulseGlow 2.8s ease-in-out infinite;
}
/* Stop star rotation on feature-icon specifically (independent design) */
.preset-pricing-boxes-v3-default .pricing-feature-bubble .feature-icon svg { animation: none !important; }
/* Ensure the icon adopts currentColor (white) */
.preset-pricing-boxes-v3-default .pricing-feature-bubble .feature-icon svg,
.preset-pricing-boxes-v3-default .pricing-feature-bubble .feature-icon svg * {
	color: #ffffff !important; fill: currentColor; stroke: none;
}

/* Water-bubble glass overlay limited to footer inner content */
#footer-3::before {
	content: "";
	position: absolute;
	inset: 0;
	/* Neutral glass fill to fuse with site backgrounds */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
		rgba(255,255,255,0.05);
	/* Remove external drop-shadow to avoid a visible "gap" under the footer */
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.35);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	border-top-left-radius: 24px; 
	border-top-right-radius: 24px;
	border-bottom-left-radius: 0; 
	border-bottom-right-radius: 0; /* flat bottom to meet page edge */
	pointer-events: none;
	z-index: 2; /* below flames and text, above page backgrounds */
}

/* Subtle sheen highlight on footer bubble */
#footer-3::after {
	content: "";
	position: absolute;
	left: 50%; transform: translateX(-50%);
	width: 80%; top: -10px; height: 50px;
	background: radial-gradient(60% 100% at 50% 50%, rgba(255,255,255,0.45), rgba(255,255,255,0));
	filter: blur(6px);
	pointer-events: none;
	z-index: 2;
}

/* Footer bubble overlay is enabled; no overrides disabling it. */

/* Footer content centering and compact spacing */
#ed-976601846, /* footer logo column */
#ed-976601850 { /* footer text column */
	width: 100% !important;
}
#ed-976601850 .inner, #ed-976601846 .inner { text-align: center !important; }
#ed-976601848, #ed-976601852, #ed-976601852 p { margin: 0 auto !important; text-align: center !important; }

/* Remove any gap below the footer */
#ed-976601840, /* footer wrapper */
#footer-3, /* footer inner */
.footer { margin-bottom: 0 !important; }
html, body { padding-bottom: 0 !important; }
.preset-footer-fulla-v2-default { margin-bottom: 0 !important; padding-bottom: 0 !important; }

/* New footer section that matches header width */
#site-footer-new { margin: 24px auto 0 !important; padding: 0 12px; display: block; }
#site-footer-new > .inner {
	width: 100%; max-width: 1200px; margin: 0 auto; box-sizing: border-box;
	border-radius: 20px; padding: 12px 16px;
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0) 60%),
		rgba(18,18,22,0.10);
	border: 1px solid rgba(255,255,255,0.18);
	box-shadow: 0 10px 24px rgba(0,0,0,0.18);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	color: #ffffff !important;
	display: flex; align-items: center; justify-content: space-between; column-gap: 16px;
	text-align: initial;
}
#site-footer-new .brand { font-size: 1.6rem; line-height: 1.2; margin: 2px 0 8px; color: #ffffff !important; font-weight: 700; text-align: left; }
#site-footer-new .links { margin: 0 0 2px; text-align: right; white-space: nowrap; }
#site-footer-new a { color: #ffffff !important; text-decoration: none; }
#site-footer-new a:hover { text-decoration: underline; }
@media (max-width: 575px) {
	#site-footer-new > .inner { padding: 10px 12px; border-radius: 16px; flex-direction: column; row-gap: 6px; align-items: center; justify-content: center; }
	#site-footer-new .brand { font-size: 1.35rem; text-align: center; }
	#site-footer-new .links { text-align: center; white-space: normal; }
}

/* Hide old footer entirely (we inject a new one at the bottom) */
#ed-976601840, #footer-3 { display: none !important; visibility: hidden !important; opacity: 0 !important; }

/* Hide previously injected alternate footer if it exists */
#alt-footer-wrap, #footer-alt { display: none !important; visibility: hidden !important; opacity: 0 !important; }

/* Pricing-specific animations removed (legacy pricing section deleted) */

/* Remove footer menu (we already have a header menu) */
#ed-976601842, /* footer menu column */
#ed-976601844 { /* footer nav itself */
	display: none !important;
}

/* Reduce any default vertical spacing from the footer boxes */
.preset-footer-fulla-v2-default .footer-fulla-box > .inner { padding-top: 0 !important; padding-bottom: 0 !important; }

/* Ensure Our Services top-row icons can protrude above the card without clipping */
.preset-boxes-v3-services2,
#ed-976601670 { /* services grid container */
	overflow: visible !important;
}

/* Pricing: static stacked layout (no flip). Keep centered front styles only. */
/* min-height lowered to match scaled bubble */
.preset-pricing-boxes-v3-default .pricing-boxes-head > .inner,
.preset-pricing-boxes-v3-default .pricing_boxes-head > .inner { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 18px; }
.preset-pricing-boxes-v3-default .pricing-boxes-head .boxes-icon,
.preset-pricing-boxes-v3-default .pricing_boxes-head .boxes-icon { display: block; margin: 0 auto 6px !important; }
.preset-pricing-boxes-v3-default .pricing-boxes-head .boxes-icon svg,
.preset-pricing-boxes-v3-default .pricing_boxes-head .boxes-icon svg { width: 72px; height: 72px; display: block; margin: 0 auto; }
.preset-pricing-boxes-v3-default .pricing-boxes-head .ed-text,
.preset-pricing-boxes-v3-default .pricing-boxes-head .ed-text p { width: 100%; text-align: center !important; margin: 0; }
.preset-pricing-boxes-v3-default .pricing-boxes-content > .inner { padding: 16px 14px; }

/* Pricing (strong, scoped centering): star above title; price below; no floats */
#ed-976601964 > .inner,
#ed-976601984 > .inner,
#ed-976602004 > .inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	padding: 16px 14px 10px !important;
}
#ed-976601964 .boxes-icon,
#ed-976601984 .boxes-icon,
#ed-976602004 .boxes-icon {
	float: none !important;
	display: block !important;
	margin: 0 auto 8px !important;
	opacity: 1 !important;
	visibility: visible !important;
}
#ed-976601964 .boxes-icon svg,
#ed-976601984 .boxes-icon svg,
#ed-976602004 .boxes-icon svg {
	width: 48px !important;
	height: 48px !important;
	display: block !important;
	margin: 0 auto !important;
}
#ed-976601964 .ed-text, #ed-976601964 .ed-text p,
#ed-976601984 .ed-text, #ed-976601984 .ed-text p,
#ed-976602004 .ed-text, #ed-976602004 .ed-text p {
	width: 100% !important;
	margin: 0 !important;
	text-align: center !important;
}
/* Plan titles lines centered */
#ed-976601968 p,
#ed-976601988 p,
#ed-976602008 p { text-align: center !important; margin: 0 !important; }
/* Center price block in content and keep it right under the head visually */
#ed-976601960 .pricing-boxes-content > .inner {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
}
/* Center pricing content group (including Donate) within the bubble */
.preset-pricing-boxes-v3-default .pricing-boxes-content > .inner { flex: 0 1 auto !important; justify-content: center !important; gap: 8px !important; }
.preset-pricing-boxes-v3-default .pricing-boxes-content .ed-button { margin-top: 8px !important; }
#ed-976601960 .pricing-boxes-content .pricing-boxes-highlight,
#ed-976601960 .pricing-boxes-content .pricing-boxes-highlight p,
#ed-976601960 .pricing-boxes-content .pricing-boxes-highlight span,
#ed-976601960 .pricing-boxes-content .pricing-boxes-highlight mark {
	display: block !important;
	float: none !important;
	margin: 4px 0 2px !important;
	text-align: center !important;
	background: transparent !important;
}
/* Override inline styles that force left/start alignment in the price label */
#ed-976601972 p,
#ed-976601972 span {
	text-align: center !important;
	display: inline-block !important;
}

/* Global magic wand cursor */
/* SVG-based wand cursor (tip hotspot around 22,10). Fallbacks to auto/pointer as needed. */
:root {
	/* Wand angled up-left like the default OS cursor; tip near (6,6) */
	--wand-cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><g fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M28 28 L8 8'/><path d='M7 7 l-4 -4'/></g><g fill='%23ffffff'><circle cx='6' cy='6' r='2'/></g><g stroke='%2300e6ff' stroke-width='2' stroke-linecap='round'><path d='M10 10 l-3 -3'/><path d='M12 8 l-2 -2'/></g></svg>") 6 6, auto;
	--wand-cursor-pointer: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><g fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M28 28 L8 8'/><path d='M7 7 l-4 -4'/></g><g fill='%23ffffff'><circle cx='6' cy='6' r='2'/></g><g stroke='%2300e6ff' stroke-width='2' stroke-linecap='round'><path d='M10 10 l-3 -3'/><path d='M12 8 l-2 -2'/></g></svg>") 6 6, pointer;
}

html, body { cursor: var(--wand-cursor); }
/* Use wand pointer on clickable elements while keeping expected pointer semantics */
a, button, .button, [role="button"], input[type="submit"], input[type="button"], label, summary { cursor: var(--wand-cursor-pointer); }
/* Preserve text caret for typing areas */
input[type="text"], input[type="email"], input[type="search"], input[type="password"], textarea, [contenteditable="true"] { cursor: text; }

/* Accessibility: visually hide skip link until focused */
.wv-link-content.button {
	position: absolute;
	left: -9999px;
}
.wv-link-content.button:focus {
	left: 8px;
	top: 8px;
	z-index: 1000000;
	background: #0b0f13;
	color: #fff !important;
	padding: 8px 10px;
	border-radius: 6px;
}

/* Remove any forced flip/absolute positioning; show content naturally stacked */
#ed-976601960 .pricing-boxes-box > .inner,
#ed-976601960 .pricing-boxes-box .pricing-boxes-head,
#ed-976601960 .pricing-boxes-box .pricing-boxes-content { position: static !important; inset: auto !important; transform: none !important; opacity: 1 !important; pointer-events: auto !important; }

/* Show the price highlight within content again (it was previously hidden for the flip) */
#ed-976601960 .pricing-boxes-content .pricing-boxes-highlight { display: block !important; }

/* Further harden centering: every text node inside pricing content */
#ed-976601960 .pricing-boxes-content .ed-text,
#ed-976601960 .pricing-boxes-content .ed-text p,
#ed-976601960 .pricing-boxes-content .ed-text ul,
#ed-976601960 .pricing-boxes-content .ed-text li {
	text-align: center !important;
}
/* Remove default left padding/bullets so list items visually center */
#ed-976601960 .pricing-boxes-content .ed-text ul,
#ed-976601960 .pricing-boxes-content .ed-text ul.features {
	list-style: none !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
	text-align: center !important;
}
/* Ensure buttons center within the content area */
#ed-976601960 .pricing-boxes-content .ed-button { text-align: center !important; }
#ed-976601960 .pricing-boxes-content .ed-button .button {
	display: inline-block !important;
	margin: 0 auto !important;
}
/* Ensure head and content take full width and are centered */
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner > .pricing-boxes-head,
.preset-pricing-boxes-v3-default .pricing-boxes-box > .inner > .pricing-boxes-content {
	width: 100% !important;
}
.preset-pricing-boxes-v3-default .pricing-boxes-head .boxes-icon,
.preset-pricing-boxes-v3-default .pricing-boxes-head .ed-text,
.preset-pricing-boxes-v3-default .pricing-boxes-content .ed-text,
.preset-pricing-boxes-v3-default .pricing-boxes-content .ed-button { margin-left: auto !important; margin-right: auto !important; }

/* Hero Installation card (centered below Welcome) */
#ed-hero-install-card { position: relative; z-index: 21; width: min(96%, 900px); margin: 16px auto; }
#ed-hero-install-card > .inner {
	position: relative;
	padding: 16px 18px;
	border-radius: 16px;
	background: rgba(20,20,20,0.35);
	box-shadow: 0 12px 28px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.35);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
}
#ed-hero-install-card h3,
#ed-hero-install-card p,
#ed-hero-install-card a,
#ed-hero-install-card li { color: #fff !important; }
#ed-hero-install-card h3 { margin: 0 0 8px; font-size: 1.25rem; }
#ed-hero-install-card .hint { margin: 0 0 8px; opacity: 0.9; }

/* Copyable code blocks */
.ed-copy-block { position: relative; margin: 10px 0; border: 1px solid rgba(255,255,255,0.18); border-radius: 10px; background: #0b0f13 !important; mix-blend-mode: normal !important; box-shadow: 0 6px 16px rgba(0,0,0,0.28); }
.ed-copy-block pre { margin: 0; padding: 12px 44px 12px 12px; color: #e9f7ff !important; background: transparent !important; font: 12.5px/1.35 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; white-space: pre-wrap; word-break: break-word; }

.ed-copy-block .copy-btn { position: absolute; top: 8px; right: 8px; height: 28px; width: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); color: #fff; cursor: var(--wand-cursor-pointer); transition: background 120ms ease, transform 80ms ease; }
.ed-copy-block .copy-btn:hover { background: rgba(255,255,255,0.16); transform: translateY(-1px); }
.ed-copy-block .copy-btn:active { transform: translateY(0); }
.ed-copy-block .copy-btn:focus-visible { outline: 2px solid rgba(0, 214, 255, 0.9); outline-offset: 2px; box-shadow: 0 0 0 2px rgba(0,0,0,0.35); }
.ed-copy-block .copy-btn svg { width: 14px; height: 14px; display: block; }
.ed-copy-block .copy-btn.copied { background: rgba(0,180,100,0.35); border-color: rgba(0,180,120,0.5); }

/* Ensure margins on narrow screens */
@media (max-width: 1024px) {
	#ed-hero-install-card { width: 94%; margin: 12px auto; }
}

/* Removed global 3D background; no canvas styling needed */

/* Hide the temporary Installation bubble above About section */
#ed-hero-install-card { display: none !important; }

/* Fancy, larger Installation Guide button */
#open-installation-book.button,
#open-installation-book {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-weight: 700 !important;
	font-size: 1.15rem !important; /* ~2x look with padding */
	letter-spacing: 0.3px;
	padding: 14px 22px !important; /* bigger touch area */
	border-radius: 12px !important;
	border: 1px solid rgba(255,255,255,0.28) !important;
	color: #0b0f13 !important;
	background: linear-gradient(135deg, #9bffea 0%, #6fe3ff 50%, #b18bff 100%) !important;
	box-shadow:
		0 10px 24px rgba(0,0,0,0.26),
		inset 0 1px 0 rgba(255,255,255,0.75);
	transform: translateZ(0);
	transition: transform 180ms ease, box-shadow 200ms ease, filter 200ms ease, background-position 250ms ease;
	background-size: 200% 100%;
	background-position: 0% 50%;
}
#open-installation-book.button:hover,
#open-installation-book:hover {
	transform: translateY(-2px) scale(1.04);
	box-shadow:
		0 16px 36px rgba(0,0,0,0.32),
		0 0 0 3px rgba(255,255,255,0.08) inset;
	background-position: 100% 50%;
}
#open-installation-book.button:active,
#open-installation-book:active { transform: translateY(0) scale(1.01); }
#open-installation-book.button:focus-visible,
#open-installation-book:focus-visible { outline: 2px solid #00d6ff; outline-offset: 2px; }
/* Shimmer on hover */
#open-installation-book::after {
	content: "";
	position: absolute;
	top: 0; bottom: 0; left: -40%; width: 40%;
	background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0) 100%);
	filter: blur(6px);
	transform: skewX(-20deg);
	transition: left 450ms ease;
	pointer-events: none;
}
#open-installation-book:hover::after { left: 120%; }

/* About QhtLink: bubble includes image on the left */
#ed-976601486 { position: relative; }
#about-1 {
	position: relative;
	display: flex !important; /* ensure two columns */
	flex-wrap: nowrap !important;
	gap: 16px; /* tightened */
	align-items: center; /* vertically center to image */
	border-radius: 20px;
	border: 1px solid rgba(255,255,255,0.18);
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 60%),
		rgba(20,20,20,0.22);
	box-shadow: 0 12px 28px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.35);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	padding: 12px 14px; /* less padding around content */
	overflow: hidden;
	max-width: 980px; /* keep the bubble from being too wide */
	margin-left: auto; margin-right: auto;
}
#about-1::before {
	content: "";
	position: absolute;
	top: -14px; left: 10%;
	width: 36%; height: 44px;
	background: radial-gradient(60% 100% at 50% 50%, rgba(255,255,255,0.45), rgba(255,255,255,0));
	filter: blur(6px);
	pointer-events: none;
	z-index: 1;
}
/* Left column: image (50%) */
#ed-976601488 {
	flex: 0 1 42% !important; /* smaller image column */
	width: 42% !important;
	min-width: 0 !important;
	min-height: 220px; /* reduced to match scaled image */
	border-radius: 14px;
	overflow: hidden;
	position: relative;
}
/* About: we now use a direct <img> inside the left column */
#ed-976601488 > .inner { display: block !important; height: 100%; }
#ed-976601488 img.about-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	transform: scale(0.8); /* scale down by 20% */
	transform-origin: center center;
	cursor: zoom-in;
}
/* Right column: text (50%) */
#ed-976601492 { flex: 1 1 58% !important; width: 58% !important; min-width: 0 !important; overflow: visible !important; }
#ed-976601492 > .inner {
	position: relative;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}
#ed-976601492 > .inner::before { display: none !important; }
#ed-976601492 > .inner > * { position: relative; z-index: 2; }

/* Ensure readable text colors inside the bubble */
#ed-976601494 h2,
#ed-976601498,
#ed-976601498 p,
#ed-976601502 .button { color: #fff !important; }

/* Keep spacing tight but breathable */
#ed-976601496 .space { height: 8px; }

/* Responsive: stack on small screens */
@media (max-width: 975px) {
	#about-1 { flex-direction: column !important; padding: 10px 12px; max-width: 92%; }
	#ed-976601488, #ed-976601492 { width: 100% !important; flex: 1 1 auto !important; }
	#ed-976601488 { min-height: 180px; }
}

/* Spacing for the new Packages heading section */
#packages { margin: 10px auto 6px !important; }
#packages .inner h2 { text-align: center !important; }

/* Ensure Packages grid inherits white text/icons like Services */
#ed-hero-packages-grid, #ed-hero-packages-grid p, #ed-hero-packages-grid h2, #ed-hero-packages-grid h3, #ed-hero-packages-grid li,
#ed-hero-packages-grid .ed-text, #ed-hero-packages-grid .ed-text p { color: #ffffff !important; }
#ed-hero-packages-grid .boxes-icon svg, #ed-hero-packages-grid .boxes-icon svg path { fill: #ffffff !important; stroke: none !important; }
#ed-hero-packages-grid .boxes-icon svg,
#ed-hero-packages-grid .boxes-icon img,
#ed-hero-packages-grid .boxes-icon i,
#ed-hero-packages-grid .boxes-icon::before,
#ed-hero-packages-grid .boxes-icon::after { display: none !important; content: none !important; }
#ed-hero-packages-grid .boxes-icon .price-tier-icon { display: inline-grid !important; }
#ed-hero-packages-grid .boxes-icon .price-tier-icon { 
	display: inline-grid; place-items: center; width: 64px; height: 64px; 
	color: #fff; font-weight: 800; font-size: 30px; line-height: 1; 
	border-radius: 50%; background: rgba(255,255,255,0.08); 
	box-shadow: 0 6px 14px rgba(0,0,0,0.22) inset, 0 8px 20px rgba(0,0,0,0.18);
	transform-style: preserve-3d; perspective: 600px;
	transition: transform 260ms ease, box-shadow 260ms ease, background 260ms ease;
}
#ed-hero-packages-grid .boxes-icon .price-tier-link { text-decoration: none !important; color: inherit !important; display: inline-block; }
#ed-hero-packages-grid .price-tier-icon .char { display: inline-block; transform-style: preserve-3d; }
#ed-hero-packages-grid .boxes-box:nth-child(1) .price-tier-icon .char:nth-child(1) { animation: yFlip 3600ms linear infinite; }
#ed-hero-packages-grid .boxes-box:nth-child(2) .price-tier-icon .char:nth-child(1) { animation: yFlip 3000ms linear infinite; }
#ed-hero-packages-grid .boxes-box:nth-child(2) .price-tier-icon .char:nth-child(2) { animation: yFlip 2600ms linear infinite reverse; }
#ed-hero-packages-grid .boxes-box:nth-child(3) .price-tier-icon .char:nth-child(1) { animation: yFlip 2400ms linear infinite; }
#ed-hero-packages-grid .boxes-box:nth-child(3) .price-tier-icon .char:nth-child(2) { animation: yFlip 2000ms linear infinite reverse; }
#ed-hero-packages-grid .boxes-box:nth-child(3) .price-tier-icon .char:nth-child(3) { animation: yFlip 3200ms linear infinite; }
#ed-hero-packages-grid .boxes-box > .inner:hover .price-tier-link .price-tier-icon { transform: scale(1.12); background: rgba(255,255,255,0.12); box-shadow: 0 8px 18px rgba(0,0,0,0.26) inset, 0 10px 24px rgba(0,0,0,0.22); }
@keyframes yFlip { 
	0% { transform: rotateY(0deg); }
	50% { transform: rotateY(180deg); }
	100% { transform: rotateY(360deg); }
}

/* Packages text tweaks per request */
#ed-hero-packages-grid .boxes-box:nth-child(1) .boxes-box-inner .ed-text p { text-align: center !important; font-size: 2em !important; line-height: 1.1 !important; }
#ed-hero-packages-grid .boxes-box:nth-child(2) .boxes-box-inner .ed-text p,
#ed-hero-packages-grid .boxes-box:nth-child(3) .boxes-box-inner .ed-text p { font-size: 2em !important; line-height: 1.1 !important; text-align: center !important; }

/* Star-dust text canvas removed */

/* --- Utility classes to replace inline styles (for strict CSP) --- */
.text-center { text-align: center !important; }
.text-danger { color: #a00 !important; }
.my-2 { margin: .5rem 0 1rem !important; }
.flex-basis-auto { flex-basis: auto !important; }
.flex-shrink-1 { flex-shrink: 1 !important; }
.spacer-16 { height: 16px !important; }
.spacer-30 { height: 30px !important; }
/* Replicate inline overflow hidden on icons */
.boxes-icon svg { overflow: hidden; }

/* Price badge to replace inline styled span */
.price-badge {
	display: inline-block !important;
	padding: 2px 8px;
	border-radius: 999px; /* pill */
	font-size: 32px; /* match previous inline size */
	font-weight: 200;
	color: #ffffff !important;
	background-color: #2e2e2e !important;
	line-height: 1.1;
}

/* Accessibility utility: visually hidden (for live regions etc.) */
.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0 0 1px 1px) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Modal overlay + board (used by legal.js and privacy.js) */
.modal-overlay {
	position: fixed;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(0,0,0,0.55);
	z-index: 100000; /* above site chrome */
}
.modal-board {
	position: relative;
	width: min(92vw, 560px);
	max-height: 86vh;
	overflow: auto;
	border-radius: 14px;
	border: 1px solid rgba(255,255,255,0.22);
	box-shadow: 0 18px 48px rgba(0,0,0,0.35);
	/* Lighter, glassy background */
	background:
		radial-gradient(120% 180% at 20% -20%, rgba(255,255,255,0.30) 0%, rgba(255,255,255,0) 60%),
		rgba(16,18,24,0.55);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	color: #fff;
}
.modal-board .frame-inner { padding: 16px; }
.modal-board h1 { margin: 0 0 10px; font-size: 1.4rem; }
.modal-board p { margin: 6px 0; }
.modal-board button[id$="-close"] {
	position: absolute;
	top: 8px; right: 10px;
	width: 28px; height: 28px;
	display: grid; place-items: center;
	border-radius: 6px;
	border: 1px solid rgba(255,255,255,0.28);
	background: rgba(255,255,255,0.10);
	color: #fff;
}
html.modal-open, body.modal-open { overflow: hidden !important; }

/* Global click puff canvas (no inline styles required) */
#click-puff-canvas {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9999;
	mix-blend-mode: normal;
}

/* Footer: make the new footer span full page width like the header */
#site-footer-new {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
#site-footer-new > .inner {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 12px 16px !important;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	column-gap: 16px;
}
#site-footer-new {
	background: linear-gradient(180deg, rgba(10,14,18,0.0) 0%, rgba(10,14,18,0.35) 40%, rgba(10,14,18,0.55) 100%);
}
#site-footer-new .brand { font-weight: 700; color: #fff; }
#site-footer-new .links { color: #d9d9d9; }
#site-footer-new .links a { color: #e6e6e6; text-decoration: none; }
#site-footer-new .links a:hover, #site-footer-new .links a:focus { text-decoration: underline; }

/* Footer responsive: stack brand/links on small screens */
@media (max-width: 575px) {
	#site-footer-new > .inner {
		flex-direction: column !important;
		align-items: center !important;
		row-gap: 6px !important;
	}
	#site-footer-new .brand { text-align: center !important; }
	#site-footer-new .links { text-align: center !important; white-space: normal; }
}

/* Footer fire and header flames placement moved to fire.css and flames.css */
