/*
 * fsa-theme.css: site-only styles. Base typography, sections and the layouts used by the
 * patterns in /patterns, plus the house style for Gravity Forms.
 * Header, footer and .fsa-btn live in fsa-base.css (shared with the wiki).
 */

/* ------------------------------------------------------------------ */
/* Base                                                                */
/* ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}
html {
	scroll-padding-top: 24px;
}
.wp-site-blocks > *,
.wp-site-blocks > * + * {
	margin-block-start: 0;
	margin-block-end: 0;
}
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img {
	max-width: 100%;
	height: auto;
}
.fsa-main {
	display: block;
	min-height: 40vh;
}
.fsa-main > .wp-block-post-content > *,
.fsa-main > .wp-block-post-content,
.fsa-main > * {
	margin-block-start: 0;
	margin-block-end: 0;
}
.fsa-content > :where(*) {
	margin-block-start: 0;
}
:where(.fsa-main) a {
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
:where(.fsa-main) a:focus-visible,
:where(.fsa-main) button:focus-visible,
:where(.fsa-main) summary:focus-visible {
	outline: 2px solid var(--fsa-primary);
	outline-offset: 2px;
}
.fsa-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
h1,
h2,
h3,
h4 {
	letter-spacing: -0.02em;
}

/* ------------------------------------------------------------------ */
/* Sections and containers                                             */
/* ------------------------------------------------------------------ */
.fsa-section {
	position: relative;
	padding-top: 72px;
	padding-bottom: 72px;
}
.fsa-section--surface {
	background: var(--fsa-surface);
}
.fsa-section--light {
	background: var(--fsa-light);
}
.fsa-section--dark {
	background: var(--fsa-dark);
	color: var(--fsa-white);
}
.fsa-section--navy {
	background: var(--fsa-navy);
	color: var(--fsa-white);
}
.fsa-section--border {
	border-bottom: 1px solid var(--fsa-border);
}
.fsa-section--dark :where(h1, h2, h3, h4),
.fsa-section--navy :where(h1, h2, h3, h4) {
	color: var(--fsa-white);
}
.fsa-pad-xl {
	padding-top: 96px;
	padding-bottom: 96px;
}
.fsa-pad-80 {
	padding-top: 80px;
	padding-bottom: 80px;
}
.fsa-pad-m {
	padding-top: 56px;
	padding-bottom: 56px;
}
.fsa-pt-16 {
	padding-top: 16px;
}
.fsa-pt-32 {
	padding-top: 32px;
}
.fsa-pb-40 {
	padding-bottom: 40px;
}
.fsa-pb-56 {
	padding-bottom: 56px;
}
.fsa-pb-80 {
	padding-bottom: 80px;
}
.fsa-container {
	width: 100%;
	max-width: var(--fsa-layout-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--fsa-layout-gutter);
	padding-right: var(--fsa-layout-gutter);
}
.fsa-container--narrow {
	max-width: var(--fsa-layout-narrow);
}
.fsa-container > * + *,
.fsa-stack > * + * {
	margin-block-start: 16px;
}
.fsa-container > :where(h2, h3) + *,
.fsa-container--narrow > :where(h2) + * {
	margin-block-start: 0;
}

/* Grids */
.fsa-grid {
	display: grid;
	gap: 28px;
}
.fsa-grid > * {
	margin: 0 !important;
}
.fsa-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.fsa-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.fsa-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 40px;
}
.fsa-two {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}
.fsa-two > * {
	margin: 0 !important;
}

/* ------------------------------------------------------------------ */
/* Typography helpers                                                  */
/* ------------------------------------------------------------------ */
.fsa-eyebrow {
	margin: 0;
	color: var(--fsa-primary);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-transform: uppercase;
}
.fsa-eyebrow--on-dark {
	color: var(--fsa-color-eyebrow-on-dark);
}
.fsa-eyebrow + .fsa-title,
.fsa-eyebrow + h2,
.fsa-eyebrow + h3 {
	margin-top: 8px !important;
}
.fsa-title {
	margin: 0;
	color: var(--fsa-dark);
	font-size: var(--wp--preset--font-size--xx-large, 44px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.12;
}
.fsa-section--dark .fsa-title,
.fsa-section--navy .fsa-title {
	color: var(--fsa-white);
}
.fsa-h2,
.fsa-container > h2.wp-block-heading,
.fsa-two h2.wp-block-heading {
	margin: 0 0 18px;
	color: var(--fsa-dark);
	font-size: var(--wp--preset--font-size--x-large, 30px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
}
.fsa-h2--small {
	font-size: 24px !important;
}
.fsa-lead {
	font-size: 20px;
	line-height: 1.55;
}
.fsa-muted {
	color: var(--fsa-muted);
}
.fsa-text-2 {
	color: var(--fsa-color-text-secondary);
}
.fsa-page-title {
	margin: 0;
	color: var(--fsa-dark);
	font-size: var(--wp--preset--font-size--page-title, 54px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.08;
}
.fsa-more {
	margin: 0;
}
.fsa-more a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	text-decoration: none;
}
.fsa-more a::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Generic text pages (classic content, team members) */
.fsa-prose {
	font-size: 17px;
	line-height: 1.7;
}
.fsa-prose p,
.fsa-prose ul,
.fsa-prose ol {
	margin: 0 0 16px;
}
.fsa-prose h2 {
	margin: 40px 0 14px;
	font-size: 26px;
}
.fsa-prose h3 {
	margin: 32px 0 12px;
	font-size: 21px;
}
.fsa-prose h4 {
	margin: 28px 0 10px;
	font-size: 19px;
}
.fsa-prose li {
	margin-bottom: 6px;
}

/* ------------------------------------------------------------------ */
/* Buttons (core/button)                                               */
/* ------------------------------------------------------------------ */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.wp-block-buttons > .wp-block-button {
	margin: 0;
}
.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: var(--fsa-control-height);
	white-space: nowrap;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.wp-block-button.is-style-white .wp-block-button__link {
	background: var(--fsa-white);
	color: var(--fsa-dark);
}
.wp-block-button.is-style-white .wp-block-button__link:hover,
.wp-block-button.is-style-white .wp-block-button__link:focus {
	background: var(--fsa-light);
	color: var(--fsa-dark);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.75);
	background: transparent;
	color: var(--fsa-white);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus {
	background: rgba(255, 255, 255, 0.12);
	color: var(--fsa-white);
}
.wp-block-button.is-style-secondary .wp-block-button__link {
	border-color: var(--fsa-primary);
	background: var(--fsa-white);
	color: var(--fsa-primary);
}
.wp-block-button.is-style-secondary .wp-block-button__link:hover,
.wp-block-button.is-style-secondary .wp-block-button__link:focus {
	background: var(--fsa-light);
	color: var(--fsa-color-primary-hover);
}
.wp-block-button.fsa-btn-check .wp-block-button__link::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: 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='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: 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='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Breadcrumb (also used by fsa/course-hero, see fsa-blocks.css) */
.fsa-breadcrumb {
	margin: 0;
	color: var(--fsa-muted);
	font-size: 14.5px;
}
.fsa-breadcrumb a {
	text-decoration: none;
}
.fsa-breadcrumb a:hover {
	text-decoration: underline;
}

/* ------------------------------------------------------------------ */
/* Page head (generic pages)                                           */
/* ------------------------------------------------------------------ */
.fsa-page-head {
	padding-top: 56px;
	padding-bottom: 48px;
	border-bottom: 1px solid var(--fsa-border);
}
.fsa-page-head .fsa-breadcrumb {
	margin-bottom: 14px !important;
}
.fsa-page-head .fsa-page-title + * {
	margin-top: 16px !important;
}
.fsa-page-head .fsa-lead {
	max-width: 760px;
	color: var(--fsa-color-text-secondary);
}

/* ------------------------------------------------------------------ */
/* Homepage hero                                                       */
/* ------------------------------------------------------------------ */
.fsa-hero {
	position: relative;
	overflow: hidden;
	background: var(--fsa-dark);
	color: var(--fsa-white);
}
.fsa-hero__media {
	position: absolute;
	inset: 0;
	margin: 0 !important;
}
.fsa-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}
.fsa-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 37, 69, 0.97) 0%, rgba(11, 37, 69, 0.88) 40%, rgba(11, 37, 69, 0.4) 72%, rgba(11, 37, 69, 0.2) 100%);
}
.fsa-hero__inner {
	position: relative;
	z-index: 1;
	padding-top: 104px;
	padding-bottom: 112px;
}
.fsa-hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 28px;
	max-width: 660px;
}
.fsa-hero__content > * {
	margin: 0 !important;
}
.fsa-hero__title {
	color: var(--fsa-white) !important;
	font-size: var(--wp--preset--font-size--hero, 62px);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.06;
}
.fsa-hero__lead {
	max-width: 560px;
	color: var(--fsa-color-on-dark-strong);
	font-size: 20px;
	line-height: 1.55;
}

/* Numbered blocks */
.fsa-number > * {
	margin: 0;
}
.fsa-num {
	margin: 0;
	color: var(--fsa-primary);
	font-size: 30px;
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1;
}
.fsa-number__title {
	margin: 14px 0 6px !important;
	color: var(--fsa-text);
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.6;
}
.fsa-number__text {
	margin: 0;
	color: var(--fsa-muted);
	font-size: 15.5px;
}

/* Section head with link on the right */
.fsa-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 40px !important;
}
.fsa-section-head > * {
	margin: 0 !important;
}
.fsa-section-head--narrow {
	max-width: 720px;
}

/* Two ways (courses + wiki) */
.fsa-way {
	overflow: hidden;
	border-radius: var(--fsa-radius-xl);
}
.fsa-way--courses {
	display: grid;
	grid-template-rows: 240px auto;
	background: var(--fsa-dark);
	color: var(--fsa-white);
}
.fsa-way__img {
	margin: 0 !important;
}
.fsa-way__img img {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
	object-position: center 35%;
}
.fsa-way__body {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 36px;
}
.fsa-way__body > *,
.fsa-way--wiki > * {
	margin: 0 !important;
}
.fsa-way__title {
	margin: 0;
	font-size: 32px !important;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.15;
}
.fsa-way--courses .fsa-way__title {
	color: var(--fsa-white);
}
.fsa-way--courses p {
	color: var(--fsa-color-on-dark-strong);
}
.fsa-way--wiki {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 40px;
	background: var(--fsa-light);
}
.fsa-way--wiki .fsa-way__text {
	color: var(--fsa-color-text-secondary);
}
.fsa-way--wiki .fsa-wiki-search {
	margin-top: 6px !important;
}

/* Text with photo */
.fsa-media-text {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 64px;
	align-items: center;
}
.fsa-media-text > * {
	margin: 0 !important;
}
.fsa-media-text__img img {
	display: block;
	width: 100%;
	height: 440px;
	border-radius: var(--fsa-radius-xl);
	object-fit: cover;
}
.fsa-media-text__body {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.fsa-media-text__body > * {
	margin: 0 !important;
}
.fsa-media-text__body .fsa-title {
	font-size: 42px;
	line-height: 1.14;
}
.fsa-media-text__body .wp-block-buttons {
	margin-top: 8px !important;
}

/* About band with facts */
.fsa-about {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: 64px;
	align-items: center;
}
.fsa-about > * {
	margin: 0 !important;
}
.fsa-about__text {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.fsa-about__text > * {
	margin: 0 !important;
}
.fsa-about__text .fsa-title {
	font-size: 40px;
	line-height: 1.15;
}
.fsa-about__text p:not(.fsa-eyebrow) {
	color: var(--fsa-color-on-dark-strong);
}
.fsa-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	border-radius: var(--fsa-radius-l);
	background: rgba(255, 255, 255, 0.18);
}
.fsa-facts > * {
	margin: 0 !important;
}
.fsa-fact {
	padding: 28px;
	background: var(--fsa-navy);
}
.fsa-fact > * {
	margin: 0;
}
.fsa-fact__value {
	color: var(--fsa-white);
	font-size: 44px;
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1;
}
.fsa-fact__label {
	margin-top: 8px !important;
	color: var(--fsa-color-on-dark);
	font-size: 15px;
}

/* CTA band */
.fsa-cta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 40px;
	padding: 40px 48px;
	border-radius: var(--fsa-radius-xl);
	background: var(--fsa-dark);
	color: var(--fsa-white);
}
.fsa-cta > * {
	margin: 0 !important;
}
.fsa-cta__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 720px;
}
.fsa-cta__text > * {
	margin: 0 !important;
}
.fsa-cta h2,
.fsa-cta h3 {
	color: var(--fsa-white);
	font-size: 28px;
}
.fsa-cta p {
	color: var(--fsa-color-on-dark-strong);
}
.fsa-cta--light {
	border: 1px solid var(--fsa-border);
	background: var(--fsa-surface);
	color: var(--fsa-text);
}
.fsa-cta--light h2,
.fsa-cta--light h3 {
	color: var(--fsa-dark);
}
.fsa-cta--light p {
	color: var(--fsa-color-text-secondary);
}

/* Cards (generic) */
.fsa-card {
	padding: 26px;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-l);
	background: var(--fsa-white);
}
.fsa-card > * {
	margin: 0;
}
.fsa-card > * + * {
	margin-top: 10px;
}

/* ------------------------------------------------------------------ */
/* Course page                                                         */
/* ------------------------------------------------------------------ */
.fsa-brochure {
	scroll-margin-top: 24px;
}
.fsa-brochure__title {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--fsa-dark);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
}
.fsa-brochure__title::before {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	background: var(--fsa-primary);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fsa-brochure__intro {
	color: var(--fsa-color-text-secondary);
	font-size: 16px;
}
.fsa-brochure__note {
	margin-top: 12px !important;
	color: var(--fsa-muted);
	font-size: 14px;
	font-style: italic;
}
.fsa-book {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 36px;
	align-items: center;
	margin-top: 56px !important;
	padding: 20px 40px 20px 28px;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-xxl);
	background: var(--fsa-white);
	box-shadow: var(--fsa-shadow-card);
}
.fsa-book > * {
	margin: 0 !important;
}
.fsa-book__img img {
	display: block;
	width: 150px;
	height: auto;
}
.fsa-book__text {
	margin: 6px 0 0 !important;
	color: var(--fsa-dark);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1.4;
}
.fsa-features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
.fsa-features > * {
	margin: 0 !important;
}
.fsa-feature {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 24px;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-l);
	background: var(--fsa-white);
}
.fsa-feature > * {
	margin: 0 !important;
}
.fsa-feature::before {
	content: "";
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--fsa-light);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 18px 18px;
}
.fsa-feature__title {
	color: var(--fsa-dark);
	font-size: 17px !important;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.5;
}
.fsa-feature p {
	color: var(--fsa-color-text-secondary);
	font-size: 16px;
}
.fsa-feature p strong {
	color: var(--fsa-dark);
}
.fsa-feature--teacher::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='3' width='12' height='10' rx='1'/%3E%3Ccircle cx='5' cy='9' r='2'/%3E%3Cpath d='M2 21v-3a3 3 0 0 1 3-3h3l4-4'/%3E%3C/svg%3E");
}
.fsa-feature--book::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20V3H6.5A2.5 2.5 0 0 0 4 5.5z'/%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 0 6.5 22H20v-5'/%3E%3C/svg%3E");
}
.fsa-feature--pin::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6-5.4-6-10a6 6 0 0 1 12 0c0 4.6-6 10-6 10z'/%3E%3Ccircle cx='12' cy='11' r='2'/%3E%3C/svg%3E");
}
.fsa-feature--cap::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9l10-5 10 5-10 5z'/%3E%3Cpath d='M6 11v5c0 1.7 2.7 3 6 3s6-1.3 6-3v-5'/%3E%3C/svg%3E");
}
.fsa-feature--food::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 2v20M4 2v6a3 3 0 0 0 6 0V2M17 2c-2 0-3 2-3 5s1 4 3 4v11'/%3E%3C/svg%3E");
}
.fsa-feature--flame::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22c4 0 7-2.7 7-7 0-4-3-6-4-9-1 2-2 3-3 3 0-3-1-5-3-7 0 4-4 7-4 13 0 4.3 3 7 7 7z'/%3E%3C/svg%3E");
}
.fsa-feature--check::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143E90' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
}

.fsa-features--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.fsa-practical h3 {
	margin: 0 0 6px;
	font-size: 22px;
}
.fsa-practical h4 {
	margin: 14px 0 2px !important;
	font-size: 17px;
}
.fsa-two > .fsa-card {
	align-self: start;
}
.fsa-prose .fsa-wide-img {
	margin-bottom: 28px !important;
}
.fsa-prose h2 {
	margin-top: 36px !important;
}

/* Key facts bar (pattern, available) */
.fsa-keyfacts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-l);
	background: var(--fsa-white);
}
.fsa-keyfacts > * {
	margin: 0 !important;
	padding: 16px 22px;
}
.fsa-keyfacts > * + * {
	border-left: 1px solid var(--fsa-border);
}
.fsa-keyfact > * {
	margin: 0;
}
.fsa-keyfact__label {
	color: var(--fsa-muted);
	font-size: 13px;
}
.fsa-keyfact__value {
	color: var(--fsa-dark);
	font-size: 17px;
	font-weight: 600;
}

/* Callout (e.g. "not an NFPA Authorized Trainer") */
.fsa-callout {
	padding: 18px 22px;
	border: 1px solid #CFE3D8;
	border-left: 4px solid var(--fsa-success);
	border-radius: var(--fsa-radius-m);
	background: #F1F8F4;
	color: var(--fsa-text);
}
.fsa-callout--info {
	border-color: var(--fsa-color-subject-border);
	border-left-color: var(--fsa-primary);
	background: var(--fsa-light);
}

/* Check list (core/list with class) */
.fsa-checklist {
	padding: 0;
	list-style: none;
}
.fsa-checklist li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 30px;
}
.fsa-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	width: 18px;
	height: 18px;
	background: var(--fsa-primary);
	-webkit-mask: 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='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: 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='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* FAQ (core/details) */
.fsa-faq {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.fsa-faq > * {
	margin: 0 !important;
}
.fsa-faq .wp-block-details {
	padding: 0;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-l);
	background: var(--fsa-white);
}
.fsa-faq .wp-block-details summary {
	padding: 18px 22px;
	color: var(--fsa-dark);
	font-weight: 600;
	cursor: pointer;
}
.fsa-faq .wp-block-details > :not(summary) {
	margin: 0;
	padding: 0 22px 18px;
}

/* Testimonial (core/quote) */
.fsa-testimonial {
	margin: 0;
	padding: 32px 36px;
	border: 0;
	border-radius: var(--fsa-radius-xl);
	background: var(--fsa-light);
}
.fsa-testimonial p {
	color: var(--fsa-dark);
	font-size: 22px;
	font-weight: 500;
	line-height: 1.45;
}
.fsa-testimonial cite {
	display: block;
	margin-top: 14px;
	color: var(--fsa-muted);
	font-size: 15px;
	font-style: normal;
}

/* Venue (Training venues) */
.fsa-venue {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--fsa-border);
	border-radius: var(--fsa-radius-l);
	background: var(--fsa-white);
}
.fsa-venue > * {
	margin: 0 !important;
}
.fsa-venue__img img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
}
.fsa-venue__body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px 26px 26px;
}
.fsa-venue__body > * {
	margin: 0 !important;
}
.fsa-venue__body h3 {
	font-size: 26px;
}
.fsa-venue__body h4 {
	color: var(--fsa-color-text-secondary);
	font-size: 19px;
	font-weight: 500;
}
.fsa-venue__body .fsa-checklist {
	margin-top: 8px !important;
}

/* Contact */
.fsa-contact-card {
	padding: 28px;
	border-radius: var(--fsa-radius-xl);
	background: var(--fsa-surface);
}
.fsa-contact-card > * {
	margin: 0;
}
.fsa-contact-card > * + * {
	margin-top: 12px;
}
.fsa-contact-card h2,
.fsa-contact-card h3 {
	font-size: 22px;
}
.fsa-wide-img img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 420px;
	border-radius: var(--fsa-radius-xl);
	object-fit: cover;
}

/* ------------------------------------------------------------------ */
/* Team member page                                                    */
/* ------------------------------------------------------------------ */
.fsa-member-head__inner {
	display: flex;
	align-items: center;
	gap: 40px;
}
.fsa-member-head__inner > * {
	margin: 0 !important;
}
.fsa-member-photo {
	flex: none;
	width: 180px;
	height: 180px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--fsa-light);
}
.fsa-member-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fsa-member-head__text {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.fsa-member-head__text > * {
	margin: 0 !important;
}

/* Smart Team overview (/team/) */
.fsa-main .sptp-member .sptp-member-name,
.fsa-main .sptp-member-name h2 {
	color: var(--fsa-dark);
	font-family: var(--fsa-font);
}

/* ------------------------------------------------------------------ */
/* Search, archive, pagination                                         */
/* ------------------------------------------------------------------ */
.fsa-searchform {
	max-width: 640px;
	margin-top: 24px !important;
}
.fsa-searchform .wp-block-search__inside-wrapper {
	gap: 8px;
	padding: 0;
	border: 0;
}
.fsa-searchform .wp-block-search__input {
	height: 52px;
	padding: 0 16px;
	border: 1.5px solid var(--fsa-color-line-strong);
	border-radius: var(--fsa-radius-input);
	background: var(--fsa-white);
	font: inherit;
}
.fsa-searchform .wp-block-search__button {
	margin: 0;
	padding: 0 22px;
}
.fsa-search-results {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}
.fsa-search-results > * {
	margin: 0 !important;
}
.fsa-eyebrow-heading {
	margin: 0 0 16px !important;
	color: var(--fsa-primary) !important;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 0.12em !important;
	text-transform: uppercase;
}
.fsa-results__list {
	display: flex;
	flex-direction: column;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.fsa-results__list > li {
	margin: 0;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--fsa-border);
}
.fsa-results__title {
	margin: 0 0 6px;
	font-size: 20px;
}
.fsa-results__title a {
	text-decoration: none;
}
.fsa-results__excerpt p {
	margin: 0;
	color: var(--fsa-color-text-secondary);
	font-size: 16px;
}
.fsa-pagination {
	gap: 8px;
	margin-top: 28px;
}
.fsa-404 .wp-block-buttons {
	margin-top: 28px !important;
}

/* ------------------------------------------------------------------ */
/* Gravity Forms in the house style (the forms themselves are unchanged)*/
/* ------------------------------------------------------------------ */
.fsa-main .gform_wrapper {
	--gf-color-primary: var(--fsa-primary);
	--gf-color-primary-rgb: 20, 62, 144;
	--gf-color-in-ctrl: var(--fsa-white);
	--gf-ctrl-border-color: var(--fsa-color-line-strong);
	--gf-ctrl-radius: var(--fsa-radius-m);
	--gf-ctrl-size: 46px;
	--gf-font-family-base: var(--fsa-font);
	--gf-ctrl-font-family: var(--fsa-font);
	--gf-ctrl-btn-font-family: var(--fsa-font);
	margin: 0;
	font-family: var(--fsa-font);
}
.fsa-main .gform_wrapper .gfield_label,
.fsa-main .gform_wrapper .gform-field-label,
.fsa-main .gform_wrapper legend.gfield_label {
	color: var(--fsa-dark);
	font-family: var(--fsa-font);
	font-size: 14px;
	font-weight: 600;
}
.fsa-main .gform_wrapper .gform-field-label--type-sub,
.fsa-main .gform_wrapper .ginput_complex label {
	color: var(--fsa-muted);
	font-size: 13px;
	font-weight: 400;
}
.fsa-main .gform_wrapper input[type="text"],
.fsa-main .gform_wrapper input[type="email"],
.fsa-main .gform_wrapper input[type="tel"],
.fsa-main .gform_wrapper input[type="number"],
.fsa-main .gform_wrapper input[type="url"],
.fsa-main .gform_wrapper select,
.fsa-main .gform_wrapper textarea {
	min-height: 46px;
	padding: 8px 12px;
	border: 1px solid var(--fsa-color-line-strong);
	border-radius: var(--fsa-radius-m);
	background: var(--fsa-white);
	box-shadow: none;
	color: var(--fsa-text);
	font-family: var(--fsa-font);
	font-size: 16px;
}
.fsa-main .gform_wrapper input:focus,
.fsa-main .gform_wrapper select:focus,
.fsa-main .gform_wrapper textarea:focus {
	border-color: var(--fsa-primary);
	outline: 2px solid rgba(20, 62, 144, 0.2);
	outline-offset: 0;
}
.fsa-main .gform_wrapper .gform_footer,
.fsa-main .gform_wrapper .gform_page_footer {
	margin-top: 16px;
	padding: 0;
}
.fsa-main .gform_wrapper .gform_button,
.fsa-main .gform_wrapper input[type="submit"],
.fsa-main .gform_wrapper button[type="submit"] {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 50px !important;
	padding: 0 24px !important;
	border: 1.5px solid transparent !important;
	border-radius: var(--fsa-radius-m) !important;
	background: var(--fsa-primary) !important;
	box-shadow: none !important;
	color: var(--fsa-white) !important;
	font-family: var(--fsa-font) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	cursor: pointer;
}
.fsa-main .gform_wrapper .gform_button:hover,
.fsa-main .gform_wrapper input[type="submit"]:hover,
.fsa-main .gform_wrapper button[type="submit"]:hover {
	background: var(--fsa-color-primary-hover) !important;
}
.fsa-brochure .gform_wrapper .gform_button,
.fsa-brochure .gform_wrapper input[type="submit"] {
	width: 100% !important;
	border-color: var(--fsa-primary) !important;
	background: var(--fsa-white) !important;
	color: var(--fsa-primary) !important;
}
.fsa-brochure .gform_wrapper .gform_button:hover,
.fsa-brochure .gform_wrapper input[type="submit"]:hover {
	background: var(--fsa-light) !important;
	color: var(--fsa-color-primary-hover) !important;
}
.fsa-main .gform_wrapper .gfield_required {
	color: #B42318;
}
.fsa-main .gform_wrapper .validation_message,
.fsa-main .gform_wrapper .gfield_validation_message,
.fsa-main .gform_wrapper .gform_validation_errors {
	border-radius: var(--fsa-radius-m);
	font-family: var(--fsa-font);
	font-size: 14px;
}
.fsa-main .gform_confirmation_message {
	padding: 18px 22px;
	border-radius: var(--fsa-radius-m);
	background: #F1F8F4;
	color: var(--fsa-text);
}

/* ------------------------------------------------------------------ */
/* Below 960 px                                                        */
/* ------------------------------------------------------------------ */
@media (max-width: 959.98px) {
	body {
		font-size: 16px;
	}
	.fsa-section,
	.fsa-pad-xl,
	.fsa-pad-80 {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.fsa-pad-m {
		padding-top: 36px;
		padding-bottom: 36px;
	}
	.fsa-container {
		padding-left: var(--fsa-layout-gutter-mobile);
		padding-right: var(--fsa-layout-gutter-mobile);
	}
	.fsa-grid--2,
	.fsa-grid--3,
	.fsa-grid--4,
	.fsa-two,
	.fsa-media-text,
	.fsa-about,
	.fsa-features,
	.fsa-search-results {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}
	.fsa-title {
		font-size: var(--wp--preset--font-size--xx-large, 28px);
	}
	.fsa-media-text__body .fsa-title,
	.fsa-about__text .fsa-title {
		font-size: 30px;
	}
	.fsa-page-head {
		padding-top: 32px;
		padding-bottom: 28px;
	}
	.fsa-section-head {
		margin-bottom: 20px !important;
	}
	/* Hero: photo on top, text on dark below (homepage-mobiel.html). */
	.fsa-hero__media {
		position: relative;
		height: 220px;
	}
	.fsa-hero__media img {
		object-position: 45% center;
	}
	.fsa-hero__media::after {
		display: none;
	}
	.fsa-hero__inner {
		padding-top: 32px;
		padding-bottom: 36px;
	}
	.fsa-hero__content {
		gap: 18px;
	}
	.fsa-hero__lead {
		font-size: 16px;
	}
	.fsa-hero .wp-block-buttons {
		flex-direction: column;
		align-self: stretch;
		gap: 12px;
	}
	.fsa-hero .wp-block-buttons .wp-block-button,
	.fsa-hero .wp-block-buttons .wp-block-button__link {
		width: 100%;
	}
	.fsa-hero .fsa-next-course {
		display: none;
	}
	/* Numbered blocks as a compact list */
	.fsa-numbers.fsa-grid--4 {
		gap: 22px;
	}
	.fsa-number {
		display: grid;
		grid-template-columns: 32px minmax(0, 1fr);
		column-gap: 16px;
	}
	.fsa-num {
		grid-row: 1 / span 2;
		font-size: 24px;
		line-height: 1.2;
	}
	.fsa-number__title {
		margin: 0 !important;
		font-size: 16px;
	}
	.fsa-number__text {
		font-size: 15px;
	}
	.fsa-way--courses {
		grid-template-rows: 180px auto;
	}
	.fsa-way__img img {
		height: 180px;
	}
	.fsa-way__body,
	.fsa-way--wiki {
		padding: 24px 20px;
	}
	.fsa-way__title {
		font-size: 28px !important;
	}
	.fsa-media-text__img img {
		height: 240px;
	}
	.fsa-fact {
		padding: 20px;
	}
	.fsa-fact__value {
		font-size: 34px;
	}
	.fsa-cta {
		padding: 28px 22px;
	}
	.fsa-book {
		grid-template-columns: 110px minmax(0, 1fr);
		gap: 20px;
		padding: 24px;
	}
	.fsa-book__img img {
		width: 110px;
	}
	.fsa-book__text {
		font-size: 18px;
	}
	.fsa-keyfacts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.fsa-keyfacts > :nth-child(3) {
		border-left: 0;
	}
	.fsa-keyfacts > :nth-child(n+3) {
		border-top: 1px solid var(--fsa-border);
	}
	.fsa-member-head__inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}
	.fsa-member-photo {
		width: 120px;
		height: 120px;
	}
	.wp-block-button__link {
		white-space: normal;
		text-align: center;
	}
}

@media print {
	.fsa-site-header,
	.fsa-site-footer,
	.fsa-hero__media,
	.wp-block-buttons {
		display: none !important;
	}
}
