/*
 * aurafresh theme styles (vanilla CSS).
 * Loaded on the front end and inside the block editor (add_editor_style).
 * Colours, fonts, font sizes and base element styles come from theme.json;
 * this file adds the block styles (is-style-af-*), utility classes (af-*),
 * header, footer, navigation, forms and responsive rules.
 */

/* ------------------------------------------------------------------ */
/* 1. Tokens                                                           */
/* ------------------------------------------------------------------ */
:root {
	--af-navy: #18264D;
	--af-navy-hero: #1E2C55;
	--af-navy-deep: #111B38;
	--af-teal: #4A8685;
	--af-teal-text: #2E6B6A;
	--af-teal-hover: #245655;
	--af-green: #74AA5C;
	--af-green-hover: #8CC06F;
	--af-green-dark: #3E7A2C;
	--af-green-light: #A8CC84;
	--af-mist: #F3F7F6;
	--af-teal-light: #EEF5F3;
	--af-border: #D9E3E0;
	--af-ink: #2E3A4F;
	--af-muted: #5B6676;
	--af-slate-light: #DCE4EE;
	--af-input-border: #7A8797;
	--af-radius-card: 18px;
	--af-radius-btn: 10px;
	--af-shadow-card: 0 16px 40px rgba(8, 14, 32, 0.12);
	--af-shadow-hero: 0 24px 60px rgba(8, 14, 32, 0.45);
	--af-section-pad: clamp(56px, 7vw, 96px);
	--af-font-heading: Montserrat, "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
	--af-stripes: repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.035) 0, rgba(255, 255, 255, 0.035) 2px, transparent 2px, transparent 14px);

	/* Icons (shapes adapted from Lucide, ISC licence). Used as CSS masks. */
	--af-i-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--af-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--af-i-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	--af-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--af-i-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E");
	--af-i-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--af-i-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
	--af-i-map-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--af-i-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
	--af-i-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
	--af-i-clipboard-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E");
	--af-i-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	--af-i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	--af-i-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01'/%3E%3C/svg%3E");
	--af-i-store: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l1.5-5h15L21 9'/%3E%3Cpath d='M3 9h18v1.5a3 3 0 0 1-6 0 3 3 0 0 1-6 0 3 3 0 0 1-6 0Z'/%3E%3Cpath d='M5 12.5V20a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-7.5'/%3E%3Cpath d='M10 21v-5h4v5'/%3E%3C/svg%3E");
	--af-i-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
	--af-i-key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3'/%3E%3C/svg%3E");
	--af-i-sparkle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 2C12.8 8.5 15.5 11.2 22 12C15.5 12.8 12.8 15.5 12 22C11.2 15.5 8.5 12.8 2 12C8.5 11.2 11.2 8.5 12 2Z'/%3E%3C/svg%3E");
	--af-i-camera: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E");
	--af-i-message: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
	--af-i-file-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
	--af-i-refresh: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3Cpath d='M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16'/%3E%3Cpath d='M8 16H3v5'/%3E%3C/svg%3E");
	--af-i-sun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E");
	--af-i-moon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E");
	--af-i-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
	--af-i-layers: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 10 5-10 5L2 7Z'/%3E%3Cpath d='m2 17 10 5 10-5M2 12l10 5 10-5'/%3E%3C/svg%3E");
	--af-i-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");
}

.af-icon-arrow-right { --af-icon: var(--af-i-arrow-right); }
.af-icon-check { --af-icon: var(--af-i-check); }
.af-icon-shield { --af-icon: var(--af-i-shield); }
.af-icon-star { --af-icon: var(--af-i-star); }
.af-icon-phone { --af-icon: var(--af-i-phone); }
.af-icon-mail { --af-icon: var(--af-i-mail); }
.af-icon-map-pin { --af-icon: var(--af-i-map-pin); }
.af-icon-calendar { --af-icon: var(--af-i-calendar); }
.af-icon-clock { --af-icon: var(--af-i-clock); }
.af-icon-clipboard-check { --af-icon: var(--af-i-clipboard-check); }
.af-icon-users { --af-icon: var(--af-i-users); }
.af-icon-user { --af-icon: var(--af-i-user); }
.af-icon-building { --af-icon: var(--af-i-building); }
.af-icon-store { --af-icon: var(--af-i-store); }
.af-icon-home { --af-icon: var(--af-i-home); }
.af-icon-key { --af-icon: var(--af-i-key); }
.af-icon-sparkle { --af-icon: var(--af-i-sparkle); }
.af-icon-camera { --af-icon: var(--af-i-camera); }
.af-icon-message { --af-icon: var(--af-i-message); }
.af-icon-file-text { --af-icon: var(--af-i-file-text); }
.af-icon-refresh { --af-icon: var(--af-i-refresh); }
.af-icon-sun { --af-icon: var(--af-i-sun); }
.af-icon-moon { --af-icon: var(--af-i-moon); }
.af-icon-search { --af-icon: var(--af-i-search); }
.af-icon-layers { --af-icon: var(--af-i-layers); }
.af-icon-briefcase { --af-icon: var(--af-i-briefcase); }

/* ------------------------------------------------------------------ */
/* 2. Base                                                             */
/* ------------------------------------------------------------------ */
html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

[id] {
	scroll-margin-top: 16px;
}

/* No gaps between header, main and footer, or between full-width sections. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

main.af-main {
	margin-block: 0;
}

.wp-block-post-content > .alignfull,
.af-main > .alignfull {
	margin-block: 0;
}

/* Visible keyboard focus everywhere. */
:where(a, button, input, select, textarea, summary, .wp-block-button__link, .wp-block-navigation-item__content):focus-visible {
	outline: 3px solid var(--af-navy);
	outline-offset: 2px;
	border-radius: 4px;
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy, .af-footer, .af-utility) :where(a, button, summary, .wp-block-button__link):focus-visible {
	outline-color: var(--af-green-light);
}

/* Buttons (default = green primary from theme.json). */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 52px;
	text-align: center;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.wp-block-button.is-style-af-outline .wp-block-button__link {
	background: transparent;
	color: var(--af-navy);
	border: 2px solid var(--af-navy);
}

.wp-block-button.is-style-af-outline .wp-block-button__link:hover {
	background: var(--af-teal-light);
	color: var(--af-navy);
}

.wp-block-button.is-style-af-outline-white .wp-block-button__link {
	background: transparent;
	color: #FFFFFF;
	border: 2px solid rgba(255, 255, 255, 0.85);
}

.wp-block-button.is-style-af-outline-white .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #FFFFFF;
}

.wp-block-button.is-style-af-text-link .wp-block-button__link {
	min-height: 0;
	padding: 4px 0;
	background: transparent;
	border: 0;
	color: var(--af-teal-text);
	font-size: 16px;
	text-decoration: none;
}

.wp-block-button.is-style-af-text-link .wp-block-button__link::after {
	content: "";
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	background-color: currentColor;
	-webkit-mask: var(--af-i-arrow-right) center / contain no-repeat;
	mask: var(--af-i-arrow-right) center / contain no-repeat;
	transition: transform 0.15s ease;
}

.wp-block-button.is-style-af-text-link .wp-block-button__link:hover {
	background: transparent;
	color: var(--af-teal-hover);
	text-decoration: underline;
}

.wp-block-button.is-style-af-text-link .wp-block-button__link:hover::after {
	transform: translateX(3px);
}

.wp-block-buttons {
	gap: 12px;
}

/* ------------------------------------------------------------------ */
/* 3. Text styles                                                      */
/* ------------------------------------------------------------------ */
.is-style-af-eyebrow,
h1.is-style-af-eyebrow,
h2.is-style-af-eyebrow {
	font-family: var(--af-font-heading);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: var(--af-teal-text);
}

.is-style-af-eyebrow + * {
	margin-block-start: 0.75rem;
}

.is-style-af-lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.6;
}

/* Keep intro paragraphs to a readable width but left-aligned with the heading. */
.is-layout-constrained > .is-style-af-lead {
	max-width: min(760px, 100%);
	margin-left: max(0px, calc((100% - var(--wp--style--global--content-size, 1200px)) / 2)) !important;
	margin-right: auto !important;
}

.is-style-af-small {
	font-size: 15px;
	line-height: 1.5;
	color: var(--af-muted);
}

.is-style-af-display {
	font-family: var(--af-font-heading);
	font-size: var(--wp--preset--font-size--display);
	font-weight: 800;
	line-height: 1.06;
	letter-spacing: -1.2px;
	color: var(--af-navy);
}

p.is-style-af-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	width: fit-content;
	max-width: 100%;
	margin: 0;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--af-teal-light);
	color: var(--af-navy);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
}

.is-layout-constrained > p.is-style-af-chip {
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Inline icon before text: add classes "af-ico af-icon-NAME". */
.af-ico::before {
	content: "";
	display: inline-block;
	width: 1.15em;
	height: 1.15em;
	margin-right: 0.5em;
	vertical-align: -0.2em;
	background-color: var(--af-icon-color, currentColor);
	-webkit-mask: var(--af-icon) center / contain no-repeat;
	mask: var(--af-icon) center / contain no-repeat;
}

/* Icon inside a round chip before text: add classes "af-ico-chip af-icon-NAME". */
.af-ico-chip {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
}

.af-ico-chip::before {
	content: "";
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--af-chip-bg, var(--af-teal-light));
}

.af-ico-chip::after {
	content: "";
	position: absolute;
	left: 11px;
	top: 50%;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	background-color: var(--af-chip-fg, var(--af-teal-text));
	-webkit-mask: var(--af-icon) center / contain no-repeat;
	mask: var(--af-icon) center / contain no-repeat;
}

/* ------------------------------------------------------------------ */
/* 4. Lists                                                            */
/* ------------------------------------------------------------------ */
.wp-block-list.is-style-af-check,
.wp-block-list.is-style-af-plain,
.wp-block-list.is-style-af-inline {
	list-style: none;
	padding-left: 0;
}

.is-style-af-check > li {
	position: relative;
	padding-left: 28px;
	margin-block: 0 8px;
}

.is-style-af-check > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.22em;
	width: 18px;
	height: 18px;
	background-color: var(--af-green-dark);
	-webkit-mask: var(--af-i-check) center / contain no-repeat;
	mask: var(--af-i-check) center / contain no-repeat;
}

.is-style-af-plain > li {
	margin-block: 0 10px;
}

.wp-block-list.is-style-af-inline {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	font-size: 16px;
	font-weight: 600;
}

.is-style-af-inline > li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
}

.is-style-af-inline > li::before {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background-color: var(--af-green-dark);
	-webkit-mask: var(--af-i-check) center / contain no-repeat;
	mask: var(--af-i-check) center / contain no-repeat;
}

/* ------------------------------------------------------------------ */
/* 5. Sections                                                         */
/* ------------------------------------------------------------------ */
.wp-block-group.is-style-af-section-white,
.wp-block-group.is-style-af-section-mist,
.wp-block-group.is-style-af-section-navy {
	padding-top: var(--af-section-pad);
	padding-bottom: var(--af-section-pad);
}

.wp-block-group.is-style-af-section-white {
	background-color: #FFFFFF;
}

.wp-block-group.is-style-af-section-mist {
	background-color: var(--af-mist);
}

.wp-block-group.is-style-af-section-navy {
	background-color: var(--af-navy);
}

/* Two sections with the same background in a row get a thin divider. */
.is-style-af-section-white + .is-style-af-section-white,
.is-style-af-section-mist + .is-style-af-section-mist {
	border-top: 1px solid var(--af-border);
}

/* Hero (navy with diagonal stripes and a wavy bottom edge). */
.wp-block-group.is-style-af-hero {
	position: relative;
	background-color: var(--af-navy-hero);
	background-image: var(--af-stripes);
	padding-top: clamp(32px, 5vw, 72px);
	padding-bottom: clamp(80px, 9vw, 124px);
}

.wp-block-group.is-style-af-hero::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 56px;
	pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 46 C 240 6, 520 6, 760 34 S 1220 70, 1440 22 L 1440 70 L 0 70 Z' fill='%23FFFFFF'/%3E%3Cpath d='M0 46 C 240 6, 520 6, 760 34 S 1220 70, 1440 22' fill='none' stroke='%234A8685' stroke-width='2' stroke-opacity='0.35'/%3E%3C/svg%3E") center bottom / 100% 100% no-repeat;
}

.wp-block-group.is-style-af-hero > * {
	position: relative;
	z-index: 1;
}

.wp-block-group.is-style-af-hero-light {
	background-color: var(--af-mist);
	padding-top: clamp(32px, 5vw, 72px);
	padding-bottom: clamp(48px, 7vw, 96px);
}

.af-hero__cols {
	gap: clamp(32px, 4vw, 64px);
	align-items: center;
}

.wp-block-columns.af-hero__cols {
	margin-block-start: clamp(20px, 3vw, 36px);
}

.is-style-af-hero .wp-block-heading:not(.is-style-af-eyebrow) {
	letter-spacing: -1.1px;
}

.is-style-af-hero h1.is-style-af-eyebrow,
.is-style-af-hero .is-style-af-eyebrow.af-ico {
	--af-icon-color: var(--af-green);
}

.is-style-af-hero .is-style-af-display {
	margin-block-start: 0.6rem;
}

.is-style-af-hero .is-style-af-chip.af-ico {
	background: rgba(255, 255, 255, 0.1);
	border: 1px dashed rgba(255, 255, 255, 0.35);
	color: var(--af-slate-light);
	font-size: 13px;
	font-weight: 600;
}

.af-cta-row {
	gap: 12px 20px;
	align-items: center;
}

.af-cta-row > p {
	margin: 0;
}

.wp-block-buttons.af-show-sm {
	display: none;
}

/* Trust strip ("at a glance"). */
.wp-block-group.is-style-af-strip {
	background-color: #FFFFFF;
	border-bottom: 1px solid var(--af-border);
	padding-top: clamp(20px, 3vw, 28px);
	padding-bottom: clamp(20px, 3vw, 28px);
}

.is-style-af-strip p {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--af-navy);
}

/* ------------------------------------------------------------------ */
/* 6. Dark containers: readable colours on navy                        */
/* ------------------------------------------------------------------ */
:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) {
	color: var(--af-slate-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) :is(h1, h2, h3, h4, .is-style-af-display) {
	color: #FFFFFF;
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) a:not(.wp-block-button__link) {
	color: var(--af-green-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) a:not(.wp-block-button__link):hover {
	color: #FFFFFF;
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .is-style-af-eyebrow {
	color: var(--af-green-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .is-style-af-small {
	color: #C9D3DF;
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) :is(.is-style-af-check, .is-style-af-inline) > li::before {
	background-color: var(--af-green-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) p.is-style-af-chip {
	background: rgba(255, 255, 255, 0.1);
	color: #FFFFFF;
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .af-ico-chip {
	--af-chip-bg: rgba(255, 255, 255, 0.1);
	--af-chip-fg: var(--af-green-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .wp-block-button.is-style-af-text-link .wp-block-button__link {
	color: var(--af-green-light);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .wp-block-button.is-style-af-outline .wp-block-button__link {
	color: #FFFFFF;
	border-color: rgba(255, 255, 255, 0.85);
}

:is(.is-style-af-hero, .is-style-af-section-navy, .is-style-af-card-navy) .wp-block-button.is-style-af-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.12);
}

/* Light cards placed inside dark containers return to dark text. */
:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel, .wp-block-details) {
	color: var(--af-ink);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel, .wp-block-details) :is(h2, h3, h4, summary) {
	color: var(--af-navy);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel, .wp-block-details) a:not(.wp-block-button__link) {
	color: var(--af-teal-text);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel) .is-style-af-eyebrow {
	color: var(--af-teal-text);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel) :is(.is-style-af-check, .is-style-af-inline) > li::before {
	background-color: var(--af-green-dark);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel) .af-ico-chip {
	--af-chip-bg: var(--af-teal-light);
	--af-chip-fg: var(--af-teal-text);
}

:is(.is-style-af-hero, .is-style-af-section-navy) :is(.is-style-af-card, .is-style-af-card-link, .is-style-af-quote-card, .is-style-af-panel) .is-style-af-small {
	color: var(--af-muted);
}

/* ------------------------------------------------------------------ */
/* 7. Cards, panels, photo placeholders, steps                         */
/* ------------------------------------------------------------------ */
.wp-block-group.is-style-af-card,
.wp-block-group.is-style-af-card-link {
	background-color: #FFFFFF;
	border: 1px solid var(--af-border);
	border-radius: var(--af-radius-card);
	padding: 24px;
}

.wp-block-group.is-style-af-card-mist {
	background-color: var(--af-mist);
	border-radius: 20px;
	padding: clamp(20px, 3vw, 32px);
}

.is-style-af-section-mist .wp-block-group.is-style-af-card-mist {
	background-color: #FFFFFF;
	border: 1px solid var(--af-border);
}

.wp-block-group.is-style-af-card-navy {
	background-color: var(--af-navy);
	border-radius: 20px;
	padding: 28px;
}

.is-style-af-section-navy .wp-block-group.is-style-af-card-navy {
	background-color: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
}

.wp-block-group.is-style-af-panel {
	background-color: var(--af-teal-light);
	border-radius: 16px;
	padding: 20px 24px;
}

.wp-block-group.is-style-af-quote-card {
	background-color: #FFFFFF;
	color: var(--af-ink);
	border-radius: var(--af-radius-card);
	padding: 28px;
	box-shadow: var(--af-shadow-hero);
}

.is-style-af-section-mist .wp-block-group.is-style-af-quote-card,
.is-style-af-section-white .wp-block-group.is-style-af-quote-card {
	box-shadow: var(--af-shadow-card);
	border: 1px solid var(--af-border);
}

/* Tighter rhythm inside cards. */
:is(.is-style-af-card, .is-style-af-card-link, .is-style-af-card-mist, .is-style-af-card-navy, .is-style-af-panel, .is-style-af-quote-card) > * + * {
	margin-block-start: 0.75rem;
}

:is(.is-style-af-card, .is-style-af-card-link, .is-style-af-card-mist, .is-style-af-card-navy, .is-style-af-panel, .is-style-af-quote-card) > :first-child {
	margin-block-start: 0;
}

:is(.is-style-af-card, .is-style-af-card-link) .wp-block-buttons:last-child {
	margin-top: auto;
}

/* Whole card is a link (the single link inside stretches over the card). */
.wp-block-group.is-style-af-card-link {
	position: relative;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.wp-block-group.is-style-af-card-link:hover {
	border-color: var(--af-teal-text);
	box-shadow: var(--af-shadow-card);
}

.is-style-af-card-link h3 a,
.is-style-af-card-link h2 a {
	color: var(--af-navy);
	text-decoration: none;
}

.is-style-af-card-link h3 a::after,
.is-style-af-card-link h2 a::after {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 8px;
	vertical-align: -0.1em;
	background-color: var(--af-teal-text);
	-webkit-mask: var(--af-i-arrow-right) center / contain no-repeat;
	mask: var(--af-i-arrow-right) center / contain no-repeat;
}

/* Stretch the link over the card on the site only (not inside the editor). */
:where(body:not(.editor-styles-wrapper)) .is-style-af-card-link a::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: 1;
}

/* Photo placeholder: replace with an Image block when the photo exists. */
.wp-block-group.is-style-af-photo {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	min-height: 260px;
	padding: 20px;
	border-radius: 22px;
	background-color: #D9E5E2;
	background-image: repeating-linear-gradient(135deg, rgba(24, 38, 77, 0.05) 0, rgba(24, 38, 77, 0.05) 2px, transparent 2px, transparent 14px);
}

.wp-block-group.is-style-af-photo > p {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	margin: 0 !important;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--af-navy);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}

.wp-block-group.is-style-af-photo > p::before {
	content: "";
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: var(--af-i-camera) center / contain no-repeat;
	mask: var(--af-i-camera) center / contain no-repeat;
}

.is-style-af-card .wp-block-group.is-style-af-photo {
	min-height: 180px;
	border-radius: 14px;
}

.wp-block-column > .wp-block-group.is-style-af-photo:first-child:not(:only-child) {
	min-height: clamp(260px, 32vw, 440px);
}

/* Numbered steps: every direct child group is a step. */
.wp-block-group.is-style-af-steps {
	counter-reset: af-step;
}

.wp-block-group.is-style-af-steps > .wp-block-group {
	position: relative;
	counter-increment: af-step;
	padding-top: 52px;
}

.wp-block-group.is-style-af-steps > .wp-block-group.is-style-af-card {
	padding-top: 72px;
}

.wp-block-group.is-style-af-steps > .wp-block-group::before {
	content: counter(af-step);
	position: absolute;
	top: 0;
	left: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--af-navy);
	color: #FFFFFF;
	font-family: var(--af-font-heading);
	font-size: 15px;
	font-weight: 800;
	line-height: 36px;
	text-align: center;
}

.wp-block-group.is-style-af-steps > .wp-block-group.is-style-af-card::before {
	top: 24px;
	left: 24px;
}

.wp-block-group.is-style-af-steps > .wp-block-group:last-child::before {
	background: var(--af-green);
	color: var(--af-navy);
}

.wp-block-group.is-style-af-steps > .wp-block-group h3 {
	font-size: 17px;
	margin-block: 0 4px;
}

.wp-block-group.is-style-af-steps > .wp-block-group p {
	font-size: 15px;
	line-height: 1.45;
	margin-block-start: 0;
}

/* ------------------------------------------------------------------ */
/* 8. FAQ (core Details block) and tables                              */
/* ------------------------------------------------------------------ */
.wp-block-details {
	background-color: #FFFFFF;
	border: 1px solid var(--af-border);
	border-radius: 14px;
	padding: 0;
	overflow: hidden;
}

.wp-block-details + .wp-block-details {
	margin-block-start: 12px;
}

.wp-block-details > summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 24px;
	list-style: none;
	cursor: pointer;
	font-family: var(--af-font-heading);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--af-navy);
}

.wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details > summary::after {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	background-color: var(--af-teal-text);
	-webkit-mask: var(--af-i-chevron-down) center / contain no-repeat;
	mask: var(--af-i-chevron-down) center / contain no-repeat;
	transition: transform 0.2s ease;
}

.wp-block-details[open] > summary::after {
	transform: rotate(180deg);
}

.wp-block-details > :not(summary) {
	margin: 0 24px;
	font-size: 17px;
	line-height: 1.6;
}

.wp-block-details > :not(summary) + :not(summary) {
	margin-top: 0.75rem;
}

.wp-block-details > :last-child:not(summary) {
	margin-bottom: 22px;
}

.wp-block-table.is-style-af-compare {
	overflow-x: auto;
}

.wp-block-table.is-style-af-compare table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--af-border);
	border-radius: 14px;
	overflow: hidden;
	background-color: #FFFFFF;
	font-size: 16px;
}

.wp-block-table.is-style-af-compare th,
.wp-block-table.is-style-af-compare td {
	padding: 14px 16px;
	border: 0;
	border-bottom: 1px solid var(--af-border);
	text-align: left;
	vertical-align: top;
	color: var(--af-ink);
}

.wp-block-table.is-style-af-compare th {
	background-color: var(--af-mist);
	color: var(--af-navy);
	font-family: var(--af-font-heading);
	font-size: 15px;
	font-weight: 700;
}

.wp-block-table.is-style-af-compare tbody tr:last-child td {
	border-bottom: 0;
}

.wp-block-table.is-style-af-compare td:first-child {
	font-weight: 700;
	color: var(--af-navy);
}

/* ------------------------------------------------------------------ */
/* 9. Plugin blocks: quote start form, GHL embeds, breadcrumbs         */
/* ------------------------------------------------------------------ */
.af-quote-start {
	margin: 0;
	color: var(--af-ink);
}

.af-quote-start__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.af-quote-start__title {
	margin: 0;
	font-family: var(--af-font-heading);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.3px;
	color: var(--af-navy);
}

.af-quote-start__step {
	flex-shrink: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--af-muted);
	white-space: nowrap;
}

.af-quote-start__bar {
	height: 6px;
	margin-top: 12px;
	border-radius: 99px;
	background: #E3EAE8;
	overflow: hidden;
}

.af-quote-start__bar > span {
	display: block;
	width: 50%;
	height: 100%;
	border-radius: 99px;
	background: var(--af-green);
}

.af-quote-start__fieldset {
	min-width: 0;
	margin: 18px 0 0;
	padding: 0;
	border: 0;
}

.af-quote-start__legend {
	margin-bottom: 10px;
	padding: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--af-navy);
}

.af-quote-start__options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.af-opt {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 54px;
	padding: 10px 12px;
	border: 1px solid var(--af-input-border);
	border-radius: var(--af-radius-btn);
	background: #FFFFFF;
	color: var(--af-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.25;
	cursor: pointer;
}

.af-opt input {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--af-teal-text);
}

.af-opt:hover {
	border-color: var(--af-teal-text);
}

.af-opt:has(input:checked) {
	border: 2px solid var(--af-teal-text);
	padding: 9px 11px;
	background: var(--af-teal-light);
	color: var(--af-navy);
	font-weight: 700;
}

.af-opt:has(input:focus-visible) {
	outline: 3px solid var(--af-navy);
	outline-offset: 2px;
}

.af-quote-start__submit,
.af-quote-start .wp-element-button.af-quote-start__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 52px;
	margin-top: 18px;
	cursor: pointer;
}

.af-quote-start__note {
	margin: 12px 0 0;
	font-size: 14px;
	line-height: 1.45;
	text-align: center;
	color: var(--af-muted);
}

.af-quote-start__secondary {
	margin: 10px 0 0;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
}

.af-quote-start__secondary a {
	color: var(--af-teal-text);
}

.af-embed {
	width: 100%;
}

.af-embed iframe {
	display: block;
	width: 100%;
	border: 0;
}

.af-embed__fallback {
	margin: 8px 0 0;
	font-size: 14px;
	color: var(--af-muted);
}

.af-embed__missing {
	margin: 0;
	padding: 16px;
	border: 2px dashed var(--af-border);
	border-radius: 8px;
	background: var(--af-mist);
	color: var(--af-ink);
	font-size: 15px;
}

/* Get a quote: business / home choice cards. */
.af-choice-label {
	margin-block: 28px 12px;
}

.af-choice-grid {
	gap: 20px;
}

.af-choice-grid > .is-style-af-card-link h2 {
	font-size: var(--wp--preset--font-size--large);
}

.af-card-cta {
	margin-top: auto;
	font-weight: 700;
	color: var(--af-teal-text);
}

.af-card-cta::after {
	content: "";
	display: inline-block;
	width: 16px;
	height: 16px;
	margin-left: 6px;
	vertical-align: -2px;
	background-color: currentColor;
	-webkit-mask: var(--af-i-arrow-right) center / contain no-repeat;
	mask: var(--af-i-arrow-right) center / contain no-repeat;
}

/* Steps stacked inside a card: number on the left instead of above. */
.is-style-af-card .wp-block-group.is-style-af-steps > .wp-block-group {
	padding-top: 0;
	padding-left: 52px;
	min-height: 36px;
}

.is-style-af-card .wp-block-group.is-style-af-steps > .wp-block-group + .wp-block-group {
	margin-block-start: 18px;
}

.is-style-af-card .wp-block-group.is-style-af-steps > .wp-block-group h4 {
	font-size: 17px;
	margin-block: 4px 2px;
}

.af-breadcrumb,
.rank-math-breadcrumb {
	font-size: 15px;
	color: var(--af-muted);
}

.af-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.af-breadcrumb li + li::before {
	content: "/";
	margin-right: 8px;
	color: #8E9BB0;
}

.af-breadcrumb p,
.rank-math-breadcrumb p {
	margin: 0;
}

.af-breadcrumb a,
.rank-math-breadcrumb a {
	color: var(--af-teal-text);
	text-underline-offset: 3px;
}

.af-breadcrumb [aria-current="page"],
.rank-math-breadcrumb .last {
	font-weight: 600;
	color: var(--af-navy);
}

.is-style-af-hero :is(.af-breadcrumb, .rank-math-breadcrumb) {
	color: #8E9BB0;
}

.is-style-af-hero :is(.af-breadcrumb, .rank-math-breadcrumb) a {
	color: var(--af-slate-light);
}

.is-style-af-hero :is(.af-breadcrumb [aria-current="page"], .rank-math-breadcrumb .last) {
	color: #FFFFFF;
}

/* ------------------------------------------------------------------ */
/* 10. Header, utility bar and navigation                              */
/* ------------------------------------------------------------------ */
.af-utility {
	background-color: var(--af-navy);
	color: var(--af-slate-light);
	font-size: 14px;
}

.af-utility__inner {
	min-height: 38px;
	gap: 6px 20px;
}

.af-utility p {
	margin: 0;
}

.af-utility a {
	color: var(--af-green-light);
	font-weight: 700;
	text-decoration: none;
}

.af-utility a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}

.af-header {
	background-color: #FFFFFF;
	border-bottom: 1px solid var(--af-border);
}

.af-header__inner {
	min-height: 80px;
	gap: 16px;
}

.af-brand {
	flex-shrink: 0;
	gap: 12px;
}

.af-brand .wp-block-site-logo img {
	display: block;
	width: 54px;
	height: auto;
}

.af-wordmark {
	gap: 0;
}

.af-wordmark p {
	margin: 0;
}

.af-wordmark__name {
	font-family: var(--af-font-heading);
	font-size: 23px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.4px;
}

.af-wordmark__name a {
	color: var(--af-navy);
	text-decoration: none;
}

.af-wordmark__tag {
	margin-top: 5px !important;
	font-family: var(--af-font-heading);
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 2.6px;
	text-transform: uppercase;
	color: var(--af-teal-text);
}

.af-nav {
	flex: 1 1 auto;
}

.af-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	padding: 10px 11px;
	border-radius: 8px;
	color: var(--af-navy);
	text-decoration: none;
}

.af-nav .wp-block-navigation-item__content:hover,
.af-nav .wp-block-navigation-item__content:focus-visible {
	background-color: var(--af-teal-light);
	color: var(--af-navy);
}

.af-nav .wp-block-navigation__submenu-icon {
	margin-left: 2px;
	color: var(--af-navy);
}

/* Dropdown panels (desktop). */
.af-nav .wp-block-navigation__submenu-container {
	min-width: 280px !important;
	padding: 10px !important;
	border: 1px solid var(--af-border) !important;
	border-radius: 14px;
	background-color: #FFFFFF !important;
	box-shadow: 0 24px 48px rgba(24, 38, 77, 0.16);
}

.af-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 9px 12px;
	font-size: 15px;
	font-weight: 600;
}

.af-header__actions {
	flex-shrink: 0;
	gap: 14px;
}

.af-header__phone {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	white-space: nowrap;
	color: var(--af-navy);
	--af-icon-color: var(--af-teal-text);
}

.af-header__phone a {
	color: var(--af-navy);
	text-decoration: none;
}

.af-header__phone a:hover {
	text-decoration: underline;
}

.af-header__cta .wp-block-button__link {
	min-height: 48px;
	padding: 0 20px;
	font-size: 16px;
}

/* Mobile overlay menu. */
.af-nav .wp-block-navigation__responsive-container-open,
.af-nav .wp-block-navigation__responsive-container-close {
	color: var(--af-navy);
}

.af-nav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--af-navy);
	border-radius: 10px;
}

.af-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px clamp(16px, 4vw, 40px);
	background-color: #FFFFFF !important;
	color: var(--af-navy) !important;
}

.af-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 18px;
}

.af-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0 !important;
	padding: 0 0 0 12px !important;
	border: 0 !important;
	box-shadow: none;
}

/* The design collapses the menu below 1080px; core only does so below 600px. */
@media (min-width: 600px) and (max-width: 1079.98px) {
	.af-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.af-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.af-nav {
		flex: 0 0 auto;
		order: 3;
	}
}

@media (min-width: 1080px) and (max-width: 1239.98px) {
	.af-header__phone {
		display: none;
	}
}

@media (max-width: 781.98px) {
	.af-utility,
	.af-header__phone {
		display: none;
	}

	.af-header__inner {
		min-height: 64px;
	}

	.af-brand .wp-block-site-logo img {
		width: 40px;
	}

	.af-wordmark__name {
		font-size: 19px;
	}

	.af-wordmark__tag {
		font-size: 8.5px;
		letter-spacing: 2.2px;
	}
}

@media (max-width: 599.98px) {
	.af-header__cta {
		display: none;
	}
}

/* ------------------------------------------------------------------ */
/* 11. Footer and mobile action bar                                    */
/* ------------------------------------------------------------------ */
.af-footer {
	background-color: var(--af-navy-deep);
	color: #C9D3DF;
	padding-top: 64px;
	padding-bottom: 32px;
	font-size: 16px;
}

.af-footer a {
	color: #E3EAF2;
	text-decoration: none;
}

.af-footer a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}

.af-footer__cols {
	gap: 40px 56px;
}

.af-footer__brand {
	margin: 0;
	font-family: var(--af-font-heading);
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.4px;
}

.af-footer__brand a {
	color: #FFFFFF;
}

.af-footer__tagline {
	font-family: var(--af-font-heading);
	font-weight: 700;
	color: var(--af-green-light);
}

.af-footer__heading {
	margin: 0 0 14px;
	font-family: var(--af-font-heading);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #FFFFFF;
}

.af-footer__nav {
	gap: 28px 24px;
}

.af-footer .is-style-af-plain > li {
	margin-block: 0 8px;
	font-size: 15px;
}

.af-footer__contact > li {
	font-size: 16px;
}

.af-footer__bottom {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	gap: 12px 24px;
	font-size: 14px;
}

.af-footer__bottom p {
	margin: 0;
}

.af-footer__legal a + a {
	margin-left: 20px;
}

.af-mobile-bar {
	display: none;
}

@media (max-width: 781.98px) {
	.af-mobile-bar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background-color: #FFFFFF;
		border-top: 1px solid var(--af-border);
		box-shadow: 0 -8px 24px rgba(24, 38, 77, 0.1);
	}

	.af-mobile-bar__buttons {
		flex: 1 1 auto;
		flex-wrap: nowrap;
		gap: 10px;
	}

	.af-mobile-bar__call {
		flex: 1 1 0;
	}

	.af-mobile-bar__quote {
		flex: 1.6 1 0;
	}

	.af-mobile-bar .wp-block-button__link {
		width: 100%;
	}

	body {
		padding-bottom: 84px;
	}

	.wp-block-buttons.af-show-sm {
		display: flex;
	}
}

/* ------------------------------------------------------------------ */
/* 12. Templates: text pages and lists                                 */
/* ------------------------------------------------------------------ */
.af-text-page,
.af-list-page {
	padding-top: clamp(40px, 6vw, 72px);
	padding-bottom: clamp(56px, 7vw, 96px);
}

.af-post-meta {
	gap: 8px 16px;
	font-size: 15px;
	color: var(--af-muted);
}

/* ------------------------------------------------------------------ */
/* 13. Small screens                                                   */
/* ------------------------------------------------------------------ */
@media (max-width: 781.98px) {
	.af-quote-start__options {
		grid-template-columns: 1fr;
	}

	.wp-block-group.is-style-af-quote-card {
		padding: 22px;
	}

	.wp-block-details > summary {
		padding: 18px 20px;
		font-size: 17px;
	}

	.wp-block-details > :not(summary) {
		margin-inline: 20px;
	}

	.af-footer__legal a + a {
		margin-left: 14px;
	}
}

/* ------------------------------------------------------------------ */
/* 14. Reduced motion                                                  */
/* ------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}
