﻿/* ============================================================
   Cork Gyms – Gym Detail Page Styles
   Inspired by hussle.com – mobile-first, clean card layout
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* ── Reset / Base ─────────────────────────────────────────── */
.gym-detail-page,
.gym-wrap * {
	box-sizing: border-box;
}

.gym-wrap {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif;
	color: #1d1d1f;
	background: #ffffff;
	line-height: 1.6;
}

.gym-container {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ── Buttons ──────────────────────────────────────────────── */
.gym-btn {
	display: inline-block;
	padding: 12px 20px;
	border-radius: 6px;
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	transition: opacity 0.2s, background 0.2s;
	width: 100%;
	margin-top: 10px;
}

.gym-btn--cta {
	background: #AD3701;
	color: #fff;
}

.gym-btn--cta:hover { opacity: 0.88; color: #fff; }

.gym-btn--secondary {
	background: #fff;
	color: #AD3701;
	border: 2px solid #AD3701;
}

.gym-btn--secondary:hover { background: #FDF4EF; color: #AD3701; }

.gym-btn--phone {
	background: #1a1a2e;
	color: #fff;
}

.gym-btn--phone:hover { opacity: 0.88; color: #fff; }

.gym-btn--directions {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	width: auto;
	margin-top: 16px;
	background: #fff;
	color: #3c4043;
	padding: 9px 16px;
	border-radius: 4px;
	border: 1px solid #dadce0;
	font-size: 0.88rem;
	font-weight: 500;
	text-decoration: none;
	transition: background 0.15s, box-shadow 0.15s;
}

.gym-btn--directions:hover {
	background: #f8f9fa;
	box-shadow: 0 1px 3px rgba(0,0,0,0.12);
	color: #3c4043;
}

.gym-btn--reviews {
	display: inline-block;
	margin-top: 16px;
	color: #1565c0;
	font-weight: 600;
	text-decoration: underline;
}

/* ── Breadcrumb (absolute top of hero overlay, always visible) */
.gym-breadcrumb {
	position: absolute;
	top: 20px;
	left: 0;
	right: 0;
	z-index: 1;
	max-width: 1140px;
	width: 100%;
	margin: 0 auto;
	padding: 0 20px;
	box-sizing: border-box;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px;
	font-size: 0.82rem;
	font-weight: 500;
	color: rgba(255,255,255,0.9);
	text-shadow: 0 1px 4px rgba(0,0,0,0.7);
}
.gym-breadcrumb a {
	color: rgba(255,255,255,0.9);
	text-decoration: none;
	text-shadow: 0 1px 4px rgba(0,0,0,0.7);
	white-space: nowrap;
}
.gym-breadcrumb a:hover { text-decoration: underline; }
.gym-breadcrumb span {
	margin: 0 4px;
	white-space: nowrap;
}

/* Hide overlay breadcrumb on mobile — replaced by .gym-breadcrumb-mobile above hero */
@media (max-width: 639px) {
	.gym-breadcrumb { display: none; }
}

/* ── Mobile breadcrumb (above hero, page-flow, hidden on desktop) ─────── */
.gym-breadcrumb-mobile {
	display: none;
}

@media (max-width: 639px) {
	.gym-breadcrumb-mobile {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 2px 4px;
		padding: 9px 16px;
		font-size: 0.76rem;
		line-height: 1.4;
		color: #9ca3af;
		background: #fff;
		border-bottom: 1px solid #f0f0f0;
	}
	.gym-breadcrumb-mobile a {
		color: #6b7280;
		text-decoration: none;
		white-space: nowrap;
	}
	.gym-breadcrumb-mobile a:hover { text-decoration: underline; }
	.gym-breadcrumb-mobile__sep { color: #d1d5db; }
	.gym-breadcrumb-mobile__current {
		color: #374151;
		font-weight: 600;
	}
}

/* ── HERO ─────────────────────────────────────────────────── */
.gym-hero {
	position: relative;
	min-height: 420px;
	background: #1a1a2e center/cover no-repeat;
	display: flex;
	align-items: flex-end;
}

.gym-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.72) 100%);
	display: flex;
	align-items: stretch;
	width: 100%;
}

.gym-hero__inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 28px 20px 30px;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.gym-hero__logo {
	width: 60px;
	height: 60px;
	border-radius: 8px;
	object-fit: contain;
	background: #fff;
	padding: 4px;
	margin-bottom: 12px;
}

.gym-hero__name {
	font-size: clamp(1.6rem, 4vw, 2.6rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 6px;
	line-height: 1.2;
}

.gym-hero__location {
	font-size: 1rem;
	font-weight: 500;
	color: rgba(255,255,255,0.85);
	margin: 0 0 10px;
}

.gym-hero__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}

.gym-stars { font-size: 1.1rem; }
.star--full  { color: #f9a825; }
.star--half  { color: #f9a825; opacity: 0.6; }
.star--empty { color: rgba(255,255,255,0.3); }

.gym-hero__rating-value {
	font-size: 1.1rem;
	font-weight: 700;
	color: #fff;
}

.gym-hero__reviews {
	font-size: 0.9rem;
	color: rgba(255,255,255,0.8);
}

/* Hero badges */
.gym-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.gym-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.gym-badge--operational { background: #16a34a; color: #fff; }
.gym-badge--24hr        { background: #1565c0; color: #fff; }
.gym-badge--women       { background: #880e4f; color: #fff; }
.gym-badge--type        { background: rgba(255,255,255,0.2); color: #fff; border: 1px solid rgba(255,255,255,0.4); }
.gym-badge--closed      { background: #4b5563; color: #fff; }
.gym-badge--temp-closed { background: #92400e; color: #fff; }

/* Hero action buttons row (Add to Compare + Write a Review) */
.gym-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
}

.gym-hero__review-btn {
	display: inline-flex;
	align-items: center;
	background: #fff;
	border: none;
	color: #1a1a2e;
	padding: 8px 18px;
	border-radius: 24px;
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}
.gym-hero__review-btn:hover {
	background: #f0f0f0;
	transform: translateY(-1px);
}

/* "View on Google Maps" link shown in hero when no photos */
.gym-hero__maps-link {
	display: inline-block;
	margin-top: 18px;
	background: rgba(255,255,255,0.15);
	border: 1px solid rgba(255,255,255,0.4);
	color: #fff;
	padding: 9px 20px;
	border-radius: 24px;
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
	backdrop-filter: blur(4px);
}
.gym-hero__maps-link:hover {
	background: rgba(255,255,255,0.25);
	color: #fff;
}

/* ── GALLERY (Hussle-style mosaic) ────────────────────────── */
.gym-gallery {
	background: #fff;
	padding: 20px 0 16px;
	border-bottom: 1px solid #e8e8ed;
}

/* Mosaic grid — 1: full; 2: 2/3 + 1/3; 3: 2/3 + stacked 1/3 */
.gym-gallery__mosaic {
	display: grid;
	gap: 8px;
	border-radius: 10px;
	overflow: hidden;
}

.gym-gallery__mosaic--1 {
	grid-template-columns: 1fr;
}

.gym-gallery__mosaic--2 {
	grid-template-columns: 2fr 1fr;
}

/* 3-photo: main takes left 2/3 full height, two thumbs stack right 1/3 */
.gym-gallery__mosaic--3 {
	grid-template-columns: 2fr 1fr;
	grid-template-rows: 1fr 1fr;
}
.gym-gallery__mosaic--3 .gym-gallery__item--main {
	grid-row: 1 / 3;
}

/* 5-photo Hussle-style: big left + 2×2 right grid */
.gym-gallery__mosaic--5 {
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 238px 238px;
	gap: 4px;
}
.gym-gallery__mosaic--5 .gym-gallery__item--main {
	grid-row: 1 / 3;
}
.gym-gallery__mosaic--5 .gym-gallery__item--main img {
	height: 480px; /* 238 + 238 + 4px gap */
}
.gym-gallery__mosaic--5 .gym-gallery__item--thumb img {
	height: 238px;
}

.gym-gallery__item {
	position: relative;
	overflow: hidden;
	display: block;
	text-decoration: none;
	background: #0d1b2a;
	cursor: zoom-in;
}

.gym-gallery__item img {
	width: 100%;
	height: 280px;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.gym-gallery__mosaic--2 .gym-gallery__item--thumb img {
	height: 280px;
}

/* 3-photo: main fills full 560px, thumbs each get 136px (with gap = 280px total) */
.gym-gallery__mosaic--3 .gym-gallery__item--main img {
	height: 560px;
}
.gym-gallery__mosaic--3 .gym-gallery__item--thumb img {
	height: 136px;
	min-height: 136px;
}

.gym-gallery__item:hover img {
	transform: scale(1.04);
}

/* "View all N photos" label on main photo */
.gym-gallery__view-label {
	position: absolute;
	bottom: 14px;
	right: 14px;
	background: rgba(0,0,0,0.65);
	backdrop-filter: blur(4px);
	color: #fff;
	padding: 6px 14px;
	border-radius: 20px;
	font-size: 0.82rem;
	font-weight: 600;
	pointer-events: none;
	transition: background 0.2s;
}

.gym-gallery__item:hover .gym-gallery__view-label {
	background: rgba(0,0,0,0.82);
}

/* "All photos" overlay on last thumbnail */
.gym-gallery__all-label {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	transition: background 0.2s;
	pointer-events: none;
}
.gym-gallery__item--last:hover .gym-gallery__all-label {
	background: rgba(0,0,0,0.6);
}

/* "View on Google Maps" link below mosaic */
.gym-gallery__maps-link {
	display: inline-block;
	margin-top: 10px;
	color: #1565c0;
	font-size: 0.88rem;
	font-weight: 600;
	text-decoration: none;
}

.gym-gallery__maps-link:hover {
	text-decoration: underline;
}

/* Mobile: restore normal top padding (overlay breadcrumb hidden, mobile one is above hero) */
@media (max-width: 639px) {
	.gym-hero__inner { padding-top: 20px; }
	.gym-hero__content { padding-top: 20px; }
}

/* Mobile: stack mosaic vertically */
@media (max-width: 640px) {
	.gym-gallery__mosaic--2,
	.gym-gallery__mosaic--3,
	.gym-gallery__mosaic--5 {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
	}
	.gym-gallery__mosaic--3 .gym-gallery__item--main,
	.gym-gallery__mosaic--5 .gym-gallery__item--main {
		grid-column: 1 / 3;
		grid-row: auto;
	}
	.gym-gallery__item img,
	.gym-gallery__mosaic--2 .gym-gallery__item--thumb img,
	.gym-gallery__mosaic--3 .gym-gallery__item--main img,
	.gym-gallery__mosaic--3 .gym-gallery__item--thumb img,
	.gym-gallery__mosaic--5 .gym-gallery__item--main img,
	.gym-gallery__mosaic--5 .gym-gallery__item--thumb img {
		height: 180px;
	}
	.gym-gallery__mosaic--5 .gym-gallery__item--main img {
		height: 240px;
	}
}

/* Gallery "no photos" fallback card */
.gym-gallery__no-photos {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	background: #0d1b2a;
	border-radius: 10px;
	padding: 28px 20px;
	text-align: center;
	color: rgba(255,255,255,0.55);
	font-size: 0.9rem;
}

.gym-gallery__ph-img {
	width: 100%;
	max-height: 200px;
	object-fit: cover;
	border-radius: 8px;
	opacity: 0.7;
}

.gym-gallery__ph-link {
	color: #AD3701;
	font-weight: 600;
	text-decoration: none;
}
.gym-gallery__ph-link:hover { text-decoration: underline; }

/* ── QUICK FACTS BAR ──────────────────────────────────────── */
.gym-facts {
	background: #f8fafc;
	border-bottom: 1px solid #f1f5f9;
	padding: 0;
}

.gym-facts__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.gym-fact {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 20px 16px;
	flex: 1 1 120px;
	border-right: 1px solid #e8e8ed;
}
.gym-fact:last-child { border-right: none; }

.gym-fact__icon  { font-size: 1.3rem; margin-bottom: 6px; }
.gym-fact__label { font-size: 0.7rem; font-weight: 600; color: #555; text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 5px; }
.gym-fact__value { font-size: 0.9rem; font-weight: 700; color: #1d1d1f; }

/* ── LAYOUT (main + sidebar) ──────────────────────────────── */
.gym-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	padding-top: 20px;
	padding-bottom: 40px;
	align-items: start;
}

@media (min-width: 900px) {
	.gym-layout {
		grid-template-columns: 1fr 340px;
		gap: 0 48px;
		align-items: start;
	}
	/* Explicit grid placement: row 1 = main+sidebar, row 2 = full-width hours, row 3 = owner CTA, row 4 = lower content */
	.gym-layout > main.gym-main  { grid-column: 1; grid-row: 1; }
	.gym-layout > .gym-sidebar   { grid-column: 2; grid-row: 1; }
	.gym-full-width              { grid-column: 1 / -1; grid-row: 2; }
	.gym-owner-cta-row           { grid-column: 1 / -1; grid-row: 3; }
	.gym-layout > div.gym-main   { grid-column: 1; grid-row: 4; }
}

/* ── SECTION base — flat, open style ─────────────────────── */
.gym-section {
	background: transparent;
	border-radius: 0;
	padding: 32px 0;
	margin-bottom: 0;
	box-shadow: none;
	border-bottom: 1px solid #e8e8ed;
}

.gym-section__title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 20px;
	color: #0f172a;
	padding-bottom: 0;
	border-bottom: none;
	letter-spacing: -0.01em;
}

/* ── FACILITIES ───────────────────────────────────────────── */
.gym-facilities__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 0;
}

.gym-facility-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 0;
	background: none;
	border-radius: 0;
	border: none;
}

.gym-facility-item__icon { font-size: 1.25rem; color: #555; flex-shrink: 0; }
.gym-facility-item__label { font-size: 0.92rem; font-weight: 500; color: #1d1d1f; }

/* ── AMENITIES ────────────────────────────────────────────── */
.gym-amenities__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: 0;
}

.gym-amenity-item {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 0.92rem;
	font-weight: 400;
	padding: 11px 0;
	color: #1d1d1f;
}

.gym-amenity-item__icon { font-size: 1.2rem; color: #555; flex-shrink: 0; }

/* ── HOURS + MAP ──────────────────────────────────────────── */
.gym-hours-map {
	padding: 32px 0;
	border-bottom: 1px solid #e8e8ed;
}

.gym-hours-map__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-top: 20px;
}

@media (min-width: 640px) {
	.gym-hours-map__inner { grid-template-columns: 1fr 1.6fr; gap: 48px; }
}

.gym-hours__table {
	width: 100%;
	border-collapse: collapse;
}

.gym-hours__row td {
	padding: 8px 10px;
	border-bottom: 1px solid #f0f0f0;
	font-size: 0.9rem;
	font-weight: 400;
}

.gym-hours__row--today td {
	background: #FDE8DB;
	font-weight: 700;
	color: #AD3701;
}

.gym-hours__day { width: 50%; }

.gym-hours__today-badge {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 7px;
	background: #AD3701;
	color: #fff;
	border-radius: 10px;
	font-size: 0.68rem;
	font-weight: 700;
	vertical-align: middle;
	text-transform: uppercase;
}

.gym-hours__time--closed { color: #c62828; }

.gym-hours__address {
	display: flex;
	align-items: flex-start;
	gap: 5px;
	margin: 10px 0 6px;
	font-size: 0.9rem;
	color: #4b5563;
	line-height: 1.3;
}

/* Permanently closed — hours replacement notice */
.gym-hours--closed-notice {
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.gym-hours__closed-msg {
	color: #6b7280;
	font-size: 0.95rem;
	font-style: italic;
	margin: 0 0 12px;
}

/* Closed status alert banners (below hero) */
.gym-closed-alert {
	padding: 14px 24px;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-size: 0.9rem;
	line-height: 1.5;
}
.gym-closed-alert--permanent {
	background: #fef3c7;
	border-top: 3px solid #d97706;
	color: #78350f;
}
.gym-closed-alert--permanent svg { stroke: #d97706; }
.gym-closed-alert--temporary {
	background: #eff6ff;
	border-top: 3px solid #3b82f6;
	color: #1e3a5f;
}
.gym-closed-alert--temporary svg { stroke: #3b82f6; }
.gym-closed-alert svg {
	flex-shrink: 0;
	margin-top: 2px;
}
.gym-closed-alert strong {
	display: block;
	font-weight: 600;
	margin-bottom: 2px;
}

.gym-map iframe {
	border-radius: 8px;
	display: block;
}

.gym-address {
	margin-top: 16px;
	font-style: normal;
	font-size: 0.9rem;
	color: #555;
}

/* ── ABOUT ────────────────────────────────────────────────── */
.gym-about__text {
	font-size: 1rem;
	font-weight: 400;
	color: #444;
	line-height: 1.7;
}

.gym-callout {
	margin-top: 20px;
	padding: 16px 20px;
	border-radius: 8px;
	border-left: 4px solid #880e4f;
	background: #fce4ec;
}

.gym-callout--women strong {
	display: block;
	margin-bottom: 6px;
	color: #880e4f;
}

.gym-callout p { margin: 0; font-size: 0.9rem; }

/* ── CLASSES ──────────────────────────────────────────────── */
.gym-classes__note {
	font-size: 0.9rem;
	margin-bottom: 16px;
	color: #444;
}

.gym-section__empty {
	font-size: 0.9rem;
	color: #999;
	font-style: italic;
	margin: 0 0 16px;
}

.gym-classes__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gym-class-chip {
	display: inline-block;
	padding: 6px 16px;
	background: #FDE8DB;
	color: #AD3701;
	border-radius: 20px;
	font-size: 0.85rem;
	font-weight: 600;
	border: 1px solid #F5C9B5;
}

/* ── REVIEWS ──────────────────────────────────────────────── */
.gym-reviews__inner {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	align-items: flex-start;
}

.gym-reviews__summary {
	text-align: center;
	min-width: 100px;
}

.gym-reviews__score {
	font-size: 3.5rem;
	font-weight: 800;
	line-height: 1;
	color: #1a1a2e;
}

.gym-reviews__stars {
	font-size: 1.2rem;
	color: #f9a825;
	margin: 6px 0;
}

.gym-reviews__count {
	font-size: 0.8rem;
	color: #777;
}

.gym-reviews__bars { flex: 1 1 200px; }

.gym-reviews__bar-row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.gym-reviews__bar-label {
	width: 28px;
	font-size: 0.82rem;
	text-align: right;
	color: #555;
}

.gym-reviews__bar-track {
	flex: 1;
	height: 10px;
	background: #eeeeee;
	border-radius: 5px;
	overflow: hidden;
}

.gym-reviews__bar-fill {
	height: 100%;
	background: #f9a825;
	border-radius: 5px;
	transition: width 0.6s ease;
}

.gym-reviews__bar-count {
	width: 36px;
	font-size: 0.8rem;
	color: #555;
}

/* ── FAQ ──────────────────────────────────────────────────── */
.gym-faq__list {
	border: 1px solid #e8e8ed;
	border-radius: 12px;
	overflow: hidden;
}

.gym-faq__item {
	border-bottom: 1px solid #e8e8ed;
}

.gym-faq__item:last-child {
	border-bottom: none;
}

.gym-faq__question {
	width: 100%;
	background: #fff;
	border: none;
	border-left: 3px solid transparent;
	text-align: left;
	padding: 20px 24px;
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	color: #1a1a2e;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.gym-faq__question:hover {
	background: #fdf8f6;
	color: #AD3701;
}

.gym-faq__question[aria-expanded="true"] {
	background: #fdf8f6;
	color: #AD3701;
	border-left-color: #AD3701;
}

.gym-faq__chevron {
	font-size: 0.65rem;
	flex-shrink: 0;
	color: #bbb;
	transition: transform 0.25s, color 0.25s;
}

.gym-faq__question:hover .gym-faq__chevron,
.gym-faq__question[aria-expanded="true"] .gym-faq__chevron {
	color: #AD3701;
}

.gym-faq__question[aria-expanded="true"] .gym-faq__chevron {
	transform: rotate(180deg);
}

.gym-faq__answer {
	padding: 2px 24px 22px 27px;
	font-size: 0.9rem;
	line-height: 1.65;
	color: #444;
	background: #fdf8f6;
	border-left: 3px solid #AD3701;
}

.gym-faq__answer p { margin: 0; }

/* ── PRICING SIDEBAR ──────────────────────────────────────── */
.gym-sidebar { }

.gym-pricing-card {
	background: #fff;
	border-radius: 16px;
	padding: 28px 24px;
	box-shadow: 0 4px 24px rgba(0,0,0,0.09), 0 1px 4px rgba(0,0,0,0.04);
	border: none;
	position: sticky;
	top: 20px;
}

.gym-pricing-card__title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 20px;
	color: #1d1d1f;
	padding-bottom: 0;
	border-bottom: none;
}

.gym-pricing-card__row {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #f0f0f0;
}

.gym-pricing-card__icon { font-size: 1.2rem; flex-shrink: 0; padding-top: 2px; color: #555; }

.gym-pricing-card__row > div { flex: 1; min-width: 0; }

.gym-pricing-card__row strong {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #555;
	margin-bottom: 4px;
}

.gym-pricing-card__row p {
	margin: 0;
	font-size: 0.92rem;
	color: #1d1d1f;
	white-space: pre-wrap;
}

.gym-pricing-card__price {
	font-size: 1.05rem;
	font-weight: 700;
	color: #AD3701;
	margin: 0 0 4px;
	white-space: normal;
}

.gym-pricing-card__price--secondary {
	font-size: 0.9rem;
	font-weight: 600;
	color: #555;
}

.gym-pricing-card__badge {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: #AD3701;
	margin: 8px 0;
}

.gym-pricing-card__badge--trial {
	background: #FDF4EF;
	padding: 8px 12px;
	border-radius: 6px;
}

/* ── COMMUNITY SURVEY RATINGS ─────────────────────────────── */
.gym-survey {
	background: #FDF4EF;
	border-radius: 12px;
	padding: 24px !important;
	border: 1px solid #F5C9B5 !important;
	border-bottom: 1px solid #F5C9B5 !important;
	margin-bottom: 24px;
}

.gym-survey__header {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 20px;
}

.gym-survey__header .gym-section__title { margin-bottom: 0; }

.gym-survey__count {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	color: #AD3701;
	background: rgba(173,55,1,0.10);
	border: 1px solid rgba(173,55,1,0.20);
	padding: 3px 10px;
	border-radius: 20px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.gym-survey__bars { display: flex; flex-direction: column; gap: 16px; }

.gym-survey__bar-row {
	display: flex;
	align-items: center;
	gap: 14px;
}

.gym-survey__bar-label {
	min-width: 200px;
	flex-shrink: 0;
	white-space: nowrap;
	font-size: 0.88rem;
	font-weight: 500;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: #374151;
}

.gym-survey__bar-track {
	flex: 1;
	height: 12px;
	background: rgba(173,55,1,0.12);
	border-radius: 999px;
	overflow: hidden;
}

.gym-survey__bar-fill {
	height: 100%;
	background: #AD3701;
	border-radius: 999px;
	transition: width 0.6s ease;
}

.gym-survey__bar-score {
	width: 44px;
	text-align: right;
	font-size: 0.92rem;
	font-weight: 700;
	color: #AD3701;
	flex-shrink: 0;
}

.gym-survey__bar-max {
	font-size: 0.72rem;
	font-weight: 400;
	color: rgba(173,55,1,0.55);
}

/* ── CROWDING BREAKDOWN ───────────────────────────────────── */
.gym-survey__crowding {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #F5C9B5;
}

.gym-survey__crowding-title {
	font-size: 1rem;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 2px;
}

.gym-survey__crowding-sub {
	font-size: 0.75rem;
	color: #999;
	margin: 0 0 16px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.gym-survey__crowding-rows { display: flex; flex-direction: column; gap: 8px; }

.gym-survey__crowding-row {
	display: flex;
	align-items: center;
	gap: 10px;
}

.gym-survey__crowding-slot {
	width: 155px;
	flex-shrink: 0;
	font-size: 0.81rem;
	font-weight: 600;
	color: #374151;
}

.gym-survey__crowding-track {
	flex: 1;
	height: 10px;
	background: #e8e8ed;
	border-radius: 999px;
	overflow: hidden;
}

.gym-survey__crowding-fill {
	height: 100%;
	border-radius: 999px;
	transition: width 0.6s ease;
}

/* Traffic light colors — crowding */
.cg-band--quiet       { background: #2563eb; }
.cg-band--comfortable { background: #16a34a; }
.cg-band--busy        { background: #ea8c00; }
.cg-band--crowded     { background: #dc2626; }

/* Cleanliness label badge */
.gym-survey__clean-badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 3px 9px;
	border-radius: 999px;
	color: #fff;
	white-space: nowrap;
	flex-shrink: 0;
}
.cg-clean--spotless   { background: #16a34a; }
.cg-clean--clean      { background: #2563eb; }
.cg-clean--acceptable { background: #ea8c00; }
.cg-clean--below      { background: #dc6820; }
.cg-clean--poor       { background: #dc2626; }

.gym-survey__crowding-score {
	font-size: 0.8rem;
	font-weight: 700;
	color: #374151;
	width: 26px;
	flex-shrink: 0;
	text-align: right;
}

.gym-survey__crowding-band {
	flex-shrink: 0;
	width: 108px;
	text-align: center;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 3px 0;
	border-radius: 20px;
	color: #fff;
}

/* Empty / no-data slot rows */
.gym-survey__crowding-row--empty {
	opacity: 0.55;
}
.gym-survey__crowding-track--empty {
	background: #e5e7eb;
}
.gym-survey__crowding-band--nodata {
	background: #e5e7eb;
	color: #6b7280;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 3px 0;
	border-radius: 20px;
	width: 108px;
	text-align: center;
	flex-shrink: 0;
}

/* Tooltip icon */
.gym-survey__crowding-tip {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	color: #bbb;
	cursor: help;
	position: relative;
	line-height: 1;
}

.gym-survey__crowding-tip::after {
	content: attr(data-tip);
	position: absolute;
	bottom: calc(100% + 7px);
	left: 50%;
	transform: translateX(-50%);
	background: #1d1d1f;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 400;
	padding: 5px 11px;
	border-radius: 6px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
	z-index: 10;
}

.gym-survey__crowding-tip:hover::after {
	opacity: 1;
}

/* Survey CTA */
.gym-survey__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #f0d9cc;
}
.gym-survey__cta-text strong {
	display: block;
	font-size: 0.95rem;
	color: #1d1d1f;
	margin-bottom: 4px;
}
.gym-survey__cta-text p {
	font-size: 0.82rem;
	color: #6b7280;
	margin: 0;
	line-height: 1.5;
}
.gym-survey__cta-btn {
	flex-shrink: 0;
	background: #AD3701;
	color: #fff;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 9px 16px;
	border-radius: 8px;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s ease;
}
.gym-survey__cta-btn:hover { background: #8f2d01; color: #fff; }

@media (max-width: 640px) {
	.gym-survey { padding: 18px !important; }
	/* Hide the bar track on mobile — show score + badge only, like crowding rows */
	.gym-survey__bar-track { display: none; }
	.gym-survey__bar-label { width: auto; flex: 1; font-size: 0.82rem; }
	.gym-survey__bar-score { width: 36px; font-size: 0.84rem; }
	.gym-survey__crowding-slot { width: 120px; font-size: 0.75rem; }
	.gym-survey__cta { flex-direction: column; align-items: flex-start; }
	.gym-survey__cta-btn { width: 100%; text-align: center; }
}

/* ── SECTION FEEDBACK PROMPTS ─────────────────────────────── */
.gym-feedback-prompt {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid #eee;
}
.gym-feedback-prompt__text {
	font-size: 0.82rem;
	color: #6b7280;
	line-height: 1.5;
}
.gym-feedback-prompt__text strong,
.gym-feedback-prompt__text > :first-child {
	font-weight: 600;
	color: #444;
}
.gym-feedback-prompt__sub {
	display: block;
	font-weight: 400;
	color: #9ca3af;
	font-size: 0.78rem;
}
.gym-feedback-prompt__btn {
	flex-shrink: 0;
	background: none;
	border: 1px solid #AD3701;
	color: #AD3701;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 7px 14px;
	border-radius: 8px;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}
.gym-feedback-prompt__btn:hover {
	background: #AD3701;
	color: #fff;
}
@media (max-width: 640px) {
	.gym-feedback-prompt { flex-direction: column; align-items: flex-start; }
	.gym-feedback-prompt__btn { width: 100%; text-align: center; }
}

/* Sidebar pricing variant — compact, no border-top (card already separates) */
.gym-feedback-prompt--pricing {
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid #eee;
}
.gym-feedback-prompt--pricing .gym-feedback-prompt__btn {
	width: 100%;
	text-align: center;
	font-size: 0.78rem;
	padding: 7px 14px;
}

/* ── ABOUT ─ body text colour ─────────────────────────────── */
.gym-about__text { color: #444; }

/* ── REVIEWS ─ score colour ───────────────────────────────── */
.gym-reviews__score { color: #1d1d1f; }

/* ── FAQ ─ question colour (default only; hover/expanded override above) ── */
.gym-faq__question:not(:hover):not([aria-expanded="true"]) { color: #1a1a2e; }

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 768px) {
	.gym-facts__grid .gym-fact { flex: 1 1 calc(50% - 1px); }
	.gym-section__title { font-size: 1.1rem; }
	.gym-pricing-card { padding: 20px 16px; }
}

@media (max-width: 640px) {
	.gym-hero { min-height: 320px; padding-bottom: 24px; }
	.gym-hero__name { font-size: 1.5rem; }
	.gym-section { padding: 24px 0; }
	.gym-pricing-card { position: static; }
	.gym-facts__grid .gym-fact { flex: 1 1 calc(50% - 1px); border-bottom: 1px solid #e8e8ed; }
	.gym-hours__map iframe { height: 240px; }
	.gym-reviews__bar-label { width: 24px; font-size: 0.75rem; }
	.gym-reviews__bar-count { width: 28px; font-size: 0.75rem; }
}

@media (min-width: 900px) {
	.gym-main .gym-section:last-child { border-bottom: none; }
	.gym-pricing-card { padding: 32px 24px; }
}

/* ── Archive grid: single column on small phones ────────────────── */
@media (max-width: 599px) {
	.archive-grid { grid-template-columns: 1fr !important; }
}

/* ── Custom Review Modal ─────────────────────────────────────────── */
.cg-review-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.cg-review-modal[hidden] { display: none; }

.cg-review-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.55);
	cursor: pointer;
}

.cg-review-modal__box {
	position: relative;
	background: #fff;
	border-radius: 16px;
	padding: 28px 24px 24px;
	width: 100%;
	max-width: 440px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 8px 40px rgba(0,0,0,0.25);
}

.cg-review-modal__close {
	position: absolute;
	top: 12px;
	right: 14px;
	background: none;
	border: none;
	font-size: 1.5rem;
	line-height: 1;
	color: #6b7280;
	cursor: pointer;
	padding: 4px 8px;
	touch-action: manipulation;
}
.cg-review-modal__close:hover { color: #111; }

.cg-review-modal__title {
	font-size: 1.15rem;
	font-weight: 700;
	color: #111827;
	margin: 0 0 2px;
	padding-right: 32px;
}

.cg-review-modal__sub {
	font-size: 0.82rem;
	color: #9ca3af;
	margin: 0 0 20px;
}

.cg-review-modal__row {
	margin-bottom: 16px;
}

.cg-review-modal__row label {
	display: block;
	font-size: 0.88rem;
	font-weight: 600;
	color: #374151;
	margin-bottom: 6px;
}

.cg-review-modal__row label small {
	font-weight: 400;
	color: #9ca3af;
	font-size: 0.78rem;
}

.cg-review-scale {
	display: flex;
	gap: 4px;
}

.cg-review-scale__btn {
	flex: 1;
	min-width: 0;
	padding: 7px 0;
	font-size: 0.8rem;
	font-weight: 600;
	border: 1.5px solid #e5e7eb;
	border-radius: 6px;
	background: #fff;
	color: #374151;
	cursor: pointer;
	transition: background 0.12s, border-color 0.12s, color 0.12s;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}
.cg-review-scale__btn:hover {
	border-color: #AD3701;
	color: #AD3701;
}
.cg-review-scale__btn.is-selected {
	background: #AD3701;
	border-color: #AD3701;
	color: #fff;
}

.cg-review-modal__comment {
	width: 100%;
	border: 1.5px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 0.88rem;
	font-family: inherit;
	resize: none;
	color: #111827;
	box-sizing: border-box;
}
.cg-review-modal__comment:focus {
	outline: none;
	border-color: #AD3701;
}

.cg-review-modal__submit {
	width: 100%;
	padding: 12px;
	background: #AD3701;
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	margin-top: 4px;
	transition: opacity 0.15s;
	touch-action: manipulation;
}
.cg-review-modal__submit:disabled {
	opacity: 0.4;
	cursor: default;
}
.cg-review-modal__submit:not(:disabled):hover {
	opacity: 0.88;
}

.cg-review-modal__error {
	font-size: 0.82rem;
	color: #dc2626;
	margin: 8px 0 0;
	text-align: center;
}

.cg-review-modal__thanks {
	text-align: center;
	padding: 20px 0 8px;
}
.cg-review-modal__thanks svg {
	margin-bottom: 12px;
}
.cg-review-modal__thanks p {
	font-size: 1rem;
	font-weight: 700;
	color: #111827;
	margin: 0 0 4px;
}
.cg-review-modal__thanks-sub {
	font-size: 0.84rem !important;
	color: #9ca3af !important;
	font-weight: 400 !important;
}

/* ── Gym owner CTA strip ──────────────────────────────────────────────────── */

.gym-owner-cta-row {
	padding: 20px 0 8px;
}

.gym-owner-cta {
	display: flex;
	align-items: center;
	gap: 20px;
	background: #f8fafc;
	border: 1px solid #e8edf2;
	border-left: 3px solid #AD3701;
	border-radius: 10px;
	padding: 18px 22px;
}

.gym-owner-cta__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	background: #fff3ee;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.gym-owner-cta__icon svg {
	display: block;
}

.gym-owner-cta__body {
	flex: 1;
	min-width: 0;
}

.gym-owner-cta__heading {
	font-size: 0.9rem;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 3px;
}

.gym-owner-cta__sub {
	font-size: 0.82rem;
	color: #6b7280;
	margin: 0;
	line-height: 1.5;
}

.gym-owner-cta__btn {
	flex-shrink: 0;
	background: #AD3701;
	color: #fff;
	text-decoration: none;
	font-size: 0.82rem;
	font-weight: 600;
	padding: 9px 18px;
	border-radius: 20px;
	border: none;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.2s;
	font-family: inherit;
}

.gym-owner-cta__btn:hover {
	background: #8f2d01;
}

@media (max-width: 600px) {
	.gym-owner-cta {
		flex-wrap: wrap;
		gap: 12px;
	}
	.gym-owner-cta__btn {
		width: 100%;
		text-align: center;
	}
}

/* ── Gym claim modal ──────────────────────────────────────────────────────── */

.cg-claim-modal {
	position: fixed;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10001;
}

.cg-claim-modal[hidden] {
	display: none;
}

.cg-claim-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.55);
}

.cg-claim-modal__box {
	position: relative;
	background: #fff;
	border-radius: 16px;
	padding: 36px 32px 28px;
	width: 100%;
	max-width: 440px;
	margin: 16px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.22);
	z-index: 1;
}

.cg-claim-modal__close {
	position: absolute;
	top: 14px;
	right: 16px;
	background: none;
	border: none;
	font-size: 1.4rem;
	color: #9ca3af;
	cursor: pointer;
	line-height: 1;
	padding: 4px 6px;
}

.cg-claim-modal__close:hover {
	color: #374151;
}

.cg-claim-modal__heading {
	font-size: 1.1rem;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 4px;
}

.cg-claim-modal__sub {
	font-size: 0.84rem;
	color: #6b7280;
	margin: 0 0 22px;
	line-height: 1.5;
}

.cg-claim-modal__gym-name {
	color: #AD3701;
	font-weight: 700;
}

.cg-claim-modal__label-hint {
	font-weight: 400;
	color: #9ca3af;
	font-size: 0.76rem;
}

.cg-claim-modal__field {
	margin-bottom: 14px;
}

.cg-claim-modal__label {
	display: block;
	font-size: 0.8rem;
	font-weight: 600;
	color: #374151;
	margin-bottom: 5px;
}

.cg-claim-modal__input,
.cg-claim-modal__textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1.5px solid #e5e7eb;
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 0.88rem;
	font-family: inherit;
	color: #1a1a2e;
	background: #fff;
	transition: border-color 0.15s;
	outline: none;
}

.cg-claim-modal__input:focus,
.cg-claim-modal__textarea:focus {
	border-color: #AD3701;
}

.cg-claim-modal__textarea {
	resize: vertical;
	min-height: 88px;
}

.cg-claim-modal__error {
	font-size: 0.8rem;
	color: #dc2626;
	margin: 0 0 10px;
}

.cg-claim-modal__submit {
	width: 100%;
	background: #AD3701;
	color: #fff;
	border: none;
	border-radius: 8px;
	padding: 13px;
	font-size: 0.95rem;
	font-weight: 600;
	font-family: inherit;
	cursor: pointer;
	transition: background 0.2s;
	margin-top: 6px;
}

.cg-claim-modal__submit:hover:not(:disabled) {
	background: #8f2d01;
}

.cg-claim-modal__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.cg-claim-modal__thanks {
	text-align: center;
	padding: 12px 0 4px;
}

.cg-claim-modal__thanks p {
	font-size: 1rem;
	font-weight: 700;
	color: #111827;
	margin: 12px 0 4px;
}

.cg-claim-modal__thanks-sub {
	font-size: 0.84rem;
	color: #9ca3af;
}
