:root {
	--color-dark: #292D28;
	--color-orange: #E96A20;
	--color-orange-light: #FFB266;
	--color-blue: #00AEEF;
	--color-white: #FFFFFF;
	--color-bg-light: #F5F5F5;
	--font-primary: 'Inter', sans-serif;

	/* базовые адаптивные отступы секций */
	--section-padding-y: max(40px, calc(40px + (100vw - 375px) * 40 / 1065));
	--section-padding-x: max(20px, calc(20px + (100vw - 375px) * 60 / 1065));
	--hero-cut-right: max(20px, calc(20px + (100vw - 375px) * 20 / 1065));
	--hero-cut-left:  max(150px, calc(150px + (100vw - 375px) * 50 / 1065));
	--container-max: 1280px;
}	

body {
	font-family: var(--font-primary);
}
html, body {
	overflow-x: hidden;
}

.site-main img {
	max-width: 100%;
	display: block;
}
html {
	scroll-behavior: smooth;
}

#mitgliedschaft,
#mitgliedschaft-text,
#mitgliedschaft-grid,
#ausruestung,
#dienstleistung {
	scroll-margin-top: calc(var(--header-h, 70px) + 12px);
}

/* ==========================================================================
   ANIMATIONS BLOCK — full version
   ========================================================================== */

/* -------------------- Hero: вход текста -------------------- */
.site-hero__title {
	opacity: 0;
	transform: translateY(40px);
	animation: hero-in 1.4s cubic-bezier(.22,1,.36,1) forwards;
	animation-delay: .3s;
}
.site-hero__text {
	opacity: 0;
	transform: translateY(40px);
	animation: hero-in 1.4s cubic-bezier(.22,1,.36,1) forwards;
	animation-delay: .8s;
}
@keyframes hero-in {
	to { opacity: 1; transform: translateY(0); }
}

.site-hero__image {
	animation: hero-breathe 12s ease-in-out infinite;
}
@keyframes hero-breathe {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.04); }
}

/* -------------------- Блобы -------------------- */
@keyframes blob-float {
	0%   { transform: rotate(-60deg) translate(0, 0) scale(1); }
	33%  { transform: rotate(-30deg) translate(20px, -30px) scale(1.15); }
	66%  { transform: rotate(-80deg) translate(-15px, 15px) scale(.9); }
	100% { transform: rotate(-60deg) translate(0, 0) scale(1); }
}
.site-hero__blob {
	animation: blob-float 9s ease-in-out infinite;
}
.equipment-gallery__blob--squircle { animation: blob-float 13s ease-in-out infinite; }
.equipment-gallery__blob--circle   { animation: blob-float 10s ease-in-out infinite reverse; }
.cta-banner__blob--left  { animation: blob-float 9s ease-in-out infinite; }
.cta-banner__blob--right { animation: blob-float 15s ease-in-out infinite reverse; }

/* -------------------- Header: подчёркивание + shrink при скролле -------------------- */
.site-header__menu li a {
	position: relative;
	transition: opacity .2s ease;
}
.site-header__menu li a::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 0; height: 2px;
	background: var(--color-orange);
	transition: width .25s ease;
}
.site-header__menu li a:hover::after { width: 100%; }

.site-header.is-scrolled .site-header__bar {
	height: 64px;
	box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.site-header__bar {
	transition: height .3s ease, box-shadow .3s ease;
}

/* -------------------- Pricing (JS-triggered) -------------------- */
.pricing__card {
	opacity: 0;
	transform: translateY(50px) scale(.9) rotate(-3deg);
	transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1), box-shadow .25s ease;
}
.pricing__card.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1) rotate(0);
}
.pricing__card:nth-child(2) { transition-delay: .08s; }
.pricing__card:nth-child(3) { transition-delay: .16s; }
.pricing__card:nth-child(4) { transition-delay: .24s; }
.pricing__card:nth-child(5) { transition-delay: .32s; }
.pricing__card:nth-child(6) { transition-delay: .4s; }
.pricing__card:hover {
	transform: translateY(-8px) scale(1.03);
	box-shadow: 0 16px 32px rgba(0,0,0,.22);
}

/* -------------------- Equipment gallery -------------------- */
.equipment-gallery__item {
	opacity: 0;
	translate: -70px 0;
	animation: gallery-in .8s cubic-bezier(.22,1,.36,1) forwards;
	animation-timeline: view();
	animation-range: entry 0% entry 60%;
	overflow: hidden;
}
.equipment-gallery__item:nth-child(even) {
	translate: 70px 0;
}
@keyframes gallery-in {
	to { opacity: 1; translate: 0 0; }
}

.equipment-gallery__image {
	transition: transform .5s ease;
}
.equipment-gallery__item:hover .equipment-gallery__image {
	transform: scale(1.12) rotate(1deg);
}

/* -------------------- Therapy (JS-triggered) -------------------- */
.therapy__panel {
	opacity: 0;
	transform: translateX(-40px);
	transition: opacity .9s ease-out, transform .9s ease-out;
}
.therapy__panel.is-visible {
	opacity: 1;
	transform: translateX(0);
}

.therapy__table tr {
	opacity: 0;
	transform: translateX(-24px) scale(.97);
	transition: opacity .5s ease-out, transform .5s ease-out;
}
.therapy__table tr.is-visible {
	opacity: 1;
	transform: translateX(0) scale(1);
}
.therapy__table tr:nth-child(1) { transition-delay: 0s; }
.therapy__table tr:nth-child(2) { transition-delay: .1s; }
.therapy__table tr:nth-child(3) { transition-delay: .2s; }
.therapy__table tr:nth-child(4) { transition-delay: .3s; }

.therapy__image {
	height: 120%;
	top: -10%;
	transform: translateY(-8%);
	animation: therapy-parallax linear both;
	animation-timeline: view();
	animation-range: cover 0% cover 100%;
}
@keyframes therapy-parallax {
	from { transform: translateY(-8%); }
	to   { transform: translateY(8%); }
}

/* -------------------- Massage benefits (JS-triggered) -------------------- */
.massage-benefits__title {
	opacity: 0;
	transform: scale(.8);
	transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.massage-benefits__title.is-visible {
	opacity: 1;
	transform: scale(1);
}

.massage-benefits__item {
	opacity: 0;
	transform: translateX(-30px);
	transition: opacity .5s ease-out, transform .5s ease-out;
}
.massage-benefits__item.is-visible {
	opacity: 1;
	transform: translateX(0);
}
.massage-benefits__item:nth-child(1) { transition-delay: 0s; }
.massage-benefits__item:nth-child(2) { transition-delay: .07s; }
.massage-benefits__item:nth-child(3) { transition-delay: .14s; }
.massage-benefits__item:nth-child(4) { transition-delay: .21s; }
.massage-benefits__item:nth-child(5) { transition-delay: .28s; }
.massage-benefits__item:nth-child(6) { transition-delay: .35s; }
.massage-benefits__item:nth-child(7) { transition-delay: .42s; }

.massage-benefits__icon {
	transition: transform .3s ease;
}
.massage-benefits__item:hover .massage-benefits__icon {
	transform: scale(1.25) rotate(-8deg);
}

/* -------------------- CTA banner -------------------- */
.cta-banner__inner {
	opacity: 0;
	transform: translateY(30px);
	animation: card-in .8s ease-out forwards;
	animation-timeline: view();
	animation-range: entry 0% entry 60%;
}
@keyframes card-in {
	to { opacity: 1; transform: translateY(0); }
}

.cta-banner__button {
	animation: btn-pulse 2.4s ease-in-out infinite;
	transition: transform .2s ease;
}
.cta-banner__button:hover {
	animation-play-state: paused;
	transform: translateY(-3px) scale(1.05);
}
@keyframes btn-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(233,106,32,.4); }
	50%      { box-shadow: 0 0 0 10px rgba(233,106,32,0); }
}

/* -------------------- Footer -------------------- */
.site-footer__grid > * {
	opacity: 0;
	transform: translateY(30px);
	animation: footer-in .7s ease-out forwards;
	animation-timeline: view();
	animation-range: entry 0% entry 60%;
}
.site-footer__grid > *:nth-child(1) { animation-delay: 0s; }
.site-footer__grid > *:nth-child(2) { animation-delay: .12s; }
.site-footer__grid > *:nth-child(3) { animation-delay: .24s; }
@keyframes footer-in {
	to { opacity: 1; transform: translateY(0); }
}

/* -------------------- Scroll-to-top -------------------- */
.site-scroll-top:active {
	transform: scale(.9);
}
/* ==========================================================================
   Site Header
   ========================================================================== */

.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: clamp(12px, calc(12px + (100vw - 375px) * 13 / 1065), 25px)
	         clamp(12px, calc(12px + (100vw - 375px) * 28 / 1065), 40px)
	         0;
	z-index: 9999;
	transition: all .3s ease;
	box-sizing: border-box;
}

.site-header__bar {
	position: relative;
	margin: 0 auto;
	height: 86px;
	display: flex;
	align-items: center;
	border-radius: 5px;
	background: transparent;
	z-index: 1;
	padding-right: 32px;
}

.site-header__bar::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #ffffff;
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
	border-radius: inherit;
	opacity: 0.85;
	z-index: -1;
}

/* Logo box */
.site-header__logo-box {
	flex: 0 0 clamp(100px, calc(100px + (100vw - 375px) * 63 / 1065), 163px);
	width: clamp(100px, calc(100px + (100vw - 375px) * 63 / 1065), 163px);
	height: clamp(52px, calc(52px + (100vw - 375px) * 34 / 1065), 86px);
	background: #292D28;
	border-top-left-radius: 5px;
	border-bottom-left-radius: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.site-header__logo-box img,
.site-header__logo-fallback img {
	width: clamp(90px, calc(90px + (100vw - 375px) * 57 / 1065), 147px);
	height: clamp(42px, calc(42px + (100vw - 375px) * 26 / 1065), 68px);
	object-fit: contain;
}

/* Nav */
.site-header__nav {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.site-header__menu {
	display: flex;
	align-items: center;
	gap: clamp(20px, calc(20px + (100vw - 1024px) * 28 / 416), 48px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__menu li a {
	color: #292D28;
	font-size: clamp(15px, calc(15px + (100vw - 1024px) * 5 / 416), 20px);
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	line-height: 30px;
	text-decoration: none;
}

.site-header__menu li a:hover {
	opacity: 0.7;
}

.site-header__menu-toggle {
	display: none;
	flex-direction: column;
	gap: 4px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	position: relative;
	z-index: 1000;
}

.site-header__menu-toggle-bar {
	width: 24px;
	height: 2px;
	background: #292D28;
	display: block;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Contact button */
.site-header__contact {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-left: clamp(12px, calc(12px + (100vw - 375px) * 36 / 1065), 48px);
	padding: clamp(10px, calc(10px + (100vw - 375px) * 4 / 1065), 14px)
	         clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
	background: #E96A20;
	border-radius: 8px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	text-decoration: none;
	white-space: nowrap;
}
.site-header__contact-icon {
	width: clamp(16px, calc(16px + (100vw - 375px) * 4 / 1065), 20px);
	height: clamp(16px, calc(16px + (100vw - 375px) * 4 / 1065), 20px);
	display: inline-block;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M4.166 3.333h3.333l1.667 4.167-2.084 1.25a8.75 8.75 0 0 0 4.167 4.167l1.25-2.084 4.167 1.667v3.333a1.667 1.667 0 0 1-1.667 1.667C8.545 17.5 2.5 11.455 2.5 4.166a1.667 1.667 0 0 1 1.666-1.666Z' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M4.166 3.333h3.333l1.667 4.167-2.084 1.25a8.75 8.75 0 0 0 4.167 4.167l1.25-2.084 4.167 1.667v3.333a1.667 1.667 0 0 1-1.667 1.667C8.545 17.5 2.5 11.455 2.5 4.166a1.667 1.667 0 0 1 1.666-1.666Z' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat center / contain;
	background-color: #fff;
}
.site-header__contact-text {
	color: #fff;
	font-size: clamp(13px, calc(13px + (100vw - 375px) * 3 / 1065), 16px);
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	line-height: clamp(20px, calc(20px + (100vw - 375px) * 4 / 1065), 24px);
}

@media (max-width: 1024px) {
	.site-header__bar {
		height: auto;
		flex-wrap: wrap;
		padding: 12px;
		padding-right: 12px;
	}

	.site-header__menu-toggle {
		display: flex;
		margin-left: auto;
		order: 2;
	}

	.site-header__contact {
		margin-left: 8px;
		order: 3;
	}

	.site-header__menu {
		display: none;
	}

	/* компактная карточка-дропдаун под хедером, а не во весь экран */
	.site-header.is-menu-open .site-header__menu {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: calc(100% + 12px);
		right: 0;
		width: min(280px, 90vw);
		height: auto;
		margin: 0;
		padding: 12px;
		background: #fff;
		border-radius: 12px;
		box-shadow: 0 10px 40px rgba(0, 0, 0, 0.18);
		z-index: 999;
		gap: 0;
		animation: menuSlideIn 0.25s ease forwards;
	}

	.site-header__menu li {
		list-style: none;
		border-bottom: 1px solid rgba(41, 45, 40, 0.08);
	}

	.site-header__menu li:last-child {
		border-bottom: none;
	}

	.site-header__menu li a {
		display: block;
		padding: 14px 8px;
		font-size: 16px;
		line-height: normal;
		transition: color 0.2s ease;
	}

	.site-header__menu li a:hover,
	.site-header__menu li a:active {
		color: #E96A20;
		opacity: 1;
	}

	/* бургер превращается в крестик ровно на месте кнопки */
	.site-header__menu-toggle {
		position: relative;
		z-index: 1000;
	}

	.site-header.is-menu-open .site-header__menu-toggle-bar:nth-child(2) {
		transform: translateY(6px) rotate(45deg);
	}

	.site-header.is-menu-open .site-header__menu-toggle-bar:nth-child(3) {
		opacity: 0;
	}

	.site-header.is-menu-open .site-header__menu-toggle-bar:nth-child(4) {
		transform: translateY(-6px) rotate(-45deg);
	}
}

@keyframes menuSlideIn {
	from {
		transform: translateY(-8px);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

/* ==========================================================================
   Site Footer
   ========================================================================== */

.site-footer {
	background: #F5F5F5;
	padding: 64px 40px 40px;
}

.site-footer__inner {
	max-width: 1360px;
	margin: 0 auto;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(280px, 470px) auto auto;
	gap: 40px;
	justify-content: space-between;
}

.site-footer__heading {
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(20px, calc(20px + (100vw - 1440px) * 4 / 480), 24px);
	font-weight: 600;
	line-height: 27px;
	margin: 0 0 14px;
}

.site-footer__logo {
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(30px, calc(30px + (100vw - 1440px) * 6 / 480), 36px);
	font-weight: 700;
	margin: 0 0 12px;
}

.site-footer__logo-accent {
	color: #E96A20;
}

.site-footer__desc {
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(16px, calc(16px + (100vw - 1440px) * 2 / 480), 18px);
	font-weight: 400;
	line-height: 22px;
	max-width: 351px;
	margin: 0;
}

.site-footer__links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__links li {
	line-height: 31.36px;
}

.site-footer__links a {
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(16px, calc(16px + (100vw - 1440px) * 2 / 480), 18px);
	font-weight: 400;
	text-decoration: none;
}

.site-footer__links a:hover {
	color: #E96A20;
}

.site-footer__contact ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__contact-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(16px, calc(16px + (100vw - 1440px) * 2 / 480), 18px);
	font-weight: 400;
	line-height: 20px;
	margin-bottom: 10px;
}

.site-footer__contact-item a {
	color: #292D28;
	text-decoration: underline;
}

.site-footer__contact-icon {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	margin-top: 2px;
	background-color: #E96A20;
	display: inline-block;
}

.site-footer__contact-icon--pin {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 22s7-7.58 7-12A7 7 0 0 0 5 10c0 4.42 7 12 7 12Z' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='12' cy='10' r='2.5' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M12 22s7-7.58 7-12A7 7 0 0 0 5 10c0 4.42 7 12 7 12Z' stroke='%23000' stroke-width='2'/%3E%3Ccircle cx='12' cy='10' r='2.5' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
}

.site-footer__contact-icon--phone {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2C9.4 21 3 14.6 3 6a2 2 0 0 1 2-2Z' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2C9.4 21 3 14.6 3 6a2 2 0 0 1 2-2Z' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
}

.site-footer__contact-icon--mail {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m3 7 9 6 9-6' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3' y='5' width='18' height='14' rx='2' stroke='%23000' stroke-width='2'/%3E%3Cpath d='m3 7 9 6 9-6' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
}

.site-footer__divider {
	border: none;
	border-top: 1px solid #292D28;
	margin: 42px 0 24px;
}

.site-footer__copyright {
	text-align: center;
	color: #292D28;
	font-family: 'Poppins', sans-serif;
	font-size: clamp(20px, calc(20px + (100vw - 1440px) * 4 / 480), 24px);
	line-height: 27px;
	margin: 0;
}

@media (max-width: 782px) {
	.site-footer {
		padding: 48px 24px 32px;
	}
	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.site-footer__desc {
		max-width: 100%;
	}
}
/* -------------------------------------------------------------------- */
/* 1. HERO — "Push Today. Proud Tomorrow."                               */
/* -------------------------------------------------------------------- */
.site-hero {
	position: relative;
	display: grid;
	color: var(--color-white);
	background: var(--color-dark);
	/* z-index и overflow:hidden убраны:
	   1) overflow:hidden обрезал .site-hero__blob, когда тот (bottom:-10%)
	      выходил за нижний край картинки — он не нужен, картинка и так
	      ограничена сама aspect-ratio + object-fit;
	   2) z-index:1 создавал свой стекинг-контекст и запирал блоб
	      (z-index:3) внутри — из-за этого блоб не мог оказаться поверх
	      .pricing (z-index:2), хотя по макету должен пересекать шов
	      hero/pricing и быть видимым поверх зелёной секции */
}

.site-hero__media {
	position: relative;
	grid-area: 1 / 1;
}

.site-hero__image {
	width: 100%;
	aspect-ratio: 1457 / 818; /* уже и так растёт без предела — этого трогать не нужно */
	object-fit: cover;
	object-position: center top;
}

/* На мобильных узкий экран при том же соотношении 16:9 даёт слишком
   низкий hero — под текст не остаётся места, поэтому здесь пропорция
   более "портретная".
   object-position смещён вправо: атлет на фото стоит правее центра,
   и при узком aspect-ratio 3/4 center-crop его просто обрезал. */
@media (max-width: 782px) {
	.site-hero__image {
		aspect-ratio: 3 / 4;
		object-position: right top;
	}
}

/* Блоб — точные координаты сняты с Figma (фрейм 1440):
   X=342, Y=521, W=285.05, H=286.27, rotate=-60°.
   left  = 342 / 1440        ≈ 23.75%
   size  = 285.05 / 1440     ≈ 19.8% от ширины фрейма (было 420px = 29.2% — завышено)
   bottom: низ блоба (521+286.27≈807px) практически совпадает с низом
   hero-картинки на 1440 (1440×818/1457≈808px) → значит blob прижат
   к низу картинки, а не свободно висит на -10%.
   rotate(-60deg) — в исходнике отсутствовал, но именно он крутит
   блик радиального градиента в нужную сторону; на круге саму форму
   не меняет.
   Ширина/высота клампнуты на 285px — ровно значение из Figma при 1440,
   раньше росли без предела и на широких экранах блоб становился крупнее макета. */
.site-hero__blob {
	position: absolute;
	left: 23.75%;
	bottom: 0;
	width: clamp(160px, calc(160px + (100vw - 375px) * 125 / 1065), 285px);
	height: clamp(160px, calc(160px + (100vw - 375px) * 125 / 1065), 285px);
	border-radius: 50%;
	transform: rotate(-60deg);
	border: 2px solid #EABFFF;
	background: radial-gradient(ellipse at 15% 21%, rgba(164, 238, 255, .2) 0%, rgba(110, 191, 244, .04) 77%, rgba(70, 144, 213, 0) 100%);
	backdrop-filter: blur(40px);
	pointer-events: none;
	z-index: 3;
}

/*.site-hero__inner {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	padding: var(--section-padding-y) var(--section-padding-x);
}*/
.site-hero__inner {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	padding: calc(var(--header-h, 100px) + var(--section-padding-y))
	         var(--section-padding-x)
	         var(--section-padding-y);
}
.site-hero__content {
	max-width: 620px;
	/* клампнуто на значение из макета Figma при 1440px — раньше росло
	   без ограничения и на широких экранах текст уезжал от центра фото,
	   выглядело "оторванным" */
	padding-bottom: clamp(140px, calc(140px + (100vw - 375px) * 100 / 1065), 240px);
}

.site-hero__title {
	/* было max() — на широких экранах шрифт разрастался сверх макета
	   (1440px), из-за чего "Proud Tomorrow." переставало влезать в
	   max-width:620px и переносилось на третью строку.
	   clamp() останавливает рост на значении из макета (64px при 1440). */
	font-size: clamp(32px, calc(32px + (100vw - 375px) * 32 / 1065), 64px);
	line-height: 1.05;
	margin: 0 0 clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
	/* гарантия того, что "Proud Tomorrow." никогда не перенесётся на
	   третью строку, независимо от промежуточных ширин экрана */
	white-space: nowrap;
}
.site-hero__title-accent {
	color: var(--color-orange);
}

.site-hero__text {
	font-size: clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
}

.site-scroll-top {
	position: fixed;
	right: clamp(16px, calc(16px + (100vw - 375px) * 32 / 1065), 48px);
	bottom: clamp(16px, calc(16px + (100vw - 375px) * 32 / 1065), 48px);
	width: clamp(40px, calc(40px + (100vw - 375px) * 13 / 1065), 53px);
	height: clamp(40px, calc(40px + (100vw - 375px) * 13 / 1065), 53px);
	border: 0;
	border-radius: 6px;
	background: var(--color-orange);
	box-shadow: 0 4px 4px rgba(0, 0, 0, .25);
	cursor: pointer;
	z-index: 40;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}

.site-scroll-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.site-scroll-top__arrow {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40%;
	height: 40%;
	transform: translate(-50%, -50%);
	object-fit: contain;
}
/* -------------------------------------------------------------------- */
/* 2. PRICING — "Entdecken Sie unsere Flexiblen Optionen"                */
/* -------------------------------------------------------------------- */
.pricing {
	position: relative;
	z-index: 2;
	background: var(--color-bg-light);
	padding: var(--section-padding-y) 0;
	margin-top: calc(-1 * var(--hero-cut-left));
	clip-path: polygon(
		0 var(--hero-cut-right),
		100% var(--hero-cut-left),
		100% 100%,
		0 100%
	);
	padding-top: calc(var(--section-padding-y) + var(--hero-cut-left));
	overflow: hidden;
}
.pricing__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
	pointer-events: none;
}
.pricing__inner {
	position: relative;
	z-index: 2;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--section-padding-x);
}
.pricing__content {
	max-width: 720px;
	margin-left: clamp(220px, calc(220px + (100vw - 375px) * 280 / 1065), 500px);
}
.pricing__title {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: clamp(28px, calc(28px + (100vw - 375px) * 26 / 1065), 54px);
	line-height: 1.05;
	color: var(--color-dark);
	margin: 0 0 clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
}
.pricing__title-accent {
	color: var(--color-white);
}
.pricing__text {
	font-size: clamp(15px, calc(15px + (100vw - 375px) * 5 / 1065), 20px);
	font-weight: 500;
	line-height: 1.4;
	color: var(--color-dark);
	margin: 0 0 clamp(24px, calc(24px + (100vw - 375px) * 16 / 1065), 40px);
	max-width: 640px;
}
.pricing__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(12px, calc(12px + (100vw - 375px) * 12 / 1065), 24px);
}
.pricing__card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: clamp(14px, calc(14px + (100vw - 375px) * 10 / 1065), 24px);
	border-radius: 18px;
	background: rgba(68, 68, 68, .8);
	color: var(--color-white);
	min-height: clamp(120px, calc(120px + (100vw - 375px) * 55 / 1065), 175px);
}
.pricing__card-icon {
	width: clamp(24px, calc(24px + (100vw - 375px) * 13 / 1065), 37px);
	height: clamp(24px, calc(24px + (100vw - 375px) * 13 / 1065), 37px);
	align-self: flex-end;
	order: 3;
	object-fit: contain;
}
.pricing__card-title {
	font-weight: 700;
	font-size: clamp(20px, calc(20px + (100vw - 375px) * 12 / 1065), 32px);
	order: 1;
	animation: bluePulse 2.4s ease-in-out infinite;
}

@keyframes bluePulse {
	0%, 100% {
		text-shadow: 0 0 0 rgba(0, 174, 239, 0);
	}
	50% {
		text-shadow: 0 0 12px rgba(0, 174, 239, .85);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pricing__card-title-accent {
		animation: none;
	}
}	
.pricing__card-title-accent {
	color: var(--color-orange);
}
.pricing__card-subtitle {
	font-weight: 500;
	font-size: clamp(11px, calc(11px + (100vw - 375px) * 1 / 1065), 12px);
	line-height: 1.4;
	order: 2;
	flex-grow: 1;
}
.pricing__card-price {
	order: 4;
	align-self: flex-start;
	display: inline-flex;
	align-items: flex-start;
	gap: 4px;
	padding: 8px 16px;
	border-radius: 8px;
	background: var(--color-orange);
	box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.pricing__card-amount {
	font-size: clamp(20px, calc(20px + (100vw - 375px) * 8 / 1065), 28px);
	line-height: 1;
	color: var(--color-white);
}
.pricing__card-currency {
	font-size: 10px;
	line-height: 1;
	color: var(--color-white);
	margin-top: 2px;
}
@media (max-width: 767px) {
	.pricing__content {
		margin-left: 0;
	}
	.pricing__grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.pricing__media {
		height: 100%;
		object-position: 0% 10%;
	}
	@media (max-width: 767px) {
	.pricing__text {
		max-width: 70%; 
	}
}
}
/* -------------------------------------------------------------------- */
/* 3. EQUIPMENT GALLERY — "Trainings - Ausrüstung"                       */
/* -------------------------------------------------------------------- */

.equipment-gallery {
	position: relative;
	background: var(--color-white);
	padding-top: var(--section-padding-y);
	padding-bottom: 0;
	overflow: hidden;
}

/* Общие свойства обоих декоративных элементов */
.equipment-gallery__blob {
	position: absolute;
	border: 2px solid #EABFFF;
	background: radial-gradient(ellipse 127% 152% at 15% 21%, rgba(164, 238, 255, .2) 0%, rgba(110, 191, 244, .04) 77%, rgba(70, 144, 213, 0) 100%);
	background-blend-mode: overlay, normal;
	backdrop-filter: blur(40px);
	pointer-events: none;
	z-index: 0;
}

/* Левый — скруглённый квадрат ("сквикл"), повёрнут на 60° */
.equipment-gallery__blob--squircle {
	top: 0;
	left: clamp(-40px, calc(0px + (100vw - 375px) * -20 / 1065), -20px);
	width: clamp(320px, calc(320px + (100vw - 375px) * 430 / 1065), 750px);
	aspect-ratio: 885.53 / 889.35;
	border-radius: 32%;
	opacity: .8;
	transform: rotate(60deg);
	transform-origin: top left;
}

/* Правый — идеальный круг, заходит за уголок третьей карточки */
.equipment-gallery__blob--circle {
	top: clamp(-20px, calc(-20px + (100vw - 375px) * 40 / 1065), 60px);
	right: clamp(-60px, calc(-60px + (100vw - 375px) * 20 / 1065), -20px);
	width: clamp(160px, calc(160px + (100vw - 375px) * 125 / 1065), 320px);
	aspect-ratio: 488.56 / 487.99;
	border-radius: 50%;
}

.equipment-gallery__inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--section-padding-x);
	text-align: center;
}

.equipment-gallery__title {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: clamp(30px, calc(30px + (100vw - 375px) * 34 / 1065), 64px);
	line-height: 1.05;
	color: var(--color-dark);
	margin: 0 0 clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
}

.equipment-gallery__title-accent {
	color: var(--color-orange);
}

.equipment-gallery__text {
	max-width: 700px;
	margin: 0 auto clamp(32px, calc(32px + (100vw - 375px) * 32 / 1065), 64px);
	font-size: clamp(16px, calc(16px + (100vw - 375px) * 16 / 1065), 32px);
	font-weight: 500;
	line-height: 1.3;
	color: var(--color-dark);
}

.equipment-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(16px, calc(16px + (100vw - 375px) * 16 / 1065), 32px);
	/* компенсируем визуальный сдвиг средней колонки вниз, чтобы она не наезжала на следующую секцию */
	margin-bottom: clamp(30px, calc(30px + (100vw - 375px) * 50 / 1065), 80px);
}

/* Средняя колонка визуально смещена вниз ("кирпичная" раскладка из макета) */
.equipment-gallery__item--2,
.equipment-gallery__item--5 {
	transform: translateY(clamp(30px, calc(30px + (100vw - 375px) * 50 / 1065), 80px));
}

.equipment-gallery__item {
	border-radius: 15px;
	overflow: hidden;
	background: var(--color-white);
	box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
}

.equipment-gallery__image {
	width: 100%;
	height: clamp(160px, calc(160px + (100vw - 375px) * 90 / 1065), 250px);
	object-fit: cover;
}

@media (max-width: 767px) {
	.equipment-gallery__grid {
		grid-template-columns: 1fr 1fr;
	}

	/* сбрасываем десктопное смещение у 2 и 5 элемента */
	.equipment-gallery__item--2,
	.equipment-gallery__item--5 {
		transform: none;
	}

	/* правая колонка (чётные элементы) смещается вниз для "кирпичного" эффекта */
	.equipment-gallery__item:nth-child(even) {
		transform: translateY(clamp(30px, calc(30px + (100vw - 375px) * 50 / 1065), 80px));
	}
}
/* -------------------------------------------------------------------- */
/* 4. THERAPY — "Physikalische Therapie im Fitness-Studio"               */
/* -------------------------------------------------------------------- */
.therapy {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(6px, calc(6px + (100vw - 375px) * 6 / 1065), 12px);
	padding-bottom: 12px; 
}
.therapy__panel {
	position: relative;
	color: var(--color-white);
	padding: 0 var(--section-padding-x) var(--section-padding-y);
	/* pushed further down so text/table sit clear of the decorative slant */
	padding-top: clamp(180px, calc(180px + (100vw - 375px) * 160 / 1065), 340px);
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	overflow: hidden;
	min-height: clamp(400px, calc(400px + (100vw - 375px) * 240 / 1065), 640px);
}
.therapy__panel::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: linear-gradient(rgba(26, 26, 24, .75), rgba(26, 26, 24, .75)),
		var(--therapy-panel-bg-url);
	background-size: cover;
	background-position: center;
	clip-path: polygon(0 0, 100% 22%, 100% 100%, 0 100%);
}
.therapy__panel > * {
	position: relative;
	z-index: 1;
}
.therapy__title {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: clamp(26px, calc(26px + (100vw - 375px) * 22 / 1065), 48px);
	line-height: 1.05;
	margin: 0 0 clamp(20px, calc(20px + (100vw - 375px) * 24 / 1065), 44px);
}
.therapy__title-accent {
	color: var(--color-orange);
}
.therapy__eyebrow {
	text-transform: uppercase;
	font-size: clamp(16px, calc(16px + (100vw - 375px) * 3 / 1065), 19px);
	font-weight: 500;
	margin: 0 0 clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
}
.therapy__table-wrap {
	max-width: 552px;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--color-white);
	margin-bottom: clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
}
.therapy__table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 0;
	table-layout: fixed;
}
.therapy__cell {
	border: 1px solid var(--color-white);
	padding: clamp(10px, calc(10px + (100vw - 375px) * 9 / 1065), 19px); /* было 12–19 */
	font-size: clamp(14px, calc(14px + (100vw - 375px) * 3 / 1065), 17px);
	font-weight: 700;
}

/* Первая колонка (название услуги) — гибкая ширина, перенос по слогам */
.therapy__cell:nth-child(1) {
	width: 50%;
	white-space: normal;
	overflow-wrap: normal;
	hyphens: auto;
}

/* Длительность и цена — разрешаем перенос на 2 строки при нехватке места,
   чтобы текст не вылезал за пределы ячейки на узких экранах */
.therapy__cell:nth-child(2),
.therapy__cell--price {
	white-space: normal;
	word-break: keep-all;
	text-align: center;
	padding-left: clamp(6px, calc(6px + (100vw - 375px) * 7 / 1065), 19px);
	padding-right: clamp(6px, calc(6px + (100vw - 375px) * 7 / 1065), 19px);
}

.therapy__cell:nth-child(2) { width: 22%; }
.therapy__cell--price       { width: 28%; }

.therapy__note {
	font-size: clamp(16px, calc(16px + (100vw - 375px) * 3 / 1065), 19px);
	font-weight: 500;
	margin: 0;
}
.therapy__media {
	position: relative;
	min-height: clamp(400px, calc(400px + (100vw - 375px) * 240 / 1065), 640px);
	clip-path: polygon(0 22%, 100% 0, 100% 100%, 0 100%);
}
.therapy__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 767px) {
	.therapy {
		grid-template-columns: 1fr;
	}
	.therapy__media {
		display: none;
	}
}
/* -------------------------------------------------------------------- */
/* 5. MASSAGE BENEFITS — "Vorteile der Massage"                          */
/* -------------------------------------------------------------------- */

.massage-benefits {
	position: relative;
	padding-top: clamp(16px, calc(16px + (100vw - 375px) * 16 / 1065), 32px);
	overflow: hidden;
}

.massage-benefits__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
	pointer-events: none;
}

.massage-benefits__content {
	position: relative;
	z-index: 2;
	width: 50%;
	padding: var(--section-padding-y) var(--section-padding-x);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.massage-benefits__title {
	font-family: var(--font-primary);
	font-weight: 700;
	font-size: clamp(30px, calc(30px + (100vw - 375px) * 34 / 1065), 64px);
	line-height: 1.05;
	color: var(--color-dark);
	margin: 0 0 clamp(20px, calc(20px + (100vw - 375px) * 20 / 1065), 40px);
}

.massage-benefits__title-accent {
	color: var(--color-orange);
}

.massage-benefits__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(12px, calc(12px + (100vw - 375px) * 10 / 1065), 22px);
}

.massage-benefits__item {
	display: flex;
	align-items: center;
	gap: clamp(10px, calc(10px + (100vw - 375px) * 6 / 1065), 16px);
}

.massage-benefits__icon {
	flex: none;
	width: clamp(20px, calc(20px + (100vw - 375px) * 7 / 1065), 27px);
	height: clamp(20px, calc(20px + (100vw - 375px) * 7 / 1065), 27px);
	object-fit: contain;
	display: block;
}

.massage-benefits__label {
	text-transform: uppercase;
	font-weight: 700;
	font-size: clamp(15px, calc(15px + (100vw - 375px) * 5 / 1065), 20px);
	color: var(--color-dark);
}

@media (max-width: 767px) {
	.massage-benefits__content {
		width: 100%;
	}
}
/* -------------------------------------------------------------------- */
/* 6. CTA BANNER — "Sie sind bereit..."                                  */
/* -------------------------------------------------------------------- */

.cta-banner {
	position: relative;
	overflow: hidden;
	background: var(--color-white);
	padding: var(--section-padding-y) var(--section-padding-x);
	min-height: clamp(420px, calc(420px + (100vw - 375px) * 160 / 1065), 620px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.cta-banner__blob {
	position: absolute;
	border: 2px solid #EABFFF;
	background: radial-gradient(ellipse at 15% 21%, rgba(164, 238, 255, .2) 0%, rgba(110, 191, 244, .04) 77%, rgba(70, 144, 213, 0) 100%);
	backdrop-filter: blur(40px);
	pointer-events: none;
}

/* Левый — центрируем по вертикали */
.cta-banner__blob--left {
	width: clamp(160px, calc(160px + (100vw - 375px) * 250 / 1065), 410px);
	height: clamp(160px, calc(160px + (100vw - 375px) * 250 / 1065), 410px);
	left: -8%;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
}

/* Правый — уменьшаем масштаб под новую высоту секции, убираем вертикальное центрирование */
.cta-banner__blob--right {
	position: absolute;
	top: -8%;
	right: clamp(-320px, -22vw, -160px);
	width: clamp(650px, 65vw, 950px);
	aspect-ratio: 885.53 / 889.35;
	border-radius: 32%;
	opacity: .8;
	transform: rotate(-35deg);
	transform-origin: center;
}

.cta-banner__inner {
	position: relative;
	z-index: 1;
	max-width: 900px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(12px, calc(12px + (100vw - 375px) * 12 / 1065), 24px);
}

.cta-banner__logo img {
	max-height: 56px;
	width: auto;
	margin: 0 auto clamp(8px, calc(8px + (100vw - 375px) * 8 / 1065), 16px);
}

.cta-banner__title {
	font-weight: 700;
	font-size: clamp(20px, calc(20px + (100vw - 375px) * 12 / 1065), 32px);
	line-height: 1.3;
	color: var(--color-dark);
	margin: 0;
}

.cta-banner__text {
	font-weight: 400;
	font-size: clamp(16px, calc(16px + (100vw - 375px) * 8 / 1065), 24px);
	color: var(--color-dark);
	margin: 0;
}

.cta-banner__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	border-radius: 8px;
	background: var(--color-orange);
	color: var(--color-white);
	font-weight: 500;
	font-size: 16px;
	text-decoration: none;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}

.cta-banner__button-icon {
	width: 20px;
	height: 20px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cta-banner__button-icon img {
	width: 100%;
	height: 100%;
	display: block;
}
 
/* -------------------------------------------------------------------- */
/* 7. LOCATION MAP                                                       */
/* -------------------------------------------------------------------- */
 
.location-map {
	padding: var(--section-padding-y) var(--section-padding-x) 0;
	background: var(--color-bg-light);
}

.location-map__inner {
	width: 100%;
	/*max-width: var(--container-max);*/
	margin: 0 auto;
	height: clamp(300px, calc(300px + (100vw - 375px) * 300 / 1065), 560px);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
}

.location-map__frame,
.location-map__image {
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
	display: block;
}
 
/* -------------------------------------------------------------------- */
/* STRUCTURAL BREAKPOINTS (только раскладка, не размеры)                 */
/* -------------------------------------------------------------------- */
 
@media (max-width: 900px) {
	.pricing__inner {
		grid-template-columns: 1fr;
	}
 
	.pricing__media {
		order: 1;
		max-width: 320px;
		margin: 0 auto;
	}
 
	.pricing__grid {
		grid-template-columns: repeat(2, 1fr);
	}
 
	.therapy {
		grid-template-columns: 1fr;
	}
 
	.therapy__media {
		order: -1;
	}
 
	.massage-benefits__inner {
		grid-template-columns: 1fr;
	}
 
	.massage-benefits__media {
		order: -1;
	}
}
 
@media (max-width: 640px) {
	.equipment-gallery__grid {
		grid-template-columns: repeat(2, 1fr);
	}
 
	.equipment-gallery__item--2,
	.equipment-gallery__item--5 {
		align-self: auto;
	}
 
	.pricing__grid {
		grid-template-columns: 1fr;
	}
}