/**
 * Fort Theme.
 *
 * Header, dropdown nav, footer, buttons, form fields and the blog/system
 * templates. Colours and sizes come from tokens.css. Breakpoints: 1200 / 960 / 640.
 */

/* Base
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: var(--fort-font-body);
	font-size: var(--fort-fs-body);
	font-weight: var(--fort-fw-regular);
	line-height: var(--fort-lh-body);
	color: var(--fort-navy);
	background-color: var(--fort-bg);
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
	font-family: var(--fort-font-display);
	font-weight: var(--fort-fw-regular);
	line-height: var(--fort-lh-display);
	text-transform: uppercase;
}

/* 1.05 is for Bebas. Open Sans and Oswald H3s use the font's own
   line height, so a wrapped title does not collide with the next line.
   Display titles set 1.05 themselves (the section-heading font shorthand). */
h3 {
	line-height: normal;
}

.fort-pathway__steps h3,
.fort-trainer-grid h3 {
	line-height: var(--fort-lh-display);
}

img,
video {
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
}

:focus-visible {
	outline: 3px solid rgb(112 187 237 / 85%);
	outline-offset: 3px;
}

/* Layout
   ========================================================================== */

.fort-container {
	width: 100%;
	max-width: var(--fort-container-max);
	margin-inline: auto;
	padding-inline: var(--fort-container-pad);
}

.site-main {
	display: block;
}

.fort-elementor-page .site-main,
.page-template-templates-template-full-width .site-main,
.post-template-templates-template-full-width .site-main {
	padding-block: 0;
}

/* Widgets own their section padding. Zero the Elementor container so it
   does not add a second inset around them. */
.fort-elementor-page .e-con {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--gap: 0px;
	--widgets-spacing: 0px;
}

.fort-elementor-page .elementor-widget {
	margin-block: 0;
}

/* Widget buttons carry their own colours. A later `a` rule must not repaint them. */
.fort-elementor-page a.fort-button.fort-button--red,
.fort-elementor-page a.fort-button.fort-button--navy,
.fort-elementor-page a.fort-button.fort-button--outline {
	color: var(--fort-white);
}

.fort-elementor-page a.fort-button.fort-button--white {
	color: var(--fort-red);
}

.fort-elementor-page a.fort-button.fort-button--outline-navy {
	color: var(--fort-navy);
}

/* Buttons
   ========================================================================== */

.fort-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px 30px;
	font-family: var(--fort-font-label);
	font-size: var(--fort-fs-button);
	font-weight: var(--fort-fw-semibold);
	line-height: 1;
	letter-spacing: var(--fort-tracking-nav);
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	border: 1.5px solid transparent;
	border-radius: var(--fort-radius-button);
	transition: opacity var(--fort-duration-base) var(--fort-ease), background-color var(--fort-duration-base) var(--fort-ease), color var(--fort-duration-base) var(--fort-ease), border-color var(--fort-duration-base) var(--fort-ease);
}

.fort-btn:hover {
	opacity: 0.85;
}

.fort-btn:focus-visible {
	opacity: 1;
}

.fort-header a.fort-btn.fort-btn--red,
.fort-header a.fort-btn.fort-btn--red:hover,
.fort-header a.fort-btn.fort-btn--red:focus-visible {
	color: var(--fort-white);
}

.fort-btn--red {
	color: var(--fort-white);
	background-color: var(--fort-red);
}

.fort-btn--navy {
	color: var(--fort-white);
	background-color: var(--fort-navy);
}

.fort-btn--outline {
	color: var(--fort-white);
	background-color: transparent;
	border-color: var(--fort-white);
}

.fort-btn--outline:hover {
	color: var(--fort-white);
	background-color: var(--fort-navy);
	border-color: var(--fort-navy);
	opacity: 1;
}

.fort-btn--outline-navy {
	color: var(--fort-navy);
	background-color: transparent;
	border-color: var(--fort-navy);
}

.fort-btn--outline-navy:hover {
	color: var(--fort-white);
	background-color: var(--fort-navy);
	opacity: 1;
}

.fort-btn--white {
	color: var(--fort-red);
	background-color: var(--fort-white);
}

.fort-btn--block {
	width: 100%;
}

/* Header
   ========================================================================== */

.fort-header {
	position: sticky;
	top: 0;
	z-index: var(--fort-z-header);
	background-color: var(--fort-navy);
}

.admin-bar .fort-header {
	top: 32px;
}

.fort-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	max-width: var(--fort-header-max);
	margin-inline: auto;
	padding: var(--fort-header-pad-block) var(--fort-header-pad-inline);
}

.fort-header__logo {
	display: block;
	flex: 0 0 auto;
}

.fort-header__logo img {
	display: block;
	width: 122px;
	height: 46px;
}

.fort-header__actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 28px;
}

.fort-header a.fort-header__phone {
	font-family: var(--fort-font-body);
	font-size: var(--fort-fs-nav);
	font-weight: var(--fort-fw-regular);
	line-height: 1;
	color: var(--fort-header-phone);
	letter-spacing: 0;
	text-decoration: none;
	text-transform: none;
}

.fort-header a.fort-header__phone:hover,
.fort-header a.fort-header__phone:focus-visible {
	color: var(--fort-white);
}

/* The shared button uses a 14px line box. The design header button uses
   the font's normal line height, which makes JOIN NOW 55px and the bar 95px. */
.fort-header a.fort-btn {
	line-height: normal;
}

.fort-header .fort-header__burger {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 26px;
	height: auto;
	padding: 8px 0;
	color: var(--fort-white);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	appearance: none;
	cursor: pointer;
}

.fort-header .fort-header__burger-bar {
	display: block;
	width: 26px;
	height: 2px;
	background-color: var(--fort-white);
}

.fort-header__drawer-tools {
	display: none;
}

/* Primary nav
   ========================================================================== */

.fort-nav__list,
.fort-nav .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fort-nav__list {
	display: flex;
	align-items: center;
	gap: 40px;
}

.fort-header .fort-nav__list > .menu-item > a,
.fort-header .fort-nav__list > .menu-item > a:hover,
.fort-header .fort-nav__list > .menu-item > a:focus,
.fort-header .fort-nav__list > .menu-item > a:focus-visible,
.fort-header .fort-nav .menu-item-has-children.is-open > a,
.fort-header .fort-nav .menu-item-has-children:hover > a,
.fort-header .fort-nav__list > .current-menu-item > a,
.fort-header .fort-nav__list > .current-menu-ancestor > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--fort-font-label);
	font-size: var(--fort-fs-nav);
	font-weight: var(--fort-fw-medium);
	line-height: 1;
	color: var(--fort-white);
	letter-spacing: var(--fort-tracking-nav);
	text-decoration: none;
	text-transform: uppercase;
}

.fort-nav .menu-item-has-children {
	position: relative;
}

.fort-nav .menu-item-has-children > a::after {
	content: "";
	width: 10px;
	height: 6px;
	background: url("../icons/chevron.svg") center / 10px 6px no-repeat;
	transition: transform var(--fort-duration-base) var(--fort-ease);
}

.fort-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: var(--fort-z-dropdown);
	display: flex;
	flex-direction: column;
	min-width: 240px;
	padding: 8px 20px;
	margin-top: 12px;
	background-color: var(--fort-white);
	border-radius: var(--fort-radius-card);
	box-shadow: var(--fort-shadow-dropdown);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--fort-duration-fast) var(--fort-ease), transform var(--fort-duration-fast) var(--fort-ease), visibility var(--fort-duration-fast);
}

/* Hover bridge across the 12px gap under the parent label. */
.fort-nav .menu-item-has-children::before {
	content: "";
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	height: 12px;
}

.fort-nav .sub-menu a {
	display: block;
	padding: 12px 0;
	font-family: var(--fort-font-body);
	font-size: 15px;
	font-weight: var(--fort-fw-semibold);
	color: var(--fort-navy);
	letter-spacing: 0;
	text-decoration: none;
	text-transform: none;
	white-space: nowrap;
	border-bottom: 1px solid var(--fort-rule-light);
}

.fort-nav .sub-menu li:last-child > a {
	border-bottom: 0;
}

.fort-nav .sub-menu a:hover,
.fort-nav .sub-menu .current-menu-item > a {
	color: var(--fort-red);
}

@media (min-width: 961px) {
	.fort-nav .menu-item-has-children:hover > .sub-menu,
	.fort-nav .menu-item-has-children:focus-within > .sub-menu,
	.fort-nav .menu-item-has-children.is-open > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.fort-nav .menu-item-has-children:hover > a::after,
	.fort-nav .menu-item-has-children:focus-within > a::after,
	.fort-nav .menu-item-has-children.is-open > a::after {
		transform: rotate(180deg);
	}
}

@media (max-width: 1280px) {
	.fort-nav__list {
		gap: 18px;
	}

	.fort-header__inner {
		gap: 16px;
	}

	.fort-header__actions {
		gap: 16px;
	}
}

@media (max-width: 960px) {
	.fort-header__actions {
		display: none;
	}

	.fort-header .fort-header__burger {
		display: flex;
	}

	.fort-nav {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		display: none;
		max-height: calc(100dvh - var(--fort-header-height));
		padding: 24px;
		overflow-y: auto;
		background-color: var(--fort-navy);
	}

	.fort-nav.is-open {
		display: block;
	}

	.fort-nav__list {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}

	.fort-nav__list > .menu-item,
	.fort-nav .menu-item-has-children {
		width: 100%;
	}

	.fort-nav .menu-item-has-children::before {
		content: none;
	}

	.fort-nav .sub-menu {
		position: static;
		min-width: 0;
		max-height: 0;
		padding: 0;
		margin-top: 0;
		overflow: hidden;
		background: transparent;
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}

	.fort-nav .menu-item-has-children.is-open > .sub-menu {
		max-height: 480px;
		padding-top: 4px;
		margin-top: 12px;
	}

	.fort-nav .menu-item-has-children.is-open > a::after {
		transform: rotate(180deg);
	}

	.fort-nav .sub-menu a {
		color: var(--fort-white);
		border-bottom-color: rgb(255 255 255 / 15%);
	}

	.fort-nav .sub-menu a:hover,
	.fort-nav .sub-menu .current-menu-item > a {
		color: var(--fort-blue);
	}

	.fort-header__drawer-tools {
		display: flex;
		flex-direction: column;
		gap: 16px;
		margin-top: 24px;
	}
}

/* Footer
   ========================================================================== */

.fort-footer {
	display: flex;
	flex-direction: column;
	gap: 48px;
	/* Content column = header column (.fort-header__inner): 1312px centred, header padding below 1440px. */
	padding: 72px max(var(--fort-header-pad-inline), calc((100% - var(--fort-header-max)) / 2 + var(--fort-header-pad-inline))) 40px;
	color: var(--fort-white);
	background-color: var(--fort-navy-dark);
}

.fort-footer a {
	text-decoration: none;
}

.fort-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 32px;
}

.fort-footer__brand {
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	gap: 16px;
	width: 320px;
	max-width: 100%;
}

.fort-footer__brand img {
	display: block;
	width: 112px;
	height: 42px;
}

.fort-footer__brand address {
	font-style: normal;
	font-size: var(--fort-fs-small);
	line-height: 1.55;
	color: var(--fort-text-footer);
}

.fort-footer__brand a:hover {
	color: var(--fort-white);
}

.fort-footer h2.fort-footer__heading {
	margin: 0 0 14px;
	font-family: var(--fort-font-label);
	font-size: var(--fort-fs-meta);
	font-weight: var(--fort-fw-semibold);
	line-height: 1.2;
	color: var(--fort-white);
	letter-spacing: var(--fort-tracking-label);
	text-transform: uppercase;
}

.fort-footer__list,
.fort-footer__utility-list,
.fort-footer__social {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fort-footer__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
	/* Body line-height is 1.6, which makes each row 26px and the pitch 36.
	   Normal keeps the 14px link's line box at 22px, so the pitch is 32. */
	line-height: normal;
}

.fort-footer .fort-footer__list a,
.fort-footer .fort-footer__utility-list a,
.fort-footer .fort-footer__brand a {
	font-size: var(--fort-fs-small);
	line-height: normal;
	color: var(--fort-text-footer);
}

.fort-footer__list a:hover,
.fort-footer__utility-list a:hover {
	color: var(--fort-white);
}

.fort-footer__utility-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}

.fort-footer__divider {
	width: 100%;
	height: 1px;
	margin: 0;
	background-color: var(--fort-divider);
	border: 0;
}

.fort-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.fort-footer__copyright {
	margin: 0;
	font-size: var(--fort-fs-meta);
	color: var(--fort-text-footer);
}

.fort-footer__end {
	display: flex;
	align-items: center;
	gap: 32px;
}

.fort-footer__social {
	display: flex;
	gap: 4px;
}

.fort-footer .fort-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var(--fort-white);
}

.fort-footer__social .fort-icon {
	display: block;
	width: 20px;
	height: 20px;
}

.fort-footer .fort-footer__social a:hover,
.fort-footer .fort-footer__social a:focus-visible {
	color: var(--fort-blue);
}

@media (max-width: 640px) {
	.fort-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.fort-footer__social {
		flex-wrap: wrap;
	}
}

/* Page band and long-form
   ========================================================================== */

.fort-band {
	background-color: var(--fort-navy);
}

.fort-band__inner {
	max-width: var(--fort-container-max);
	margin-inline: auto;
	padding: 56px var(--fort-gutter);
}

.fort-band__title {
	margin: 0;
	font-family: var(--fort-font-display);
	font-size: var(--fort-fs-display-xl);
	font-weight: var(--fort-fw-regular);
	line-height: var(--fort-lh-display);
	color: var(--fort-white);
	text-transform: uppercase;
}

.fort-band__title span {
	color: var(--fort-blue);
}

/* Long-form templates only. The prose widget reuses `.fort-prose` and
   must keep its Display headings and full-width columns. */
.fort-entry.fort-prose,
.site-main > .fort-prose,
.fort-archive .fort-prose,
.fort-error-404 {
	max-width: calc(var(--fort-prose-max) + (var(--fort-gutter) * 2));
	margin-inline: auto;
	padding: 72px var(--fort-gutter);
}

.fort-entry.fort-prose h2,
.fort-entry.fort-prose h3,
.site-main > .fort-prose h2,
.site-main > .fort-prose h3,
.fort-archive .fort-prose h2,
.fort-archive .fort-prose h3,
.fort-error-404 h2,
.fort-error-404 h3 {
	font-family: var(--fort-font-label);
	font-weight: var(--fort-fw-semibold);
	line-height: 1.3;
	text-transform: none;
}

.fort-entry.fort-prose h2,
.site-main > .fort-prose h2,
.fort-archive .fort-prose h2,
.fort-error-404 h2 {
	font-size: 22px;
	letter-spacing: 0.4px;
}

.fort-entry.fort-prose h3,
.site-main > .fort-prose h3,
.fort-archive .fort-prose h3,
.fort-error-404 h3 {
	font-size: 18px;
	letter-spacing: 0.3px;
}

.fort-entry.fort-prose a:not(.fort-btn),
.site-main > .fort-prose a:not(.fort-btn),
.fort-archive .fort-prose a:not(.fort-btn),
.fort-error-404 a:not(.fort-btn) {
	color: var(--fort-link-blue);
}

.fort-entry__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 12px;
	font-size: var(--fort-fs-small);
	color: var(--fort-text-gray);
}

.fort-entry__meta a {
	color: inherit;
}

.fort-entry__thumbnail {
	display: block;
	margin: 0 0 24px;
}

.fort-entry__thumbnail img,
.fort-card__media img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: var(--fort-radius-card);
}

.fort-page-links,
.fort-comments {
	margin-top: 48px;
}

/* Archive cards
   ========================================================================== */

.fort-archive {
	padding: 72px var(--fort-gutter) 96px;
}

.fort-archive__description {
	max-width: 760px;
	margin: 0 auto 40px;
	color: var(--fort-text-gray);
}

.fort-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	max-width: 1280px;
	margin-inline: auto;
}

.fort-card {
	background-color: var(--fort-white);
	border-radius: var(--fort-radius-card);
	transition: transform var(--fort-duration-base) var(--fort-ease), box-shadow var(--fort-duration-base) var(--fort-ease);
}

.fort-card:hover {
	box-shadow: var(--fort-shadow-card-hover);
	transform: translateY(-4px);
}

.fort-card__link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	height: 100%;
	padding: 16px;
	color: inherit;
	text-decoration: none;
}

.fort-card__title {
	margin: 0;
	font-family: var(--fort-font-body);
	font-size: 20px;
	font-weight: var(--fort-fw-bold);
	line-height: 1.3;
	text-transform: none;
}

.fort-card__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: var(--fort-lh-body);
	color: var(--fort-text-gray);
}

.fort-card .fort-entry__meta {
	margin-top: 0;
}

@media (max-width: 960px) {
	.fort-posts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fort-band__inner,
	.fort-prose,
	.fort-archive {
		padding-block: 56px;
	}
}

@media (max-width: 640px) {
	.fort-posts {
		grid-template-columns: 1fr;
	}

	.fort-band__title {
		font-size: 40px;
	}
}

/* Pagination and post nav
   ========================================================================== */

.fort-pagination .nav-links,
.post-navigation .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 1280px;
	margin: 48px auto 0;
}

.post-navigation .nav-links {
	justify-content: space-between;
	max-width: var(--fort-prose-max);
}

.fort-pagination .page-numbers,
.post-navigation a {
	padding: 8px 14px;
	font-family: var(--fort-font-label);
	font-size: 13px;
	font-weight: var(--fort-fw-semibold);
	letter-spacing: 1px;
	text-decoration: none;
	text-transform: uppercase;
	border: 1.5px solid var(--fort-navy);
	border-radius: var(--fort-radius-button);
}

.fort-pagination .page-numbers.current {
	color: var(--fort-white);
	background-color: var(--fort-navy);
}

.fort-pagination .page-numbers.dots {
	border-color: transparent;
}

.fort-post-nav__label {
	display: block;
	font-size: 12px;
	letter-spacing: 1.2px;
}

.fort-post-nav__title {
	font-family: var(--fort-font-body);
	font-weight: var(--fort-fw-semibold);
	letter-spacing: 0;
	text-transform: none;
}

/* Search, 404, empty
   ========================================================================== */

.fort-search-form {
	display: flex;
	gap: 8px;
	max-width: 520px;
}

.fort-search-form__field,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.fluentform .ff-el-form-control {
	width: 100%;
	padding: 14px 16px;
	font-family: var(--fort-font-body);
	font-size: var(--fort-fs-body);
	color: var(--fort-navy);
	background-color: var(--fort-white);
	border: 1px solid var(--fort-border);
	border-radius: var(--fort-radius-card);
}

.fort-search-form__field::placeholder,
.fluentform .ff-el-form-control::placeholder,
.comment-form input::placeholder,
.comment-form textarea::placeholder {
	color: var(--fort-placeholder);
}

.fort-search-form__field:focus,
.comment-form input:focus,
.comment-form textarea:focus,
.fluentform .ff-el-form-control:focus {
	border-color: var(--fort-navy);
	outline: none;
	box-shadow: var(--fort-focus-ring);
}

.fort-search-form__submit,
.comment-form input[type="submit"] {
	padding: 16px 30px;
	font-family: var(--fort-font-label);
	font-size: var(--fort-fs-button);
	font-weight: var(--fort-fw-semibold);
	letter-spacing: var(--fort-tracking-nav);
	color: var(--fort-white);
	text-transform: uppercase;
	cursor: pointer;
	background-color: var(--fort-red);
	border: 1.5px solid transparent;
	border-radius: var(--fort-radius-button);
}

.fort-search-form__submit:hover,
.comment-form input[type="submit"]:hover {
	opacity: 0.85;
}

.fluentform .ff-el-input--label label {
	font-family: var(--fort-font-body);
	font-size: 17px;
	font-weight: var(--fort-fw-semibold);
	color: var(--fort-navy);
}

.fluentform .ff-el-is-required label::after,
.fluentform .ff-el-required {
	color: var(--fort-required);
}

.fluentform .ff-el-is-error .ff-el-form-control,
.fluentform .error .ff-el-form-control {
	border-color: var(--fort-required);
}

.fluentform .error,
.fluentform .text-danger {
	font-size: var(--fort-fs-small);
	color: var(--fort-required);
}

.fort-error-404,
.fort-no-results {
	text-align: left;
}

.fort-error-404 .fort-search-form,
.fort-no-results .fort-search-form {
	margin-top: 24px;
}

.fort-error-404__home {
	margin-top: 24px;
}

/* Accessibility
   ========================================================================== */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	border: 0;
	word-wrap: normal !important;
}

.skip-link:focus {
	top: 8px;
	left: 8px;
	z-index: calc(var(--fort-z-overlay) + 1);
	width: auto;
	height: auto;
	padding: 12px 16px;
	margin: 0;
	clip: auto;
	clip-path: none;
	color: var(--fort-navy);
	background-color: var(--fort-white);
	box-shadow: var(--fort-shadow-dropdown);
}

@media (max-width: 782px) {
	.admin-bar .fort-header {
		top: 46px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fort-nav .sub-menu,
	.fort-nav .menu-item-has-children > a::after,
	.fort-card,
	.fort-btn {
		transition: none;
	}
}

/* Width cap must beat Elementor's .elementor.elementor .e-con > .elementor-widget{max-width:100%}. */
.elementor.elementor .e-con.fort-native-faq>.elementor-widget-n-accordion{max-width:1000px}
/* ---------- Native Elementor FAQ (nested accordion, widget class .elementor-widget-n-accordion) in the Fort style ----------
   Section container classes: fort-native-faq, fort-native-faq--left|centre, fort-native-faq-bg--<token>.
   Styling goes through Elementor's own --n-accordion-* variables so the editor's controls still work on top. */
.elementor .elementor-element.e-con.fort-native-faq{--padding-top:110px;--padding-bottom:110px;--padding-left:var(--fort-section-inline,64px);--padding-right:var(--fort-section-inline,64px);--row-gap:48px;--column-gap:48px}
.fort-native-faq{}
@media(max-width:960px){.elementor .elementor-element.e-con.fort-native-faq{--padding-top:72px;--padding-bottom:72px;--row-gap:32px}}
.fort-native-faq-bg--white{background:#fff}
.fort-native-faq-bg--bg{background:var(--fort-bg,#fafaf8)}
.fort-native-faq-bg--bg-alt{background:var(--fort-bg-alt,#efede5)}
.fort-native-faq .fort-heading-section{padding:0!important;background:transparent!important}
.fort-native-faq .fort-section-heading{margin:0}
.fort-native-faq .elementor-widget-n-accordion{
 width:100%;max-width:1000px;
 --n-accordion-title-font-size:18px;--n-accordion-title-justify-content:space-between;--n-accordion-title-flex-grow:1;--n-accordion-title-icon-order:2;
 --n-accordion-border-width:0px;--n-accordion-item-title-space-between:0px;--n-accordion-item-title-distance-from-content:0px;
 --n-accordion-padding:24px 0;--n-accordion-title-normal-color:var(--fort-navy,#111f43);--n-accordion-title-hover-color:var(--fort-red,#a63232);--n-accordion-title-active-color:var(--fort-navy,#111f43);
 --n-accordion-icon-size:16px;--n-accordion-icon-normal-color:var(--fort-red,#a63232);--n-accordion-icon-hover-color:var(--fort-red,#a63232);--n-accordion-icon-active-color:var(--fort-red,#a63232)}
.fort-native-faq--centre .elementor-widget-n-accordion{margin-inline:auto}
.fort-native-faq .e-n-accordion-item{border-bottom:1px solid var(--fort-rule-faq,#d8d4c9)}
.fort-native-faq .e-n-accordion-item:first-child{border-top:1px solid var(--fort-rule-faq,#d8d4c9)}
.fort-native-faq .e-n-accordion-item-title{padding:24px 0;justify-content:space-between;gap:24px}
.fort-native-faq .e-n-accordion-item-title-header{flex:1}
.fort-native-faq .e-n-accordion-item-title-text{margin:0;font-family:var(--fort-font-body,'Open Sans',sans-serif);font-size:var(--n-accordion-title-font-size);font-weight:700!important;line-height:1.4;text-transform:none;letter-spacing:0}
.fort-native-faq .e-n-accordion-item>.e-con{--padding-top:0px;--padding-bottom:24px;--padding-left:0px;--padding-right:48px;border:0;background:transparent}
.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor{font:400 15px/1.6 var(--fort-font-body,'Open Sans',sans-serif);color:var(--fort-text-gray,#596170)}
.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor p{margin:0 0 10px}
.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor>:last-child,.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor p:last-child{margin-bottom:0}
.fort-native-faq .e-n-accordion-item-title:focus-visible{outline:3px solid var(--fort-color-blue,#70bbed);outline-offset:4px}
@media(max-width:640px){.fort-native-faq .elementor-widget-n-accordion{--n-accordion-title-font-size:16px}.fort-native-faq .e-n-accordion-item>.e-con{--padding-right:0px}}
/* Coach profiles (children of The Coaches, 383): faded Fort star behind the hero's empty side. */
.parent-pageid-383 [data-elementor-type="wp-page"]>.e-con:first-child{background-image:url(../icons/star-watermark.svg);background-repeat:no-repeat;background-size:min(46vw,680px) auto;background-position:right -4% center}
@media(max-width:767px){.parent-pageid-383 [data-elementor-type="wp-page"]>.e-con:first-child{background-size:95vw auto;background-position:right -42vw top -10px}}

/* Star bullets (2026-10-10): every list uses the coach-page star (Font Awesome solid star). Dot/glyph bullets keep their own colour; plain lists get red. "body" outranks the widgets' own bullet rules, which load later. */
:root{--fort-star-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20d%3D%22M259.3%2017.8L194%20150.2%2047.9%20171.5c-26.2%203.8-36.7%2036.1-17.7%2054.6l105.7%20103-25%20145.5c-4.5%2026.3%2023.2%2046%2046.4%2033.7L288%20439.6l130.7%2068.7c23.2%2012.2%2050.9-7.4%2046.4-33.7l-25-145.5%20105.7-103c19-18.5%208.5-50.8-17.7-54.6L382%20150.2%20316.7%2017.8c-11.7-23.6-45.6-23.9-57.4%200z%22/%3E%3C/svg%3E")}
body .fort-split__dots li::before,body .fort-split__activities li::before,body .fort-plan-cards__group li::before{width:11px;height:11px;border-radius:0;top:calc(.75em - 5.5px);-webkit-mask:var(--fort-star-mask) center/contain no-repeat;mask:var(--fort-star-mask) center/contain no-repeat}
body .fort-benefits li::before,body .fort-cta-band__benefits li::before{content:"";display:inline-block;flex:none;width:11px;height:11px;margin-right:10px;vertical-align:.05em;background:currentColor;-webkit-mask:var(--fort-star-mask) center/contain no-repeat;mask:var(--fort-star-mask) center/contain no-repeat}
body .fort-academy-cards ul,body .fort-schedule-panels ul,body .fort-program-cards__card .fort-program-cards__list,body .fort-prose ul,body .elementor-widget-text-editor ul{list-style:none;padding-left:0}
body .fort-academy-cards ul>li,body .fort-schedule-panels ul>li,body .fort-program-cards__list>li,body .fort-prose ul>li,body .elementor-widget-text-editor ul>li{position:relative;padding-left:21px}
body .fort-academy-cards ul>li::before,body .fort-schedule-panels ul>li::before,body .fort-program-cards__list>li::before,body .fort-prose ul>li::before,body .elementor-widget-text-editor ul>li::before{content:"";position:absolute;left:0;top:calc(.75em - 5.5px);width:11px;height:11px;background:var(--fort-color-red,#a63232);-webkit-mask:var(--fort-star-mask) center/contain no-repeat;mask:var(--fort-star-mask) center/contain no-repeat}
body .fort-benefits li{padding-left:21px;text-indent:-21px}

/* Card hover system (2026-10-10), same feel as Home's studio grid. Widgets add .fort-cards-hover unless their "Hover effect" switch is off.
   Photo cards: lift + shadow, photo zooms inside its frame, red line under the photo (+ navy shade, except coach cut-outs), red title.
   Text cards: lift + shadow, red line along the bottom edge, red title. "body" outranks the widgets' own rules, which load after theme.css. */
body .fort-cards-hover .fort-academy-cards__grid>article,body .fort-cards-hover .fort-feature-cards__card,body .fort-cards-hover .fort-coach-cards__grid>article,body .fort-cards-hover .fort-pathway__steps li,body .fort-cards-hover .fort-schedule-panels__grid>article{transition:transform .3s ease,box-shadow .3s ease,background-size .35s ease}
body .fort-cards-hover .fort-academy-cards__grid>article:hover,body .fort-cards-hover .fort-feature-cards__card:hover,body .fort-cards-hover .fort-coach-cards__grid>article:hover,body .fort-cards-hover .fort-pathway__steps li:hover,body .fort-cards-hover .fort-schedule-panels__grid>article:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(17,32,68,.14)}
body .fort-cards-hover .fort-academy-cards__media::after,body .fort-cards-hover .fort-feature-cards__media::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(17,32,68,.5),rgba(17,32,68,0) 55%);opacity:0;transition:opacity .3s ease;pointer-events:none}
body .fort-cards-hover .fort-academy-cards__media::before,body .fort-cards-hover .fort-feature-cards__media::before,body .fort-cards-hover .fort-coach-cards__media::before{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;z-index:2;background:var(--fort-color-red,#a63232);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
body .fort-cards-hover .fort-academy-cards__media img,body .fort-cards-hover .fort-feature-cards__media img,body .fort-cards-hover .fort-coach-cards__media img{transition:transform .5s ease}
body .fort-cards-hover .fort-academy-cards__grid>article:hover .fort-academy-cards__media img,body .fort-cards-hover .fort-feature-cards__card:hover .fort-feature-cards__media img,body .fort-cards-hover .fort-coach-cards__grid>article:hover .fort-coach-cards__media img{transform:scale(1.04)}
body .fort-cards-hover .fort-academy-cards__grid>article:hover .fort-academy-cards__media::after,body .fort-cards-hover .fort-feature-cards__card:hover .fort-feature-cards__media::after{opacity:1}
body .fort-cards-hover .fort-academy-cards__grid>article:hover .fort-academy-cards__media::before,body .fort-cards-hover .fort-feature-cards__card:hover .fort-feature-cards__media::before,body .fort-cards-hover .fort-coach-cards__grid>article:hover .fort-coach-cards__media::before{transform:scaleX(1)}
body .fort-cards-hover .fort-pathway__steps li,body .fort-cards-hover .fort-schedule-panels__grid>article{background-image:linear-gradient(var(--fort-color-red,#a63232),var(--fort-color-red,#a63232));background-repeat:no-repeat;background-position:left bottom;background-size:0 4px}
body .fort-cards-hover .fort-pathway__steps li:hover,body .fort-cards-hover .fort-schedule-panels__grid>article:hover{background-size:100% 4px}
body .fort-cards-hover .fort-academy-cards__grid>article h3,body .fort-cards-hover .fort-feature-cards__card h3,body .fort-cards-hover .fort-coach-cards__grid>article h3,body .fort-cards-hover .fort-pathway__steps li h3,body .fort-cards-hover .fort-schedule-panels__grid>article h3,body .fort-cards-hover .fort-coach-cards__grid>article h3 a{transition:color .25s}
body .fort-cards-hover .fort-academy-cards__grid>article:hover h3,body .fort-cards-hover .fort-feature-cards__card:hover h3,body .fort-cards-hover .fort-coach-cards__grid>article:hover h3,body .fort-cards-hover .fort-pathway__steps li:hover h3,body .fort-cards-hover .fort-schedule-panels__grid>article:hover h3,body .fort-cards-hover .fort-coach-cards__grid>article:hover h3 a{color:var(--fort-color-red,#a63232)}
/* Fixed red "featured" outlines dropped: all cards look equal at rest. */
body .fort-academy-cards .fort-academy-cards__featured,body .fort-coach-cards .fort-coach-cards__featured{border-color:var(--fort-color-border,#d8dbe0)!important}
/* Academy cards: buttons line up along the bottom of each row. Flex stops margins collapsing, so the card's spacing is set explicitly to match the old rhythm. */
body .fort-academy-cards__grid>article{display:flex;flex-direction:column}
body .fort-academy-cards__grid>article>:empty{display:none}
body .fort-academy-cards__grid>article>:not(.fort-academy-cards__media){margin-top:0;margin-bottom:0}
body .fort-academy-cards__grid>article>:not(.fort-academy-cards__media)+:not(.fort-academy-cards__media){margin-top:16px}
body .fort-academy-cards__grid>article>h3,body .fort-academy-cards__grid>article>h3+*{margin-top:32px}
body .fort-academy-cards__grid>article>.fort-academy-cards__tags+h3{margin-top:32px}
body .fort-academy-cards__grid>article>.fort-button{margin-top:auto;align-self:flex-start}
body .fort-academy-cards__grid>article>:has(+.fort-button){margin-bottom:16px}
/* FAQ answers (2026-10-10): links look like links; deep links (#id inside an answer) land below the sticky header with the question in view. */
.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor a{color:var(--fort-color-red,#a63232);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor a:hover,.fort-native-faq .e-n-accordion-item .elementor-widget-text-editor a:focus-visible{color:var(--fort-navy,#111f43)}
.fort-native-faq .e-n-accordion-item .elementor-element[id]{scroll-margin-top:180px}
/* Landing-page forms (2026-10-10), opt-in via container CSS classes:
   fort-form-card  = form sits on a white card with a full-width submit button
   fort-form-chips = Fluent checkbox/radio options become tappable pills */
.fort-form-card .fluentform{max-width:760px;margin:0 auto;padding:40px 44px;background:#fff;border-radius:16px;box-shadow:0 18px 40px rgba(17,32,68,.10)}
.fort-form-card .fluentform .ff-btn-submit{width:100%;padding:16px 24px;font-size:15px;letter-spacing:1.5px}
@media(max-width:640px){.fort-form-card .fluentform{padding:28px 20px}}
.fort-form-chips .ff-el-group .ff-el-input--content:has(.ff-el-form-check){display:flex;flex-wrap:wrap;gap:10px}
.fort-form-chips .fluentform .ff-el-form-check{margin:0!important}
.fort-form-chips .ff-el-form-check-label{display:flex;align-items:center;gap:8px;margin:0;padding:10px 16px;border:1.5px solid var(--fort-color-border,#d8dbe0);border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:var(--fort-navy,#111f43);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.fort-form-chips .ff-el-form-check-label:hover{border-color:var(--fort-navy,#111f43)}
.fort-form-chips .ff-el-form-check-input{accent-color:var(--fort-color-red,#a63232);margin:0}
.fort-form-chips .ff-el-form-check-label:has(.ff-el-form-check-input:checked){background:var(--fort-navy,#111f43);border-color:var(--fort-navy,#111f43);color:#fff}
.fort-form-chips .ff-el-form-check-label:has(.ff-el-form-check-input:focus-visible){outline:3px solid var(--fort-color-blue,#70bbed);outline-offset:2px}
/* In-page jump links (2026-10-10): anchored widgets stop just below the sticky header instead of under it. */
.elementor-widget[id],.e-con[id]{scroll-margin-top:100px}

/* FORTITUDE brand word. Fort widgets wrap "Fort·i’tude" in headings automatically (Widget_Base::brand_text);
   the stencil serif sits inside Bebas/uppercase headings, so undo their casing and spacing and size it to the caps. */
.fort-fortitude {
	font-family: "Stardos Stencil", Georgia, serif;
	font-weight: 700;
	text-transform: none;
	letter-spacing: -0.01em;
	font-size: 0.86em;
	white-space: nowrap;
}
