:root {
	--bg: #f6f7f4;
	--g: #2e9e3e;
	--g2: #4cc05a;
	--y: #f5b921;
	--y2: #ffd45c;
	--b: #2a58a8;
	--b2: #4a7bd0;
	--ink: #1f2a24;
	--mut: #5d6a62;
	--sh:
		12px 12px 28px rgba(90, 110, 80, 0.22), -10px -10px 24px rgba(255, 255, 255, 0.95),
		inset 6px 6px 12px rgba(255, 255, 255, 0.7), inset -6px -6px 14px rgba(120, 140, 100, 0.12);
	--shp:
		6px 6px 14px rgba(90, 110, 80, 0.25), -5px -5px 12px rgba(255, 255, 255, 0.9),
		inset 4px 4px 8px rgba(120, 140, 100, 0.18), inset -4px -4px 8px rgba(255, 255, 255, 0.8);
}
* {
	box-sizing: border-box;
	margin: 0;
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: Georgia, "Times New Roman", serif;
	background: var(--bg);
	color: var(--ink);
	line-height: 1.7;
	overflow-x: hidden;
}
a {
	color: inherit;
}
h1,
h2,
h3 {
	line-height: 1.15;
	letter-spacing: -0.01em;
}
h1 {
	font-size: clamp(2.3rem, 6vw, 4.6rem);
}
h2 {
	font-size: clamp(1.7rem, 3.5vw, 2.6rem);
	margin-bottom: 0.6em;
}
h3 {
	font-size: 1.25rem;
	margin-bottom: 0.3em;
}
p {
	max-width: 62ch;
}
.wrap {
	width: min(1120px, 92%);
	margin: auto;
}
section {
	padding: 72px 0;
}
.clay {
	background: var(--bg);
	border-radius: 34px;
	box-shadow: var(--sh);
	padding: 28px;
}
.clay.g {
	background: linear-gradient(145deg, var(--g2), var(--g));
	color: #fff;
}
.clay.y {
	background: linear-gradient(145deg, var(--y2), var(--y));
}
.clay.b {
	background: linear-gradient(145deg, var(--b2), var(--b));
	color: #fff;
}
.btn {
	display: inline-block;
	text-decoration: none;
	font: inherit;
	font-weight: bold;
	border: 0;
	cursor: pointer;
	padding: 14px 30px;
	border-radius: 999px;
	color: #fff;
	background: linear-gradient(145deg, var(--g2), var(--g));
	box-shadow: var(--sh);
	transition:
		transform 0.25s,
		box-shadow 0.25s;
}
.btn:hover {
	transform: translateY(-3px) scale(1.03);
}
.btn:active {
	box-shadow: var(--shp);
	transform: scale(0.98);
}
.btn.y {
	background: linear-gradient(145deg, var(--y2), var(--y));
	color: var(--ink);
}
.btn.b {
	background: linear-gradient(145deg, var(--b2), var(--b));
}
:focus-visible {
	outline: 3px solid var(--b);
	outline-offset: 3px;
}
header {
	position: sticky;
	top: 12px;
	z-index: 50;
	margin: 12px auto 0;
	width: min(1120px, 94%);
}
nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 18px 12px 24px;
	border-radius: 999px;
}
.logo {
	font-weight: bold;
	font-size: 1.4rem;
	text-decoration: none;
	color: var(--b);
	letter-spacing: 0.04em;
}
.logo i {
	font-style: normal;
	color: var(--g);
}
.logo small {
	display: block;
	font-size: 0.6rem;
	letter-spacing: 0.3em;
	color: var(--mut);
	line-height: 1;
}
nav ul {
	display: flex;
	gap: 6px;
	list-style: none;
	padding: 0;
}
nav ul a {
	display: block;
	text-decoration: none;
	padding: 9px 18px;
	border-radius: 999px;
	transition: 0.25s;
}
nav ul a:hover {
	box-shadow: var(--shp);
}
nav ul a[aria-current] {
	box-shadow: var(--shp);
	color: var(--g);
	font-weight: bold;
}
#mb {
	display: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 0;
	background: var(--bg);
	box-shadow: var(--shp);
	font-size: 1.3rem;
	cursor: pointer;
}
@media (max-width: 800px) {
	#mb {
		display: block;
	}
	nav ul {
		display: none;
		position: absolute;
		top: 76px;
		left: 0;
		right: 0;
		flex-direction: column;
		padding: 16px;
		border-radius: 30px;
		background: var(--bg);
		box-shadow: var(--sh);
	}
	nav ul.open {
		display: flex;
	}
}
footer {
	margin-top: 40px;
	padding: 48px 0 28px;
	background: linear-gradient(160deg, var(--g), #1f7a2e);
	color: #fff;
	border-radius: 60px 60px 0 0;
}
footer .wrap {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 28px;
}
footer a {
	color: var(--y2);
}
footer small {
	grid-column: 1/-1;
	opacity: 0.8;
	text-align: center;
}
.grid {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.chip {
	display: inline-block;
	padding: 8px 18px;
	margin: 6px 6px 0 0;
	border-radius: 999px;
	box-shadow: var(--shp);
	background: var(--bg);
}
.rv {
	opacity: 0;
	transform: translateY(34px) scale(0.96);
	transition:
		opacity 0.8s,
		transform 0.8s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}
.rv.in {
	opacity: 1;
	transform: none;
}
.blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(2px);
	opacity: 0.55;
	animation: morph 14s ease-in-out infinite;
	z-index: -1;
}
@keyframes morph {
	50% {
		border-radius: 40% 60% 55% 45%;
		transform: translate(24px, -30px) rotate(40deg);
	}
}
@keyframes bob {
	50% {
		transform: translateY(-14px);
	}
}
@keyframes grow {
	from {
		transform: scaleY(0);
	}
	to {
		transform: scaleY(1);
	}
}
@keyframes pop {
	from {
		transform: scale(0) rotate(-30deg);
	}
	to {
		transform: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	* {
		animation: none !important;
		transition: none !important;
	}
	.rv {
		opacity: 1;
		transform: none;
	}
}
/* index */
.hero {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: 40px;
	align-items: center;
	min-height: 78vh;
	position: relative;
}
.hero h1 span {
	color: var(--g);
}
.hero p {
	margin: 20px 0 28px;
	font-size: 1.15rem;
}
.pots {
	display: flex;
	gap: 22px;
	align-items: flex-end;
	justify-content: center;
	height: 360px;
}
.pot {
	position: relative;
	display: flex;
	flex-direction: column-reverse;
	align-items: center;
	width: 96px;
}
.pot .soil {
	width: 100%;
	height: 46px;
	border-radius: 30px 30px 36px 36px;
	background: linear-gradient(145deg, #8a5a3c, #5e3b25);
	box-shadow: var(--sh);
}
.coin {
	width: 112px;
	height: 20px;
	border-radius: 12px;
	margin-bottom: -4px;
	background: linear-gradient(145deg, var(--y2), var(--y));
	box-shadow:
		3px 4px 8px rgba(120, 90, 0, 0.3),
		inset 2px 2px 4px rgba(255, 255, 255, 0.7);
	animation: pop 0.6s backwards;
}
.stem {
	width: 12px;
	border-radius: 8px;
	background: linear-gradient(90deg, var(--g2), var(--g));
	transform-origin: bottom;
	animation: grow 1.6s 0.9s backwards cubic-bezier(0.2, 0.9, 0.3, 1.1);
	margin-bottom: -2px;
	position: relative;
}
.stem::before,
.stem::after {
	content: "";
	position: absolute;
	top: 8px;
	width: 46px;
	height: 26px;
	background: linear-gradient(145deg, var(--g2), var(--g));
	border-radius: 0 90% 0 90%;
	box-shadow: var(--shp);
}
.stem::before {
	left: 8px;
}
.stem::after {
	right: 8px;
	transform: scaleX(-1);
}
.pot:nth-child(2) .stem {
	height: 190px;
}
.pot:nth-child(1) .stem {
	height: 120px;
}
.pot:nth-child(3) .stem {
	height: 150px;
}
.pot:nth-child(odd) {
	animation: bob 5s ease-in-out infinite;
}
.stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 24px;
	text-align: center;
}
.stats b {
	display: block;
	font-size: 2.6rem;
}
.marq {
	overflow: hidden;
	padding: 18px 0;
}
.marq div {
	display: flex;
	gap: 18px;
	width: max-content;
	animation: mq 40s linear infinite;
}
.marq:hover div {
	animation-play-state: paused;
}
@keyframes mq {
	to {
		transform: translateX(-50%);
	}
}
@media (max-width: 800px) {
	.hero {
		grid-template-columns: 1fr;
	}
	.pots {
		height: 300px;
	}
}
/* about */
.ab {
	position: relative;
	padding-top: 60px;
}
.slab {
	perspective: 900px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
}
.tilt {
	transition: transform 0.15s;
	transform-style: preserve-3d;
}
.tilt h2 {
	color: inherit;
}
.pebbles {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	justify-content: center;
}
.peb {
	width: 150px;
	height: 150px;
	border-radius: 46% 54% 50% 50%/55% 45% 55% 45%;
	display: grid;
	place-items: center;
	text-align: center;
	font-weight: bold;
	box-shadow: var(--sh);
	animation: bob 6s ease-in-out infinite;
	transition: transform 0.3s;
}
.peb:hover {
	transform: scale(1.15) rotate(8deg);
}
.peb:nth-child(2n) {
	animation-delay: -2s;
	border-radius: 55% 45% 45% 55%/45% 55% 45% 55%;
}
.peb:nth-child(3n) {
	animation-delay: -4s;
}
.serve {
	columns: 2;
	gap: 30px;
}
@media (max-width: 700px) {
	.slab {
		grid-template-columns: 1fr;
	}
	.serve {
		columns: 1;
	}
}
/* services */
.seg {
	display: inline-flex;
	padding: 8px;
	border-radius: 999px;
	box-shadow: var(--shp);
	margin-bottom: 34px;
}
.seg button {
	font: inherit;
	font-weight: bold;
	border: 0;
	background: none;
	padding: 12px 34px;
	border-radius: 999px;
	cursor: pointer;
	color: var(--mut);
	transition: 0.3s;
}
.seg button[aria-selected="true"] {
	background: linear-gradient(145deg, var(--y2), var(--y));
	color: var(--ink);
	box-shadow: var(--sh);
}
.pane[hidden] {
	display: none;
}
details.clay {
	padding: 0;
	margin-bottom: 20px;
	overflow: hidden;
}
details summary {
	cursor: pointer;
	padding: 22px 28px;
	font-weight: bold;
	font-size: 1.15rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
}
details summary::after {
	content: "+";
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	box-shadow: var(--shp);
	transition: transform 0.35s;
}
details[open] summary::after {
	transform: rotate(135deg);
	color: var(--g);
}
details div {
	padding: 0 28px 24px;
	animation: pop 0.4s;
}
.calc {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	align-items: center;
}
input[type="range"] {
	width: 100%;
	accent-color: var(--g);
}
.out {
	font-size: 2.4rem;
	font-weight: bold;
	color: var(--b);
}
@media (max-width: 700px) {
	.calc {
		grid-template-columns: 1fr;
	}
}
/* membership */
.path {
	position: relative;
	padding-left: 70px;
	margin: 40px 0;
}
.path::before {
	content: "";
	position: absolute;
	left: 24px;
	top: 0;
	bottom: 0;
	width: 12px;
	border-radius: 8px;
	box-shadow: var(--shp);
}
.vine {
	position: absolute;
	left: 26px;
	top: 0;
	width: 8px;
	height: 0;
	border-radius: 8px;
	background: linear-gradient(var(--g2), var(--g));
	transition: height 0.2s;
}
.step {
	position: relative;
	margin-bottom: 34px;
}
.step::before {
	content: attr(data-n);
	position: absolute;
	left: -70px;
	top: 12px;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-weight: bold;
	color: #fff;
	background: linear-gradient(145deg, var(--y2), var(--y));
	box-shadow: var(--sh);
	color: var(--ink);
}
.fees {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 22px;
	text-align: center;
}
.fees b {
	display: block;
	font-size: 2.2rem;
	color: var(--b);
}
.note {
	font-size: 0.9rem;
	color: var(--mut);
	margin-top: 14px;
}
/* contact */
.ct {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 34px;
	align-items: start;
}
.ct .info > div {
	margin-bottom: 22px;
	display: flex;
	gap: 16px;
	align-items: center;
}
.ico {
	flex: none;
	width: 58px;
	height: 58px;
	border-radius: 20px;
	display: grid;
	place-items: center;
	font-size: 1.5rem;
	box-shadow: var(--sh);
	animation: bob 5s ease-in-out infinite;
}
label {
	display: block;
	font-weight: bold;
	margin: 14px 0 6px;
}
input,
select,
textarea {
	width: 100%;
	font: inherit;
	padding: 14px 20px;
	border: 0;
	border-radius: 22px;
	background: var(--bg);
	box-shadow:
		inset 5px 5px 10px rgba(120, 140, 100, 0.22),
		inset -5px -5px 10px rgba(255, 255, 255, 0.95);
	color: var(--ink);
}
blockquote {
	font-size: 1.5rem;
	font-style: italic;
	text-align: center;
	margin: auto;
	max-width: 30ch;
}
@media (max-width: 800px) {
	.ct {
		grid-template-columns: 1fr;
	}
}
/* v2 */
header {
	top: 0;
	width: 100%;
	margin: 0;
}
nav {
	position: relative;
	width: 100%;
	border-radius: 0 0 36px 36px;
	padding: 14px 5%;
}
body {
	background: var(--bg)
		radial-gradient(circle at 1px 1px, rgba(46, 158, 62, 0.08) 2px, transparent 0) 0 0/38px 38px;
}
.himg {
	width: 100%;
	max-width: 560px;
	justify-self: center;
	animation: bob 7s ease-in-out infinite;
	filter: drop-shadow(0 20px 24px rgba(60, 90, 50, 0.25));
}
.pots {
	display: none;
}
.hero {
	position: relative;
}
.hero::before {
	content: "";
	position: absolute;
	inset: -40px -10vw auto auto;
	width: min(60vw, 640px);
	height: min(60vw, 640px);
	border-radius: 50%;
	background: radial-gradient(circle, var(--y2), transparent 70%);
	opacity: 0.5;
	z-index: -1;
}
.pbanner {
	background-size: cover;
	background-position: center bottom;
	min-height: 300px;
	display: flex;
	align-items: center;
	padding: 40px 0 80px;
	color: #fff;
}
.pbanner h1 {
	max-width: 16ch;
	text-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
	animation: pop 0.8s backwards;
}
.pbanner[style*="services"] {
	color: var(--ink);
}
.pbanner[style*="services"] h1 {
	text-shadow: none;
}
.split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	align-items: center;
}
.fimg {
	width: 100%;
	max-width: 480px;
	justify-self: center;
	animation: bob 8s ease-in-out infinite;
	filter: drop-shadow(0 18px 20px rgba(60, 90, 50, 0.25));
}
.tick {
	list-style: none;
	padding: 0;
	margin-top: 16px;
}
.tick li {
	padding: 10px 20px 10px 54px;
	margin-bottom: 12px;
	border-radius: 999px;
	box-shadow: var(--shp);
	position: relative;
}
.tick li::before {
	content: "✓";
	position: absolute;
	left: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	color: #fff;
	background: linear-gradient(145deg, var(--g2), var(--g));
	box-shadow: var(--sh);
}
.bi {
	width: 64px;
	height: 64px;
	border-radius: 22px;
	display: grid;
	place-items: center;
	font-size: 1.8rem;
	background: var(--bg);
	box-shadow: var(--shp);
	margin-bottom: 14px;
}
.quote {
	background:
		linear-gradient(rgba(42, 88, 168, 0.88), rgba(46, 158, 62, 0.88)),
		url(img/skyline.svg) bottom/cover;
	background-attachment: fixed;
	color: #fff;
	text-align: center;
	margin: 40px 0;
	padding: 90px 0;
	border-radius: 60px;
}
.quote blockquote {
	margin-bottom: 28px;
	max-width: 26ch;
	font-size: clamp(1.5rem, 3.5vw, 2.4rem);
}
footer {
	position: relative;
	margin-top: 100px;
	padding: 90px 0 0;
	border-radius: 0;
	background:
		url(img/skyline.svg) bottom/100% auto no-repeat,
		radial-gradient(circle at 15% 20%, rgba(255, 212, 92, 0.35), transparent 40%),
		linear-gradient(160deg, #2e9e3e, #1b6f2b 55%, #2a58a8);
}
footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -1px;
	height: 70px;
	background: var(--bg);
	border-radius: 0 0 50% 50%/0 0 100% 100%;
}
.fwrap {
	width: min(1120px, 92%);
	margin: auto;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.2fr 1.3fr;
	gap: 34px;
	padding-bottom: 190px;
	position: relative;
}
.fwrap h3 {
	color: var(--y2);
}
.fcol a {
	display: block;
	text-decoration: none;
	color: #fff;
	padding: 3px 0;
	transition: 0.2s;
}
.fcol a:hover {
	color: var(--y2);
	transform: translateX(6px);
}
.fcol a.btn {
	color: var(--ink);
	display: inline-block;
}
.fwrap small {
	grid-column: 1/-1;
	position: absolute;
	bottom: 20px;
	left: 0;
	right: 0;
	text-align: center;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}
@media (max-width: 800px) {
	.split {
		grid-template-columns: 1fr;
	}
	.fwrap {
		grid-template-columns: 1fr 1fr;
		padding-bottom: 150px;
	}
	.quote {
		background-attachment: scroll;
		border-radius: 34px;
	}
}
/* v3: fonts, green nav, icons */
:root {
	--head: "Fraunces", Georgia, serif;
	--ui: "Outfit", system-ui, sans-serif;
}
h1,
h2,
h3,
blockquote {
	font-family: var(--head);
	font-weight: 800;
	letter-spacing: -0.02em;
}
h1 {
	font-weight: 800;
}
.logo,
.btn,
nav ul a,
summary,
.chip,
.stats b,
.fees b,
.out,
label,
.seg button,
.peb,
.tick li,
.fcol a,
.note {
	font-family: var(--ui);
}
.stats b,
.fees b,
.out {
	font-family: var(--head);
}
.btn {
	letter-spacing: 0.02em;
	font-weight: 600;
}
header nav {
	background: linear-gradient(135deg, #34ad45, #1f7a2e);
	color: #fff;
	box-shadow: 0 12px 30px rgba(31, 122, 46, 0.4);
}
header .logo {
	color: #fff;
}
header .logo i {
	color: var(--y2);
}
header .logo small {
	color: #d9f2d6;
}
header nav ul a {
	color: #fff;
	font-weight: 500;
}
header nav ul a:hover {
	background: rgba(255, 255, 255, 0.18);
	box-shadow: none;
}
header nav ul a[aria-current] {
	background: linear-gradient(145deg, var(--y2), var(--y));
	color: var(--ink);
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
#mb {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
	box-shadow: none;
}
@media (max-width: 800px) {
	header nav ul {
		background: linear-gradient(160deg, #2e9e3e, #1f7a2e);
		box-shadow: 0 18px 30px rgba(31, 122, 46, 0.4);
	}
}
.si {
	margin-right: 12px;
	color: var(--g);
	width: 1.3em;
	text-align: center;
}
.sic {
	display: block;
	font-size: 2rem;
	margin: 0 auto 8px;
	opacity: 0.9;
}
.bi i,
.ico i {
	color: var(--b);
}
.btn i {
	margin: 0 6px;
}
.chip i {
	color: var(--g);
	margin-right: 6px;
}
.peb i {
	font-size: 1.7rem;
	margin-bottom: 6px;
}
.peb span {
	line-height: 1.3;
}
.qi {
	display: block;
	font-size: 2.4rem;
	color: var(--y2);
	margin-bottom: 14px;
}
.tick li::before {
	content: "\f00c";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 0.85rem;
}
details summary::after {
	content: "\2b";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 0.85rem;
}
.step h3 .si {
	color: var(--b);
}
.fcol a i {
	margin-right: 8px;
	color: var(--y2);
}
.fcol a.btn i {
	color: var(--ink);
}
.clay.y .sic,
.clay.g .sic,
.clay.b .sic {
	filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.2));
}
h2 {
	position: relative;
	padding-bottom: 0.35em;
}
h2::after {
	content: "";
	display: block;
	width: 64px;
	height: 8px;
	border-radius: 8px;
	margin-top: 10px;
	background: linear-gradient(90deg, var(--y), var(--g2), var(--b2));
}
[style*="text-align:center"] h2::after,
.clay[style*="text-align:center"] h2::after {
	margin-left: auto;
	margin-right: auto;
}
/* v3.1: beat .clay specificity so the nav is always green */
header nav.clay {
	background: linear-gradient(135deg, #34ad45, #1f7a2e);
	color: #fff;
	box-shadow: 0 12px 30px rgba(31, 122, 46, 0.4);
}
header nav.clay ul a {
	color: #fff;
}
header nav.clay ul a[aria-current] {
	color: var(--ink);
}
header nav.clay #mb {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}
@media (max-width: 800px) {
	header nav.clay ul {
		background: linear-gradient(160deg, #2e9e3e, #1f7a2e);
	}
}
/* v4: square nav, logo, photo slots, mobile svgs */
header nav.clay {
	border-radius: 0;
}
.logo {
	display: flex;
	align-items: center;
	gap: 12px;
}
.logo-img {
	height: 46px;
	width: auto;
	display: block;
}
.logo.hasimg .lt {
	display: none;
}
.lt small {
	display: block;
}
.slot {
	position: relative;
	margin: 0;
	min-height: 260px;
	border-radius: 30px;
	overflow: hidden;
	display: grid;
	place-items: center;
	text-align: center;
	color: var(--mut);
	box-shadow: var(--sh);
	background: repeating-linear-gradient(45deg, #eef3ea, #eef3ea 14px, #f6f7f4 14px, #f6f7f4 28px);
}
.slot > i {
	font-size: 2.6rem;
	color: var(--g);
	display: block;
}
.slot figcaption {
	font-family: var(--ui);
	padding: 10px;
}
.slot small {
	opacity: 0.7;
}
.slot img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s;
}
.slot:hover img {
	transform: scale(1.06);
}
.gal {
	display: grid;
	gap: 26px;
}
.gal.g3 {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.gal.g2 {
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.gal.g1 .slot {
	min-height: 340px;
}
@media (max-width: 800px) {
	header nav.clay ul {
		border-radius: 0;
	}
	.pbanner {
		background-size: auto 75%;
		background-position: right bottom;
		background-repeat: no-repeat;
		align-items: flex-start;
		min-height: 360px;
		padding: 36px 0 150px;
	}
	.hero {
		min-height: 0;
		padding-top: 20px;
	}
	.himg {
		max-width: 420px;
		margin-top: 10px;
	}
	.fimg {
		max-width: 380px;
	}
	.hero::before {
		width: 90vw;
		height: 90vw;
		inset: 0 -20vw auto auto;
	}
	footer {
		background-size:
			auto 200px,
			auto,
			auto;
		background-position:
			bottom center,
			0 0,
			0 0;
	}
}
/* v5: faint header backgrounds, no mobile gap, visible banner art */
.pbanner,
.herobg {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.pbanner::before,
.herobg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: center/cover no-repeat;
	opacity: 0.17;
	mix-blend-mode: luminosity;
}
.pbanner::after,
.herobg::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url(img/pattern.svg) 0 0/180px;
	opacity: 0.1;
	animation: drift 60s linear infinite;
}
.pbanner::after {
	filter: brightness(0) invert(1);
	opacity: 0.14;
}
@keyframes drift {
	to {
		background-position: 360px 180px;
	}
}
.pbanner .wrap {
	position: relative;
	z-index: 1;
}
.pbanner[style*="about"]::before {
	background-image: url(img/photos/header-about.jpg);
}
.pbanner[style*="services"]::before {
	background-image: url(img/photos/header-services.jpg);
}
.pbanner[style*="membership"]::before {
	background-image: url(img/photos/header-membership.jpg);
}
.pbanner[style*="contact"]::before {
	background-image: url(img/photos/header-contact.jpg);
}
.herobg {
	background: linear-gradient(180deg, #e6f4e2, var(--bg));
}
.herobg::before {
	background-image: url(img/photos/header-home.jpg);
	opacity: 0.14;
}
.herobg .hero {
	z-index: 1;
}
@media (max-width: 800px) {
	.pbanner {
		background-size: auto 85%;
		background-position: 93% bottom;
		min-height: 400px;
		padding: 28px 0 120px;
		margin: 0;
	}
	.herobg {
		margin: 0;
		padding: 0;
	}
	.hero {
		padding-top: 18px !important;
	}
	.himg {
		margin-top: 0;
	}
	.ab,
	.wrap[style*="padding-top:50px"] {
		padding-top: 24px !important;
	}
}
/* v6 fixes */
header nav.clay {
	padding: 12px 5%;
}
.fwrap > small {
	grid-column: 1/-1;
	position: absolute;
	bottom: 20px;
	left: 0;
	right: 0;
	text-align: center;
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
}
.fwrap small:not(.fwrap > small) {
	position: static;
	border: 0;
	padding: 0;
}
.pbanner {
	min-height: 260px;
	padding: 28px 0 70px;
}
@media (max-width: 800px) {
	.pbanner {
		min-height: 380px;
		padding: 24px 0 110px;
	}
}

/* v6.1: stop decorative blobs causing sideways scroll */
main {
	overflow-x: clip;
}

/* v7: fill the whole banner on small screens (no cream strip above the artwork) */
.pbanner[style*="about"],
.pbanner[style*="contact"] {
	background-color: #2a58a8;
}
.pbanner[style*="services"] {
	background-color: #f5b921;
}
.pbanner[style*="membership"] {
	background-color: #2e9e3e;
}
@media (max-width: 800px) {
	.pbanner {
		background-size: auto 100%;
		background-position: 91% bottom;
	}
}

/* v7.1: title at the top, artwork underneath on small screens */
@media (max-width: 800px) {
	.pbanner {
		min-height: 440px;
		background-size: auto 70%;
		background-position: 94% bottom;
	}
	.pbanner .wrap {
		margin: 0 auto auto;
	}
}

/* v8: desktop (above 800px) spacing restored to the earlier version */
@media (min-width: 801px) {
	header nav.clay {
		padding: 28px;
	}
	.pbanner {
		min-height: 300px;
		padding: 40px 0 80px;
	}
}
