.booking-popup {
	position: fixed;
	display: flex;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 100;
	width: 62.5vw; /*1080px*/
	height: 42.59vw; /*736px*/
    padding: 1.85vw 1.85vw 4.28vw 3.7vw; /*32px 32px 74px 64px*/
	background-color: var(--caramel);
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity 0 ease;
	-webkit-transition: opacity 0s ease;
	-moz-transition: opacity 0s ease;
	-o-transition: opacity 0s ease;
}

.booking-opened .booking-popup {
	opacity: 1 !important;
	pointer-events: all !important;
	transition: all .2s ease;
	-webkit-transition: all .2s ease;
	-moz-transition: all .2s ease;
	-o-transition: all .2s ease;
}


/* Left */
.booking-popup .left {
	position: relative;
	display: inline-block;
	width: 50%;
	height: 100%;
	opacity: 0;
	transition-delay: 0s;
}

.booking-opened .booking-popup .left {
	opacity: 1;
	transition: all .2s ease;
	-webkit-transition: all .2s ease;
	-moz-transition: all .2s ease;
	-o-transition: all .2s ease;
	transition-delay: .2s;
}


/* Right */
.booking-popup .right {
	position: relative;
	display: inline-flex;
	flex-flow: column;
	justify-content: space-between;
	width: 50%;
	height: 100%;
	/*padding-bottom: 2.08vw; 36px*/
	opacity: 0;
	transition-delay: 0s;
}

.booking-opened .booking-popup .right {
	opacity: 1;
	transition: all .2s ease;
	-webkit-transition: all .2s ease;
	-moz-transition: all .2s ease;
	-o-transition: all .2s ease;
	transition-delay: .2s;
}

.booking-popup .right .top {
	position: relative;
	display: block;
	width: 100%;
	height: fit-content;
}

.booking-popup .right .top .close-inner {
	position: relative;
	display: flex;
	width: 100%;
	height: 1.96vw; /*34px*/
	justify-content: flex-end;
}

.booking-popup .right .top .close-inner .cta-close {
	position: relative;
	display: block;
	width: fit-content;
	height: fit-content;
	cursor: pointer;
	font-size: 1.16rem;
}   

.booking-popup .right .top .top-text {
    padding-right: 1.157vw; /*20px*/
}

.booking-popup .right .bottom .bottom-text a {
	text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .35vw; /*7px*/
    text-decoration-color: rgba(255, 255, 255, .3);
}


/* Booking form */
.booking-form {
    position: relative;
    display: flex;
    flex-flow: column;
    width: 100%;
    height: 100%;
    padding: 1.96vw 0 0; /*34px 0 0*/
    justify-content: space-between;
}

.booking-form .rows {
    position: relative;
    display: flex;
    flex-flow: column;
    width: 100%;
    height: fit-content;
    row-gap: 2.78vw; /*48px*/
}

.booking-form .rows .row {
    position: relative;
    display: flex;
    flex-flow: column;
    width: 100%;
    height: fit-content;
    row-gap: .81vw; /*14px*/
}

.booking-form .rows .row .caption {
    opacity: .6;
}

.booking-form .rows .row .date-input .date {
	text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .694vw; /*12px*/
    text-decoration-color: rgba(255, 255, 255, .3);
    cursor: pointer;
	width: fit-content;
}


/* CALENDAR */
.booking-form .rows .row .calendar-picker .calendar {
	position: absolute;
    background: var(--beige-white);
	width: 25.46vw; /*440px*/
	margin-top: -2.31vw; /*-40px*/
	z-index: 2;
}

.calendar-picker .calendar .calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 2.78vw 1.157vw 0; /*48px 20px 0*/
}

.calendar-picker .calendar .calendar-header .calendar-close {
	position: absolute;
	display: block;
	top: .925vw; /*16px*/
	right: .925vw; /*16px*/
	cursor: pointer;
	border: 0;
	background-color: transparent;
	padding: 0;
  	margin: 0;
}

.calendar-picker .calendar .calendar-header .calendar-prev,
.calendar-picker .calendar .calendar-header .calendar-next {
	cursor: pointer;
	border: 0;
	background-color: transparent;
	padding: 0;
  	margin: 0;
}

.calendar-picker .calendar .calendar-header .calendar-prev {
	padding-right: .578vw; /*10px*/
}

.calendar-picker .calendar .calendar-header .calendar-next {
	padding-left: .578vw; /*10px*/
}

.calendar-picker .calendar .calendar-header .calendar-prev.disabled {
    opacity: .3;
    cursor: not-allowed;
}

.calendar-picker .calendar .calendar-weekdays,
.calendar-picker .calendar .calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .347vw; /*6px*/
}

.calendar-picker .calendar .calendar-weekdays {
	padding: 1.5vw .46vw .81vw; /*26px 8px 14px*/
}

.calendar-picker .calendar .calendar-grid {
	padding: 0px .46vw 1.09vw; /*0px 8px 19px*/
	row-gap: .405vw; /*7px*/
}

.calendar-picker .calendar .calendar-weekday,
.calendar-picker .calendar .calendar-empty {
    text-align: center;
    padding: 0px;
}

.calendar-picker .calendar .calendar-day {
    border: none;
    cursor: pointer;
	padding: .405vw 0; /*7px 0*/
    text-align: center;
	background: transparent;
}

.calendar-picker .calendar .calendar-day.current {
    background: var(--brown-dark);
    color: var(--beige-white);
}

.arrival-date.calendar-picker .calendar .calendar-day.departure-day {
    background: rgba(69, 40, 18, .5);
    color: var(--beige-white);
}

.departure-date.calendar-picker .calendar .calendar-day.arrival-day {
    background: rgba(69, 40, 18, .5);
    color: var(--beige-white);
}

/*
.calendar-picker .calendar .calendar-day.arrival-day,
.calendar-picker .calendar .calendar-day.departure-day {
    background: rgba(69, 40, 18, .5);
    color: var(--beige-white);
}
*/

.calendar-picker .calendar .calendar-day.past {
    opacity: .3;
    cursor: not-allowed;
}

.booking-form .rows .row .guest-qty {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    column-gap: 1.38vw; /*24px*/
}

.booking-form .qty-buttons {
    position: relative;
    display: flex;
    padding-top: 0px;
    height: 1.851vw; /*32px*/
    column-gap: .46vw; /*8px*/
    margin-bottom: .17vw; /*3px*/
}

.booking-form .qty-buttons .qty-plus,
.booking-form .qty-buttons .qty-minus {
    position: relative;
    display: inline-block;
    height: 1.851vw; /*32px*/
    width: 1.851vw; /*32px*/
    border-radius: 100%;
    overflow: hidden;
    cursor: pointer;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    background-color: transparent;
}

.booking-form .qty-buttons .qty-minus {
    background-image: url(../../assets/svgs/minus-booking.svg);
}

.booking-form .qty-buttons .qty-plus {
    background-image: url(../../assets/svgs/plus-booking.svg);
}

.booking-form .code-input {
    position: relative;
    display: block;
    width: fit-content;
    background-color: transparent;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .3);
    font-size: 1em; /*12px*/
    line-height: 1.31;
    letter-spacing: 0.04em;
    color: var(--beige-white);
    font-family: 'DMMono-light', Arial, Helvetica, sans-serif;
    padding: 0 0 .25vw;
    margin: 0;
}

.booking-form .code-input::placeholder {
    opacity: .6 !important;
    color: var(--beige-white);
	text-transform: uppercase;
}

.booking-form .code-input::-webkit-input-placeholder {
    opacity: .6 !important;
    color: var(--beige-white);
	text-transform: uppercase;
}

.booking-form .code-input::-moz-placeholder {
    opacity: .6 !important;
    color: var(--beige-white);
	text-transform: uppercase;
}

.booking-form .code-input:-ms-input-placeholder {
    opacity: .6 !important;
    color: var(--beige-white);
	text-transform: uppercase;
}

.booking-form .submit {
    position: relative;
	display: flex;
	height: fit-content;
	width: fit-content;
	padding: 1.38vw 2.31vw; /*24px 40px*/
	color: var(--beige-white);
    background-color: transparent;
    border: 1px solid #D4AB8D;
	cursor: pointer;
}

.booking-form .submit:hover {
    background-color: var(--beige-white);
    border: 1px solid var(--beige-white);
    color: var(--caramel);
}


@media screen and (max-width: 1280px) {
	.booking-popup {
		width: 800px;
		height: 545px;
		padding: 24px;
	}
}


@media only screen and (max-width: 800px) {
    .booking-popup {
		width: calc(100% - 32px);
		height: calc(100vh - 32px);
		padding: 26px 23px;
		overflow: hidden;
        display: flex;
        flex-flow: column-reverse;
    }

	.booking-popup .left {
		width: 100%;
	}

    .booking-popup .right {
		width: 100%;
        height: fit-content;
		padding: 0 0;
	}

	.booking-popup .right .top {
		display: flex;
		width: 100%;
		height: 100%;
		flex-flow: column;
		justify-content: space-between;
	}

	.booking-popup .right .top .close-inner {
		height: fit-content;
		align-items: center;
        justify-content: flex-end;
	}

	.booking-popup .right .top .close-inner .cta-close {
		font-size: 1.16rem;
		font-size: 14px;
	}  

    .booking-popup .right .top .top-text {
  		display: none;
    }

	.booking-popup .right .bottom {
  		display: none;
	}

	.booking-form {
		padding: 0 0 0;
		justify-content: center;
    	row-gap: 34px;
	}

	.booking-form .rows {
  		row-gap: 39px;
	}

	.booking-form .rows .row {
		row-gap: 14px;
	}

	.booking-form .rows .row .date-input .date {
  		text-underline-offset: 12px;
		font-size: 32px;
	}

	.booking-form .rows .row .guest-qty {
		column-gap: 16px;
		font-size: 32px;
	}

	.booking-form .qty-buttons {
		padding-top: 0px;
		height: 24px;
		column-gap: 6px;
		margin-bottom: 4px;
	}

	.booking-form .qty-buttons .qty-plus, 
	.booking-form .qty-buttons .qty-minus {
		height: 24px;
		width: 24px;
	}

	.booking-form .submit {
		position: absolute;
		padding: 24px 0px;
		width: 100%;
		justify-content: center;
		bottom: 0;
	}

	.booking-form .code-input {
  		font-size: 12px;
	}


	/* CALENDAR */
	.booking-form .rows .row .calendar-picker .calendar {
		width: 100%;
		margin-top: -36px;
	}

	.calendar-picker .calendar .calendar-header {
		padding: 48px 20px 0;
	}

	.calendar-picker .calendar .calendar-header .calendar-close {
		top: 16px;
		right: 16px;
	}

	.calendar-picker .calendar .calendar-header .calendar-prev {
		padding-right: 10px;
	}

	.calendar-picker .calendar .calendar-header .calendar-next {
		padding-left: 10px;
	}

	.calendar-picker .calendar .calendar-weekdays,
	.calendar-picker .calendar .calendar-grid {
		gap: 6px;
	}

	.calendar-picker .calendar .calendar-weekdays {
		padding: 26px 8px 14px;
	}

	.calendar-picker .calendar .calendar-grid {
		padding: 0px 8px 19px;
		row-gap: 7px;
	}

	.calendar-picker .calendar .calendar-weekday,
	.calendar-picker .calendar .calendar-empty {
		padding: 0px;
	}

	.calendar-picker .calendar .calendar-day {
		padding: 7px 0;
	}
}


@media only screen and (max-width: 550px) {
	.booking-popup {
		width: calc(100% - 32px);
		height: calc( ( var(--vh, 1vh) * 100 ) - 32px);
		padding: 26px 23px;
    }

    .booking-popup .right {
		padding: 0 0;
	}

	.booking-popup .right .top .close-inner .cta-close {
		font-size: 14px;
	}  

	.booking-form {
		padding: 0 0 0;
    	row-gap: 34px;
	}

	.booking-form .rows {
  		row-gap: 39px;
	}

	.booking-form .rows .row {
		row-gap: 14px;
	}

	.booking-form .rows .row .date-input .date {
  		text-underline-offset: 12px;
	}

	.booking-form .rows .row .guest-qty {
		column-gap: 16px;
	}

	.booking-form .qty-buttons {
		padding-top: 0px;
		height: 24px;
		column-gap: 6px;
		margin-bottom: 4px;
	}

	.booking-form .qty-buttons .qty-plus, 
	.booking-form .qty-buttons .qty-minus {
		height: 24px;
		width: 24px;
	}

	.booking-form .submit {
		padding: 24px 0px;
		width: 100%;
	}

	/* CALENDAR */
	.booking-form .rows .row .calendar-picker .calendar {
		width: 100%;
		margin-top: -36px;
	}

	.calendar-picker .calendar .calendar-header {
		padding: 48px 20px 0;
	}

	.calendar-picker .calendar .calendar-header .calendar-close {
		top: 16px;
		right: 16px;
	}

	.calendar-picker .calendar .calendar-header .calendar-prev {
		padding-right: 10px;
	}

	.calendar-picker .calendar .calendar-header .calendar-next {
		padding-left: 10px;
	}

	.calendar-picker .calendar .calendar-weekdays,
	.calendar-picker .calendar .calendar-grid {
		gap: 6px;
	}

	.calendar-picker .calendar .calendar-weekdays {
		padding: 26px 8px 14px;
	}

	.calendar-picker .calendar .calendar-grid {
		padding: 0px 8px 19px;
		row-gap: 7px;
	}

	.calendar-picker .calendar .calendar-weekday,
	.calendar-picker .calendar .calendar-empty {
		padding: 0px;
	}

	.calendar-picker .calendar .calendar-day {
		padding: 7px 0;
	}
}