/*
Theme Name: Fransbergen Trading & Shipping
Template: agency-theme
Author: WP SEO AI Web Agency
Description: Child theme for Fransbergen Trading & Shipping — inland shipping, freighting and chartering from Maasbracht. Fixed layouts backed by ACF Free fields; the fleet lives in the fransbergen-content plugin.
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: fransbergen
*/

/*
 * Brand tokens.
 *
 * Palette taken from the source site's own stylesheet: #03632e is the green it
 * uses for links and buttons, #1d1d1d its body text, #f0523d its one warm
 * accent. Montserrat substitutes for Adobe Typekit's Brandon Grotesque in
 * navigation and headings. EB Garamond is the source's own body face and is
 * self-hosted unchanged.
 */
:root {
	--wpsa-color-accent: #03632e;
	--wpsa-color-accent-hover: #023b1c;
	--wpsa-color-accent-contrast: #ffffff;
	--wpsa-color-accent-alt: #f0523d;

	--wpsa-color-text: #1d1d1d;
	--wpsa-color-text-muted: #3e3e3e;
	/* The source's page ground is a pale mint, not white (.Index-page). */
	--wpsa-color-bg: #fafffa;
	--wpsa-color-surface: #f6f6f6;
	--wpsa-color-border: #ebebeb;

	--wpsa-color-inverse-bg: #1d1d1d;
	--wpsa-color-inverse-text: #ffffff;
	--wpsa-color-inverse-muted: #c8c8c8;

	--wpsa-font-heading: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	--wpsa-font-body: var(--fb-font-serif);

	/* Source uses a serif for pull quotes and the fleet spec sheets. */
	--fb-font-serif: "EB Garamond", Georgia, "Times New Roman", serif;
	--wpsa-gutter: 1rem;

	--fb-spec-label-width: 13.5rem;
}

/*
 * The source is a centred design: its stylesheet carries 145 `text-align:
 * center` rules and the home document 17 inline ones, against none for left.
 * Centring is therefore the page default here, and the few genuinely
 * left-aligned regions opt out rather than opting in.
 */
body {
	background-color: var(--wpsa-color-bg);
	font-size: 1.125rem;
	line-height: 1.6;
}

.wpsa-module,
.fb-hero__inner {
	text-align: center;
}

.fb-prose,
.fb-lede {
	margin-inline: auto;
}

/* Long-form prose and spec tables stay left-aligned: centred body copy over
   many lines is hard to read, and the source left-aligns them too. */
.fb-entry__content,
.fb-specs,
.fb-footer,
.fb-vessel-card__body,
.fb-post-card {
	text-align: start;
}

/*
 * Buttons, from the source's own `.sqs-block-button-element`:
 * uppercase, 11px, weight 700, 0.3em tracking, 13px/26px padding.
 */
.wpsa-button,
.fb-button {
	display: inline-block;
	background-color: var(--wpsa-color-accent);
	color: var(--wpsa-color-accent-contrast);
	font-family: var(--wpsa-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 13px 26px;
	border: 0;
	border-radius: 0;
	transition: background-color 160ms ease;
}

.wpsa-button:hover,
.fb-button:hover {
	background-color: var(--wpsa-color-accent-hover);
	color: var(--wpsa-color-accent-contrast);
}

.wpsa-button--text {
	background: none;
	color: var(--wpsa-color-accent);
	padding-inline: 0;
}

.wpsa-button--text:hover {
	background: none;
	text-decoration: underline;
}

/* ---------------------------------------------------------------- shell -- */

.fb-lede {
	font-family: var(--fb-font-serif);
	font-size: clamp(1.125rem, 0.95rem + 0.8vw, 1.5rem);
	line-height: var(--wpsa-leading-snug, 1.35);
	color: var(--wpsa-color-text-muted);
}

.fb-section-heading {
	font-family: var(--wpsa-font-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
}

/* ----------------------------------------------------------- page hero -- */

.fb-hero {
	position: relative;
	display: grid;
	align-items: end;
	min-height: clamp(20rem, 55vh, 34rem);
	color: var(--wpsa-color-inverse-text);
	background-color: var(--wpsa-color-inverse-bg);
	overflow: hidden;
}

.fb-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.fb-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fb-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg, rgba(29, 29, 29, 0.15) 0%, rgba(29, 29, 29, 0.72) 100%);
}

.fb-hero__inner {
	position: relative;
	z-index: 2;
	padding-block: var(--wpsa-space-2xl, 4rem);
}

.fb-hero__eyebrow {
	font-family: var(--wpsa-font-heading);
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--wpsa-color-inverse-muted);
	margin: 0 0 var(--wpsa-space-2xs, 0.5rem);
}

.fb-hero__heading {
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem);
	line-height: var(--wpsa-leading-tight, 1.1);
	margin: 0;
}

.fb-hero__intro {
	max-width: 46ch;
	margin-inline: auto;
	margin-block-start: var(--wpsa-space-sm, 1rem);
	color: var(--wpsa-color-inverse-muted);
}

/* Pages without a hero image keep the same rhythm on a flat green band. */
.fb-hero--plain {
	background-color: var(--wpsa-color-accent);
	min-height: 0;
}

.fb-hero--plain::after {
	display: none;
}

/* --------------------------------------------------------- prose blocks -- */

.fb-prose {
	max-width: 68ch;
}

.fb-prose > * + * {
	margin-block-start: var(--wpsa-space-sm, 1rem);
}

.fb-prose h2 {
	font-family: var(--wpsa-font-heading);
	font-size: clamp(1.375rem, 1.1rem + 1.1vw, 1.875rem);
	margin-block-start: var(--wpsa-space-lg, 2rem);
}

.fb-prose a {
	color: var(--wpsa-color-accent);
	text-underline-offset: 0.15em;
}

.fb-prose a:hover {
	color: var(--wpsa-color-accent-hover);
}

/* ------------------------------------------------------- media + splits -- */

.fb-split {
	display: grid;
	gap: var(--wpsa-space-lg, 2rem);
	align-items: center;
}

@media (min-width: 48rem) {
	.fb-split {
		grid-template-columns: 1fr 1fr;
	}

	.fb-split--media-first > .fb-split__media {
		order: -1;
	}
}

.fb-split__media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: var(--wpsa-radius-md, 0.375rem);
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* ------------------------------------------------------------- gallery -- */

.fb-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: var(--wpsa-space-sm, 1rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.fb-gallery__item img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--wpsa-radius-sm, 0.25rem);
	background-color: var(--wpsa-color-surface);
}

/* ---------------------------------------------------------- fleet cards -- */

.fb-fleet-group + .fb-fleet-group {
	margin-block-start: var(--wpsa-space-2xl, 4rem);
}

.fb-fleet-group__heading {
	font-family: var(--wpsa-font-heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 1.125rem;
	padding-block-end: var(--wpsa-space-2xs, 0.5rem);
	border-block-end: 2px solid var(--wpsa-color-accent);
	margin-block-end: var(--wpsa-space-lg, 2rem);
}

.fb-fleet-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	gap: var(--wpsa-space-lg, 2rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.fb-vessel-card {
	display: flex;
	flex-direction: column;
	background-color: var(--wpsa-color-bg);
	border: 1px solid var(--wpsa-color-border);
	border-radius: var(--wpsa-radius-md, 0.375rem);
	overflow: hidden;
	transition: box-shadow 160ms ease, transform 160ms ease;
}

.fb-vessel-card:hover,
.fb-vessel-card:focus-within {
	box-shadow: var(--wpsa-shadow-md, 0 6px 20px rgba(0, 0, 0, 0.09));
	transform: translateY(-2px);
}

.fb-vessel-card__media img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	background-color: var(--wpsa-color-surface);
}

.fb-vessel-card__body {
	padding: var(--wpsa-space-sm, 1rem);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 auto;
}

.fb-vessel-card__title {
	font-family: var(--wpsa-font-heading);
	font-size: 1.0625rem;
	font-weight: 600;
	margin: 0;
}

.fb-vessel-card__title a {
	color: inherit;
	text-decoration: none;
}

.fb-vessel-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.fb-vessel-card {
	position: relative;
}

.fb-vessel-card__title a:focus-visible {
	outline: 2px solid var(--wpsa-color-accent);
	outline-offset: 2px;
}

.fb-vessel-card__type {
	font-size: 0.875rem;
	color: var(--wpsa-color-text-muted);
	margin: 0;
}

.fb-vessel-card__dims {
	font-size: 0.8125rem;
	color: var(--wpsa-color-text-muted);
	margin: 0;
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------- spec tables -- */

.fb-specs {
	margin: 0;
	display: grid;
	gap: 0;
	font-variant-numeric: tabular-nums;
}

.fb-specs__row {
	display: grid;
	grid-template-columns: minmax(0, var(--fb-spec-label-width)) 1fr;
	gap: var(--wpsa-space-sm, 1rem);
	padding-block: 0.55rem;
	border-block-end: 1px solid var(--wpsa-color-border);
}

.fb-specs__row:last-child {
	border-block-end: 0;
}

.fb-specs__label {
	font-weight: 600;
	color: var(--wpsa-color-text-muted);
	margin: 0;
}

.fb-specs__value {
	margin: 0;
}

@media (max-width: 32rem) {
	.fb-specs__row {
		grid-template-columns: 1fr;
		gap: 0.1rem;
	}
}

/* -------------------------------------------------------- posts + blog -- */

.fb-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
	gap: var(--wpsa-space-lg, 2rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.fb-post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.fb-post-card__media img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: var(--wpsa-radius-md, 0.375rem);
	background-color: var(--wpsa-color-surface);
}

.fb-post-card__title {
	font-family: var(--wpsa-font-heading);
	font-size: 1.125rem;
	margin: 0;
}

.fb-post-card__title a {
	color: inherit;
	text-decoration: none;
}

.fb-post-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.fb-post-card__meta,
.fb-post-card__excerpt {
	margin: 0;
	font-size: 0.9375rem;
	color: var(--wpsa-color-text-muted);
}

.fb-entry__meta {
	font-size: 0.9375rem;
	color: var(--wpsa-color-text-muted);
	margin-block-end: var(--wpsa-space-md, 1.5rem);
}

.fb-entry__content > * + * {
	margin-block-start: var(--wpsa-space-sm, 1rem);
}

.fb-entry__content h2,
.fb-entry__content h3 {
	font-family: var(--wpsa-font-heading);
	margin-block-start: var(--wpsa-space-lg, 2rem);
}

.fb-entry__content blockquote {
	font-family: var(--fb-font-serif);
	font-size: 1.25rem;
	border-inline-start: 3px solid var(--wpsa-color-accent);
	padding-inline-start: var(--wpsa-space-sm, 1rem);
	margin-inline: 0;
}

.fb-entry__content img,
.fb-entry__content iframe {
	max-width: 100%;
	height: auto;
}

.fb-entry__content table {
	width: 100%;
	border-collapse: collapse;
}

.fb-entry__content :is(th, td) {
	border: 1px solid var(--wpsa-color-border);
	padding: 0.5rem 0.65rem;
	text-align: start;
}

.fb-pagination {
	margin-block-start: var(--wpsa-space-2xl, 4rem);
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
	justify-content: center;
}

.fb-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding-inline: 0.6rem;
	border: 1px solid var(--wpsa-color-border);
	border-radius: var(--wpsa-radius-sm, 0.25rem);
	text-decoration: none;
	color: var(--wpsa-color-text);
}

.fb-pagination .page-numbers.current {
	background-color: var(--wpsa-color-accent);
	border-color: var(--wpsa-color-accent);
	color: var(--wpsa-color-accent-contrast);
}

.fb-empty {
	padding-block: var(--wpsa-space-2xl, 4rem);
	text-align: center;
	color: var(--wpsa-color-text-muted);
}

/* --------------------------------------------------------------- forms -- */

.fb-contact-grid {
	display: grid;
	gap: var(--wpsa-space-xl, 3rem);
}

@media (min-width: 52rem) {
	.fb-contact-grid {
		grid-template-columns: 1fr 1.15fr;
		align-items: start;
	}
}

.fb-contact-details address {
	font-style: normal;
	line-height: var(--wpsa-leading-normal, 1.6);
}

.fb-contact-details a {
	color: inherit;
	text-decoration: none;
}

.fb-map {
	width: 100%;
	aspect-ratio: 575 / 408;
	border: 0;
	border-radius: 0;
}

.fb-contact-details .agency-kit-embed-facade {
	min-height: 0 !important;
	aspect-ratio: 575 / 408;
	background: #e5e3df;
	border-radius: 0;
}

.fb-page-content--contact .agency-kit-embed-load {
	max-width: calc(100% - 32px);
}

.fb-contact-details .fb-page-heading {
	margin-bottom: .67em;
}


/* ---------------------------------------------------- motion + a11y -- */

@media (prefers-reduced-motion: reduce) {
	.fb-vessel-card {
		transition: none;
	}

	.fb-vessel-card:hover,
	.fb-vessel-card:focus-within {
		transform: none;
	}
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wpsa-color-accent);
	outline-offset: 2px;
}

/* -------------------------------------------------------------- header -- */

.wpsa-site-header {
	position: relative;
	z-index: 100;
	background: #ffffff;
}

.fb-header {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 0;
	height: 197px;
	min-height: 197px;
	padding-block: 0;
}

.fb-header__brand {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	margin-inline-end: auto;
	color: var(--wpsa-color-text);
	text-decoration: none;
	line-height: 0;
}

.fb-header__name {
	font-family: var(--wpsa-font-heading);
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.fb-header__brand .custom-logo {
	display: block;
	width: 275px !important;
	max-width: 275px;
	max-height: none;
	height: auto !important;
}

.fb-header__toggle {
	display: none;
}

.fb-nav {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-inline-start: auto;
	font-family: var(--wpsa-font-heading);
}


.fb-nav-languages {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fb-nav-languages a,
.fb-nav-languages img {
	display: block;
}

.fb-nav-languages a {
	opacity: 0.55;
	line-height: 0;
}

.fb-nav-languages a:hover,
.fb-nav-languages a:focus-visible,
.fb-nav-languages a[aria-current="page"] {
	opacity: 1;
}

.fb-nav-languages img {
	width: 24px;
	height: 19px;
	object-fit: cover;
}

.fb-nav__list {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 1.7rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fb-nav--has-languages .fb-nav__list {
	gap: 1rem;
}

.fb-nav__list .menu-item {
	position: relative;
}

.fb-nav__list > .menu-item > a {
	display: inline-flex;
	align-items: center;
	min-height: 43px;
	color: var(--wpsa-color-accent);
	font-size: 0.96875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.fb-nav__list > .menu-item > a:hover,
.fb-nav__list > .current-menu-item > a,
.fb-nav__list > .current-menu-ancestor > a {
	color: var(--wpsa-color-accent);
	text-decoration: none;
}

.fb-nav__list .menu-item-has-children > a::after {
	display: none;
}

.fb-nav__list .fb-folder-title > a {
	cursor: default;
	pointer-events: none;
}

.fb-nav__back-item {
	display: none;
}

.fb-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: 50%;
	z-index: 30;
	display: none;
	min-width: 14rem;
	margin: 0;
	padding: 0.5rem 0;
	transform: translateX(-50%);
	border: 1px solid var(--wpsa-color-border);
	background: #ffffff;
	box-shadow: 0 10px 26px rgb(0 0 0 / 10%);
	list-style: none;
}

.fb-nav__list .menu-item-has-children:hover > .sub-menu,
.fb-nav__list .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}

.fb-nav__list .sub-menu a {
	display: block;
	padding: 0.55rem 1.25rem;
	color: var(--wpsa-color-accent);
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.fb-nav__list .sub-menu a:hover,
.fb-nav__list .sub-menu .current-menu-item > a {
	background: #f2f7f3;
	text-decoration: none;
}

.fb-nav__list .fb-nav-cta > a {
	min-height: 43px;
	padding-inline: 17px;
	border: 1px solid var(--wpsa-color-accent);
	border-radius: 0;
	font-size: 0.9375rem;
	font-weight: 400;
	letter-spacing: 0.14em;
}

.fb-nav__list > .fb-nav-cta {
	margin-inline-start: -7px;
}
.fb-nav__list .fb-nav-cta > a:hover {
	background: var(--wpsa-color-accent);
	color: #ffffff;
}

@media (max-width: 74.9375rem) {
	:root {
		--wpsa-gutter: 1.25rem;
	}

	.wpsa-site-header {
		position: fixed;
		inset: 0 0 auto;
		height: 110px;
	}

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

	.wpsa-site-main {
		padding-block-start: 110px;
	}

	.fb-header {
		position: relative;
		width: 100%;
		max-width: none;
		height: 110px;
		min-height: 110px;
		padding: 8px 12px;
	}

	.fb-header__brand {
		align-self: stretch;
		padding: 8px;
	}

	.fb-header__brand .custom-logo {
		width: 110px !important;
		max-width: 110px;
	}

	.fb-header__toggle {
		display: none;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 34px;
		margin-inline-start: auto;
		padding: 7px 5px;
		border: 0;
		background: transparent;
		cursor: pointer;
	}

	.fb-has-js .fb-header__toggle {
		display: inline-flex;
	}

	.fb-header__toggle-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.fb-header__toggle-icon {
		display: grid;
		width: 24px;
		gap: 6px;
	}

	.fb-header__toggle-icon span {
		display: block;
		width: 24px;
		height: 2px;
		background: #1d1d1d;
		transform-origin: center;
		transition: transform 160ms ease, opacity 160ms ease;
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span:first-child {
		transform: translateY(9px) rotate(45deg);
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span:nth-child(2) {
		opacity: 0;
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span:last-child {
		transform: translateY(-9px) rotate(-45deg);
	}

	.fb-header__toggle[aria-expanded="true"] {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 202;
		width: 60px;
		height: 60px;
		padding: 22px;
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon {
		position: relative;
		display: block;
		width: 16px;
		height: 16px;
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span {
		position: absolute;
		top: 7px;
		left: 0;
		width: 16px;
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span:first-child {
		transform: rotate(45deg);
	}

	.fb-header__toggle[aria-expanded="true"] .fb-header__toggle-icon span:last-child {
		transform: rotate(-45deg);
	}

	.fb-nav {
		position: fixed;
		inset: 0;
		z-index: 201;
		width: 100vw;
		height: 100vh;
		max-height: none;
		margin: 0;
		padding: 36px 96px 36px 36px;
		overflow: auto;
		background: #ffffff;
		display: block;
		box-shadow: none;
	}

	.fb-has-js .fb-nav {
		display: none;
	}

	.fb-has-js .fb-nav.is-open {
		display: block;
	}


	.fb-nav__list {
		align-items: stretch;
		flex-direction: column;
		width: 258px;
		gap: 0;
	}

	.fb-nav-languages {
		justify-content: flex-start;
		width: 258px;
		margin-block-start: 24px;
		gap: 12px;
	}

	.fb-nav-languages img {
		width: 36px;
		height: 28px;
	}

	.fb-nav__list > .menu-item > a {
		display: block;
		width: 258px;
		height: 45.3125px;
		min-height: 45.3125px;
		color: #292929;
		font-size: 1.125rem;
		font-weight: 700;
		letter-spacing: 2.1px;
		line-height: 1.9;
		text-align: left;
	}

	.fb-nav__list > .current-menu-item > a,
	.fb-nav__list > .current-menu-parent > a,
	.fb-nav__list > .current-menu-ancestor > a {
		color: #292929;
	}

	.fb-nav__list .fb-folder-title > a {
		cursor: pointer;
		pointer-events: auto;
	}

	.fb-nav__list .fb-folder-title > a {
		letter-spacing: 1.8px;
	}

	.fb-nav__list .menu-item-has-children > a::after {
		content: "»";
		display: inline-block;
		width: auto;
		height: auto;
		margin-inline-start: 0.55rem;
		border: 0;
		color: #969696;
		font-family: Arial, Helvetica, sans-serif;
		font-size: 1.125rem;
		font-weight: 400;
		letter-spacing: 0;
		position: relative;
		top: -2px;
	}

	.fb-nav__list .sub-menu {
		position: static;
		display: none;
		width: 258px;
		min-width: 0;
		margin: 0;
		padding: 0;
		transform: none;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.fb-nav__list .menu-item-has-children:hover > .sub-menu,
	.fb-nav__list .menu-item-has-children:focus-within > .sub-menu {
		display: none;
	}

	.fb-nav.has-open-folder .fb-nav__list > .menu-item {
		display: none;
	}

	.fb-nav.has-open-folder .fb-nav__list > .is-mobile-folder-open {
		display: block;
	}

	.fb-nav.has-open-folder .fb-nav__list > .is-mobile-folder-open > a {
		display: none;
	}

	.fb-nav.has-open-folder .fb-nav__list > .is-mobile-folder-open > .sub-menu {
		display: block;
	}

	.fb-nav__list .sub-menu a {
		display: block;
		width: 258px;
		padding: 0 0 11.1125px;
		color: #292929;
		font-size: 1.125rem;
		font-weight: 700;
		letter-spacing: 1.9px;
		line-height: 1.9;
		white-space: normal;
	}

	.fb-nav__list .sub-menu a:hover,
	.fb-nav__list .sub-menu .current-menu-item > a {
		background: transparent;
		text-decoration: none;
	}

	.fb-nav__back-item {
		display: block;
	}

	.fb-nav__back {
		display: block;
		width: 258px;
		margin: 0;
		padding: 0 0 19.409px;
		border: 0;
		background: transparent;
		color: #222222;
		font-family: var(--wpsa-font-heading);
		font-size: 0.75rem;
		font-weight: 400;
		letter-spacing: 1.68px;
		line-height: 1.6;
		text-align: left;
		text-transform: uppercase;
		cursor: pointer;
	}

	.fb-nav__list > .fb-nav-cta > a {
		display: inline-flex;
		width: auto;
		min-height: 44px;
		height: 44px;
		margin-block-start: 0;
		padding-inline: 18px;
		border: 2px solid var(--wpsa-color-accent);
		color: var(--wpsa-color-accent);
		font-family: Arial, Helvetica, sans-serif;
		font-size: 1rem;
		font-weight: 400;
		letter-spacing: 0;
		line-height: 1;
		text-transform: none;
	}


	.fb-nav__list > .fb-nav-cta {
		margin-inline-start: 0;
	}

	body.fb-nav-open {
		overflow: hidden;
	}
}

@media (max-width: 48.875rem) {
	.admin-bar .wpsa-site-header {
		top: 46px;
	}
}

/* -------------------------------------------------------------- footer -- */

.wpsa-site-footer {
	background: #fcfcfc;
}

.fb-footer {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding-block: 99px 102px;
	font-size: 1.125rem;
	line-height: 1.6;
	text-align: center;
}

.fb-footer__social {
	display: flex;
	justify-content: center;
	gap: 51px;
	margin-block-end: 34px;
}

.fb-footer__social img {
	display: block;
	width: 50px;
	height: 50px;
	object-fit: contain;
}

.fb-footer__company,
.fb-footer__address p {
	font-weight: 400;
	margin: 0 0 18px;
}

.fb-footer__address p:last-child {
	margin-bottom: 0;
}

.fb-footer__col--docs {
	margin-block-start: 75px;
}

.fb-footer__docs {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 2fr 1fr;
	gap: 18px 0;
}

.fb-footer__doc:nth-child(1) { grid-area: 1 / 1; }
.fb-footer__doc:nth-child(2) { grid-area: 2 / 1; }
.fb-footer__doc:nth-child(3) { grid-area: 1 / 3; }
.fb-footer__doc:nth-child(4) { grid-area: 2 / 3; }
.fb-footer__doc:nth-child(5) { grid-area: 1 / 2; }

.fb-footer a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.fb-footer__copyright {
	margin-block-start: 56px;
	color: var(--wpsa-color-text-muted);
	font-style: italic;
}

@media (max-width: 47.999rem) {
	.fb-footer {
		padding-block: 67px;
	}

	.fb-footer__docs {
		display: flex;
		flex-direction: column;
	}

	.fb-footer__col--docs,
	.fb-footer__copyright {
		margin-block-start: 51px;
	}
}

/* ---------------------------------------------------- source page layout -- */

a.fb-source-button,
.fb-page-content--contact .fb-contact-details .agency-kit-embed-load {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 41px;
	padding: 0 21.25px;
	border: 1px solid var(--wpsa-color-accent);
	border-radius: 0;
	background: var(--wpsa-color-accent);
	color: #ffffff;
	font-family: var(--wpsa-font-heading);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.3em;
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 160ms ease, color 160ms ease;
}

a.fb-source-button:hover,
.fb-page-content--contact .fb-contact-details .agency-kit-embed-load:hover {
	border-color: var(--wpsa-color-accent-hover);
	background: var(--wpsa-color-accent-hover);
	color: #ffffff;
	text-decoration: none;
}

a.fb-source-button--light {
	border-color: #ffffff;
	background: transparent;
	color: #ffffff;
}

a.fb-source-button--light:hover {
	border-color: #ffffff;
	background: #ffffff;
	color: var(--wpsa-color-accent);
}

.fb-home-section-heading,
.fb-page-heading {
	margin: 0;
	color: var(--wpsa-color-accent);
	font-family: var(--wpsa-font-heading);
	font-size: 2.25rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.45;
	text-transform: uppercase;
}

.fb-home-cta {
	margin: 0;
}

/* --------------------------------------------------------- home opener -- */

.fb-home-hero {
	position: relative;
	height: max(352px, calc(55vh - 197px));
	overflow: hidden;
	background: #1d1d1d;
	color: #ffffff;
	text-align: center;
}

.fb-home-hero__media,
.fb-home-hero__shade {
	position: absolute;
	inset: 0;
}

.fb-home-hero__media {
	background-position: 50% 68%;
	background-size: cover;
}

.fb-home-hero__shade {
	background: rgb(255 255 255 / 12%);
}

.fb-home-hero__content {
	position: relative;
	z-index: 1;
	display: grid;
	align-content: center;
	height: 100%;
	padding-block: 0 17px;
}

.fb-home-hero__eyebrow,
.fb-home-hero__intro {
	font-family: var(--fb-font-serif);
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.6;
}

.fb-home-hero__eyebrow {
	margin: 0;
}

.fb-home-hero__heading {
	margin: 24px 0 0;
	font-family: var(--wpsa-font-heading);
	font-size: 2.25rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.45;
	text-transform: uppercase;
}

.fb-home-hero__intro {
	margin-block-start: 24px;
}

.fb-home-hero__intro p {
	margin: 0;
}

.fb-home-languages {
	margin-block-start: 34px;
}

.fb-home-languages ul {
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fb-home-languages a,
.fb-home-languages img {
	display: block;
}

.fb-home-languages a {
	line-height: 0;
}

.fb-home-languages img {
	width: 56px;
	height: 43px;
	object-fit: cover;
}

.fb-home-languages a:focus-visible {
	position: relative;
	z-index: 1;
}

.fb-home-hero__next {
	position: absolute;
	bottom: 12px;
	left: 50%;
	display: block;
	width: 22px;
	height: 22px;
	transform: translateX(-50%) rotate(45deg);
	border-right: 2px solid #ffffff;
	border-bottom: 2px solid #ffffff;
}

/* ------------------------------------------------------- home services -- */

.wpsa-module.fb-home-services {
	padding-block: 50px 67px;
	min-height: 840px;
	background: #fafffa;
}

.fb-home-services__intro {
	max-width: 61.3125rem;
	margin-inline: auto;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.125rem;
	letter-spacing: 0.45px;
	line-height: 1.6;
	text-align: center;
	min-height: 115px;
}

.fb-home-services__intro > * + * {
	margin-block-start: 1rem;
}

.fb-home-services__cta {
	margin-block-start: 34px;
}

.fb-home-services__rule {
	margin-block-start: 42px;
	border-top: 1px solid rgb(3 99 46 / 25%);
}

.fb-home-services__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px;
	margin: 44px 0 0;
	padding: 0;
	list-style: none;
}

.fb-home-service {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: center;
}

.fb-home-service__title {
	margin: 0;
	color: var(--wpsa-color-accent);
	font-family: var(--wpsa-font-heading);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
	text-transform: uppercase;
}

.fb-home-service__media {
	width: 100%;
	margin-block-start: 34px;
	overflow: hidden;
	border-radius: 10px;
}

.fb-home-service__image {
	display: block;
	width: 100%;
	aspect-ratio: 2.31 / 1;
	object-fit: cover;
}

.fb-home-service:nth-child(1) .fb-home-service__image {
	aspect-ratio: 2.319 / 1;
}

.fb-home-service:nth-child(2) .fb-home-service__image {
	aspect-ratio: 2.3006 / 1;
}

.fb-home-service:nth-child(3) .fb-home-service__image {
	aspect-ratio: 2.2873 / 1;
}

.fb-home-service__text {
	width: 100%;
	margin-block-start: 34px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.125rem;
	letter-spacing: 0.6px;
	line-height: 1.6;
	text-align: center;
	min-height: 115px;
}

.fb-home-service__text p {
	margin: 0;
}

.fb-home-service__link {
	margin-block-start: 34px;
}

/* ---------------------------------------------------------- home about -- */

.wpsa-module.fb-home-about {
	position: relative;
	min-height: 877px;
	padding-block: 50px 64px;
	overflow: hidden;
	background-color: var(--wpsa-color-accent);
	background-position: center;
	background-size: cover;
	color: #ffffff;
	text-align: start;
}

.fb-home-about__shade {
	position: absolute;
	inset: 0;
	background: rgb(255 255 255 / 12%);
}

.fb-home-about__content {
	position: relative;
	z-index: 1;
}

.fb-home-about .fb-home-section-heading {
	color: #ffffff;
}

.fb-home-about__intro {
	margin-block-start: 24px;
	font-family: var(--fb-font-serif);
	font-size: 1.125rem;
	line-height: 1.6;
}

.fb-home-about__intro > * + * {
	margin-block-start: 18px;
}

.fb-home-about__layout {
	position: relative;
	margin-block-start: 34px;
	text-align: start;
}

.fb-home-about__list-heading {
	margin: 0 0 18px;
	font-family: var(--wpsa-font-heading);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.6;
	text-transform: uppercase;
}

.fb-home-about__copy,
.fb-home-facts__text {
	font-family: var(--fb-font-serif);
	font-size: 1.125rem;
	line-height: 1.6;
}

.fb-home-about__copy ul,
.fb-home-facts__text ul {
	margin: 0;
	padding-inline-start: 40px;
}

.fb-home-about__copy li,
.fb-home-facts__text li {
	padding-inline-start: 0;
}

.fb-home-about__copy li:not(:last-child),
.fb-home-facts__text li:not(:last-child) {
	margin-block-end: 9px;
}

.fb-home-about__copy > * + *,
.fb-home-facts__text > * + * {
	margin-block-start: 18px;
}

.fb-home-about__media {
	position: relative;
	z-index: 1;
	float: right;
	width: 40%;
	margin-inline-start: 34px;
	border-radius: 10px;
	overflow: hidden;
}

.fb-home-about__image {
	display: block;
	width: 100%;
	aspect-ratio: 1.4404 / 1;
	object-fit: cover;
}

.fb-home-about .fb-home-cta,
.fb-home-facts .fb-home-cta {
	margin-block-start: 34px;
}

.fb-home-about .fb-source-button--light {
	min-height: 61px;
	padding-inline: 31.25px;
}

/* ---------------------------------------------------------- home facts -- */

.wpsa-module.fb-home-facts {
	min-height: 649px;
	padding-block: 50px 58px;
	background: #fafffa;
	text-align: start;
}

.fb-home-facts__layout {
	position: relative;
	min-height: 408px;
	margin-block-start: 34px;
}

.fb-home-facts__media {
	position: relative;
	z-index: 1;
	float: right;
	width: 40%;
	margin-inline-start: 34px;
	border-radius: 10px;
	overflow: hidden;
}

.fb-home-facts__text {
	width: calc(60% - 34px);
	padding-block: 9px;
	font-family: Georgia, "Times New Roman", serif;
	letter-spacing: 0.5px;
}

.fb-home-facts__image {
	display: block;
	width: 100%;
	aspect-ratio: 1.4883 / 1;
	object-fit: cover;
}

/* ------------------------------------------------------ section index -- */

.fb-index-nav {
	position: fixed;
	top: 50%;
	right: 17px;
	z-index: 45;
	display: grid;
	gap: 12px;
	transform: translateY(-50%);
}

.fb-index-nav a {
	display: block;
	width: 10px;
	height: 10px;
	border: 2px solid #ffffff;
	border-radius: 50%;
	background: rgb(3 99 46 / 38%);
	box-shadow: 0 0 0 1px rgb(3 99 46 / 55%);
}

.fb-index-nav a.is-active {
	background: #ffffff;
}

/* ------------------------------------------------------- interior pages -- */

.fb-page-banner {
	width: 100%;
	height: 300px;
	overflow: hidden;
	background: #f6f6f6;
}

.fb-page-banner__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.wpsa-module.fb-page-content {
	padding-block: 80px;
	text-align: start;
}

.fb-page-heading {
	margin-block-end: 28px;
}

.fb-page-eyebrow {
	margin-block-end: 0.5rem;
	color: var(--wpsa-color-accent);
	font-family: var(--wpsa-font-heading);
	font-size: 0.875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.fb-page-content .fb-lede {
	margin-inline: 0;
	font-size: 1.125rem;
	line-height: 1.6;
}

@media (max-width: 68rem) {
	body.home #wpsa-main {
		margin-block-start: -60px;
	}

	.fb-index-nav {
		display: none;
	}

	.fb-index-section {
		scroll-margin-block-start: 110px;
	}

	.fb-home-hero {
		height: 506px;
	}

	.fb-home-hero__media {
		background-position: 65% 15%;
		background-size: auto 134%;
	}

	.fb-home-hero__content {
		display: block;
		align-content: normal;
		padding-block: 67px 0;
	}

	.fb-home-hero__eyebrow,
	.fb-home-hero__intro {
		font-size: 1.125rem;
		line-height: 1.6;
	}

	.fb-home-hero__heading {
		margin-block-start: 21.43px;
		font-size: 2rem;
		letter-spacing: 0.0889px;
		line-height: 1.45;
		text-wrap: wrap;
		white-space: pre-wrap;
		transform: scaleX(0.92);
		transform-origin: center;
	}

	.fb-home-hero__intro {
		margin-block-start: 21.47px;
	}

	.fb-home-languages {
		margin-block-start: 34px;
	}

	.fb-home-languages img {
		width: 52.5px;
		height: 41px;
	}

	.fb-home-section-heading,
	.fb-page-heading {
		font-size: 2rem;
		letter-spacing: 0.0889px;
		line-height: 1.45;
		text-wrap: wrap;
		white-space: pre-wrap;
	}

	.wpsa-module.fb-home-services,
	.wpsa-module.fb-home-about,
	.wpsa-module.fb-home-facts {
		padding-block-start: 67px;
		padding-block-end: 67px;
	}

	.fb-home-about > .wpsa-container > .fb-home-section-heading {
		text-align: start;
		transform: scaleX(0.91);
		transform-origin: left center;
	}

	.fb-home-services__intro {
		max-width: none;
	}

	.fb-home-services__intro {
		font-family: Georgia, "Times New Roman", serif;
		letter-spacing: 0.45px;
	}

	.fb-home-service__text {
		font-family: Georgia, "Times New Roman", serif;
		letter-spacing: 0.1px;
	}

	.fb-home-about__intro {
		margin-block-start: 21.47px;
		font-family: Georgia, "Times New Roman", serif;
		letter-spacing: 0.18px;
	}

	.fb-home-about__intro > p:last-child {
		letter-spacing: 0;
	}

	.fb-home-facts__text {
		width: 100%;
		font-family: Georgia, "Times New Roman", serif;
		letter-spacing: 0.1px;
	}

	.fb-home-facts > .wpsa-container > .fb-home-section-heading {
		width: max-content;
		white-space: nowrap;
		transform: scaleX(0.883);
		transform-origin: left center;
	}

	.fb-home-services__grid {
		grid-template-columns: 1fr;
		row-gap: 34px;
		margin-block-start: 44px;
	}

	.fb-home-service__media {
		margin-block-start: 34px;
	}

	.fb-home-service__text {
		margin-block-start: 34px;
	}

	.fb-home-about__layout,
	.fb-home-facts__layout {
		display: grid;
		position: static;
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.fb-home-about__layout {
		margin-block-start: 34px;
	}

	.fb-home-about__media,
	.fb-home-facts__media {
		position: static;
		float: none;
		order: -1;
		width: calc(100% - 17px);
		margin: 0 0 0 17px;
	}

	.fb-home-about__details,
	.fb-home-facts__copy {
		text-align: start;
	}

	.fb-home-facts__layout {
		margin-block-start: 34px;
	}

	.fb-page-banner {
		height: 240px;
	}

	.wpsa-module.fb-page-content {
		padding-block: 67px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fb-source-button,
	.fb-header__toggle-icon span {
		transition: none;
	}
}


/* ------------------------------------------------------------ lightbox -- */

.fb-lightbox {
	display: block;
	position: relative;
	cursor: zoom-in;
	color: inherit;
}

.fb-gallery__item .fb-lightbox,
.fb-vessel-card__media .fb-lightbox,
.fb-split__media .fb-lightbox {
	display: block;
}

/* A quiet "view larger" affordance on hover/keyboard focus, without moving
   the image or changing its crop. */
.fb-lightbox::after {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	width: 2.75rem;
	height: 2.75rem;
	transform: translate( -50%, -50% ) scale( 0.6 );
	border-radius: 50%;
	background: rgba( 13, 16, 14, 0.55 ) url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='22' height='22'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/g%3E%3C/svg%3E" ) center / 1.4rem no-repeat;
	opacity: 0;
	transition: opacity 0.2s ease, transform 0.25s ease;
	pointer-events: none;
}

.fb-lightbox:hover::after,
.fb-lightbox:focus-visible::after {
	opacity: 1;
	transform: translate( -50%, -50% ) scale( 1 );
}

/* Viewer overlay. */
.fb-lightbox-ui {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: rgba( 13, 16, 14, 0.94 );
	opacity: 0;
	transition: opacity 0.25s ease;
}

.fb-lightbox-ui.is-open {
	opacity: 1;
}

.fb-lightbox-ui[hidden] {
	display: none;
}

.fb-lightbox-ui__frame {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: min( 1120px, 100% );
	max-height: 100%;
}

.fb-lightbox-ui__stage {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	min-height: 0;
	flex: 1 1 auto;
}

/* Loading spinner while the full-size file arrives. */
.fb-lightbox-ui__stage::before {
	content: "";
	position: absolute;
	width: 2.5rem;
	height: 2.5rem;
	border: 3px solid rgba( 255, 255, 255, 0.25 );
	border-top-color: var(--wpsa-color-accent-alt);
	border-radius: 50%;
	animation: fb-lightbox-spin 0.8s linear infinite;
	opacity: 0;
	pointer-events: none;
}

.fb-lightbox-ui__stage:has( .fb-lightbox-ui__image.is-loading )::before {
	opacity: 1;
}

@keyframes fb-lightbox-spin {
	to {
		transform: rotate( 360deg );
	}
}

.fb-lightbox-ui__image {
	display: block;
	max-width: 100%;
	max-height: 78vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 2px;
	opacity: 0;
	transform: scale( 0.98 );
	transition: opacity 0.25s ease, transform 0.3s ease;
	box-shadow: 0 18px 60px rgba( 0, 0, 0, 0.5 );
}

.fb-lightbox-ui.is-open .fb-lightbox-ui__image {
	opacity: 1;
	transform: scale( 1 );
}

.fb-lightbox-ui__image.is-loading {
	opacity: 0;
	transition: none;
}

.fb-lightbox-ui__image.is-error {
	opacity: 0.25;
}

.fb-lightbox-ui__caption {
	margin: 0.9rem 0 0;
	color: var(--wpsa-color-inverse-text);
	font-family: var(--wpsa-font-heading);
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	text-align: center;
	opacity: 0.9;
	max-width: 70ch;
}

.fb-lightbox-ui__counter {
	margin: 0.45rem 0 0;
	font-size: 0.8rem;
	letter-spacing: 0.12em;
	color: var(--wpsa-color-inverse-muted);
}

.fb-lightbox-ui__btn {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid rgba( 255, 255, 255, 0.28);
	border-radius: 50%;
	background: rgba( 0, 0, 0, 0.35);
	color: #ffffff;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.fb-lightbox-ui__btn:hover {
	background: rgba( 0, 0, 0, 0.6);
	border-color: rgba( 255, 255, 255, 0.55);
}

.fb-lightbox-ui__btn:active {
	transform: scale( 0.94 );
}

.fb-lightbox-ui__btn--close {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
}

.fb-lightbox-ui__btn--prev,
.fb-lightbox-ui__btn--next {
	position: absolute;
	top: 50%;
	transform: translateY( -50% );
	z-index: 2;
	width: 3rem;
	height: 3rem;
}

.fb-lightbox-ui__btn--prev:active,
.fb-lightbox-ui__btn--next:active {
	transform: translateY( -50% ) scale( 0.94 );
}

.fb-lightbox-ui__btn--prev {
	left: 0.5rem;
}

.fb-lightbox-ui__btn--next {
	right: 0.5rem;
}

.fb-lightbox-ui__btn[hidden] {
	display: none;
}

html.fb-lightbox-locked,
html.fb-lightbox-locked body {
	overflow: hidden;
}

@media ( max-width: 47.999rem ) {
	.fb-lightbox-ui {
		padding: 0.5rem;
	}

	.fb-lightbox-ui__image {
		max-height: 72vh;
	}

	.fb-lightbox-ui__btn--prev,
	.fb-lightbox-ui__btn--next {
		width: 2.5rem;
		height: 2.5rem;
	}

	.fb-lightbox-ui__btn--prev {
		left: 0.25rem;
	}

	.fb-lightbox-ui__btn--next {
		right: 0.25rem;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.fb-lightbox::after,
	.fb-lightbox-ui,
	.fb-lightbox-ui__image,
	.fb-lightbox-ui__btn {
		transition: none;
	}

	.fb-lightbox-ui.is-open .fb-lightbox-ui__image {
		transform: none;
	}
}

/* Source-matched inner layouts and native gallery controls. */
.fb-page-content .fb-prose { max-width: none; text-align: start; }
.fb-page-content .fb-prose p + p { margin-block-start: 18px; }
.fb-page-content .fb-prose li + li { margin-block-start: 9px; }
.fb-page-content--service > .wpsa-container,
.fb-page-content--text-media > .wpsa-container { width: calc(100% - 40px); max-width: 981px; padding-inline: 0; }
.fb-page-content--service .fb-page-heading { margin-bottom: 34px; }
.fb-page-content .fb-prose .fb-page-heading { font-size: 36px; line-height: 52.2px; }
.fb-service-columns, .fb-media-columns { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 34px; align-items: start; }
.fb-page-content--split .fb-service-columns { grid-template-columns: minmax(0,372px) minmax(0,575px); }
.fb-service-columns .fb-prose, .fb-media-columns .fb-prose { width: 100%; margin: 0; }
.fb-service-columns__image .fb-lightbox, .fb-service-columns__image img { display: block; width: 100%; }
.fb-service-columns__image img { height: auto; }
.fb-page-content--split .fb-service-columns__image img { aspect-ratio: 1.8495; object-fit: cover; }
.fb-page-content--columns .fb-service-columns__primary .fb-service-columns__image { margin-top: 34px; }
.fb-page-content--columns .fb-service-columns__secondary > .fb-service-columns__image { margin-bottom: 34px; }
.fb-page-content--columns .fb-service-columns__primary img { aspect-ratio: 1.659; object-fit: cover; }
.fb-page-content--columns .fb-service-columns__secondary img { aspect-ratio: 2.942; object-fit: cover; }
.fb-inner-cta { margin-top: 34px; text-align: center; }
.fb-inner-cta:empty { display: none; }
.fb-media-columns--additional { margin-top: 68px; padding-top: 44px; border-top: 1px solid rgba(29,29,29,.12); }
.fb-leisure-programmes { margin-top: 34px !important; }
.fb-leisure-programmes .fb-page-eyebrow { margin-bottom: 18px; }
.fb-carousel { position: relative; width: 100%; min-width: 0; }
.fb-carousel__slides, .fb-carousel__thumbnails { margin: 0; padding: 0; list-style: none; }
.fb-carousel__slide .fb-lightbox { display: block; width: 100%; }
.fb-carousel__slide img { display: block; width: 100%; height: auto; }
.fb-carousel.is-enhanced .fb-carousel__slides { aspect-ratio: 1.5; overflow: hidden; }
.fb-carousel.is-enhanced .fb-carousel__slide, .fb-carousel.is-enhanced .fb-carousel__slide .fb-lightbox { height: 100%; }
.fb-carousel.is-enhanced .fb-carousel__slide img { height: 100%; object-fit: cover; }
.fb-carousel__slide[hidden], .fb-carousel__controls[hidden], .fb-carousel__thumbnails[hidden] { display: none; }
.fb-carousel__controls { position: absolute; inset: 0 0 auto; height: auto; aspect-ratio: 1.5; pointer-events: none; display: flex; align-items: center; justify-content: space-between; }
.fb-carousel__controls button { pointer-events: auto; border: 0; color: #fff; background: transparent; font: 40px/1 Arial,sans-serif; width: 42px; padding: 0; cursor: pointer; text-shadow: 0 1px 4px #444; }
.fb-carousel__thumbnails { display: flex; overflow-x: auto; gap: 0; margin-top: 20px; }
.fb-carousel__thumbnails button { flex: 0 0 25%; border: 0; padding: 0; background: transparent; opacity: .55; cursor: pointer; }
.fb-carousel__thumbnails button[aria-current="true"] { opacity: 1; }
.fb-carousel__thumbnails img { display: block; width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; }
.fb-page-content--leisure .fb-carousel.is-enhanced .fb-carousel__slides,
.fb-page-content--leisure .fb-carousel__controls { aspect-ratio: 1.709; }
.fb-vessel-detail { display: grid; grid-template-columns: minmax(0,270.5fr) minmax(0,372fr) minmax(0,473.5fr); gap: 34px; align-items: start; }
.fb-vessel-detail__heading { grid-column: 1; }
.fb-vessel-detail__specifications { grid-column: 2; grid-row: 1; }
.fb-vessel-detail__media { grid-column: 3; grid-row: 1; padding-top: 17px; }
.fb-vessel-detail__cover { margin: 0 0 34px; }
.fb-vessel-detail__cover .fb-lightbox, .fb-vessel-detail__cover img { display: block; width: 100%; height: auto; }
.fb-vessel-detail__cover figcaption { font-size: 12px; line-height: 20.16px; margin-top: 18px; }
.fb-vessel-detail .fb-specs { margin: 17px 0 0; padding-left: 23px; border: 0; }
.fb-vessel-detail .fb-specs__row { display: list-item; list-style: disc; padding: 0; margin: 0 0 9px; border: 0; line-height: 28.8px; }
.fb-vessel-detail .fb-specs__label, .fb-vessel-detail .fb-specs__value { display: inline; font: inherit; margin: 0; }
.fb-vessel-detail .fb-specs__label::after { content: ': '; }
.fb-vessel-detail__rule { border: 0; height: 1px; background: rgba(29,29,29,.15); margin: 51px 0 34px; }
.fb-page-content--contact .fb-contact-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 34px; }
.fb-page-content--contact .fb-contact-form { padding-top: 104px; min-width: 0; }
.fb-page-content--contact .fb-contact-heading { font: inherit; margin: 18px 0; }
.fb-page-content--contact .fb-contact-details .fb-prose p { margin: 18px 0; }
.fb-page-content--contact .fb-contact-details .fb-prose p.fb-contact-social { margin: 34px 0 34px 8.75px; }
.fb-page-content--contact .fb-contact-form > .fb-lede { margin-bottom: 34px; }
.fb-page-content--contact :is(input,textarea,select,.wpcf7-form-control-wrap) { max-width: 100%; box-sizing: border-box; }
.fb-page-content--contact :is(input:not([type=submit]),textarea,select) { width: 100%; padding: 10px; border: 1px solid #aaa; background: #fafafa; font: inherit; border-radius: 0; }
.fb-page-content--contact .wpcf7-form p { margin: 0 0 24px; }
.fb-page-content--contact .wpcf7-form textarea { height: 100px; min-height: 100px; }
.fb-page-content--contact .wpcf7-form :is(input[type=email],input[type=text]) { height: 45px; }
.fb-page-content--contact .wpcf7-form input[type=submit] { padding: 18px 45px; border: 2px solid #272727; background: transparent; color: #272727; font-family: var(--wpsa-font-heading); font-size: 18px; font-weight: 700; line-height: 28.8px; letter-spacing: .3em; text-transform: uppercase; }
.fb-page-content--contact .wpcf7-form input[type=submit]:hover { background: #272727; color: #fff; }
.fb-page-content .fb-prose .fb-page-eyebrow { font-size: 16px; line-height: 25.6px; margin-bottom: 13.28px; }
.fb-page-content--gallery .fb-gallery { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 34px; }
.fb-page-content--gallery .fb-gallery__item { aspect-ratio: 16/9; display: flex; align-items: center; min-width: 0; border-radius: 0; background: transparent; }
.fb-page-content--gallery .fb-gallery__item .fb-lightbox { width: 100%; height: 100%; display: flex; align-items: center; }
.fb-page-content--gallery .fb-gallery__item img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; }
.fb-page-content--fleet .fb-fleet-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 68px 34px; }
.fb-page-content--fleet .fb-fleet-group { margin-top: 102px; }
.fb-page-content--fleet .fb-fleet-group__heading { font-size: 36px; line-height: 52.2px; margin-bottom: 34px; padding: 0; border: 0; }
.fb-page-content--fleet .fb-vessel-card { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.fb-page-content--fleet .fb-vessel-card:hover { transform: none; box-shadow: none; }
.fb-page-content--fleet .fb-vessel-card__media img { aspect-ratio: 1.5016; }
.fb-page-content--fleet .fb-vessel-card__body { padding: 27px; }
.fb-page-content--fleet .fb-vessel-card__title { font-size: 19.44px; line-height: 28.188px; margin-bottom: 8px; }
.fb-page-content--fleet .fb-vessel-card__title a::after { display: none; }
.fb-page-content--fleet .fb-vessel-card__type, .fb-page-content--fleet .fb-vessel-card__dims { font-family: "EB Garamond",serif; font-size: 13px; line-height: 24.18px; color: #1d1d1d; }
.fb-page-content--fleet .fb-vessel-card__dims { margin-top: 13px; }
.fb-page-content--fleet .fb-vessel-card__dims span { display: block; }
.fb-page-content--fleet .fb-vessel-card__details { margin-top: 26px; font-size: 13px; letter-spacing: 0; font-weight: 400; }
@media (max-width: 68rem) {
 .fb-page-banner { height: 120px; }
 .wpsa-module.fb-page-content { padding-top: 77px; }
 .fb-page-content .fb-prose .fb-page-heading { font-size: 32px; line-height: 46.4px; }
}
@media (max-width: 47.999rem) {
 .fb-service-columns, .fb-media-columns, .fb-page-content--split .fb-service-columns, .fb-vessel-detail, .fb-page-content--contact .fb-contact-grid { grid-template-columns: minmax(0,1fr); gap: 34px; }
 .fb-vessel-detail__heading, .fb-vessel-detail__media, .fb-vessel-detail__specifications { grid-column: auto; grid-row: auto; }
 .fb-vessel-detail__media { padding: 0 0 0 17px; }
 .fb-page-content--contact .fb-contact-form { padding-top: 0; }
 .fb-page-content--gallery .fb-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .fb-page-content--fleet .fb-fleet-grid { grid-template-columns: minmax(0,1fr); gap: 68px; }
 .fb-page-content--fleet .fb-vessel-card__body { padding: 35px; }
 .fb-page-content--fleet .fb-fleet-group__heading { font-size: 32px; line-height: 46.4px; }
}

.fb-video { position: relative; display: flex; width: 100%; height: 100%; align-items: center; }
.fb-video::after { content: ''; position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); width: 0; height: 0; border-top: 16px solid transparent; border-bottom: 16px solid transparent; border-left: 25px solid white; filter: drop-shadow(0 1px 4px #333); }
.fb-video-dialog { border: 0; padding: 0; overflow: visible; width: min(1100px,calc(100vw - 40px)); max-width: none; background: #000; color: #fff; }
.fb-video-dialog::backdrop { background: rgba(0,0,0,.88); }
.fb-video-dialog iframe { display: block; width: 100%; aspect-ratio: 16/9; max-height: calc(100dvh - 100px); border: 0; }
.fb-video-dialog__close { position: absolute; right: 0; top: -44px; width: 44px; height: 44px; border: 0; padding: 0; background: transparent; color: white; font: 36px/1 Arial,sans-serif; cursor: pointer; }
.fb-leisure-photo { margin-top: 34px; }
.fb-leisure-photo img { aspect-ratio: 1.9928; object-fit: cover; }
.fb-page-content--leisure > .wpsa-container > .fb-media-columns:first-child > .fb-media-columns__media > .fb-carousel img { aspect-ratio: 1.5633; object-fit: cover; }
.fb-carousel--strip .fb-carousel__slides { display: flex; overflow-x: auto; scrollbar-width: none; }
.fb-carousel--strip .fb-carousel__slide { flex: 0 0 auto; width: auto; }
.fb-carousel--strip .fb-carousel__slide .fb-lightbox { width: auto; }
.fb-carousel--strip .fb-carousel__slide img { width: auto; object-fit: contain; }
@media(max-width:47.999rem) {
 .fb-page-content--leisure .fb-media-columns--additional .fb-media-columns__media { grid-row: 1; }
}
