/*
Theme Name: AquaGib
Theme URI: https://aquagib.dev.gi/
Author: AquaGib
Description: Accessible, responsive service theme for AquaGib.
Version: 1.2.48
Requires at least: 7.0
Requires PHP: 7.4
Text Domain: aquagib
*/

@font-face {
	font-family: "Public Sans";
	font-style: normal;
	font-weight: 400;
	font-display: fallback;
	src: url("assets/fonts/public-sans-400.ttf") format("truetype");
}

@font-face {
	font-family: "Public Sans";
	font-style: normal;
	font-weight: 600;
	font-display: fallback;
	src: url("assets/fonts/public-sans-600.ttf") format("truetype");
}

@font-face {
	font-family: "Public Sans";
	font-style: normal;
	font-weight: 700;
	font-display: fallback;
	src: url("assets/fonts/public-sans-700.ttf") format("truetype");
}

@font-face {
	font-family: "Public Sans";
	font-style: normal;
	font-weight: 800;
	font-display: fallback;
	src: url("assets/fonts/public-sans-800.ttf") format("truetype");
}

:root {
	--aquagib-navy: #0d3555;
	--aquagib-blue: #0e6ba8;
	--aquagib-blue-dark: #084e7e;
	--aquagib-green: #2e9e5b;
	--aquagib-heading: #12293c;
	--aquagib-body: #44586a;
	--aquagib-hairline: #dbe4ec;
	--aquagib-panel: #f5f9fc;
	--aquagib-white: #ffffff;
	--aquagib-radius: 8px;
	--aquagib-radius-large: 10px;
	--aquagib-content: 1280px;
	--aquagib-gutter: clamp(24px, 4vw, 48px);
	--aquagib-shadow: 0 14px 35px rgba(13, 53, 85, 0.11);

	/* Navy-biased neutrals. Every grey on the site resolves to one of these. */
	--aquagib-muted: #5e7386;
	--aquagib-faint: #7b8fa1;
	--aquagib-tint-strong: #eaf2f8;
	--aquagib-on-navy-muted: #d7e7f2;

	/*
	 * Document type scale. A ~1.28 ratio, fluid between a 360px and a 1280px
	 * viewport. Long-form templates size everything from these steps so that
	 * hierarchy stays proportional at every width.
	 */
	--aquagib-step--2: clamp(0.75rem, 0.72rem + 0.13vw, 0.8125rem);
	--aquagib-step--1: clamp(0.875rem, 0.85rem + 0.13vw, 0.9375rem);
	--aquagib-step-0: clamp(1.0625rem, 1.02rem + 0.2vw, 1.125rem);
	--aquagib-step-1: clamp(1.25rem, 1.18rem + 0.31vw, 1.375rem);
	--aquagib-step-2: clamp(1.5rem, 1.34rem + 0.7vw, 1.875rem);
	--aquagib-step-3: clamp(1.875rem, 1.55rem + 1.44vw, 2.625rem);
	--aquagib-step-4: clamp(2.125rem, 1.65rem + 2.1vw, 3.5rem);

	/*
	 * Reading measure: a broad information column. Deliberately expressed in
	 * rem, not ch — `ch` resolves against each element's own font size, which
	 * would give a 30px heading a far wider column than the 18px paragraph
	 * beneath it and ragged the shared left edge.
	 */
	--aquagib-measure: min(56rem, 100%);
	--aquagib-measure-wide: 66rem;
}

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

html {
	scroll-behavior: smooth;
}

body {
	background: var(--aquagib-white);
	color: var(--aquagib-body);
	font-family: "Public Sans", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.65;
	margin: 0;
}

body.menu-open {
	overflow: hidden;
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: var(--aquagib-blue);
	font-weight: 700;
	text-decoration: none;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--aquagib-blue-dark);
}

a:focus-visible,
button:focus-visible {
	border-radius: 4px;
	outline: 3px solid #ffbf47;
	outline-offset: 4px;
}

h1,
h2,
h3,
p {
	margin-top: 0;
}

h1,
h2,
h3 {
	color: var(--aquagib-heading);
	line-height: 1.2;
}

h1 {
	font-size: clamp(26px, 2.4vw, 30px);
	font-weight: 800;
}

h2 {
	font-size: clamp(18px, 2vw, 20px);
	font-weight: 700;
}

h3 {
	font-size: 16px;
	font-weight: 700;
}

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

.screen-reader-text:focus {
	background: var(--aquagib-white);
	clip: auto !important;
	clip-path: none;
	color: var(--aquagib-heading);
	display: block;
	font-size: 14px;
	font-weight: 700;
	height: auto;
	left: 16px;
	line-height: normal;
	padding: 14px 18px;
	top: 16px;
	width: auto;
	z-index: 100000;
}

.site-shell {
	margin-inline: auto;
	max-width: var(--aquagib-content);
	padding-inline: var(--aquagib-gutter);
	width: 100%;
}

.site-header {
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 50;
}

.admin-bar .site-header:not(.site-header--solid) {
	top: 32px;
}

.site-header__inner {
	align-items: center;
	display: flex;
	gap: 36px;
	height: 96px;
	justify-content: space-between;
}

.custom-logo-link {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	min-height: 54px;
}

.site-logo {
	aspect-ratio: 29 / 9;
	height: 54px;
	max-width: none;
	object-fit: contain;
	width: auto;
}

.menu-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--aquagib-white);
	cursor: pointer;
	display: none;
	flex-direction: column;
	gap: 6px;
	height: 48px;
	justify-content: center;
	padding: 8px;
	width: 48px;
}

.menu-toggle__line {
	background: currentcolor;
	border-radius: 2px;
	height: 3px;
	transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 180ms ease;
	width: 30px;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-last-child(3) {
	transform: translateY(9px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-last-child(2) {
	opacity: 0;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-last-child(1) {
	transform: translateY(-9px) rotate(-45deg);
}

.primary-navigation ul {
	align-items: center;
	display: flex;
	gap: clamp(22px, 2.6vw, 42px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-navigation__list > .menu-item {
	position: relative;
}

.primary-navigation .sub-menu {
	align-items: stretch;
	background: var(--aquagib-white);
	border: 1px solid rgba(13, 53, 85, 0.1);
	border-radius: 12px;
	box-shadow: 0 18px 42px rgba(5, 31, 52, 0.22);
	display: grid;
	gap: 2px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	left: 50%;
	margin: 0;
	min-width: 31rem;
	opacity: 0;
	padding: 10px;
	pointer-events: none;
	position: absolute;
	top: calc(100% - 4px);
	transform: translate(-50%, 8px);
	transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
	visibility: hidden;
	z-index: 20;
}

.primary-navigation .menu-item-has-children:hover > .sub-menu,
.primary-navigation .menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	pointer-events: auto;
	transform: translate(-50%, 0);
	visibility: visible;
}

.primary-navigation .sub-menu a {
	border-radius: 7px;
	color: var(--aquagib-navy);
	font-size: 14px;
	font-weight: 700;
	min-height: 46px;
	padding: 0 12px;
	width: 100%;
}

.primary-navigation .sub-menu a::after {
	display: none;
}

.primary-navigation .sub-menu a:hover,
.primary-navigation .sub-menu a:focus-visible,
.primary-navigation .sub-menu .current-menu-item > a,
.primary-navigation .sub-menu .current-menu-ancestor > a,
.primary-navigation .sub-menu .current-menu-parent > a,
.primary-navigation .sub-menu .current-page-item > a,
.primary-navigation .sub-menu .current-page-ancestor > a,
.primary-navigation .sub-menu .current-page-parent > a {
	background: var(--aquagib-tint-strong);
	color: var(--aquagib-navy);
}

.primary-navigation a {
	align-items: center;
	color: rgba(255, 255, 255, 0.88);
	display: inline-flex;
	font-size: 14px;
	font-weight: 600;
	min-height: 44px;
	position: relative;
}

.primary-navigation a::after {
	background: var(--aquagib-white);
	bottom: 5px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 220ms ease;
	width: 100%;
}

.primary-navigation a:hover,
.primary-navigation a:focus-visible,
.primary-navigation .current-menu-item > a,
.primary-navigation .current-menu-ancestor > a,
.primary-navigation .current-menu-parent > a,
.primary-navigation .current-page-item > a,
.primary-navigation .current-page-ancestor > a,
.primary-navigation .current-page-parent > a {
	color: var(--aquagib-white);
}

.primary-navigation a:hover::after,
.primary-navigation a:focus-visible::after,
.primary-navigation .current-menu-item > a::after,
.primary-navigation .current-menu-ancestor > a::after,
.primary-navigation .current-menu-parent > a::after,
.primary-navigation .current-page-item > a::after,
.primary-navigation .current-page-ancestor > a::after,
.primary-navigation .current-page-parent > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.primary-navigation .menu-contact a {
	border: 1px solid rgba(255, 255, 255, 0.55);
	border-radius: 8px;
	padding: 0 22px;
}

.primary-navigation .menu-contact a::after {
	display: none;
}

.primary-navigation .menu-contact a:hover {
	background: var(--aquagib-white);
	color: var(--aquagib-navy);
}

.home-hero {
	background: var(--aquagib-navy);
	color: var(--aquagib-white);
	min-height: 350px;
	overflow: hidden;
	padding: 128px 0 112px;
	position: relative;
}

.home-hero::before,
.home-hero::after {
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.home-hero::before {
	animation: aquagib-hero-drift 18s ease-in-out 1 both;
	background-image: url("assets/images/gibraltar-hero.png");
	background-position: center 56%;
	background-repeat: no-repeat;
	background-size: cover;
	transform: scale(1.035);
}

.home-hero::after {
	background: linear-gradient(180deg, rgba(13, 53, 85, 0.9) 0%, rgba(13, 53, 85, 0.72) 100%);
}

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

.home-hero h1 {
	color: var(--aquagib-white);
	letter-spacing: -0.02em;
	margin-bottom: 14px;
	max-width: 760px;
}

.home-hero p {
	color: rgba(255, 255, 255, 0.8);
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 0;
	max-width: 760px;
}

.quick-actions {
	margin-top: -48px;
	position: relative;
	z-index: 4;
}

.quick-actions__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.quick-card {
	background: var(--aquagib-white);
	border: 1px solid rgba(219, 228, 236, 0.75);
	border-radius: var(--aquagib-radius-large);
	box-shadow: var(--aquagib-shadow);
	color: var(--aquagib-heading);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 122px;
	padding: 20px 22px;
	position: relative;
	transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

a.quick-card:hover,
a.quick-card:focus-visible {
	border-color: var(--aquagib-blue);
	box-shadow: 0 18px 42px rgba(13, 53, 85, 0.16);
	color: var(--aquagib-heading);
	transform: translateY(-6px);
}

.quick-card--priority {
	background: var(--aquagib-blue);
	border-color: var(--aquagib-blue);
	color: var(--aquagib-white);
}

a.quick-card--priority:hover,
a.quick-card--priority:focus-visible {
	background: var(--aquagib-blue-dark);
	border-color: var(--aquagib-blue-dark);
	color: var(--aquagib-white);
}

.quick-card__icon {
	align-items: center;
	color: var(--aquagib-blue);
	display: inline-flex;
	height: 34px;
	margin-bottom: 12px;
	width: 34px;
}

.quick-card--priority .quick-card__icon {
	color: var(--aquagib-white);
}

.quick-card__icon svg {
	height: 100%;
	width: 100%;
}

.quick-card__title {
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 4px;
}

.quick-card__title--mobile {
	display: none;
}

.quick-card__description {
	color: #647a8d;
	display: block;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
}

.quick-card--priority .quick-card__description {
	color: rgba(255, 255, 255, 0.78);
}

.service-status {
	align-items: center;
	background: #f2faf6;
	border: 1px solid #cfe5db;
	border-radius: var(--aquagib-radius);
	display: flex;
	gap: 14px;
	justify-content: space-between;
	margin-top: 18px;
	min-height: 52px;
	padding: 10px 22px;
}

.service-status__message {
	align-items: center;
	color: var(--aquagib-body);
	display: flex;
	gap: 14px;
	margin: 0;
}

.service-status__message strong {
	color: var(--aquagib-heading);
}

.service-status__dot {
	background: var(--aquagib-green);
	border-radius: 50%;
	box-shadow: 0 0 0 0 rgba(46, 158, 91, 0.35);
	flex: 0 0 12px;
	height: 12px;
	width: 12px;
}

.service-status__link {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	min-height: 44px;
}

.home-content {
	padding-bottom: 90px;
	padding-top: 46px;
}

.home-layout {
	align-items: start;
	display: grid;
	gap: clamp(34px, 5vw, 68px);
	grid-template-columns: minmax(0, 1fr) minmax(340px, 0.92fr);
}

.section-heading {
	margin-bottom: 5px;
}

.section-intro {
	color: #647a8d;
	margin-bottom: 20px;
}

.task-list {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.task-card {
	align-items: center;
	background: var(--aquagib-white);
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius);
	color: var(--aquagib-heading);
	display: flex;
	gap: 18px;
	justify-content: space-between;
	min-height: 66px;
	padding: 13px 18px;
	transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

a.task-card:hover,
a.task-card:focus-visible {
	background: var(--aquagib-panel);
	border-color: var(--aquagib-blue);
	color: var(--aquagib-heading);
	transform: translateX(5px);
}

.task-card__title {
	display: block;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}

.task-card__description {
	color: #6c8295;
	display: block;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
}

.task-card__arrow {
	color: var(--aquagib-blue);
	font-size: 20px;
	font-weight: 400;
	transition: transform 180ms ease;
}

a.task-card:hover .task-card__arrow,
a.task-card:focus-visible .task-card__arrow {
	transform: translateX(4px);
}

.contact-column {
	display: grid;
	gap: 16px;
}

.contact-visual {
	background: #e9f4fa;
	border-radius: var(--aquagib-radius-large);
	height: 206px;
	overflow: hidden;
	position: relative;
}

.contact-visual::after {
	background: linear-gradient(90deg, rgba(14, 107, 168, 0.12), transparent 58%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.contact-visual img {
	height: 100%;
	object-fit: cover;
	transition: transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
	width: 100%;
}

.contact-visual:hover img {
	transform: scale(1.035);
}

.contact-card {
	background: var(--aquagib-panel);
	border-radius: var(--aquagib-radius-large);
	padding: 24px;
}

.contact-card h2 {
	margin-bottom: 10px;
}

.contact-card p {
	margin-bottom: 2px;
}

.contact-card strong {
	color: var(--aquagib-heading);
}

.contact-card__email {
	color: var(--aquagib-blue);
	display: block;
	font-weight: 700;
	margin-top: 8px;
}

.mobile-contact {
	display: none;
}

.site-footer {
	background: var(--aquagib-navy);
	color: rgba(255, 255, 255, 0.64);
	font-size: 13px;
}

.site-footer__inner {
	align-items: center;
	display: grid;
	column-gap: clamp(24px, 3vw, 40px);
	grid-template-areas: "brand links servator" "brand address servator";
	grid-template-columns: 128px minmax(0, 1fr) 200px;
	padding-block: 28px;
	row-gap: 4px;
}

.site-footer__logo {
	grid-area: brand;
	height: auto;
	max-width: 100%;
	width: 128px;
}

.site-footer__servator {
	border-left: 1px solid rgba(255, 255, 255, 0.18);
	grid-area: servator;
	padding-left: 32px;
}

.site-footer__servator img {
	display: block;
	height: auto;
	max-width: 100%;
	width: 168px;
}

.site-footer__address {
	align-self: start;
	grid-area: address;
	margin: 0;
	text-align: left;
}

.site-footer__links {
	align-self: end;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
	grid-area: links;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer a {
	align-items: center;
	color: rgba(255, 255, 255, 0.68);
	display: inline-flex;
	font-weight: 400;
	min-height: 44px;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--aquagib-white);
}

.site-main--standard {
	min-height: 70vh;
	padding-bottom: 80px;
	padding-top: 72px;
}

.site-main--standard + .site-footer {
	margin-top: 40px;
}

.aquagib-page__header,
.aquagib-breadcrumbs,
.entry-content > * {
	margin-inline: auto;
	max-width: 900px;
}

.aquagib-page__header {
	border-bottom: 1px solid var(--aquagib-hairline);
	margin-bottom: 30px;
	padding-bottom: 18px;
}

.aquagib-page__header h1 {
	margin-bottom: 0;
}

.aquagib-page__meta {
	color: #647a8d;
	margin: 10px 0 0;
}

.aquagib-breadcrumbs {
	font-size: 13px;
	margin-bottom: 22px;
}

.aquagib-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.aquagib-breadcrumbs li:not(:last-child)::after {
	color: #7a8d9d;
	content: "/";
	margin-left: 7px;
}

.aquagib-breadcrumbs [aria-current="page"] {
	color: var(--aquagib-body);
}

.entry-content > .alignwide {
	max-width: 1184px;
}

.entry-content > .alignfull {
	max-width: none;
}

.entry-content p,
.entry-content ul,
.entry-content ol,
.entry-content .wp-block-table,
.entry-content .wp-block-details,
.entry-content .wp-block-buttons {
	margin-bottom: 22px;
}

.entry-content h2 {
	margin-bottom: 14px;
	margin-top: 42px;
}

.entry-content h3 {
	margin-bottom: 10px;
	margin-top: 28px;
}

.entry-content .aquagib-lead {
	color: var(--aquagib-heading);
	font-size: clamp(17px, 2vw, 19px);
	line-height: 1.55;
}

.entry-content .aquagib-panel,
.entry-content .aquagib-service-card,
.entry-content .aquagib-news-card {
	background: var(--aquagib-panel);
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius-large);
	padding: clamp(20px, 3vw, 28px);
}

.entry-content .aquagib-panel {
	margin-block: 28px;
}

.entry-content .aquagib-panel--status {
	border-left: 5px solid var(--aquagib-blue);
}

.entry-content .aquagib-panel > :last-child,
.entry-content .aquagib-service-card > :last-child,
.entry-content .aquagib-news-card > :last-child {
	margin-bottom: 0;
}

.entry-content .aquagib-service-card h2,
.entry-content .aquagib-service-card h3,
.entry-content .aquagib-news-card h2 {
	margin-top: 0;
}

.entry-content .aquagib-card-grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-block: 28px;
	max-width: 1184px;
}

.entry-content .aquagib-card-grid > * {
	margin: 0;
}

.entry-content .wp-block-button__link {
	background: var(--aquagib-blue);
	border-radius: var(--aquagib-radius);
	color: var(--aquagib-white);
	font-size: 15px;
	font-weight: 700;
	min-height: 44px;
	padding: 11px 20px;
}

.entry-content .wp-block-button__link:hover,
.entry-content .wp-block-button__link:focus-visible {
	background: var(--aquagib-blue-dark);
	color: var(--aquagib-white);
}

.entry-content .wp-block-table {
	overflow-x: auto;
}

.entry-content .wp-block-table table {
	border-collapse: collapse;
	min-width: 620px;
	width: 100%;
}

.entry-content .wp-block-table caption {
	color: var(--aquagib-body);
	font-size: 13px;
	padding: 12px 0 0;
	text-align: left;
}

.entry-content .wp-block-table th,
.entry-content .wp-block-table td {
	border: 1px solid var(--aquagib-hairline);
	padding: 11px 13px;
	text-align: left;
	vertical-align: top;
}

.entry-content .wp-block-table th {
	background: var(--aquagib-navy);
	color: var(--aquagib-white);
	font-weight: 700;
}

.entry-content .wp-block-details {
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius);
	padding: 0 18px;
}

.entry-content .wp-block-details summary {
	color: var(--aquagib-heading);
	cursor: pointer;
	font-weight: 700;
	min-height: 52px;
	padding: 14px 32px 14px 0;
}

.entry-content .wp-block-details[open] {
	padding-bottom: 18px;
}

.entry-content .wp-block-details[open] summary {
	border-bottom: 1px solid var(--aquagib-hairline);
	margin-bottom: 16px;
}

.entry-content .wp-block-query .wp-block-post-template {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	padding: 0;
}

.entry-content .wp-block-query .wp-block-post {
	margin: 0;
}

.entry-content .wp-block-post-title {
	font-size: 17px;
	line-height: 1.35;
}

@media (max-width: 760px) {
	.site-main--standard {
		padding-bottom: 48px;
		padding-top: 48px;
	}

	.aquagib-page__header {
		margin-bottom: 24px;
	}

	.entry-content .aquagib-card-grid,
	.entry-content .wp-block-query .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.entry-content h2 {
		margin-top: 34px;
	}
}

.site-header--solid {
	background: var(--aquagib-navy);
	position: relative;
}

.reveal,
.is-style-aquagib-reveal,
.is-style-aquagib-reveal-delay-1,
.is-style-aquagib-reveal-delay-2,
.is-style-aquagib-reveal-delay-3,
.is-style-aquagib-reveal-delay-4 {
	opacity: 1;
}

.has-js .reveal,
.has-js .is-style-aquagib-reveal,
.has-js .is-style-aquagib-reveal-delay-1,
.has-js .is-style-aquagib-reveal-delay-2,
.has-js .is-style-aquagib-reveal-delay-3,
.has-js .is-style-aquagib-reveal-delay-4 {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.has-js .reveal.is-visible,
.has-js .is-style-aquagib-reveal.is-visible,
.has-js .is-style-aquagib-reveal-delay-1.is-visible,
.has-js .is-style-aquagib-reveal-delay-2.is-visible,
.has-js .is-style-aquagib-reveal-delay-3.is-visible,
.has-js .is-style-aquagib-reveal-delay-4.is-visible {
	opacity: 1;
	transform: none;
}

.has-js .reveal--delay-1,
.has-js .is-style-aquagib-reveal-delay-1 {
	transition-delay: 70ms;
}

.has-js .reveal--delay-2,
.has-js .is-style-aquagib-reveal-delay-2 {
	transition-delay: 140ms;
}

.has-js .reveal--delay-3,
.has-js .is-style-aquagib-reveal-delay-3 {
	transition-delay: 210ms;
}

.has-js .reveal--delay-4,
.has-js .is-style-aquagib-reveal-delay-4 {
	transition-delay: 280ms;
}

@keyframes aquagib-hero-drift {
	from {
		transform: scale(1.035) translate3d(0, 0, 0);
	}

	to {
		transform: scale(1.075) translate3d(0, -1.5%, 0);
	}
}

@media (max-width: 1020px) {
	.primary-navigation ul {
		gap: 18px;
	}

	.quick-actions__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.quick-actions {
		margin-top: -48px;
	}

	.home-layout {
		gap: 32px;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);
	}
}

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

@media (max-width: 760px) {
	:root {
		--aquagib-gutter: 24px;
	}

	body {
		font-size: 15px;
	}

	.site-header__inner {
		height: 82px;
	}

	.site-logo {
		height: 39px;
		width: auto;
	}

	.menu-toggle {
		display: flex;
	}

	.primary-navigation {
		background: var(--aquagib-navy);
		border-top: 1px solid rgba(255, 255, 255, 0.14);
		display: block;
		left: 0;
		max-height: calc(100vh - 82px);
		max-height: calc(100dvh - 82px);
		opacity: 0;
		overscroll-behavior-y: contain;
		overflow-y: auto;
		padding: 18px var(--aquagib-gutter) 28px;
		pointer-events: none;
		position: absolute;
		right: 0;
		top: 82px;
		transform: translateY(-8px);
		transition: opacity 180ms ease, transform 220ms cubic-bezier(0.4, 0, 1, 1), visibility 0s 220ms;
		visibility: hidden;
	}

	.primary-navigation.is-open {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
		transition: opacity 240ms ease, transform 320ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
		visibility: visible;
	}

	.primary-navigation ul {
		align-items: stretch;
		flex-direction: column;
		gap: 2px;
	}

	.primary-navigation a {
		font-size: 16px;
		justify-content: space-between;
		min-height: 52px;
		width: 100%;
	}

	.primary-navigation a::after {
		display: none;
	}

	.primary-navigation .sub-menu {
		background: transparent;
		border: 0;
		border-left: 1px solid rgba(255, 255, 255, 0.24);
		border-radius: 0;
		box-shadow: none;
		gap: 2px;
		grid-template-columns: 1fr;
		left: auto;
		margin: 0 0 6px 12px;
		min-width: 0;
		opacity: 1;
		padding: 2px 0 2px 10px;
		pointer-events: auto;
		position: static;
		top: auto;
		transform: none;
		transition: none;
		visibility: inherit;
		width: auto;
	}

	/* The desktop dropdown uses a centring translate. Repeat this override at
	 * the hover/focus selector's full specificity so it cannot shift a static
	 * mobile submenu outside the viewport. */
	.primary-navigation .menu-item-has-children:hover > .sub-menu,
	.primary-navigation .menu-item-has-children:focus-within > .sub-menu {
		transform: none;
		visibility: inherit;
	}

	.primary-navigation .sub-menu a {
		color: rgba(255, 255, 255, 0.82);
		font-size: 15px;
		font-weight: 600;
		min-height: 44px;
	}

	.primary-navigation .sub-menu a:hover,
	.primary-navigation .sub-menu a:focus-visible,
	.primary-navigation .sub-menu .current-menu-item > a,
	.primary-navigation .sub-menu .current-menu-ancestor > a,
	.primary-navigation .sub-menu .current-menu-parent > a,
	.primary-navigation .sub-menu .current-page-item > a,
	.primary-navigation .sub-menu .current-page-ancestor > a,
	.primary-navigation .sub-menu .current-page-parent > a {
		background: rgba(255, 255, 255, 0.12);
		color: var(--aquagib-white);
	}

	.primary-navigation .current-menu-item > a,
	.primary-navigation .current-menu-ancestor > a,
	.primary-navigation .current-menu-parent > a,
	.primary-navigation .current-page-item > a,
	.primary-navigation .current-page-ancestor > a,
	.primary-navigation .current-page-parent > a {
		background: rgba(255, 255, 255, 0.12);
		border-radius: 6px;
		padding-inline: 12px;
	}

	.primary-navigation .menu-contact a {
		justify-content: center;
		margin-top: 8px;
	}

	.home-hero {
		min-height: 164px;
		padding: 75px 0 18px;
	}

	.home-hero::before {
		background-position: 69% center;
	}

	.home-hero h1 {
		font-size: 26px;
		line-height: 1.18;
		margin-bottom: 0;
	}

	.home-hero p {
		display: none;
	}

	.quick-actions {
		margin-top: -44px;
	}

	.quick-actions__grid {
		gap: 10px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.quick-card {
		box-shadow: 0 12px 28px rgba(13, 53, 85, 0.09);
		min-height: 78px;
		padding: 12px 16px;
	}

	.quick-card__title--desktop,
	.quick-card__description {
		display: none;
	}

	.quick-card__title--mobile {
		display: block;
		font-size: 16px;
		margin-bottom: 0;
	}

	.quick-card__icon {
		height: 24px;
		margin-bottom: 7px;
		width: 24px;
	}

	.service-status {
		margin-top: 18px;
		min-height: 42px;
		padding: 8px 16px;
	}

	.service-status__message {
		font-size: 15px;
		gap: 14px;
	}

	.service-status__detail,
	.service-status__link {
		display: none;
	}

	.home-content {
		min-height: 425px;
		padding-bottom: 72px;
		padding-top: 23px;
	}

	.home-layout {
		display: block;
	}

	.section-heading {
		font-size: 20px;
		margin-bottom: 12px;
	}

	.section-intro,
	.contact-column {
		display: none;
	}

	.task-list {
		gap: 8px;
	}

	.task-card {
		min-height: 50px;
		padding: 10px 16px;
	}

	.task-card__title {
		font-size: 15px;
	}

	.task-card__description {
		display: none;
	}

	.mobile-contact {
		background: var(--aquagib-panel);
		display: block;
		padding: 28px var(--aquagib-gutter);
	}

	.mobile-contact p {
		font-size: 15px;
		margin: 0;
	}

	.mobile-contact strong {
		color: var(--aquagib-heading);
	}

	.site-footer__inner {
		gap: 20px 24px;
		grid-template-areas: "brand servator" "links links" "address address";
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		justify-items: start;
		padding-bottom: 24px;
		padding-top: 28px;
	}

	.site-footer__servator {
		border-left: 0;
		justify-self: end;
		max-width: 100%;
		padding-left: 0;
		width: 132px;
	}

	.site-footer__address {
		text-align: left;
	}

	.site-footer__links {
		flex-wrap: wrap;
	}
}

@media (max-width: 420px) {
	:root {
		--aquagib-gutter: 18px;
	}

	.site-logo {
		height: 37px;
		width: auto;
	}

	.quick-actions__grid {
		gap: 8px;
	}

	.quick-card {
		min-height: 76px;
		padding: 11px 14px;
	}

	.quick-card__title--mobile {
		font-size: 15px;
	}

	.task-card {
		padding-inline: 16px;
	}
}

@media (max-width: 360px) {
	.home-hero {
		min-height: 198px;
	}

	.home-hero h1 {
		font-size: 24px;
	}

}

/* -----------------------------------------------------------------------------
 * Homepage composition. Keep this separate from the document system below.
 * Heights follow content; mobile retains the introduction and contact routes.
 * Existing motion hooks are preserved for the independently controlled effects.
 * -------------------------------------------------------------------------- */

.home-page {
	--home-display: clamp(2.625rem, 1.65rem + 3.5vw, 4.5rem);
	--home-heading: clamp(1.875rem, 1.5rem + 1.4vw, 2.625rem);
}

.home-page .home-hero {
	min-height: 0;
	padding: 158px 0 112px;
}

.home-page .home-hero::before {
	background-position: center 48%;
}

body.home .home-page .home-hero::after {
	background-image:
		linear-gradient(180deg, rgba(13, 53, 85, 0.45), transparent 48%),
		linear-gradient(100deg, rgba(13, 53, 85, 0.96) 0%, rgba(13, 53, 85, 0.8) 39%, rgba(13, 53, 85, 0.24) 100%);
	background-size: 100% 100%;
}

.home-page .home-eyebrow {
	color: var(--aquagib-blue);
	display: block;
	font-size: var(--aquagib-step--2);
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	margin: 0 0 18px;
	text-transform: uppercase;
}

.home-page .home-hero .home-eyebrow {
	color: var(--aquagib-on-navy-muted);
}

.home-page .home-hero h1 {
	font-size: var(--home-display);
	letter-spacing: -0.045em;
	line-height: 1.04;
	margin: 0 0 24px;
	max-width: 46rem;
}

.home-page .home-hero__intro {
	color: var(--aquagib-on-navy-muted);
	display: block;
	font-size: var(--aquagib-step-0);
	line-height: 1.65;
	max-width: 29rem;
}

.home-page .quick-actions {
	margin-top: -48px;
}

.home-page .quick-actions__grid {
	gap: 16px;
}

.home-page .quick-card {
	box-shadow: 0 8px 24px rgba(13, 53, 85, 0.07);
	justify-content: flex-start;
	min-height: 174px;
	padding: 24px;
}

.home-page .quick-card__icon {
	height: 30px;
	margin-bottom: 22px;
	width: 30px;
}

.home-page .quick-card__arrow {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step-1);
	font-weight: 400;
	line-height: 1;
	position: absolute;
	right: 24px;
	top: 27px;
}

.home-page .quick-card__title {
	font-size: var(--aquagib-step-0);
	letter-spacing: -0.025em;
	margin-bottom: 7px;
}

.home-page .quick-card__description {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--1);
	line-height: 1.5;
}

.home-page .quick-card--priority .quick-card__description,
.home-page .quick-card--priority .quick-card__arrow {
	color: var(--aquagib-on-navy-muted);
}

.home-page .service-status {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--aquagib-hairline);
	border-radius: 0;
	gap: 12px 24px;
	margin-top: 8px;
	padding: 20px 0;
}

.home-page .service-status__message {
	font-size: var(--aquagib-step--1);
}

.home-page .service-status__detail {
	color: var(--aquagib-muted);
	margin-left: 12px;
}

.home-page .service-status__link,
.home-page .home-text-link {
	align-items: center;
	display: inline-flex;
	font-size: var(--aquagib-step--1);
	gap: 16px;
	min-height: 44px;
}

.home-page .home-content {
	min-height: 0;
	padding-block: 64px;
}

.home-page .home-forms {
	background: var(--aquagib-panel);
	border-radius: var(--aquagib-radius-large);
	display: grid;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
}

.home-page .applications-panel {
	align-self: center;
	min-width: 0;
	padding: clamp(28px, 3.8vw, 56px);
}

.home-page h2 {
	font-size: var(--home-heading);
	letter-spacing: -0.035em;
	line-height: 1.12;
	margin-bottom: 22px;
}

.home-page .home-forms__intro {
	font-size: var(--aquagib-step-0);
	line-height: 1.65;
	margin-bottom: 28px;
	max-width: 28rem;
}

.home-page .home-button {
	align-items: center;
	background: var(--aquagib-blue);
	border: 1px solid var(--aquagib-blue);
	border-radius: 6px;
	color: var(--aquagib-white);
	display: inline-flex;
	font-size: var(--aquagib-step--1);
	gap: 24px;
	justify-content: space-between;
	line-height: 1.4;
	min-height: 52px;
	padding: 14px 20px;
	transition: background-color 180ms ease;
}

.home-page .home-button:hover {
	background: var(--aquagib-blue-dark);
	border-color: var(--aquagib-blue-dark);
}

.home-page .home-forms__secondary {
	border-top: 1px solid var(--aquagib-hairline);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--aquagib-step--1);
	gap: 0 24px;
	margin-top: 30px;
	padding-top: 20px;
}

.home-page .home-forms__secondary > span {
	color: var(--aquagib-muted);
	width: 100%;
}

.home-page .home-forms__secondary a {
	align-items: center;
	display: inline-flex;
	min-height: 44px;
	text-decoration: underline;
}

.home-page .contact-visual {
	border-radius: 0;
	height: auto;
	min-height: 100%;
}

.home-page .contact-visual img {
	height: 100%;
	object-position: 46% center;
	position: absolute;
}

.home-page .home-support {
	display: grid;
	gap: 48px;
	grid-template-columns: 0.9fr 1fr;
	padding-bottom: 80px;
}

.home-page .home-support__intro > p:not(.home-eyebrow) {
	font-size: var(--aquagib-step-0);
	margin-bottom: 12px;
	max-width: 25rem;
}

.home-page .home-support__details {
	align-self: center;
	font-size: var(--aquagib-step--1);
	min-width: 0;
}

.home-page .home-support__label {
	color: var(--aquagib-muted);
	display: block;
	font-size: var(--aquagib-step--1);
	margin-bottom: 8px;
}

.home-page .home-support__phone {
	display: grid;
	gap: 0 24px;
	grid-template-columns: 1fr auto;
	padding-bottom: 24px;
}

.home-page .home-support__phone .home-support__label {
	grid-column: 1 / -1;
}

.home-page .home-support__phone > a {
	color: var(--aquagib-heading);
	font-size: var(--aquagib-step-2);
	letter-spacing: -0.025em;
	line-height: 1.4;
}

.home-page .home-support__details p {
	font-variant-numeric: tabular-nums;
	margin: 0;
}

.home-page .home-support__email {
	border-top: 1px solid var(--aquagib-hairline);
	padding-top: 22px;
}

.home-page .home-support__email > a {
	display: inline-block;
	font-size: var(--aquagib-step-0);
	margin-bottom: 14px;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.home-page .home-support__email a,
.home-page .home-support__phone a:hover,
.home-page .home-text-link:hover,
.home-page .service-status__link:hover {
	text-decoration: underline;
}

@media (min-width: 761px) and (max-width: 1020px) {
	.home .site-header__inner {
		gap: 20px;
	}

	.home .site-logo {
		height: auto;
		width: 146px;
	}

	.home .primary-navigation > ul {
		gap: 14px;
	}

	.home .primary-navigation > ul > li > a {
		font-size: var(--aquagib-step--1);
		white-space: nowrap;
	}

	.home-page .quick-actions__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.home-page .quick-card {
		padding: 20px 16px;
	}

	.home-page .home-support__phone {
		grid-template-columns: 1fr;
		row-gap: 8px;
	}
}

@media (max-width: 760px) {
	.home-page .home-hero {
		padding: 116px 0 80px;
	}

	.home-page .home-hero::before {
		background-position: 66% center;
	}

	.home-page .home-hero h1 {
		font-size: clamp(2rem, 10.5vw, 2.625rem);
		margin-bottom: 20px;
	}

	.home-page .home-hero__intro {
		max-width: 24rem;
	}

	.home-page .home-eyebrow {
		margin-bottom: 14px;
	}

	.home-page .quick-actions {
		margin-top: -36px;
	}

	.home-page .quick-actions__grid {
		gap: 12px;
	}

	.home-page .quick-card {
		min-height: 144px;
		padding: 18px 16px;
	}

	.home-page .quick-card__icon {
		height: 26px;
		margin-bottom: 18px;
		width: 26px;
	}

	.home-page .quick-card__arrow {
		right: 16px;
		top: 20px;
	}

	.home-page .quick-card__title {
		font-size: var(--aquagib-step--1);
		margin-bottom: 4px;
	}

	.home-page .quick-card__description {
		display: block;
		font-size: var(--aquagib-step--2);
	}

	.home-page .service-status {
		align-items: flex-start;
		flex-direction: column;
		gap: 0;
		padding: 22px 0 12px;
	}

	.home-page .service-status__detail {
		display: block;
		margin: 4px 0 0;
	}

	.home-page .home-content {
		padding-block: 36px;
	}

	.home-page .home-forms {
		grid-template-columns: 1fr;
	}

	.home-page .applications-panel {
		padding: 28px 24px;
	}

	.home-page .contact-visual {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}

	.home-page .home-support {
		gap: 28px;
		grid-template-columns: 1fr;
		padding-bottom: 48px;
	}

	.home-page .home-support__phone {
		gap: 8px;
		grid-template-columns: 1fr;
	}

	.home-page .home-support__label {
		margin: 0;
	}

	.home-page .home-support__email .home-support__label {
		margin-bottom: 8px;
	}
}

/* -----------------------------------------------------------------------------
 * Document templates
 *
 * Scoped to `.site-main--standard`, which is used by page.php, single.php and
 * index.php only. The homepage keeps its own tuned component sizing, so nothing
 * in this section may be written against a bare element selector.
 * -------------------------------------------------------------------------- */

/*
 * The narrower 66rem document shell is centred on screen. Breadcrumbs,
 * titles, prose and navigation share its left edge; text retains a comfortable
 * 56rem line length while wide blocks use the available document width.
 */
.site-main--standard {
	--aquagib-step-4: clamp(2.125rem, 1.8rem + 1.5vw, 3rem);
	font-size: var(--aquagib-step-0);
	line-height: 1.7;
	max-width: calc(var(--aquagib-measure-wide) + (2 * var(--aquagib-gutter)));
	padding-bottom: 96px;
	padding-top: clamp(32px, 4vw, 56px);
}

.site-main--standard .aquagib-page__header,
.site-main--standard .aquagib-breadcrumbs,
.site-main--standard .aquagib-subnav,
.site-main--standard .aquagib-postnav,
.site-main--standard .aquagib-archive,
.site-main--standard .aquagib-archive__description,
.site-main--standard .aquagib-notice-flag,
.site-main--standard .aquagib-backlink,
.site-main--standard .aquagib-empty,
.site-main--standard .aquagib-pagination,
.site-main--standard .entry-content > * {
	margin-inline: 0;
	max-width: var(--aquagib-measure);
}

/* Tabular content earns the full width; prose does not. */
.site-main--standard .entry-content > .wp-block-table,
.site-main--standard .entry-content > .aquagib-card-grid,
.site-main--standard .entry-content > .wp-block-query,
.site-main--standard .entry-content > .aquagib-figure-row,
.site-main--standard .entry-content > .aquagib-figure-band,
.site-main--standard .entry-content > .alignwide {
	max-width: 100%;
}

.site-main--standard .entry-content > .alignfull {
	max-width: none;
}

/* --- Breadcrumbs --- */

.site-main--standard .aquagib-breadcrumbs {
	font-size: var(--aquagib-step--1);
	margin-bottom: 32px;
	max-width: var(--aquagib-measure);
}

.site-main--standard .aquagib-breadcrumbs a {
	color: var(--aquagib-muted);
	font-weight: 400;
	text-decoration: none;
}

.site-main--standard .aquagib-breadcrumbs a:hover,
.site-main--standard .aquagib-breadcrumbs a:focus-visible {
	color: var(--aquagib-blue);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/*
 * The current crumb is capped to one line. Notice titles run to a dozen words
 * and would otherwise wrap the trail onto three lines directly above an <h1>
 * that already states the title in full.
 */
.site-main--standard .aquagib-breadcrumbs [aria-current="page"] {
	color: var(--aquagib-heading);
	display: inline-block;
	font-weight: 600;
	max-width: min(38ch, 100%);
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: bottom;
	white-space: nowrap;
}

/* --- Masthead --- */

.site-main--standard .aquagib-page__header {
	border-bottom: 0;
	margin-bottom: 28px;
	max-width: var(--aquagib-measure);
	padding-bottom: 0;
}

/*
 * The eyebrow names the section of the site the reader is standing in, which is
 * real orientation on a deeply nested site. It is the only accent in the header.
 */
.aquagib-eyebrow {
	color: var(--aquagib-blue);
	font-size: var(--aquagib-step--1);
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.3;
	margin: 0 0 12px;
	text-transform: uppercase;
}

.site-main--standard .aquagib-page__header h1 {
	font-size: var(--aquagib-step-4);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.08;
	margin: 0;
	text-wrap: balance;
}

.site-main--standard .aquagib-page__meta {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--1);
	font-variant-numeric: tabular-nums;
	margin: 14px 0 0;
}

/* --- Prose --- */

.site-main--standard .entry-content {
	color: var(--aquagib-body);
}

.site-main--standard .entry-content h2,
.site-main--standard .entry-content h3,
.site-main--standard .entry-content h4 {
	color: var(--aquagib-heading);
	scroll-margin-top: 24px;
	text-wrap: balance;
}

.site-main--standard .entry-content h2 {
	font-size: var(--aquagib-step-2);
	font-weight: 700;
	letter-spacing: -0.014em;
	line-height: 1.22;
	margin-bottom: 16px;
	margin-top: 56px;
}

.site-main--standard .entry-content h3 {
	font-size: var(--aquagib-step-1);
	font-weight: 700;
	letter-spacing: -0.008em;
	line-height: 1.3;
	margin-bottom: 12px;
	margin-top: 36px;
}

.site-main--standard .entry-content h4 {
	font-size: var(--aquagib-step-0);
	font-weight: 700;
	line-height: 1.35;
	margin-bottom: 8px;
	margin-top: 28px;
}

.site-main--standard .entry-content > *:first-child {
	margin-top: 0;
}

.site-main--standard .entry-content p,
.site-main--standard .entry-content ul,
.site-main--standard .entry-content ol {
	margin-bottom: 26px;
	text-wrap: pretty;
}

.site-main--standard .entry-content .aquagib-lead {
	color: var(--aquagib-heading);
	font-size: var(--aquagib-step-1);
	font-weight: 400;
	letter-spacing: -0.006em;
	line-height: 1.5;
	margin-bottom: 32px;
}

/*
 * Links in running text are underlined and inherit their weight. Bolding every
 * link speckles the paragraph, and colour alone does not satisfy WCAG 1.4.1.
 */
.site-main--standard .entry-content a:not(.wp-block-button__link),
.site-main--standard .aquagib-empty a {
	color: var(--aquagib-blue);
	font-weight: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.17em;
	transition: color 150ms ease, text-decoration-color 150ms ease;
}

.site-main--standard .entry-content a:not(.wp-block-button__link):hover,
.site-main--standard .entry-content a:not(.wp-block-button__link):focus-visible {
	color: var(--aquagib-blue-dark);
	text-decoration-thickness: 2px;
}

.site-main--standard .entry-content li {
	margin-bottom: 8px;
	padding-left: 4px;
}

.site-main--standard .entry-content li::marker {
	color: var(--aquagib-faint);
}

.site-main--standard .entry-content strong {
	color: var(--aquagib-heading);
	font-weight: 700;
}

.site-main--standard .entry-content blockquote {
	border-left: 3px solid var(--aquagib-blue);
	color: var(--aquagib-heading);
	font-size: var(--aquagib-step-1);
	line-height: 1.5;
	margin: 36px 0;
	padding: 4px 0 4px 24px;
}

.site-main--standard .entry-content hr,
.site-main--standard .entry-content .wp-block-separator {
	background: var(--aquagib-hairline);
	border: 0;
	height: 1px;
	margin: 48px 0;
}

/* Table label. Sits above the data it names, so it needs room beneath it. */
.site-main--standard .entry-content .wp-block-table caption {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--1);
	font-weight: 600;
	letter-spacing: 0;
	padding: 0 0 14px;
	text-transform: none;
}

/* Figures for numbers: tabular so columns of digits line up. */
.site-main--standard .entry-content .wp-block-table table {
	font-size: var(--aquagib-step--1);
	font-variant-numeric: tabular-nums;
}

.site-main--standard .entry-content .wp-block-table th,
.site-main--standard .entry-content .wp-block-table td {
	padding: 13px 16px;
}

.site-main--standard .entry-content .wp-block-table tbody tr:nth-child(even) {
	background: var(--aquagib-panel);
}

.site-main--standard .entry-content .wp-block-button__link {
	font-size: var(--aquagib-step--1);
	letter-spacing: 0.01em;
	padding: 13px 24px;
	text-decoration: none;
}

/* --- Section index (child pages) --- */

.aquagib-subnav {
	border-top: 1px solid var(--aquagib-hairline);
	margin-top: 64px;
	padding-top: 32px;
}

.site-main--standard .aquagib-subnav__heading {
	color: var(--aquagib-heading);
	font-size: var(--aquagib-step-1);
	font-weight: 700;
	letter-spacing: -0.008em;
	margin: 0 0 18px;
}

.aquagib-subnav__list {
	display: grid;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-main--standard .aquagib-subnav__link {
	align-items: center;
	border-bottom: 1px solid var(--aquagib-hairline);
	color: var(--aquagib-heading);
	display: flex;
	font-weight: 600;
	gap: 16px;
	justify-content: space-between;
	min-height: 56px;
	padding: 12px 8px 12px 0;
	text-decoration: none;
	transition: color 160ms ease, padding-left 160ms ease;
}

.site-main--standard .aquagib-subnav__link:hover,
.site-main--standard .aquagib-subnav__link:focus-visible {
	color: var(--aquagib-blue);
	padding-left: 8px;
}

.aquagib-subnav__arrow {
	color: var(--aquagib-blue);
	flex: 0 0 auto;
	transition: transform 160ms ease;
}

.site-main--standard .aquagib-subnav__link:hover .aquagib-subnav__arrow,
.site-main--standard .aquagib-subnav__link:focus-visible .aquagib-subnav__arrow {
	transform: translateX(4px);
}

/* --- Historical notice flag --- */

.aquagib-notice-flag {
	align-items: flex-start;
	background: #fdf6e8;
	border: 1px solid #e8d5a8;
	border-radius: var(--aquagib-radius);
	display: flex;
	gap: 14px;
	margin-bottom: 36px;
	padding: 18px 20px;
}

.aquagib-notice-flag__icon {
	color: #9a6f14;
	flex: 0 0 22px;
	height: 22px;
	margin-top: 2px;
	width: 22px;
}

.aquagib-notice-flag p {
	color: #6f5210;
	font-size: var(--aquagib-step--1);
	line-height: 1.55;
	margin: 0;
}

.aquagib-notice-flag strong {
	color: #4f3a08;
	display: block;
}

/* --- Index of notices and search results --- */

.aquagib-archive {
	display: grid;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.aquagib-archive__item {
	border-bottom: 1px solid var(--aquagib-hairline);
}

/*
 * No rule on the first item: the masthead already closes with one, and two
 * hairlines a few pixels apart read as a mistake.
 */
.aquagib-empty__links {
	border-top: 1px solid var(--aquagib-hairline);
}

.aquagib-archive__article {
	padding: 26px 0;
}

.aquagib-archive__date {
	align-items: center;
	color: var(--aquagib-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--aquagib-step--2);
	font-variant-numeric: tabular-nums;
	gap: 10px;
	letter-spacing: 0.04em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.aquagib-archive__tag {
	background: var(--aquagib-tint-strong);
	border-radius: 999px;
	color: var(--aquagib-navy);
	font-size: var(--aquagib-step--2);
	font-weight: 700;
	letter-spacing: 0.05em;
	padding: 3px 10px;
}

.site-main--standard .aquagib-archive__title {
	font-size: var(--aquagib-step-1);
	font-weight: 700;
	letter-spacing: -0.008em;
	line-height: 1.3;
	margin: 0 0 8px;
	text-wrap: pretty;
}

.site-main--standard .aquagib-archive__title a {
	color: var(--aquagib-heading);
	font-weight: inherit;
	text-decoration: none;
}

.site-main--standard .aquagib-archive__title a:hover,
.site-main--standard .aquagib-archive__title a:focus-visible {
	color: var(--aquagib-blue);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.15em;
}

.aquagib-archive__excerpt {
	color: var(--aquagib-body);
	font-size: var(--aquagib-step--1);
	line-height: 1.6;
	margin: 0;
	text-wrap: pretty;
}

/* --- Pagination --- */

.site-main--standard .aquagib-pagination {
	margin-top: 40px;
}

.site-main--standard .aquagib-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.site-main--standard .aquagib-pagination .page-numbers {
	align-items: center;
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius);
	color: var(--aquagib-heading);
	display: inline-flex;
	font-size: var(--aquagib-step--1);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	justify-content: center;
	min-height: 44px;
	min-width: 44px;
	padding: 0 14px;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.site-main--standard .aquagib-pagination a.page-numbers:hover,
.site-main--standard .aquagib-pagination a.page-numbers:focus-visible {
	background: var(--aquagib-panel);
	border-color: var(--aquagib-blue);
	color: var(--aquagib-blue);
}

.site-main--standard .aquagib-pagination .page-numbers.current {
	background: var(--aquagib-navy);
	border-color: var(--aquagib-navy);
	color: var(--aquagib-white);
}

.site-main--standard .aquagib-pagination .page-numbers.dots {
	border-color: transparent;
	color: var(--aquagib-faint);
}

/* --- Notice navigation and back link --- */

.aquagib-postnav {
	border-top: 1px solid var(--aquagib-hairline);
	display: grid;
	gap: 2px;
	margin-top: 56px;
	padding-top: 20px;
}

.site-main--standard .aquagib-postnav__link {
	border-bottom: 1px solid var(--aquagib-hairline);
	display: grid;
	gap: 4px;
	padding: 16px 0;
	text-decoration: none;
	transition: padding-left 160ms ease;
}

.site-main--standard .aquagib-postnav__link:hover,
.site-main--standard .aquagib-postnav__link:focus-visible {
	padding-left: 8px;
}

.aquagib-postnav__direction {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--2);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.aquagib-postnav__title {
	color: var(--aquagib-heading);
	font-size: var(--aquagib-step--1);
	font-weight: 600;
	line-height: 1.4;
	text-wrap: pretty;
}

.site-main--standard .aquagib-postnav__link:hover .aquagib-postnav__title,
.site-main--standard .aquagib-postnav__link:focus-visible .aquagib-postnav__title {
	color: var(--aquagib-blue);
}

.aquagib-backlink {
	font-size: var(--aquagib-step--1);
	margin-top: 32px;
}

.site-main--standard .aquagib-backlink a {
	align-items: center;
	color: var(--aquagib-blue);
	display: inline-flex;
	gap: 8px;
	font-weight: 600;
	min-height: 44px;
	text-decoration: none;
}

.site-main--standard .aquagib-backlink a:hover,
.site-main--standard .aquagib-backlink a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.aquagib-backlink__arrow {
	transition: transform 160ms ease;
}

.site-main--standard .aquagib-backlink a:hover .aquagib-backlink__arrow {
	transform: translateX(-4px);
}

/* --- Empty and error states --- */

.site-main--standard .aquagib-empty .aquagib-lead {
	color: var(--aquagib-body);
	font-size: var(--aquagib-step-1);
	line-height: 1.5;
	margin-bottom: 32px;
	text-wrap: pretty;
}

@media (max-width: 760px) {
	.site-main--standard {
		padding-bottom: 64px;
	}

	.site-main--standard .aquagib-breadcrumbs {
		margin-bottom: 20px;
	}

	.site-main--standard .aquagib-page__header {
		margin-bottom: 30px;
	}

	.site-main--standard .entry-content h2 {
		margin-top: 42px;
	}

	.aquagib-subnav {
		margin-top: 44px;
	}

	.aquagib-postnav {
		margin-top: 40px;
	}
}

/* --- Imagery -------------------------------------------------------------
 *
 * Images carried over from the original aquagib.gi. Three roles, three
 * treatments, and the distinction is deliberate:
 *
 *   figure  a standalone image that carries information (archive photographs,
 *           the annotated bill). Framed, captioned, given room.
 *   band    a wide decorative strip that separates sections.
 *   media   an image inside a card, cropped to a shared frame so a grid of
 *           cards keeps one baseline no matter what the source aspect ratio is.
 *
 * Everything is scoped to .site-main--standard so the homepage's own
 * component system is untouched.
 */

.site-main--standard .entry-content .wp-block-image {
	margin-block: 32px;
}

.site-main--standard .entry-content .wp-block-image img {
	border-radius: var(--aquagib-radius-large);
	display: block;
	height: auto;
	max-width: 100%;
}

/* A caption is a second voice, not a second heading: quieter, and tied to the
 * image by proximity rather than by a rule or a box. */
.site-main--standard .entry-content .wp-block-image figcaption {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--1);
	line-height: 1.5;
	margin-top: 10px;
	max-width: var(--aquagib-measure);
	text-wrap: pretty;
}

/* Figures that sit side by side. auto-fit keeps a row of two from stretching
 * into a single over-wide image on a narrow screen. */
/* Columns are capped rather than set to 1fr. Stretching two mounted prints
 * across the full width would surround a 206px-wide photograph with 450px of
 * empty mat; capping keeps the mat tight whether the row holds two or four. */
.site-main--standard .entry-content .aquagib-figure-row {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 270px));
	justify-content: start;
	margin-block: 32px;
}

/* Archive photographs arrive at whatever size they were scanned at: 206x324
 * beside 518x187. Cropping them to a common ratio would cut into the record,
 * so each is instead centred whole on a fixed-height mat, the way a print is
 * mounted. Rows then line up and the captions share a baseline. */
.site-main--standard .entry-content .aquagib-figure-row .wp-block-image {
	display: grid;
	grid-template-rows: auto 1fr;
	margin-block: 0;
}

.site-main--standard .entry-content .aquagib-figure-row .wp-block-image img {
	background: var(--aquagib-tint-strong);
	border: 1px solid var(--aquagib-hairline);
	height: clamp(200px, 22vw, 260px);
	object-fit: contain;
	padding: 8px;
	width: 100%;
}

/* The three customer-service photographs are already circular cut-outs on a
 * transparent ground, so they get no frame of their own — a border or radius
 * would trace a square that isn't there. */
.site-main--standard .entry-content .aquagib-figure-row--round {
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
}

.site-main--standard .entry-content .aquagib-figure-row--round img {
	background: none;
	border: 0;
	border-radius: 0;
	height: auto;
	margin-inline: auto;
	max-width: 220px;
	padding: 0;
}

.site-main--standard .entry-content .aquagib-figure-band img {
	aspect-ratio: 16 / 5;
	object-fit: cover;
	width: 100%;
}

/* An illustration that should not run the full measure — sized to sit within
 * the text column rather than interrupt it. */
.site-main--standard .entry-content .aquagib-figure-inset img {
	max-width: 340px;
}

/* Applications and forms starts with one joined guidance component: the
 * customer-services adviser makes the support feel human, while the practical
 * requirements remain easy to scan beside it. */
.site-main--standard .entry-content .aquagib-applications-guide {
	background: var(--aquagib-white);
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius-large);
	display: grid;
	grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1fr);
	margin-block: 40px;
	overflow: hidden;
}

.site-main--standard .entry-content .aquagib-applications-guide__image {
	align-items: center;
	background: var(--aquagib-panel);
	display: flex;
	justify-content: center;
	margin: 0;
	padding: clamp(28px, 5vw, 52px);
}

.site-main--standard .entry-content .aquagib-applications-guide__image img {
	border-radius: 0;
	height: auto;
	max-width: 20rem;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-applications-guide__copy {
	background: var(--aquagib-white);
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: clamp(28px, 5vw, 52px);
}

.site-main--standard .entry-content .aquagib-applications-guide__copy h2 {
	margin-top: 0;
}

.site-main--standard .entry-content .aquagib-applications-guide__copy > :last-child {
	margin-bottom: 0;
}

/* --- Environmental information --- */

/* The page's opening is a real view of Gibraltar rather than a generic banner.
 * The adjacent copy keeps its purpose clear without placing text over the image. */
.site-main--standard .entry-content .aquagib-environment-hero {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	margin-block: 0 64px;
	padding-bottom: clamp(24px, 5vw, 58px);
	position: relative;
}

.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image {
	display: flex;
	flex-direction: column;
	grid-column: 1 / -1;
	grid-row: 1;
	margin: 0;
	overflow: hidden;
	border-radius: var(--aquagib-radius-large);
}

.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image img {
	border-radius: 0;
	height: clamp(23rem, 42vw, 31rem);
	object-fit: cover;
	object-position: center 52%;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image figcaption {
	background: rgba(13, 53, 85, 0.9);
	color: var(--aquagib-on-navy-muted);
	font-size: var(--aquagib-step--2);
	margin: 0;
	max-width: none;
	padding: 9px 16px;
}

.site-main--standard .entry-content .aquagib-environment-hero__copy {
	align-self: end;
	background: var(--aquagib-navy);
	border-radius: var(--aquagib-radius-large);
	box-shadow: var(--aquagib-shadow);
	color: var(--aquagib-white);
	grid-column: 7 / 13;
	grid-row: 1;
	margin: 0 clamp(20px, 4vw, 48px) clamp(-58px, -5vw, -24px) 0;
	padding: clamp(25px, 4vw, 46px);
	position: relative;
	z-index: 1;
}

.site-main--standard .entry-content .aquagib-environment-hero__kicker {
	color: var(--aquagib-on-navy-muted);
	font-size: var(--aquagib-step--1);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0 0 14px;
	text-transform: uppercase;
}

.site-main--standard .entry-content .aquagib-environment-hero__kicker p {
	margin: 0;
}

.site-main--standard .entry-content .aquagib-environment-hero__copy .aquagib-lead {
	font-size: var(--aquagib-step-2);
	line-height: 1.35;
	margin: 0 0 20px;
}

.site-main--standard .entry-content .aquagib-environment-hero__copy .aquagib-lead p {
	color: var(--aquagib-white);
	margin: 0;
}

.site-main--standard .entry-content .aquagib-environment-hero__copy > p {
	color: var(--aquagib-on-navy-muted);
	margin: 0;
}

/* A visual-and-message pair, borrowing the home page's contact visual and
 * navy card. The illustration earns its place as the full visual half. */
.site-main--standard .entry-content .aquagib-environment-principle {
	align-items: center;
	display: grid;
	gap: 16px;
	grid-template-columns: minmax(14rem, 0.78fr) minmax(0, 1fr);
	margin-block: 56px;
	padding: 0;
}


.site-main--standard .entry-content .aquagib-environment-principle__image {
	align-items: center;
	background: var(--aquagib-white);
	border: 1px solid var(--aquagib-hairline);
	border-radius: var(--aquagib-radius-large);
	display: flex;
	margin: 0;
	min-height: 100%;
	overflow: hidden;
	padding: clamp(24px, 4vw, 44px);
	grid-column: 2;
	grid-row: 1;
}

.site-main--standard .entry-content .aquagib-environment-principle__image img {
	border-radius: 0;
	margin-inline: auto;
	max-width: 24rem;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-environment-principle__image > .wp-block-image {
	margin: 0;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-environment-principle__eyebrow {
	color: var(--aquagib-on-navy-muted);
	font-size: var(--aquagib-step--1);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
}

.site-main--standard .entry-content .aquagib-environment-principle__eyebrow p {
	margin: 0;
}

.site-main--standard .entry-content .aquagib-environment-principle__copy {
	align-self: stretch;
	background: var(--aquagib-navy);
	border-radius: var(--aquagib-radius-large);
	box-shadow: var(--aquagib-shadow);
	margin: 0;
	padding: clamp(28px, 5vw, 52px);
	grid-column: 1;
	grid-row: 1;
}

.site-main--standard .entry-content .aquagib-environment-principle__copy h2 {
	color: var(--aquagib-white);
	margin-top: 0;
}

.site-main--standard .entry-content .aquagib-environment-principle__copy p {
	color: var(--aquagib-on-navy-muted);
}

.site-main--standard .entry-content .aquagib-environment-principle__copy > :last-child {
	margin-bottom: 0;
}

.site-main--standard .entry-content .aquagib-environment-resources__intro {
	color: var(--aquagib-muted);
	margin-bottom: 26px;
	max-width: 36rem;
}

.site-main--standard .entry-content .aquagib-environment-resources__intro p {
	margin: 0;
}

.site-main--standard .entry-content .aquagib-environment-resources-section {
	background: var(--aquagib-panel);
	border-radius: var(--aquagib-radius-large);
	margin-top: 56px;
	padding: clamp(28px, 5vw, 52px);
}

.site-main--standard .entry-content .aquagib-environment-resources-section > h2 {
	margin-top: 0;
}

.site-main--standard .entry-content .aquagib-environment-resources {
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-block: 0;
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-service-card {
	background: var(--aquagib-white);
	border: 1px solid var(--aquagib-hairline);
	border-top: 4px solid var(--aquagib-blue);
	box-shadow: var(--aquagib-shadow);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease, background-color 200ms ease;
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-service-card:hover,
.site-main--standard .entry-content .aquagib-environment-resources .aquagib-service-card:focus-within {
	border-color: var(--aquagib-blue);
	box-shadow: 0 18px 42px rgba(13, 53, 85, 0.16);
	transform: translateY(-6px);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis {
	background: var(--aquagib-blue);
	border-color: var(--aquagib-blue);
	color: var(--aquagib-white);
	border-top-color: var(--aquagib-blue);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis:hover,
.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis:focus-within {
	background: var(--aquagib-blue-dark);
	border-color: var(--aquagib-blue-dark);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis h3,
.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis p {
	color: var(--aquagib-white);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis .wp-block-button__link {
	background: var(--aquagib-white);
	color: var(--aquagib-blue-dark);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis .wp-block-button__link:hover,
.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--analysis .wp-block-button__link:focus-visible {
	background: var(--aquagib-tint-strong);
	color: var(--aquagib-blue-dark);
}

.site-main--standard .entry-content .aquagib-environment-resources .aquagib-environment-resource--report {
	border-top-color: var(--aquagib-green);
}

.site-main--standard .entry-content .aquagib-environment-resources .wp-block-buttons {
	margin-top: auto;
	padding-top: 12px;
}

@media (max-width: 760px) {
	.site-main--standard .entry-content .aquagib-environment-hero,
	.site-main--standard .entry-content .aquagib-environment-principle,
	.site-main--standard .entry-content .aquagib-environment-resources,
	.site-main--standard .entry-content .aquagib-applications-guide {
		grid-template-columns: 1fr;
	}

	.site-main--standard .entry-content .aquagib-applications-guide__image {
		padding: 28px;
	}

	.site-main--standard .entry-content .aquagib-applications-guide__image img {
		max-width: 14rem;
	}

	.site-main--standard .entry-content .aquagib-environment-hero {
		padding-bottom: 0;
	}

	.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image,
	.site-main--standard .entry-content .aquagib-environment-hero__copy {
		grid-column: 1;
		grid-row: auto;
	}

	.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image {
		border-radius: var(--aquagib-radius-large) var(--aquagib-radius-large) 0 0;
	}

	.site-main--standard .entry-content .aquagib-environment-hero__copy {
		border-radius: 0 0 var(--aquagib-radius-large) var(--aquagib-radius-large);
		margin: 0;
	}

	.site-main--standard .entry-content .aquagib-environment-hero > .wp-block-image img {
		min-height: 15rem;
	}

	.site-main--standard .entry-content .aquagib-environment-principle__image {
		grid-column: 1;
		grid-row: 1;
		min-height: 0;
	}

	.site-main--standard .entry-content .aquagib-environment-principle__copy {
		grid-column: 1;
		grid-row: 2;
	}

	.site-main--standard .entry-content .aquagib-environment-resources-section {
		margin-top: 44px;
	}
}

/* The cartoon "saving tips" marks are brand artwork, not photographs. They sit
 * small and flush left under their heading rather than spanning the column. */
.site-main--standard .entry-content .aquagib-section-mark {
	margin-block: 4px 20px;
}

/* Sized so the lettering inside the artwork stays readable. Below about 180px
 * the arced "saving tips" text collapses into noise. */
.site-main--standard .entry-content .aquagib-section-mark img {
	border-radius: 0;
	width: clamp(170px, 26vw, 210px);
}

/* --- Card media --- */

.site-main--standard .entry-content .aquagib-card__media {
	margin-block: 0 18px;
}

.site-main--standard .entry-content .aquagib-card__media img {
	aspect-ratio: 16 / 7;
	object-fit: cover;
	width: 100%;
}

/* Service explainers can use the document's wide media span while their
 * accompanying copy stays within the calmer reading measure. */
.site-main--standard .entry-content .wp-block-video video {
	border-radius: var(--aquagib-radius-large);
	display: block;
	height: auto;
	width: 100%;
}

/* Wide source photographs need a deliberate focal point when they become a
 * shallow card band. This keeps the relevant person or payment action in view
 * instead of showing an arbitrary expanse of background. */
.site-main--standard .entry-content .aquagib-card__media--focal-right img {
	object-position: right center;
}

.site-main--standard .entry-content .aquagib-card__media--focal-left img {
	object-position: left center;
	transform: scale(1.22) translateX(12%);
	transform-origin: center;
}

/* Head and shoulders: a taller frame, anchored to the top so a crop never
 * takes the top of anyone's head off. */
.site-main--standard .entry-content .aquagib-card__media--portrait img {
	aspect-ratio: 4 / 5;
	max-width: 190px;
	object-position: top center;
}

/* Certification marks are logos. They are shown whole, never cropped, and keep
 * their own white ground so the mark reads as issued. */
.site-main--standard .entry-content .aquagib-card__media--mark img {
	aspect-ratio: auto;
	background: var(--aquagib-white);
	border-radius: var(--aquagib-radius);
	max-height: 118px;
	object-fit: contain;
	padding: 10px;
	width: auto;
}

/* Cards that carry an image lose their inner top padding: the image becomes the
 * top edge, which reads as one object instead of a picture floating in a box. */
.site-main--standard .entry-content .aquagib-service-card--media {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding-top: 0;
}

/* The Customer Service overview is a service directory. Keep each action on a
 * shared baseline so card descriptions can vary without making the controls
 * jump around from one neighbour to the next. */
.site-main--standard .entry-content .aquagib-customer-service-cards .aquagib-service-card {
	min-height: 100%;
}

.site-main--standard .entry-content .aquagib-customer-service-cards .wp-block-buttons {
	margin-top: auto;
}

.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media {
	margin-inline: calc(-1 * clamp(20px, 3vw, 28px));
	margin-top: 0;
	width: auto;
}

.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media img {
	border-radius: 0;
}

/* Portraits and marks stay inside the card's padding rather than bleeding to
 * its edges — they are objects on a surface, not cover images. */
.site-main--standard .entry-content .aquagib-service-card--media:has(.aquagib-card__media--portrait),
.site-main--standard .entry-content .aquagib-service-card--media:has(.aquagib-card__media--mark) {
	padding-top: clamp(20px, 3vw, 28px);
}

/* Selector depth here deliberately matches the bleed rules above. A shorter
 * selector loses the cascade and the portrait bleeds to the card edge. */
.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media--portrait,
.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media--mark {
	margin-inline: 0;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media--portrait img {
	border-radius: var(--aquagib-radius);
}

.site-main--standard .entry-content .aquagib-service-card--media .aquagib-card__media--mark img {
	border-radius: var(--aquagib-radius);
}

/* --- Shared document components -----------------------------------------
 *
 * These components appear across the public-information pages. They make a
 * service directory, policy, FAQ or notice feel like part of one dependable
 * system, while leaving prose deliberately quiet and easy to read.
 */
.site-main--standard .entry-content > .aquagib-card-grid {
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
	margin-block: 36px;
}

.site-main--standard .entry-content .aquagib-service-card,
.site-main--standard .entry-content .aquagib-news-card {
	background: var(--aquagib-white);
	box-shadow: 0 8px 24px rgba(13, 53, 85, 0.045);
	display: flex;
	flex-direction: column;
	font-size: var(--aquagib-step--1);
	line-height: 1.6;
	min-height: 100%;
	min-width: 0;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.site-main--standard .entry-content .aquagib-service-card:hover,
.site-main--standard .entry-content .aquagib-service-card:focus-within,
.site-main--standard .entry-content .aquagib-news-card:hover,
.site-main--standard .entry-content .aquagib-news-card:focus-within {
	border-color: rgba(14, 107, 168, 0.46);
	box-shadow: var(--aquagib-shadow);
	transform: translateY(-4px);
}

.site-main--standard .entry-content .aquagib-service-card .wp-block-buttons,
.site-main--standard .entry-content .aquagib-news-card .wp-block-buttons {
	margin-top: auto;
	padding-top: 14px;
}

.site-main--standard .entry-content .aquagib-service-card :is(h2, h3),
.site-main--standard .entry-content .aquagib-news-card .wp-block-post-title {
	color: var(--aquagib-heading);
}

.site-main--standard .entry-content .aquagib-panel {
	background: var(--aquagib-panel);
	border-color: var(--aquagib-hairline);
	box-shadow: none;
	padding: clamp(22px, 3vw, 32px);
}

.site-main--standard .entry-content .aquagib-panel--status {
	background: var(--aquagib-panel);
	border-left: 3px solid var(--aquagib-blue);
}

.site-main--standard .entry-content .wp-block-details {
	background: var(--aquagib-white);
	border: 0;
	border-bottom: 1px solid var(--aquagib-hairline);
	border-radius: 0;
	box-shadow: none;
	margin-bottom: 0;
	padding-inline: 0;
	transition: border-color 160ms ease;
}

.site-main--standard .entry-content .wp-block-details:hover,
.site-main--standard .entry-content .wp-block-details:focus-within,
.site-main--standard .entry-content .wp-block-details[open] {
	border-color: var(--aquagib-blue);
	box-shadow: none;
}

.site-main--standard .entry-content .wp-block-details summary {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
	list-style: none;
	padding: 22px 0;
}

.site-main--standard .entry-content .wp-block-details summary::after {
	color: var(--aquagib-blue);
	content: '+';
	font-size: var(--aquagib-step-1);
	font-weight: 400;
	line-height: 1;
}

.site-main--standard .entry-content .wp-block-details[open] summary::after {
	content: '\2212';
}

.site-main--standard .entry-content .wp-block-table {
	border-radius: 0;
	box-shadow: none;
	margin-block: 32px;
	overscroll-behavior-inline: contain;
	padding-bottom: 2px;
	-webkit-overflow-scrolling: touch;
}

.site-main--standard .entry-content .wp-block-table table {
	margin: 0;
}

.site-main--standard .entry-content .wp-block-table th {
	background: var(--aquagib-navy);
}

.site-main--standard .entry-content > .wp-block-image.alignwide,
.site-main--standard .entry-content > .wp-block-video.alignwide {
	margin-block: 40px;
}

.site-main--standard .entry-content > .wp-block-image.alignwide img {
	width: 100%;
}

@media (min-width: 761px) {
	.site-main--standard .aquagib-subnav__list {
		column-gap: 36px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	/* The customer-service timetable needs its full labels on a phone. Each
	 * desktop row becomes a compact, labelled record instead of an unreadably
	 * narrow four-column table. */
	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours {
		overflow: visible;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours caption {
		display: block;
		font-size: var(--aquagib-step--1);
		font-weight: 700;
		letter-spacing: 0;
		line-height: 1.45;
		padding-bottom: 14px;
		text-transform: none;
		width: 100%;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours table,
	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours tbody,
	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours tr,
	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td {
		display: block;
		min-width: 0;
		width: 100%;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours thead {
		border: 0;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours tbody {
		display: grid;
		gap: 14px;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours tr {
		background: var(--aquagib-white);
		border: 1px solid var(--aquagib-hairline);
		padding: 6px 16px;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td {
		border: 0;
		display: grid;
		gap: 12px;
		grid-template-columns: minmax(7.5rem, 0.8fr) minmax(0, 1fr);
		padding: 10px 0;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td + td {
		border-top: 1px solid var(--aquagib-hairline);
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td::before {
		color: var(--aquagib-navy);
		content: 'Service';
		font-size: var(--aquagib-step--2);
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td:nth-child(2)::before {
		content: 'Days';
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td:nth-child(3)::before {
		content: 'Hours';
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td:nth-child(4)::before {
		content: 'Notes';
	}

	.site-main--standard .entry-content .aquagib-figure-row {
		gap: 20px;
	}

	.site-main--standard .entry-content > .aquagib-card-grid {
		gap: 14px;
		margin-block: 28px;
	}

	.site-main--standard .entry-content .aquagib-service-card:hover,
	.site-main--standard .entry-content .aquagib-service-card:focus-within,
	.site-main--standard .entry-content .aquagib-news-card:hover,
	.site-main--standard .entry-content .aquagib-news-card:focus-within {
		transform: none;
	}

	.site-main--standard .entry-content .wp-block-table {
		border-radius: var(--aquagib-radius);
		margin-block: 26px;
	}

	.site-main--standard .entry-content .wp-block-details summary {
		min-height: 58px;
	}
}

/* September document refinement: compact components, generous section rhythm.
 * Keep these scoped; Gutenberg content remains the source of every page. */
.site-main--standard .entry-content :is(.aquagib-panel, .aquagib-service-card, .aquagib-news-card) > :first-child {
	margin-top: 0;
}

.site-main--standard .entry-content :is(.aquagib-panel, .aquagib-service-card, .aquagib-news-card) > :last-child {
	margin-bottom: 0;
}

.site-main--standard .entry-content .aquagib-service-card :is(h2, h3) {
	font-size: var(--aquagib-step-1);
	letter-spacing: -0.025em;
	margin-block: 0 12px;
	text-wrap: pretty;
}

.site-main--standard .entry-content .aquagib-service-card > p {
	margin-block: 0 22px;
}

.site-main--standard .entry-content .aquagib-service-card a {
	overflow-wrap: anywhere;
}

.site-main--standard .entry-content .aquagib-service-card:not(:has(a)):hover {
	border-color: var(--aquagib-hairline);
	box-shadow: 0 8px 24px rgba(13, 53, 85, 0.045);
	transform: none;
}

.site-main--standard .entry-content .aquagib-panel h2 {
	font-size: var(--aquagib-step-1);
	margin-top: 0;
}

.site-main--standard .entry-content .aquagib-panel--status {
	font-size: var(--aquagib-step--1);
	line-height: 1.65;
}

.site-main--standard .entry-content .aquagib-applications-guide__copy {
	background: var(--aquagib-panel);
	box-shadow: none;
}

.site-main--standard .entry-content .aquagib-applications-guide__copy h2 {
	font-size: var(--aquagib-step-2);
}

.site-main--standard .entry-content .aquagib-applications-guide__copy li {
	margin-bottom: 12px;
}

.site-main--standard .entry-content .aquagib-location-guide {
	align-items: center;
	background: var(--aquagib-panel);
	border-radius: var(--aquagib-radius-large);
	display: grid;
	grid-template-columns: 0.8fr 1fr;
	margin-top: 56px;
	overflow: hidden;
}

.site-main--standard .entry-content .aquagib-location-guide > .wp-block-image {
	margin: 0;
}

.site-main--standard .entry-content .aquagib-location-guide img {
	border-radius: 0;
	display: block;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-location-guide figcaption {
	margin: 0;
	padding: 16px 24px;
}

.site-main--standard .entry-content .aquagib-location-guide > .aquagib-panel {
	border: 0;
	margin: 0;
}

/* Original-site context photographs. Hooks belong on native wrapping Groups,
 * never on the stored Image block. Phones get a useful frame, not a tiny strip. */
.site-main--standard .entry-content .aquagib-context-image {
	margin-block: 32px 40px;
}

.site-main--standard .entry-content .aquagib-context-image > .wp-block-image {
	margin: 0;
}

.site-main--standard .entry-content .aquagib-context-image img {
	aspect-ratio: 16 / 5;
	object-fit: cover;
	width: 100%;
}

.site-main--standard .entry-content .aquagib-context-image--corporate img {
	object-position: 65% 80%;
}

.site-main--standard .entry-content .aquagib-context-image--mission img {
	object-position: 50% 60%;
}

.site-main--standard .entry-content .aquagib-context-image--health img {
	object-position: right center;
}

.site-main--standard .entry-content .aquagib-location-guide > .aquagib-context-image {
	margin: 0;
	max-width: 100%;
}

.site-main--standard .entry-content .aquagib-context-image--contact img {
	aspect-ratio: auto;
	border-radius: 0;
}

@media (max-width: 640px) {
	.site-main--standard .entry-content .aquagib-context-image:not(.aquagib-context-image--contact) img {
		aspect-ratio: 4 / 3;
	}

	.site-main--standard .entry-content .aquagib-context-image--corporate img {
		object-position: right center;
	}

	.site-main--standard .entry-content .aquagib-context-image--health img {
		object-position: 75% center;
	}
}

.site-main--standard .entry-content .wp-block-button__link {
	align-items: center;
	border-radius: 6px;
	display: inline-flex;
	justify-content: center;
	line-height: 1.4;
	max-width: 100%;
	min-height: 52px;
	overflow-wrap: anywhere;
	padding: 14px 20px;
}

.site-main--standard .entry-content .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.site-main--standard .entry-content .wp-block-details summary::after {
	flex: 0 0 auto;
}

.site-main--standard .entry-content .wp-block-details[open] summary {
	border-bottom: 0;
	margin-bottom: 0;
}

.site-main--standard .entry-content .wp-block-details > :last-child {
	margin-bottom: 8px;
}

.site-main--standard .entry-content .wp-block-query .wp-block-post-template {
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}

.site-main--standard .entry-content .wp-block-query .wp-block-post {
	padding: 0;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-title {
	font-size: var(--aquagib-step-1);
	margin-block: 0 16px;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-title a {
	color: var(--aquagib-heading);
	font-weight: 700;
	text-decoration: none;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-date {
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--2);
	font-variant-numeric: tabular-nums;
	margin-block: 0 20px;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-excerpt {
	margin-top: 0;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-excerpt__more-link {
	align-items: center;
	display: inline-flex;
	font-weight: 600;
	min-height: 44px;
}

.site-main--standard .entry-content .aquagib-news-card .wp-block-post-excerpt__more-text {
	margin: 0;
}

.site-main--standard .entry-content .wp-block-table {
	display: flex;
	flex-direction: column;
}

.site-main--standard .entry-content .wp-block-table figcaption {
	align-self: flex-start;
	color: var(--aquagib-muted);
	font-size: var(--aquagib-step--1);
	font-weight: 600;
	left: 0;
	line-height: 1.5;
	margin: 0 0 14px;
	max-width: 100%;
	order: -1;
	position: sticky;
	text-align: left;
}

.site-main--standard .entry-content .wp-block-table:focus-visible {
	outline: 3px solid var(--aquagib-blue);
	outline-offset: 4px;
}

.site-main--standard .aquagib-breadcrumbs li {
	min-width: 0;
}

.site-main--standard .entry-content :is(p, li, h2, h3, h4) {
	overflow-wrap: break-word;
}

@media (min-width: 761px) and (max-width: 1020px) {
	body:not(.home) .site-header__inner {
		gap: 20px;
	}

	body:not(.home) .site-logo {
		height: auto;
		width: 146px;
	}

	body:not(.home) .primary-navigation > ul {
		gap: 14px;
	}

	body:not(.home) .primary-navigation > ul > li > a {
		font-size: var(--aquagib-step--1);
		white-space: nowrap;
	}
}

@media (min-width: 761px) {
	.site-main--standard .entry-content .aquagib-contact-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.site-main--standard .entry-content .aquagib-location-guide {
		grid-template-columns: 1fr;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours figcaption {
		color: var(--aquagib-heading);
		font-weight: 700;
		width: 100%;
	}

	.site-main--standard .entry-content .wp-block-table.aquagib-opening-hours td {
		gap: 4px;
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.primary-navigation,
	.menu-toggle__line {
		transition: none !important;
	}

	.primary-navigation,
	.primary-navigation.is-open {
		transform: none;
	}

	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.has-js .reveal,
	.has-js .is-style-aquagib-reveal,
	.has-js .is-style-aquagib-reveal-delay-1,
	.has-js .is-style-aquagib-reveal-delay-2,
	.has-js .is-style-aquagib-reveal-delay-3,
	.has-js .is-style-aquagib-reveal-delay-4 {
		opacity: 1;
		transform: none;
	}
}

/* Long-form landing-page sections use a broader, left-aligned reading width. */
.site-main--standard .entry-content > .aquagib-reading-section {
	max-width: min(56rem, 100%);
	margin-inline: 0;
	margin-block: 56px;
	text-align: left;
}

.site-main--standard .entry-content > .aquagib-reading-section > :first-child {
	margin-top: 0;
}

.site-main--standard .entry-content > .aquagib-reading-section > :last-child {
	margin-bottom: 0;
}

/* Keep application fields within their established input width. */
.site-main--standard .entry-content .aquagib-form {
	--aquagib-measure: min(41rem, 100%);
}

/* Maintain readable text over the homepage photograph. */
body.home .primary-navigation__list > li > a {
	color: var(--aquagib-white);
}

@media (max-width: 1100px) {
	body.home .home-page .home-hero::after {
		background-image:
			linear-gradient(180deg, rgba(13, 53, 85, 0.45), transparent 48%),
			linear-gradient(100deg, rgba(13, 53, 85, 0.96) 0%, rgba(13, 53, 85, 0.88) 39%, rgba(13, 53, 85, 0.62) 100%);
	}
}

/* Mobile submenu disclosures retain separate overview links. */
.primary-navigation .submenu-toggle { display: none; }
@media (max-width: 760px) {
	.primary-navigation .menu-item-has-children > a { padding-right: 3.5rem; }
	.primary-navigation .submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 0;
		right: 0;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid rgba(255, 255, 255, 0.35);
		border-radius: 6px;
		background: transparent;
		color: var(--aquagib-white);
		font: inherit;
		font-size: 1.5rem;
		cursor: pointer;
	}
	.primary-navigation .submenu-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
	.primary-navigation .sub-menu[hidden] { display: none; }
}

/* Compensate for transparent margins in the supplied digital meter photograph. */
body.page-id-722 .site-main--standard .wp-block-image:has(.wp-image-882) {
	display: flow-root;
}
body.page-id-722 .site-main--standard .wp-block-image img.wp-image-882 {
	display: block;
	width: 70%;
	height: auto;
	margin: -11.2% auto -10.3%;
}

body.page-id-722 .site-main--standard .wp-block-image:has(.wp-image-881, .wp-image-882) figcaption {
	text-align: center;
}
