@font-face {
    font-family: 'Montserrat';
    font-weight: 300;
    font-style: normal;

    src: url('../fonts/Montserrat/Montserrat-Light.woff2') format('woff2'),
    url('../fonts/Montserrat/Montserrat-Light.woff') format('woff');
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    font-weight: 400;
    font-style: normal;

    src: url('../fonts/Montserrat/Montserrat-Regular.woff2') format('woff2'),
    url('../fonts/Montserrat/Montserrat-Regular.woff') format('woff');
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    font-weight: 500;
    font-style: normal;

    src: url('../fonts/Montserrat/Montserrat-Medium.woff2') format('woff2'),
    url('../fonts/Montserrat/Montserrat-Medium.woff') format('woff');
    font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    font-weight: 700;
    font-style: normal;

    src: url('../fonts/Montserrat/Montserrat-Bold.woff2') format('woff2'),
    url('../fonts/Montserrat/Montserrat-Bold.woff') format('woff');
    font-display: swap;
}
@font-face {
    font-family: 'RobotoSlab';
    font-weight: 400;
    font-style: normal;

    src: url('../fonts/RobotoSlab/RobotoSlab-Regular.woff2') format('woff2'),
    url('../fonts/RobotoSlab/RobotoSlab-Regular.woff') format('woff');
    font-display: swap;
}
:root {
    --white: #fff;
    --black: #000;
    --yellow: #febc10;
    --grey: #7d7d7d;
    --light-grey: #cfc9c9;
    --blue: #1c4255;
    --green: #7ec999;
    --red: #ff0000;
}
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
html,
body {
    font-family: Montserrat, sans-serif;
    font-weight: 400;

    overflow-x: hidden;

    background: var(--white);
}
p {
    font-size: 16px;
    line-height: 1.5;

    margin-top: 15px;
    margin-bottom: 15px;

    color: var(--grey);
}
img {
    display: block;

    max-width: 100%;

    border: none;
}
a {
    font-size: 16px;

    text-decoration: none;
}
.container {
    width: 100%;
    max-width: 1230px;
    margin: 0 auto;
    padding: 0 15px;
}
.content {
    margin-bottom: 60px;
}
.single-block {
    margin-top: 60px;
    margin-bottom: 60px;
}

.title {
    font-size: 36px;
    font-weight: 400;
    line-height: 1;

    margin-bottom: 25px;
    padding: 15px;

    text-align: center;
    text-transform: uppercase;

    color: var(--white);
    background: var(--green);
}

.subtitle,
.subtitle-add {
    text-align: center;

    color: var(--grey);
}
.subtitle {
    font-size: 30px;
    font-weight: 400;

    text-transform: uppercase;
}
.subtitle-add {
    font-size: 16px;

    margin-top: 15px;
}
.subtitle_blog {
    text-align: left;
}
.subtitle-level-three {
    font-size: 24px;
    font-weight: 400;

    color: var(--grey);
}
.subtitle_article,
.subtitle-level-three_article {
    margin-top: 15px;
    margin-bottom: 15px;
}
.bold {
    font-weight: 700;
}
.uppercase {
    text-transform: uppercase;
}
.btn {
    font-size: 16px;

    display: inline-block;

    padding: 5px 30px;

    cursor: pointer;
    transition: .4s all;

    color: var(--blue);
    border: none;
    border-radius: 5px;
    background: linear-gradient(to right, var(--green) 50%, var(--yellow) 50%);
    background-position: 100% 0;
    background-size: 200% 100%;

    -webkit-appearance: none;
}
.btn:hover,
.btn:focus {
    color: var(--white);
    background-position: 0 0;
}
.btn_header {
    font-size: 18px;

    padding: 10px 30px;

    text-transform: uppercase;
}
.btn_booking {
    display: flex;

    text-align: center;

    align-items: center;
}
.btn[disabled],
.btn[disabled]:hover {
    background: var(--grey);
    color: var(--white);
    opacity: .6;
}
.list {
    font-size: 16px;
    line-height: 1.5;

    margin-top: 15px;
    margin-bottom: 15px;
    padding-left: 30px;

    color: var(--grey);
}
.article-image {
    width: 350px;
    max-width: 100%;
    margin: 15px;
    padding: 15px;

    border: 1px solid var(--light-grey);
}
.visually-hidden {
    position: absolute !important;

    overflow: hidden;
    clip: rect(1px 1px 1px 1px);
    clip: rect(1px, 1px, 1px, 1px);

    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;

    border: 0 !important;
}

/* HEADER */
.header {
    background: url(../images/bg_header.jpg) 50% 0 no-repeat;
    background-size: cover;
}
.header-top {
    display: flex;

    padding-top: 15px;
    padding-bottom: 15px;

    align-items: center;
}
.header-top__link {
    font-size: 16px;
    font-weight: 300;

    color: var(--white);
}
.header-top__link:hover {
    text-decoration: underline;
}
.header-top__link_feedback {
    padding-left: 35px;

    background: url(../images/letter.svg) 0 50% no-repeat;
    background-size: auto 100%;
}
.header-top__link_callback {
    margin-left: 60px;
    padding-left: 25px;

    background: url(../images/checkmark.svg) 0 50% no-repeat;
    background-size: auto 100%;
}
.header-top__text {
    margin-left: auto;

    text-align: right;

    color: var(--white);
}
.header-top__text span {
    display: block;
}
.navbar-outer-wrapper {
	height: 100px;
}
.navbar-wrapper {
	height: 100px;
    border-top: 2px solid var(--light-grey);
    border-bottom: 2px solid var(--light-grey);
    background: var(--white);
    transition: .4s all;
}
.navbar-wrapper_fixed {
	height: 70px;
	position: fixed;
	top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
}
.navbar {
    display: flex;

    padding-top: 20px;
    padding-bottom: 20px;

    align-items: center;

    transition: all .4s;
}
.navbar_fixed {
    padding-top: 10px;
    padding-bottom: 10px;
}
.hamburger {
    display: none;
}
.navbar__logo-link {
    height: 60px;
    margin-right: auto;
    transition: all .4s;
}
.navbar__logo-link_fixed {
	height: 48px;
}
.navbar__logo-image {
	max-height: 100%;
}
.menu-list {
    display: flex;

    list-style: none;

    align-items: center;
}
.menu-list__child {
    position: absolute;
    z-index: 100;
    top: 100%;
    left: 30px;

    visibility: hidden;

    padding: 15px 30px;

    list-style: none;

    transition: all ease-in-out .4s;

    opacity: 0;
    border: 1px solid var(--grey);
    background: var(--white);
}
.menu-list__item:hover .menu-list__child {
    left: 0;

    visibility: visible;

    opacity: 1;
}
.menu-list__item {
    position: relative;

    margin-right: 45px;
    padding: 15px 0;
}
.menu-list__item:last-child {
    margin-right: 0;
}
.menu-list__item_child {
    margin: 15px 0;
    padding: 0;
}
.menu-list__link {
    font-size: 16px;

    position: relative;

    white-space: nowrap;

    color: var(--grey);
}
.menu-list__link::after {
    position: absolute;
    bottom: -3px;
    left: 0;

    width: 0;
    height: 1px;

    content: '';
    transition: .4s all;

    background: var(--grey);
}
.menu-list__link:hover::after,
.menu-list__link_active::after {
    width: 100%;
}

/* MMENU */
.menu-list.mm-listview {
	display: block;
}
.menu-list__child.mm-listview {
	position: static;
	visibility: visible;
	opacity: 1;
	background: none;
	padding: 0;
	border: none;
}
.menu-list__item.mm-listitem,
.menu-list__item.mm-listitem:last-child {
	margin-right: 20px;
	margin-top: 0;
    margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}
.mm-navbar {
	height: 50px;
    border-bottom: 2px solid var(--light-grey);
    color: var(--grey);
}
/* --- */

.navbar__phone {
	display: none;
}
.navbar__phone-link {
	font-size: 14px;
    color: var(--grey);
    padding: 2px 0 2px 30px;
    background: url(../images/phone.svg) 0 50% no-repeat;
    background-size: auto 100%;
}
.header-bottom {
    min-height: 500px;
    margin: 140px auto 40px;

    text-align: right;

    background: url(../images/logo_white.png) 5% 70% no-repeat;
}
.header-bottom__title {
    font-family: RobotoSlab;
    font-size: 40px;

    margin-bottom: 40px;

    text-transform: uppercase;

    color: var(--white);
    text-shadow: 5px 5px 5px rgba(0,0,0,.75);
}
.header-bottom__title span {
    font-size: 92px;

    display: block;
}

/* ROOMS BLOCK */
.rooms-list {
    display: flex;

    margin: 65px 0 35px;

    list-style: none;

    justify-content: flex-start;
    align-items: flex-start;
    flex-wrap: wrap;
}
.rooms-list__item {
    position: relative;

    width: 49%;
    max-width: 585px;
    margin-bottom: 30px;
}
.rooms-list__item:nth-last-child(1),
.rooms-list__item:nth-last-child(2) {
    margin-bottom: 0;
}
.rooms-list__item:nth-child(even) {
    margin-left: auto;
}
.rooms-list__text {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;

    padding: 50px 20px 25px;

    background: linear-gradient(to top, rgba(72,72,72,.7) 30%, transparent 70%);

    align-items: center;
}
.rooms-list__title {
    font-size: 16px;
    font-weight: 400;

    text-transform: uppercase;

    color: var(--white);
}
.rooms-list__price-block {
    font-size: 16px;
    font-weight: 500;

    margin-top: 0;
    margin-bottom: 0;
    margin-left: auto;

    color: var(--white);
}
.rooms-list__price-block_grey {
    color: var(--grey);
}
.rooms-list__price {
    margin-right: 5px;
    padding: 5px 10px;

    border-radius: 5px;
    background: var(--green);
}
.rooms-list__price_white {
    color: var(--white);
}
.rooms-list__info {
    padding: 12px;

    border-right: 1px solid var(--light-grey);
    border-bottom: 1px solid var(--light-grey);
    border-left: 1px solid var(--light-grey);
}
.rooms-list__info-section {
    padding: 10px 45px;
}
.rooms-list__info-section_readmore {
    display: flex;

    margin-top: 20px;
    padding-top: 20px;

    border-top: 1px solid var(--light-grey);
    background: url(../images/advantages.png) 45px 65% no-repeat;
    background-size: auto 50%;

    justify-content: flex-end;
    align-items: center;
}
.rooms-list__capacity {
    margin-top: 15px;
}
.rooms-list__capacity-item {
    font-size: 16px;

    padding: 5px 0 5px 40px;

    text-transform: uppercase;

    color: var(--grey);
}
.rooms-list__capacity-item_guests {
    background: url(../images/guests.svg) 0 50% no-repeat;
    background-size: auto 100%;
}
.rooms-list__capacity-item_square {
    margin-left: 40px;

    background: url(../images/square.svg) 0 50% no-repeat;
    background-size: auto 100%;
}
.rooms-list__description {
    margin-top: 15px;
}
.rooms-list__booking {
    display: flex;

    margin-top: 20px;

    align-items: center;
}
.rooms-list__booking-link {
    font-size: 16px;

    padding: 14px 30px 10px;

    transition: .4s all;
    text-transform: uppercase;

    color: var(--grey);
    border-top: 1px solid var(--grey);
    border-bottom: 1px solid var(--grey);
    background: linear-gradient(to right, var(--yellow) 50%, var(--white) 50%);
    background-position: 100% 0;
    background-size: 200% 100%;
}
.rooms-list__booking-link:hover,
.rooms-list__booking-link:focus {
    background-position: 0 0;
}
.rooms-list__readmore-link {
    font-size: 16px;

    position: relative;

    padding-right: 15px;

    text-transform: uppercase;

    color: var(--grey);
    background: url(../images/arrow-right.svg) 100% 45% no-repeat;
    background-size: auto 60%;
}
.rooms-list__readmore-link::after {
    position: absolute;
    bottom: -3px;
    left: 0;

    width: 0;
    height: 1px;

    content: '';
    transition: .4s all;

    background: var(--grey);
}
.rooms-list__readmore-link:hover::after {
    width: 100%;
}

/* BOOKING BLOCK */
.booking-block {
    padding: 80px 0;

    background: url(../images/bg_form.jpg) 50% 50% no-repeat;
    background-size: cover;
}
.booking-block__wrapper {
    display: flex;

    align-items: center;
}
.booking-block__text {
    font-size: 30px;

    width: 33%;

    color: var(--white);
}
.booking-block__form {
    width: 40%;
    margin-left: auto;
}
.form-block {
    margin-bottom: 10px;
}
.form-block_various-align {
    display: flex;

    justify-content: flex-end;
    align-items: center;
}
.form-block_submit {
    margin-bottom: 0;
}
.booking-form-input {
    font-family: inherit;
    font-size: 16px;

    display: block;

    width: 100%;
    padding: 5px 0;

    color: var(--white);
    border: none;
    border-bottom: 1px solid var(--white);
    background: transparent;
}
.booking-form-input::placeholder {
    color: var(--white);
}

/* SERVICES BLOCK */
.services-list {
    display: flex;

    margin-top: 65px;

    list-style: none;

    justify-content: flex-start;
}
.services-list__item {
    display: flex;
    flex-direction: column;

    width: 32%;

    border: 1px solid var(--light-grey);
}
.services-list__item_reversed {
    flex-direction: column-reverse;
}
.services-list__item:not(:last-child) {
    margin-right: 2%;
}
.services-list__text {
	position: relative;
    padding: 35px;
}
.services-list__text::after {
    position: absolute;
    right: 40px;
    top: -30px;

    width: 60px;
    height: 60px;

    content: '';

    border-radius: 50%;
    background-color: var(--green);
}
.services-list__text_reversed::after {
	top: auto;
	bottom: -30px;
}
.services-list__text_dining::after {
    background-image: url(../images/dining_room.svg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 50% auto;
}
.services-list__text_tennis::after {
    background-image: url(../images/table_tennis.svg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 55% auto;
}
.services-list__text_billiards::after {
    background-image: url(../images/billiards.svg);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 55% auto;
}
.services-list__info {
    margin: 15px 0;
}
.services-list__link {
    text-decoration: underline;

    color: var(--green);
}
.services-list__link:hover {
    text-decoration: none;
}

/* FEEDBACK */
.feedback__item {
    margin-top: 25px;
    padding: 15px;

    border: 1px solid var(--green);
}
.feedback__author-date {
    display: flex;

    margin-bottom: 15px;
    padding-bottom: 15px;

    border-bottom: 1px dotted var(--green);

    align-items: center;
}
.feedback__author {
    font-size: 20px;

    color: var(--green);
}
.feedback__date {
    font-size: 20px;
    font-weight: 700;

    margin-left: auto;

    color: var(--green);
}
.feedback__text {
	font-size: 16px;
    line-height: 1.5;
}
.feedback__sign {
    margin: 30px 0;
    padding-top: 30px;

    text-align: center;

    border-top: 1px solid var(--green);
}
.feedback-form {
    display: block;

    max-width: 300px;
    margin: 30px auto;
}
.feedback-form__field-wrapper {
    display: flex;

    margin-bottom: 15px;

    justify-content: center;
    align-items: center;
}
.feedback-form__field {
    font-size: 14px;

    display: block;

    width: 100%;
    padding: 10px;

    resize: none;

    border: 1px solid var(--black);
}
.feedback-form__field_mini {
    display: inline-block;

    width: 30%;
    margin-left: 5px;
}

/* BLOG */
.blog__list {
    list-style: none;
}
.blog__description {
    margin-top: 60px;
    padding-top: 60px;

    border-top: 1px solid var(--grey);
}
.blog__article {
    display: flex;

    align-items: flex-start;
    justify-content: flex-start;
}
.blog__item:not(:first-child) {
    margin-top: 30px;
    padding-top: 30px;

    border-top: 1px solid var(--grey);
}
.blog__image {
    width: 30%;
}
.blog__info {
    width: 65%;
    margin-left: auto;
}
.blog__introtext {
    margin: 15px 0;
}

/* PAGINATION */
.pagination {
    margin: 30px 0;
}
.pagination__list {
    display: flex;

    list-style: none;

    align-items: center;
    justify-content: center;
}
.pagination__item {
    margin: 0 10px;
}
.pagination__item a {
    font-weight: 700;

    color: var(--green);
}
.pagination__item a:hover {
    text-decoration: underline;
}
.pagination__item span {
    color: var(--green);
}

/* FOOTER */
.footer {
    padding: 140px 0 80px;

    background: url(../images/bg_footer.jpg) 50% 50% no-repeat;
    background-size: cover;
}
.footer-contacts__title {
    font-size: 30px;
    font-weight: bold;

    text-transform: uppercase;

    color: var(--white);
}
.footer-contacts__person {
    font-weight: 700;

    margin-top: 40px;

    color: var(--yellow);
}
.footer-contacts__contact-block {
    display: flex;

    margin-top: 15px;

    align-items: flex-start;
    justify-content: flex-start;
}
.footer-contacts__contact-title {
    font-size: 16px;

    width: 90px;

    color: var(--white);
}
.footer-contacts__phones-item:not(:first-child) {
    margin-top: 5px;
}
.footer-contacts__phones-item-link {
    color: var(--white);
}
.footer-contacts__phones-item-link:hover {
    text-decoration: underline;
}
.footer-contacts__email-link {
    text-decoration: underline;

    color: var(--yellow);
}
.footer-contacts__email-link:hover {
    text-decoration: none;
}
.footer-address {
    margin-top: 30px;

    border-top: 2px solid var(--light-grey);
    border-bottom: 2px solid var(--light-grey);
    background: var(--white);
}
.footer-address__wrapper {
    display: flex;

    padding-top: 20px;
    padding-bottom: 20px;

    align-items: center;
}
.footer-address__text {
    margin-right: auto;
}
.footer-copyright {
    display: flex;

    padding-top: 20px;

    align-items: center;
}
.footer-copyright__text {
    font-size: 16px;

    margin-right: 40px;

    color: var(--white);
}

/* BIG BOOKING FORM */
.form-booking-wrap {
    position: relative;
    top: -82px;

    margin-bottom: -62px;
}
.booking-form__wrap {
    display: flex;

    width: 65%;
    margin: 0 auto;

    border: 2px solid var(--light-grey);
    border-radius: 5px;
    background: var(--white);

    justify-content: center;
}
.booking-form__section {
    width: 25%;
    margin: 15px 0;
    padding: 0 50px;
}
.booking-form__section_date {
    border-right: 1px solid var(--light-grey);
}
.booking-form__section_submit {
    display: flex;

    margin: 0;
    padding: 0;
}
.booking-form__subheading {
    font-size: 16px;
    font-weight: 400;

    margin: 15px 0;

    text-align: center;

    color: var(--grey);
}
.booking-form__subheading_error {
    color: var(--red);
}
.booking-form__date-block {
    margin-bottom: 15px;

    cursor: pointer;
}
.booking-form__date-block {
    display: flex;

    color: var(--grey);

    justify-content: center;
    align-items: flex-start;
}
.booking-form__date {
    font-size: 50px;
    line-height: 1;
}
.booking-form__month {
    font-size: 16px;
    line-height: 1;

    position: relative;

    margin-top: 2px;
    margin-left: 5px;
}
.booking-form__month::after {
    position: absolute;
    top: 100%;
    left: 50%;

    width: 15px;
    height: 15px;

    content: '';
    transform: rotate(-90deg) translate(-20%,-50%);

    background: url(../images/arrow.svg) 50% 50% no-repeat;
    background-size: 100% auto;
}
.booking-form__hidden {
    display: none;
    position: relative;
}
.booking-form__fields {
    position: relative;
}
.booking-form__fields_calendar input {
    position: absolute;
    top: 0;
    left: -9999px;

    display: block;

    width: 1px;
    height: 1px;
}
.booking-form__fields input#quantity {
    font-size: 50px;

    display: block;

    width: 100%;
    margin-top: -4px;

    text-align: center;

    color: var(--grey);
    border: none;
    outline: none;
}
.booking-form__fields input#quantity.error,
.form-block .rsform-input-box.error,
.booking-form-input.error {
    color: var(--red);
}
.form-block .rsform-input-box.error,
.booking-form-input.error {
    border-color: var(--red);
}
.booking-form__hidden .rsform-input-box {
    font-size: 14px;

    display: block;

    width: 100%;
    padding: 10px;

    border: 1px solid var(--black);
}
.form-block_submit {
    text-align: center;
}
.response_wrap {
    display: none;
}
.response {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
    background: rgba(255,255,255,0.9);
}
.response-small {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
    background: var(--white);
}
.sending {
    background: url(../images/sending.svg) 0 50% no-repeat;
    background-size: auto 100%;
}