/* ==========================================================================
   SGW aggregator (reconstructed 2026-10-13)
   Replaces the lost https://repo.idgadvertising.com/clients/sgw/aggregator.css
   that PPC pages imported via an Avada code block. Values were rebuilt from
   how the pages use them; the original file was not recoverable.
   ========================================================================== */

:root {
	/* Spacing scale */
	--sp-1: 0.25rem;
	--sp-2: 0.5rem;
	--sp-3: 0.75rem;
	--sp-4: 1rem;
	--sp-5: 1.5rem;
	--sp-6: 2rem;
	--sp-7: clamp(2rem, 3.5vw, 3rem);
	--sp-8: clamp(2.5rem, 5vw, 4rem);
	--sp-9: clamp(3rem, 6vw, 5rem);
	--sp-10: clamp(3.5rem, 7vw, 6rem);
	--sp-11: clamp(7rem, 11vw, 10rem);
	--sp-12: clamp(7.5rem, 12vw, 11rem);
	--sp12: var(--sp-12); /* alias for a typo in page content */

	/* Viewport heights with a vh fallback for browsers without svh */
	--sp-safe-50svh: 50vh;
	--sp-safe-65svh: 65vh;
	--sp-safe-70svh: 70vh;

	/* Heading size reference used by image elements */
	--h2: var(--h2_typography-font-size, 3rem);
}

@supports (height: 1svh) {
	:root {
		--sp-safe-50svh: 50svh;
		--sp-safe-65svh: 65svh;
		--sp-safe-70svh: 70svh;
	}
}

/* Type size utilities: apply to the element and the heading/paragraph inside it */
.t-s-l, .t-s-l :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(1.0625rem, 1.4vw, 1.25rem) !important; line-height: 1.5 !important; }
.t-s-xl, .t-s-xl :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(1.25rem, 2vw, 1.625rem) !important; line-height: 1.3 !important; }
.t-s-2xl, .t-s-2xl :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(1.75rem, 3.4vw, 2.75rem) !important; line-height: 1.15 !important; }
.t-s-3xl, .t-s-3xl :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(2rem, 4.2vw, 3.25rem) !important; line-height: 1.1 !important; }
.t-s-4xl, .t-s-4xl :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(2.125rem, 4.7vw, 3.625rem) !important; line-height: 1.08 !important; }
.t-s-5xl, .t-s-5xl :is(h1, h2, h3, h4, h5, h6, p) { font-size: clamp(2.25rem, 5.2vw, 4rem) !important; line-height: 1.05 !important; }

.t-ls-l, .t-ls-l :is(h1, h2, h3, h4, h5, h6, p) { letter-spacing: 0.02em !important; }
.t-ls-xl, .t-ls-xl :is(h1, h2, h3, h4, h5, h6, p) { letter-spacing: 0.04em !important; }
.t-tt-none, .t-tt-none :is(h1, h2, h3, h4, h5, h6, p) { text-transform: none !important; }
.t-fw-sb, .t-fw-sb :is(h1, h2, h3, h4, h5, h6, p) { font-weight: 600 !important; }
.t-tw-balance, .t-tw-balance :is(h1, h2, h3, h4, h5, h6, p) { text-wrap: balance; }
.t-tw-pretty, .t-tw-pretty :is(h1, h2, h3, h4, h5, h6, p) { text-wrap: pretty; }

.ut-text-shadow, .ut-text-shadow :is(h1, h2, h3, h4, h5, h6, p) { text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 2px 12px rgba(0, 0, 0, 0.45); }

/* Max-width utilities: constrain the column's content measure */
.sp-mw-20 > .fusion-column-wrapper { max-width: 20ch; }
.sp-mw-25 > .fusion-column-wrapper { max-width: 25ch; }
.sp-mw-30 > .fusion-column-wrapper { max-width: 30ch; }
.sp-mw-35 > .fusion-column-wrapper { max-width: 35ch; }
.sp-mw-40 > .fusion-column-wrapper { max-width: 40ch; }
.sp-mw-45 > .fusion-column-wrapper { max-width: 45ch; }
.sp-mw-50 > .fusion-column-wrapper { max-width: 50ch; }
.sp-mw-55 > .fusion-column-wrapper { max-width: 55ch; }
.sp-mw-60 > .fusion-column-wrapper { max-width: 60ch; }
.sp-mw-65 > .fusion-column-wrapper { max-width: 65ch; }
.sp-mw-70 > .fusion-column-wrapper { max-width: 70ch; }
.sp-mw-75 > .fusion-column-wrapper { max-width: 75ch; }
.sp-mw-80 > .fusion-column-wrapper { max-width: 80ch; }
.sp-mw-85 > .fusion-column-wrapper { max-width: 85ch; }
.sp-mw-90 > .fusion-column-wrapper { max-width: 90ch; }

/* Gap utilities for Avada column wrappers */
.sp-g-5-avada > .fusion-column-wrapper { gap: var(--sp-5) !important; }
.sp-g-7-avada > .fusion-column-wrapper { gap: var(--sp-7) !important; }
.sp-mw-30-avada > .fusion-column-wrapper { max-width: 30rem; margin-inline: auto; }

/* List reset */
.com-ul-reset ul, .com-ul-reset ol { list-style: none; margin: 0; padding: 0; }

/* Screen-reader-only text */
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Center-adjusted column */
.fw-col-center-adj { margin-inline: auto !important; }

/* Buttons that should not wrap or stretch. Their columns size to the button
   and sit a small gap apart; empty sibling columns absorb the leftover space so
   the row keeps its own alignment. */
.fix-btn { white-space: nowrap; width: auto; }
.fusion-builder-row-inner:has(> .fusion-layout-column .fix-btn) { column-gap: var(--sp-3) !important; }
.fusion-builder-row-inner > .fusion-layout-column:has(.fix-btn) {
	width: auto !important;
	flex: 0 0 auto !important;
	max-width: 100%;
}
.fusion-builder-row-inner:has(> .fusion-layout-column .fix-btn) > .fusion-layout-column:not(:has(.fix-btn)) {
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0;
}

/* "See Our Products in Action" tile grid.
   Avada puts an inline width:104% !important on inner rows, so the column
   wrapper is the grid and the inner row is flattened with display:contents. */
.com-ppc-grid-services > .fusion-column-wrapper {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--sp-4) !important;
}
.com-ppc-grid-services > .fusion-column-wrapper > .fusion-builder-row-inner { display: contents !important; }
.com-ppc-grid-services .fusion_builder_column_inner {
	width: auto !important;
	margin: 0 !important;
	min-height: clamp(13rem, 22vw, 21rem);
	border-radius: var(--sp-3);
	overflow: hidden;
	align-items: stretch !important;
}
.com-ppc-grid-services .fusion_builder_column_inner > .fusion-column-wrapper {
	flex: 1 1 100%;
	align-self: stretch;
	justify-content: flex-end;
	background-image: linear-gradient(to top, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0) 55%);
}
@media (max-width: 1024px) {
	.com-ppc-grid-services > .fusion-column-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.com-ppc-grid-services > .fusion-column-wrapper { gap: var(--sp-2) !important; }
	.com-ppc-grid-services .fusion_builder_column_inner { min-height: 10rem; }
}

/* Image masonry with a centered CTA panel (PPC Q1 pages) */
.com-ppc-grid-masonry-cta > .fusion-builder-row {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: minmax(clamp(11rem, 16vw, 15rem), auto);
	gap: var(--sp-4) !important;
}
.com-ppc-grid-masonry-cta > .fusion-builder-row > .fusion-layout-column {
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}
.com-ppc-grid-masonry-cta > .fusion-builder-row > .fusion-layout-column:has(.fusion-builder-row-inner) { grid-column: span 2; }
.com-ppc-grid-masonry-cta > .fusion-builder-row > .fusion-layout-column:has(.fusion-builder-row-inner) > .fusion-column-wrapper {
	border-radius: var(--sp-3);
	overflow: hidden;
}
.com-ppc-grid-masonry-cta > .fusion-builder-row > .fusion-layout-column > .fusion-column-wrapper { height: 100%; }
.com-ppc-grid-masonry-cta .fusion-image-element,
.com-ppc-grid-masonry-cta .fusion-image-element .fusion-imageframe { display: block; width: 100%; height: 100%; }
.com-ppc-grid-masonry-cta .fusion-image-element img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--sp-3);
}
@media (max-width: 1024px) {
	.com-ppc-grid-masonry-cta > .fusion-builder-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.com-ppc-grid-masonry-cta > .fusion-builder-row { grid-auto-rows: minmax(9rem, auto); gap: var(--sp-2) !important; }
}
