/**
 * Training archive, single page and portal picker.
 * All public styles are isolated from Elementor's editor interface.
 */

.jfb-training-pages,
.jfb-training-picker {
	--training-ink: var(--jfb-color-ink, #1c1c1a);
	--training-brand: var(--jfb-color-brand, #e6342c);
	--training-brand-dark: var(--jfb-color-brand-dark, #b51f1a);
	--training-brand-light: var(--jfb-color-brand-light, #ff6b61);
	--training-warm: var(--jfb-color-surface-warm, #f8f5f3);
	--training-pale: var(--jfb-color-surface-pale, #fcebe9);
	--training-border: var(--jfb-color-border, #e7e2df);
	--training-muted: rgba(28, 28, 26, 0.62);
	--training-success: var(--jfb-color-success, #207a4a);
	--training-radius: 16px;
	--training-shadow: 0 18px 40px rgba(28, 28, 26, 0.08);
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	color: var(--training-ink);
	font-family: var(--jfb-font-primary, "Manrope", sans-serif);
	font-size: 16px;
	line-height: 1.55;
}

/* Elementor gives every root container 10px by default. This page shell is
 * intentionally edge-to-edge, matching the Figma archive and the other site
 * templates, while the inner `.jfb-training-shell` retains its own gutters. */
body.jfb-training-page .jfb-training-page-shell,
body.jfb-training-page .jfb-training-page-shortcode,
body.jfb-training-page .jfb-training-page-shortcode > .elementor-widget-container,
body.jfb-training-page .jfb-training-page-shortcode .elementor-shortcode {
	width: 100%;
	max-width: none;
	margin: 0 !important;
	padding: 0 !important;
}

.jfb-training-pages *,
.jfb-training-pages *::before,
.jfb-training-pages *::after,
.jfb-training-picker *,
.jfb-training-picker *::before,
.jfb-training-picker *::after { box-sizing: border-box; }

.jfb-training-pages :where(h1, h2, h3, p, ul, ol, figure),
.jfb-training-picker :where(h1, h2, h3, p, ul, ol, figure) { margin: 0; }

.jfb-training-pages :where(button, input, select),
.jfb-training-picker :where(button, input, select) { font: inherit; }

.jfb-training-pages [hidden],
.jfb-training-picker [hidden] { display: none !important; }

.jfb-training-pages .jfb-training-shell {
	width: min(100% - 48px, 1232px);
	margin-inline: auto;
}

.jfb-training-pages :where(a, button, input, select, summary):focus-visible,
.jfb-training-picker :where(a, button, input, select, summary):focus-visible {
	outline: 3px solid rgba(230, 52, 44, 0.3);
	outline-offset: 3px;
}

/* Buttons */
.jfb-training-pages .jfb-training-button,
.jfb-training-picker .jfb-training-button {
	display: inline-flex;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 13px 24px !important;
	border: 2px solid transparent;
	border-radius: 12px;
	box-shadow: none;
	font-size: 15px;
	font-weight: 500;
	line-height: 22px;
	text-align: center;
	text-decoration: none;
	transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

.jfb-training-pages .jfb-training-button:hover,
.jfb-training-pages .jfb-training-button:focus-visible,
.jfb-training-picker .jfb-training-button:hover,
.jfb-training-picker .jfb-training-button:focus-visible {
	padding: 13px 24px !important;
	text-decoration: none;
	transform: translateY(-1px);
}

.jfb-training-pages .jfb-training-button--primary,
.jfb-training-picker .jfb-training-button--primary {
	background: linear-gradient(155deg, var(--training-brand-dark), var(--training-brand) 58%, var(--training-brand-light));
	color: #fff;
}

.jfb-training-pages .jfb-training-button--primary:hover,
.jfb-training-pages .jfb-training-button--primary:focus-visible,
.jfb-training-picker .jfb-training-button--primary:hover,
.jfb-training-picker .jfb-training-button--primary:focus-visible {
	box-shadow: 0 10px 22px rgba(181, 31, 26, 0.2);
	color: #fff;
}

.jfb-training-pages .jfb-training-button--outline,
.jfb-training-picker .jfb-training-button--outline {
	border-color: var(--training-brand);
	background: #fff;
	color: var(--training-brand-dark);
}

.jfb-training-pages .jfb-training-button--outline:hover,
.jfb-training-pages .jfb-training-button--outline:focus-visible,
.jfb-training-picker .jfb-training-button--outline:hover,
.jfb-training-picker .jfb-training-button--outline:focus-visible {
	background: var(--training-pale);
	color: var(--training-brand-dark);
}

.jfb-training-pages .jfb-training-button:disabled,
.jfb-training-picker .jfb-training-button:disabled {
	cursor: not-allowed;
	box-shadow: none;
	opacity: 0.58;
	transform: none;
}

/* Breadcrumbs and archive hero */
.jfb-training-pages .jfb-training-breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	color: rgba(255, 255, 255, 0.64);
	font-size: 13px;
	line-height: 20px;
}

.jfb-training-pages .jfb-training-breadcrumbs a,
.jfb-training-pages .jfb-training-breadcrumbs a:hover,
.jfb-training-pages .jfb-training-breadcrumbs a:focus-visible {
	padding: 0 !important;
	color: inherit;
	text-decoration: none;
}

.jfb-training-pages .jfb-training-breadcrumbs a:hover,
.jfb-training-pages .jfb-training-breadcrumbs a:focus-visible { color: #fff; }

.jfb-training-pages .jfb-training-archive-hero {
	position: relative;
	display: flex;
	min-height: 336px;
	align-items: center;
	overflow: hidden;
	background: var(--training-ink);
}

.jfb-training-pages .jfb-training-archive-hero::after {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(28, 28, 26, 0.92), rgba(28, 28, 26, 0.7) 48%, rgba(28, 28, 26, 0.4));
	content: "";
}

.jfb-training-pages .jfb-training-archive-hero > img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 47%;
}

.jfb-training-pages .jfb-training-archive-hero .jfb-training-shell {
	position: relative;
	z-index: 2;
	padding-block: 52px 58px;
}

.jfb-training-pages .jfb-training-archive-hero h1 {
	max-width: 980px;
	margin-top: 20px;
	color: #fff;
	font-size: 52px;
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1.12;
}

.jfb-training-pages .jfb-training-archive-hero .jfb-training-shell > p {
	max-width: 690px;
	margin-top: 18px;
	color: rgba(255, 255, 255, 0.76);
	font-size: 16px;
	line-height: 1.65;
}

/* Archive filters */
.jfb-training-pages .jfb-training-archive-content {
	padding-block: 48px 64px;
	background: #fff;
}

.jfb-training-pages .jfb-training-filters {
	display: flex;
	gap: 16px;
	flex-direction: column;
}

.jfb-training-pages .jfb-training-search {
	position: relative;
	display: block;
	width: 100%;
	max-width: 853px;
}

.jfb-training-pages .jfb-training-search svg {
	position: absolute;
	top: 50%;
	left: 18px;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: rgba(28, 28, 26, 0.45);
	stroke-linecap: round;
	stroke-width: 1.7;
	pointer-events: none;
	transform: translateY(-50%);
}

.jfb-training-pages .jfb-training-search input {
	width: 100%;
	height: 52px;
	margin: 0;
	padding: 13px 18px 13px 49px;
	border: 1px solid var(--training-border);
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
	color: var(--training-ink);
	font-size: 14px;
}

.jfb-training-pages .jfb-training-search input::placeholder { color: rgba(28, 28, 26, 0.4); }

.jfb-training-pages .jfb-training-filter-row {
	display: grid;
	align-items: start;
	gap: 14px;
	grid-template-columns: 78px minmax(0, 1fr);
}

.jfb-training-pages .jfb-training-filter-row > strong {
	padding-top: 7px;
	color: rgba(28, 28, 26, 0.55);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.jfb-training-pages .jfb-training-filter-row > div,
.jfb-training-pages .jfb-training-session-filters {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}

.jfb-training-pages .jfb-training-filter-row button,
.jfb-training-pages .jfb-training-session-filters button {
	display: inline-flex;
	min-height: 34px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 7px 13px !important;
	border: 1px solid var(--training-border);
	border-radius: 999px;
	background: #fff;
	box-shadow: none;
	color: rgba(28, 28, 26, 0.68);
	cursor: pointer;
	font-size: 12px;
	font-weight: 400;
	line-height: 18px;
}

.jfb-training-pages .jfb-training-filter-row button:hover,
.jfb-training-pages .jfb-training-filter-row button:focus-visible,
.jfb-training-pages .jfb-training-session-filters button:hover,
.jfb-training-pages .jfb-training-session-filters button:focus-visible {
	padding: 7px 13px !important;
	border-color: rgba(181, 31, 26, 0.42);
	background: var(--training-pale);
	color: var(--training-brand-dark);
}

.jfb-training-pages .jfb-training-filter-row button.is-active,
.jfb-training-pages .jfb-training-filter-row button[aria-pressed="true"],
.jfb-training-pages .jfb-training-session-filters button.is-active,
.jfb-training-pages .jfb-training-session-filters button[aria-pressed="true"] {
	border-color: var(--training-brand-dark);
	background: var(--training-brand-dark);
	color: #fff;
}

.jfb-training-pages .jfb-training-count {
	margin-top: 42px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--training-border);
	color: rgba(28, 28, 26, 0.58);
	font-size: 13px;
}

.jfb-training-pages .jfb-training-count strong { color: var(--training-ink); font-weight: 600; }

.jfb-training-pages .jfb-training-no-results {
	margin-top: 30px;
	padding: 32px;
	border: 1px solid var(--training-border);
	border-radius: var(--training-radius);
	background: var(--training-warm);
	color: var(--training-muted);
	font-size: 14px;
	text-align: center;
}

/* Cards */
.jfb-training-pages .jfb-training-grid,
.jfb-training-picker .jfb-training-grid {
	display: grid;
	align-items: stretch;
	gap: 24px;
	margin-top: 32px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.jfb-training-pages .jfb-training-card,
.jfb-training-picker .jfb-training-card {
	display: flex;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--training-border);
	border-radius: var(--training-radius);
	background: #fff;
	flex-direction: column;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.jfb-training-pages .jfb-training-card:hover,
.jfb-training-pages .jfb-training-card:focus-within,
.jfb-training-picker .jfb-training-card:hover,
.jfb-training-picker .jfb-training-card:focus-within {
	border-color: rgba(181, 31, 26, 0.38);
	box-shadow: var(--training-shadow);
	transform: translateY(-3px);
}

.jfb-training-pages .jfb-training-card__image,
.jfb-training-picker .jfb-training-card__image {
	position: relative;
	display: block;
	height: 221px;
	overflow: hidden;
	padding: 0 !important;
	background: var(--training-warm);
}

.jfb-training-pages .jfb-training-card__image:hover,
.jfb-training-picker .jfb-training-card__image:hover { padding: 0 !important; }

.jfb-training-pages .jfb-training-card__image img,
.jfb-training-picker .jfb-training-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 300ms ease;
}

.jfb-training-pages .jfb-training-card:hover .jfb-training-card__image img,
.jfb-training-picker .jfb-training-card:hover .jfb-training-card__image img { transform: scale(1.025); }

.jfb-training-pages .jfb-training-card__image > span,
.jfb-training-picker .jfb-training-card__image > span {
	position: absolute;
	top: 14px;
	right: 14px;
	padding: 5px 11px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.94);
	color: var(--training-muted);
	font-size: 11px;
}

.jfb-training-pages .jfb-training-card__body,
.jfb-training-picker .jfb-training-card__body {
	display: flex;
	min-height: 184px;
	padding: 20px;
	flex: 1;
	flex-direction: column;
}

.jfb-training-pages .jfb-training-card__tags,
.jfb-training-picker .jfb-training-card__tags { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }

.jfb-training-pages .jfb-training-card__tags span,
.jfb-training-pages .jfb-training-card__tags small,
.jfb-training-picker .jfb-training-card__tags span,
.jfb-training-picker .jfb-training-card__tags small {
	display: inline-flex;
	min-height: 27px;
	align-items: center;
	padding: 4px 11px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 400;
}

.jfb-training-pages .jfb-training-card__tags span,
.jfb-training-picker .jfb-training-card__tags span {
	background: var(--training-pale);
	color: var(--training-brand-dark);
	letter-spacing: 0.025em;
	text-transform: uppercase;
}

.jfb-training-pages .jfb-training-card__tags small,
.jfb-training-picker .jfb-training-card__tags small { background: var(--training-warm); color: rgba(28, 28, 26, 0.52); }

.jfb-training-pages .jfb-training-card__tags .is-certification,
.jfb-training-picker .jfb-training-card__tags .is-certification { background: #edf7f1; color: var(--training-success); }

.jfb-training-pages .jfb-training-card h3,
.jfb-training-picker .jfb-training-card h3 {
	margin-top: 14px;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: -0.015em;
	line-height: 1.4;
}

.jfb-training-pages .jfb-training-card h3 a,
.jfb-training-pages .jfb-training-card h3 a:hover,
.jfb-training-pages .jfb-training-card h3 a:focus-visible,
.jfb-training-picker .jfb-training-card h3 a,
.jfb-training-picker .jfb-training-card h3 a:hover,
.jfb-training-picker .jfb-training-card h3 a:focus-visible {
	padding: 0 !important;
	color: var(--training-ink);
	text-decoration: none;
}

.jfb-training-pages .jfb-training-card__body > p,
.jfb-training-picker .jfb-training-card__body > p {
	display: -webkit-box;
	overflow: hidden;
	margin-top: 10px;
	color: var(--training-muted);
	font-size: 13px;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.jfb-training-pages .jfb-training-card__footer,
.jfb-training-picker .jfb-training-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 16px;
}

.jfb-training-pages .jfb-training-card__footer > span,
.jfb-training-picker .jfb-training-card__footer > span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--training-success);
	font-size: 12px;
}

.jfb-training-pages .jfb-training-card__footer > span.on-request,
.jfb-training-picker .jfb-training-card__footer > span.on-request { color: rgba(28, 28, 26, 0.5); }

.jfb-training-pages .jfb-training-card__footer i,
.jfb-training-picker .jfb-training-card__footer i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

.jfb-training-pages .jfb-training-card__footer > a,
.jfb-training-pages .jfb-training-card__footer > a:hover,
.jfb-training-picker .jfb-training-card__footer > a,
.jfb-training-picker .jfb-training-card__footer > a:hover {
	padding: 0 !important;
	color: var(--training-brand-dark);
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
}

/* Calls to action */
.jfb-training-pages .jfb-training-group-cta,
.jfb-training-pages .jfb-training-single-cta .jfb-training-shell {
	display: flex;
	min-height: 122px;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	padding: 32px;
	border: 1px solid rgba(230, 52, 44, 0.2);
	border-radius: var(--training-radius);
	background: var(--training-pale);
}

.jfb-training-pages .jfb-training-group-cta { margin-top: 72px; }
.jfb-training-pages .jfb-training-group-cta > div,
.jfb-training-pages .jfb-training-single-cta .jfb-training-shell > div { max-width: 720px; }

.jfb-training-pages .jfb-training-group-cta h2,
.jfb-training-pages .jfb-training-single-cta h2 { font-size: 20px; font-weight: 500; letter-spacing: -0.02em; line-height: 1.3; }

.jfb-training-pages .jfb-training-group-cta p,
.jfb-training-pages .jfb-training-single-cta p { margin-top: 12px; color: var(--training-muted); font-size: 15px; }

/* Single hero */
.jfb-training-pages .jfb-training-single-hero { padding-block: 64px; background: var(--training-warm); }
.jfb-training-pages .jfb-training-single-hero .jfb-training-breadcrumbs { color: rgba(28, 28, 26, 0.5); }
.jfb-training-pages .jfb-training-single-hero .jfb-training-breadcrumbs a:hover,
.jfb-training-pages .jfb-training-single-hero .jfb-training-breadcrumbs span:last-child { color: var(--training-ink); }

.jfb-training-pages .jfb-training-single-hero__grid {
	display: grid;
	align-items: center;
	gap: 48px;
	margin-top: 32px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.jfb-training-pages .jfb-training-single-hero__tags { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.jfb-training-pages .jfb-training-single-hero__tags span {
	display: inline-flex;
	min-height: 29px;
	align-items: center;
	padding: 5px 12px;
	border-radius: 999px;
	background: #fff;
	color: var(--training-muted);
	font-size: 11px;
}
.jfb-training-pages .jfb-training-single-hero__tags span:first-child { background: var(--training-pale); color: var(--training-brand-dark); text-transform: uppercase; }
.jfb-training-pages .jfb-training-single-hero h1 { max-width: 700px; margin-top: 20px; font-size: 44px; font-weight: 400; letter-spacing: -0.035em; line-height: 1.25; }
.jfb-training-pages .jfb-training-single-hero__content > p { max-width: 650px; margin-top: 22px; color: var(--training-muted); font-size: 17px; line-height: 1.7; }
.jfb-training-pages .jfb-training-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.jfb-training-pages .jfb-training-single-hero__visual { aspect-ratio: 4 / 3; min-height: 0; overflow: hidden; border-radius: var(--training-radius); background: #fff; }
.jfb-training-pages .jfb-training-single-hero__visual img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Options and facts */
.jfb-training-pages .jfb-training-options { padding-block: 40px; background: #fff; }
.jfb-training-pages .jfb-training-options h2 { font-size: 20px; font-weight: 400; letter-spacing: -0.015em; line-height: 1.55; }
.jfb-training-pages .jfb-training-content h2 { font-size: 30px; font-weight: 400; letter-spacing: -0.025em; line-height: 1.55; }
.jfb-training-pages .jfb-training-sessions h2 { font-size: 38px; font-weight: 400; letter-spacing: -0.025em; line-height: 1.55; }
.jfb-training-pages .jfb-training-practical h2 { font-size: 28px; font-weight: 400; letter-spacing: -0.025em; line-height: 1.55; }
.jfb-training-pages .jfb-training-options .jfb-training-shell > p { max-width: 780px; margin-top: 14px; color: var(--training-muted); font-size: 14px; }
.jfb-training-pages .jfb-training-option-grid { display: grid; max-width: 680px; gap: 16px; margin-top: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }

.jfb-training-pages .jfb-training-option {
	position: relative;
	display: flex;
	min-height: 116px;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
	white-space: normal;
	overflow-wrap: anywhere;
	align-items: flex-start;
	gap: 16px;
	margin: 0;
	padding: 20px !important;
	border: 1px solid var(--training-border);
	border-radius: var(--training-radius);
	background: #fff;
	box-shadow: none;
	color: var(--training-ink);
	cursor: pointer;
	text-align: left;
}

.jfb-training-pages .jfb-training-option:hover,
.jfb-training-pages .jfb-training-option:focus-visible { padding: 20px !important; border-color: rgba(181, 31, 26, 0.45); color: var(--training-ink); transform: translateY(-2px); }
.jfb-training-pages .jfb-training-option.is-active,
.jfb-training-pages .jfb-training-option[aria-checked="true"] { border-color: var(--training-brand); box-shadow: 0 0 0 2px rgba(230, 52, 44, 0.12); }
.jfb-training-pages .jfb-training-option > i { display: grid; width: 24px; height: 24px; flex: 0 0 24px; place-items: center; margin-top: 1px; border: 1px solid var(--training-border); border-radius: 50%; background: #fff; }
.jfb-training-pages .jfb-training-option.is-active > i,
.jfb-training-pages .jfb-training-option[aria-checked="true"] > i { border-color: var(--training-brand); background: var(--training-brand); }
.jfb-training-pages .jfb-training-option.is-active > i::after,
.jfb-training-pages .jfb-training-option[aria-checked="true"] > i::after { color: #fff; content: "\2713"; font-size: 13px; font-style: normal; }
.jfb-training-pages .jfb-training-option > span { display: flex; min-width: 0; flex: 1 1 0; flex-direction: column; white-space: normal; }
.jfb-training-pages .jfb-training-option strong { font-size: 16px; font-weight: 500; line-height: 1.4; }
.jfb-training-pages .jfb-training-option small { margin-top: 10px; color: var(--training-muted); font-size: 13px; font-weight: 400; line-height: 1.6; }

.jfb-training-pages .jfb-training-facts { padding-block: 40px; background: #fff; }
.jfb-training-pages .jfb-training-facts__grid { overflow: visible; border: 0; border-radius: 0; background: transparent; }
.jfb-training-pages .jfb-training-facts__set { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jfb-training-pages .jfb-training-facts__set > div { min-width: 0; padding: 20px; border: 0; border-radius: 12px; background: var(--training-warm); }
.jfb-training-pages .jfb-training-facts__set > div + div { border-left: 0; }
.jfb-training-pages .jfb-training-facts__set small,
.jfb-training-pages .jfb-training-facts__set strong { display: block; }
.jfb-training-pages .jfb-training-facts__set small { color: rgba(28, 28, 26, 0.48); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.jfb-training-pages .jfb-training-facts__set strong { margin-top: 6px; font-size: 16px; font-weight: 500; }
.jfb-training-pages .jfb-training-facts__note { margin-top: 14px; color: rgba(28, 28, 26, 0.48); font-size: 11px; }

/* Content */
.jfb-training-pages .jfb-training-content { padding-block: 64px; background: #fff; }
.jfb-training-pages .jfb-training-content__grid { display: grid; align-items: start; gap: 64px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jfb-training-pages .jfb-training-check-list { display: grid; margin-top: 30px; padding: 0; list-style: none; }
.jfb-training-pages .jfb-training-check-list li { display: flex; min-height: 42px; align-items: flex-start; gap: 14px; padding: 8px 0; border: 0; color: rgba(28, 28, 26, 0.76); font-size: 14px; }
.jfb-training-pages .jfb-training-check-list li:first-child { border-top: 0; }
.jfb-training-pages .jfb-training-check-list li span { color: var(--training-brand); font-weight: 700; }
.jfb-training-pages .jfb-training-audience { display: grid; gap: 14px; margin-top: 30px; }
.jfb-training-pages .jfb-training-audience article { padding: 20px; border: 0; border-radius: 12px; background: var(--training-warm); }
.jfb-training-pages .jfb-training-audience h3 { font-size: 17px; font-weight: 500; }
.jfb-training-pages .jfb-training-audience p { margin-top: 7px; color: var(--training-muted); font-size: 13px; line-height: 1.6; }

/* Sessions */
.jfb-training-pages .jfb-training-sessions { padding-block: 64px; background: var(--training-warm); scroll-margin-top: 24px; }
.jfb-training-pages .jfb-training-sessions header { max-width: 760px; }
.jfb-training-pages .jfb-training-sessions header > p { margin-top: 13px; color: var(--training-muted); font-size: 15px; }
.jfb-training-pages .jfb-training-session-filters { margin-top: 28px; }
.jfb-training-pages .jfb-training-session-list { display: grid; overflow: visible; gap: 16px; margin-top: 24px; border: 0; border-radius: 0; background: transparent; }
.jfb-training-pages .jfb-training-session { display: grid; min-height: 112px; align-items: center; border: 1px solid var(--training-border); border-radius: var(--training-radius); background: #fff; grid-template-columns: 1.3fr 0.62fr 0.82fr 0.9fr 1.05fr; }
.jfb-training-pages .jfb-training-session:last-child { border-bottom: 1px solid var(--training-border); }
.jfb-training-pages .jfb-training-session > div { min-width: 0; padding: 24px; }
.jfb-training-pages .jfb-training-session > div:last-child { justify-self: end; }
.jfb-training-pages .jfb-training-session small,
.jfb-training-pages .jfb-training-session strong,
.jfb-training-pages .jfb-training-session span { display: block; }
.jfb-training-pages .jfb-training-session small { margin-bottom: 3px; color: rgba(28, 28, 26, 0.44); font-size: 10px; font-weight: 600; letter-spacing: 0.045em; text-transform: uppercase; }
.jfb-training-pages .jfb-training-session strong { color: var(--training-ink); font-size: 13px; font-weight: 500; }
.jfb-training-pages .jfb-training-session span { margin-top: 2px; color: rgba(28, 28, 26, 0.5); font-size: 11px; }
.jfb-training-pages .jfb-training-session__pending { color: rgba(28, 28, 26, 0.55); }
.jfb-training-pages .jfb-training-session .jfb-training-button { min-height: 42px; padding: 8px 14px !important; font-size: 12px; white-space: nowrap; }
.jfb-training-pages .jfb-training-session .jfb-training-button:hover { padding: 8px 14px !important; }
.jfb-training-pages .jfb-training-sessions__notice { max-width: 880px; margin-top: 16px; color: rgba(28, 28, 26, 0.48); font-size: 11px; }
.jfb-training-pages .jfb-training-sessions__empty { margin-top: 28px; padding: 32px; border: 1px solid var(--training-border); border-radius: var(--training-radius); background: var(--training-warm); }
.jfb-training-pages .jfb-training-sessions__empty > strong { display: block; font-size: 18px; font-weight: 500; }
.jfb-training-pages .jfb-training-sessions__empty > p { margin: 7px 0 18px; color: var(--training-muted); font-size: 13px; }

/* Practical information and FAQ */
.jfb-training-pages .jfb-training-practical { padding-block: 64px; background: #fff; }
.jfb-training-pages .jfb-training-practical__grid { display: grid; align-items: start; gap: 64px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jfb-training-pages .jfb-training-practical ul { display: grid; gap: 12px; margin-top: 28px; padding: 0; list-style: none; }
.jfb-training-pages .jfb-training-practical li { position: relative; min-height: 72px; padding: 18px 20px 18px 50px; border: 1px solid var(--training-border); border-radius: 12px; background: #fff; color: var(--training-muted); font-size: 13px; }
.jfb-training-pages .jfb-training-practical li::before { position: absolute; top: 19px; left: 19px; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--training-pale); color: var(--training-brand-dark); content: "i"; font-family: Georgia, serif; font-weight: 700; }
.jfb-training-pages .jfb-training-faq { display: grid; overflow: hidden; gap: 0; margin-top: 28px; border: 1px solid var(--training-border); border-radius: 16px; }
.jfb-training-pages .jfb-training-faq details { overflow: hidden; border: 0; border-bottom: 1px solid var(--training-border); border-radius: 0; background: #fff; }
.jfb-training-pages .jfb-training-faq details:last-child { border-bottom: 0; }
.jfb-training-pages .jfb-training-faq summary { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 20px; cursor: pointer; font-size: 15px; font-weight: 500; list-style: none; }
.jfb-training-pages .jfb-training-faq summary::-webkit-details-marker { display: none; }
.jfb-training-pages .jfb-training-faq summary span {
	position: relative;
	display: block;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	color: transparent;
	font-size: 0;
	transform: rotate(0deg);
	transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
.jfb-training-pages .jfb-training-faq summary span::before,
.jfb-training-pages .jfb-training-faq summary span::after {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 14px;
	height: 2px;
	border-radius: 999px;
	background: var(--training-brand-dark);
	content: "";
	transform: translate(-50%, -50%);
	transform-origin: center;
	transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}
.jfb-training-pages .jfb-training-faq summary span::after { transform: translate(-50%, -50%) rotate(90deg) scaleX(1); }
.jfb-training-pages .jfb-training-faq details[open]:not(.is-closing) summary span { transform: rotate(180deg); }
.jfb-training-pages .jfb-training-faq details[open]:not(.is-closing) summary span::after {
	opacity: 0;
	transform: translate(-50%, -50%) rotate(90deg) scaleX(0);
}
.jfb-training-pages .jfb-training-faq details > div { padding: 0 52px 20px 20px; color: var(--training-muted); font-size: 13px; }

@media (prefers-reduced-motion: reduce) {
	.jfb-training-pages .jfb-training-faq summary span,
	.jfb-training-pages .jfb-training-faq summary span::before,
	.jfb-training-pages .jfb-training-faq summary span::after {
		transition: none;
	}
}
.jfb-training-pages .jfb-training-single-cta { padding-block: 56px; border-top: 1px solid rgba(230, 52, 44, 0.1); background: var(--training-pale); }
.jfb-training-pages .jfb-training-single-cta .jfb-training-shell { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }

/* Not found */
.jfb-training-pages > .jfb-training-empty { margin-block: 70px; padding: 44px; border: 1px solid var(--training-border); border-radius: var(--training-radius); background: var(--training-warm); text-align: center; }
.jfb-training-pages > .jfb-training-empty h1 { font-size: 38px; font-weight: 400; }
.jfb-training-pages > .jfb-training-empty p { margin: 12px 0 24px; color: var(--training-muted); }

/* Portal picker */
.jfb-training-picker .jfb-training-picker__heading { margin-bottom: 24px; }
.jfb-training-picker .jfb-training-picker__heading h2 { margin-top: 4px; font-size: 28px; font-weight: 500; letter-spacing: -0.02em; }
.jfb-training-picker .jfb-training-picker__heading > p:last-child { max-width: 660px; margin-top: 7px; color: var(--training-muted); font-size: 14px; }
.jfb-training-picker .jfb-training-grid--portal { margin-top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jfb-training-picker .jfb-training-card__image { height: 176px; }
.jfb-training-picker .jfb-training-card__body { min-height: 252px; padding: 20px; }
.jfb-training-picker .jfb-training-card h3 { font-size: 17px; }
.jfb-training-picker .jfb-training-card__body > p { -webkit-line-clamp: 3; }

@media (max-width: 1100px) {
	.jfb-training-pages .jfb-training-shell { width: min(100% - 40px, 960px); }
	.jfb-training-pages .jfb-training-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jfb-training-pages .jfb-training-single-hero__grid { gap: 42px; grid-template-columns: minmax(0, 1fr) minmax(330px, 0.85fr); }
	.jfb-training-pages .jfb-training-single-hero h1 { font-size: 43px; }
	.jfb-training-pages .jfb-training-session { grid-template-columns: 1.2fr 0.55fr 0.72fr 0.82fr 1.05fr; }
	.jfb-training-pages .jfb-training-session > div { padding-inline: 12px; }
}

@media (max-width: 900px) {
	.jfb-training-pages .jfb-training-filters { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-search { max-width: none; grid-row: auto; }
	.jfb-training-pages .jfb-training-single-hero__grid,
	.jfb-training-pages .jfb-training-content__grid,
	.jfb-training-pages .jfb-training-practical__grid { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-single-hero__visual,
	.jfb-training-pages .jfb-training-single-hero__visual img { height: 390px; min-height: 390px; }
	.jfb-training-pages .jfb-training-facts__set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jfb-training-pages .jfb-training-facts__set > div:nth-child(3) { border-left: 0; }
	.jfb-training-pages .jfb-training-facts__set > div:nth-child(n + 3) { border-top: 1px solid var(--training-border); }
	.jfb-training-pages .jfb-training-session-list { overflow: visible; border: 0; background: transparent; }
	.jfb-training-pages .jfb-training-session { gap: 14px; margin-bottom: 14px; padding: 22px; border: 1px solid var(--training-border); border-radius: 14px; background: #fff; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.jfb-training-pages .jfb-training-session > div { padding: 0; }
	.jfb-training-pages .jfb-training-session > div:last-child { align-self: end; justify-self: stretch; }
	.jfb-training-pages .jfb-training-session .jfb-training-button { width: 100%; }
}

@media (max-width: 767px) {
	.jfb-training-pages .jfb-training-shell { width: min(100% - 32px, 640px); }
	.jfb-training-pages .jfb-training-archive-hero { min-height: 350px; }
	.jfb-training-pages .jfb-training-archive-hero h1 { font-size: 34px; }
	.jfb-training-pages .jfb-training-archive-hero .jfb-training-shell > p { font-size: 14px; }
	.jfb-training-pages .jfb-training-archive-content { padding-block: 48px 64px; }
	.jfb-training-pages .jfb-training-filter-row { gap: 9px; grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-filter-row > strong { padding-top: 0; }
	.jfb-training-pages .jfb-training-count { margin-top: 32px; }
	.jfb-training-pages .jfb-training-grid,
	.jfb-training-picker .jfb-training-grid--portal { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-card__image,
	.jfb-training-picker .jfb-training-card__image { height: 215px; }
	.jfb-training-pages .jfb-training-card__body,
	.jfb-training-picker .jfb-training-card__body { min-height: 0; padding: 20px; }
	.jfb-training-pages .jfb-training-group-cta,
	.jfb-training-pages .jfb-training-single-cta .jfb-training-shell { min-height: 0; align-items: flex-start; padding: 30px 24px; flex-direction: column; }
	.jfb-training-pages .jfb-training-group-cta h2,
	.jfb-training-pages .jfb-training-single-cta h2 { font-size: 25px; }
	.jfb-training-pages .jfb-training-single-hero { padding-block: 34px 48px; }
	.jfb-training-pages .jfb-training-single-hero__grid { gap: 34px; margin-top: 26px; }
	.jfb-training-pages .jfb-training-single-hero h1 { font-size: 35px; }
	.jfb-training-pages .jfb-training-single-hero__content > p { font-size: 15px; }
	.jfb-training-pages .jfb-training-actions,
	.jfb-training-pages .jfb-training-actions .jfb-training-button { width: 100%; }
	.jfb-training-pages .jfb-training-single-hero__visual,
	.jfb-training-pages .jfb-training-single-hero__visual img { height: 300px; min-height: 300px; }
	.jfb-training-pages .jfb-training-options,
	.jfb-training-pages .jfb-training-content,
	.jfb-training-pages .jfb-training-sessions,
	.jfb-training-pages .jfb-training-practical { padding-block: 58px; }
	.jfb-training-pages .jfb-training-facts { padding-bottom: 58px; }
	.jfb-training-pages .jfb-training-options h2,
	.jfb-training-pages .jfb-training-content h2,
	.jfb-training-pages .jfb-training-sessions h2,
	.jfb-training-pages .jfb-training-practical h2 { font-size: 31px; }
	.jfb-training-pages .jfb-training-option-grid { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-option,
	.jfb-training-pages .jfb-training-option:hover { min-height: 0; padding: 22px !important; }
	.jfb-training-pages .jfb-training-facts__set { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-facts__set > div + div,
	.jfb-training-pages .jfb-training-facts__set > div:nth-child(3) { border-top: 1px solid var(--training-border); border-left: 0; }
	.jfb-training-pages .jfb-training-session { grid-template-columns: 1fr; }
	.jfb-training-pages .jfb-training-session > div:last-child { margin-top: 4px; }
	.jfb-training-pages .jfb-training-single-cta { padding-block: 48px; }
}

@media (max-width: 420px) {
	.jfb-training-pages .jfb-training-shell { width: min(100% - 24px, 390px); }
	.jfb-training-pages .jfb-training-card__image,
	.jfb-training-picker .jfb-training-card__image { height: 190px; }
	.jfb-training-pages .jfb-training-card__footer,
	.jfb-training-picker .jfb-training-card__footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
	.jfb-training-pages *, .jfb-training-pages *::before, .jfb-training-pages *::after,
	.jfb-training-picker *, .jfb-training-picker *::before, .jfb-training-picker *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
