:root {
	--yoger-ink: var(--color_text, #333);
	--yoger-muted: #68737a;
	--yoger-main: var(--color_main, #04384c);
	--yoger-main-dark: var(--color_main_dark, #032a39);
	--yoger-main-thin: var(--color_main_thin, rgba(5, 70, 95, .05));
	--yoger-accent: #e84c3d;
	--yoger-accent-dark: #d93f31;
	--yoger-accent-thin: #fff6ed;
	--yoger-line: var(--color_border, rgba(199, 199, 199, .5));
	--yoger-white: var(--color_content_bg, #fff);
	--yoger-shadow: var(--swl-box_shadow, 0 2px 4px rgba(0, 0, 0, .05));
}

.yoger-portal,
.yoger-studio-detail {
	color: var(--yoger-ink);
	font-family: var(--swl-font_family, inherit);
	font-size: 16px;
	font-weight: var(--swl-font_weight, 500);
	line-height: 1.8;
}

.yoger-portal__hero {
	margin-bottom: 28px;
	padding: clamp(28px, 6vw, 56px);
	border: 1px solid var(--yoger-line);
	border-radius: 12px;
	background: linear-gradient(135deg, var(--yoger-main-thin), var(--yoger-white));
	box-shadow: var(--yoger-shadow);
}

.yoger-portal__eyebrow {
	margin: 0 0 6px;
	color: var(--yoger-main);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .16em;
}

.yoger-portal__hero h2 {
	margin: 0 0 10px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--yoger-ink);
	font-size: clamp(26px, 5vw, 42px);
	line-height: 1.35;
}

.yoger-portal__hero h2::before,
.yoger-portal__hero h2::after,
.yoger-card h3::before,
.yoger-card h3::after,
.yoger-cta h2::before,
.yoger-cta h2::after {
	display: none;
	content: none;
}

.yoger-portal__hero p:last-child { margin-bottom: 0; }

.yoger-filter {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 24px;
	padding: 20px;
	border: 1px solid var(--yoger-line);
	border-radius: 12px;
	background: var(--yoger-white);
	box-shadow: var(--yoger-shadow);
}

.yoger-filter label span {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	font-weight: 700;
}

.yoger-filter input,
.yoger-filter select {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	padding: 9px 12px;
	border: 1px solid var(--yoger-line);
	border-radius: 8px;
	background: #fff;
	color: var(--yoger-ink);
	font: inherit;
}

.yoger-filter__actions {
	display: flex;
	grid-column: 1 / -1;
	align-items: center;
	gap: 16px;
}

.yoger-filter button,
.yoger-button {
	display: inline-flex;
	box-sizing: border-box;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border: 0;
	border-radius: 12px;
	font: inherit;
	font-weight: 800;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
	cursor: pointer;
}

.yoger-filter button,
.yoger-button--primary {
	background: var(--yoger-main);
	color: #fff !important;
}

.yoger-filter button:hover,
.yoger-button--primary:hover { background: var(--yoger-main-dark); }

.yoger-button--cta {
	background: linear-gradient(135deg, var(--yoger-accent), #f06a3c);
	box-shadow: 0 7px 18px rgba(35, 130, 95, .22);
	color: #fff !important;
}

.yoger-button--cta:hover { background: linear-gradient(135deg, var(--yoger-accent-dark), #dc5834); }

.yoger-button--sub {
	border: 1px solid var(--yoger-main);
	background: #fff;
	color: var(--yoger-main) !important;
}

.yoger-results__head { margin: 18px 0; }
.yoger-results__head strong { font-size: 1.35em; }

.yoger-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.yoger-card {
	overflow: hidden;
	border: 1px solid var(--yoger-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: var(--yoger-shadow);
}

.yoger-card__image { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.yoger-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.yoger-card__image:hover img { transform: scale(1.025); }
.yoger-card__body { display: flex; flex-direction: column; min-height: 310px; padding: 18px; }
.yoger-card h3 { position: static; margin: 10px 0; padding: 0; border: 0; background: none; font-size: 19px; line-height: 1.5; }
.yoger-card h3 a { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.yoger-card h3 a { color: var(--yoger-ink); text-decoration: none; }
.yoger-card__location { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--yoger-muted); font-size: 14px; }

.yoger-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.yoger-tags span { padding: 3px 9px; border-radius: 999px; background: var(--yoger-main-thin); color: var(--yoger-main); font-size: 12px; font-weight: 700; }

.yoger-card__price { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--yoger-line); }
.yoger-card__price span { color: var(--yoger-muted); font-size: 13px; }
.yoger-card__price strong { font-size: 18px; }
.yoger-verified { color: var(--yoger-muted); font-size: 12px; }
.yoger-card__links,
.yoger-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.yoger-card__links .yoger-button { flex: 1 1 140px; font-size: 14px; }
.yoger-card__conversion { margin-top: auto; padding-top: 14px; }
.yoger-card__conversion .yoger-button { width: 100%; min-height: 46px; font-size: 14px; }
.yoger-card__conversion small { display: block; margin-top: 6px; color: var(--yoger-muted); font-size: 11px; }
.yoger-button--official { width: min(100%, 460px); border: 1px solid var(--yoger-main); color: var(--yoger-main); background: #fff; }

.yoger-empty { padding: 36px; border-radius: 12px; background: var(--yoger-main-thin); text-align: center; }
.yoger-pagination { margin-top: 28px; }
.yoger-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 0; list-style: none; }
.yoger-pagination a,
.yoger-pagination span { display: grid; min-width: 42px; min-height: 42px; place-items: center; border: 1px solid var(--yoger-line); border-radius: 50%; text-decoration: none; }
.yoger-pagination .current { border-color: var(--yoger-main); background: var(--yoger-main); color: #fff; }

.yoger-cta {
	margin: 28px 0;
	padding: clamp(22px, 4vw, 34px);
	border: 1px solid #edc09c;
	border-radius: 12px;
	background: var(--yoger-accent-thin);
}

.yoger-cta__label { display: inline-block; margin: 0 0 8px; padding: 4px 10px; border-radius: 999px; background: var(--yoger-main); color: #fff; font-size: 12px; font-weight: 800; }
.yoger-cta h2 { margin: 4px 0 12px; padding: 0; border: 0; background: none; color: var(--yoger-ink); font-size: clamp(21px, 4vw, 28px); }
.yoger-cta ul { margin: 12px 0 18px; }
.yoger-cta small { display: block; margin-top: 10px; color: var(--yoger-muted); }
.yoger-button--cta { width: min(100%, 460px); min-height: 54px; font-size: 17px; }
.yoger-cta--photo { display: grid; grid-template-columns: minmax(0, 36%) minmax(0, 1fr); gap: 24px; align-items: center; }
.yoger-cta__visual { position: relative; overflow: hidden; border-radius: 10px; aspect-ratio: 4 / 3; }
.yoger-cta__visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
.yoger-cta__visual span { position: absolute; right: 8px; bottom: 8px; left: 8px; padding: 5px 8px; border-radius: 4px; color: #fff; background: rgba(12, 42, 49, .82); font-size: 11px; }
.yoger-cta__visual--ad { aspect-ratio: auto; }
.yoger-cta__visual--ad img { width: 100%; height: auto; object-fit: contain; }
.yoger-cta__visual--ad a { display: block; max-width: 100%; }
.yoger-cta__visual--ad .yoger-impression-pixel { position: absolute; width: 1px !important; height: 1px !important; opacity: 0; }
.yoger-cta__body { min-width: 0; }
.yoger-impression-pixel { position: absolute; width: 1px; height: 1px; }

.yoger-detail-table { overflow: hidden; border: 1px solid var(--yoger-line); border-radius: 8px; }
.yoger-detail-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.yoger-detail-highlights > div { padding: 15px 17px; border: 1px solid var(--yoger-line); border-radius: 10px; background: var(--yoger-main-thin); }
.yoger-detail-highlights span { display: block; color: var(--yoger-muted); font-size: 12px; font-weight: 700; }
.yoger-detail-highlights strong { display: block; overflow-wrap: anywhere; font-size: 16px; }
.yoger-campaign { margin: 32px 0; padding: clamp(20px, 4vw, 30px); border: 1px solid #edc09c; border-radius: 12px; background: var(--yoger-accent-thin); }
.yoger-campaign__label { margin: 0 0 5px; color: var(--yoger-accent-dark); font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.yoger-campaign h2 { margin: 0 0 12px; padding: 0; border: 0; background: none; font-size: clamp(20px, 4vw, 27px); }
.yoger-campaign__note { color: var(--yoger-muted); font-size: 13px; }
.yoger-detail-table__row { display: grid; grid-template-columns: minmax(120px, 28%) 1fr; border-bottom: 1px solid var(--yoger-line); }
.yoger-detail-table__row:last-child { border-bottom: 0; }
.yoger-detail-table__row > div { padding: 13px 15px; }
.yoger-detail-table__row > div:first-child { background: var(--yoger-main-thin); font-weight: 700; }
.yoger-verified--detail { margin-top: 12px; }
.yoger-map { overflow: hidden; border-radius: 12px; }
.yoger-map iframe { display: block; border: 0; }

.yoger-decision-guide,
.yoger-studio-faq {
	margin: 42px 0;
	padding: clamp(22px, 4vw, 34px);
	border: 1px solid var(--yoger-line);
	border-radius: 16px;
	background: #f8fbfa;
}
.yoger-decision-guide ul { margin: 18px 0 0; padding-left: 1.3em; }
.yoger-decision-guide li + li { margin-top: 8px; }
.yoger-studio-faq details { border-top: 1px solid var(--yoger-line); padding: 16px 0; }
.yoger-studio-faq details:last-child { border-bottom: 1px solid var(--yoger-line); }
.yoger-studio-faq summary { cursor: pointer; font-weight: 700; }
.yoger-studio-faq details p { margin: 12px 0 0; }
.yoger-nearby { margin: 48px 0; }
.yoger-nearby .yoger-card-grid { margin-top: 20px; }
.yoger-compare-scroll { max-width: 100%; overflow-x: auto; margin: 18px 0 0; border: 1px solid var(--yoger-line); border-radius: 12px; background: #fff; }
.yoger-compare-scroll:focus-visible { outline: 3px solid var(--yoger-accent); outline-offset: 3px; }
.yoger-compare-table { width: 100%; min-width: 760px; table-layout: fixed; border-collapse: collapse; font-size: 14px; }
.yoger-compare-table caption { padding: 14px 18px; text-align: left; font-size: 16px; font-weight: 800; }
.yoger-compare-table th, .yoger-compare-table td { padding: 12px 14px; border-top: 1px solid var(--yoger-line); border-right: 1px solid var(--yoger-line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.yoger-compare-table th:last-child, .yoger-compare-table td:last-child { border-right: 0; }
.yoger-compare-table thead th { background: var(--yoger-main-thin); }
.yoger-compare-table tbody th { width: 120px; background: #f8fbfa; font-weight: 700; }
.yoger-compare-table .yoger-button { display: block; padding: 10px; font-size: 12px; line-height: 1.4; white-space: normal; }
.yoger-compare-note { margin: 10px 0 24px; color: var(--yoger-muted); font-size: 12px; }

/* Studio records use yoger_brand/yoger_service; legacy article tags can mislabel a gym as Pilates. */
.single-yoger_studio .p-articleMetas__termList.c-tagList { display: none; }

.yoger-article-backlink {
	margin: 30px 0;
	padding: 20px;
	border: 1px solid var(--yoger-line);
	border-radius: 12px;
	background: var(--yoger-main-thin);
}

.yoger-article-backlink p { margin: 5px 0 14px; }

@media (max-width: 960px) {
	.yoger-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.yoger-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.yoger-cta--photo { grid-template-columns: 1fr; gap: 14px; }
	.yoger-cta__visual { aspect-ratio: 16 / 9; }
	.yoger-filter,
	.yoger-card-grid { grid-template-columns: 1fr; }
	.yoger-filter { padding: 16px; }
	.yoger-filter__actions { align-items: stretch; flex-direction: column; }
	.yoger-filter button { width: 100%; }
	.yoger-card__links,
	.yoger-detail-actions { flex-direction: column; }
	.yoger-card__links .yoger-button,
	.yoger-detail-actions .yoger-button { flex: none; width: 100%; }
	.yoger-detail-table__row { grid-template-columns: 1fr; }
	.yoger-detail-highlights { grid-template-columns: 1fr; }
	.yoger-detail-table__row > div:first-child { padding-bottom: 5px; }
	.yoger-detail-table__row > div:last-child { padding-top: 5px; }
}

@media (prefers-reduced-motion: reduce) {
	.yoger-card__image img { transition: none; }
}
