/**
 * Page Section design system — background image, dividers, button radius overrides.
 */

.iw-ps-block {
	position: relative;
	overflow: visible;
}

.iw-ps-block__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	pointer-events: none;
}

.iw-ps-block--bg-parallax {
	overflow: hidden;
}

.iw-ps-block--bg-parallax .iw-ps-block__bg {
	background-attachment: scroll;
	height: 130%;
	top: -15%;
	bottom: auto;
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	.iw-ps-block--bg-parallax .iw-ps-block__bg {
		height: 100%;
		top: 0;
		transform: none !important;
	}
}

.iw-ps-block__bg::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Preset tint tokens for overlays and section edges. */
[data-iw-ps-preset="light"],
[data-iw-ps-bg-preset="light"] {
	--iw-ps-surface-color: var(--iw_branding_white_color, #ffffff);
}

[data-iw-ps-preset="gray"],
[data-iw-ps-bg-preset="gray"] {
	--iw-ps-surface-color: var(--iw_branding_gray_color, #f5f5f5);
}

[data-iw-ps-preset="dark"],
[data-iw-ps-bg-preset="dark"] {
	--iw-ps-surface-color: var(--iw_branding_main_color, #1a3a52);
}

[data-iw-ps-adjacent-top-preset="light"] { --iw-ps-adjacent-top-color: var(--iw_branding_white_color, #ffffff); }
[data-iw-ps-adjacent-top-preset="gray"] { --iw-ps-adjacent-top-color: var(--iw_branding_gray_color, #f5f5f5); }
[data-iw-ps-adjacent-top-preset="dark"] { --iw-ps-adjacent-top-color: var(--iw_branding_main_color, #1a3a52); }
[data-iw-ps-adjacent-bottom-preset="light"] { --iw-ps-adjacent-bottom-color: var(--iw_branding_white_color, #ffffff); }
[data-iw-ps-adjacent-bottom-preset="gray"] { --iw-ps-adjacent-bottom-color: var(--iw_branding_gray_color, #f5f5f5); }
[data-iw-ps-adjacent-bottom-preset="dark"] { --iw-ps-adjacent-bottom-color: var(--iw_branding_main_color, #1a3a52); }

/*
 * Gradient overlay tokens live on .iw-ps-block__bg (inline from PHP); ::after inherits them.
 */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type] {
	--iw-ps-bg-g-peak: color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 90%, transparent);
	--iw-ps-bg-g-clear: color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 0%, transparent);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type]::after {
	--iw-ps-bg-spread-coverage: var(--iw-ps-bg-gradient-spread-coverage, 53%);
	--iw-ps-bg-spread-arc: var(--iw-ps-bg-gradient-spread-arc, 92);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="overlay"]::after,
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="overlay"][data-iw-ps-bg-gradient-direction="center"]::after {
	background: var(--iw-ps-bg-g-peak);
}

/*
 * Spread expands peak tint toward edges; a short fade remains at the far perimeter.
 * Pattern: peak → peak (coverage) → clear (100%).
 */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="top"]::after {
	background: linear-gradient(to bottom, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="bottom"]::after {
	background: linear-gradient(to top, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="left"]::after {
	background: linear-gradient(to right, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="right"]::after {
	background: linear-gradient(to left, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="top_left"]::after {
	background: linear-gradient(to bottom right, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="top_right"]::after {
	background: linear-gradient(to bottom left, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="bottom_left"]::after {
	background: linear-gradient(to top right, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="bottom_right"]::after {
	background: linear-gradient(to top left, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

/* Linear center: same circular spread model as radial center. */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="linear"][data-iw-ps-bg-gradient-direction="center"]::after {
	background: radial-gradient(circle farthest-corner at 50% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

/* Radial — circular gradients from the anchor point. */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="top"]::after {
	background: radial-gradient(circle farthest-corner at 50% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="bottom"]::after {
	background: radial-gradient(circle farthest-corner at 50% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="left"]::after {
	background: radial-gradient(circle farthest-corner at 0% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="right"]::after {
	background: radial-gradient(circle farthest-corner at 100% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="top_left"]::after {
	background: radial-gradient(circle farthest-corner at 0% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="top_right"]::after {
	background: radial-gradient(circle farthest-corner at 100% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="bottom_left"]::after {
	background: radial-gradient(circle farthest-corner at 0% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="bottom_right"]::after {
	background: radial-gradient(circle farthest-corner at 100% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="radial"][data-iw-ps-bg-gradient-direction="center"]::after {
	background: radial-gradient(circle farthest-corner at 50% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

/* Elliptical — stretched ellipses (distinct from circular radial). */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="top"]::after {
	background: radial-gradient(ellipse 260% 170% at 50% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="bottom"]::after {
	background: radial-gradient(ellipse 260% 170% at 50% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="left"]::after {
	background: radial-gradient(ellipse 170% 260% at 0% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="right"]::after {
	background: radial-gradient(ellipse 170% 260% at 100% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="top_left"]::after {
	background: radial-gradient(ellipse farthest-corner at 0% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="top_right"]::after {
	background: radial-gradient(ellipse farthest-corner at 100% 0%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="bottom_left"]::after {
	background: radial-gradient(ellipse farthest-corner at 0% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="bottom_right"]::after {
	background: radial-gradient(ellipse farthest-corner at 100% 100%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="elliptical"][data-iw-ps-bg-gradient-direction="center"]::after {
	background: radial-gradient(ellipse 220% 140% at 50% 50%, var(--iw-ps-bg-g-peak) 0%, var(--iw-ps-bg-g-peak) var(--iw-ps-bg-spread-coverage), var(--iw-ps-bg-g-clear) 100%);
}

/* Conic: higher spread shrinks the clear wedge (more peak coverage). */
.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="top"]::after {
	background: conic-gradient(from 180deg at 50% 0%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="bottom"]::after {
	background: conic-gradient(from 0deg at 50% 100%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="left"]::after {
	background: conic-gradient(from 90deg at 0% 50%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="right"]::after {
	background: conic-gradient(from 270deg at 100% 50%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="top_left"]::after {
	background: conic-gradient(from 225deg at 0% 0%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="top_right"]::after {
	background: conic-gradient(from 315deg at 100% 0%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="bottom_left"]::after {
	background: conic-gradient(from 135deg at 0% 100%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="bottom_right"]::after {
	background: conic-gradient(from 45deg at 100% 100%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-type="conic"][data-iw-ps-bg-gradient-direction="center"]::after {
	background: conic-gradient(from 0deg at 50% 50%, var(--iw-ps-bg-g-peak) 0deg, var(--iw-ps-bg-g-clear) calc(var(--iw-ps-bg-spread-arc) * 1deg), var(--iw-ps-bg-g-peak) 360deg);
}

.iw-ps-block__bg[data-iw-ps-bg-gradient-opacity="0"]::after {
	background: transparent;
}

/*
 * Background layer sits behind all block content (targets `.iw-ps-block__row`, not inner content).
 * isolation keeps z-index predictable; transparent section bg lets patterns/photos show.
 */
.iw-ps-block--has-bg-image {
	isolation: isolate;
}

.iw-ps-block--has-bg-image > :not(.iw-ps-block__bg) {
	position: relative;
	z-index: 1;
}

.iw-ps-block--has-bg-image.iw-ps-hero,
.iw-ps-block--has-bg-image.iw-ps-services {
	background-color: transparent;
}

.iw-ps-block--has-bg-image .iw-ps-hero__visuals,
.iw-ps-block--has-bg-image [class*="__visuals"],
.iw-ps-block--has-bg-image .iw-ps-block__col--media,
.iw-ps-block--has-bg-image [class*="__col--media"] {
	visibility: visible !important;
}

.iw-ps-block--has-bg-image .iw-ps-hero__visuals {
	display: flex !important;
}

/* When block media was removed (or suppressed), do not reserve split-layout tracks. */
.iw-ps-block [class*="__row"]:not(:has([class*="__col--media"])) [class*="__col--content"] {
	flex: 1 1 100%;
	max-width: 100%;
}

/* Decorative pattern textures (work with gradient overlays on ::after). */
.iw-ps-block__bg[data-iw-ps-bg-pattern] {
	background-color: var(--iw-ps-surface-color, var(--iw_branding_white_color, #ffffff));
	background-size: cover;
	background-position: center;
}

.iw-ps-block__bg[data-iw-ps-bg-pattern="waves"] {
	background-image:
		radial-gradient(ellipse 120% 80% at 50% 120%, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 82%, var(--iw_branding_main_color, #1a3a52) 18%) 0%, transparent 58%),
		repeating-radial-gradient(circle at 50% -20%, transparent 0 38px, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 88%, var(--iw_branding_main_color, #1a3a52) 12%) 38px 40px);
	background-size: 100% 100%, 120px 48px;
}

.iw-ps-block__bg[data-iw-ps-bg-pattern="lines"] {
	background-image: repeating-linear-gradient(
		-45deg,
		color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 92%, var(--iw_branding_main_color, #1a3a52) 8%) 0,
		color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 92%, var(--iw_branding_main_color, #1a3a52) 8%) 1px,
		transparent 1px,
		transparent 14px
	);
	background-size: 20px 20px;
}

.iw-ps-block__bg[data-iw-ps-bg-pattern="dots"] {
	background-image: radial-gradient(
		circle,
		color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 70%, var(--iw_branding_main_color, #1a3a52) 30%) 1.5px,
		transparent 1.5px
	);
	background-size: 18px 18px;
}

.iw-ps-block__bg[data-iw-ps-bg-pattern="grid"] {
	background-image:
		linear-gradient(color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 82%, var(--iw_branding_main_color, #1a3a52) 18%) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 82%, var(--iw_branding_main_color, #1a3a52) 18%) 1px, transparent 1px);
	background-size: 28px 28px;
}

.iw-ps-block__bg[data-iw-ps-bg-pattern="elegant"] {
	background-image:
		radial-gradient(ellipse 90% 60% at 10% 20%, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 78%, var(--iw_branding_main_color, #1a3a52) 22%) 0%, transparent 55%),
		radial-gradient(ellipse 70% 50% at 90% 10%, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 84%, var(--iw_branding_main_color, #1a3a52) 16%) 0%, transparent 50%),
		radial-gradient(ellipse 80% 55% at 70% 95%, color-mix(in srgb, var(--iw-ps-surface-color, #ffffff) 80%, var(--iw_branding_main_color, #1a3a52) 20%) 0%, transparent 52%);
	background-size: 100% 100%;
}

/* Section edges: responsive SVG clip-path from PHP; clips bg + content. */
.iw-theme-homepage {
	isolation: isolate;
}

.iw-ps-block--edge-top,
.iw-ps-block--edge-bottom {
	overflow: hidden;
	-webkit-clip-path: var(--iw-ps-edge-clip-path);
	clip-path: var(--iw-ps-edge-clip-path);
}

.iw-ps-block--edge-top .iw-ps-block__bg,
.iw-ps-block--edge-bottom .iw-ps-block__bg {
	-webkit-clip-path: inherit;
	clip-path: inherit;
}

.iw-ps-block--edge-bottom {
	margin-bottom: calc(-1 * var(--iw-ps-edge-depth, 48px));
	z-index: 2;
}

.iw-ps-block--edge-top {
	margin-top: calc(-1 * var(--iw-ps-edge-depth, 48px));
}

.iw-ps-block--edge-top.iw-ps-hero,
.iw-ps-block--edge-bottom.iw-ps-hero {
	overflow: hidden !important;
}

/* Block buttons: --iw-ps-btn-radius on section wins; else site default from :root / preview scope. */
.iw-ps-block [class*="__btn"] {
	border-radius: var(--iw-ps-btn-radius, var(--iw_branding_button_border_radius, 8px)) !important;
}
