/**
 * SLI design system — effects layer.
 *
 * Only what theme.json can't express: registered block-style visuals, hover
 * life, the Ink glow, framed imagery, forms, and the fade-up entry animation.
 * Every value references a theme.json token (--wp--preset--* / --wp--custom--*)
 * — no raw hex or magic numbers. Loaded on the front end AND in the editor.
 */

/* ----------------------------------------------------------------------------
 * 1. Section treatments (core/group block styles)
 * ------------------------------------------------------------------------- */
.wp-block-group.is-style-section-cloud {
	background-color: var(--wp--preset--color--cloud);
}
.wp-block-group.is-style-section-sky {
	background-color: var(--wp--preset--color--sky);
}

/* Ink dark section with the one atmospheric moment: top-center radial blue glow. */
.wp-block-group.is-style-section-ink,
.sli-cta-band.is-style-section-ink {
	position: relative;
	background-color: var(--wp--preset--color--ink);
	color: #a9b7c9;
	isolation: isolate;
	overflow: hidden;
}
.wp-block-group.is-style-section-ink::before,
.sli-cta-band.is-style-section-ink::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--wp--preset--gradient--ink-glow);
	pointer-events: none;
}
.wp-block-group.is-style-section-ink :where(h1, h2, h3, h4, h5, h6),
.wp-block-group.is-style-section-ink .wp-block-heading,
.sli-cta-band.is-style-section-ink :where(h1, h2, h3, h4, h5, h6),
.sli-cta-band.is-style-section-ink .wp-block-heading {
	color: #ffffff;
}
.wp-block-group.is-style-section-ink a:not(.wp-block-button__link),
.sli-cta-band.is-style-section-ink a:not(.wp-block-button__link) {
	color: #ffffff;
	text-decoration: underline;
}

/* Dark sections use a deliberately separate text palette. Generic block
   styles otherwise reapply the light-ground blue/slate colors inside them. */
.wp-block-group.is-style-section-ink .is-style-eyebrow,
.sli-cta-band.is-style-section-ink .is-style-eyebrow {
	color: var(--wp--preset--color--amber);
}
.wp-block-group.is-style-section-ink .is-style-lead,
.sli-cta-band.is-style-section-ink .is-style-lead {
	color: #d6e0ee;
}
.wp-block-group.is-style-section-ink .wp-block-button.is-style-outline .wp-block-button__link,
.sli-cta-band.is-style-section-ink .wp-block-button.is-style-outline .wp-block-button__link {
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.7);
}
.wp-block-group.is-style-section-ink a:focus-visible,
.sli-cta-band.is-style-section-ink a:focus-visible {
	outline: 3px solid var(--wp--preset--color--amber);
	outline-offset: 4px;
}

/* ----------------------------------------------------------------------------
 * 2. Typographic block styles
 * ------------------------------------------------------------------------- */
/* Eyebrow: uppercase, tracked, small — Blue or Muted, with the amber accent rule. */
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	margin-bottom: var(--wp--preset--spacing--12);
}
/* The Amber Spark: 24×3px rule above key eyebrows. Opt-in via the accent utility. */
.is-style-eyebrow.has-accent-rule::before,
.is-style-eyebrow.sli-accent::before {
	content: "";
	display: block;
	width: 24px;
	height: 3px;
	margin-bottom: var(--wp--preset--spacing--12);
	background-color: var(--wp--preset--color--amber);
	border-radius: var(--wp--custom--radius--pill);
}

/* Lead: the 1–2 sentence intro under each section H2. */
.is-style-lead {
	font-size: var(--wp--preset--font-size--medium) !important;
	line-height: 1.6 !important;
	color: var(--wp--preset--color--body);
	max-width: var(--wp--custom--prose--measure);
}

/* Badge / pill: cert + spec chips. */
.is-style-badge {
	display: inline-block;
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	color: var(--wp--preset--color--primary);
	background-color: var(--wp--preset--color--sky);
	padding: 0.35em 0.85em;
	border-radius: var(--wp--custom--radius--pill);
}

/* ----------------------------------------------------------------------------
 * 3. Buttons — Secondary (outline) hover, primary lift, text-link chevron
 * ------------------------------------------------------------------------- */
.wp-block-button__link {
	transition: background-color 200ms ease-out, transform 200ms ease-out, box-shadow 200ms ease-out;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	transform: translateY(-1px);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--sky) !important;
	border-color: var(--wp--preset--color--primary) !important;
}

/* Button label legibility: every FILLED button keeps crisp white text (no
   inherited grey). Outline "Secondary" buttons use strong primary blue on light
   grounds; the section-ink / cta-band overrides above flip them white on dark. */
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform-footer button {
	color: #ffffff !important;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}

/* Text link with nudging chevron. Add class "sli-link-arrow" to a link. */
.sli-link-arrow {
	font-weight: 600;
	text-decoration: none;
}
.sli-link-arrow::after {
	content: " \2192";
	display: inline-block;
	transition: transform 200ms ease-out;
}
.sli-link-arrow:hover::after {
	transform: translateX(2px);
}

/* ----------------------------------------------------------------------------
 * 4. Cards — group/column with the "sli-card" utility, hover lift
 * ------------------------------------------------------------------------- */
.sli-card {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--32);
	box-shadow: var(--wp--custom--shadow--rest);
	transition: transform 200ms ease-out, box-shadow 200ms ease-out;
	height: 100%;
}
.sli-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--wp--custom--shadow--hover);
}

/* Icon chip: 48px Sky rounded square for a stroke icon. */
.sli-icon-chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 12px;
	background-color: var(--wp--preset--color--sky);
	color: var(--wp--preset--color--primary);
}

/* ----------------------------------------------------------------------------
 * 5. Framed imagery (core/image block styles) — the photo rescue system
 * ------------------------------------------------------------------------- */
.wp-block-image.is-style-framed img,
.wp-block-image.is-style-framed-caption img {
	border-radius: var(--wp--custom--radius--card);
	border: 1px solid var(--wp--preset--color--border);
	object-fit: cover;
	display: block;
	width: 100%;
}
.wp-block-image.is-style-framed-caption {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	overflow: hidden;
	box-shadow: var(--wp--custom--shadow--rest);
}
.wp-block-image.is-style-framed-caption img {
	border: 0;
	border-radius: 0;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
}
.wp-block-image.is-style-framed-caption figcaption {
	margin: 0;
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--16);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	background-color: var(--wp--preset--color--base);
	border-top: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

/* ----------------------------------------------------------------------------
 * 6. Spec Table (core/table block style) — the signature element
 * ------------------------------------------------------------------------- */
.wp-block-table.is-style-spec table {
	border-collapse: collapse;
	width: 100%;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	overflow: hidden;
}
.wp-block-table.is-style-spec :where(th, td) {
	padding: var(--wp--preset--spacing--16);
	border: 1px solid var(--wp--preset--color--border);
	text-align: left;
	font-size: var(--wp--preset--font-size--normal);
	line-height: 1.5;
}
.wp-block-table.is-style-spec thead th,
.wp-block-table.is-style-spec tbody tr:first-child th {
	background-color: var(--wp--preset--color--cloud);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
}
.wp-block-table.is-style-spec td {
	color: var(--wp--preset--color--body);
	font-weight: 500;
}

/* ----------------------------------------------------------------------------
 * 7. Check List (core/list block style)
 * ------------------------------------------------------------------------- */
.wp-block-list.is-style-check {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
.wp-block-list.is-style-check li {
	position: relative;
	padding-left: var(--wp--preset--spacing--32);
	margin-bottom: var(--wp--preset--spacing--12);
	line-height: 1.6;
}
.wp-block-list.is-style-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 20px;
	height: 20px;
	border-radius: 6px;
	background-color: var(--wp--preset--color--sky);
	/* Blue check drawn as a background image (Lucide-style stroke). */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23155EEF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
}

/* ----------------------------------------------------------------------------
 * 8. Stat block (core/column block style)
 * ------------------------------------------------------------------------- */
.wp-block-column.is-style-stat {
	text-align: center;
}
.wp-block-column.is-style-stat > :first-child {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: clamp(2.5rem, 4vw, 3rem);
	line-height: 1;
	color: var(--wp--preset--color--amber);
}
.wp-block-column.is-style-stat > :last-child {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-top: var(--wp--preset--spacing--8);
}

/* ----------------------------------------------------------------------------
 * 9. Forms (Gravity Forms restyle to the system)
 * ------------------------------------------------------------------------- */
.gform_wrapper .gfield_label {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 500;
	color: var(--wp--preset--color--ink);
}
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: var(--wp--custom--radius--button) !important;
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--16) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	color: var(--wp--preset--color--ink) !important;
}
.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	outline: none !important;
	border-color: var(--wp--preset--color--primary) !important;
	box-shadow: var(--wp--custom--shadow--focus-ring) !important;
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform-footer button {
	background-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	border: 0;
	border-radius: var(--wp--custom--radius--button);
	padding: var(--wp--preset--spacing--12) var(--wp--preset--spacing--24);
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 200ms ease-out, transform 200ms ease-out;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button:hover {
	background-color: var(--wp--preset--color--primary-deep);
	transform: translateY(-1px);
}

/* ----------------------------------------------------------------------------
 * 10. Motion — single fade-up on entry (driven by motion.js adding .sli-inview)
 * ------------------------------------------------------------------------- */
.sli-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 300ms ease-out, transform 300ms ease-out;
	will-change: opacity, transform;
}
.sli-reveal.sli-inview {
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.sli-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.wp-block-button__link,
	.sli-card,
	.sli-link-arrow::after {
		transition: none !important;
	}
}

/* In the editor, never hide content behind the reveal state. */
.editor-styles-wrapper .sli-reveal {
	opacity: 1;
	transform: none;
}

/* ----------------------------------------------------------------------------
 * 11. Site chrome — header & footer (milestone 3)
 * ------------------------------------------------------------------------- */
.sli-header {
	position: sticky;
	top: 0;
	z-index: 100;
}
.sli-header .wp-block-navigation {
	--wp--preset--color--contrast: var(--wp--preset--color--ink);
}
.sli-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
}
.sli-header .wp-block-navigation a:hover .wp-block-navigation-item__label,
.sli-header .wp-block-navigation .current-menu-item > a .wp-block-navigation-item__label {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}
.sli-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border-color: var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--card);
	box-shadow: var(--wp--custom--shadow--hover);
	padding-block: var(--wp--preset--spacing--8);
}

/* Footer navigation on the Ink background. */
.sli-footer__nav .wp-block-navigation-item__content,
.sli-footer__nav a {
	color: #a9b7c9;
	font-weight: 400;
}
.sli-footer__nav a:hover .wp-block-navigation-item__label,
.sli-footer__nav a:hover {
	color: #ffffff;
	text-decoration: underline;
}
.sli-footer__nav .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--8);
}
/* The long SEO silo list flows into columns instead of one tall stack. */
.sli-footer__silo .wp-block-navigation__container {
	display: block;
	column-count: 3;
	column-gap: var(--wp--preset--spacing--32);
}
.sli-footer__silo .wp-block-navigation-item {
	break-inside: avoid;
	margin-bottom: var(--wp--preset--spacing--8);
}
@media (max-width: 782px) {
	.sli-footer__silo .wp-block-navigation__container { column-count: 2; }
	.sli-header { position: static; }
}

/* ----------------------------------------------------------------------------
 * 12. Atmosphere & texture — the "engineered light in darkness" polish layer.
 *     Blueprint grid + radial blue glow on dark sections; dot matrix on light.
 *     Upgrades existing Ink sections, CTA bands, and background heroes in place.
 * ------------------------------------------------------------------------- */
:root {
	--sli-ink-deep: #07111C;
	--sli-blue-bright: #2E7BF6;
	--sli-blueprint:
		linear-gradient(rgba(46,123,246,.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(46,123,246,.07) 1px, transparent 1px),
		linear-gradient(rgba(46,123,246,.12) 1px, transparent 1px),
		linear-gradient(90deg, rgba(46,123,246,.12) 1px, transparent 1px);
	--sli-blueprint-size: 34px 34px, 34px 34px, 170px 170px, 170px 170px;
	--sli-glow-top: radial-gradient(60% 70% at 50% -5%, rgba(46,123,246,.30), transparent 62%);
	--sli-dots: radial-gradient(rgba(21,94,239,.10) 1.1px, transparent 1.1px);
}

/* Ink sections (incl. CTA band) get depth: deep-ink ground + blueprint + glow. */
.wp-block-group.is-style-section-ink,
.sli-cta-band.is-style-section-ink {
	background-color: var(--sli-ink-deep);
}
.wp-block-group.is-style-section-ink::before,
.sli-cta-band.is-style-section-ink::before {
	background:
		var(--sli-glow-top),
		var(--sli-blueprint);
	background-size: auto, var(--sli-blueprint-size);
	background-repeat: no-repeat, repeat;
	opacity: 1;
	-webkit-mask-image: radial-gradient(130% 100% at 50% 0%, #000 55%, transparent 90%);
	mask-image: radial-gradient(130% 100% at 50% 0%, #000 55%, transparent 90%);
}

/* Utility textures for custom sections/patterns. */
.sli-blueprint { background-image: var(--sli-blueprint); background-size: var(--sli-blueprint-size); }
.sli-dots { background-image: var(--sli-dots); background-size: 22px 22px; }

/* Subtle texture on tinted LIGHT sections only — keeps white space airy.
 * Pure-white sections stay clean; Cloud sections get a barely-there dot grid,
 * Sky sections a faint hairline grid. Background-image sits under content. */
.wp-block-group.has-cloud-background-color.has-background {
	background-image: radial-gradient(rgba(21,94,239,.055) 1px, transparent 1.6px);
	background-size: 26px 26px;
}
.wp-block-group.has-sky-background-color.has-background {
	background-image:
		linear-gradient(rgba(21,94,239,.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(21,94,239,.04) 1px, transparent 1px);
	background-size: 32px 32px;
}
/* Optional soft sky-glow wash for a light hero corner (opt-in class). */
.sli-sky-wash { position: relative; }
.sli-sky-wash::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: radial-gradient(60% 70% at 92% 0%, rgba(21,94,239,.10), transparent 60%);
}
.sli-sky-wash > * { position: relative; z-index: 1; }

/* Full-bleed background hero: blueprint overlay + glow + directional scrim. */
.sli-page-header--background {
	background-color: var(--sli-ink-deep);
}
.sli-page-header--background .sli-page-header__bg img {
	object-position: center 32%;
}
.sli-page-header--background .sli-page-header__bg::after {
	background:
		linear-gradient(100deg, rgba(7,17,28,.90) 0%, rgba(7,17,28,.60) 38%, rgba(7,17,28,.12) 72%, rgba(7,17,28,.30) 100%),
		linear-gradient(0deg, rgba(7,17,28,.72), transparent 42%) !important;
}
.sli-page-header--background::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: var(--sli-blueprint);
	background-size: var(--sli-blueprint-size);
	opacity: .5;
	-webkit-mask-image: linear-gradient(105deg, #000 30%, transparent 75%);
	mask-image: linear-gradient(105deg, #000 30%, transparent 75%);
	pointer-events: none;
}
.sli-page-header--background .sli-page-header__inner { position: relative; z-index: 2; }

/* Ghost secondary button on dark/photo contexts — the white outline button
 * reads poorly over imagery, so it becomes a translucent glass button here. */
.sli-page-header--background .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-group.is-style-section-ink .wp-block-button.is-style-outline .wp-block-button__link,
.sli-cta-band .wp-block-button.is-style-outline .wp-block-button__link {
	background-color: rgba(255,255,255,.07) !important;
	color: #fff !important;
	border: 1px solid rgba(255,255,255,.30) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.sli-page-header--background .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-group.is-style-section-ink .wp-block-button.is-style-outline .wp-block-button__link:hover,
.sli-cta-band .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background-color: rgba(255,255,255,.15) !important;
	border-color: rgba(255,255,255,.55) !important;
}

/* Hero spec ticker (stat strip under the hero copy). */
.sli-ticker {
	display: flex;
	flex-wrap: wrap;
	margin-top: var(--wp--preset--spacing--48);
	border-top: 1px solid rgba(255,255,255,.14);
	padding-top: var(--wp--preset--spacing--16);
}
.sli-ticker > * {
	padding-right: var(--wp--preset--spacing--24);
	margin-right: var(--wp--preset--spacing--24);
	border-right: 1px solid rgba(255,255,255,.14);
}
.sli-ticker > *:last-child { border-right: 0; }
.sli-ticker strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: 1.5rem;
	color: #fff;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}
.sli-ticker strong em { color: var(--wp--preset--color--amber); font-style: normal; }
.sli-ticker span { font-size: .8rem; color: #9db0c7; }

/* Resource / download cards + video grid (Resources & Videos hubs). */
.sli-resource-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--24);
}
.sli-resource-card {
	position: relative;
	overflow: hidden;
	display: flex;
	gap: var(--wp--preset--spacing--16);
	align-items: flex-start;
	padding: var(--wp--preset--spacing--24);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 14px;
	box-shadow: var(--wp--custom--shadow--rest);
	text-decoration: none;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	min-height: 100%;
}
/* accent bar that draws down on hover (blue → amber, the brand spark) */
.sli-resource-card::before {
	content: "";
	position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
	background: linear-gradient(180deg, var(--wp--preset--color--primary), var(--wp--preset--color--amber));
	transform: scaleY(0); transform-origin: top;
	transition: transform .28s cubic-bezier(.16,1,.3,1);
}
.sli-resource-card:hover::before { transform: scaleY(1); }
.sli-resource-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 44px -18px rgba(21, 94, 239, 0.38);
	border-color: rgba(21, 94, 239, 0.55);
}
.sli-resource-card__icon {
	flex: 0 0 auto;
	width: 48px; height: 48px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 12px;
	background: linear-gradient(150deg, rgba(21, 94, 239, 0.14), rgba(247, 144, 9, 0.13));
	color: var(--wp--preset--color--primary);
	transition: transform .25s ease, color .25s ease;
}
.sli-resource-card:hover .sli-resource-card__icon { transform: scale(1.07) rotate(-3deg); }
.sli-resource-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.sli-resource-card__title { font-family: var(--wp--preset--font-family--heading); font-weight: 600; color: var(--wp--preset--color--ink); font-size: 1rem; line-height: 1.3; }
.sli-resource-card__meta {
	display: inline-block; font-size: .68rem; font-weight: 700; color: var(--wp--preset--color--primary);
	text-transform: uppercase; letter-spacing: .06em;
	background: rgba(21, 94, 239, 0.09); padding: .2rem .5rem; border-radius: 5px;
}
.sli-resource-card__dl { margin-top: var(--wp--preset--spacing--8); font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--primary); }
.sli-resource-card:hover .sli-resource-card__dl { text-decoration: underline; }

.sli-video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--32); align-items: stretch; }
.sli-video-grid .sli-video { margin: 0; padding: var(--wp--preset--spacing--16); background: #fff; border: 1px solid var(--wp--preset--color--border); border-radius: 16px; box-shadow: var(--wp--custom--shadow--rest); transition: transform .22s ease, box-shadow .22s ease; }
.sli-video-grid .sli-video:hover { transform: translateY(-4px); box-shadow: 0 20px 46px -22px rgba(21,94,239,.34); }
.sli-video-grid .sli-video__frame { border: 0; border-radius: 11px; box-shadow: none; }
.sli-video-grid .sli-video__caption { margin: 0; padding: 1rem .25rem .2rem; }
.sli-video-grid .sli-video__title { display: block; color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heading); font-size: 1.08rem; line-height: 1.3; }
.sli-video-grid .sli-video__description { margin: .4rem 0 0; color: #51677d; font-size: .92rem; line-height: 1.55; }

@media (max-width: 1100px) { .sli-resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .sli-resource-grid, .sli-video-grid { grid-template-columns: 1fr; } }

/* Rich footer (design polish). */
.sli-footer {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-color: var(--sli-ink-deep) !important;
	color: #9db0c7;
	padding-top: clamp(3.5rem, 6vw, 5.5rem);
	padding-bottom: var(--wp--preset--spacing--24);
	border-top: 1px solid #1b2e45;
}
.sli-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--sli-blueprint);
	background-size: var(--sli-blueprint-size);
	opacity: .5;
	-webkit-mask-image: radial-gradient(120% 90% at 15% 0%, #000, transparent 70%);
	mask-image: radial-gradient(120% 90% at 15% 0%, #000, transparent 70%);
}
.sli-footer__top { margin-bottom: var(--wp--preset--spacing--48); }
.sli-footer__logo { margin: 0 0 var(--wp--preset--spacing--16); }
.sli-footer__contact {
	list-style: none; padding: 0; margin: var(--wp--preset--spacing--24) 0 0;
	display: grid; gap: var(--wp--preset--spacing--12);
}
.sli-footer__contact li { display: flex; gap: .7rem; align-items: flex-start; font-size: .92rem; color: #9db0c7; }
.sli-footer__contact svg { flex: 0 0 auto; color: var(--sli-blue-bright); margin-top: .15rem; }
.sli-footer__social { display: flex; gap: .6rem; margin-top: var(--wp--preset--spacing--24); }
.sli-footer__social a {
	width: 38px; height: 38px; border-radius: 10px; border: 1px solid #1b2e45;
	display: flex; align-items: center; justify-content: center; color: #9db0c7; transition: .2s;
}
.sli-footer__social a:hover { color: #fff; border-color: var(--sli-blue-bright); background: rgba(46,123,246,.12); }
.sli-footer__h {
	color: #fff !important; font-family: var(--wp--preset--font-family--heading);
	font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase; font-weight: 600;
	margin: 0 0 var(--wp--preset--spacing--16);
}
.sli-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--wp--preset--spacing--12); }
.sli-footer__links a, .sli-footer__nav a { color: #9db0c7; font-size: .94rem; text-decoration: none; }
.sli-footer__links a:hover, .sli-footer__nav a:hover { color: #fff; }
.sli-footer__certs {
	display: flex; gap: .6rem; flex-wrap: wrap;
	padding-block: var(--wp--preset--spacing--24); border-top: 1px solid #1b2e45;
}
.sli-footer__certs span {
	font-size: .72rem; font-weight: 600; letter-spacing: .06em; color: #bcd0ea;
	border: 1px solid #1b2e45; background: rgba(46,123,246,.06); padding: .4rem .8rem; border-radius: 8px;
}
.sli-footer__bar {
	border-top: 1px solid #1b2e45; padding-top: var(--wp--preset--spacing--16);
	color: #6d8098; font-size: .85rem;
}
.sli-footer__bar p { color: #6d8098; }
.sli-footer__bar a { color: #6d8098; text-decoration: none; }
.sli-footer__bar a:hover { color: #fff; }

/* Glass cards for dark capability sections (utility + registered block style). */
.sli-glass,
.wp-block-group.is-style-glass {
	background: linear-gradient(180deg, rgba(46,123,246,.09), rgba(255,255,255,.02));
	border: 1px solid rgba(46,123,246,.22);
	border-radius: var(--wp--custom--radius--card);
	padding: var(--wp--preset--spacing--32);
	transition: transform .25s ease, border-color .25s ease, background .25s ease;
	height: 100%;
}
.sli-glass:hover,
.wp-block-group.is-style-glass:hover {
	transform: translateY(-4px);
	border-color: rgba(46,123,246,.5);
	background: linear-gradient(180deg, rgba(46,123,246,.16), rgba(255,255,255,.03));
}
.sli-glass :where(h1,h2,h3,h4),
.wp-block-group.is-style-glass :where(h1,h2,h3,h4) { color: #fff; }
.sli-glass p,
.wp-block-group.is-style-glass p { color: #9db0c7; }
.sli-glass .sli-icon-chip,
.wp-block-group.is-style-glass .sli-icon-chip {
	background: rgba(46,123,246,.16);
	border: 1px solid rgba(46,123,246,.3);
	color: #7db0ff;
	margin-bottom: var(--wp--preset--spacing--12);
}

/* Blog post cards (index/archive). */
.sli-post-card {
	display: flex;
	flex-direction: column;
	padding: var(--wp--preset--spacing--16);
}
.sli-post-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
}
.sli-post-card .wp-block-post-title { font-size: var(--wp--preset--font-size--large); }
.sli-post-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--ink); }
.sli-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.sli-post-card .wp-block-post-excerpt { color: var(--wp--preset--color--body); font-size: var(--wp--preset--font-size--small); }
.sli-post-card .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--primary); font-weight: 600; text-decoration: none; }

/* In-body links (blog posts, pages) must not rely on color alone (WCAG 1.4.1) —
   theme.json sets the global link element to textDecoration:none for nav/card/
   button contexts, which have other affordances; body prose links don't, so
   they get their underline back here, scoped to entry-content only. */
.entry-content a:not(.wp-block-button__link) {
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
	text-underline-offset: 0.15em;
}
.entry-content a:not(.wp-block-button__link):hover,
.entry-content a:not(.wp-block-button__link):focus-visible {
	text-decoration-color: currentColor;
}

/* Interior hubs: true full-bleed bands with centered, readable inner content. */
.wp-site-blocks { overflow: clip; }
.wp-block-post-content > .alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}
.page-id-25600 .wp-block-post-content > .wp-block-group:first-child,
.page-id-25603 .wp-block-post-content > .wp-block-group:first-child {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	text-align: center;
	background: radial-gradient(70% 120% at 50% -20%, rgba(21,94,239,.16), transparent 68%), var(--wp--preset--color--cloud) !important;
}

/* Native interior-page heroes share the same centered, high-contrast treatment. */
body.page .wp-block-post-content > .wp-block-group:first-child.alignfull.has-cloud-background-color {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	text-align: center;
	background: radial-gradient(70% 120% at 50% -20%, rgba(21,94,239,.16), transparent 68%), var(--wp--preset--color--cloud) !important;
}
body.page .wp-block-post-content > .wp-block-group:first-child.alignfull.has-cloud-background-color > :where(h1,h2,p,.wp-block-buttons) {
	max-width: 780px;
	margin-inline: auto;
}
body.page .wp-block-post-content > .wp-block-group:first-child.alignfull.has-cloud-background-color :where(h1,h2) { text-wrap: balance; }
body.page .wp-block-post-content > .wp-block-group:first-child.alignfull.has-cloud-background-color .is-style-lead { color: #405a73; line-height: 1.65; }
.page-id-25600 .wp-block-post-content > .wp-block-group:first-child::before,
.page-id-25603 .wp-block-post-content > .wp-block-group:first-child::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: var(--sli-dots);
	background-size: 22px 22px;
	opacity: .55;
	-webkit-mask-image: linear-gradient(to bottom, #000, transparent 82%);
	mask-image: linear-gradient(to bottom, #000, transparent 82%);
}
.page-id-25600 .wp-block-post-content > .wp-block-group:first-child h1,
.page-id-25603 .wp-block-post-content > .wp-block-group:first-child h1 { max-width: 780px; margin-inline: auto; text-wrap: balance; }
.page-id-25600 .wp-block-post-content > .wp-block-group:first-child .is-style-lead,
.page-id-25603 .wp-block-post-content > .wp-block-group:first-child .is-style-lead { max-width: 720px; margin-inline: auto; color: #405a73; line-height: 1.65; }
.page-id-25600 .wp-block-post-content > .wp-block-group:not(:first-child) > h2,
.page-id-25603 .wp-block-post-content > .wp-block-group:not(:first-child) > h2 { max-width: 760px; margin: 0 auto var(--wp--preset--spacing--32); text-align: center; text-wrap: balance; }
.sli-cta-band.alignfull { width: 100vw; max-width: none; min-height: clamp(390px, 42vw, 520px); display: grid; place-items: center; padding-block: clamp(5rem, 9vw, 8rem); }
.sli-cta-band .sli-cta-band__inner { width: min(760px, calc(100% - 3rem)); max-width: 760px; }
.sli-cta-band .sli-cta-band__inner h2 { color: #fff; font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.05; text-wrap: balance; }
.sli-cta-band .sli-cta-band__inner > p:not(.is-style-eyebrow) { max-width: 620px; margin-inline: auto; color: #c8d6e5; font-size: 1.08rem; line-height: 1.65; }

/* Sitemap: turn the plugin's legacy list into a readable responsive directory. */
.sli-sitemap-section .wsp-container > h2 { margin-top: 0; text-align: center; }
.sli-sitemap-section .wsp-container > ul,
.sli-sitemap-section .wsp-pages-list {
	columns: 3 260px;
	column-gap: var(--wp--preset--spacing--32);
	list-style: none;
	padding: 0;
	margin: var(--wp--preset--spacing--32) 0 0;
}
.sli-sitemap-section .wsp-container li { break-inside: avoid; margin: 0 0 .55rem; }
.sli-sitemap-section .wsp-container li a {
	display: block;
	padding: .7rem .85rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-weight: 500;
	text-decoration: none;
	transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.sli-sitemap-section .wsp-container li a:hover { color: var(--wp--preset--color--primary); border-color: rgba(21,94,239,.4); background: #f6f9ff; }

/* Reusable interior bands — homepage atmosphere with constrained inner content. */
.sli-interior-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.sli-interior-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
}
.sli-interior-band--cloud {
	background: linear-gradient(180deg, #f7f9fc 0%, #eff5ff 100%);
}
.sli-interior-band--cloud::before {
	background:
		radial-gradient(55% 90% at 8% 20%, rgba(21,94,239,.11), transparent 68%),
		var(--sli-dots);
	background-size: auto, 24px 24px;
	opacity: .62;
	-webkit-mask-image: linear-gradient(90deg, #000, transparent 78%);
	mask-image: linear-gradient(90deg, #000, transparent 78%);
}
.sli-interior-band--ink {
	background-color: var(--sli-ink-deep);
	color: #fff;
}
.sli-interior-band--ink::before {
	background: var(--sli-glow-top), var(--sli-blueprint);
	background-size: auto, var(--sli-blueprint-size);
	opacity: .82;
	-webkit-mask-image: radial-gradient(125% 110% at 50% 0%, #000 52%, transparent 92%);
	mask-image: radial-gradient(125% 110% at 50% 0%, #000 52%, transparent 92%);
}
.sli-interior-band__heading { max-width: 760px; margin: 0 auto var(--wp--preset--spacing--16); text-align: center; text-wrap: balance; }
.sli-interior-band__lead { max-width: 700px; margin: 0 auto var(--wp--preset--spacing--48); text-align: center; color: #51677d; line-height: 1.65; }

/* Customers proof section. The testimonial copy and logo slots remain intact. */
.page-id-18408 .sli-proof-section .sli-testimonial { max-width: 940px; }
.page-id-18408 .sli-proof-section .sli-testimonial__card {
	position: relative;
	padding: clamp(2rem,5vw,4rem);
	background: rgba(255,255,255,.94);
	border: 1px solid rgba(21,94,239,.14);
	border-radius: 20px;
	box-shadow: 0 30px 70px -44px rgba(12,27,42,.5);
}
.page-id-18408 .sli-proof-section .sli-testimonial__card::before {
	content: "“";
	position: absolute;
	top: .5rem;
	left: 1.4rem;
	font-family: Georgia, serif;
	font-size: 6rem;
	line-height: 1;
	color: rgba(21,94,239,.10);
}
.page-id-18408 .sli-proof-section .sli-testimonial__quote { position: relative; font-size: clamp(1.25rem,2.3vw,1.75rem); line-height: 1.5; text-wrap: balance; }
.page-id-18408 .sli-proof-section .sli-testimonial__logos { gap: var(--wp--preset--spacing--24); margin-top: var(--wp--preset--spacing--32); }
.page-id-18408 .sli-proof-section .sli-testimonial__logos .wp-block-image {
	width: 150px;
	min-height: 72px;
	padding: .75rem;
	display: grid;
	place-items: center;
	background: rgba(255,255,255,.72);
	border: 1px solid rgba(12,27,42,.09);
	border-radius: 10px;
}
.page-id-18408 .sli-proof-section .sli-testimonial__logos img { width: 100%; max-height: 46px; object-fit: contain; }
.page-id-18408 .sli-proof-section .wp-block-buttons { justify-content: center; margin-top: var(--wp--preset--spacing--48); }
.page-id-18408 .sli-stats-band .sli-stat-row { width: min(1200px,calc(100% - 3rem)); margin-inline: auto; }
.page-id-18408 .sli-stats-band .sli-stat { padding-block: clamp(1.5rem,4vw,2.75rem); border-color: rgba(255,255,255,.15); }
.page-id-18408 .sli-stats-band .sli-stat__number { color: var(--wp--preset--color--amber); }
.page-id-18408 .sli-stats-band .sli-stat__label { color: #b9c8d8; }

@media (max-width: 640px) {
	.page-id-18408 .sli-stats-band .sli-stat { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.15); }
	.page-id-18408 .sli-proof-section .sli-testimonial__logos .wp-block-image { width: calc(50% - .75rem); }
}

/* Native interior family: make every direct section a centered full-width band. */
:is(
	body.page-id-13,
	body.page-id-1745,
	body.page-id-18408,
	body.page-id-23891,
	body.page-id-18129,
	body.page-id-2066,
	body.page-id-24128,
	body.page-id-23973,
	body.page-id-25600,
	body.page-id-25603
) .wp-block-post-content > .wp-block-group {
	box-sizing: border-box;
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	padding-inline: clamp(1.5rem,5vw,2rem);
}
:is(
	body.page-id-13,
	body.page-id-1745,
	body.page-id-18408,
	body.page-id-23891,
	body.page-id-18129,
	body.page-id-2066,
	body.page-id-24128,
	body.page-id-23973,
	body.page-id-25600,
	body.page-id-25603
) .wp-block-post-content > .wp-block-group:not(:first-child):not(.has-background):not(.sli-interior-band):nth-of-type(even) {
	background-color: var(--wp--preset--color--cloud);
	background-image:
		radial-gradient(55% 90% at 8% 20%, rgba(21,94,239,.08), transparent 68%),
		var(--sli-dots);
	background-size: auto, 26px 26px;
}
:is(
	body.page-id-13,
	body.page-id-1745,
	body.page-id-18408,
	body.page-id-23891,
	body.page-id-18129,
	body.page-id-2066,
	body.page-id-24128,
	body.page-id-23973,
	body.page-id-25600,
	body.page-id-25603
) .wp-block-post-content > .wp-block-group:not(:first-child):not(.has-background):not(.sli-interior-band):nth-of-type(odd) {
	background-color: #fff;
}
.wp-block-post-content > .sli-cta-band {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}
