/*
Theme Name: Aqua Advisor
Theme URI: https://example.com/aqua-advisor
Author: Aqua Advisor
Author URI: https://example.com
Description: A responsive block theme for Aqua Advisor pool care and Pool School education.
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aqua-advisor
*/

:root {
	--deep: #03152b;
	--navy: #052143;
	--navy-2: #07305d;
	--teal: #008da5;
	--aqua: #35d8e8;
	--aqua-soft: #a9f7ff;
	--yellow: #ffd228;
	--yellow-hover: #ffe577;
	--white: #ffffff;
	--ink: #10233f;
	--muted: #c7d6e2;
	--line: rgba(80, 220, 238, 0.45);
	--focus: #ffbf47;
	--radius: 1.1rem;
	--button-radius: 0.85rem;
	--shadow: 0 22px 50px rgba(0, 6, 18, 0.34);
	--max: 1320px;
	--anchor-offset: 7.4rem;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--anchor-offset);
}

body {
	background: var(--deep);
	color: var(--white);
	font-family: Arial, Helvetica, sans-serif;
	line-height: 1.5;
	margin: 0;
}

body.admin-bar {
	--anchor-offset: 9.4rem;
}

img {
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	color: var(--aqua-soft);
	text-underline-offset: 0.22em;
}

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

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 4px;
}

.wp-site-blocks {
	background: var(--deep);
	overflow-x: clip;
}

[id] {
	scroll-margin-top: var(--anchor-offset);
}

header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar header.wp-block-template-part {
	top: 32px;
}

.wp-site-blocks > .wp-block-template-part + main,
.wp-site-blocks > header.site-header + main,
.wp-site-blocks > .site-header + main,
.wp-block-template-part > .site-header,
main > .hero:first-child {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

.hero,
.dark-band,
.contact-cta,
.site-header,
.site-footer {
	color: var(--white);
}

.hero h1,
.hero h2,
.hero h3,
.dark-band h1,
.dark-band h2,
.dark-band h3,
.dark-band h4,
.contact-cta h1,
.contact-cta h2,
.contact-cta h3 {
	color: var(--white);
}

.hero p,
.hero li,
.dark-band p,
.dark-band li,
.dark-band blockquote,
.contact-cta p,
.contact-cta li {
	color: #f6fbff;
}

.hero-features > *,
.process-list > *,
.lesson-grid > *,
.service-strip > *,
.resource-grid > *,
.faq-grid > *,
.pool-school-panel > *,
.contact-wrap > * {
	align-self: stretch;
	margin-block-start: 0 !important;
}

.hero-feature > *,
.outline-card > *,
.process-step > *,
.service-card > *,
.resource-content > *,
.takeaway-card > *,
.contact-copy > *,
.quote-card > * {
	margin-block-start: 0;
}

.container,
.header-inner,
.hero-inner,
.site-footer .footer-grid,
.copyright {
	margin-inline: auto;
	width: min(100% - 2rem, var(--max));
}

.skip-link {
	background: var(--yellow);
	border-radius: 0.65rem;
	color: var(--deep);
	font-weight: 800;
	left: 1rem;
	padding: 0.8rem 1rem;
	position: absolute;
	top: 1rem;
	transform: translateY(-160%);
	z-index: 9999;
}

.skip-link:focus {
	transform: translateY(0);
}

.site-header {
	background: rgba(3, 21, 43, 0.98);
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.36);
	position: relative;
	z-index: 1;
}

.header-inner {
	align-items: center;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: auto minmax(0, 1fr) auto;
	min-height: 6.05rem;
}

.brand,
.footer-brand {
	align-items: center;
	color: var(--white);
	display: inline-flex;
	font-weight: 900;
	gap: 0.75rem;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.brand-image {
	flex: 0 0 auto;
	width: clamp(166px, 17vw, 218px);
}

.brand-logo {
	aspect-ratio: 260 / 78;
	background: url("assets/images/aqua-advisor-logo.svg") left center / contain no-repeat;
	display: block;
	width: 100%;
}

.brand-icon {
	background: url("assets/images/aqua-advisor-icon.svg") center / contain no-repeat;
	display: inline-block;
	flex: 0 0 auto;
	height: 52px;
	width: 52px;
}

.brand .wp-block-site-title,
.footer-brand .wp-block-site-title {
	margin: 0;
}

.brand .wp-block-site-title a,
.footer-brand .wp-block-site-title a {
	color: var(--white);
	display: block;
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 0.92;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-nav ul,
.primary-nav .wp-block-navigation__container,
.social-list {
	align-items: center;
	display: flex;
	gap: clamp(0.55rem, 1.45vw, 1.25rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.primary-nav {
	justify-self: center;
	min-width: 0;
}

.primary-nav.wp-block-navigation,
.primary-nav .wp-block-navigation__container {
	flex-wrap: nowrap;
	justify-content: center;
	white-space: nowrap;
}

.primary-nav .wp-block-navigation-item {
	flex: 0 0 auto;
}

.primary-nav a,
.primary-nav .wp-block-navigation-item__content {
	color: var(--white);
	font-size: clamp(0.72rem, 0.8vw, 0.84rem);
	font-weight: 900;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-nav a:hover,
.primary-nav .wp-block-navigation-item__content:hover,
.primary-nav a:focus,
.primary-nav .wp-block-navigation-item__content:focus {
	color: var(--aqua);
}

.header-actions {
	align-items: center;
	display: flex;
	gap: 0.7rem;
	justify-self: end;
	white-space: nowrap;
}

.header-actions .wp-block-buttons,
.header-actions .wp-block-button {
	margin: 0;
}

.phone-pill {
	align-items: center;
	background: rgba(0, 0, 0, 0.36);
	border: 1px solid rgba(78, 226, 242, 0.25);
	border-radius: 999px;
	color: var(--white);
	display: inline-flex;
	font-weight: 800;
	gap: 0.45rem;
	margin: 0;
	min-height: 42px;
	padding: 0.55rem 0.8rem;
	text-decoration: none;
	white-space: nowrap;
}

.phone-pill a {
	color: var(--white);
	text-decoration: none;
}

.phone-pill svg {
	color: var(--aqua);
	height: 18px;
	width: 18px;
}

.button,
.wp-block-button__link,
.aa-contact-form__button {
	align-items: center;
	border: 2px solid transparent;
	border-radius: 0.65rem;
	cursor: pointer;
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 900;
	justify-content: center;
	letter-spacing: 0.03em;
	min-height: 48px;
	padding: 0.9rem 1.35rem;
	text-decoration: none;
	text-transform: uppercase;
}

.button-yellow .wp-block-button__link,
.wp-block-button.button-yellow .wp-block-button__link,
.button-yellow {
	background: var(--yellow);
	border-color: var(--yellow);
	border-radius: var(--button-radius) !important;
	color: #051c35;
}

.site-header .button-yellow .wp-block-button__link {
	background: var(--yellow);
	border: 2px solid var(--yellow);
	border-radius: var(--button-radius) !important;
	box-shadow: none;
	color: #051c35;
	font-size: 0.9rem;
	font-weight: 900;
	letter-spacing: 0.03em;
	min-height: 48px;
	padding: 0.9rem 1.35rem;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.button-yellow .wp-block-button__link:hover,
.wp-block-button.button-yellow .wp-block-button__link:hover,
.button-yellow:hover {
	background: var(--yellow-hover);
	color: #051c35;
}

.site-header .button-yellow .wp-block-button__link:hover,
.site-header .button-yellow .wp-block-button__link:focus {
	background: var(--yellow-hover);
	border-color: var(--yellow-hover);
	color: #051c35;
}

.button-outline .wp-block-button__link,
.wp-block-button.button-outline .wp-block-button__link,
.button-outline {
	background: rgba(0, 0, 0, 0.22);
	border-color: var(--aqua);
	color: var(--white);
}

.button-outline .wp-block-button__link:hover,
.wp-block-button.button-outline .wp-block-button__link:hover,
.button-outline:hover {
	background: var(--aqua);
	color: #061d37;
}

.button-navy,
.button-navy .wp-block-button__link,
.aa-contact-form__button {
	background: var(--deep);
	border-color: var(--deep);
	border-radius: var(--button-radius) !important;
	color: var(--white);
}

.button-navy:hover,
.button-navy .wp-block-button__link:hover,
.aa-contact-form__button:hover {
	background: var(--white);
	color: var(--deep);
}

.button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 1.8rem;
}

.button-full,
.aa-contact-form__button {
	width: 100%;
}

.hero {
	align-items: center;
	display: grid;
	isolation: isolate;
	min-height: 680px;
	overflow: hidden;
	padding: 4.25rem 0 7.75rem;
	position: relative;
}

.hero > .hero-image,
.hero > .hero-overlay,
.hero > .bubble-art,
.hero > .hero-inner {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

.hero::after {
	background: url("assets/images/wave-divider.svg") center bottom / 100% 100% no-repeat;
	bottom: -1px;
	content: "";
	height: 156px;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	z-index: 1;
}

.hero-image {
	background: url("assets/images/hero-pool.jpg") center / cover no-repeat;
	inset: 0;
	position: absolute;
	z-index: -3;
}

.hero-overlay {
	background:
		linear-gradient(90deg, rgba(3, 17, 36, 0.99) 0%, rgba(3, 17, 36, 0.96) 34%, rgba(3, 17, 36, 0.56) 63%, rgba(3, 17, 36, 0.06) 100%),
		linear-gradient(180deg, rgba(3, 17, 36, 0.1) 0%, rgba(3, 17, 36, 0.85) 94%);
	inset: 0;
	position: absolute;
	z-index: -2;
}

.bubble-art {
	background: url("assets/images/bubbles.svg") center / contain no-repeat;
	bottom: 4.25rem;
	height: min(180px, 23vw);
	opacity: 0.9;
	pointer-events: none;
	position: absolute;
	right: 2rem;
	width: min(180px, 23vw);
	z-index: 2;
}

.hero-inner {
	position: relative;
	z-index: 3;
}

.hero-content {
	max-width: 640px;
}

.hero h1 {
	font-size: clamp(3.25rem, 7.8vw, 6.7rem);
	letter-spacing: -0.035em;
	line-height: 0.98;
	margin: 0;
}

.hero h1 mark {
	background: transparent;
	color: var(--aqua);
	display: block;
}

.hero p {
	font-size: clamp(1.08rem, 1.8vw, 1.32rem);
	font-weight: 700;
	max-width: 560px;
}

.hero-features {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 3.5rem 0 0;
	max-width: 860px;
	padding: 0;
}

.hero-feature {
	align-items: center;
	backdrop-filter: blur(3px);
	background: rgba(0, 0, 0, 0.26);
	border: 1px solid rgba(66, 222, 238, 0.34);
	border-radius: 999px;
	display: grid;
	gap: 0.8rem;
	grid-template-columns: 54px 1fr;
	min-height: 76px;
	padding: 0.8rem 0.9rem;
}

.hero-feature h3,
.hero-feature p {
	display: block;
	margin: 0;
}

.hero-feature h3 {
	font-size: 0.84rem;
	text-transform: uppercase;
}

.hero-feature p {
	color: #d6edf7;
	font-size: 0.85rem;
	font-weight: 700;
}

.icon {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	display: inline-block;
	height: 42px;
	width: 42px;
}

.icon-large {
	height: 58px;
	width: 58px;
}

.icon-xl {
	height: 72px;
	width: 72px;
}

.icon-users { background-image: url("assets/images/icons/users.svg"); }
.icon-shield { background-image: url("assets/images/icons/shield-check.svg"); }
.icon-heart { background-image: url("assets/images/icons/hand-heart.svg"); }
.icon-calendar { background-image: url("assets/images/icons/calendar.svg"); }
.icon-flask { background-image: url("assets/images/icons/flask.svg"); }
.icon-clipboard { background-image: url("assets/images/icons/clipboard.svg"); }
.icon-filter { background-image: url("assets/images/icons/filter.svg"); }
.icon-drop { background-image: url("assets/images/icons/drop.svg"); }
.icon-brush { background-image: url("assets/images/icons/brush.svg"); }
.icon-equipment { background-image: url("assets/images/icons/equipment.svg"); }
.icon-waves { background-image: url("assets/images/icons/waves.svg"); }
.icon-wrench { background-image: url("assets/images/icons/wrench.svg"); }
.icon-quote { background-image: url("assets/images/icons/quote.svg"); }

.dark-band {
	background:
		radial-gradient(circle at 12% 12%, rgba(47, 213, 230, 0.11), transparent 30%),
		linear-gradient(180deg, #021a35 0%, #052443 100%);
	padding: clamp(3rem, 6vw, 5.5rem) 0;
	position: relative;
}

.dark-band h2,
.contact-cta h2 {
	font-size: clamp(2rem, 4vw, 3.15rem);
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin: 0;
}

.centered {
	text-align: center;
}

.kicker {
	color: var(--aqua);
	font-size: 0.88rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	margin: 0 0 0.45rem;
	text-transform: uppercase;
}

.section-intro {
	color: #f1faff;
	margin: 0.75rem auto 2.2rem;
	max-width: 760px;
	text-align: center;
}

.process-band {
	padding-top: 2.6rem;
}

.process-band h2,
.essentials-band > .container > h2,
.services-band h2,
.resources-band h2,
.faq-band h2 {
	text-align: center;
}

.process-list {
	display: grid;
	gap: clamp(1rem, 4vw, 4rem);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 2rem auto 0;
	max-width: 900px;
	padding: 0;
	position: relative;
}

.process-list::before {
	border-top: 2px solid rgba(58, 220, 235, 0.55);
	content: "";
	left: 14%;
	position: absolute;
	right: 14%;
	top: 59px;
}

.process-step {
	position: relative;
	text-align: center;
}

.process-step:not(:last-child)::after {
	color: var(--aqua);
	content: ">";
	font-size: 2.2rem;
	position: absolute;
	right: -2.4rem;
	top: 42px;
}

.icon-circle {
	background: rgba(255, 255, 255, 0.06);
	border: 2px solid var(--line);
	border-radius: 999px;
	box-shadow: inset 0 0 35px rgba(59, 218, 233, 0.18);
	display: inline-grid;
	height: 116px;
	margin-inline: auto;
	place-items: center;
	position: relative;
	width: 116px;
}

.number-badge {
	background: var(--white);
	border-radius: 50%;
	color: #08213d;
	display: grid;
	font-weight: 900;
	height: 34px;
	left: calc(50% + 32px);
	place-items: center;
	position: absolute;
	top: -9px;
	width: 34px;
	z-index: 2;
}

.process-list h3 {
	margin: 1rem 0 0.3rem;
	text-transform: uppercase;
}

.process-list p {
	color: #f1faff;
	font-size: 0.95rem;
	margin: 0;
}

.essentials-band {
	padding-top: 2.5rem;
}

.essentials-band > .container > h2 {
	font-size: clamp(1.8rem, 3vw, 2.45rem);
	margin-inline: auto;
	max-width: 860px;
}

.lesson-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
}

.outline-card {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.03));
	border: 1px solid rgba(74, 226, 243, 0.45);
	border-radius: var(--radius);
	box-shadow: inset 0 0 24px rgba(58, 218, 232, 0.08);
	display: flex;
	flex-direction: column;
	padding: 1.45rem;
}

.outline-card h3 {
	font-size: 1rem;
	margin: 0.8rem 0 0.35rem;
	text-transform: uppercase;
}

.outline-card p {
	color: #f1faff;
	margin: 0 0 1.1rem;
}

.outline-card .wp-block-buttons {
	margin-top: auto;
}

.mini-button .wp-block-button__link,
.wp-block-button.mini-button .wp-block-button__link {
	background: var(--aqua);
	border: 0;
	border-radius: 0.45rem;
	color: #04213f;
	font-size: 0.82rem;
	min-height: 36px;
	min-width: 132px;
	padding: 0.55rem 0.95rem;
}

.mini-button .wp-block-button__link:hover,
.wp-block-button.mini-button .wp-block-button__link:hover {
	background: var(--white);
	color: #04213f;
}

.pool-school-panel {
	align-items: center;
	display: grid;
	gap: 1.6rem;
	grid-template-columns: 0.95fr 1fr 0.82fr;
	margin-top: 2rem;
}

.pool-school-image,
.testimonial-image,
.resource-image {
	background-position: center;
	background-size: cover;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	min-height: 250px;
}

.pool-school-image {
	background-image: url("assets/images/pool-school-visit.jpg");
	min-height: 300px;
	position: relative;
}

.pool-school-image::after {
	background: rgba(0, 156, 178, 0.9);
	border: 3px solid var(--white);
	border-radius: 50%;
	bottom: 1rem;
	color: var(--white);
	content: "One-on-one";
	display: grid;
	font-size: 0.78rem;
	font-weight: 900;
	height: 96px;
	place-items: center;
	position: absolute;
	right: 1rem;
	text-align: center;
	text-transform: uppercase;
	width: 96px;
}

.pool-school-panel h2 {
	font-size: clamp(2rem, 3vw, 2.7rem);
	text-align: left;
}

.check-list {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
}

.check-list li {
	margin: 0.55rem 0;
	padding-left: 1.7rem;
	position: relative;
}

.check-list li::before {
	background: url("assets/images/icons/check-circle.svg") center / contain no-repeat;
	content: "";
	height: 18px;
	left: 0;
	position: absolute;
	top: 0.2rem;
	width: 18px;
}

.takeaway-card {
	background: linear-gradient(135deg, rgba(2, 165, 187, 0.95), rgba(2, 79, 114, 0.96));
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 1.45rem;
}

.takeaway-card h3 {
	margin-top: 0;
	text-transform: uppercase;
}

blockquote {
	font-weight: 800;
	margin: 1.25rem 0 0;
}

cite {
	color: #f1faff;
	display: block;
	font-style: normal;
	font-weight: 400;
	margin-top: 0.45rem;
}

.services-band {
	padding-top: 3rem;
}

.services-band h2 span,
.services-band h2 mark {
	background: transparent;
	color: var(--aqua);
}

.service-strip {
	border-bottom: 1px solid rgba(83, 220, 235, 0.32);
	border-top: 1px solid rgba(83, 220, 235, 0.32);
	display: grid;
	gap: 0;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	margin-top: 2rem;
}

.service-strip .service-card {
	border-right: 1px solid rgba(83, 220, 235, 0.32);
	display: flex;
	flex-direction: column;
	padding: 1.5rem 1.2rem;
}

.service-strip .service-card:last-child {
	border-right: 0;
}

.service-strip h3 {
	font-size: 1rem;
	margin: 0.75rem 0 0.35rem;
	text-transform: uppercase;
}

.service-strip p {
	color: #f1faff;
	font-size: 0.96rem;
	margin: 0;
}

.testimonial-band {
	overflow: hidden;
	padding-top: 2.5rem;
}

.splash-art {
	background: url("assets/images/water-splash.svg") center / contain no-repeat;
	bottom: -1.6rem;
	height: min(360px, 34vw);
	opacity: 0.8;
	pointer-events: none;
	position: absolute;
	right: -1.5rem;
	width: min(360px, 34vw);
}

.testimonial-layout {
	align-items: center;
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.1fr 1fr;
}

.quote-block {
	position: relative;
}

.quote-block .icon {
	margin-bottom: 0.5rem;
	opacity: 0.85;
}

.quote-block blockquote {
	font-size: clamp(1.15rem, 2vw, 1.55rem);
	max-width: 760px;
}

.stars {
	color: var(--yellow);
	font-size: 1.5rem;
	letter-spacing: 0.08em;
	margin-bottom: 0;
}

.testimonial-image {
	background-image: url("assets/images/pool-side.jpg");
	min-height: 500px;
	width: 100%;
}

.resources-band {
	padding-top: 2rem;
}

.resource-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 1.8rem;
}

.resource-card {
	background: #f7fbff;
	border-radius: var(--radius);
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
	color: var(--ink);
	display: grid;
	grid-template-columns: 43% 1fr;
	overflow: hidden;
}

.resource-card h3,
.resource-card p {
	color: var(--ink);
}

.resource-card .resource-image {
	border-radius: 0;
	box-shadow: none;
	min-height: 180px;
}

.resource-water { background-image: url("assets/images/guide-water-balance.jpg"); }
.resource-filter { background-image: url("assets/images/guide-filter-care.jpg"); }
.resource-opening { background-image: url("assets/images/guide-opening.jpg"); }

.resource-card .resource-content {
	padding: 1rem;
}

.resource-card h3 {
	line-height: 1.2;
	margin: 0.1rem 0 0.35rem;
}

.resource-card p {
	color: #29465e;
	margin: 0.35rem 0;
}

.resource-card .wp-block-button__link {
	background: transparent;
	border: 0;
	color: #00738d;
	font-size: 0.85rem;
	min-height: auto;
	padding: 0;
}

.resource-type {
	color: #087e95;
	font-size: 0.74rem;
	font-weight: 900;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.resource-card p.resource-type {
	color: #087e95;
}

.faq-band {
	padding-top: 2.2rem;
}

.faq-grid {
	align-items: start;
	background: rgba(0, 0, 0, 0.12);
	border: 1px solid rgba(83, 220, 235, 0.34);
	border-radius: var(--radius);
	display: grid;
	gap: 0.8rem 1.5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 1.4rem auto 0;
	max-width: 1200px;
	padding: 1.05rem;
}

details,
.faq-grid .wp-block-details {
	align-self: start;
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid rgba(83, 220, 235, 0.28);
	border-radius: 0.55rem;
}

summary {
	cursor: pointer;
	font-weight: 900;
	list-style: none;
	min-height: 44px;
	padding: 0.78rem 1rem;
}

summary::-webkit-details-marker {
	display: none;
}

summary::after {
	color: var(--aqua);
	content: "+";
	float: right;
	font-size: 1.25rem;
}

details[open] summary::after {
	content: "-";
}

details p {
	color: #f1faff;
	margin: 0;
	padding: 0 1rem 1rem;
}

.contact-cta {
	background: linear-gradient(180deg, #03203e 0%, #021a35 100%);
	padding: 2.2rem 0 1.4rem;
	position: relative;
}

.contact-wrap {
	align-items: stretch;
	background: linear-gradient(135deg, rgba(0, 145, 163, 0.96), rgba(2, 117, 145, 0.9));
	border: 2px solid rgba(70, 219, 234, 0.52);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	display: grid;
	gap: 1.4rem;
	grid-template-columns: 0.9fr 1.15fr 0.55fr;
	padding: 1.5rem;
}

.contact-copy h2 {
	max-width: 720px;
}

.aa-contact-form {
	align-self: center;
	background: rgba(255, 255, 255, 0.94);
	border-radius: 0.85rem;
	color: var(--ink);
	display: block;
	padding: 1rem;
}

.aa-contact-form p {
	color: var(--ink);
}

.aa-contact-form__status {
	border-radius: 0.55rem;
	font-weight: 800;
	margin: 0 0 0.75rem;
	padding: 0.75rem 0.85rem;
}

.aa-contact-form__status--success {
	background: #e7f8ef;
	color: #116b3d;
}

.aa-contact-form__status--error {
	background: #fff2f2;
	color: #a02323;
}

.aa-contact-form__grid {
	display: grid;
	gap: 0 0.75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.aa-contact-form__field {
	display: grid;
	gap: 0.25rem;
	margin: 0 0 0.75rem;
}

.aa-contact-form__field--wide {
	grid-column: 1 / -1;
}

.aa-contact-form label {
	color: var(--ink);
	font-size: 0.9rem;
	font-weight: 900;
}

.aa-contact-form input,
.aa-contact-form select,
.aa-contact-form textarea {
	background: var(--white);
	border: 2px solid #b7cedd;
	border-radius: 0.55rem;
	color: var(--ink);
	font: inherit;
	min-height: 44px;
	padding: 0.72rem 0.8rem;
	width: 100%;
}

.aa-contact-form textarea {
	resize: vertical;
}

.aa-contact-form--ninja .nf-form-title,
.aa-contact-form--ninja .nf-before-form-content,
.aa-contact-form--ninja .nf-after-form-content,
.aa-contact-form--ninja .nf-form-fields-required,
.aa-contact-form--ninja .nf-error-field-errors {
	display: none;
}

.aa-contact-form--ninja .nf-loading-spinner {
	color: var(--ink);
}

.aa-contact-form--ninja .nf-form-cont,
.aa-contact-form--ninja .nf-form-wrap,
.aa-contact-form--ninja .nf-form-layout,
.aa-contact-form--ninja .nf-form-layout form,
.aa-contact-form--ninja .nf-form-layout form > div {
	margin: 0;
	padding: 0;
}

.aa-contact-form--ninja .nf-form-content {
	display: grid;
	gap: 0 0.75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0;
}

.aa-contact-form--ninja .nf-field-container {
	clear: none;
	float: none;
	margin: 0 0 0.75rem;
	width: auto;
}

.aa-contact-form--ninja .aqua-wide,
.aa-contact-form--ninja .textarea-container,
.aa-contact-form--ninja .submit-container {
	grid-column: 1 / -1;
}

.aa-contact-form--ninja .nf-field-label {
	margin: 0 0 0.25rem;
}

.aa-contact-form--ninja .nf-field-label label,
.aa-contact-form--ninja .nf-field-label .nf-label-span {
	color: var(--ink);
	font-size: 0.9rem;
	font-weight: 900;
}

.aa-contact-form--ninja .ninja-forms-req-symbol {
	color: #a02323;
}

.aa-contact-form--ninja .nf-field-element input:not([type="button"]):not([type="submit"]),
.aa-contact-form--ninja .nf-field-element select,
.aa-contact-form--ninja .nf-field-element textarea {
	background: var(--white);
	border: 2px solid #b7cedd;
	border-radius: 0.55rem;
	color: var(--ink);
	font: inherit;
	min-height: 44px;
	padding: 0.72rem 0.8rem;
	width: 100%;
}

.aa-contact-form--ninja .nf-field-element textarea {
	min-height: 120px;
	resize: vertical;
}

.aa-contact-form--ninja .nf-error .nf-field-element input,
.aa-contact-form--ninja .nf-error .nf-field-element select,
.aa-contact-form--ninja .nf-error .nf-field-element textarea {
	border-color: #a02323;
}

.aa-contact-form--ninja .nf-error-msg,
.aa-contact-form--ninja .nf-response-msg {
	color: #a02323;
	font-size: 0.86rem;
	font-weight: 800;
	margin: 0.25rem 0 0;
}

.aa-contact-form--ninja .nf-response-msg:not(:empty) {
	background: #e7f8ef;
	border-radius: 0.55rem;
	color: #116b3d;
	margin: 0 0 0.75rem;
	padding: 0.75rem 0.85rem;
}

.aa-contact-form--ninja .submit-container {
	margin-bottom: 0;
}

.aa-contact-form--ninja .nf-field-element input[type="button"],
.aa-contact-form--ninja .nf-field-element input[type="submit"],
.aa-contact-form--ninja .nf-field-element button {
	background: var(--orange);
	border: 0;
	border-radius: var(--button-radius);
	box-shadow: 0 10px 20px rgba(245, 117, 33, 0.28);
	color: var(--white);
	cursor: pointer;
	font: inherit;
	font-weight: 900;
	min-height: 44px;
	padding: 0.78rem 1.2rem;
	text-align: center;
	width: auto;
}

.aa-contact-form--ninja .nf-field-element input[type="button"]:hover,
.aa-contact-form--ninja .nf-field-element input[type="submit"]:hover,
.aa-contact-form--ninja .nf-field-element button:hover {
	background: #db5d17;
}

.quote-card {
	align-content: center;
	background: var(--yellow);
	border-radius: 1rem;
	color: #061f39;
	display: grid;
	font-weight: 900;
	gap: 0.8rem;
	margin-left: -1.4rem;
	min-height: 100%;
	padding: 1rem 1rem 1rem 2.4rem;
	place-items: center;
	position: relative;
	text-align: center;
}

.quote-card p {
	color: #061f39;
}

.quote-card .icon {
	filter: brightness(0) saturate(100%) invert(16%) sepia(32%) saturate(1560%) hue-rotate(172deg) brightness(90%) contrast(102%);
	height: 68px;
	width: 68px;
}

.site-footer {
	background: #021933;
	color: var(--white);
	overflow: hidden;
	padding: 4.2rem 0 1.2rem;
	position: relative;
}

.site-footer::before {
	background: url("assets/images/footer-curve.svg") top center / 100% 100% no-repeat;
	content: "";
	height: 120px;
	inset: 0 0 auto;
	opacity: 0.85;
	position: absolute;
}

.footer-grid {
	align-items: start;
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.2fr 1fr 0.8fr;
	position: relative;
}

.footer-brand {
	margin-bottom: 0.8rem;
}

.footer-contact .aa-contact-detail {
	align-items: center;
	display: flex;
	gap: 0.55rem;
	margin: 0 0 0.45rem;
}

.footer-contact .aa-contact-detail svg {
	color: var(--aqua);
	flex: 0 0 auto;
	height: 18px;
	width: 18px;
}

.site-footer a {
	color: var(--white);
}

.footer-heading {
	font-weight: 900;
	margin-top: 0;
	text-transform: uppercase;
}

.social-list {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.35rem;
}

.copyright {
	color: #bed3df;
	font-size: 0.9rem;
	margin-top: 2rem;
	position: relative;
	text-align: center;
}

.page-main {
	background: var(--white);
	color: var(--ink);
	padding: clamp(3rem, 7vw, 6rem) 1rem;
}

.page-main > * {
	margin-inline: auto;
	max-width: 860px;
}

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

@media (max-width: 1120px) {
	.header-inner {
		gap: 0.8rem;
	}

	.header-actions .phone-pill {
		display: none;
	}

	.hero {
		min-height: 620px;
	}

	.hero-features,
	.lesson-grid,
	.service-strip,
	.resource-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.service-strip .service-card:nth-child(2n) {
		border-right: 0;
	}

	.pool-school-panel,
	.contact-wrap {
		grid-template-columns: 1fr 1fr;
	}

	.takeaway-card,
	.quote-card {
		grid-column: 1 / -1;
	}

	.quote-card {
		clip-path: none;
		margin-left: 0;
		padding: 1rem;
	}
}

@media (max-width: 782px) {
	.admin-bar header.wp-block-template-part {
		top: 46px;
	}
}

@media (max-width: 760px) {
	.container,
	.header-inner,
	.hero-inner,
	.site-footer .footer-grid,
	.copyright {
		width: min(100% - 1rem, var(--max));
	}

	.header-actions {
		flex-wrap: wrap;
		justify-content: space-between;
		width: auto;
	}

	.phone-pill,
	.header-actions .wp-block-button {
		flex: 1 1 auto;
	}

	.primary-nav .wp-block-navigation__responsive-container-open {
		color: var(--white);
	}

	.primary-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--deep);
		color: var(--white);
		padding: 1rem;
	}

	.hero {
		padding-top: 3.5rem;
	}

	.hero-overlay {
		background: linear-gradient(180deg, rgba(3, 17, 36, 0.88), rgba(3, 17, 36, 0.94));
	}

	.hero-features,
	.process-list,
	.lesson-grid,
	.pool-school-panel,
	.service-strip,
	.testimonial-layout,
	.resource-grid,
	.faq-grid,
	.contact-wrap,
	.aa-contact-form__grid,
	.aa-contact-form--ninja .nf-form-content,
	.footer-grid {
		grid-template-columns: 1fr;
	}

	.process-list::before,
	.process-step::after {
		display: none;
	}

	.service-strip .service-card {
		border-bottom: 1px solid rgba(83, 220, 235, 0.32);
		border-right: 0;
	}

	.service-strip .service-card:last-child {
		border-bottom: 0;
	}

	.resource-card {
		grid-template-columns: 1fr;
	}

	.button-row .wp-block-button,
	.button-row .wp-block-button__link {
		width: 100%;
	}

	.aa-contact-form__field--wide {
		grid-column: auto;
	}

	.aa-contact-form--ninja .aqua-wide,
	.aa-contact-form--ninja .textarea-container,
	.aa-contact-form--ninja .submit-container {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
