/* ANIMAL GYM — home sections + generic content
   Every breakpoint lives in responsive.css, which loads after this file. */

/* ---------------------------------------------------------------- hero --- */

.agym-hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: clamp(560px, 84vh, 860px);
	/* With a solid header the hero starts directly under it, so it only needs
	   ordinary breathing room. The 160px version is for the transparent header,
	   which floats on top of this padding instead of above it. */
	padding: clamp(56px, 6vw, 92px) 0 clamp(56px, 6vw, 88px);
	overflow: hidden;
	background: var(--sec-bg, var(--bg));
	color: var(--sec-fg, var(--fg));
	isolation: isolate;
}

.agym-has-transparent-header .agym-hero { padding-top: clamp(130px, 12vw, 175px); }

.agym-hero__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.agym-hero__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: agym-kb 30s ease-in-out infinite alternate;
}

/* Barely a move — enough that the photo feels alive, not enough to notice. */
@keyframes agym-kb {
	from { transform: scale(1.02) translate3d(0, 0, 0); }
	to { transform: scale(1.09) translate3d(0, -1%, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.agym-hero__bg img { animation: none; }
}

/* Three layers: a soft flat wash for legibility, a directional darkening on
   the side the text sits on, and a fade into the page at the bottom. Keeping
   the flat pass low means the gym stays visible instead of turning to mud. */
.agym-hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to top, var(--bg) 0%, rgba(var(--bg-rgb), 0) 34%),
		linear-gradient(100deg, rgba(10, 8, 6, .74) 8%, rgba(10, 8, 6, .28) 52%, rgba(10, 8, 6, .1) 78%),
		rgba(10, 8, 6, var(--overlay, .46));
}

.agym-hero__in {
	position: relative;
	display: grid;
	gap: clamp(36px, 5vw, 64px);
	align-items: center;
	width: min(1220px, 100% - 48px);
}

.agym-hero--editorial .agym-hero__in { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); }
.agym-hero--split .agym-hero__in { grid-template-columns: 1.12fr .88fr; }
.agym-hero--center { text-align: center; }
.agym-hero--center .agym-hero__text { max-width: 880px; margin-inline: auto; }
.agym-hero--center .agym-hero__cta,
.agym-hero--center .agym-hero__badges { justify-content: center; }
.agym-hero--center .agym-hero__lead { margin-inline: auto; }
.agym-hero--center .agym-eyebrow { justify-content: center; }

/* Nothing on the right in these two, so the text uses the whole line. */
.agym-hero--center .agym-hero__in,
.agym-hero--plain .agym-hero__in { grid-template-columns: minmax(0, 1fr); }

.agym-hero__eyebrow { font-size: 12px; letter-spacing: .3em; margin-bottom: 22px; }

.agym-hero__title {
	font-size: clamp(40px, 6.6vw, 92px);
	line-height: .98;
	margin: 0 0 24px;
	letter-spacing: -.015em;
	text-wrap: balance;
}

.agym-hero__l1,
.agym-hero__l2 { display: block; }

/* The second line is the brand moment. A flat warm gold, not a gradient with a
   ghost behind it — over a photograph the extra layers only add noise. */
.agym-hero__l2 { color: var(--gold-2); }

.agym-hero__lead {
	max-width: 52ch;
	font-size: clamp(16px, 1.35vw, 18.5px);
	line-height: 1.68;
	color: rgba(var(--fg-rgb), .84);
	margin-bottom: 34px;
}

.agym-hero__cta {
	display: flex;
	gap: 13px;
	flex-wrap: wrap;
	margin-bottom: 38px;
}

/* --- event strip -------------------------------------------------------- */

.agym-hero__event {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin: 0 0 32px;
	padding: 14px 20px;
	border-radius: var(--radius);
	background: rgba(255, 255, 255, .09);
	border: 1px solid rgba(255, 255, 255, .16);
	border-left: 3px solid var(--gold);
	backdrop-filter: blur(8px);
	max-width: 560px;
}

.agym-hero__eventmark { display: grid; place-items: center; color: var(--gold-2); flex: none; }

.agym-hero__event strong {
	display: block;
	font-family: var(--font-display);
	font-size: 15px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: rgba(var(--fg-rgb), .96);
}

.agym-hero__event span {
	display: block;
	font-size: 13.5px;
	color: rgba(var(--fg-rgb), .72);
	margin-top: 2px;
}

.agym-hero__event i { font-style: normal; margin: 0 7px; opacity: .5; }

.agym-hero__event em {
	font-style: normal;
	margin-left: auto;
	padding: 5px 12px;
	border-radius: var(--radius-pill);
	background: var(--gold);
	color: var(--on-gold);
	font-family: var(--font-display);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* The plain hero has no photo, so the frosted panel has nothing to frost. */
.agym-hero--plain .agym-hero__event {
	background: var(--gold-tint);
	border-color: var(--gold-bd);
	backdrop-filter: none;
}

.agym-hero__poster {
	justify-self: end;
	width: min(400px, 100%);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: 0 30px 70px rgba(0, 0, 0, .45);
	border: 1px solid rgba(255, 255, 255, .14);
}

.agym-hero__poster img { width: 100%; height: auto; display: block; }

.agym-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.agym-hero__badges li {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 8px 15px;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .18);
	backdrop-filter: blur(6px);
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: rgba(var(--fg-rgb), .88);
}

.agym-hero__badges svg { color: var(--gold-2); flex: none; }

/* The plain hero has no photo behind it, so the frosted pills would be
   invisible; give them the ordinary surface treatment instead. */
.agym-hero--plain .agym-hero__badges li {
	background: var(--gold-tint);
	border-color: var(--gold-bd);
	backdrop-filter: none;
}

.agym-hero--plain .agym-hero__badges svg { color: var(--gold-ink); }
.agym-hero--plain .agym-hero__l2 { color: var(--gold-ink); }

/* --- the floating branch card (editorial layout) ------------------------ */

.agym-hero__card {
	justify-self: end;
	width: min(400px, 100%);
	padding: 30px 30px 26px;
	border-radius: var(--radius-lg);
	background: rgba(20, 17, 13, .52);
	border: 1px solid rgba(255, 255, 255, .16);
	backdrop-filter: blur(18px) saturate(1.2);
	color: #fff;
	box-shadow: 0 30px 70px rgba(0, 0, 0, .35);
}

.agym-hero__cardt {
	font-size: 12px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--gold-2);
	margin: 0 0 18px;
	font-family: var(--font-display);
}

.agym-hero__card dl { margin: 0; display: grid; gap: 15px; }

.agym-hero__card dt {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
	margin-bottom: 3px;
}

.agym-hero__card dd {
	margin: 0;
	font-size: 15.5px;
	line-height: 1.5;
	color: rgba(255, 255, 255, .95);
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

.agym-hero__card dd svg { flex: none; color: var(--gold-2); margin-top: 3px; }

.agym-hero__card .agym-link {
	color: var(--gold-2);
	margin-top: 20px;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, .16);
	width: 100%;
}

.agym-hero__frame {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 4 / 5;
	box-shadow: 0 30px 70px rgba(0, 0, 0, .32);
}

.agym-hero__frame img { width: 100%; height: 100%; object-fit: cover; }

.agym-hero__scroll {
	position: absolute;
	left: 50%;
	bottom: 26px;
	transform: translateX(-50%);
	width: 22px;
	height: 46px;
	display: grid;
	place-items: start center;
	z-index: 2;
}

.agym-hero__scrollline {
	width: 1px;
	height: 100%;
	background: linear-gradient(rgba(var(--fg-rgb), .45), transparent);
	position: relative;
	overflow: hidden;
}

.agym-hero__scrollline::after {
	content: "";
	position: absolute;
	left: -1px;
	width: 3px;
	height: 12px;
	border-radius: 3px;
	background: var(--gold-2);
	animation: agym-scroll 2.4s ease-in-out infinite;
}

@keyframes agym-scroll {
	0% { top: -12px; opacity: 0; }
	30% { opacity: 1; }
	100% { top: 100%; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.agym-hero__scrollline::after { animation: none; top: 0; }
}

/* -------------------------------------------------------------- ticker --- */

.agym-ticker {
	overflow: hidden;
	padding: 15px 0;
	background: var(--sec-bg, var(--fg));
	color: var(--sec-fg, var(--bg));
}

/* The loud option, kept for anyone who wants it. */
.agym-ticker--gold {
	background: var(--sec-bg, var(--gold));
	color: var(--sec-fg, var(--on-gold));
}

.agym-ticker__track {
	display: flex;
	width: max-content;
	animation: agym-marquee var(--speed, 44s) linear infinite;
}

.agym-ticker:hover .agym-ticker__track { animation-play-state: paused; }

@keyframes agym-marquee {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.agym-ticker__track { animation: none; }
}

.agym-ticker__list { display: flex; align-items: center; }

.agym-ticker__list li {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	padding-right: 24px;
	font-family: var(--font-display);
	font-size: clamp(14px, 1.3vw, 17px);
	letter-spacing: .3em;
	text-transform: uppercase;
	font-weight: 500;
	white-space: nowrap;
}

/* A small gold dot between words reads calmer than an icon at every gap. */
.agym-ticker__list i {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--gold);
	flex: none;
}

.agym-ticker--gold .agym-ticker__list i { background: currentColor; opacity: .45; }

/* --------------------------------------------------------------- about --- */

.agym-about__in {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
	gap: clamp(38px, 6vw, 84px);
	align-items: center;
}

/* Two photos, one tucked over the corner of the other, with a small badge —
   an arrangement rather than a single rectangle. */
.agym-about__stack { position: relative; padding-bottom: 46px; }

.agym-about__main {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 4 / 5;
	box-shadow: var(--shadow-lg);
}

.agym-about__main img { width: 100%; height: 100%; object-fit: cover; }

.agym-about__inset {
	position: absolute;
	right: -34px;
	bottom: 0;
	width: 46%;
	aspect-ratio: 3 / 2;
	border-radius: var(--radius);
	overflow: hidden;
	border: 5px solid var(--bg);
	box-shadow: var(--shadow-md);
}

.agym-sec--band .agym-about__inset { border-color: var(--band); }

.agym-about__inset img { width: 100%; height: 100%; object-fit: cover; }

.agym-about__badge {
	position: absolute;
	left: -22px;
	top: 34px;
	background: var(--surface);
	border-radius: var(--radius);
	padding: 16px 20px;
	box-shadow: var(--shadow-md);
	text-align: center;
}

.agym-about__badge strong {
	display: block;
	font-family: var(--font-display);
	font-size: 30px;
	line-height: 1;
	color: var(--gold-ink);
}

.agym-about__badge em {
	font-style: normal;
	font-size: 10.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	display: block;
	margin-top: 6px;
	max-width: 17ch;
}

.agym-about__points {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px 34px;
	margin: 38px 0;
}

.agym-about__points li { display: flex; gap: 15px; }

.agym-about__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	flex: none;
	border-radius: var(--radius-pill);
	color: var(--sec-accent, var(--gold-ink));
	background: var(--gold-tint);
}

.agym-about__points h3 {
	font-size: 17px;
	letter-spacing: .05em;
	margin: 5px 0 6px;
}

.agym-about__points p { color: var(--muted); font-size: 15px; margin: 0; line-height: 1.6; }

/* ---------------------------------------------------------------- why ---- */

.agym-cards {
	display: grid;
	grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
	gap: 20px;
}

.agym-cards--2 { --cols: 2; }
.agym-cards--3 { --cols: 3; }
.agym-cards--4 { --cols: 4; }

.agym-card {
	position: relative;
	padding: 34px 28px 32px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: transform .35s cubic-bezier(.33, 1, .68, 1), box-shadow .35s ease, border-color .35s ease;
}

.agym-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
	border-color: var(--gold-bd);
}

.agym-card__n {
	position: absolute;
	top: 20px;
	right: 24px;
	font-family: var(--font-display);
	font-size: 13px;
	letter-spacing: .1em;
	color: var(--muted);
	opacity: .45;
}

.agym-card__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	border-radius: var(--radius);
	background: var(--gold-tint);
	color: var(--sec-accent, var(--gold-ink));
	margin-bottom: 24px;
}

.agym-card__t { font-size: 19px; letter-spacing: .04em; margin-bottom: 10px; }
.agym-card__p { color: var(--muted); font-size: 15px; margin: 0; line-height: 1.65; }

/* Gold hairline along the top edge on hover. */
.agym-card__edge {
	position: absolute;
	inset: 0 auto auto 0;
	height: 2px;
	width: 100%;
	background: var(--gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s cubic-bezier(.33, 1, .68, 1);
}

.agym-card:hover .agym-card__edge { transform: scaleX(1); }

/* --------------------------------------------------------------- stats --- */

.agym-stats { padding-block: clamp(40px, 4.5vw, 64px); }

.agym-stats__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	border-radius: var(--radius-lg);
	background: var(--surface);
	border: 1px solid var(--line);
	box-shadow: var(--shadow-sm);
	padding: 40px 24px;
}

.agym-stats__list li { text-align: center; position: relative; }

.agym-stats__list li + li::before {
	content: "";
	position: absolute;
	left: -10px;
	top: 14%;
	height: 72%;
	width: 1px;
	background: var(--line);
}

.agym-stats__n {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(34px, 4.2vw, 54px);
	line-height: 1;
	color: var(--sec-accent, var(--gold-ink));
	letter-spacing: -.01em;
}

.agym-stats__n em { font-style: normal; font-size: .52em; }

.agym-stats__l {
	display: block;
	margin-top: 12px;
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--muted);
}

.agym-stats__tagline {
	display: block;
	max-width: 250px;
	margin: 10px auto 0;
	color: var(--text-soft, var(--muted));
	font-size: 13px;
	line-height: 1.5;
	letter-spacing: .02em;
}

/* ----------------------------------------------------------- amenities --- */

.agym-amen__tabs {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 26px;
	justify-content: center;
}

.agym-amen__tab {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 20px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-pill);
	cursor: pointer;
	font-family: var(--font-display);
	font-size: 13px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--muted);
	transition: color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.agym-amen__tab:hover { color: var(--fg); border-color: var(--gold-bd); }

.agym-amen__tab.is-on {
	background: var(--gold);
	border-color: transparent;
	color: var(--on-gold);
	box-shadow: var(--shadow-sm);
}

/* Panels are only hidden once the script confirms tabs are running. */
.agym-amen__box.is-tabs .agym-amen__panel { display: none; }
.agym-amen__box.is-tabs .agym-amen__panel.is-on { display: grid; }

.agym-amen__panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
	gap: 0;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	animation: agym-fade .45s cubic-bezier(.22, 1, .36, 1) both;
}

@keyframes agym-fade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

.agym-amen__content { padding: clamp(28px, 3vw, 44px); }

/* The grid variant stacks the photo above the words as a proper card. */
.agym-amen--grid .agym-amen__panels {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.agym-amen--grid .agym-amen__panel { grid-template-columns: minmax(0, 1fr); }
.agym-amen--grid .agym-amen__media { order: -1; aspect-ratio: 16 / 9; }

.agym-amen__title {
	display: flex;
	align-items: center;
	gap: 13px;
	font-size: 19px;
	letter-spacing: .1em;
	margin-bottom: 22px;
}

.agym-amen__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-pill);
	background: var(--gold-tint);
	color: var(--sec-accent, var(--gold-ink));
	flex: none;
}

.agym-amen__items { display: grid; gap: 13px; }

.agym-amen__items li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	color: rgba(var(--fg-rgb), .82);
	font-size: 15.5px;
}

.agym-amen__items svg { color: var(--sec-accent, var(--gold-ink)); flex: none; margin-top: 4px; }

.agym-amen__media { position: relative; overflow: hidden; }

.agym-amen__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 260px;
}

/* --------------------------------------------------------------- plans --- */

.agym-plans__grid {
	display: grid;
	grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr));
	gap: 20px;
	align-items: stretch;
}

/* Five tiers need more room than the content column gives them, so that one
   case widens its own row rather than squeezing five cards into four columns'
   worth of space.

   Deliberately no vw units here: 100vw counts the vertical scrollbar, so a row
   sized from it ends up ~15px wider than the page can show and scrolls the
   whole site sideways. Widening against the parent's own width instead keeps
   the arithmetic honest, and the media query guarantees the gutters can absorb
   the overhang before it is applied at all. */
@media (min-width: 1460px) {
	.agym-plans__grid[style*="--n:5"] {
		width: calc(100% + 140px);
		margin-inline: -70px;
	}
}

.agym-plans__grid[style*="--n:5"] .agym-plan { padding: 32px 22px 28px; }
.agym-plans__grid[style*="--n:5"] .agym-plan__name { font-size: 19px; }
.agym-plans__grid[style*="--n:5"] .agym-plan__features li { font-size: 13.5px; }

.agym-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 36px 28px 32px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: transform .35s cubic-bezier(.33, 1, .68, 1), box-shadow .35s ease, border-color .35s ease;
	min-width: 0;
}

.agym-plan:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
	border-color: var(--gold-bd);
}

/* The recommended package is lifted, not shouted: a gold hairline, a whisper
   of gold wash and a real shadow. */
.agym-plan.is-featured {
	border-color: var(--gold-bd-2);
	background: linear-gradient(180deg, var(--gold-wash), var(--surface) 42%);
	box-shadow: var(--shadow-lg);
}

.agym-plan.is-featured::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 3px;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	background: var(--gold);
}

.agym-plan__badge {
	position: absolute;
	top: -13px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--gold);
	color: var(--on-gold);
	font-family: var(--font-display);
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	padding: 6px 16px;
	border-radius: var(--radius-pill);
	white-space: nowrap;
	box-shadow: var(--shadow-sm);
}

.agym-plan__name { font-size: 21px; letter-spacing: .1em; margin-bottom: 6px; }
.agym-plan__desc { color: var(--muted); font-size: 14px; min-height: 42px; line-height: 1.5; }

.agym-plan__price {
	display: flex;
	align-items: baseline;
	gap: 3px;
	flex-wrap: wrap;
	margin: 14px 0 22px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--line);
}

.agym-plan__cur {
	font-family: var(--font-display);
	font-size: 22px;
	color: var(--muted);
	align-self: flex-start;
	margin-top: 7px;
}

.agym-plan__val {
	font-family: var(--font-display);
	font-size: clamp(40px, 4vw, 54px);
	line-height: 1;
	color: var(--sec-fg, var(--fg));
	letter-spacing: -.02em;
}

.agym-plan__per {
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	margin-left: 5px;
}

.agym-plan__features { display: grid; gap: 12px; margin-bottom: 28px; flex: 1; }

.agym-plan__features li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14.5px;
	line-height: 1.55;
	color: rgba(var(--fg-rgb), .8);
}

.agym-plan__features svg { color: var(--sec-accent, var(--gold-ink)); flex: none; margin-top: 3px; }

.agym-plan__cta { width: 100%; margin-top: auto; }

.agym-plans__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	margin: 30px 0 0;
	color: var(--muted);
	font-size: 14px;
}

.agym-plans__note svg { color: var(--gold-ink); flex: none; }

/* ------------------------------------------------------------ included --- */

.agym-inc__in {
	display: grid;
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
	gap: clamp(32px, 5vw, 68px);
	align-items: center;
}

.agym-inc__head .agym-h2 { margin: 14px 0 26px; }

.agym-inc__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 20px;
}

.agym-inc__list li {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 15px 18px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	font-size: 15.5px;
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.agym-inc__list li:hover {
	border-color: var(--gold-bd);
	transform: translateY(-2px);
	box-shadow: var(--shadow-sm);
}

.agym-inc__icon { color: var(--sec-accent, var(--gold-ink)); display: grid; place-items: center; flex: none; }

/* -------------------------------------------------------------- extras --- */

/* Two businesses under the gym's roof. The tracks are 1fr, not a fixed ceiling:
   a fixed max never shrinks to fit a second column, so a tablet was showing one
   560px card with 220px of empty space beside it. min() keeps the 300px floor
   from overflowing a very narrow phone. */
.agym-extras__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
	gap: clamp(20px, 2.4vw, 30px);
}

.agym-extra {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	/* One card on its own would otherwise stretch the full content width. */
	width: 100%;
	max-width: 620px;
	margin-inline: auto;
}

.agym-extra__media {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--band);
}

.agym-extra__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.33, 1, .68, 1);
}

.agym-extra:hover .agym-extra__media img { transform: scale(1.04); }

/* The placeholder is line art, not a photograph: contain it rather than crop. */
.agym-extra__media img.agym-ph { object-fit: contain; padding: 12%; }

.agym-extra__icon {
	position: absolute;
	left: 18px;
	bottom: 18px;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: var(--radius);
	background: var(--sec-accent, var(--gold));
	color: var(--on-gold);
	box-shadow: var(--shadow-sm);
}

.agym-extra__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: clamp(24px, 2.6vw, 34px);
}

.agym-extra__tag {
	margin: 0 0 10px;
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .24em;
	text-transform: uppercase;
	color: var(--sec-accent, var(--gold-ink));
}

.agym-extra__t {
	font-size: clamp(20px, 2vw, 25px);
	letter-spacing: .02em;
	margin: 0 0 12px;
	text-wrap: balance;
}

.agym-extra__p { color: var(--muted); font-size: 15.5px; margin: 0 0 20px; }

.agym-extra__list { display: grid; gap: 10px; margin: 0 0 26px; }

.agym-extra__list li {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 15px;
	line-height: 1.5;
}

.agym-extra__list svg { flex: none; margin-top: 3px; color: var(--sec-accent, var(--gold-ink)); }

/* Pinned to the bottom so two cards of unequal length still line their buttons
   up with each other. */
.agym-extra__btn { margin-top: auto; align-self: flex-start; }

/* --------------------------------------------------------------- coach --- */

.agym-coach__grid {
	display: grid;
	/* auto-fit with a ceiling: a roster of three centres itself instead of
	   hugging the left edge, and a roster of sixteen still wraps tidily. */
	grid-template-columns: repeat(auto-fit, minmax(230px, 300px));
	justify-content: center;
	gap: 22px;
}

.agym-coach__card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: transform .35s cubic-bezier(.33, 1, .68, 1), box-shadow .35s ease, border-color .35s ease;
}

.agym-coach__card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
	border-color: var(--gold-bd);
}

.agym-coach__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; }

/* A gentle warm lift rather than the old hard greyscale — the coaches should
   look like people, not like a contact sheet. */
.agym-coach__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.92) contrast(1.02);
	transition: filter .5s ease, transform .7s cubic-bezier(.22, 1, .36, 1);
}

.agym-coach__card:hover .agym-coach__photo img { filter: none; transform: scale(1.03); }

/* Bundled placeholders are already the brand colours — filtering them just
   makes a fresh install look broken. */
.agym-coach__photo img.agym-ph { filter: none; }

/* The placeholder SVGs are drawn on transparency so the same file reads on a
   white page and a black one; the frame supplies the backing colour. */
.agym-ph { background: var(--surface); }

.agym-gal__item img.agym-ph,
.agym-post__media img.agym-ph,
.agym-amen__media img.agym-ph { object-fit: contain; padding: 7%; }

.agym-about__main img.agym-ph,
.agym-coach__photo img.agym-ph { object-fit: contain; padding: 6%; }

.agym-coach__role {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	width: fit-content;
	max-width: calc(100% - 32px);
	line-height: 1.35;
	background: rgba(var(--bg-rgb), .9);
	color: var(--gold-ink);
	font-family: var(--font-display);
	font-size: 11.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	padding: 7px 14px;
	border-radius: var(--radius-pill);
	backdrop-filter: blur(6px);
	box-shadow: var(--shadow-sm);
	/* A long speciality must not run past the edge of the photo it sits on. */
	max-width: calc(100% - 32px);
	line-height: 1.35;
}

/* Cards that lead somewhere get the affordances; the rest stay flat so a
   half-filled roster never looks broken. */
.agym-coach__card.is-linked { cursor: pointer; }
.agym-coach__link { display: block; color: inherit; }
.agym-coach__card:not(.is-linked):hover { transform: none; box-shadow: var(--shadow-sm); border-color: var(--line); }
.agym-coach__card:not(.is-linked) .agym-coach__photo img { filter: saturate(.92) contrast(1.02); transform: none; }

.agym-coach__more { margin-top: 14px; font-size: 12px; }

.agym-coach__playflag {
	position: absolute;
	top: 14px;
	right: 14px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px 6px 9px;
	border-radius: var(--radius-pill);
	background: rgba(var(--bg-rgb), .9);
	backdrop-filter: blur(6px);
	color: var(--gold-ink);
	font-family: var(--font-display);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	box-shadow: var(--shadow-sm);
}

/* A label with a rule running out either side, to separate founders from staff
   without needing a second heading level. */
.agym-coach__grouplabel {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0 0 22px;
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--sec-accent, var(--gold-ink));
}

.agym-coach__grouplabel::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--line-2);
}

.agym-coach__founders { margin-bottom: clamp(38px, 4.5vw, 60px); }

/* Founders are few, so the row is centred and the cards are capped rather than
   stretched across the full width. */
.agym-coach__grid--founders {
	grid-template-columns: repeat(auto-fit, minmax(230px, 300px));
	justify-content: center;
}

.agym-coach__body { padding: 24px 24px 26px; }
.agym-coach__name { font-size: 20px; letter-spacing: .1em; margin-bottom: 9px; }
.agym-coach__bio { color: var(--muted); font-size: 14.5px; line-height: 1.6; }

.agym-coach__links { display: grid; gap: 8px; }

.agym-coach__links a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--muted);
	font-size: 14px;
	transition: color .2s ease;
}

.agym-coach__links a:hover { color: var(--gold-ink); }

/* -------------------------------------------------------------- branch --- */

.agym-branch__in {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
	gap: clamp(38px, 6vw, 80px);
	align-items: center;
}

.agym-branch__media { position: relative; padding-bottom: 52px; }

.agym-branch__main {
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	box-shadow: var(--shadow-lg);
}

.agym-branch__main img { width: 100%; height: 100%; object-fit: cover; }

.agym-branch__inset {
	position: absolute;
	right: 24px;
	bottom: 0;
	width: 44%;
	aspect-ratio: 3 / 2;
	border-radius: var(--radius);
	overflow: hidden;
	border: 5px solid var(--bg);
	box-shadow: var(--shadow-md);
}

.agym-sec--band .agym-branch__inset { border-color: var(--band); }

.agym-branch__inset img { width: 100%; height: 100%; object-fit: cover; }

/* The "one gym" stamp — the single-branch promise made visible. */
.agym-branch__stamp {
	position: absolute;
	left: 22px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px;
	border-radius: var(--radius-pill);
	background: var(--surface);
	box-shadow: var(--shadow-md);
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gold-ink);
}

.agym-branch__name {
	font-size: clamp(22px, 2.2vw, 28px);
	letter-spacing: .06em;
	margin: 0 0 22px;
}

/* A <dl> may only hold dt/dd/div, so each fact is a <div> row rather than a
   list item — same layout, valid markup, and screen readers get real pairs. */
.agym-branch__facts { display: grid; gap: 18px; margin: 0 0 26px; }

.agym-branch__facts > div { display: flex; gap: 14px; align-items: flex-start; }

.agym-branch__facticon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	flex: none;
	border-radius: var(--radius-pill);
	background: var(--gold-tint);
	color: var(--sec-accent, var(--gold-ink));
}

.agym-branch__facts dt {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 3px;
}

.agym-branch__facts dd { margin: 0; font-size: 16px; line-height: 1.5; }
.agym-branch__facts dd a:hover { color: var(--gold-ink); }

.agym-branch__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 30px;
	padding-top: 26px;
	border-top: 1px solid var(--line);
}

.agym-branch__cta { display: flex; gap: 13px; flex-wrap: wrap; }

/* ------------------------------------------------------------- gallery --- */

.agym-gal__filters {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom: 30px;
}

.agym-chip {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-pill);
	padding: 9px 18px;
	cursor: pointer;
	font-family: var(--font-display);
	font-size: 12.5px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--muted);
	transition: color .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.agym-chip:hover { color: var(--fg); border-color: var(--gold-bd); }

.agym-chip.is-on {
	background: var(--gold);
	border-color: transparent;
	color: var(--on-gold);
	box-shadow: var(--shadow-sm);
}

.agym-gal__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 232px;
	gap: 16px;
}

.agym-gal__item {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	background: var(--surface);
}

.agym-gal__item.is-wide { grid-column: span 2; }
.agym-gal__item.is-hidden { display: none; }

.agym-gal__item > button {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	cursor: zoom-in;
}

.agym-gal__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s cubic-bezier(.22, 1, .36, 1);
}

.agym-gal__item:hover img { transform: scale(1.05); }

.agym-gal__cap {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 44px 18px 16px;
	text-align: left;
	background: linear-gradient(transparent, rgba(12, 10, 8, .8));
	font-family: var(--font-display);
	font-size: 12.5px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: #fff;
	transform: translateY(6px);
	opacity: 0;
	transition: opacity .3s ease, transform .3s ease;
}

.agym-gal__item:hover .agym-gal__cap,
.agym-gal__item:focus-within .agym-gal__cap { opacity: 1; transform: none; }

/* ------------------------------------------------------------- reviews --- */

.agym-revs__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.agym-rev {
	position: relative;
	padding: 34px 30px 28px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.agym-rev__quote { position: absolute; top: 22px; right: 24px; color: var(--gold-tint); }
.agym-rev__quote svg { fill: var(--gold-ink); opacity: .16; stroke-width: 0; }

.agym-rev__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.72;
	color: rgba(var(--fg-rgb), .88);
	flex: 1;
}

.agym-rev__who {
	display: flex;
	align-items: center;
	gap: 13px;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}

.agym-rev__pic {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	overflow: hidden;
	flex: none;
	display: grid;
	place-items: center;
}

.agym-rev__pic img { width: 100%; height: 100%; object-fit: cover; }

.agym-rev__pic--initial {
	background: var(--gold-tint);
	color: var(--gold-ink);
	font-family: var(--font-display);
	font-size: 19px;
}

.agym-rev__who strong { display: block; font-family: var(--font-display); letter-spacing: .08em; font-size: 15.5px; font-weight: 600; }
.agym-rev__who em { font-style: normal; font-size: 13px; color: var(--muted); }

/* ----------------------------------------------------------------- faq --- */

.agym-faq__in {
	display: grid;
	grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
	gap: clamp(32px, 5vw, 68px);
	align-items: start;
}

.agym-faq__side { position: sticky; top: 110px; }
.agym-faq__side .agym-head { margin-bottom: 20px; }

.agym-faq__call { color: var(--muted); }
.agym-faq__call a { color: var(--gold-ink); font-weight: 600; }

.agym-faq__item {
	border: 1px solid var(--line);
	border-radius: var(--radius);
	margin-bottom: 10px;
	background: var(--surface);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: border-color .25s ease;
}

.agym-faq__item[open] { border-color: var(--gold-bd); }

.agym-faq__item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 19px 24px;
	cursor: pointer;
	font-family: var(--font-display);
	font-size: 16.5px;
	letter-spacing: .04em;
	list-style: none;
	transition: color .2s ease;
}

.agym-faq__item summary::-webkit-details-marker { display: none; }
.agym-faq__item summary:hover { color: var(--gold-ink); }

.agym-faq__sign {
	position: relative;
	width: 15px;
	height: 15px;
	flex: none;
	color: var(--gold-ink);
}

.agym-faq__sign::before,
.agym-faq__sign::after {
	content: "";
	position: absolute;
	background: currentColor;
	border-radius: 2px;
	transition: transform .25s ease;
}

.agym-faq__sign::before { top: 6.5px; left: 0; width: 15px; height: 2px; }
.agym-faq__sign::after { top: 0; left: 6.5px; width: 2px; height: 15px; }

.agym-faq__item[open] .agym-faq__sign::after { transform: rotate(90deg); }

.agym-faq__a {
	padding: 0 24px 22px;
	color: var(--muted);
}

.agym-faq__a p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------- tour --- */

.agym-tour__in {
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
}

.agym-tour__sidet {
	font-size: 15px;
	letter-spacing: .18em;
	margin: 28px 0 16px;
	color: var(--gold-ink);
}

.agym-tour__list { display: grid; gap: 13px; margin-bottom: 28px; }

.agym-tour__list li {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	color: rgba(var(--fg-rgb), .82);
	font-size: 15.5px;
}

.agym-tour__list svg { color: var(--gold-ink); flex: none; margin-top: 4px; }

.agym-tour__call {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	border-radius: var(--radius);
	background: var(--gold-tint);
	transition: transform .25s ease;
}

.agym-tour__call:hover { transform: translateY(-2px); }
.agym-tour__call svg { color: var(--gold-ink); flex: none; }
.agym-tour__call em { display: block; font-style: normal; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.agym-tour__call strong { font-family: var(--font-display); font-size: 19px; letter-spacing: .05em; }

.agym-tour__pic {
	margin: 4px 0 24px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 16 / 9;
	box-shadow: var(--shadow-md);
}

.agym-tour__pic img { width: 100%; height: 100%; object-fit: cover; }

.agym-tour__formwrap {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	padding: clamp(26px, 3vw, 42px);
}

/* ---------------------------------------------------------------- blog --- */

.agym-posts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}

.agym-post {
	display: flex;
	flex-direction: column;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	transition: transform .35s cubic-bezier(.33, 1, .68, 1), box-shadow .35s ease, border-color .35s ease;
}

.agym-post:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
	border-color: var(--gold-bd);
}

.agym-post__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.agym-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.agym-post:hover .agym-post__media img { transform: scale(1.04); }

.agym-post__body { padding: 24px; display: flex; flex-direction: column; flex: 1; }

.agym-post__meta {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 12px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 12px;
}

.agym-post__cat { color: var(--gold-ink); }
.agym-post__t { font-size: 19px; letter-spacing: .02em; margin-bottom: 10px; }
.agym-post__t a:hover { color: var(--gold-ink); }
.agym-post__x { color: var(--muted); font-size: 15px; flex: 1; }
.agym-blog__all { text-align: center; margin: 36px 0 0; }

/* ----------------------------------------------------------------- cta --- */

.agym-cta {
	position: relative;
	text-align: center;
	overflow: hidden;
	/* Every stop must be opaque — a translucent one lets the page behind show
	   through and washes out the corner of the band. */
	background: var(--sec-bg, var(--bg));
	isolation: isolate;
}

.agym-cta__bg { position: absolute; inset: 0; z-index: -1; }
.agym-cta__bg img { width: 100%; height: 100%; object-fit: cover; }

.agym-cta__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(var(--bg-rgb), .78);
}

.agym-cta__title {
	font-size: clamp(30px, 4.6vw, 62px);
	line-height: 1;
	margin-bottom: 20px;
	text-wrap: balance;
}

.agym-cta__title span { display: block; color: var(--sec-fg, var(--fg)); }

.agym-cta__title strong {
	display: block;
	font-weight: inherit;
	color: var(--gold-2);
}

.agym-cta__text {
	color: rgba(var(--fg-rgb), .8);
	font-size: 17.5px;
	max-width: 54ch;
	margin: 0 auto 34px;
}

.agym-cta__btns { display: flex; gap: 13px; justify-content: center; flex-wrap: wrap; }

/* ----------------------------------------------------------------- map --- */

.agym-mapsec {
	position: relative;
	padding: var(--sec-y) 0 0;
	background: var(--sec-bg, var(--bg));
	color: var(--sec-fg, var(--fg));
}

.agym-mapsec--full { padding-bottom: 0; }
.agym-mapsec--boxed { padding-bottom: var(--sec-y); }

.agym-mapwrap { position: relative; }

/* Boxed: the map is a card in the content column. Full: it runs edge to edge
   and the card floats on top of it. */
.agym-mapsec--boxed .agym-mapwrap {
	width: min(1220px, 100% - 48px);
	margin-inline: auto;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-md);
}

.agym-mapbox {
	position: relative;
	width: 100%;
	height: var(--map-h, 520px);
	background: var(--band);
}

.agym-mapbox iframe,
.agym-mapbox > div { width: 100%; height: 100%; border: 0; display: block; }

/* Google's keyless embed is always a light image, so only dark mode wants it
   flipped. The scripted map is styled properly and must never be filtered. */
:root[data-theme="dark"] .agym-mapbox--embed iframe { filter: grayscale(.4) invert(.92) contrast(.88); }

.agym-mapcard {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	padding: 30px 32px;
	width: min(400px, 100%);
}

.agym-mapsec--full .agym-mapcard {
	position: absolute;
	left: max(24px, calc(50% - 610px));
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
}

.agym-mapsec--boxed .agym-mapcard { margin: 26px auto 0; }

.agym-mapcard h3 {
	font-size: 19px;
	letter-spacing: .08em;
	margin-bottom: 20px;
}

.agym-mapcard dl { margin: 0 0 24px; display: grid; gap: 16px; }

.agym-mapcard dt {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 3px;
}

.agym-mapcard dd {
	margin: 0;
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: 15.5px;
	line-height: 1.5;
}

.agym-mapcard dd svg { flex: none; color: var(--gold-ink); margin-top: 4px; }
.agym-mapcard dd a:hover { color: var(--gold-ink); }

/* Shown when there is nothing to point the map at yet. */
.agym-mapnote {
	display: grid;
	place-content: center;
	gap: 8px;
	height: 100%;
	text-align: center;
	padding: 40px;
	color: var(--muted);
	background: var(--band);
}

.agym-mapnote strong { font-family: var(--font-display); letter-spacing: .16em; text-transform: uppercase; color: var(--fg); }

/* The ask at the end of the trainer roster. */
.agym-coach__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(22px, 3vw, 44px);
	flex-wrap: wrap;
	margin-top: clamp(36px, 4vw, 56px);
	padding: clamp(28px, 3.4vw, 44px);
	border-radius: var(--radius-lg);
	background: linear-gradient(120deg, var(--gold-wash), var(--surface) 60%);
	border: 1px solid var(--gold-bd);
	box-shadow: var(--shadow-sm);
}

.agym-coach__cta h3 {
	font-size: clamp(20px, 2.2vw, 28px);
	letter-spacing: .04em;
	margin-bottom: 10px;
}

.agym-coach__cta p {
	margin: 0;
	color: var(--muted);
	max-width: 52ch;
	font-size: 15.5px;
}

.agym-coach__ctabtns { display: flex; gap: 12px; flex-wrap: wrap; flex: none; }

/* -------------------------------------------------------- trainer page --- */

.agym-trainer {
	padding: clamp(110px, 12vw, 168px) 0 var(--sec-y);
	background: var(--band);
}

.agym-crumbs--left { justify-content: flex-start; margin-bottom: 28px; }

.agym-trainer__in {
	display: grid;
	grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
	gap: clamp(32px, 5vw, 68px);
	align-items: start;
}

.agym-trainer__media { position: sticky; top: 108px; display: grid; gap: 16px; }

/* The clips are phone-shot verticals, so the frame commits to 9:16 rather than
   letterboxing them into a landscape box. */
.agym-trainer__video {
	position: relative;
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 9 / 16;
	background: #100e0b;
	box-shadow: var(--shadow-lg);
}

.agym-trainer__video video { width: 100%; height: 100%; object-fit: cover; display: block; }

.agym-trainer__sound {
	position: absolute;
	right: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: var(--radius-pill);
	background: rgba(18, 16, 12, .6);
	backdrop-filter: blur(10px);
	color: #fff;
	cursor: pointer;
	font-family: var(--font-display);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: background .2s ease, border-color .2s ease;
}

.agym-trainer__sound:hover { background: rgba(18, 16, 12, .82); border-color: rgba(255, 255, 255, .5); }

/* Muted (the starting state) offers "sound on"; unmuted offers the mute icon. */
.agym-trainer__soundon { display: none; }
.agym-trainer__sound[aria-pressed="true"] .agym-trainer__soundon { display: inline-flex; }
.agym-trainer__sound[aria-pressed="true"] .agym-trainer__soundoff { display: none; }

.agym-trainer__photo {
	border-radius: var(--radius-lg);
	overflow: hidden;
	aspect-ratio: 4 / 5;
	box-shadow: var(--shadow-md);
	background: var(--surface);
}

.agym-trainer__photo img { width: 100%; height: 100%; object-fit: cover; }

/* Beside a video the headshot is a supporting thumbnail, not the main event. */
.agym-trainer__photo.is-secondary {
	aspect-ratio: 3 / 2;
	max-width: 62%;
}

.agym-trainer__name {
	font-size: clamp(34px, 5vw, 62px);
	line-height: 1;
	margin: 0 0 18px;
	letter-spacing: -.01em;
}

.agym-trainer__lead {
	font-size: clamp(17px, 1.5vw, 20px);
	line-height: 1.6;
	color: var(--muted);
	max-width: 54ch;
	margin-bottom: 34px;
}

.agym-trainer__h {
	font-size: 13px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--gold-ink);
	margin: 34px 0 18px;
}

.agym-trainer__creds { display: grid; gap: 13px; }

.agym-trainer__creds li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: 16px;
	line-height: 1.55;
}

.agym-trainer__creds svg { color: var(--gold-ink); flex: none; margin-top: 4px; }

.agym-trainer__story {
	font-size: 16.5px;
	line-height: 1.75;
	color: rgba(var(--fg-rgb), .86);
	max-width: 62ch;
}

.agym-trainer__story p:last-child { margin-bottom: 0; }

.agym-trainer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 30px 0 0;
}

.agym-trainer__links a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 9px 16px;
	border-radius: var(--radius-pill);
	background: var(--surface);
	border: 1px solid var(--line);
	font-size: 14px;
	color: var(--muted);
	transition: border-color .2s ease, color .2s ease;
}

.agym-trainer__links a:hover { border-color: var(--gold-bd); color: var(--gold-ink); }
.agym-trainer__links svg { color: var(--gold-ink); flex: none; }

.agym-trainer__cta { display: flex; gap: 13px; flex-wrap: wrap; margin-top: 36px; }

/* ------------------------------------------------- generic page content --- */

.agym-page { padding: clamp(50px, 6vw, 90px) 0; }

.agym-phead {
	position: relative;
	padding: clamp(100px, 12vw, 158px) 0 clamp(42px, 5vw, 72px);
	background: var(--band);
	text-align: center;
}

.agym-phead__t { font-size: clamp(30px, 4.6vw, 56px); margin-bottom: 12px; }
.agym-phead__x { color: var(--muted); max-width: 62ch; margin-inline: auto; }

.agym-crumbs {
	display: flex;
	gap: 8px;
	justify-content: center;
	font-size: 12px;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 14px;
}

.agym-crumbs a:hover { color: var(--gold-ink); }

.agym-shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 46px;
	align-items: start;
}

.agym-shell--full { grid-template-columns: minmax(0, 1fr); }

.agym-entry { max-width: 76ch; }

.agym-entry h1, .agym-entry h2, .agym-entry h3, .agym-entry h4 { margin-top: 1.4em; }
.agym-entry a { color: var(--gold-ink); text-decoration: underline; text-underline-offset: 3px; }
.agym-entry ul, .agym-entry ol { margin: 0 0 1.2em 1.3em; }
.agym-entry ul { list-style: disc; }
.agym-entry ol { list-style: decimal; }
.agym-entry li { margin-bottom: .5em; }

.agym-entry blockquote {
	margin: 1.6em 0;
	padding: 18px 24px;
	border-left: 3px solid var(--gold);
	background: var(--gold-tint);
	border-radius: 0 var(--radius) var(--radius) 0;
	font-size: 18px;
}

.agym-entry img { border-radius: var(--radius-lg); }

.agym-entry code {
	background: rgba(var(--fg-rgb), .07);
	padding: 2px 6px;
	border-radius: 3px;
	font-size: .9em;
}

.agym-entry pre {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 18px;
	overflow: auto;
}

.agym-entry table { width: 100%; border-collapse: collapse; margin-bottom: 1.4em; }
.agym-entry th, .agym-entry td { border: 1px solid var(--line); padding: 11px 13px; text-align: left; }
.agym-entry th { background: var(--band); }

.agym-widget {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	padding: 24px;
	margin-bottom: 18px;
}

.agym-widget__t { font-size: 15px; letter-spacing: .16em; color: var(--gold-ink); margin-bottom: 14px; }
.agym-widget ul li { margin-bottom: 9px; color: var(--muted); }
.agym-widget a:hover { color: var(--gold-ink); }

.agym-pager {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 46px;
	flex-wrap: wrap;
}

.agym-pager .page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius-pill);
	font-family: var(--font-display);
	letter-spacing: .1em;
	transition: all .2s ease;
}

.agym-pager .page-numbers:hover { border-color: var(--gold-ink); color: var(--gold-ink); }

.agym-pager .page-numbers.current {
	background: var(--gold);
	border-color: transparent;
	color: var(--on-gold);
}

/* Single post extras */
.agym-meta {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	color: var(--muted);
	font-size: 12.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	margin-bottom: 22px;
}

.agym-share { display: flex; gap: 10px; align-items: center; margin: 38px 0; }

.agym-share a {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--line-2);
	border-radius: var(--radius-pill);
	color: var(--muted);
}

.agym-share a:hover { color: var(--gold-ink); border-color: var(--gold-ink); }

.agym-comments { margin-top: 52px; }
.agym-comments .comment-list { display: grid; gap: 18px; }

.agym-comments .comment-body {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	padding: 22px;
}

.agym-comments .children { margin-left: 28px; margin-top: 18px; display: grid; gap: 18px; }

.agym-404 { text-align: center; padding: clamp(90px, 14vw, 180px) 0; }
.agym-404__n { font-family: var(--font-display); font-size: clamp(90px, 20vw, 210px); line-height: 1; color: var(--gold-bd); }

/* Requested content pages; scoped to preserve existing section layouts. */
.agym-source{padding:clamp(32px,6vw,80px) 0}.agym-source p{line-height:1.8;margin:18px 0 28px}.agym-source .agym-h2{margin:36px 0 20px}.agym-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px;margin:28px 0 48px}.agym-source-card{margin:0;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.agym-source-card h3{font-size:22px}.agym-source-card p{margin-bottom:0}.agym-source-wide{width:100%;max-height:520px;object-fit:cover;border-radius:var(--radius);margin:32px 0}.agym-event-poster{max-height:none;object-fit:contain}.agym-guest-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius)}.agym-guest-grid figcaption{margin-top:16px;font-weight:700}.agym-event-agenda dt{font-weight:700;color:var(--gold-ink);margin-top:20px}.agym-event-agenda dd{margin:6px 0 24px}.agym-event-ticket{margin-left:auto;display:inline-flex;text-decoration:none;flex-shrink:0}.agym-event-ticket:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.agym-event-ticket em{margin:0!important}.agym-hero__event strong a{color:inherit;text-decoration:none}.agym-hero__event strong a:hover{text-decoration:underline}
@media(min-width:1101px){.agym-nav__list{flex-wrap:wrap}.agym-nav__list a{padding-inline:9px;font-size:12px}}

/* Owner-provided source content, scoped to the three requested pages. */
.agym-copy{padding-block:50px 80px;line-height:1.75}.agym-copy h1{font-family:var(--font-display);font-size:clamp(36px,6vw,70px);line-height:1.1;margin:12px 0 28px}.agym-copy h2,.agym-copy h3{font-family:var(--font-display);font-size:clamp(26px,4vw,40px);line-height:1.2;margin:24px 0 16px}.agym-copy h4,.agym-copy h5{font-size:22px;line-height:1.4;margin-bottom:14px}.agym-copy h6{color:var(--gold-ink);font-size:14px;letter-spacing:.12em;text-transform:uppercase;margin-top:30px}.agym-copy p{margin-bottom:20px}.agym-copy-block{margin-bottom:20px}.agym-copy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;margin:30px 0 50px}.agym-copy-card{border:1px solid var(--line);padding:28px;border-radius:var(--radius);background:var(--surface)}.agym-copy-card h3,.agym-copy-card h4,.agym-copy-card h5{font-size:25px}.agym-copy img{display:block;width:100%;height:auto;border-radius:var(--radius)}.agym-copy .elementor-icon-box-icon{display:none}.agym-copy ul{padding-left:22px}.agym-copy li{margin:8px 0}.agym-copy a{color:var(--gold-ink)}.agym-copy .elementor-button,.agym-copy .uael-price-table-cta a{display:inline-flex;background:var(--gold);color:var(--on-gold);border-radius:var(--radius-pill);padding:12px 24px;font-weight:700;margin-top:18px;text-decoration:none}.agym-copy .uael-price-table-price{font-size:40px;font-weight:700}.agym-copy .uael-price-table-duration{font-size:16px}.agym-copy-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;margin-top:48px}.agym-copy-gallery img{height:260px;object-fit:cover}.agym-training-form{max-width:960px;margin:30px auto}.agym-training-form .wpforms-layout-row,.agym-training-form .wpforms-field-row{display:flex;gap:24px;flex-wrap:wrap}.agym-training-form .wpforms-layout-column,.agym-training-form .wpforms-field-row-block{flex:1;min-width:220px}.agym-training-form .wpforms-field{margin-bottom:24px}.agym-training-form label,.agym-training-form legend{display:block;font-weight:600;margin-bottom:8px}.agym-training-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.agym-training-form select{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;color:var(--fg);background:var(--surface)}.agym-training-form ul{list-style:none;padding:0}.agym-training-form li{display:flex;align-items:baseline;gap:10px}.agym-training-form li label{display:inline;font-weight:400}.agym-training-form fieldset{border:0;padding:0}.agym-training-form .wpforms-required-label{color:var(--gold-ink)}.agym-training-form .wpforms-field-sublabel{font-size:13px;font-weight:400}.agym-training-form .wpforms-submit-container{margin-top:20px}.agym-training-status{padding:16px;border:1px solid var(--gold-ink);margin-bottom:24px}

/* Original page-opening image overlay: 35% opacity with screen blending. */
.agym-copy-hero{position:relative;isolation:isolate;overflow:hidden;background:#000;color:#fff;min-height:53vh;display:flex;align-items:center;padding:0;width:100%}
.agym-copy-hero .agym-copy-hero__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.35;mix-blend-mode:screen;border-radius:0;z-index:-1;pointer-events:none}
.agym-copy-hero__content{position:relative;padding-block:clamp(64px,9vw,144px) clamp(56px,8vw,120px)}
.agym-copy-hero__content>.agym-copy-block{max-width:900px}
.agym-copy-hero h1,.agym-copy-hero h6{color:#e6b800}
.agym-copy-hero h2,.agym-copy-hero p{color:#fff}
.agym-copy-hero .agym-copy-block:last-child,.agym-copy-hero .agym-copy-block:last-child p:last-child{margin-bottom:0}
@media(max-width:1024px){.agym-copy-hero{min-height:40vh}}
@media(max-width:767px){.agym-copy-hero{min-height:48vh}.agym-copy-hero__content{padding-block:56px}.agym-copy-hero h1{font-size:clamp(34px,9vw,52px)}}

/* Animal Fest page banner: portrait film stays visible on wide screens. */
.agym-fest-video-head{position:relative;isolation:isolate;min-height:clamp(420px,65vh,800px);overflow:hidden;background:#1c1916;color:#fff}
.agym-fest-video-head__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 70%),url('../img/event/animal-fest-video-poster.jpg') center/cover;filter:blur(25px);transform:scale(1.08);z-index:-2}
.agym-fest-video-head__video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1}
.agym-fest-video-title{background:#1c1916;color:#fff;text-align:center;padding:42px 0 50px}
.agym-fest-video-title .agym-phead__t{color:#fff;margin:12px 0 0}
.agym-fest-video-title .agym-crumbs{justify-content:center;color:#fff}
.agym-fest-video-head__play{position:absolute;left:50%;bottom:32px;transform:translateX(-50%);z-index:2;display:inline-flex;padding:12px 22px;background:var(--gold);color:var(--on-gold);border:0;border-radius:var(--radius-pill);font-weight:700;cursor:pointer;white-space:nowrap}
.agym-fest-video-head__play[hidden]{display:none}
@media(max-width:767px){.agym-fest-video-head{min-height:0;aspect-ratio:9/16}.agym-fest-video-head__video{object-fit:contain}.agym-fest-video-title{padding:28px 0 36px}}

/* Parent Consent Waiver on the existing Contact page. */
.agym-consent-page{padding-block:clamp(48px,8vw,110px);max-width:960px}
.agym-consent-page h1{text-align:center;font-family:var(--font-display);font-size:clamp(36px,5vw,64px);margin-bottom:48px}
.agym-consent-form .wpforms-layout-row,.agym-consent-form .wpforms-field-row{display:flex;flex-wrap:wrap;gap:20px}
.agym-consent-form .wpforms-layout-column,.agym-consent-form .wpforms-field-row-block{flex:1 1 230px;min-width:0}
.agym-consent-form .wpforms-field{margin-bottom:24px}
.agym-consent-form .wpforms-field-layout>h3{font-family:var(--font-display);font-size:clamp(24px,3vw,34px);margin:40px 0 26px}
.agym-consent-form label,.agym-consent-form legend{display:block;font-weight:600;margin-bottom:9px}
.agym-consent-form .wpforms-field-sublabel{font-size:13px;font-weight:400;margin-top:5px}
.agym-consent-form input:not([type=checkbox]):not([type=hidden]),.agym-consent-form select{display:block;width:100%;padding:12px 14px;background:var(--surface);color:var(--fg);border:1px solid var(--line-2);border-radius:8px;font:inherit}
.agym-consent-form input:focus,.agym-consent-form select:focus,.agym-consent-canvas:focus{outline:2px solid var(--gold-ink);outline-offset:2px}
.agym-consent-form fieldset{border:0;padding:0;margin:0}
.agym-consent-form ul{list-style:none;padding:0}
.agym-consent-form li{margin:10px 0}
.agym-consent-form .wpforms-field-checkbox li{display:flex;align-items:flex-start;gap:10px}
.agym-consent-form .wpforms-field-checkbox li label{font-weight:400}
.agym-consent-form .wpforms-field-description{font-size:13px;color:var(--muted);margin-top:6px}
.agym-consent-form .wpforms-disclaimer-description{font-size:15px;line-height:1.7;color:var(--fg);padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface);max-height:420px;overflow-y:auto}
.agym-consent-canvas{display:block;width:100%;height:220px;border:1px solid var(--line-2);border-radius:8px;background:#fff;touch-action:none;cursor:crosshair}
.agym-consent-clear{background:none;border:0;color:var(--gold-ink);text-decoration:underline;cursor:pointer;margin-top:10px;padding:4px 0}
.agym-consent-form .wpforms-submit-container{margin-top:30px}
.agym-consent-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.agym-consent-status{padding:14px 18px;border:1px solid var(--gold-ink);background:var(--gold-tint);border-radius:8px;margin-bottom:26px}
@media(max-width:600px){.agym-consent-form .wpforms-layout-column,.agym-consent-form .wpforms-field-row-block{flex-basis:100%}.agym-consent-canvas{height:180px}}
/* Membership: restore the source page's photography and keep every tier readable. */
.agym-membership-page{padding:clamp(40px,6vw,76px) 0 0;overflow:hidden}
.agym-membership-page>.agym-copy-grid{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px;padding:clamp(24px,4vw,56px);margin:0 0 clamp(48px,7vw,88px);background:#111;border-radius:18px}
.agym-membership-plans__image{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:top center;opacity:.28;mix-blend-mode:screen;border-radius:18px!important;pointer-events:none}
.agym-membership-page .agym-copy-card{position:relative;display:flex;min-width:0;padding:26px 26px 24px;border:1px solid rgba(227,174,10,.55);border-radius:14px;background:rgba(12,12,12,.94);box-shadow:0 18px 44px rgba(0,0,0,.35);color:#f7f4eb}
.agym-membership-page .agym-copy-card:nth-child(4),.agym-membership-page .agym-copy-card:nth-child(6){border-color:#e3ae0a;background:rgba(32,27,11,.96)}
.agym-membership-page .uael-module-content,.agym-membership-page .uael-price-table{display:flex;width:100%;height:100%;flex-direction:column}
.agym-membership-page .uael-price-table-header{padding-bottom:14px;border-bottom:1px solid rgba(227,174,10,.28)}
.agym-membership-page .uael-price-table-heading{margin:0;color:#e3ae0a;font-family:var(--font-display);font-size:clamp(22px,2vw,29px);line-height:1.15;letter-spacing:.045em}
.agym-membership-page .uael-price-table-subheading{margin:8px 0 0;color:#c6c0b3;font-size:14px;line-height:1.5}
.agym-membership-page .uael-price-table-price-wrap{padding:20px 0 14px;background:transparent}
.agym-membership-page .uael-pricing-container{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.agym-membership-page .uael-pricing-value{color:#e3ae0a;font-family:var(--font-display);font-size:clamp(38px,4vw,54px);font-weight:800;line-height:1}
.agym-membership-page .uael-price-table-currency{font-size:.55em;vertical-align:top}
.agym-membership-page .uael-price-table-duration{color:#c6c0b3;font-size:14px}
.agym-membership-page .uael-price-table-features-list{display:grid;gap:0;margin:0;padding:0;list-style:none;color:#f3f0e9;background:transparent;text-align:left}
.agym-membership-page .uael-price-table-features-list li{margin:0;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.09);font-size:15px;line-height:1.45}
.agym-membership-page .uael-price-table-features-list li:before{content:"✓";display:inline-block;margin-right:10px;color:#e3ae0a;font-weight:800}
.agym-membership-page .uael-price-table-cta{margin-top:auto;padding:24px 0 0;background:transparent}
.agym-membership-page .uael-price-table-cta .elementor-button,.agym-membership-page>.agym-membership-benefits .elementor-button{display:flex;justify-content:center;width:100%;padding:14px 18px;border:0;border-radius:999px;background:#e3ae0a;color:#15130c;font-family:var(--font-display);font-size:13px;font-weight:800;letter-spacing:.08em;text-align:center;text-decoration:none;transition:transform .2s ease,background .2s ease}
.agym-membership-page .uael-price-table-cta .elementor-button:hover,.agym-membership-page>.agym-membership-benefits .elementor-button:hover{transform:translateY(-2px);background:#f4c72e}
.agym-membership-page>.agym-copy-grid>.agym-copy-card:last-child{grid-column:1/-1}
.agym-membership-page>.agym-copy-grid>.agym-copy-card:last-child .uael-price-table-features-list{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px}
.agym-membership-benefits{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:14px 48px;margin:0 0 40px;padding:clamp(44px,7vw,88px) clamp(24px,5vw,64px);border:1px solid rgba(227,174,10,.28);border-radius:18px;background:#111;color:#fff}
.agym-membership-benefits__image{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center 42%;opacity:.3;mix-blend-mode:screen;border-radius:0!important;pointer-events:none}
.agym-membership-benefits>.agym-copy-block{position:relative;max-width:720px;margin:0}
.agym-membership-benefits>.agym-copy-block:first-of-type,.agym-membership-benefits>.agym-copy-block:nth-of-type(2),.agym-membership-benefits>.agym-copy-block:nth-of-type(3),.agym-membership-benefits>.agym-copy-block:nth-of-type(4){grid-column:1}
.agym-membership-benefits>.agym-copy-block:nth-of-type(4){grid-row:4 / span 2}
.agym-membership-benefits>.agym-copy-block:nth-of-type(5),.agym-membership-benefits>.agym-copy-block:nth-of-type(6){grid-column:2}
.agym-membership-benefits>.agym-copy-block:nth-of-type(5){grid-row:1}
.agym-membership-benefits>.agym-copy-block:nth-of-type(6){grid-row:2 / span 2}
.agym-membership-benefits h2,.agym-membership-benefits h5{color:#fff}
.agym-membership-benefits h6{color:#e3ae0a;letter-spacing:.16em}
.agym-membership-benefits ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:10px 0 0;padding:0;list-style:none}
.agym-membership-benefits li{margin:0;padding:13px 14px;border:1px solid rgba(227,174,10,.38);border-radius:8px;background:rgba(0,0,0,.68);color:#f7f4eb}
.agym-membership-benefits li:before{content:"✓";margin-right:8px;color:#e3ae0a;font-weight:800}
.agym-membership-benefits>.agym-copy-block:nth-of-type(6) .elementor-icon-box-title{font-family:var(--font-display);font-size:clamp(25px,3vw,38px);line-height:1.2}
.agym-membership-benefits>.agym-copy-block:nth-of-type(7){grid-column:2;grid-row:4}
@media(max-width:900px){.agym-membership-page>.agym-copy-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px;gap:18px}.agym-membership-benefits{grid-template-columns:1fr;gap:16px}.agym-membership-benefits>.agym-copy-block:nth-of-type(n){grid-column:1;grid-row:auto}}
@media(max-width:600px){.agym-membership-page{padding-top:32px}.agym-membership-page>.agym-copy-grid{grid-template-columns:minmax(0,1fr);padding:16px;gap:14px;border-radius:12px}.agym-membership-page .agym-copy-card{padding:22px 20px}.agym-membership-page>.agym-copy-grid>.agym-copy-card:last-child{grid-column:auto}.agym-membership-page>.agym-copy-grid>.agym-copy-card:last-child .uael-price-table-features-list,.agym-membership-benefits ul{grid-template-columns:1fr}.agym-membership-benefits{margin-bottom:24px;padding:44px 24px;border-radius:12px}.agym-membership-benefits__image{object-position:60% center}}
/* Contact and Events pages. */
.agym-contact-page{background:#0d0d0d;color:#f5f2ea}
.agym-contact-hero,.agym-events-hero{padding:clamp(72px,10vw,132px) 0 clamp(46px,7vw,80px);background:linear-gradient(110deg,rgba(0,0,0,.94),rgba(0,0,0,.66)),url('../img/source/9ab99c4fd4.jpg') center 45%/cover no-repeat}
.agym-contact-hero h1{max-width:900px;color:#fff;font-family:var(--font-display);font-size:clamp(34px,6vw,70px);line-height:1.08}
.agym-contact-content{padding-block:40px 72px}
.agym-contact-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 42px}
.agym-contact-detail{min-width:0;padding:23px;border:1px solid rgba(227,174,10,.35);border-radius:12px;background:#171717}
.agym-contact-detail>span{color:#e3ae0a;font-family:var(--font-display);font-size:13px;letter-spacing:.15em}
.agym-contact-detail h2{margin:14px 0 8px;color:#fff;font-family:var(--font-display);font-size:21px}
.agym-contact-detail p{margin:0 0 8px;color:#dedbd3;line-height:1.55;overflow-wrap:anywhere}
.agym-contact-detail a,.agym-contact-map a{color:#e3ae0a}
.agym-contact-form{max-width:900px;margin:0 auto;padding:clamp(22px,4vw,42px);border:1px solid rgba(255,255,255,.14);border-radius:16px;background:#171717}
.agym-contact-form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}
.agym-contact-form label{display:grid;gap:8px;color:#f5f2ea;font-weight:600}
.agym-contact-form__wide{grid-column:1/-1}
.agym-contact-form input,.agym-contact-form select,.agym-contact-form textarea{width:100%;min-width:0;padding:13px 14px;border:1px solid #494949;border-radius:8px;background:#0d0d0d;color:#fff;font:inherit}
.agym-contact-form input:focus,.agym-contact-form select:focus,.agym-contact-form textarea:focus{outline:2px solid #e3ae0a;outline-offset:2px}
.agym-contact-form button{margin-top:24px;min-width:180px;cursor:pointer}
.agym-contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.agym-contact-status{max-width:900px;margin:0 auto 22px;padding:16px;border:1px solid #e3ae0a;border-radius:8px;background:#171717;color:#fff}
.agym-contact-map{margin:26px 0 0;text-align:center}
.agym-contact-map-embed{height:380px;margin-top:18px;overflow:hidden;border:1px solid rgba(227,174,10,.35);border-radius:12px;background:#171717}
.agym-contact-map-embed iframe{display:block;width:100%;height:100%;border:0}
.agym-contact-join{max-width:840px;margin:0 auto;padding:clamp(48px,8vw,88px) 0;text-align:center}
.agym-contact-join h2{color:#fff;font-family:var(--font-display);font-size:clamp(28px,5vw,48px);line-height:1.15}
.agym-contact-join p:not(.agym-eyebrow){max-width:700px;margin:16px auto 24px;color:#d6d0c3;line-height:1.7}
.agym-events-page{background:#0a0a0a;color:#f5f2ea;min-height:70vh}
.agym-events-hero{padding:clamp(96px,13vw,168px) 0 76px}
.agym-events-hero h1{margin:0;color:#fff;font-family:var(--font-display);font-size:clamp(52px,9vw,100px);line-height:1;text-transform:uppercase}
.agym-events-hero p:last-child{color:#d4d0c7}
.agym-events-content{padding-block:0 64px}
.agym-events-search{display:flex;flex-direction:column;gap:8px;width:min(100%,320px);margin:0 0 0 auto;padding:14px 18px;border-radius:4px 4px 0 0;background:#e3ae0a;color:#17130a;font-weight:700}
.agym-events-search input{width:100%;padding:8px 0;border:0;border-bottom:1px solid rgba(0,0,0,.25);outline:0;background:transparent;color:#17130a;font:inherit}
.agym-events-search input::placeholder{color:#5c501f}
.agym-events-table-wrap{overflow-x:auto;border:1px solid rgba(255,255,255,.12);border-radius:0 0 12px 12px}
.agym-events-table{width:100%;border-collapse:collapse;table-layout:fixed}
.agym-events-table th{padding:18px 20px;background:#ffdf38;color:#14120b;text-align:left;font-family:var(--font-display);font-size:18px}
.agym-events-table th:first-child{width:25%}.agym-events-table th:last-child{width:24%}
.agym-events-table td{padding:22px 20px;border-top:1px solid rgba(255,255,255,.14);vertical-align:top;line-height:1.6}
.agym-events-title{display:block;color:#e3ae0a;font-weight:800;font-size:18px}
.agym-events-subtitle{display:block;margin-top:5px;color:#aaa}
.agym-events-table time{color:#f5f2ea;white-space:normal}
.agym-events-empty{padding:24px;text-align:center}
.agym-fest-event-details{padding-block:clamp(44px,7vw,80px)}
.agym-fest-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0}
.agym-fest-facts p{display:flex;flex-direction:column;gap:8px;margin:0;padding:22px;border:1px solid rgba(227,174,10,.4);border-radius:10px;background:#151515}
.agym-fest-facts strong,.agym-fest-limited{color:#e3ae0a}
.agym-fest-categories{line-height:1.8}
.agym-fest-limited{font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.agym-fest-flyers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;margin:44px 0}
.agym-fest-flyer{margin:0;padding:14px;border:1px solid rgba(227,174,10,.42);border-radius:12px;background:#121212}
.agym-fest-flyer img{display:block;width:100%;height:auto;max-height:820px;object-fit:contain;border-radius:6px}
.agym-fest-flyer figcaption{padding:13px 4px 2px;color:#d6d0c3;text-align:center}
@media(max-width:900px){.agym-contact-details{grid-template-columns:repeat(2,minmax(0,1fr))}.agym-fest-facts{grid-template-columns:1fr}.agym-fest-flyers{gap:16px}}
@media(max-width:600px){.agym-contact-details,.agym-contact-form__grid,.agym-fest-flyers{grid-template-columns:1fr}.agym-contact-form__wide{grid-column:auto}.agym-contact-form button{width:100%}.agym-events-table,.agym-events-table tbody,.agym-events-table tr,.agym-events-table td{display:block;width:100%}.agym-events-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.agym-events-table tr{padding:8px 18px}.agym-events-table td{padding:12px 0;border:0}.agym-events-table td+td{border-top:1px solid rgba(255,255,255,.1)}.agym-events-table td:nth-child(2):before{content:"Description";display:block;margin-bottom:4px;color:#e3ae0a;font-size:12px;text-transform:uppercase}.agym-events-table td:nth-child(3):before{content:"Date";display:block;margin-bottom:4px;color:#e3ae0a;font-size:12px;text-transform:uppercase}}
/* Contact page matches the supplied desktop and mobile reference. */
.agym-contact-hero{min-height:clamp(430px,54vw,820px);display:flex;align-items:center;padding:clamp(90px,12vw,160px) 0;background-image:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.28)),url('../img/source/799d6ee8a2.jpg');background-position:center 42%}
.agym-contact-hero .agym-wrapin{width:100%}.agym-contact-hero .agym-eyebrow{color:#e3ae0a}.agym-contact-hero h1{max-width:940px;font-size:clamp(38px,6vw,76px);font-weight:400;line-height:1.1;text-transform:uppercase}
.agym-contact-content{padding:clamp(46px,7vw,94px) 0;background:#101719 url('../img/source/e25737e6fc.jpg') center/cover fixed}
.agym-contact-content>.agym-wrapin{width:min(100% - 48px,1390px);max-width:none;margin-inline:auto}
.agym-contact-details{grid-template-columns:1.1fr 1.25fr .55fr 1.5fr;gap:28px;margin:0 0 52px}
.agym-contact-detail{padding:0;border:0;border-radius:0;background:transparent}.agym-contact-detail>span{font-size:23px;font-weight:400}.agym-contact-detail h2{margin:32px 0 28px;font-size:24px;font-weight:400;text-transform:uppercase}.agym-contact-detail p{font-size:20px;line-height:1.65}.agym-contact-detail a{color:#dedbd3;text-decoration:none}.agym-contact-detail a:hover{color:#e3ae0a}
.agym-contact-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:start}
.agym-contact-form{grid-column:1;grid-row:1;display:grid;grid-template-columns:1fr;gap:25px;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent}
.agym-contact-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 26px;align-content:start}.agym-contact-form__grid>fieldset:first-child{grid-column:1/-1}
.agym-contact-form label,.agym-contact-form legend{color:#f6f4ef;font-size:17px;font-weight:700}.agym-contact-form em{color:#ed3333;font-style:normal}.agym-contact-form fieldset{min-width:0;margin:0;padding:0;border:0}.agym-contact-form legend{margin:0 0 13px;padding:0}.agym-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.agym-contact-form .agym-name-fields label{font-weight:400}.agym-contact-form .agym-name-fields small{font-size:15px}
.agym-contact-form input:not([type=checkbox]),.agym-contact-form select,.agym-contact-form textarea{min-height:52px;padding:12px 15px;border:0;border-radius:2px;background:#fff;color:#252525;font-size:17px}.agym-contact-form textarea{min-height:150px}.agym-contact-form input::placeholder{color:#999}.agym-contact-form select{color:#555}
.agym-contact-form .agym-check{display:flex;grid-template-columns:none;align-items:center;gap:13px;margin:0 0 13px;font-size:17px;font-weight:400}.agym-contact-form .agym-check input{width:20px;height:20px;margin:0;accent-color:#e3ae0a}.agym-contact-form__wide{grid-column:1/-1}
.agym-contact-map-embed{grid-column:2;grid-row:1/ span 5;height:clamp(360px,40vw,560px);margin:76px 0 0;overflow:hidden;border:0;border-radius:0;background:#171717}.agym-contact-map-embed iframe{width:100%;height:100%;border:0}.agym-captcha>span{display:flex;align-items:center;gap:12px}.agym-captcha input{width:84px!important;min-height:52px!important}
.agym-contact-form button{justify-self:start;margin:0;min-width:88px;padding:12px 20px;border:0;border-radius:4px;background:#0877b8;color:#fff;font:inherit;font-weight:500}
.agym-contact-status{max-width:none;background:#171717}.agym-contact-join{position:relative;isolation:isolate;display:flex;align-items:center;min-height:580px;max-width:none;margin:0;padding:clamp(76px,11vw,150px) 0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.37)),url('../img/source/799d6ee8a2.jpg') center 35%/cover no-repeat;text-align:left}.agym-contact-join .agym-wrapin{width:min(100% - 48px,1390px);margin:auto}.agym-contact-join .agym-eyebrow{color:#e3ae0a}.agym-contact-join h2{max-width:950px;font-size:clamp(34px,5.5vw,66px);font-weight:400;text-transform:uppercase}.agym-contact-join p:not(.agym-eyebrow){max-width:950px;margin:16px 0 28px;font-size:20px}
@media(max-width:900px){.agym-contact-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px}.agym-contact-main{grid-template-columns:1fr}.agym-contact-form{grid-column:1;grid-row:2}.agym-contact-map-embed{grid-column:1;grid-row:1;height:390px;margin:0 0 24px}}
@media(max-width:600px){.agym-contact-hero{min-height:440px;background-position:58% center}.agym-contact-hero h1{font-size:clamp(34px,10vw,48px)}.agym-contact-content{background-attachment:scroll}.agym-contact-content>.agym-wrapin,.agym-contact-join .agym-wrapin{width:calc(100% - 40px)}.agym-contact-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px;margin-bottom:40px}.agym-contact-detail>span{font-size:19px}.agym-contact-detail h2{margin:19px 0 13px;font-size:19px}.agym-contact-detail p{font-size:15px;line-height:1.5}.agym-contact-form__grid{grid-template-columns:1fr;gap:23px}.agym-contact-form__grid>fieldset:first-child,.agym-contact-form__wide{grid-column:auto}.agym-name-fields{gap:14px}.agym-contact-map-embed{height:330px}.agym-contact-join{min-height:440px}.agym-contact-join p:not(.agym-eyebrow){font-size:17px}.agym-contact-form button{width:auto}}
/* The Events index carries the two original flyer images as a matched pair. */
.agym-events-feature{display:grid;grid-template-columns:minmax(210px,.65fr) minmax(0,1.35fr);align-items:center;gap:30px;margin-top:44px;padding:clamp(20px,3vw,38px);border:1px solid rgba(227,174,10,.28);border-radius:14px;background:linear-gradient(130deg,#171717,#0e0e0e)}
.agym-events-feature__intro h2{margin:8px 0 12px;color:#fff;font-family:var(--font-display);font-size:clamp(32px,4vw,48px);line-height:1.05;text-transform:uppercase}.agym-events-feature__intro>p:not(.agym-eyebrow){margin:0 0 22px;color:#d6d0c3;line-height:1.65}.agym-events-feature .agym-fest-flyers{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0}.agym-events-feature .agym-fest-flyer{padding:9px}.agym-events-feature .agym-fest-flyer img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#080808}.agym-events-feature .agym-fest-flyer figcaption{font-size:13px;line-height:1.4}
.agym-consent-hero{min-height:430px;display:flex;align-items:flex-end;padding:100px 0 64px;background:linear-gradient(90deg,rgba(7,7,7,.86),rgba(7,7,7,.48)),url('../img/photos/hero.jpg') center 42%/cover no-repeat;color:#fff}.agym-consent-hero .agym-wrapin{width:min(1180px,calc(100% - 40px));margin-inline:auto}.agym-consent-hero .agym-crumbs{margin-bottom:42px}.agym-consent-hero .agym-eyebrow{color:var(--gold-ink);font-weight:700;letter-spacing:.16em}.agym-consent-hero h1{max-width:900px;margin:0;color:#fff;font-family:var(--font-display);font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.035em;text-shadow:0 3px 24px rgba(0,0,0,.35);text-transform:uppercase}.agym-consent-hero>div>p:last-child{max-width:680px;margin:20px 0 0;color:#fff;font-size:18px;line-height:1.6;font-weight:600}
@media(max-width:900px){.agym-events-feature{grid-template-columns:1fr}.agym-events-feature__intro{max-width:650px}}
@media(max-width:600px){.agym-events-feature{gap:22px;margin-top:28px;padding:18px}.agym-events-feature .agym-fest-flyers{grid-template-columns:1fr;gap:14px}.agym-events-feature .agym-fest-flyer img{max-height:620px}.agym-consent-hero{min-height:330px;padding:100px 0 38px;background-position:center}.agym-consent-hero .agym-wrapin{width:calc(100% - 28px)}.agym-consent-hero .agym-crumbs{margin-bottom:30px}.agym-consent-hero h1{font-size:42px}.agym-consent-hero>div>p:last-child{font-size:15px}}
