/* =========================================================
	BASE
	========================================================= */

/* VARIABLES */

:root {
	--main-font-family: "Source Sans Pro", sans-serif;
	--secondary-font-family: "Lora", serif;
	--base-font-size: 16px;
	--site-padding: 15px;
	--nav-height: 90px;
	--int-elem-padding: 15px;
}

/* SETUP */

html {
	box-sizing: border-box;
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	margin: 0;

	font-family: var(--main-font-family);
	font-size: var(--base-font-size);
	background-color: #fff;
}

img {
	max-width: 100%;
}

/* COMMON STYLES */

.spacer {
	height: 600px;
}

/* %container */

.container,
.newsletter__container {
	margin: auto;
	padding-right: var(--site-padding);
	padding-left: var(--site-padding);
}

/* %secondary-font */

.hero__prelude,
.overview__img-label,
.trainer__type,
.blog-entry__title,
.plan__name,
.testimonial__content {
	font: italic normal 700 24px/1.5 var(--secondary-font-family);
}

/* %capitalized */

.schedule__daytime,
.blog-entry__topic,
.blog-entry__title_affirmative,
.blog-entry__author a,
.plan__name,
.plan__item,
.testimonial__author,
.footer__copyright {
	text-transform: capitalize;
}

/* hide semantic elements */

.visually-hidden {
	position: absolute;

	width: 1px;
	height: 1px;
	margin: -1px;
	border: 0;
	padding: 0;

	white-space: nowrap;

	clip-path: inset(100%);
	clip: rect(0 0 0 0);
	overflow: hidden;
}

/* clearfix */

.clearfix::after {
	content: '';
	display: table;
	clear: both;
}

/* =========================================================
	MODULE
	========================================================= */

/* CONTAINER */

.container {
	max-width: 1170px;
}

/* PAGE */

.page__title {
	margin-top: 0;
	margin-bottom: 30px;

	font-size: 30px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 6px;
	color: #fff;
	text-transform: uppercase;
}

.page__title_dark {
	color: #333;
}

.page__desc {
	margin: 0;

	font-size: 20px;
	font-weight: 300;
	line-height: 1.25;
	letter-spacing: 0.4px;
	color: #707070;
}

.page__paragraph {
	margin: 0;
}

.page__paragraph:not(:last-child) {
	margin-bottom: 10px;
}

.page__link {
	color: #337ab7;
	text-decoration: none;
}

.page__link:hover,
.page__link:focus {
	color: #23527c;
}

/* COPYRIGHT */

.copyright {
	font-size: 20px;
	font-weight: 300;
	line-height: 1.5;
	letter-spacing: 0.4px;
	color: #707070;
}

.copyright__link {
	color: inherit;
	text-decoration: none;

	-webkit-transition: color 0.4s ease-in-out;
			  transition: color 0.4s ease-in-out;
}

.copyright__link:hover,
.copyright__link:focus {
	color: #fff;
}

/* GRID */

:root {
	--grid-gap: 15px;
}

.row {
	margin-right: calc(-1 * var(--grid-gap));
	margin-left: calc(-1 * var(--grid-gap));
	font-size: 0;
}

.col {
	display: inline-block;
	vertical-align: top;

	padding-right: var(--grid-gap);
	padding-left: var(--grid-gap);

	font-size: var(--base-font-size);
}

.col-4 {
	width: 33.33333%;
}

.col-6 {
	width: 50%;
}

.col-12 {
	width: 100%;
}

/* SLIDE GRID */

.slide-grid::after {
	content: '';
	display: table;
	clear: both;
}

.slide-grid__item {
	float: left;
	width: 50%;
}

/* BUTTON */

a.button {
	text-decoration: none;
}

button.button {
	font-family: inherit;
	cursor: pointer;
}

.button {
	display: inline-block;
	vertical-align: middle;

	padding: 16px 38px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 4px;
	color: #fff;
	background-color: #26253a;
	border: none;
	text-transform: uppercase;

	-webkit-transition: color .4s ease-in-out,
							  background-color .4s ease-in-out;
			  transition: color .4s ease-in-out,
							  background-color .4s ease-in-out;
}

.button:hover,
.button:focus {
	color: #26253a;
	background-color: #fff;
}

.button:focus {
	outline: 0;
	box-shadow: 0 0 0 3px #54a2c7;
}

/* SUBSCRIPTION FORM */

.subscription-form__input {
	display: block;
	width: 100%;
	padding: 8px 12px;

	font-family: inherit;
	font-size: 20px;
	font-weight: 300;
	line-height: 1.4;
	color: #555;
	background: transparent;
	border: none;
	border-bottom: 1px solid #999;

	-webkit-transition: border 0.4s ease-in-out;
			  transition: border 0.4s ease-in-out;
}

.subscription-form__input:focus {
	border-bottom-color: #fff;
}

.subscription-form__input::-webkit-input-placeholder {
	color: #999;
}

.subscription-form__input:-ms-input-placeholder {
	color: #999;
}

.subscription-form__input::-moz-placeholder {
	opacity: 1;
}

.subscription-form__input::placeholder {
	color: #999;
}

/* SCHEDULE */

.schedule__daytime {
	display: block;
	margin-top: 0;
	margin-bottom: 10px;

	font-size: 14px;
	font-weight: 600;
	line-height: 1.15;
	color: #fff;
}

.schedule__period {
	display: block;
	margin: 0;

	font-size: 18px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 2px;
	color: #999;
	text-transform: uppercase;
}

/* NAVIGATION */

.nav {
	font-size: 0;
}

.nav__content {
	margin-top: 0;
	margin-bottom: 0;
	padding-left: 0;
	list-style-type: none;
}

.nav__item {
	display: inline-block;
	vertical-align: middle;
}

.nav__link {
	display: inline-block;

	/* removes gap */
	vertical-align: middle;

	font-size: 24px;
	font-weight: 300;
	color: #999;
	letter-spacing: 0.6px;
	text-decoration: none;
	text-transform: capitalize;

	-webkit-transition: color .4s ease-in-out;
			  transition: color .4s ease-in-out;
}

.nav__link:hover,
.nav__link:focus {
	color: #000;
}

/* LOGO */

a.logo {
	text-decoration: none;
}

h1.logo {
	cursor: default;
}

.logo {
	display: inline-block;
	margin: 0;

	font-size: 36px;
	font-weight: 600;
	line-height: 1.15;
	color: #505050;
}

/* SLIDER */

:root {
	--slider-nav-dot-diameter: 12px;
	--slider-nav-position: 0px;
	--slider-nav-gap: 55px;
}

.slider {
	position: relative;
	z-index: 200;

	padding-bottom: calc(var(--slider-nav-gap) + var(--slider-nav-position) + var(--slider-nav-dot-diameter));
}

.slider__item {
	display: none;
}

.slider__item_active {
	display: block;
}

.slider-nav {
	margin-top: 0;
	margin-bottom: 0;
	padding-left: 0;
	list-style-type: none;

	position: absolute;
	z-index: 200;
	bottom: var(--slider-nav-position);
	width: 100%;

	font-size: 0;
}

.slider-nav__item {
	display: inline-block;
	vertical-align: middle;
}

.slider-nav__item:not(:last-child) {
	margin-right: 14px;
}

.slider-nav__dot {
	display: inline-block;
	vertical-align: middle;

	width: var(--slider-nav-dot-diameter);
	height: var(--slider-nav-dot-diameter);

	font-size: var(--base-font-size);
	background-color: #fff;
	border: 2px solid #25263a;
	border-radius: 50%;
}

.slider-nav__dot:hover,
.slider-nav__dot:focus {
	background-color: #25263a;
}

.slider-nav__dot_active {
	background-color: #25263a;
}

/* SECTION */

.section__header {
	margin-bottom: 80px;
	text-align: center;
}

.section__title {
	margin-bottom: 10px;
}

/* SOCIALS */

:root {
	--social-icon-diameter: 50px;
}

.socials {
	margin-top: 0;
	margin-bottom: 0;
	padding-left: 0;
	list-style-type: none;

	font-size: 0;
}

.socials__item {
	display: inline-block;
	vertical-align: middle;

	/* local alignment */
	text-align: center;
}

.socials__item:not(:last-child) {
	margin-right: 5px;
}

.socials__link {
	display: inline-block;
	vertical-align: middle;

	width: var(--social-icon-diameter);
	height: var(--social-icon-diameter);
	line-height: var(--social-icon-diameter);

	font-size: var(--base-font-size);
	color: #999;
	border-radius: 50%;
	text-decoration: none;

	-webkit-transition: background-color .4s ease-in-out;
			  transition: background-color .4s ease-in-out;
}

.socials__link:hover,
.socials__link:focus {
	background-color: #fff;
}


/* =========================================================
	LAYOUT
	========================================================= */

/* TOPLINE */

.topline {
	position: fixed;
	z-index: 800;
	top: 0; left: 0;
	width: 100%;

	height: var(--nav-height);
	background-color: #fff;
	border-bottom: 1px solid #f0f0f0;

	box-sizing: content-box;
}

.topline__logo {
	float: left;
	padding-top: 25px;

	margin-left: calc(-1 * var(--int-elem-padding));
	padding-right: var(--int-elem-padding);
	padding-left: var(--int-elem-padding);
}

.topline__nav {
	float: right;
	line-height: var(--nav-height);

	margin-right: calc(-1 * var(--int-elem-padding));
}

.topline__nav .nav__link {
	padding-right: var(--int-elem-padding);
	padding-left: var(--int-elem-padding);
}

/* HERO */

.hero {
	display: table;
	width: 100%;
	height: 100vh;

	background: url(../img/bg-hero-1.jpg) #0c0c0c no-repeat center / cover;
}

.hero__content {
	display: table-cell;
	vertical-align: middle;
	text-align: center;

	color: #fff;
}

.hero__prelude {
	margin-top: 0;
	margin-bottom: 30px;

	letter-spacing: 2px;
}

.hero__title {
	margin-bottom: 40px;

	font-size: 45px;
	line-height: 65px;
	letter-spacing: 10px;
}

.hero__button {
	color: #999;
}

/* OVERVIEW */

.overview {
	padding-top: 140px;
	padding-bottom: 140px;

	background-color: #fff;
}

.overview__img-wrapper {
	position: relative;
	z-index: 200;

	padding-right: 15px;
	padding-bottom: 60px;
}

.overview__img {
	padding: 20px 20px 40px;
	border: 4px solid #f9f9f9;

	/* removes gap above the image */
	vertical-align: middle;
}

.overview__img-label {
	position: absolute;
	z-index: 200;
	bottom: 0; left: 65px;

	margin: 0;
	padding: 60px 50px;

	font-size: 20px;
	line-height: 1.4;
	word-spacing: 1px;
	letter-spacing: 1px;
	color: #333;
	background-color: #fff;
	border-left: 8px solid #26253a;
	box-shadow: 0px 2px 8px 10px rgba(50, 50, 50, 0.04);
}

.overview__content {
	padding: 60px 9% 0;
}

.overview__button-wrapper {
	margin-top: 40px;
}

.overview__button {
	padding: 14px 46px;

	font-size: 22px;
	color: #333;
	background-color: transparent;
	border: 4px solid #26253a;
}

.overview__button:hover,
.overview__button:focus {
	color: #fff;
	background-color: #26253a;
}

/* TRAINERS */

.trainers {
	padding-top: 120px;
	padding-bottom: 100px;

	background-color: #fff;
}

.trainer__img-wrapper {
	position: relative;
	z-index: 200;

	margin-bottom: 30px;
}

.trainer__img {
	vertical-align: middle;
}

.trainer__img-label {
	position: absolute;
	z-index: 200;
	top: 0; left: 0;
	width: 100%;

	/*display: table-cell;*/
	/*text-align: center;*/
	/*vertical-align: middle;*/

	height: 100%;

	opacity: 0;
	color: #fff;
	background-color: #25263a;

	-webkit-transition: opacity 0.4s ease-in-out,
							  transform 0.4s ease-in-out;
			  transition: opacity 0.4s ease-in-out,
							  transform 0.4s ease-in-out;
}

.trainer__img-label:hover,
.trainer__img-label:focus {
	opacity: 0.9;

	-webkit-transform: scale(0.9);
		 -ms-transform: scale(0.9);
			  transform: scale(0.9);
}

.img-label__content {
	position: absolute;
	z-index: 200;
	top: 50%; left: 50%;

	text-align: center;

	-webkit-transform: translate(-50%, -50%);
		 -ms-transform: translate(-50%, -50%);
			  transform: translate(-50%, -50%);
}

.trainer__name {
	margin-bottom: 10px;
}

.trainer__type {
	display: block;
	margin-top: 0;
	margin-bottom: 20px;

	letter-spacing: 1px;
}

.trainer__desc {
	text-align: center;
}

/* NEWSLETTER */

.newsletter {
	padding-top: 140px;
	padding-bottom: 120px;

	background: url(../img/bg-newsletter.jpg) #31304a no-repeat center / cover fixed;
}

.newsletter__container {
	max-width: 780px;
}

.newsletter__header {
	margin-bottom: 40px;
}

.newsletter__button-wrapper {
	margin-top: 60px;
	text-align: center;
}

.newsletter__button {
	width: 45%;
	height: 65px;
}

/* BLOG */

.blog {
	padding-top: 120px;
	padding-bottom: 100px;

	background-color: #fff;
}

.blog__row:not(:last-of-type) {
	margin-bottom: 40px;
}

/**
 * 1.A background-size: 0; property allows to download the image
 *	during an initial page load. Not when the element is hovering over.
 */

.blog-entry {
	padding: 60px;

	color: #606060;
	background: url(../img/bg-blog-3.jpg) #fff no-repeat top / 0; /* 1 */
	border: 1px solid #f0f0f0;

	-webkit-transition: background-position 1s linear,
							  background-color 0.4s ease-in-out;
			  transition: background-position 1s linear,
							  background-color 0.4s ease-in-out;
}

.blog-entry:hover,
.blog-entry:focus {
	color: #fff;
	background-color: rgba(0, 0, 0, 0.8);
	background-size: cover;
	background-position: center;
}

.blog-entry:hover .blog-entry__details,
.blog-entry:focus .blog-entry__details {
	color: #fff;
}

.blog-entry:hover .page__link,
.blog-entry:focus .page__link {
	color: #fff;
	text-decoration: underline;
}

.blog-entry:hover .page__link:hover,
.blog-entry:focus .page__link:focus {
	text-decoration: none;
}

.blog-entry__details {
	display: block;
	margin-top: 0;
	margin-bottom: 20px;

	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: #999;
}

.blog-entry__title {
	margin-top: 0;
	margin-bottom: 10px;
}

.blog-entry__link {
	color: inherit;
	text-decoration: none;
}

.blog-entry__author {
	display: block;
	margin: 0;

	font-size: 14px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 1px;
}

/* PLANS */

:root {
	--price-wrapper-diameter: 120px;
}

.plans {
	padding-top: 120px;
	padding-bottom: 100px;

	background: url(../img/bg-plans.jpg) #0c0c0c no-repeat center / cover fixed;
}

.plan {
	padding: 40px;

	color: #fff;
	background-color: transparent;
	border: 1px solid #666;
	text-align: center;

	-webkit-transition: color 0.4s ease-in-out,
							  background-color 0.4s ease-in-out;
			  transition: color 0.4s ease-in-out,
							  background-color 0.4s ease-in-out;
}

.plan:hover,
.plan:focus {
	color: #444;
	background-color: #fff;
	border-color: transparent;
}

.plan:hover .plan__price,
.plan:focus .plan__price {
	background-color: #222;
}

.plan:hover .plan__button,
.plan:focus .plan__button {
	opacity: 1;

	-webkit-transform: translate3d(0, 0, 0);
		 -ms-transform: translate3d(0, 0, 0);
			  transform: translate3d(0, 0, 0);
}

.plan__name {
	margin: 0;
	font-size: 40px;
}

.plan__price-wrapper {
	margin: 30px 0;

	font-size: 30px;
	font-weight: 600;
	color: #fff;
}

.plan__price {
	display: inline-block;

	width: var(--price-wrapper-diameter);
	height: var(--price-wrapper-diameter);
	line-height: var(--price-wrapper-diameter);

	background-color: #26253a;
	border-radius: 50%;

	-webkit-transition: background-color 0.4s ease-in-out;
			  transition: background-color 0.4s ease-in-out;
}

.plan__desc {
	margin: 0;
	padding-left: 0;
	list-style-type: none;
}

.plan__item {
	font-size: 20px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.6px;
}

.plan__button-wrapper {
	margin-top: 40px;
}

.plan__button {
	display: block;
	padding: 18px 48px;

	opacity: 0;
	letter-spacing: 3px;

	-webkit-transform: translate3d(0, -15px, 0);
		 -ms-transform: translate3d(0, -15px, 0);
			  transform: translate3d(0, -15px, 0);

	-webkit-transition: opacity 0.4s ease-in-out,
							  transform 0.4s ease-in-out,
							  background-color 0.4s ease-in-out;
			  transition: opacity 0.4s ease-in-out,
							  transform 0.4s ease-in-out,
							  background-color 0.4s ease-in-out;
}

.plan__button:hover,
.plan__button:focus {
	color: #fff;
	background-color: #222;
}

/* TESTIMONIALS */

.testimonials {
	padding-top: 80px;
	padding-bottom: 80px;

	color: #26253a;
	background-color: #fff;
	text-align: center;
}

.testimonials__slider-nav .slider-nav__dot {
	opacity: 0.5;
}

.testimonials__slider-nav .slider-nav__dot_active {
	opacity: 1;
}

.testimonial__icon {
	font-size: 42px;
	margin-bottom: 35px;
}

.testimonial__content {
	margin-top: 0;
	margin-bottom: 20px;

	letter-spacing: 1px;
}

.testimonial__author {
	margin: 0;

	font-size: 18px;
	font-weight: 600;
	line-height: 1.15;
	color: #999;
	letter-spacing: 2px;
}

/* FOOTER */

.footer {
	padding-top: 100px;
	padding-bottom: 80px;

	background-color: #25263a;
	text-align: center;
}

.footer-schedules {
	display: table;
	margin: auto;

	text-align: left;
}

.footer__schedule {
	padding-top: 20px;
}

.footer__schedule .schedule__item:not(:last-child) {
	margin-bottom: 30px;
}

.footer__copyright {
	margin-top: 80px;
	margin-bottom: 0;
}
