/* ------------ */
/* INDEX */
/* import */
/* variables */
/* header */
/* date-nav */
/* notification */
/* main */
/* log-info */
/* banner */
/* banner small */
/* promo-video */
/* intro */
/* trainers-promo */
/* call-to-action */
/* title */
/* tabs */
/* classes */
/* class info */
/* timetable */
/* second nav */
/* modal */
/* trainers */
/* trainer */
/* promo-card */
/* register */
/* form */
/* user-area */
/* person-data */
/* rgpd */
/* how to */
/* about */
/* legal */
/* landscape-alert */
/* cookies */
/* footer */
/* other */
/* tooltip */
/* toast */
/* post-list */
/* animations */
/* ------------ */

/* import */
@import 'https://fonts.googleapis.com/css2?family=Lato:wght@400;700&family=Work+Sans:wght@700;800&display=swap';
@import 'reset.css';
@import 'all.css';
@import 'button.css';
@import 'banner.css';

/* variables */
:root {
	--gym-color: #06c;
	--fitnesshut-color: #06c;
	--vivagym-color: #ff7420;
	--pastel: #faf7f2;
	--black: #000;
	--white: #fff;
	--grey: #707070;
	--light-grey: #dedede;
	--dark-grey: #111;
	--medium-grey: #2d2d2d;
	--blue-grey:#035ab0;
}

/* header */
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	max-width: 768px;
	z-index: 2;
}
header .nav-container {
	position: absolute;
	top: -160vh;
	width: 100%;
	overflow: hidden;
	transition: top .2s, top .3s ease-out;
}

header .nav-container.show {
	top: 0;
}

header nav {
	display: flex;
	flex-flow: column;
	justify-content: center;
	height: 100vh;
	background: var(--black);
	padding: 8em 2em 4em;
}

header nav a {
	display: block;
	padding: .5em;
	font-family: 'Work Sans', sans-serif;
	font-size: 2em;
	color: var(--white);
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	font-weight: 700;
}

header nav a.secondary {
	color: var(--grey);
	font-size: 1.6em;
	font-weight: 400;
	padding: .7em;
}

header .container {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	padding: 1em 0;
	z-index: 1;
	background: var(--black);
}

header .container a {
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
	cursor: default;
}

header .container img:first-of-type {
	z-index: -1;
}

header .container .diagonal {
	position: absolute;
	top: 3em;
	left: 60em;
	transform: scale(2) rotate(180deg) translateY(1px);
}

header .diagonal-container {
	width: 100%;
	height: 10em;
	position: relative;
	z-index: -1;
}

header .diagonal-container .black-diagonal {
	width: 120%;
	height: 10em;
	background: var(--black);
	position: absolute;
	top: -50%;
	left: 50%;
	transform: rotate(-7.5deg) translate(-50%, -50%);
}

header #btn-menu {
	display: inline-block;
	border: none;
	border-radius: 0;
	padding: .5em 1em;
	margin: .5em;
	cursor: pointer;
	background: transparent;
	transition: all 250ms ease-in-out;
	z-index: 1;
	-webkit-appearance: none;
	-moz-appearance: none;
}

header #btn-menu:focus {
	box-shadow: none;
}

header #btn-menu svg {
	fill: var(--white);
	width: 2em;
	height: 2em;
}

header > .black-diagonal {
	display: none;
}

@media only screen and (max-width: 768px) {
	header .container img:first-of-type {
		width: 200px;
	}
}
@media only screen and (min-width: 768px) {
	header {
		max-width: 360px;
	}

	header .container {
		background: transparent;
	}

	header .container .diagonal {
		position: absolute;
		top: 4em;
		left: 60em;
		/* transform: scale(2.5) rotate(180deg) translateY(6px); */
		transform: scale(5) rotate(180deg) translateY(5px);
		-webkit-user-select: none;
		-webkit-user-drag: none;
		-webkit-app-region: no-drag;
		cursor: default;
	}

	header > .black-diagonal {
		display: block;
		width: 2000px;
		height: 400px;
		background: var(--black);
		position: absolute;
		top: -410px;
		left: -60px;
		box-shadow: 0 0 40px 0px black;
		transform: rotate(-7.5deg);
	}
}

@media (min-width: 1024px) {
	header .black-diagonal {
		top: -380px;
	}
}

/* notification */
.notification {
	position: fixed;
	right: 50%;
	top: -100vh;
	transform: translateX(50%);
	width: 90%;
	max-width: 400px;
	padding: 2em;
	background: var(--blue-grey);
	border-radius: 1em;
	box-shadow: 0 0 10px 5px black;
	z-index: 2;
	transition: top .5s ease-in-out;
}

.notification.show {
	top: 2em;
}

.notification .close {
	background: transparent;
	position: absolute;
	top: 0;
	right: 0;
}

.notification .close svg {
	width: 1.2em;
	height: 1.2em;
	fill: var(--white);
	margin-top: .2em;
	transition: all .3s ease-out;
}

.notification .close:hover svg {
	margin-top: 0;
}

.notification .notification-body {
	width: 90%;
}

.notification .notification-footer {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
}

.notification h2 {
	margin-bottom: .5em;
}

.notification p {
	font-size: 1.3em;
}

.notification a {
	text-transform: uppercase;
	text-decoration: none;
	font-size: 1.2em;
	line-height: 1;
	text-align: center;
	letter-spacing: 1px;
	border-radius: 1em;
	margin: 1em 0 0 auto;
	padding: .5em 1em;
	background: var(--gym-color);
}

@media only screen and (min-width: 768px) {
	.notification {
		right: 2em;
		transform: translateX(0);
	}
}

/* main */
main {
	margin: 6em auto 10em;
	width: 100%;
	max-width: 720px;
	min-height: calc(100vh - 450px);
	z-index: 1;
}

main.top {
	margin: 16em auto 6em;
}

main > section {
	width: 90%;
	margin: auto;
}

@media only screen and (min-width: 760px) {
	main,
	main.top {
		margin: 14em auto;
		min-height: calc(100vh - 400px);
	}

	main.short {
		margin: 12em auto 6em;
	}
}

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
	main,
	main.top {
		margin: 16em auto 10em auto;
		max-width: 640px;
	}
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) {
	main,
	main.top {
		margin: 16em auto 10em auto;
		max-width: 640px;
	}
}

@media only screen and (min-width: 1460px) {
	main,
	main.top {
		margin: 16em auto 10em auto;
		max-width: 860px;
	}
}

@media only screen and (min-width: 1650px) {
	main,
	main.top {
		margin: 16em auto 10em auto;
		max-width: 1000px;
	}
}

/* date-nav */
#date-nav {
	width: 100%;
	height: 60px;
	position: fixed;
	bottom: -120px;
	left: 0;
	z-index: 1;
	transition: all .3s;
}
#date-nav.move {
	bottom: 110px;
}

#date-nav.show {
	bottom: 0;
}

#date-nav .btn-container {
	position: absolute;
	bottom: 4em;
	left: 5%;
	width: 90%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--gym-color);
	z-index: 1;
	border-radius: 5em;
}

#date-nav .btn-container button {
	background: var(--gym-color);
}

#date-nav .btn-container button:hover {
	background: var(--blue-grey);
}

#date-nav button:disabled {
	opacity: 0;
}

#date-nav button:nth-child(2) {
	color: var(--white);
	font-size: 2em;
	letter-spacing: 1px;
	line-height: 1;
	margin: 0;
}

#date-nav button:nth-child(2) span {
	display: block;
	font-size: .4em;
	margin: .1em;
	letter-spacing: 1px;
}

#date-nav button #date-select {
	font-size: 1em;
}

#date-nav button svg {
	width: .5em;
	height: 1em;
	fill: var(--white);
	margin: 0;
}

#date-nav nav {
	width: 100%;
	height: calc(100vh - 60px);
	position: relative;
	left: 0;
	bottom: -80em;
	overflow: scroll;
	padding: 2em;
	background: #000000e6;
	opacity: 0;
	transition: all .3s ease-out;
}

#date-nav.show {
	height: 60px;
}

#date-nav.open {
	height: calc(100vh - 60px);
}

#date-nav nav.show,
#date-nav nav.show:before {
	bottom: 6em;
	opacity: 1;
}

#date-nav nav a {
	display: flex;
	justify-content: space-between;
	font-size: 1.8em;
	line-height: 1;
	color: var(--pastel);
	text-decoration: none;
	text-transform: uppercase;
	text-align: center;
	padding: .5em 4em;
	transition: all .3s ease-out;
}

#date-nav button:first-of-type,
#date-nav button:last-of-type {
	border-radius: 50%;
	transition: .3s all ease-out;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
}

#date-nav nav a:hover,
#date-nav nav a.selected {
	color: var(--white);
	font-weight: 700;
}

#date-nav nav a span {
	display: block;
	width: 50%;
	text-align: center;
	/* background: red; */
}

#date-nav nav #app {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%);
	box-shadow: 0 0 20px 0px var(--black);
}
#date-nav nav #app .vc-bg-white {
	background: var(--dark-grey);
}

#date-nav nav #app .vc-text-gray-900 {
	color: var(--white);
	border-color: var(--black);
}

#date-nav nav #app .vc-text-gray-800 {
	color: var(--white);
}

#date-nav nav #app input.vc-appearance-none {
	display: none;
}
#date-nav nav #app .vc-day-content[data-v-47ef1cd6]:hover {
	background-color: var(--gym-color);
}

@media only screen and (min-width: 768px) {
	#date-nav {
		width: 300px;
		bottom: 2em;
		left: 2%;
		/* box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.3); */
		z-index: 1;
	}
	#date-nav.open {
		height: 460px;
	}

	#date-nav button:hover {
		background: var(--gym-color);
	}
	#date-nav nav {
		background: transparent;
		height: 480px;
	}
	/* #date-nav nav,
	#date-nav nav:before {
		border-radius: 4em;
	} */
	#date-nav nav.show,
	#date-nav nav.show:before {
		bottom: 7em;
	}

	#date-nav button svg {
		transform: scale(1.5);
	}
}

@media only screen and (max-width: 768px) {
	#date-nav.move {
		bottom: 0;
	}
}

/* log-info */
#log-info {
	padding: 1em;
}

#log-info .full {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
#log-info p {
	text-transform: uppercase;
	font-size: 1.4em;
	letter-spacing: .5px;
	line-height: 1;
	display: block;
}
#log-info a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1em;
	color: var(--white);
	font-size: 1.4em;
	line-height: 1;
}

#log-info svg {
	fill: var(--white);
	width: 10px;
	height: 14px;
}

/* banner */
#banner-container {
	width: 100%;
	max-width: 420px;
	height: 420px;
	position: relative;
	margin-top: 8em;
	overflow: hidden;
}
#banner-container .slider {
	position: relative;
}
#banner-container .slider .slick-slide {
	width: 100%;
	max-width: 420px;
	height: 420px;
	background: var(--black);
	position: relative;
}

#banner-container .slider .slick-dots {
	position: absolute;
	bottom: 5em;
	left: 5%;
	display: flex;
	list-style: none;
}

#banner-container .slider .slick-dots button {
	border-radius: 50%;
	width: 1.5em;
	height: 1.5em;
	background: var(--dark-grey);
	color: var(--dark-grey);
	transition: all .3s ease-out;
}

#banner-container .slider .slick-dots .slick-active button {
	background: var(--gym-color);
	color: var(--gym-color);
}

#banner-container .diagonal {
	position: absolute;
	bottom: -1px;
	left: 52%;
	transform: scale(1.1) translateX(-50%);
}
@media only screen and (min-width: 768px) {
	#banner-container {
		display: none;
		max-width: 360px;
		position: fixed;
		top: 0;
		left: 0;
		z-index: 1;
	}
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) {
	#banner-container {
		display: none;
	}
}
@media only screen and (min-width: 1460px) {
	#banner-container {
		max-width: 420px;
	}
}

/* banner-class */
#banner-class {
	margin-bottom: 2rem;
	width: 96%;
	max-width: 720px;
}
#banner-class .slide {
	border-radius: 1em;
	overflow: hidden;
	background: var(--pastel);
	width: 100%;
	height: 34em;
	padding: 1em;
	position: relative;
}
#banner-class .slick-dots {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
#banner-class .slick-dots button {
	background: var(--pastel);
	color: var(--pastel);
	width: .6rem;
	height: .6rem;
	border-radius: 1rem;
	font-size: 1px;
	margin-right: .5rem;
	opacity: .2;
}

#banner-class .slick-dots .slick-active button {
	opacity: 1;
}

#banner-class .slide > h2,
#banner-class .slide > p {
	color: #111;
}

#banner-class .slide > * {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
#banner-class .banner-1 .hero {
	width: 10rem;
	top: 6rem;
	left: 7rem;
}

#banner-class .banner-1 .icon {
	width: 5rem;
	top: 3rem;
	left: 12rem;
	z-index: 1;
}

#banner-class .banner-1 h2,
#banner-class .banner-1 p {
	text-align: center;
	width: 90%;
}

#banner-class .banner-1 h2 {
	font-size: 2rem;
	top: 13rem;
}

#banner-class .banner-1 p {
	line-height: 1.3;
	top: 16rem;
}

#banner-class .banner-1 .btn {
	top: 19.5rem;
}

@media only screen and (min-width: 768px) {
	#banner-class .slide {
		height: 17rem;
	}
	#banner-class .banner-1 .hero {
		width: 20em;
		top: 8rem;
		left: 10rem;
	}
	#banner-class .banner-1 .icon {
		top: 4rem;
		left: 16rem;
	}
	#banner-class .banner-1 h2,
	#banner-class .banner-1 p {
		text-align: left;
		width: 40%;
		left: 30rem;
	}
	#banner-class .banner-1 h2 {
		top: 5rem;
	}

	#banner-class .banner-1 p {
		top: 9rem;
	}
	#banner-class .banner-1 .btn {
		left: 34rem;
		top: 14rem;
	}
}

/* banner-small */
.banner {
	color: var(--black);
	background: var(--pastel);
	box-shadow: 0 0 30px rgb(0, 0, 0, 0.6);
	border-radius: 1em;
	width: 96%;
	max-width: 400px;
	padding: 2em;
	position: fixed;
	bottom: 16px;
	left: 2%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	z-index: 1;
}

.banner .icon {
	width: 40px;
	height: 40px;
	fill: var(--fitnesshut-color);
	margin-right: 16px;
}

.banner .icon svg {
	width: 100%;
	height: 100%;
}

.banner h2 {
	font-size: 20px;
	color: var(--gym-color);
}

.banner p {
	font-size: 13px;
}

.banner strong {
	font-size: 18px;
}

.banner a {
	color: var(--gym-color);
	transition: color .3s ease-out;
}

.banner a:hover {
	color: var(--black);
}

.banner .btn {
	display: flex;
	justify-content: flex-start;
	padding: 8px 16px;
	margin: 10px 0 0 auto;
	line-height: 1;
	color: var(--white);
}

.banner button svg {
	width: 1em;
	height: 1em;
	fill: var(--white);
	margin-left: 1em;
}

.banner #close {
	background: var(--pastel);
	position: absolute;
	top: 0;
	right: 0;
	width: 24px;
	height: 24px;
}

.banner #close svg {
	fill: var(--fitnesshut-color);
	width: 100%;
	height: 100%;
	margin: 0;
}

#cookies {
	flex-flow: column;
}

/* promo-video */
#promo-video {
	width: 90%;
	margin: 0 auto 8em;
	overflow: hidden;
}
#promo-video .desc {
	width: 80%;
	margin: auto;
	opacity: 0;
	transition: opacity .3s ease-out;
}
#promo-video figure {
	border-radius: 1em;
	overflow: hidden;
	opacity: 0;
	top: 1em;
	transition: all 1s ease-out;
}
#promo-video figure.show {
	opacity: 1;
	top: 0;
}
#promo-video iframe,
#promo-video video {
	width: 100%;
	height: 180px;
	margin-bottom: 4em;
	box-shadow: 0px 30px 50px -25px rgba(0, 0, 0, 1);
}

#promo-video h2 {
	font-size: 3em;
	text-transform: capitalize;
	text-align: center;
	margin-bottom: 1em;
}
#promo-video p {
	text-align: center;
}

@media only screen and (min-width: 768px) {
	#promo-video iframe,
	#promo-video video {
		height: 360px;
	}
}

@media only screen and (min-width: 1600px) {
	#promo-video iframe,
	#promo-video video {
		height: 460px;
	}
}

@media only screen and (min-width: 1800px) {
	#promo-video iframe,
	#promo-video video {
		height: 520px;
	}
}

/* intro */
#intro {
	width: 70%;
	max-width: 500px;
	margin-bottom: 6em;
}

#intro iframe {
	width: 100%;
}

#intro svg {
	fill: var(--gym-color);
	width: 100%;
	max-width: 400px;
	display: block;
	margin: 0 auto 4em;
}
#intro h1 {
	font-size: 3em;
	margin-bottom: .5em;
}

@media only screen and (min-width: 768px) {
	#intro {
		height: 60vh;
	}
	#intro h1 {
		width: 50%;
	}

	#intro p {
		width: 80%;
		margin-left: auto;
	}
}

/* trainers-promo */
#trainers-promo {
	width: 100%;
	max-width: 500px;
	margin-bottom: 8em;
}

#trainers-promo #trainers-container {
	position: relative;
	height: 250px;
	margin-bottom: 4em;
	overflow: hidden;
}
#trainers-promo #trainers-container .portrait {
	width: 16em;
	height: 16em;
	margin: auto;
	overflow: hidden;
	position: relative;
	padding: 4em;
	position: absolute;
	opacity: 0;
}

#trainers-promo #trainers-container .portrait:nth-of-type(1) {
	top: 0;
	left: -10%;
	transition: opacity .3s ease-out;
	transition-delay: .3s;
}

#trainers-promo #trainers-container .portrait:nth-of-type(2) {
	top: 0;
	left: 45%;
	transform: translateX(-50%);
	transition: opacity .5s ease-out;
	transition-delay: .1s;
}

#trainers-promo #trainers-container .portrait:nth-of-type(3) {
	top: 0;
	right: 0;
	transition: opacity .2s ease-out;
	transition-delay: .7s;
}

#trainers-promo #trainers-container .portrait:nth-of-type(4) {
	bottom: 0;
	left: -5%;
	transition: opacity .3s ease-out;
	transition-delay: .9s;
}

#trainers-promo #trainers-container .portrait:nth-of-type(5) {
	bottom: 0;
	left: 45%;
	transform: translateX(-50%);
	transition: opacity .5s ease-out;
	transition-delay: .1s;
}

#trainers-promo #trainers-container .portrait:nth-of-type(6) {
	bottom: 0;
	right: 3%;
	transition: opacity .1s ease-out;
	transition-delay: .5s;
}

#trainers-promo #trainers-container.show .portrait {
	opacity: 1;
}

#trainers-promo #trainers-container .portrait .img-container {
	border-radius: 50%;
	border: 4px solid var(--white);
	box-shadow: 0 0 15px 5px #000;
	width: 12em;
	height: 12em;
	display: block;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

#trainers-promo #trainers-container .portrait img {
	transform: scale(1.2);
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
	cursor: default;
}

#trainers-promo .desc {
	width: 70%;
	margin: auto;
	opacity: 0;
	transition: opacity .5s ease-out;
}

#trainers-promo .desc h2 {
	font-size: 3em;
	text-transform: capitalize;
	text-align: center;
	margin-bottom: .5em;
}

#trainers-promo .desc p {
	text-align: center;
}

@media only screen and (min-width: 768px) {
	#trainers-promo #trainers-container {
		height: 300px;
	}
	#trainers-promo #trainers-container .portrait {
		width: 20em;
		height: 20em;
	}
	#trainers-promo #trainers-container .portrait:nth-of-type(1) {
		left: -2%;
	}
	#trainers-promo #trainers-container .portrait:nth-of-type(2) {
		left: 48%;
	}
	#trainers-promo #trainers-container .portrait:nth-of-type(3) {
		right: 1%;
	}
	#trainers-promo #trainers-container .portrait:nth-of-type(4) {
		left: 5%;
	}
	#trainers-promo #trainers-container .portrait:nth-of-type(5) {
		left: 50%;
	}

	#trainers-promo #trainers-container .portrait .img-container {
		width: 14em;
		height: 14em;
	}
}

/* call-to-action */
#call-to-action {
	width: 70%;
	margin: 0 auto 10em;
	opacity: 0;
	transition: opacity .5s ease-out;
}

#call-to-action h2 {
	font-size: 3em;
	text-transform: capitalize;
	text-align: center;
	margin-bottom: 1em;
}

#call-to-action a {
	max-width: 220px;
	margin: auto;
}

/* title */
.title {
	display: flex;
	align-items: flex-start;
	margin-bottom: 5em;
	max-width: 40em;
}
.title img {
	margin-right: 1em;
}
.title > div {
	width: 100%;
}
.title h1 {
	width: 70%;
	margin-top: .5em;
}
.title p {
	width: 70%;
}
.title button {
	color: var(--fitnesshut-color);
	border: 1px solid var(--fitnesshut-color);
	background: transparent;
}
.title button.selected {
	border-color: var(--white);
	color: var(--white);
}

@media only screen and (min-width: 768px) {
	.title {
		font-size: 1.2em;
	}
}

/* tabs */
nav.tabs {
	display: flex;
	justify-content: flex-end;
	margin: 0 auto 10em;
	width: 90%;
}

nav.tabs a {
	font-size: 1.4em;
	color: var(--pastel);
	text-decoration: none;
	letter-spacing: 1px;
	background: var(--dark-grey);
	padding: .2em 1em;
	transition: background .3s ease-out;
}

nav.tabs a.active {
	background: var(--gym-color);
}

nav.tabs a:hover {
	background: var(--gym-color);
}

nav.tabs a.active:hover {
	transform: unset;
}

nav.tabs.fill a {
	-ms-flex: 1 auto;
	flex: 1 auto;
}
@media only screen and (min-width: 768px) {
	nav.tabs.fill a {
		-ms-flex: unset;
		flex: unset;
	}
}

/* classes */
.card-container {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: flex-start;
	margin: 1em auto 5em;
	width: 96%;
	max-width: 720px;
}

.card-container .row {
	width: 100%;
	margin: 4rem 0 2rem;
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.card-container .row:first-of-type {
	margin-top: 0;
}

.card-container .row h2 {
	font-size: 2em;
}

.card-container .row svg {
	width: 3.3em;
	height: 2em;
	fill: var(--white);
	margin-left: 1em;
}

.card {
	background-color: var(--pastel);
	width: calc(50% - .5em);
	border-radius: 1.2em;
	overflow: hidden;
	margin-bottom: .5em;
	margin-right: .5em;
}

.card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1em 1em .5em;
	border-bottom: 2px solid var(--white);
}

.card-header span {
	color: var(--gym-color);
	font-size: 1.6em;
	line-height: 1;
	letter-spacing: .5px;
	display: block;
}
.card-header svg {
	width: 30px;
	height: 7px;
	fill: var(--gym-color);
}

.card.tape .card-header svg {
	width: 21px;
	height: 14px;
}

.card .cover-container {
	position: relative;
	width: 100%;
	height: 12em;
	overflow: hidden;
}

.card .cover-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
}

.card .cover-container h2 {
	font-size: 5.75vw;
	line-height: 1;
	text-align: center;
	text-shadow: 0 0 60px var(--black);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
	letter-spacing: -1px;
}

/* list style */
.card.list {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-right: 0;
	padding: .5em;
}
.card.list > div {
	width: 20%;
}
.card.list > div:nth-of-type(2) {
	width: 60%;
}
.card.list .card-header {
	flex-flow: column;
	justify-content: center;
	align-items: flex-start;
}
.card.list .card-header span:first-of-type {
	font-weight: 800;
}
.card.list .card-header span:last-of-type {
	font-size: 1.3em;
}
.card.list .cover-container {
	overflow: initial;
}
.card.list .cover-container img,
.card.list .card-body .portrait,
.card.list .card-body .specs {
	display: none;
}
.card.list .cover-container {
	height: unset;
	padding: 1em 0;
}

.card.list .cover-container h2 {
	text-shadow: none;
	color: var(--black);
	width: 100%;
}

.card.list.cover .card-body {
	top: unset;
}

.card.list .card-footer button {
	background: var(--pastel);
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.card.list .card-footer button span {
	display: none;
}

.card.list .card-footer button svg {
	display: block;
	fill: var(--gym-color);
	width: 1em;
	height: 1em;
}

/* slider premium classes */
.slider-container {
	width: calc(100% - .5em);
	max-width: 720px;
	position: relative;
	overflow: hidden;
}

.slider-container::before,
.slider-container::after {
	content: '';
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	z-index: 1;
}
.slider-container::before {
	left: -100%;
	box-shadow: 20px 0 20px rgba(0, 0, 0, 0.2);
}

.slider-container::after {
	left: 100%;
	box-shadow: -20px 0 20px rgba(0, 0, 0, 0.2);
}

.slider-container .slider {
	padding: 0 0 4em 0;
}
.slider-container .link {
	position: absolute;
	bottom: .5em;
	left: .5em;
}

.slider-container button.slick-prev,
.slider-container button.slick-next {
	background: var(--gym-color);
	position: absolute;
	bottom: 0px;
}
.slider-container button.slick-prev {
	right: 4.2em;
}
.slider-container button.slick-next {
	right: 0;
}

/* card trainer */
.card.trainer h2 {
	width: 90%;
	min-height: 2.4em;
	margin: auto;
	line-height: 1;
}

.card.trainer .name {
	margin-bottom: 1em;
}

.card-body {
	padding: 8px;
}

@media (min-width: 425px) {
	.card-body {
		padding: 8px 16px;
	}
}

.card.cover .card-body {
	position: relative;
	top: -4em;
	max-height: 130px;
}

.card-body h2 {
	font-size: clamp(1rem, 1.2rem, 100%);
	color: var(--black);
	text-align: center;
	line-height: 1;
	height: 2em;
	display: flex;
	justify-content: center;
	align-items: center;
}

.card-body .portrait {
	width: 10em;
	height: 10em;
	margin: auto;
	overflow: hidden;
	position: relative;
	padding: 1em;
}
.card-body .portrait .img-container {
	border-radius: 50%;
	border: 4px solid var(--white);
	box-shadow: 0 0 13px 0px #cfcac1;
	width: 8em;
	height: 8em;
	display: block;
	overflow: hidden;
}
.card-body .portrait .img-container img {
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
	/* cursor: pointer; */
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.card-body .portrait .img-container button {
	background: var(--pastel);
	padding: 0;
	margin: 0;
}

.card-body .portrait svg {
	width: 1.2rem;
	height: 1.2rem;
	position: absolute;
	bottom: 1rem;
	right: 1rem;
	fill: var(--gym-color);
	background: var(--white);
	padding: 0;
	border: 5px solid var(--white);
	border-radius: 50%;
	box-shadow: 0 0 13px 0px #cfcac1;
	transition: all .3s ease-out;
}

.card-body .portrait:hover svg {
	background: var(--gym-color);
	border-color: var(--gym-color);
	fill: var(--white);
}

.card-body .name {
	font-size: 1.3em;
	line-height: 1.2;
	color: var(--grey);
	text-align: center;
	display: block;
	text-decoration: none;
	background: var(--pastel);
	text-transform: capitalize;
	width: 100%;
	margin: .4em 0;
	padding: 0;
}

.card-body .specs {
	width: 100%;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	font-size: 1.4em;
	line-height: 1;
	color: var(--grey);
	text-align: center;
}
.card-body .specs > div {
	height: 35px;
	display: flex;
	justify-content: center;
	align-items: center;
}

.card-body .specs button,
.card-body .specs a {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pastel);
	border-radius: 8px;
}

.card-body .specs button:hover {
	background: #f0ede5;
}

.card-body .specs svg {
	width: 18px;
	height: 18px;
	fill: var(--light-grey);
	margin: 4px;
}

.card-body .specs .active svg {
	fill: var(--black);
}

.card-body .intensity svg {
	fill: unset
}

.card-footer {
	background: var(--white);
}

.card-footer a,
.card-footer button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 1em;
	margin: 0;
	font-size: 16px;
	line-height: 1;
	font-weight: 400;
	letter-spacing: 1px;
	text-align: center;
	text-transform: none;
	color: var(--gym-color);
	background: var(--white);
	text-decoration: none;
	transition: all .5s ease-out;
}
.card-footer a:hover,
.card-footer button:hover {
	background: var(--gym-color);
	color: var(--white);
}
.card-footer button svg {
	display: none;
}

.card.lock {
	opacity: .8;
}

.card.lock .cover-container img {
	opacity: 0;
}

.card.lock .card-footer a {
	color: var(--grey);
}

.card.lock .card-footer a:hover{
	background: var(--white);
}

.card.lock svg {
	width: 1em;
	height: 1em;
	fill: var(--grey);
	margin-right: .4em;
}

.card.lg {
	width: 100%;
	max-width: 380px;
	margin: .5em auto;
}

/* card highlight */
.card.highlight {
	width: calc(100% - .5em);
	max-width: 320px;
	margin-bottom: 2em;
	height: 23em;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.card.highlight .cover-container {
	width: 50%;
	height: 100%;
}

.card.highlight .cover-container h2 {
	font-size: 5.5vw;
}
.card.highlight .cover-container img {
	width: 100%;
	object-fit: cover;
}

.card.highlight .info-container {
	width: 50%;
}

.card.highlight .card-header {
	border-bottom-color: var(--pastel);
}

.card.highlight.list {
	width: 100%;
	height: unset;
	flex-flow: column;
}

.card.highlight.list .cover-container {
	width: 100%;
}
.card.highlight.list .cover-container h2 {
	text-shadow: none;
	color: var(--black);
	line-height: 1;
	text-align: center;
}

.card.highlight.list .info-container {
	width: 100%;
}
.card.highlight.list .info-container {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	position: relative;
	top: -1em;
}

.card.highlight.list .cover-container h2 {
	margin-top: .5em;
}
.card.highlight.list .card-body .name {
	margin-top: 2.5em;
}

.card.highlight.list .card-header {
	border: none;
	padding-top: 0;
}
.card.highlight.list .card-footer button {
	padding: .5em 1em 0;
}

.card.highlight.detail {
	max-width: unset;
}

.card.alert {
	display: flex;
	flex-flow: column;
	align-items: center;
	padding: 4em;
	margin-top: 2em;
}
.card.alert h3 {
	color: var(--black);
	text-align: center;
	line-height: 1.2;
	margin-bottom: .5em;
}
.card.alert p {
	color: var(--grey);
	font-size: 1.6em;
	line-height: 1.3;
	text-align: center;
	margin-bottom: 1em;
}

.categories-container {
	width: 100%;
	margin-right: 0;
	position: relative;
	overflow: hidden;
}

.categories-container h3 {
	margin-left: 5%;
}
/* .categories-container::before {
	content: '';
	width: 20%;
	height: 100%;
	position: absolute;
	z-index: 1;
	box-shadow: -40px 0 60px 50px #101010;
	top: 0;
	right: -150px;
} */

.categories-container .slick-arrow {
	position: absolute;
	bottom: 10px;
	right: 10px;
	z-index: 1;
	margin: 0;
	background: transparent;
}

.categories-container .slick-prev {
	right: 4em;
}

.categories-container .slick-slider .slick-list {
	padding: 4em 0;
	/* border-radius: 2em; */
	/* box-shadow: inset 0 0 80px 20px rgba(0, 0, 0, 0.90); */
	/* border: 3px solid var(--black); */
}

.categories-container .slider .slick-slide {
	width: 200px;
	height: 100px;
	margin: 1em 2em 1em 1em;
}

.categories-container .slider .slick-slide:first-of-type::before {
	content: '';
	width: 100px;
}

.categories-container .slider .slick-slide a {
	padding: 0 2em;
	width: 100%;
	height: 100%;
	display: flex;
	/* flex-flow: column; */
	justify-content: center;
	align-items: center;
	text-decoration: none;
	border-radius: 1.5em;
	background: var(--black);
	transition: all .3s ease-out;
}

.categories-container .slider .slick-slide a.active {
	background-image: linear-gradient(to right top, #0066cc, #005ad2, #004bd6, #003ad8, #2e1fd6);
}

.categories-container .slider .slick-slide a:focus {
	border-radius: 1.5em;
	box-shadow: 0 0 9px 0.2rem rgba(0, 102, 255, 1);
}
.categories-container .slider .slick-slide a h2 {
	color: var(--grey);
	z-index: 1;
}

.categories-container .slider .slick-slide a svg {
	width: 40px;
	height: 40px;
	margin-right: 1em;
	fill: var(--grey);
}

.categories-container .slider .slick-slide a.active svg {
	fill: var(--pastel);
}

.categories-container .slider .slick-slide a.active h2 {
	color: var(--pastel);
}

.categories-container .slider .slick-slide a img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

@media only screen and (max-width: 320px) {
	.card-body h2 {
		font-size: 1.4em;
	}
	.card-body .name {
		font-size: 1.1em;
	}
}

@media only screen and (max-width: 768px) {
	.card-body h2 {
		font-size: clamp(1rem, 1rem, 2rem);
	}
}

@media only screen and (min-width: 768px) {
	.card {
		width: calc(33% - .5em);
		transition: all .3s ease-out;
	}
	.card:hover {
		/* transform: scale(1.01); */
		box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.4);
	}

	.card .cover-container {
		height: 16em;
	}

	.card .cover-container h2 {
		font-size: 2vw;
	}

	.card .cover-container img {
		width: 300px;
	}

	.card.highlight {
		height: 23em;
		max-width: 620px;
	}

	.card.highlight .cover-container h2 {
		font-size: 3vw;
	}
	.card.highlight.list .cover-container h2 {
		font-size: 2vw;
	}
	.card.highlight .card-body,
	.card.highlight .card-footer {
		position: relative;
		top: 0;
	}

	.card.highlight.list .card-body,
	.card.highlight.list .card-footer {
		top: 0;
	}
	.card.highlight .cover-container {
		width: calc(2*(100% / 3));
	}
	.card.highlight .info-container {
		width: calc(100% / 3);
	}

	.card.highlight.detail {
		width: calc(50% - 2em);
		margin: 1em;
	}

	.card.highlight.detail h2 {
		font-size: 1.8vw;
	}

	.categories-container .slider .slick-slide {
		transition: all .3s ease-out;
	}

	.categories-container .slider .slick-slide:hover {
		transform: scale(1.01);
	}

	.card.list > div {
		width: 10%;
	}
	.card.list > div:nth-of-type(2) {
		width: 80%;
	}
}

@media only screen and (max-width: 768px) {
	.categories-container .slick-slider .slick-list {
		border-radius: 0;
	}
}

/* class info */
#class-info {
	width: 100%;
	margin: 10em 0;
}

#class-info .class-header {
	width: 90%;
	margin: auto;
}

#class-info .class-header .cat {
	position: absolute;
	top: 12em;
	right: 0;
	z-index: 1;
}

#class-info .class-header .cat svg {
	fill: var(--gym-color);
	width: 4em;
	height: 4em;
}

#class-info .class-header h1 {
	font-size: 3em;
	text-transform: uppercase;
	line-height: 1;
}

#class-info .class-header h2 {
	font-size: 3em;
	line-height: 1;
}
#class-info .class-header > div:last-of-type {
	display: flex;
	align-items: center;
}

#class-info .class-header > div:last-of-type > * {
	fill: var(--grey);
	color: var(--grey);
	margin-right: 1em;
}

#class-info .class-header > div:last-of-type > *:last-child {
	margin-right: 0;
}

#class-info .class-header > div:last-of-type > svg {
	width: 2em;
	height: 2em;
}
#class-info .class-header > div:last-of-type p {
	font-size: 1.3em;
	text-transform: uppercase;
	line-height: 1;
	font-family: 'Work Sans', sans-serif;
}
#class-info .video {
	margin-top: 1em;
	background: var(--black);
	position: relative;
	box-shadow: 0px 30px 50px -25px rgba(0, 0, 0, 1);
	position: relative;
}

#class-info .video .cover {
	display: flex;
	align-items: center;
	justify-content: center;
}

#class-info .video .cover img {
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
}
#class-info .video .cover svg {
	width: 7em;
	height: 7em;
	fill: var(--white);
	position: absolute;
	top: 40%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: .5;
	z-index: 1;
}

#class-info .video .cover:hover svg {
	opacity: 1;
}

#class-info .video .live {
	width: 100%;
	/* height: 21em; */
	padding: 4em;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(326deg, #0066cc, #2416c3, #0066cc);
	background-size: 600% 600%;
	-webkit-animation: grad_blue_bg 11s ease infinite;
	-moz-animation: grad_blue_bg 11s ease infinite;
	-o-animation: grad_blue_bg 11s ease infinite;
	animation: grad_blue_bg 11s ease infinite;
}

#class-info .video .live .info {
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
}
#class-info .video .live .status {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 2em;
}
#class-info .video .live .status span {
	width: 2em;
	height: 2em;
	display: block;
	background: red;
	border-radius: 50%;
	margin-right: 1em;
	animation-name: pulse;
	animation-duration: 3s;
	animation-iteration-count: infinite;
}

#class-info .video .live .next p {
	margin-right: 1em;
}

#class-info .video .live h2 {
	font-size: 3em;
	line-height: 1;
}

#class-info .video .live .note {
	width: 100%;
	margin-top: 2em;
}

#class-info .video .live .note p {
	font-size: 1.3em;
	text-align: center;
}

#class-info .video .live .note svg {
	fill: var(--white);
	width: 3.3em;
	height: .8em;
	margin: auto;
}

#class-info .video .disabled {
	opacity: .2;
}

#class-info iframe {
	width: 100%;
	height: 210px;
}

#class-info nav {
	display: flex;
	width: 100%;
	padding: 1em 0;
	z-index: 1;
}

#class-info nav button {
	flex: 1;
	margin: 0;
	display: flex;
	flex-flow: column;
	justify-content: flex-start;
	align-items: center;
	font-size: 1em;
	letter-spacing: 1px;
	text-transform: none;
	color: var(--grey);
}
#class-info nav button:focus {
	box-shadow: none;
}

#class-info nav button svg {
	width: 3em;
	height: 2em;
	margin-bottom: .5em;
	fill: var(--grey);
}

#class-info nav button.selected {
	color: var(--pastel);
}

#class-info nav button.selected svg {
	fill: var(--pastel);
}

#class-info nav button.disabled {
	color: var(--dark-grey);
}
#class-info nav button.disabled svg {
	fill: var(--dark-grey);
}

#class-info .drawer {
	background: var(--black);
	padding: 2em;
}

#class-info .drawer .drawer-body {
	width: 90%;
	margin: auto;
	display: flex;
	flex-flow: column;
	align-items: center;
}

#class-info .drawer .drawer-body p {
	margin-bottom: 1em;
}
#class-info .drawer .drawer-body .stars {
	display: flex;
	margin: auto;
}

#class-info .drawer .drawer-body .stars button {
	margin: 0;
}

#class-info .drawer .drawer-body .stars button:focus {
	box-shadow: none;
}
#class-info .drawer .drawer-body .stars svg {
	stroke: var(--grey);
	width: 2em;
	height: 2em;
}
#class-info .drawer .drawer-body .stars button.selected svg {
	fill: var(--pastel);
	stroke: var(--pastel);
}

#class-info .fav .fav-item {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	margin: .5em auto;
}
#class-info .fav .fav-item:focus {
	box-shadow: none;
}
#class-info .fav .fav-item svg {
	fill: var(--grey);
	width: 2em;
	height: 2em;
	margin-right: 1em;
}
#class-info .fav .fav-item span {
	text-align: left;
}
#class-info .fav .fav-item p {
	color: var(--grey);
	line-height: 1.2;
	font-size: 1em;
	text-transform: none;
	letter-spacing: .5px;
	margin-bottom: 0;
}
#class-info .fav .fav-item p:last-of-type {
	font-size: 1.3em;
	font-weight: 600;
}

#class-info .fav .fav-item.selected p {
	color: var(--pastel);
}
#class-info .fav .fav-item.selected svg {
	fill: var(--pastel);
}
#class-info .drawer .drawer-body .class-spotify-holder iframe {
	height: 36em;
	margin-top: 1em;
}
#class-info .close {
	position: absolute;
	bottom: 0;
	right: 0;
	background: transparent;
	margin: 0;
}

#class-info .close svg {
	fill: var(--pastel);
	width: 1em;
	height: 1em;
}

#class-info .about {
	width: 90%;
	margin: auto;
}

#class-info .about > h2 {
	margin: 4em 0 2em;
}

@media only screen and (min-width: 768px) {
	#class-info .class-header {
		position: relative;
	}
	#class-info .class-header .cat {
		top: 0;
	}
	#class-info .class-header .cat svg {
		width: 6em;
		height: 6em;
	}

	#class-info .class-header h1,
	#class-info .class-header h2 {
		font-size: 4vw;
		line-height: 1;
	}
	#class-info .video {
		width: 90%;
		margin: 1em auto;
	}
	#class-info .video .live {
		height: 300px;
	}
	#class-info iframe {
		height: 360px;
	}
	#class-info .drawer .drawer-body.fav div {
		display: flex;
		width: 60%;
		margin: auto;
		justify-content: center;
	}
	#class-info .drawer .drawer-body.fav div button {
		width: 50%;
	}
}

@media only screen and (min-width: 1460px) {
	#class-info .video .live,
	#class-info iframe {
		height: 480px;
	}
}

@media only screen and (min-width: 1640px) {
	#class-info .video .live,
	#class-info iframe {
		height: 500px;
	}
}

/* timetable */
#timetable {
	display: grid;
	grid-template-columns: repeat(2, 50%);
	column-gap: 8px;
}

@media (min-width: 768px){
	#timetable {
		width: 100%;
		grid-template-columns: repeat(5, calc(100% / 5));
	}
}

#timetable > div {
	border-radius: 10px;
	margin-bottom: 64px;
	padding: 8px;

	background: rgba(0, 0, 0, .2);
}

#timetable h2 {
	margin: 8px 0;
}

#timetable .card {
	width: 100%;
}
#timetable .card[data-status="done"] {
	filter: grayscale(1) brightness(0.2);
}

#timetable .card-body {
	padding: 8px;
}
#timetable .time {
	color: var(--fitnesshut-color);
	font-size: 12px;
	display: block;
}

#timetable button {
	font-family: 'Work Sans', sans-serif;
	font-size: 14px;
	letter-spacing: .5px;
	text-align: center;
	font-weight: 900;
	margin: 8px 0;
	padding: 0 8px;
	border-radius: 4px;
	background: transparent;
	width: 100%;
	height: 30px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

#timetable button:focus{
	box-shadow: none;
}

#timetable h2 span {
	color: var(--grey);
	font-size: 12px;
}

#timetable h2.selected {
	background: var(--fitnesshut-color);
}

#timetable .trainer {
	font-size: 12px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	color: var(--grey);
	line-height: 1;
	text-decoration: none;
	border-top: 1px solid var(--light-grey);
	padding-top: 4px;
}

#timetable .trainer img {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	object-fit: cover;
	margin-right: 8px;
}

/* second nav */
#second-nav {
	width: 96%;
	margin: 0 auto 2em;
	box-shadow: 0 0 50px 10px var(--black);
}
#second-nav nav {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

#second-nav nav > div:first-of-type {
	width: 60%;
}
#second-nav nav > div:last-of-type {
	width: 40%;
	display: flex;
	justify-content: space-between;
}

#second-nav nav > div:last-of-type button {
	width: calc(100% /.25);
}

#second-nav button {
	display: inline-block;
	background: transparent;
	margin: 0;
	transition: background .3s ease-out;
}

#second-nav button:focus {
	box-shadow: none;
}

#second-nav nav button svg {
	width: 1.7em;
	height: 1.7em;
	fill: var(--grey);
}

#second-nav nav .active svg {
	fill: var(--pastel);
}

#second-nav nav button.select {
	font-size: 1.4em;
	font-weight: 700;
	color: var(--grey);
	width: 100%;
	position: relative;
	text-align: left;
}

#second-nav button.selected {
	background: var(--medium-grey);
	color: var(--white);
}

#second-nav button.selected svg {
	fill: var(--white);
}

#second-nav button.select svg {
	width: 1em;
	height: 1em;
	position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%);
}

#second-nav .drawer {
	padding: 2em;
	background: var(--medium-grey);
	position: relative;
}

#second-nav .drawer > div {
	display: flex;
	flex-wrap: wrap;
}

#second-nav .drawer span {
	display: inline-block;
}

#second-nav .drawer .list-item.parent {
	width: 100%;
	border-top: 1px solid var(--dark-grey);
	padding: 2em 1em 0;
}
#second-nav .drawer .list-item.parent:last-of-type {
	border-bottom: 1px solid var(--dark-grey);
}

#second-nav .drawer .list-item {
	display: flex;
	align-items: center;
	padding: .5em;
	text-transform: uppercase;
}

#second-nav .drawer .list-item.full {
	width: 100%;
}

#second-nav .drawer .list-item span:first-of-type {
	font-size: 1em;
	font-weight: 800;
	letter-spacing: .5px;
}

#second-nav .drawer .list-item span:last-of-type {
	font-size: 1.3em;
	color: var(--grey);
	margin-left: 1em;
}

#second-nav .drawer .list-item button {
	color: var(--white);
	padding: .5em 1em;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

#second-nav .drawer svg {
	width: 1em;
	height: 1em;
	fill: var(--white);
}

#second-nav .drawer svg.md {
	width: 2em;
}

#second-nav .drawer svg.xl {
	width: 2em;
	height: 2em;
}

#second-nav .drawer form {
	width: 90%;
	margin: auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

#second-nav .drawer form > input {
	display: inline;
	margin: 0;
	background: var(--medium-grey);
	border: none;
	border-bottom: 1px solid var(--grey);
	font-size: 2em;
	padding: .5em;
}
#second-nav .drawer form > input:focus {
	box-shadow: none;
	border-bottom-color: var(--white);
}
#second-nav .drawer form > button {
	margin-left: 1em;
}

#second-nav .drawer .close {
	position: absolute;
	bottom: 0;
	right: 0;
}

@media only screen and (min-width: 768px) {
	#second-nav nav button:hover svg {
		fill: var(--white);
	}
	#second-nav button:hover {
		background: var(--medium-grey);
	}
	#second-nav .drawer .list-item button:hover {
		background: var(--white);
		color: var(--medium-grey);
	}
}

/* modal */
#modal {
	position: fixed;
	width: 100%;
	max-width: 720px;
	height: 110vh;
	/* height: calc(100 * var(--vh)); */
	/* bottom: -120vh; */
	top: 0;
	right: -150%;
	display: flex;
	align-items: center;
	justify-content: center;
	/* padding: 6em 2em 2em; */
	background: var(--pastel);
	box-shadow: 0 0 140px 10px black;
	z-index: 2;
	transition: right .5s ease-out;
}

#modal.show {
	right: 0;
	transition: right .5s ease-out;
}

#modal #close {
	background: var(--pastel);
	position: absolute;
	top: 3em;
	right: 1em;
}

#modal #close svg {
	fill: var(--gym-color);
	width: 16px;
	height: 16px;
}

#modal h3 {
	color: var(--fitnesshut-color);
	font-weight: 900;
	text-align: left;
	line-height: 1.3;
	margin-bottom: 1em;
	text-transform: capitalize;
	font-size: 2.6em;
}
#modal p {
	color: var(--black);
	font-size: 1.6em;
	text-align: center;
	line-height: 1.6;
	margin-bottom: 1em;
}

#modal #login {
	display: flex;
	flex-flow: column;
	align-items: center;
	width: 100%;
}

#modal #login h2 {
	color: var(--black);
	font-size: 2.6em;
	line-height: 1;
	margin: .5em 0 1em;
}

#modal #login span {
	width: 100%;
	display: block;
}

#modal #login .link {
	display: flex;
	flex-flow: column;
	align-items: center;
	position: relative;
	background: var(--white);
	padding: 4em 2em 6em;
	margin-bottom: 2em;
	box-shadow: 0 0 13px 0px #cfcac1;
	border-radius: 2em;
	width: 90%;
}

#modal #login .link h3 {
	margin-bottom: .5em;
	text-align: center;
	font-size: 2.4em;
}
#modal #login .link p {
	line-height: 1.3;
	margin-bottom: .3em;
	text-align: left;
	font-size: 1.4em !important;
}

#modal #login .link .btn {
	/* position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%); */
	width: 100%;
	margin-bottom: 0;
	padding: 1em;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 1em auto 0;
	position: absolute;
	bottom: 0;
	left: 0;
	border-radius: 1em;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

#modal #login .link .btn svg {
	width: 1em;
	height: 1em;
	fill: var(--white);
}

#modal #login .btn {
	margin-bottom: 1em;
}

#modal #fav {
	width: 90%;
	margin: auto;
}

#modal #fav button {
	background: var(--pastel);
	display: flex;
	align-items: center;
	width: 100%;
	padding: 2em 1em;
	margin: 0;
}

#modal #fav button:focus {
	box-shadow: none;
}

#modal #fav button svg {
	width: 3em;
	height: 3em;
	margin-right: 1em;
	fill: var(--light-grey);
}

#modal #fav button.selected svg {
	fill: var(--black);
}

#modal #fav button span {
	display: block;
}

#modal #fav button > span {
	display: flex;
	flex-flow: column;
	align-items: flex-start;
}

#modal #fav button .type {
	font-size: 1.3em;
	letter-spacing: 1px;
	color: var(--grey);
	text-transform: lowercase;
}

#modal #fav button .name {
	font-size: 1.6em;
	color: var(--grey);
	line-height: 1.2;
	font-weight: 700;
}

#modal #fav button.selected .type,
#modal #fav button.selected .name {
	color: var(--black);
}

#modal #music {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
}

#modal #music iframe {
	box-shadow: 0px 30px 50px -25px rgba(0, 0, 0, 0.75);
	width: 100%;
	max-width: 400px;
	height: 320px;
	border-radius: 1em;
	display: block;
	margin: 0 auto 4em;
}
#modal #class {
	width: 100%;
	height: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
}

#modal #class h2 {
	color: var(--black);
	font-size: clamp(1rem, 10vw, 2rem);
	text-align: center;
	line-height: 1;
	margin: .5em 0;
}


#modal #class .card-container {
	margin: 2em auto 0;
}

#modal #class .card {
	margin: 0;
	background-color: transparent;
}

#modal #class .card-body h3 {
	text-align: center;
}

#modal #class .card-body .specs-list {
	font-size: 1.6em;
	color: var(--grey);
}
#modal #class .card-body .specs-list > div {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	border-bottom: 1px solid var(--light-grey);
	padding: .2em;
	height: 2rem;
}
#modal #class .card-body .specs-list > div:first-of-type {
	border-top: 1px solid var(--light-grey);
}
#modal #class .card-body .specs-list > div > span:first-of-type {
	margin-right: .5em;
	width: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 30px;
}
#modal #class .card-body .specs-list > div > span:last-of-type button {
	font-size: 1em;
	color: var(--grey);
	text-align: left;
	text-transform: unset;
	padding: 0;
}

#modal #class .card-body .specs-list button,
#modal #class .card-body .specs-list a {
	margin: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

#modal #class .card-body .specs-list svg {
	width: 18px;
	height: 18px;
}

#modal #class .card-body .specs-list .intensity button,
#modal #class .card-body .specs-list .fav button,
#modal #class .card-body .specs-list .music button {
	background: var(--pastel);
}

#modal #class .card-body .specs-list .fav svg,
#modal #class .card-body .specs-list .music svg {
	fill: var(--light-grey);
}

#modal #class .card-body .specs-list .fav.active svg,
#modal #class .card-body .specs-list .music.active svg {
	fill: var(--black);
}

#modal #class .gear {
	margin-top: 1em;
}
#modal #class .gear p {
	font-size: 1.4em;
	line-height: 1.4;
	color: var(--grey);
}

#modal #class .gear p.title {
	font-size: 1.2em;
	text-align: center;
	text-transform: uppercase;
	font-weight: 700;
	margin: .5em 0;
	color: var(--black);
	width: 100%;
	display: block;
}

#modal #class .class-start {
	background: var(--white);
	width: 80%;
	margin: auto;
	padding: 2em;
	border-radius: 2em;
	box-shadow: 0 0 13px 0px #cfcac1;
}

#modal #class .class-start .card-body {
	padding: 0;
}

#modal #class .class-start .class-counter {
	margin-bottom: 0;
}

#modal #class .class-start p {
	font-size: 1.4em;
	line-height: 1.4;
	margin: .5em 0 0;
	color: var(--grey);
}

#modal #class .class-start p.code {
	font-size: 2em;
	letter-spacing: 2px;
	text-align: center;
	/*text-transform: uppercase;*/
	font-weight: 700;
	margin: 0 0 .5em 0;
	color: var(--black);
	width: 100%;
	display: block;
}
#modal #class .class-start p.desc {
	font-size: 1.2em;
	width: 90%;
	margin: auto;
}

#modal #b-live-url {
	margin: auto;
}

#modal #class iframe {
	width: 100%;
	height: 170px;
	box-shadow: 0px 30px 50px -25px rgba(0, 0, 0, 0.5);
}

@media only screen and (min-width: 425px) {
	#modal #class iframe {
		width: 380px;
		height: 220px;
	}
}

@media only screen and (min-width: 768px) {
	#modal #class iframe {
		width: 600px;
		height: 340px;
	}
}

@media only screen and (max-width: 320px) {
	#modal #music iframe {
		height: 300px;
	}
}
@media only screen and (min-width: 768px) {
	#modal {
		left: unset;
		padding: 6em;
	}

	#modal.show {
		bottom: 0;
		transition: all .3s ease-out;
	}

	#modal #close svg {
		width: 20px;
		height: 20px;
	}

	#modal #login {
		width: 60%;
	}
	#modal #login .link {
		padding: 4em;
		padding-bottom: 6em;
	}

	#modal #login .link .btn {
		right: 2em;
	}
	#modal #login .link p {
		font-size: 1.8em;
	}

	#modal #class .card-container {
		width: 500px;
	}

	#modal .card {
		width: calc(50% - 1em);
	}

	#modal .card:hover {
		transform: unset;
		box-shadow: unset;
	}

	#modal .card.lg {
		width: 100%;
		max-width: unset;
	}

	#modal .card.gear .card-body {
		display: flex;
		flex-flow: column;
		align-items: center;
	}
	#modal .card.gear .card-body p {
		text-align: center !important;
	}
}

/* classes */
#classes {
	width: 90%;
	margin: auto;
}

/* trainers */
#trainers {
	width: 90%;
	margin: auto;
}

/* trainer */
#trainer {
	width: 90%;
	margin: auto;
}

#trainer .header {
	display: flex;
	flex-flow: column;
	align-items: center;
	margin-bottom: 6em;
}
#trainer .header .portrait {
	width: 16em;
	height: 16em;
	margin: 1em auto;
	overflow: hidden;
	position: relative;
}

#trainer .header .portrait .img-container {
	border-radius: 50%;
	width: 16em;
	height: 16em;
	display: block;
	border: 2px solid var(--pastel);
	overflow: hidden;
}

#trainer .header .portrait .img-container img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#trainer .header .quantity {
	font-size: 1.6em;
	font-family: 'Work Sans', sans-serif;
	font-weight: 700;
}
#trainer .header .type,
#trainer .header .club,
#trainer .header .quote {
	font-size: 1.4em;
}

#trainer .header .quote {
	margin-top: 2em;
	text-align: center;
}

@media only screen and (min-width: 768px) {
	#trainer .header .quote {
		max-width: 60%;
	}
}

@media only screen and (min-width: 1200px) {
	#trainer .header {
		position: fixed;
		top: 50%;
		left: 0;
		width: 32vw;
		transform: translateY(-50%);
	}
}

@media only screen and (min-width: 1980px) {
	#trainer .header {
		transform: translateY(-50%) scale(1.5);
	}
}

/* promo-card */
.promo-card {
	width: 100%;
	/* max-width: 400px; */
	margin: auto;
	overflow: hidden;
	transform: translateY(10%);
	opacity: 0;
	transition: all 1s .5s ease-out;
}
.promo-card.show {
	transform: translateY(0);
	opacity: 1;
}
.promo-card .promo-card-body {
	background: var(--black);
	padding: 4em 12em 4em 4em;
}
.promo-card .promo-card-body h2 {
	color: var(--white);
	font-size: 2.6em;
	text-transform: capitalize;
	margin: 1em 0 .5em;
}
.promo-card .promo-card-body p {
	font-size: 1.6em;
}

.promo-card .promo-card-body .btn {
	margin-top: 2em;
}
@media only screen and (min-width: 768px) {
	.promo-card .promo-card-body {
		padding: 4em 30em 4em 16em;
	}
}

/* register */
#register,
#login {
	width: 85%;
	margin: auto;
}

#register .card {
	padding: 2em;
}

#register .card .card-body {
	display: flex;
	flex-flow: column;
	align-items: center;
}

#register .card h2 {
	font-size: 1.8em;
}
#register .card p {
	color: var(--dark-grey);
	text-align: center;
	margin-bottom: 1em;
}
#register .card img {
	width: 8em;
	margin-bottom: 1em;
}

#register form p,
#register form .checkbox-container label {
	font-size: 1.2em;
}

@media only screen and (min-width: 768px) {
	#register,
	#login {
		width: 60%;
		max-width: 420px;
		margin: auto;
	}
}

/* form */

form > input,
form > select,
form > textarea {
	width: 100%;
	display: block;
	margin: 1em 0;
	padding: 8px;
	background: transparent;
	border-radius: 0;
	border: none;
	border-bottom: 1px solid var(--grey);
	font-size: 1.8em;
	line-height: 1;
	letter-spacing: 1px;
	color: var(--white);
	transition: all .2s ease-out;
}

form > input.error,
form > select.error,
form > textarea.error,
.checkbox-container label.error::before {
	border: 1px solid #f00;
}

form > input:focus,
form > select:focus {
	border-color: var(--gym-color);
}

form > label {
	font-size: 1.4em;
	color: var(--pastel);
	text-transform: uppercase;
	margin-bottom: .3em;
}

form div {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

form div a {
	line-height: 2;
}

form .recaptcha-container {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-bottom: 2em;
}

form .checkbox-container {
	width: 100%;
	display: flex;
	position: relative;
	margin-bottom: 2em;
}
form .checkbox-container input {
	display: none;
}
form .checkbox-container label {
	font-size: 1.4em;
	line-height: 1.6;
	padding-left: 2em;
}
form .checkbox-container label a {
	color: var(--white);
}

form .checkbox-container label::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 1.5em;
	height: 1.5em;
	border-radius: .5em;
	background: var(--dark-grey);
	border: 1px solid var(--grey);
	transition: all .2s ease-out;
}

form .checkbox-container input:checked + label::before {
	background-color: var(--gym-color);
	color: var(--white);
	border-color: var(--gym-color);
}

form .radio-container {
	/* width: 100%; */
	margin-bottom: 2em;
	margin-left: 2em;
}

form input[type=radio] {
	display: none;
}

form label.radio {
	position: relative;
	padding-left: 30px;
	margin-right: 20px;
	font-size: 1.6em;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	cursor: pointer;
}

form label.radio::before {
	content: "";
	border: 1px solid var(--grey);
	width: 16px;
	height: 16px;
	border-radius: 50%;
	position: absolute;
	top: .4em;
	left: 0;
}

form input[type=radio]:checked + label.radio::before {
	background: var(--gym-color);
	border-color: var(--gym-color);
}

form .radio-container.nps {
	display: flex;
	flex-wrap: wrap;
}

form .radio-container.nps label::before {
	display: none;
}

form .radio-container.nps label {
	border: 1px solid var(--grey);
	border-left: 0;
	border-right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3em;
	margin: 0 0 1em 0;
	padding: .2em 0;
	transition: all .3s ease-out;
}
form .radio-container.nps label:first-of-type {
	border-top-left-radius: 1em;
	border-bottom-left-radius: 1em;
}
form .radio-container.nps label:last-of-type {
	border-top-right-radius: 1em;
	border-bottom-right-radius: 1em;
}

form .radio-container.nps label:hover {
	background: var(--black);
}

form .radio-container.nps input[type=radio]:checked + label.radio {
	background: var(--gym-color);
	border-color: var(--gym-color);
}

form p {
	font-size: 1.4em;
}

form .container {
	margin: 6em auto;
	width: 80%;
	max-width: 60em;
}

.filter {
	width: 90%;
	max-width: 400px;
	height: 6em;
	margin: 1em auto 6em;
}

.filter input {
	border-right: none;
	border-radius: 0;
	padding: .5em 1em;
}
.filter input:focus {
	box-shadow: none;
}

.filter button {
	background: transparent;
	border: none;
	border-left: none;
	padding: 1.22em 1.5em;
	margin: 0;
}

.filter button svg {
	fill: var(--grey);
	width: 1.6em;
	height: 1.6em;
}

#search-by-datalist {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 2em;
}

@media only screen and (min-width: 768px){
	.filter {
		margin: 1em auto 6em 0 !important;
	}
}

/* user-area */
/* person-data */
#person-data-delete {
	width: 90%;
	margin: auto;
}
#person-data-delete.top {
	margin-top: 20em;
}
#person-data-delete p,
#person-data-delete > h2 {
	width: 90%;
	margin: 0 0 1em auto;
}
#person-data-delete p {
	font-size: 1.6em;
}
#person-data-delete a {
	display: block;
	margin: 3em 0 0 auto;
	max-width: 24em;
}
#person-data-delete button {
	margin: 4em 0 10em auto;
}
#person-data-delete .final-btn {
	display: flex;
	align-items: center;
	justify-content: center;
}
#person-data-delete button#delete-account {
	margin: 0 0 0 1em;
}
@media only screen and (max-width: 768px) {
	#person-data-delete .final-btn {
		flex-flow: column;
	}
}

/* rgpd */
#rgpd form label {
	font-size: 1.6em;
	line-height: 2;
	margin-bottom: 4em;
}

/* howto */
#howto .card {
	margin-bottom: 2em;
}
#howto .card .card-body {
	display: flex;
	align-items: center;
	padding: 2em;
}
#howto .card .card-body a {
	color: var(--dark-grey);
	transition: all .3s ease-out;
}

#howto .card .card-body a:hover {
	color: var(--gym-color);
}

#howto .card .card-body > span:first-of-type {
	color: var(--gym-color);
	font-size: 2em;
	font-weight: 700;
	height: 100%;
	padding: 0 .5em;
	border-right: 3px solid var(--white);
	display: block;
}

#howto .card .card-body > span:last-of-type {
	padding-left: 1em;
}

#howto .card h3 {
	color: var(--black);
	line-height: 1.2;
	margin-bottom: .2em;
}

#howto .card p {
	color: var(--grey);
	line-height: 1.2;
}

/* about */
#about,
#about {
	width: 100%;
}
#about > div,
#legal > div {
	width: 80%;
	margin: auto;
	transform: translate(0, 10%);
}

.fade-in-nested > div {
	opacity: 0;
	transition: all 1s ease-out;
}

.fade-in-nested > div:first-of-type,
.fade-in-nested > div.show {
	opacity: 1;
	transform: translate(0, 0);
}

#about > div h2 {
	font-size: 2em;
	text-transform: capitalize;
	width: 80%;
	margin: 4em auto 1em 0;
}

#about > div svg {
	width: 4em;
	height: 4em;
	fill: var(--gym-color);
	margin: auto;
	display: block;
	margin-top: 3em;
}
#about > div p {
	line-height: 2em;
	width: 90%;
	margin: 0 0 1em auto;
}

#about > div h3 {
	margin: 2em auto 0;
	text-align: center;
}

#about > div p:last-of-type {
	margin-bottom: 0;
}

#about > div li {
	width: 80%;
	margin: 1em 0 1em auto;
}
#about > div li.all {
	width: 98%;
}
#about > div li:first-of-type {
	margin-top: 2em;
}

#about > img {
	width: 100%;
	margin: 10em auto;
	opacity: 0;
	top: 2em;
	transform: translate(0, 10%);
	transition: all 1s ease-out;
}

#about > img.show {
	transform: translate(0, 0);
	opacity: 1;
	top: 0;
}

#about .icon-card {
	width: 100%;
	margin: auto;
	overflow: hidden;
}
#about .icon-card .diagonal {
	width: 100%;
}

#about .icon-card .card-body {
	background: var(--black);
	width: 100%;
	min-height: 120px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2em;
}

@media only screen and (min-width: 768px) {
	#about > img {
		width: 80%;
	}
}

/* legal */
#legal > div {
	padding-bottom: 6em;
}

#legal h2 {
	margin-bottom: 2em;
}
#legal p {
	margin-bottom: 1em;
}

#legal .title {
	margin-top: 20em;
	margin-left: 0;
	padding-bottom: 0;
}

#legal address {
	margin-bottom: 10em;
}
#legal address h2 {
	font-style: normal;
	margin-bottom: 0;
}
#legal address p:first-of-type {
	font-style: normal;
	margin-bottom: 1em;
}

#legal address p {
	margin-bottom: .5em;
}

#landscape-alert {
	display: none;
}

/* landscape-alert */
@media only screen and (orientation: landscape) and (max-device-width: 768px) {
	#landscape-alert {
		background: var(--dark-grey);
		width: 100%;
		height: 100vh;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-flow: column;
		position: fixed;
		z-index: 2;
		top: 0;
		left: 0;
	}

	#landscape-alert svg {
		fill: var(--pastel);
		margin-bottom: 2em;
		width: 10em;
		height: 10em;
	}
	#landscape-alert h2 {
		color: var(--pastel);
		letter-spacing: 1.5px;
	}
}

/* footer */
footer {
	text-align: center;
	padding: 2em 2em 10em 2em;
	width: 100%;
	display: flex;
	flex-flow: column;
	justify-content: center;
	align-items: center;
}
footer h6 {
	font-size: 1.8em;
	line-height: 1.2;
	letter-spacing: 1px;
	margin-bottom: .4em;
}
footer p {
	font-size: 1.3em;
	line-height: 1.4;
	letter-spacing: .2px;
	color: var(--grey);
}

footer a {
	color: var(--grey);
	text-decoration: none;
	border-bottom: 1px solid var(--grey);
	transition: all .3s ease-out;
}
footer a:hover {
	color: var(--white);
	border-bottom-color: var(--white);
}
footer #logo {
	width: 100px;
	margin-bottom: 24px;
}
@media only screen and (min-width: 768px) {
	footer {
		flex-flow: row;
		text-align: right;
		padding: 2em 8em;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: auto;
		background: rgba(0, 0, 0, 0.5);
	}

	footer #logo {
		margin: 0;
	}
}

/* other */
#btn-top {
	position: fixed;
	bottom: 0;
	left: 50%;
	margin: 0;
	padding: .5em 1em;
	transition: all .3s ease-out;
	transform: translateX(-50%);
}

#btn-top svg {
	fill: var(--grey);
	width: 1em;
	height: 1em;
}

#btn-top:hover svg {
	fill: var(--white);
}

.alert {
	border: 4px solid var(--gym-color);
	padding: 2em;
	margin: 3em 0;
	font-size: 1em;
	line-height: 2;
	transition: all .3s 1s ease-out;
}

.alert h3 {
	font-size: 1.6em;
	line-height: 1.2em;
	margin-bottom: .5em;
}
.alert a {
	color: var(--white);
}
.diagonal {
	transform: scale(1.1);
}
.diagonal.bottom {
	transform: scale(1.1) rotate(180deg) translateY(1px);
}

#going_down {
	background: transparent;
	width: 60px;
	margin: auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

#going_down svg {
	fill: var(--gym-color);
	width: 25px;
	height: 25px;
}

.filter-select {
	width: 90%;
	height: 6em;
	display: flex;
	flex-flow: row;
	margin: 0 auto 6em;
}

.filter-select select {
	border-radius: 0;
	padding: .5em 1em;
	margin: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
}

.filter-select select option {
	text-align: center;
}

.second-links {
	width: 100%;
	display: flex;
	justify-content: space-between;
}

#bg {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	display: none;
}

#bg img {
	-webkit-user-select: none;
	-webkit-user-drag: none;
	-webkit-app-region: no-drag;
	cursor: default;
}

#bg.home {
	-webkit-transform: scaleX(-1);
	transform: scaleX(-1);
}

.logo {
	width: 60%;
	margin: 10em auto;
}

.logo h3 {
	text-align: center;
	margin-bottom: 2em;
}

.logo img {
	margin: auto;
}

.welcome #about p {
	width: 100%;
	font-size: 1.4em;
	line-height: 1.6;
}

/* tooltip */
.tooltip {
	position: relative;
	display: inline-block;
}

.tooltip .tooltiptext {
	visibility: hidden;
	background-color: transparent;
	color: var(--grey);
	text-align: center;
	padding: .2em 1em;
	border-radius: 2em;
	position: absolute;
	font-size: 12px;
	z-index: 1;
	top: 2.5em;
	transition: all .3s ease-out;
}

.tooltip .tooltiptext {
	top: 2em;
}
.tooltip:hover .tooltiptext {
	visibility: visible;
}



@media only screen and (min-width: 760px) {
	#btn-top {
		left: 100%;
		transform: translateX(-100%);
	}
	#btn-top:hover {
		background: var(--gym-color);
	}
	#going_down {
		display: none;
	}

	#bg {
		display: flex;
		align-items: center;
		justify-content: flex-start;
	}
}

/* toast */
.toast {
	position: fixed;
	bottom: -200px;
	right: 0;
	width: 100%;
	background: var(--gym-color);
	padding: 16px;
	margin: 0;
	font-size: 16px;
	line-height: 1.4;
	text-align: center;
	box-shadow: 0px 0px 80px var(--black);
	z-index: 1;
	transition: bottom 300ms ease-in-out;
}

.toast.show {
	bottom: 0;
}

@media only screen and (min-width: 760px) {
	.toast {
		top: 64px;
		right: -300px;
		bottom: unset;
		width: 240px;
		text-align: left;
		background: var(--gym-color);
		transition: right 300ms ease-in-out;
	}
	
	.toast.show {
		right: 20px;
		bottom: unset;
	}
}

/* post-list */
.post-list {
	margin: 64px auto;
	padding: 8px;
}

.post-list article {
	/* max-width: 680px; */
	background: var(--pastel);
	border-radius: 1.2em;
	overflow: hidden;
}

.post-list article + article {
	margin-top: 32px;
}

.post-list .content {
	padding: 32px;
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}

.post-list h2 {
	font-size: 24px;
	line-height: 1;
	margin-bottom: 8px;
	color: var(--medium-grey)
}

.post-list .details {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.post-list span {
	font-size: 14px;
	line-height: 1;
	color: var(--fitnesshut-color);
	margin: 4px;
	margin-left: 0;
	padding: 0 8px;
	border-left: 1px solid var(--fitnesshut-color);
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.post-list span + span {
	border-right: 1px solid var(--fitnesshut-color);
}

.post-list .author a {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	color: var(--fitnesshut-color);
	text-decoration: none;
}

.post-list .author svg {
	width: 10px;
	height: 10px;
	fill: var(--fitnesshut-color);
	margin-left: 10px;
}

.post-list .author img {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	object-fit: cover;
	margin-right: 8px;
}

.post-list p {
	margin-top: 24px;
	color: var(--medium-grey);
}

.post-list .lock {
	background: var(--pastel);
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
	padding: 0 24px;
}

.post-list .lock svg {
	fill: var(--fitnesshut-color);
	width: 60px;
	height: 60px;
}

.post-list .lock p {
	color: var(--fitnesshut-color);
	text-align: center;
}

.post-list .lock img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.post-list .lock .warning {
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.post-list .lock.log {
	padding: 0;
}
@media (min-width: 768px){
	.post-list .lock.log {
		padding: 0 32px;
	}
}

.post-list .player {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
	margin-bottom: -5px;
	display: block;
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (min-width: 375px) {
	.post-list .player {height: 180px;}
	.post-list .player.audio-player {height: unset;}
}

@media (min-width: 425px) {
	.post-list .player {height: 210px;}
}

@media (min-width: 768px) {
	.post-list .player {
		height: 280px;
		margin-bottom: 32px;
	}
	.post-list .lock img {
		margin-bottom: 32px;
	}
}

@media (min-width: 1440px) {
	.post-list .player {height: 300px;}
}

.post-list .lock button {
	margin: 0;
	padding: 0;
	position: relative;
	overflow: hidden;
	background: var(--pastel);
}

.post-list .lock button img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-list .lock button svg {
	opacity: .8;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: opacity 300ms ease-in-out;
}

.post-list .audio-player {
	padding: 32px;
	flex-flow: column;
	align-items: stretch;
}

/* reset input range */
.post-list .audio-player input[type=range] {
  -webkit-appearance: none;
  width: 100%;
  background: transparent;
}

.post-list .audio-player input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
}

.post-list .audio-player input[type=range]:focus {
  outline: none;
}

.post-list .audio-player input[type=range]::-ms-track {
  width: 100%;
  cursor: pointer;
  background: transparent; 
  border-color: transparent;
  color: transparent;
}

/* selector - WebKit */
.post-list .audio-player input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 16px;
  width: 16px;
  border-radius: 50%;
  background: var(--white);
  cursor: pointer;
  box-shadow: 0 0 1px var(--black);
	margin-top: -8px;
	transition: background 200ms ease-in-out;
}

.post-list .audio-player input[type=range]:hover::-webkit-slider-thumb {
	background: var(--medium-grey);
	box-shadow: 0 0 3px var(--black);
}

/* selector - Firefox */
.post-list .audio-player input[type=range]::-moz-range-thumb {
  height: 16px;
  width: 16px;
  border-radius: 50%;
  background: var(--white);
  cursor: pointer;
  box-shadow: 0 0 1px var(--black);
}

.post-list .audio-player input[type=range]:hover::-moz-range-thumb {
	background: var(--medium-grey);
	box-shadow: 0 0 3px var(--black);
}

/* track - WebKit */
.post-list .audio-player input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 4px;
  cursor: pointer;
  background: #e2e2e2;
  border-radius: 1.3px;
}

.post-list .audio-player input[type=range]:focus::-webkit-slider-runnable-track {
  background: var(--gym-color);
}

/* track - Firefox */
.post-list .audio-player input[type=range]::-moz-range-track {
  width: 100%;
  height: 4px;
  cursor: pointer;
  background: #e2e2e2;
  border-radius: 1.3px;
}

.post-list .audio-player .timeline {
	width: 100%;
}

.post-list .audio-player .counters {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.post-list .audio-player .counters span {
	border: none;
	color: var(--grey);
	padding: 0;
}

.post-list .audio-player .controllers {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-flow: column;
}
@media (min-width: 425px){
	.post-list .audio-player .controllers {
		flex-flow: row;
	}
}

.post-list .audio-player .main-buttons {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 16px 0;
}

.post-list .audio-player button {
	background: var(--white);
	border: 2px solid var(--grey);
	width: 64px;
	height: 64px;
	border-radius: 50%;
	padding: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border 200ms ease-in-out;
}

.post-list .audio-player button:hover,
.post-list .audio-player button.active {
	border-color: var(--medium-grey)
}

.post-list .audio-player button svg {
	width: 100%;
	height: 100%;
	fill: var(--grey);
	transition: fill 200ms ease-in-out;
}

.post-list .audio-player button:hover svg,
.post-list .audio-player button.active svg {
	fill: var(--medium-grey);
}

.post-list .audio-player .volume {
	display: flex;
	align-items: center;
	justify-content: center;
}

.post-list .audio-player .volume svg {
	width: 30px;
	height: 30px;
	padding: 5px;
	fill: var(--grey);
	background: var(--pastel);
}

.post-list .audio-player .volume input[type=range] {
	width: 80%;
}

.post-list button:hover svg {
	opacity: 1;
}

/* animations */
@keyframes pulse {
	0% {
		opacity: 0;
	}

	40% {
		opacity: 1;
	}

	60% {
		opacity: 1;
	}

	100% {
		opacity: 0;
	}
}
@-webkit-keyframes grad_blue_bg {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
@-moz-keyframes grad_blue_bg {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
@-o-keyframes grad_blue_bg {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
@keyframes grad_blue_bg {
	0% {
		background-position: 0% 50%;
	}
	50% {
		background-position: 100% 50%;
	}
	100% {
		background-position: 0% 50%;
	}
}
/* https://www.gradient-animator.com/ */