/**
 * Air Wing Content Generator — Shared Gutenberg Component Layer
 *
 * Reusable UI primitives (buttons, badges, eyebrows, button rows, chips, cards, lists) powered by
 * Blocksy's Global Palette (--theme-palette-color-*), Section Color Schemes, and the WPALG Font Registry.
 */

/* ==========================================================================
   0. Section Color Schemes & Block Reset
   ========================================================================== */

/**
 * Universal Section Margin Reset
 * Eliminates default WordPress theme/core vertical block margins so full-width sections flow flush.
 */
.awb-hero-pillars,
.awb-hero-split-card,
.awb-hero-lead-capture,
.awb-hero-centered-spotlight,
.awb-contact-split-map,
.awb-about-overview,
.awb-services-cards,
.awb-services-editorial,
.awb-services-tabs,
.awb-service-areas-map,
.awb-why-us-matrix,
.awb-why-us-split,
.awb-faq-accordion,
.awb-reviews-grid,
.awb-cta-banner,
.awb-content-split-media,
.awb-content-split-showcase,
[class*="wp-block-air-wing-blocks-"],
.entry-content > [class*="awb-"],
.editor-styles-wrapper [class*="awb-"] {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* ==========================================================================
   0a. Theme Typography Reset (Let Active Theme Headings Cascade)
   ========================================================================== */

/* Do not declare font-family on headings so theme rules (h1, h2, h3) apply naturally */


/* ==========================================================================
   0b. Shared Subtle Background Pattern Overlays
   ========================================================================== */

.awb-pattern-overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 1;
	color: var(--text-light);
	opacity: 0.055;
	transition: opacity 0.3s ease;
}

/* Color Scheme Modifiers */
.is-scheme-dark .awb-pattern-overlay,
[data-scheme="dark"] .awb-pattern-overlay {
	color: var(--text-light);
	opacity: 0.055;
}

.is-scheme-light .awb-pattern-overlay,
[data-scheme="light"] .awb-pattern-overlay {
	color: var(--theme-palette-color-4);
	opacity: 0.038;
}

.is-scheme-accent .awb-pattern-overlay,
[data-scheme="accent"] .awb-pattern-overlay {
	color: var(--text-light);
	opacity: 0.13;
}

/* 1. Diagonal Pin Stripes */
.awb-pattern-overlay--pinstripes,
.awb-pattern-overlay--stripes,
.has-pattern--pinstripes > .awb-pattern-overlay,
.has-pattern--stripes > .awb-pattern-overlay {
	background-image: repeating-linear-gradient(
		-45deg,
		currentColor 0,
		currentColor 1px,
		transparent 1px,
		transparent 30px
	);
}

/* 2. Subtle Dot Grid */
.awb-pattern-overlay--dots,
.has-pattern--dots > .awb-pattern-overlay {
	background-image: radial-gradient(circle at 1px 1px, currentColor 1.25px, transparent 0);
	background-size: 24px 24px;
}

/* 3. Architectural Tech Grid (Graph Grid) */
.awb-pattern-overlay--grid,
.has-pattern--grid > .awb-pattern-overlay {
	background-image:
		linear-gradient(to right, currentColor 1px, transparent 1px),
		linear-gradient(to bottom, currentColor 1px, transparent 1px);
	background-size: 32px 32px;
}

/* 4. Diamond Crosshatch */
.awb-pattern-overlay--crosshatch,
.awb-pattern-overlay--diamonds,
.has-pattern--crosshatch > .awb-pattern-overlay,
.has-pattern--diamonds > .awb-pattern-overlay {
	background-image:
		repeating-linear-gradient(45deg, currentColor 0, currentColor 1px, transparent 1px, transparent 28px),
		repeating-linear-gradient(-45deg, currentColor 0, currentColor 1px, transparent 1px, transparent 28px);
}

/* 5. Cross / Plus Markers */
.awb-pattern-overlay--plus,
.has-pattern--plus > .awb-pattern-overlay {
	background-image:
		radial-gradient(circle at 50% 50%, currentColor 1.5px, transparent 1.5px),
		linear-gradient(to right, transparent calc(50% - 3px), currentColor calc(50% - 3px), currentColor calc(50% + 3px), transparent calc(50% + 3px)),
		linear-gradient(to bottom, transparent calc(50% - 3px), currentColor calc(50% - 3px), currentColor calc(50% + 3px), transparent calc(50% + 3px));
	background-size: 36px 36px;
}

/* 6. Vertical Pin Lines */
.awb-pattern-overlay--lines,
.awb-pattern-overlay--vertical-lines,
.has-pattern--lines > .awb-pattern-overlay,
.has-pattern--vertical-lines > .awb-pattern-overlay {
	background-image: repeating-linear-gradient(
		90deg,
		currentColor 0,
		currentColor 1px,
		transparent 1px,
		transparent 28px
	);
}

/* 7. Isometric 3D Mesh */
.awb-pattern-overlay--isometric,
.has-pattern--isometric > .awb-pattern-overlay {
	background-image:
		linear-gradient(30deg, currentColor 1px, transparent 1px),
		linear-gradient(150deg, currentColor 1px, transparent 1px),
		linear-gradient(270deg, currentColor 1px, transparent 1px);
	background-size: 36px 62.35px;
}

/* 8. Topographic Wave Curves */
.awb-pattern-overlay--waves,
.awb-pattern-overlay--topography,
.has-pattern--waves > .awb-pattern-overlay,
.has-pattern--topography > .awb-pattern-overlay {
	background-image:
		repeating-radial-gradient(
			circle at 0 0,
			transparent 0,
			currentColor 1px,
			transparent 2px,
			transparent 28px
		);
}

/* Density tuning for dual-axis patterns */
.is-scheme-dark .awb-pattern-overlay--grid,
.is-scheme-dark .awb-pattern-overlay--crosshatch,
.is-scheme-dark .awb-pattern-overlay--isometric,
.is-scheme-dark .awb-pattern-overlay--waves {
	opacity: 0.04;
}

.is-scheme-light .awb-pattern-overlay--grid,
.is-scheme-light .awb-pattern-overlay--crosshatch,
.is-scheme-light .awb-pattern-overlay--isometric,
.is-scheme-light .awb-pattern-overlay--waves {
	opacity: 0.026;
}

.is-scheme-accent .awb-pattern-overlay--grid,
.is-scheme-accent .awb-pattern-overlay--crosshatch,
.is-scheme-accent .awb-pattern-overlay--isometric,
.is-scheme-accent .awb-pattern-overlay--waves {
	opacity: 0.095;
}

/**
 * Dark Scheme (Default for Heroes & High-Impact Editorial Sections)
 *
 * Inverted palette roles: Color 4 (headings in light) becomes the primary surface.
 * Background gradients blend Color 4 (main) with a lighter tint of Color 4.
 * Color 7/8 supply light typography.
 */
.is-scheme-dark,
[data-scheme="dark"] {
	--accent: var(--theme-palette-color-1);
	--accent-alt: var(--theme-palette-color-2);
	--text-light: var(--theme-palette-color-7);
	--text-heading: var(--theme-palette-color-7);
	--text-body: color-mix(in srgb, var(--theme-palette-color-7) 88%, transparent);
	--text-muted: color-mix(in srgb, var(--theme-palette-color-8) 75%, transparent);
	--line: color-mix(in srgb, var(--theme-palette-color-7) 14%, transparent);
	--surface-gradient-from: color-mix(in srgb, var(--wpalg-dark-surface, var(--theme-palette-color-4)) 92%, white);
	--surface-gradient-to: var(--wpalg-dark-bg, var(--theme-palette-color-4));
	--surface-deep: var(--surface-gradient-to);
	--surface: var(--surface-gradient-from);
	--surface-dark: var(--wpalg-dark-surface-elevated, color-mix(in srgb, var(--theme-palette-color-4) 82%, black));
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 4%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 12%, transparent);
	--btn-primary-text: var(--theme-palette-color-8);
	color-scheme: dark;
}

/**
 * Light Scheme (Clean White/Off-White Background with Crisp Dark Typography)
 */
.is-scheme-light,
[data-scheme="light"] {
	--accent: var(--theme-palette-color-1);
	--accent-alt: var(--theme-palette-color-2);
	--text-light: var(--theme-palette-color-4);
	--text-heading: var(--theme-palette-color-4);
	--text-body: var(--theme-palette-color-3);
	--text-muted: color-mix(in srgb, var(--theme-palette-color-3) 65%, var(--theme-palette-color-7));
	--line: var(--theme-palette-color-5);
	--surface-gradient-from: var(--theme-palette-color-8);
	--surface-gradient-to: var(--theme-palette-color-7);
	--surface-deep: var(--surface-gradient-to);
	--surface: var(--surface-gradient-from);
	--surface-dark: var(--theme-palette-color-6);
	--surface-card: var(--theme-palette-color-7);
	--surface-card-border: var(--theme-palette-color-5);
	--btn-primary-text: var(--theme-palette-color-4);
	color-scheme: light;
}

/**
 * Accent Scheme (Solid Brand Color for High-Converting CTA Banners)
 */
.is-scheme-accent,
[data-scheme="accent"] {
	--accent: var(--theme-palette-color-7);
	--accent-alt: var(--theme-palette-color-2);
	--text-light: var(--theme-palette-color-7);
	--text-heading: var(--theme-palette-color-7);
	--text-body: color-mix(in srgb, var(--theme-palette-color-7) 92%, transparent);
	--text-muted: color-mix(in srgb, var(--theme-palette-color-7) 72%, transparent);
	--line: color-mix(in srgb, var(--theme-palette-color-7) 22%, transparent);
	--surface-deep: var(--theme-palette-color-1);
	--surface: color-mix(in srgb, var(--theme-palette-color-1) 90%, black);
	--surface-dark: color-mix(in srgb, var(--theme-palette-color-1) 80%, black);
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 12%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 25%, transparent);
	color-scheme: dark;
}

/**
 * Warm Scheme (Neutral Tint — aliases Light for legacy blocks like service-areas-map)
 */
.is-scheme-warm,
[data-scheme="warm"] {
	--accent: var(--theme-palette-color-1);
	--accent-alt: var(--theme-palette-color-2);
	--text-light: var(--theme-palette-color-4);
	--text-heading: var(--theme-palette-color-4);
	--text-body: var(--theme-palette-color-3);
	--text-muted: color-mix(in srgb, var(--theme-palette-color-3) 65%, var(--theme-palette-color-7));
	--line: var(--theme-palette-color-5);
	--surface-gradient-from: var(--theme-palette-color-8);
	--surface-gradient-to: var(--theme-palette-color-7);
	--surface-deep: var(--surface-gradient-to);
	--surface: var(--surface-gradient-from);
	--surface-dark: var(--theme-palette-color-6);
	--surface-card: var(--theme-palette-color-7);
	--surface-card-border: var(--theme-palette-color-5);
	--btn-primary-text: var(--theme-palette-color-4);
	color-scheme: light;
}

/* ==========================================================================
   0c. Site-Wide Design Tokens (Style Preset Defaults)
   ========================================================================== */

:root,
body,
.editor-styles-wrapper {
	/* Container / surface material */
	--awb-container-backdrop-filter: blur(12px);
	--awb-container-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);

	/* Primary button fill & depth */
	--awb-btn-primary-bg-color: transparent;
	--awb-btn-primary-bg-image: linear-gradient(180deg, var(--accent-alt), var(--accent));
	--awb-btn-primary-bg: linear-gradient(180deg, var(--accent-alt), var(--accent));
	--awb-btn-primary-border: 1px solid rgba(0, 0, 0, 0.15);
	--awb-btn-primary-shadow: 0 8px 24px -8px color-mix(in srgb, var(--accent) 60%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.35);
	--awb-btn-primary-shadow-hover: 0 12px 28px -8px color-mix(in srgb, var(--accent) 75%, transparent);
	--awb-btn-primary-hover-transform: translateY(-2px);
	--awb-btn-primary-hover-filter: none;

	/* Secondary button glass tint (used when container material is glass) */
	--awb-btn-secondary-bg: transparent;
	--awb-btn-secondary-backdrop-filter: none;
}

/**
 * Shared elevated container material.
 * Applied to cards, form panels, trust strips, and tab panels that opt in via class or --surface-card.
 */
.awb-surface {
	background: var(--surface-card);
	border: 1px solid var(--surface-card-border, var(--line));
	box-shadow: var(--awb-container-shadow, none);
	backdrop-filter: var(--awb-container-backdrop-filter, none);
	-webkit-backdrop-filter: var(--awb-container-backdrop-filter, none);
}

/**
 * Propagate container material tokens to all block-level elevated surfaces.
 */
.awb-card,
.awb-services-cards__card,
.awb-reviews-grid__card,
.awb-faq-accordion__item,
.awb-hero-lead-capture__form-card,
.awb-hero-centered-spotlight__trust-strip,
.awb-services-tabs__panel,
.awb-why-us-split__stat-card,
.awb-why-us-matrix__card,
.awb-about-overview__card {
	backdrop-filter: var(--awb-container-backdrop-filter, none);
	-webkit-backdrop-filter: var(--awb-container-backdrop-filter, none);
}

/* -------------------------------------------------------------------------
   Container Material Presets
   ------------------------------------------------------------------------- */

/* Glass — frosted translucent surfaces (default) */
body.awb-container-style-glass .is-scheme-dark,
body.awb-container-style-glass [data-scheme="dark"],
body.wpalg-container-style-glass .is-scheme-dark,
body.wpalg-container-style-glass [data-scheme="dark"],
.editor-styles-wrapper.awb-container-style-glass .is-scheme-dark,
.editor-styles-wrapper.wpalg-container-style-glass .is-scheme-dark {
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 8%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 14%, transparent);
}

body.awb-container-style-glass .is-scheme-light,
body.awb-container-style-glass [data-scheme="light"],
body.awb-container-style-glass .is-scheme-warm,
body.awb-container-style-glass [data-scheme="warm"],
body.wpalg-container-style-glass .is-scheme-light,
body.wpalg-container-style-glass [data-scheme="light"],
.editor-styles-wrapper.awb-container-style-glass .is-scheme-light,
.editor-styles-wrapper.wpalg-container-style-glass .is-scheme-light {
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 88%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-5) 80%, transparent);
}

body.awb-container-style-glass .is-scheme-accent,
body.awb-container-style-glass [data-scheme="accent"],
body.wpalg-container-style-glass .is-scheme-accent,
body.wpalg-container-style-glass [data-scheme="accent"],
.editor-styles-wrapper.awb-container-style-glass .is-scheme-accent,
.editor-styles-wrapper.wpalg-container-style-glass .is-scheme-accent {
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 14%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 28%, transparent);
}

body.awb-container-style-glass,
body.wpalg-container-style-glass,
.editor-styles-wrapper.awb-container-style-glass,
.editor-styles-wrapper.wpalg-container-style-glass {
	--awb-container-backdrop-filter: blur(12px);
	--awb-container-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
	--awb-btn-secondary-bg: color-mix(in srgb, var(--theme-palette-color-7) 6%, transparent);
	--awb-btn-secondary-backdrop-filter: blur(8px);
}

/* Solid — opaque surfaces, no blur */
body.awb-container-style-solid .is-scheme-dark,
body.awb-container-style-solid [data-scheme="dark"],
body.wpalg-container-style-solid .is-scheme-dark,
body.wpalg-container-style-solid [data-scheme="dark"],
.editor-styles-wrapper.awb-container-style-solid .is-scheme-dark,
.editor-styles-wrapper.wpalg-container-style-solid .is-scheme-dark {
	--surface-card: var(--wpalg-dark-surface-elevated, color-mix(in srgb, var(--theme-palette-color-4) 88%, white));
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 12%, transparent);
}

body.awb-container-style-solid .is-scheme-light,
body.awb-container-style-solid [data-scheme="light"],
body.awb-container-style-solid .is-scheme-warm,
body.awb-container-style-solid [data-scheme="warm"],
body.wpalg-container-style-solid .is-scheme-light,
body.wpalg-container-style-solid [data-scheme="light"],
.editor-styles-wrapper.awb-container-style-solid .is-scheme-light,
.editor-styles-wrapper.wpalg-container-style-solid .is-scheme-light {
	--surface-card: var(--theme-palette-color-7);
	--surface-card-border: var(--theme-palette-color-5);
}

body.awb-container-style-solid .is-scheme-accent,
body.awb-container-style-solid [data-scheme="accent"],
body.wpalg-container-style-solid .is-scheme-accent,
body.wpalg-container-style-solid [data-scheme="accent"],
.editor-styles-wrapper.awb-container-style-solid .is-scheme-accent,
.editor-styles-wrapper.wpalg-container-style-solid .is-scheme-accent {
	--surface-card: var(--theme-palette-color-7);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-5) 80%, var(--theme-palette-color-1));
}

body.awb-container-style-solid,
body.wpalg-container-style-solid,
.editor-styles-wrapper.awb-container-style-solid,
.editor-styles-wrapper.wpalg-container-style-solid {
	--awb-container-backdrop-filter: none;
	--awb-container-shadow: none;
	--awb-btn-secondary-bg: transparent;
	--awb-btn-secondary-backdrop-filter: none;
}

/* Flat — transparent / border-only containers */
body.awb-container-style-flat .is-scheme-dark,
body.awb-container-style-flat [data-scheme="dark"],
body.wpalg-container-style-flat .is-scheme-dark,
body.wpalg-container-style-flat [data-scheme="dark"],
.editor-styles-wrapper.awb-container-style-flat .is-scheme-dark,
.editor-styles-wrapper.wpalg-container-style-flat .is-scheme-dark {
	--surface-card: transparent;
	--surface-card-border: var(--line);
}

body.awb-container-style-flat .is-scheme-light,
body.awb-container-style-flat [data-scheme="light"],
body.awb-container-style-flat .is-scheme-warm,
body.awb-container-style-flat [data-scheme="warm"],
body.wpalg-container-style-flat .is-scheme-light,
body.wpalg-container-style-flat [data-scheme="light"],
.editor-styles-wrapper.awb-container-style-flat .is-scheme-light,
.editor-styles-wrapper.wpalg-container-style-flat .is-scheme-light {
	--surface-card: transparent;
	--surface-card-border: var(--theme-palette-color-5);
}

body.awb-container-style-flat .is-scheme-accent,
body.awb-container-style-flat [data-scheme="accent"],
body.wpalg-container-style-flat .is-scheme-accent,
body.wpalg-container-style-flat [data-scheme="accent"],
.editor-styles-wrapper.awb-container-style-flat .is-scheme-accent,
.editor-styles-wrapper.wpalg-container-style-flat .is-scheme-accent {
	--surface-card: transparent;
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 35%, transparent);
}

body.awb-container-style-flat,
body.wpalg-container-style-flat,
.editor-styles-wrapper.awb-container-style-flat,
.editor-styles-wrapper.wpalg-container-style-flat {
	--awb-container-backdrop-filter: none;
	--awb-container-shadow: none;
	--awb-btn-secondary-bg: transparent;
	--awb-btn-secondary-backdrop-filter: none;
}

/* Elevated — opaque surfaces with soft drop shadow */
body.awb-container-style-elevated .is-scheme-dark,
body.awb-container-style-elevated [data-scheme="dark"],
body.wpalg-container-style-elevated .is-scheme-dark,
body.wpalg-container-style-elevated [data-scheme="dark"],
.editor-styles-wrapper.awb-container-style-elevated .is-scheme-dark,
.editor-styles-wrapper.wpalg-container-style-elevated .is-scheme-dark {
	--surface-card: var(--wpalg-dark-surface-elevated, color-mix(in srgb, var(--theme-palette-color-4) 88%, white));
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 10%, transparent);
}

body.awb-container-style-elevated .is-scheme-light,
body.awb-container-style-elevated [data-scheme="light"],
body.awb-container-style-elevated .is-scheme-warm,
body.awb-container-style-elevated [data-scheme="warm"],
body.wpalg-container-style-elevated .is-scheme-light,
body.wpalg-container-style-elevated [data-scheme="light"],
.editor-styles-wrapper.awb-container-style-elevated .is-scheme-light,
.editor-styles-wrapper.wpalg-container-style-elevated .is-scheme-light {
	--surface-card: var(--theme-palette-color-7);
	--surface-card-border: var(--theme-palette-color-5);
}

body.awb-container-style-elevated .is-scheme-accent,
body.awb-container-style-elevated [data-scheme="accent"],
body.wpalg-container-style-elevated .is-scheme-accent,
body.wpalg-container-style-elevated [data-scheme="accent"],
.editor-styles-wrapper.awb-container-style-elevated .is-scheme-accent,
.editor-styles-wrapper.wpalg-container-style-elevated .is-scheme-accent {
	--surface-card: color-mix(in srgb, var(--theme-palette-color-7) 16%, transparent);
	--surface-card-border: color-mix(in srgb, var(--theme-palette-color-7) 28%, transparent);
}

body.awb-container-style-elevated,
body.wpalg-container-style-elevated,
.editor-styles-wrapper.awb-container-style-elevated,
.editor-styles-wrapper.wpalg-container-style-elevated {
	--awb-container-backdrop-filter: none;
	--awb-container-shadow: 0 10px 25px -8px rgba(0, 0, 0, 0.14);
	--awb-btn-secondary-bg: transparent;
	--awb-btn-secondary-backdrop-filter: none;
}

/* -------------------------------------------------------------------------
   Button Fill / Depth Presets
   ------------------------------------------------------------------------- */

/* Gradient Glow — default premium gradient + accent shadow */
body.awb-btn-fill-style-gradient-glow,
body.wpalg-btn-fill-style-gradient-glow,
.editor-styles-wrapper.awb-btn-fill-style-gradient-glow,
.editor-styles-wrapper.wpalg-btn-fill-style-gradient-glow {
	--awb-btn-primary-bg: linear-gradient(180deg, var(--accent-alt), var(--accent));
	--awb-btn-primary-border: 1px solid rgba(0, 0, 0, 0.15);
	--awb-btn-primary-shadow: 0 8px 24px -8px color-mix(in srgb, var(--accent) 60%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.35);
	--awb-btn-primary-shadow-hover: 0 12px 28px -8px color-mix(in srgb, var(--accent) 75%, transparent);
	--awb-btn-primary-hover-transform: translateY(-2px);
	--awb-btn-primary-hover-filter: none;
}

/* Solid — flat accent fill, subtle shadow */
body.awb-btn-fill-style-solid,
body.wpalg-btn-fill-style-solid,
.editor-styles-wrapper.awb-btn-fill-style-solid,
.editor-styles-wrapper.wpalg-btn-fill-style-solid {
	--awb-btn-primary-bg: var(--accent);
	--awb-btn-primary-border: 1px solid color-mix(in srgb, var(--accent) 80%, black);
	--awb-btn-primary-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
	--awb-btn-primary-shadow-hover: 0 6px 18px rgba(0, 0, 0, 0.16);
	--awb-btn-primary-hover-transform: translateY(-1px);
	--awb-btn-primary-hover-filter: none;
}

/* Flat — solid fill, no shadow or hover lift */
body.awb-btn-fill-style-flat,
body.wpalg-btn-fill-style-flat,
.editor-styles-wrapper.awb-btn-fill-style-flat,
.editor-styles-wrapper.wpalg-btn-fill-style-flat {
	--awb-btn-primary-bg: var(--accent);
	--awb-btn-primary-border: 1px solid var(--accent);
	--awb-btn-primary-shadow: none;
	--awb-btn-primary-shadow-hover: none;
	--awb-btn-primary-hover-transform: none;
	--awb-btn-primary-hover-filter: brightness(1.06);
}

/* Outline — transparent fill, accent border */
body.awb-btn-fill-style-outline,
body.wpalg-btn-fill-style-outline,
.editor-styles-wrapper.awb-btn-fill-style-outline,
.editor-styles-wrapper.wpalg-btn-fill-style-outline {
	--awb-btn-primary-bg: transparent;
	--awb-btn-primary-border: 2px solid var(--accent);
	--awb-btn-primary-shadow: none;
	--awb-btn-primary-shadow-hover: none;
	--awb-btn-primary-hover-transform: none;
	--awb-btn-primary-hover-filter: none;
}

body.awb-btn-fill-style-outline .awb-btn--primary,
body.wpalg-btn-fill-style-outline .awb-btn--primary,
.editor-styles-wrapper.awb-btn-fill-style-outline .awb-btn--primary,
.editor-styles-wrapper.wpalg-btn-fill-style-outline .awb-btn--primary {
	color: var(--accent);
}

body.awb-btn-fill-style-outline .is-scheme-dark .awb-btn--primary,
body.awb-btn-fill-style-outline [data-scheme="dark"] .awb-btn--primary,
body.wpalg-btn-fill-style-outline .is-scheme-dark .awb-btn--primary,
.editor-styles-wrapper.awb-btn-fill-style-outline .is-scheme-dark .awb-btn--primary {
	color: var(--accent-alt);
}

body.awb-btn-fill-style-outline .awb-btn--primary:hover,
body.wpalg-btn-fill-style-outline .awb-btn--primary:hover,
.editor-styles-wrapper.awb-btn-fill-style-outline .awb-btn--primary:hover {
	background: color-mix(in srgb, var(--accent) 10%, transparent);
	color: var(--accent);
}

/* ==========================================================================
   1. Buttons
   ========================================================================== */

/**
 * Base Button
 * Layout, sizing, reset, and interaction mechanics. No color of its own.
 */
.awb-btn,
.wpalg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 32px;
	border-radius: var(--awb-btn-radius, var(--wpalg-btn-radius, 3px));
	clip-path: var(--awb-btn-clip-path, var(--wpalg-btn-clip-path, none));
	font-family: var(--theme-button-font-family, var(--theme-font-family, inherit));
	font-size: var(--theme-button-font-size, 16px);
	font-weight: var(--theme-button-font-weight, 700);
	font-style: var(--theme-button-font-style, inherit);
	line-height: var(--theme-button-line-height, 1.2);
	text-decoration: var(--theme-button-text-decoration, none);
	letter-spacing: var(--theme-button-letter-spacing, 0.01em);
	text-transform: var(--theme-button-text-transform, none);
	box-sizing: border-box;
	cursor: pointer;
	border: 1px solid transparent;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.awb-btn:focus-visible,
.wpalg-btn:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

/**
 * Primary Button
 * Fill, border, and shadow driven by site-wide btn_fill preset tokens.
 */
.awb-btn--primary,
.wpalg-btn--primary {
	color: var(--btn-primary-text, var(--surface));
	background-color: var(--awb-btn-primary-bg-color, transparent);
	background-image: var(--awb-btn-primary-bg-image, var(--awb-btn-primary-bg, linear-gradient(180deg, var(--accent-alt), var(--accent))));
	border: var(--awb-btn-primary-border);
	box-shadow: var(--awb-btn-primary-shadow);
}

.awb-btn--primary:hover,
.awb-btn--primary:focus-visible,
.wpalg-btn--primary:hover,
.wpalg-btn--primary:focus-visible {
	transform: var(--awb-btn-primary-hover-transform, translateY(-2px));
	filter: var(--awb-btn-primary-hover-filter, none);
	box-shadow: var(--awb-btn-primary-shadow-hover);
	color: var(--btn-primary-text, var(--surface));
	text-decoration: none;
}

body.awb-btn-fill-style-outline .awb-btn--primary:hover,
body.wpalg-btn-fill-style-outline .awb-btn--primary:hover {
	color: var(--accent);
}

/**
 * Secondary Button
 * Outline style with optional glass tint from container material preset.
 */
.awb-btn--secondary,
.wpalg-btn--secondary {
	padding: 16px 24px;
	color: var(--text-light);
	border: 1px solid var(--line, var(--theme-palette-color-5, rgba(243, 241, 231, 0.14)));
	background: var(--awb-btn-secondary-bg, transparent);
	backdrop-filter: var(--awb-btn-secondary-backdrop-filter, none);
	-webkit-backdrop-filter: var(--awb-btn-secondary-backdrop-filter, none);
	box-shadow: none;
}

/**
 * Optional Monospace Button Modifier
 */
.awb-btn--mono,
.wpalg-btn--mono {
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace));
	font-weight: 400;
	letter-spacing: 0.02em;
}

.awb-btn--secondary:hover,
.awb-btn--secondary:focus-visible,
.wpalg-btn--secondary:hover,
.wpalg-btn--secondary:focus-visible {
	border-color: var(--text-muted);
	background: rgba(243, 241, 231, 0.04);
	color: var(--text-light);
	text-decoration: none;
	transform: none;
}

/* Scheme Button Variants */
.is-scheme-light .awb-btn--primary,
.is-scheme-light .wpalg-btn--primary,
[data-scheme="light"] .awb-btn--primary,
[data-scheme="light"] .wpalg-btn--primary {
	color: var(--btn-primary-text);
}

.is-scheme-light .awb-btn--secondary:hover,
.is-scheme-light .wpalg-btn--secondary:hover,
[data-scheme="light"] .awb-btn--secondary:hover,
[data-scheme="light"] .wpalg-btn--secondary:hover {
	background: rgba(0, 0, 0, 0.05);
	border-color: var(--text-muted);
	color: var(--text-light);
}

.is-scheme-accent .awb-btn--primary,
.is-scheme-accent .wpalg-btn--primary,
[data-scheme="accent"] .awb-btn--primary,
[data-scheme="accent"] .wpalg-btn--primary {
	background: var(--text-light);
	color: var(--surface-deep);
	border-color: var(--text-light);
	box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.35);
}

.is-scheme-accent .awb-btn--primary:hover,
.is-scheme-accent .wpalg-btn--primary:hover,
[data-scheme="accent"] .awb-btn--primary:hover,
[data-scheme="accent"] .wpalg-btn--primary:hover {
	background: var(--surface);
	color: var(--surface-deep);
	box-shadow: 0 12px 28px -8px rgba(0, 0, 0, 0.45);
}

.is-scheme-accent .awb-btn--secondary,
.is-scheme-accent .wpalg-btn--secondary,
[data-scheme="accent"] .awb-btn--secondary,
[data-scheme="accent"] .wpalg-btn--secondary {
	color: var(--text-light);
	border-color: rgba(255, 255, 255, 0.4);
}

.is-scheme-accent .awb-btn--secondary:hover,
.is-scheme-accent .wpalg-btn--secondary:hover,
[data-scheme="accent"] .awb-btn--secondary:hover,
[data-scheme="accent"] .wpalg-btn--secondary:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: var(--text-light);
	color: var(--text-light);
}

/**
 * Button Group Container
 * Centers buttons with uniform gap; stacks full-width on mobile.
 */
.awb-btn-row,
.wpalg-btn-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	box-sizing: border-box;
}

@media (max-width: 768px) {
	.awb-btn-row,
	.wpalg-btn-row {
		flex-direction: column;
		width: 100%;
	}

	.awb-btn-row .awb-btn,
	.awb-btn-row .wpalg-btn,
	.wpalg-btn-row .awb-btn,
	.wpalg-btn-row .wpalg-btn {
		width: 100%;
		text-align: center;
		justify-content: center;
	}
}

/* ==========================================================================
   2. Badges, Eyebrows & Chips
   ========================================================================== */

/**
 * Pill / Tag Badge
 * Subtle border with monospace uppercase text and optional leading indicator dot.
 */
.awb-badge,
.wpalg-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace));
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--text-muted);
	border: 1px solid var(--line, var(--theme-palette-color-5, rgba(243, 241, 231, 0.14)));
	padding: 8px 18px;
	border-radius: 100px;
	box-sizing: border-box;
	line-height: 1.4;
	transition: all 0.2s ease;
}

.is-scheme-light .awb-badge,
.is-scheme-light .wpalg-badge,
[data-scheme="light"] .awb-badge,
[data-scheme="light"] .wpalg-badge {
	background: rgba(0, 0, 0, 0.03);
}

.is-scheme-accent .awb-badge,
.is-scheme-accent .wpalg-badge,
[data-scheme="accent"] .awb-badge,
[data-scheme="accent"] .wpalg-badge {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.25);
	color: var(--text-light);
}

/**
 * Optional glowing indicator dot inside badge with pulsing radar ping effect
 */
.awb-badge__dot,
.wpalg-badge__dot {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--accent-alt);
	box-shadow: 0 0 8px var(--accent-alt);
	flex-shrink: 0;
	animation: awbBadgeDotGlow 2.4s ease-in-out infinite;
}

.awb-badge__dot::before,
.wpalg-badge__dot::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: inherit;
	animation: awbBadgeDotPulse 2.4s cubic-bezier(0.16, 1, 0.3, 1) infinite;
	pointer-events: none;
}

@keyframes awbBadgeDotGlow {
	0%,
	100% {
		opacity: 1;
		transform: scale(1);
	}
	50% {
		opacity: 0.7;
		transform: scale(0.9);
	}
}

@keyframes awbBadgeDotPulse {
	0% {
		transform: scale(1);
		opacity: 0.85;
	}
	70%,
	100% {
		transform: scale(2.8);
		opacity: 0;
	}
}

/**
 * Section Eyebrow Label
 * Uppercase monospace tag positioned above headings.
 */
.awb-eyebrow,
.wpalg-eyebrow {
	display: inline-block;
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace));
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--accent-alt);
	margin-bottom: 8px;
	line-height: 1.4;
	transition: all 0.2s ease;
}

.is-scheme-accent .awb-eyebrow,
.is-scheme-accent .wpalg-eyebrow,
[data-scheme="accent"] .awb-eyebrow,
[data-scheme="accent"] .wpalg-eyebrow {
	color: var(--text-light);
}

/**
 * Outline Chip Link
 * Compact bordered link with monospace typography.
 */
.awb-chip-link,
.wpalg-chip-link {
	display: inline-flex;
	align-items: center;
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace));
	color: var(--text-light);
	text-decoration: none;
	font-size: 14px;
	letter-spacing: 0.03em;
	border: 1px solid var(--line, var(--theme-palette-color-5, rgba(243, 241, 231, 0.14)));
	padding: 9px 16px;
	border-radius: 2px;
	box-sizing: border-box;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.awb-chip-link:hover,
.awb-chip-link:focus-visible,
.wpalg-chip-link:hover,
.wpalg-chip-link:focus-visible {
	border-color: var(--accent-alt);
	color: var(--accent-alt);
	text-decoration: none;
}

/* ==========================================================================
   3. Cards & Surfaces
   ========================================================================== */

/**
 * Shared Card Container
 */
.awb-card,
.wpalg-card {
	position: relative;
	box-sizing: border-box;
	padding: 28px;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

/* ==========================================================================
   4. Lists & Bullet Items
   ========================================================================== */

/**
 * Shared Feature / Trust List
 */
.awb-list,
.wpalg-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.awb-list-item,
.wpalg-list-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--text-light);
}

.awb-list-item__icon,
.wpalg-list-item__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	color: var(--accent-alt);
}

/* ==========================================================================
   5. Style Presets (Configured in Settings or Customizer)
   ========================================================================== */

/* -------------------------------------------------------------------------
   Button Style Presets
   ------------------------------------------------------------------------- */

/* Sharp — default (3px border-radius) */
body.awb-btn-style-sharp .awb-btn,
body.awb-btn-style-sharp .awb-btn--primary,
body.awb-btn-style-sharp .awb-btn--secondary,
body.wpalg-btn-style-sharp .awb-btn,
body.wpalg-btn-style-sharp .awb-btn--primary,
body.wpalg-btn-style-sharp .awb-btn--secondary,
.editor-styles-wrapper.awb-btn-style-sharp .awb-btn,
.editor-styles-wrapper.wpalg-btn-style-sharp .awb-btn,
.editor-styles-wrapper .awb-btn-style-sharp .awb-btn,
.editor-styles-wrapper .wpalg-btn-style-sharp .awb-btn {
	border-radius: 3px;
	clip-path: none;
}

/* Pill — fully rounded */
body.awb-btn-style-pill .awb-btn,
body.awb-btn-style-pill .awb-btn--primary,
body.awb-btn-style-pill .awb-btn--secondary,
body.wpalg-btn-style-pill .awb-btn,
body.wpalg-btn-style-pill .awb-btn--primary,
body.wpalg-btn-style-pill .awb-btn--secondary,
.editor-styles-wrapper.awb-btn-style-pill .awb-btn,
.editor-styles-wrapper.wpalg-btn-style-pill .awb-btn,
.editor-styles-wrapper .awb-btn-style-pill .awb-btn,
.editor-styles-wrapper .wpalg-btn-style-pill .awb-btn {
	border-radius: 999px;
	clip-path: none;
}

/* Bevel — clipped opposite corners */
body.awb-btn-style-bevel .awb-btn,
body.awb-btn-style-bevel .awb-btn--primary,
body.awb-btn-style-bevel .awb-btn--secondary,
body.wpalg-btn-style-bevel .awb-btn,
body.wpalg-btn-style-bevel .awb-btn--primary,
body.wpalg-btn-style-bevel .awb-btn--secondary,
.editor-styles-wrapper.awb-btn-style-bevel .awb-btn,
.editor-styles-wrapper.wpalg-btn-style-bevel .awb-btn,
.editor-styles-wrapper .awb-btn-style-bevel .awb-btn,
.editor-styles-wrapper .wpalg-btn-style-bevel .awb-btn {
	border-radius: 0;
	clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
}

body.awb-btn-style-bevel .awb-btn--primary,
body.wpalg-btn-style-bevel .awb-btn--primary,
.editor-styles-wrapper.awb-btn-style-bevel .awb-btn--primary,
.editor-styles-wrapper.wpalg-btn-style-bevel .awb-btn--primary,
.editor-styles-wrapper .awb-btn-style-bevel .awb-btn--primary,
.editor-styles-wrapper .wpalg-btn-style-bevel .awb-btn--primary {
	box-shadow: none;
	filter: drop-shadow(0 6px 18px color-mix(in srgb, var(--accent) 50%, transparent));
}

/* -------------------------------------------------------------------------
   Eyebrow Style Presets
   ------------------------------------------------------------------------- */

/* Default — clean uppercase mono */
body.awb-eyebrow-style-default .awb-eyebrow,
body.wpalg-eyebrow-style-default .awb-eyebrow,
.editor-styles-wrapper.awb-eyebrow-style-default .awb-eyebrow,
.editor-styles-wrapper.wpalg-eyebrow-style-default .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-default .awb-eyebrow,
.editor-styles-wrapper .wpalg-eyebrow-style-default .awb-eyebrow {
	border-bottom: none;
	background: transparent;
	padding: 0;
}

/* Underline — delicate accent underline */
body.awb-eyebrow-style-underline .awb-eyebrow,
body.wpalg-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper.awb-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper.wpalg-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper .wpalg-eyebrow-style-underline .awb-eyebrow {
	border-bottom: 1.5px solid var(--accent-alt);
	padding-bottom: 3px;
	display: inline-table;
}

body.awb-eyebrow-style-underline .is-scheme-accent .awb-eyebrow,
body.awb-eyebrow-style-underline [data-scheme="accent"] .awb-eyebrow,
body.wpalg-eyebrow-style-underline .is-scheme-accent .awb-eyebrow,
body.wpalg-eyebrow-style-underline [data-scheme="accent"] .awb-eyebrow,
.editor-styles-wrapper .is-scheme-accent.awb-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper [data-scheme="accent"].awb-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper .is-scheme-accent .awb-eyebrow-style-underline .awb-eyebrow,
.editor-styles-wrapper [data-scheme="accent"] .awb-eyebrow-style-underline .awb-eyebrow {
	border-bottom-color: rgba(255, 255, 255, 0.75);
}

/* Chip — micro outlined capsule */
body.awb-eyebrow-style-chip .awb-eyebrow,
body.wpalg-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper.awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper.wpalg-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper .wpalg-eyebrow-style-chip .awb-eyebrow {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--accent-alt) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--accent-alt) 28%, transparent);
	letter-spacing: 0.16em;
	font-size: 10px;
}

body.awb-eyebrow-style-chip .is-scheme-light .awb-eyebrow,
body.awb-eyebrow-style-chip [data-scheme="light"] .awb-eyebrow,
body.wpalg-eyebrow-style-chip .is-scheme-light .awb-eyebrow,
body.wpalg-eyebrow-style-chip [data-scheme="light"] .awb-eyebrow,
.editor-styles-wrapper .is-scheme-light .awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper [data-scheme="light"] .awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-chip .is-scheme-light .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-chip [data-scheme="light"] .awb-eyebrow {
	color: var(--theme-palette-color-1);
	background: color-mix(in srgb, var(--theme-palette-color-1) 12%, transparent);
	border-color: color-mix(in srgb, var(--theme-palette-color-1) 28%, transparent);
}

body.awb-eyebrow-style-chip .is-scheme-accent .awb-eyebrow,
body.awb-eyebrow-style-chip [data-scheme="accent"] .awb-eyebrow,
body.wpalg-eyebrow-style-chip .is-scheme-accent .awb-eyebrow,
body.wpalg-eyebrow-style-chip [data-scheme="accent"] .awb-eyebrow,
.editor-styles-wrapper .is-scheme-accent.awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper [data-scheme="accent"].awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper .is-scheme-accent .awb-eyebrow-style-chip .awb-eyebrow,
.editor-styles-wrapper [data-scheme="accent"] .awb-eyebrow-style-chip .awb-eyebrow {
	background: rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.38);
	color: var(--text-light);
}

/* Lead Line — accent rule dash before text */
body.awb-eyebrow-style-lead-line .awb-eyebrow,
body.wpalg-eyebrow-style-lead-line .awb-eyebrow,
.editor-styles-wrapper.awb-eyebrow-style-lead-line .awb-eyebrow,
.editor-styles-wrapper.wpalg-eyebrow-style-lead-line .awb-eyebrow,
.editor-styles-wrapper .awb-eyebrow-style-lead-line .awb-eyebrow,
.editor-styles-wrapper .wpalg-eyebrow-style-lead-line .awb-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

body.awb-eyebrow-style-lead-line .awb-eyebrow::before,
body.wpalg-eyebrow-style-lead-line .awb-eyebrow::before,
.editor-styles-wrapper.awb-eyebrow-style-lead-line .awb-eyebrow::before,
.editor-styles-wrapper.wpalg-eyebrow-style-lead-line .awb-eyebrow::before,
.editor-styles-wrapper .awb-eyebrow-style-lead-line .awb-eyebrow::before,
.editor-styles-wrapper .wpalg-eyebrow-style-lead-line .awb-eyebrow::before {
	content: '';
	display: inline-block;
	width: 14px;
	height: 1.5px;
	background: currentColor;
}

/* -------------------------------------------------------------------------
   Card / Surface Style Presets
   ------------------------------------------------------------------------- */

/* Flush — minimal / line dividers */
body.awb-card-style-flush .awb-card,
body.awb-card-flush .awb-card,
body.wpalg-card-style-flush .awb-card,
body.wpalg-card-flush .awb-card,
body.awb-card-style-flush .awb-services-cards__card,
body.awb-card-flush .awb-services-cards__card,
body.wpalg-card-style-flush .awb-services-cards__card,
body.wpalg-card-flush .awb-services-cards__card,
.editor-styles-wrapper.awb-card-style-flush .awb-card,
.editor-styles-wrapper.awb-card-flush .awb-card,
.editor-styles-wrapper.wpalg-card-style-flush .awb-card,
.editor-styles-wrapper.wpalg-card-flush .awb-card,
.editor-styles-wrapper .awb-card-style-flush .awb-card,
.editor-styles-wrapper .awb-card-flush .awb-card,
.editor-styles-wrapper .wpalg-card-style-flush .awb-card,
.editor-styles-wrapper .wpalg-card-flush .awb-card,
.editor-styles-wrapper .awb-card-style-flush .awb-services-cards__card,
.editor-styles-wrapper .wpalg-card-style-flush .awb-services-cards__card {
	background: transparent;
	border: 1px solid var(--line, rgba(255, 255, 255, 0.1));
	border-radius: 0 !important;
	box-shadow: none !important;
	clip-path: none !important;
}

/* Bordered — 1px crisp outline border */
body.awb-card-style-bordered .awb-card,
body.awb-card-bordered .awb-card,
body.wpalg-card-style-bordered .awb-card,
body.wpalg-card-bordered .awb-card,
body.awb-card-style-bordered .awb-services-cards__card,
body.awb-card-bordered .awb-services-cards__card,
body.wpalg-card-style-bordered .awb-services-cards__card,
body.wpalg-card-bordered .awb-services-cards__card,
.editor-styles-wrapper.awb-card-style-bordered .awb-card,
.editor-styles-wrapper.awb-card-bordered .awb-card,
.editor-styles-wrapper.wpalg-card-style-bordered .awb-card,
.editor-styles-wrapper.wpalg-card-bordered .awb-card,
.editor-styles-wrapper .awb-card-style-bordered .awb-card,
.editor-styles-wrapper .awb-card-bordered .awb-card,
.editor-styles-wrapper .wpalg-card-style-bordered .awb-card,
.editor-styles-wrapper .wpalg-card-bordered .awb-card,
.editor-styles-wrapper .awb-card-style-bordered .awb-services-cards__card,
.editor-styles-wrapper .wpalg-card-style-bordered .awb-services-cards__card {
	background: var(--surface-card);
	border: 1px solid var(--surface-card-border);
	border-radius: var(--awb-card-radius, 6px);
	box-shadow: var(--awb-container-shadow, none);
	backdrop-filter: var(--awb-container-backdrop-filter, none);
	-webkit-backdrop-filter: var(--awb-container-backdrop-filter, none);
	clip-path: none !important;
}

/* Lifted — floating shadow with hover elevation */
body.awb-card-style-lifted .awb-card,
body.awb-card-lifted .awb-card,
body.wpalg-card-style-lifted .awb-card,
body.wpalg-card-lifted .awb-card,
body.awb-card-style-lifted .awb-services-cards__card,
body.awb-card-lifted .awb-services-cards__card,
body.wpalg-card-style-lifted .awb-services-cards__card,
body.wpalg-card-lifted .awb-services-cards__card,
.editor-styles-wrapper.awb-card-style-lifted .awb-card,
.editor-styles-wrapper.awb-card-lifted .awb-card,
.editor-styles-wrapper.wpalg-card-style-lifted .awb-card,
.editor-styles-wrapper.wpalg-card-lifted .awb-card,
.editor-styles-wrapper .awb-card-style-lifted .awb-card,
.editor-styles-wrapper .awb-card-lifted .awb-card,
.editor-styles-wrapper .wpalg-card-style-lifted .awb-card,
.editor-styles-wrapper .wpalg-card-lifted .awb-card,
.editor-styles-wrapper .awb-card-style-lifted .awb-services-cards__card,
.editor-styles-wrapper .wpalg-card-style-lifted .awb-services-cards__card {
	background: var(--surface-card);
	border: 1px solid var(--surface-card-border);
	border-radius: var(--awb-card-radius, 8px);
	box-shadow: 0 10px 25px -8px rgba(0, 0, 0, 0.12);
	backdrop-filter: var(--awb-container-backdrop-filter, none);
	-webkit-backdrop-filter: var(--awb-container-backdrop-filter, none);
	clip-path: none !important;
}

body.awb-card-style-lifted .awb-card:hover,
body.awb-card-lifted .awb-card:hover,
body.awb-card-style-lifted .awb-services-cards__card:hover,
body.awb-card-lifted .awb-services-cards__card:hover,
body.wpalg-card-style-lifted .awb-card:hover,
body.wpalg-card-lifted .awb-card:hover,
body.wpalg-card-style-lifted .awb-services-cards__card:hover,
body.wpalg-card-lifted .awb-services-cards__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px -8px rgba(0, 0, 0, 0.18);
	border-color: color-mix(in srgb, var(--accent) 50%, var(--surface-card-border));
}

/* Bevel — chamfered corners matching bevel buttons */
body.awb-card-style-bevel .awb-card,
body.awb-card-bevel .awb-card,
body.wpalg-card-style-bevel .awb-card,
body.wpalg-card-bevel .awb-card,
body.awb-card-style-bevel .awb-services-cards__card,
body.awb-card-bevel .awb-services-cards__card,
body.wpalg-card-style-bevel .awb-services-cards__card,
body.wpalg-card-bevel .awb-services-cards__card,
.editor-styles-wrapper.awb-card-style-bevel .awb-card,
.editor-styles-wrapper.awb-card-bevel .awb-card,
.editor-styles-wrapper.wpalg-card-style-bevel .awb-card,
.editor-styles-wrapper.wpalg-card-bevel .awb-card,
.editor-styles-wrapper .awb-card-style-bevel .awb-card,
.editor-styles-wrapper .awb-card-bevel .awb-card,
.editor-styles-wrapper .wpalg-card-style-bevel .awb-card,
.editor-styles-wrapper .wpalg-card-bevel .awb-card,
.editor-styles-wrapper .awb-card-style-bevel .awb-services-cards__card,
.editor-styles-wrapper .wpalg-card-style-bevel .awb-services-cards__card {
	background: var(--surface-card);
	border: 1px solid var(--surface-card-border);
	border-radius: 0 !important;
	clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px) !important;
}

/* -------------------------------------------------------------------------
   List & Bullet Style Presets
   ------------------------------------------------------------------------- */

/* Checkmark (Default) */
body.awb-list-style-check .awb-list-item__icon::before,
body.wpalg-list-style-check .awb-list-item__icon::before {
	content: '✓';
	font-weight: 700;
	font-size: 14px;
}

/* Monospace Dash */
body.awb-list-style-dash .awb-list-item__icon::before,
body.wpalg-list-style-dash .awb-list-item__icon::before {
	content: '—';
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace));
	font-weight: 700;
	font-size: 14px;
}

/* Glowing Pulse Dot */
body.awb-list-style-dot .awb-list-item__icon::before,
body.wpalg-list-style-dot .awb-list-item__icon::before {
	content: '';
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--accent-alt);
	box-shadow: 0 0 8px var(--accent-alt);
}

/* -------------------------------------------------------------------------
   Badge Style Presets
   ------------------------------------------------------------------------- */

/* Pill (Default) */
body.awb-badge-style-pill .awb-badge,
body.wpalg-badge-style-pill .awb-badge,
.editor-styles-wrapper.awb-badge-style-pill .awb-badge,
.editor-styles-wrapper.wpalg-badge-style-pill .awb-badge,
.editor-styles-wrapper .awb-badge-style-pill .awb-badge,
.editor-styles-wrapper .wpalg-badge-style-pill .awb-badge {
	border-radius: 100px;
}

/* Sharp — 2px corner tags */
body.awb-badge-style-sharp .awb-badge,
body.wpalg-badge-style-sharp .awb-badge,
.editor-styles-wrapper.awb-badge-style-sharp .awb-badge,
.editor-styles-wrapper.wpalg-badge-style-sharp .awb-badge,
.editor-styles-wrapper .awb-badge-style-sharp .awb-badge,
.editor-styles-wrapper .wpalg-badge-style-sharp .awb-badge {
	border-radius: 2px;
}

body.awb-badge-style-sharp .awb-badge__dot,
body.wpalg-badge-style-sharp .awb-badge__dot,
.editor-styles-wrapper.awb-badge-style-sharp .awb-badge__dot,
.editor-styles-wrapper.wpalg-badge-style-sharp .awb-badge__dot,
.editor-styles-wrapper .awb-badge-style-sharp .awb-badge__dot,
.editor-styles-wrapper .wpalg-badge-style-sharp .awb-badge__dot {
	border-radius: 0;
}

/* Bracketed — Monospace [ Tag ] format */
body.awb-badge-style-bracket .awb-badge,
body.wpalg-badge-style-bracket .awb-badge,
.editor-styles-wrapper.awb-badge-style-bracket .awb-badge,
.editor-styles-wrapper.wpalg-badge-style-bracket .awb-badge,
.editor-styles-wrapper .awb-badge-style-bracket .awb-badge,
.editor-styles-wrapper .wpalg-badge-style-bracket .awb-badge {
	border: none;
	background: transparent;
	padding: 4px 6px;
	border-radius: 0;
}

body.awb-badge-style-bracket .awb-badge::before,
body.wpalg-badge-style-bracket .awb-badge::before {
	content: '[ ';
	color: var(--accent-alt);
	font-weight: 700;
}

body.awb-badge-style-bracket .awb-badge::after,
body.wpalg-badge-style-bracket .awb-badge::after {
	content: ' ]';
	color: var(--accent-alt);
	font-weight: 700;
}

body.awb-badge-style-bracket .awb-badge__dot,
body.wpalg-badge-style-bracket .awb-badge__dot {
	display: none;
}

/* ==========================================================================
   6. Motion & Scroll Reveal Animations (GPU Hardware Accelerated)
   ========================================================================== */

:root {
	/* Ultra-smooth, gradual easing curve (luxury editorial / calm float) */
	--awb-ease-gradual: cubic-bezier(0.22, 1, 0.36, 1);
	--awb-anim-duration: 0.95s;
}

/* Base scroll animation states - subtle 8px-10px float with soft gradual fade */
.awb-animate,
[data-awb-animate] {
	opacity: 0;
	transform: translate3d(0, 10px, 0);
	transition: opacity var(--awb-anim-duration) var(--awb-ease-gradual),
	            transform var(--awb-anim-duration) var(--awb-ease-gradual);
	will-change: opacity, transform;
}

.awb-animate-fade-in {
	opacity: 0;
	transform: none;
	transition: opacity var(--awb-anim-duration) var(--awb-ease-gradual);
	will-change: opacity;
}

.awb-animate-slide-left {
	opacity: 0;
	transform: translate3d(-12px, 0, 0);
	transition: opacity var(--awb-anim-duration) var(--awb-ease-gradual),
	            transform var(--awb-anim-duration) var(--awb-ease-gradual);
	will-change: opacity, transform;
}

.awb-animate-slide-right {
	opacity: 0;
	transform: translate3d(12px, 0, 0);
	transition: opacity var(--awb-anim-duration) var(--awb-ease-gradual),
	            transform var(--awb-anim-duration) var(--awb-ease-gradual);
	will-change: opacity, transform;
}

.awb-animate-pop {
	opacity: 0;
	transform: translate3d(0, 8px, 0) scale3d(0.985, 0.985, 1);
	transition: opacity var(--awb-anim-duration) var(--awb-ease-gradual),
	            transform var(--awb-anim-duration) var(--awb-ease-gradual);
	will-change: opacity, transform;
}

/* When triggered into view by IntersectionObserver */
.is-in-view.awb-animate,
.is-in-view [data-awb-animate],
.is-in-view .awb-animate,
.is-in-view [data-awb-animate],
.is-in-view.awb-animate-fade-in,
.is-in-view .awb-animate-fade-in,
.is-in-view.awb-animate-slide-left,
.is-in-view .awb-animate-slide-left,
.is-in-view.awb-animate-slide-right,
.is-in-view .awb-animate-slide-right,
.is-in-view.awb-animate-pop,
.is-in-view .awb-animate-pop {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

/* Gentle Stagger delay utility classes */
.awb-stagger-1 { animation-delay: 0.08s; transition-delay: 0.08s; }
.awb-stagger-2 { animation-delay: 0.20s; transition-delay: 0.20s; }
.awb-stagger-3 { animation-delay: 0.32s; transition-delay: 0.32s; }
.awb-stagger-4 { animation-delay: 0.44s; transition-delay: 0.44s; }
.awb-stagger-5 { animation-delay: 0.56s; transition-delay: 0.56s; }
.awb-stagger-6 { animation-delay: 0.68s; transition-delay: 0.68s; }

/* Immediate Hero Load Animations (Above the fold) */
@keyframes awbHeroFadeUp {
	0% {
		opacity: 0;
		transform: translate3d(0, 10px, 0);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0);
	}
}

@keyframes awbHeroPop {
	0% {
		opacity: 0;
		transform: translate3d(0, 8px, 0) scale3d(0.985, 0.985, 1);
	}
	100% {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
	}
}

.awb-hero-entrance {
	animation: awbHeroFadeUp 0.95s var(--awb-ease-gradual) both;
}

.awb-hero-pop {
	animation: awbHeroPop 1.05s var(--awb-ease-gradual) both;
}

/* Micro-Interactions & Hover Polish */
.awb-btn,
.wpalg-btn {
	transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease !important;
}

.awb-btn:hover,
.wpalg-btn:hover {
	transform: translateY(-1.5px);
}

.awb-btn:active,
.wpalg-btn:active {
	transform: translateY(0);
}

.awb-btn svg,
.wpalg-btn svg,
[class*="__btn-arrow"] {
	transition: transform 0.2s ease;
}

.awb-btn:hover svg,
.wpalg-btn:hover svg,
.awb-btn:hover [class*="__btn-arrow"],
.wpalg-btn:hover [class*="__btn-arrow"] {
	transform: translateX(3px);
}

.awb-card-interactive {
	transition: transform 0.25s var(--awb-ease-spring), box-shadow 0.25s ease;
}

.awb-card-interactive:hover {
	transform: translateY(-2.5px);
}

/* Static in Block Editor */
.editor-styles-wrapper .awb-animate,
.editor-styles-wrapper [data-awb-animate],
.editor-styles-wrapper .awb-hero-entrance,
.editor-styles-wrapper .awb-hero-pop {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}

/* ==========================================================================
   8. Block Editor Canvas Parity
   Overrides core editor typography so Air Wing blocks match the frontend.
   ========================================================================== */

.editor-styles-wrapper [class*="awb-"].is-scheme-dark,
.editor-styles-wrapper [class*="awb-"].is-scheme-light,
.editor-styles-wrapper [class*="awb-"].is-scheme-accent,
.editor-styles-wrapper [class*="awb-"].is-scheme-warm {
	color: var(--text-body);
}

.editor-styles-wrapper [class*="awb-"].is-scheme-dark .block-editor-rich-text__editable {
	color: inherit;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-dark :is(h1, h2, h3, h4, h5, h6):not(.awb-btn):not(.awb-chip-link) {
	color: var(--text-light) !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-light :is(h1, h2, h3, h4, h5, h6):not(.awb-btn):not(.awb-chip-link):not(.awb-service-areas-map__title),
.editor-styles-wrapper [class*="awb-"].is-scheme-warm :is(h1, h2, h3, h4, h5, h6):not(.awb-btn):not(.awb-chip-link):not(.awb-service-areas-map__title) {
	color: var(--text-heading) !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-accent :is(h1, h2, h3, h4, h5, h6):not(.awb-btn):not(.awb-chip-link) {
	color: var(--text-light) !important;
}

.editor-styles-wrapper [class*="awb-"] .awb-eyebrow,
.editor-styles-wrapper [class*="awb-"] .wpalg-eyebrow {
	color: var(--accent-alt) !important;
	font-family: var(--awb-font-mono, var(--wpalg-font-mono, 'Space Mono', monospace)) !important;
	font-size: 10.5px !important;
	font-weight: 700 !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-accent .awb-eyebrow,
.editor-styles-wrapper [class*="awb-"].is-scheme-accent .wpalg-eyebrow {
	color: var(--text-light) !important;
}

.editor-styles-wrapper [class*="awb-"] .awb-btn--primary {
	color: var(--btn-primary-text) !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-light .awb-btn--primary,
.editor-styles-wrapper [class*="awb-"].is-scheme-warm .awb-btn--primary {
	color: var(--text-light) !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-accent .awb-btn--primary {
	color: var(--surface-deep) !important;
}

.editor-styles-wrapper [class*="awb-"] .awb-btn--secondary {
	color: var(--text-light) !important;
}

.editor-styles-wrapper [class*="awb-"].is-scheme-light .awb-btn--secondary,
.editor-styles-wrapper [class*="awb-"].is-scheme-warm .awb-btn--secondary {
	color: var(--text-heading) !important;
}

/* ==========================================================================
   7. Motion Accessibility
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.awb-animate,
	[data-awb-animate],
	.awb-hero-entrance,
	.awb-hero-pop,
	.awb-btn,
	.awb-btn:hover,
	.wpalg-btn,
	.wpalg-btn:hover,
	.awb-btn svg,
	.awb-card-interactive,
	.awb-btn--primary,
	.awb-btn--secondary,
	.awb-chip-link,
	.awb-card,
	.awb-badge,
	.awb-badge__dot,
	.awb-badge__dot::before,
	.awb-eyebrow,
	.wpalg-btn--primary,
	.wpalg-btn--secondary,
	.wpalg-chip-link,
	.wpalg-card,
	.wpalg-badge,
	.wpalg-badge__dot,
	.wpalg-badge__dot::before,
	.wpalg-eyebrow {
		animation: none !important;
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}
