/* Booking form */


input::placeholder { color: var(--dark-grey); }        
input::-webkit-input-placeholder { color: var(--dark-grey); }
input:-ms-input-placeholder { color: var(--dark-grey); }  
input::-ms-input-placeholder { color: var(--dark-grey); } 

.elementor-form input[type="text"],
.elementor-form input[type="email"],
.elementor-form input[type="tel"] {
	background: var(--input) !important;
}

.elementor-form {
	font-family: Inter, serif;
}
.elementor-form, 
.elementor-form .elementor-field-type-html {
	color: var(--dark-grey);
}
.elementor-form h1 {
	font-size: 49px;
	font-weight: 400;
	line-height: 56px;
	color: var(--dark-grey);
}

.elementor-form .helper-text {
	color: var(--dark-grey);
	font-size: 24px;
	line-height: 32px;
}

.elementor-form .notification-text {
	font-size: 16px;
	line-height: 24px;
}

.elementor-form .e-form__buttons .elementor-button {
	font-family: Inter, Roboto;
	font-weight: 400;
}

.form-notification {
	position: relative;
	background: var(--card-selected-bg);
	padding: 14px 20px 14px 48px;
	margin-bottom: 16px;
	border-radius: 16px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--dark-grey);
}

.form-notification::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 18px;
	height: 18px;
	transform: translateY(-50%);
	background-image: url('../icons/info.svg'); 
	background-size: contain;
	background-repeat: no-repeat;
}


#booking-form {
}

/* Check in, Check out */
.elementor-field-group-checkin,
.elementor-field-group-checkout {
	margin-bottom: 0;
}
.elementor-field-group-checkin label,
.elementor-field-group-checkout label {
	display: none;
}
#form-field-checkin,
#form-field-checkout
{
    padding-left: 60px;
    background: 25px 12px var(--ecru) url(../icons/calendar.svg) no-repeat !important;
}


/* Общий контейнер поля 
  для полей Взрослые, Дети, Номера
*/
.custom-number-field {
	color: var(--dark-grey);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--ecru);
    padding: 18px;
    border-radius: 100px;
    width: 100%;
    box-sizing: border-box;
}

/* Левая часть: иконка + текст */
.cnf-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Иконка круглой формы */
.cnf-icon {
    width: 60px;
    height: 60px;
    background: var(--dark-grey);
    border-radius: 50%;
    flex-shrink: 0;
}

.cnf-icon.icon-adults {
    background:-6px -8px #313131 url(../icons/adults.png) no-repeat;
}

.cnf-icon.icon-kids {
    background:-7px -7px #313131 url(../icons/kids.png) no-repeat;
}

.cnf-icon.icon-rooms {
    background:-7px -7px #313131 url(../icons/rooms.png) no-repeat;
}


/* Тексты слева */
.cnf-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.2;
}

/* Тайтл ("Взрослые", "Дети", "Номера") */
.cnf-title {
	font-family: Montserrat, serif;
    font-size: 24px;
    font-weight: 400;
}

/* Подпись ("От 15 лет") — не обязательно */
.cnf-sub {
    font-size: 18px;
    color: var(--medium-grey);
    margin-top: 2px;
}

/* Правая часть — мини-контрол (кнопки + значение) */
.cnf-counter {
    display: flex;
    align-items: center;
    background: var(--panel-bg);
    border-radius: 100px;
    padding: 8px 16px;
    gap: 10px;
}

/* Кнопки +/– */
.cnf-btn {
    background: none;
    border: none;
    font-size: 14px;
    cursor: pointer;
    width: 14px;
    height: 14px;
    text-align: center;
    line-height: 14px;
    padding: 0;    
    font-weight: 400;
}

/* Значение числа */
.cnf-value {
    font-size: 15px;
    font-weight: 600;
    min-width: 14px;
    text-align: center;
}

/*
* -------------------------------------------
*/

/* ====== Общий контейнер ====== */

.room-card {
    display: flex;
    width: 1035px;
    max-width: 100%;
    margin: 0 auto 24px;
    padding: 24px;
    gap: 24px;
    background-color: var(--card-bg);
	border: 2px solid var(--card-bg);
    border-radius: 24px;
}

.room-card:hover {
	border: 2px solid var(--honey);
}

/* Выделенная карточка */
.room-card--selected {
    background-color: var(--card-selected-bg);
    border: 2px solid var(--card-selected-bg);
}

/* ====== Левый блок ====== */

.room-card__left {
    width: 300px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 20px;
    color: var(--medium-grey);
}

.room-card__title {
    margin: 0;
    color: var(--dark-grey);
    font-size: 30px;
    font-weight: 400;
}
.room-card__subtitle {
    font-size: 10px;
}

.room-card__desc {
    margin: 0;
    font-size: 12px;
    line-height: 1.4;
}

.room-card__media {
    height: 180px;
	overflow: hidden;
	border-radius: 20px;
}

.room-card__media .bg-img {
    display: block;
	width: 100%;
	height: 100%;
    border-radius: 10px;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}


/* ====== Центральный блок ====== */

.room-card__center {
    height: 312px;    
    padding: 24px;
    background-color: var(--panel-bg);
    border-radius: 28px;
}

.pricebox {
    display: flex;
    flex-direction: column;
    justify-content: space-betweeen !important;
    height: 100%;
}
.pricebox__top {
    gap: 10px;
}

.pricebox__price {
    font-family: Montserrat;
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    font-size: 36px;
    color: var(--dark-grey);
}

.pricebox__tag {
    display: inline-block;
    margin: 10px 0;
    padding: 4px 10px;
    font-size: 12px;
    border-left: 3px solid var(--honey);
}

.basic-info {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.basic-info__title {
    font-size: 12px;
}

.info-item {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
}
.info-item .info-label {
    color: var(--medium-grey);
}

/* ====== Правый блок ====== */

.room-card__right {
    width: 250px;
    background-color: var(--panel-bg);
    border-radius: 24px;
}


.features-toggle {
    width: 100%;
    padding: 12px 16px;
    font-size: 16px;
    border: none;
    background: var(--panel-bg);
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    display: none;
    justify-content: space-between;
}

.features-content {
    display: block;
    margin-top: 12px;
}

.amenities{
    list-style:none;
    margin:0;
    padding:0;
    width:100%;
}
.amenities li{
    display:flex;
    align-items:center;
    gap:8px;
    padding: 10px;
    border-bottom:2px solid var(--separator);
    color: var(--dark-grey);
    font-size:12px;
}
.amenities li:last-child{ border-bottom: none; }
.amenities .ico{
    width:26px;
    height:26px;
    fill: none;
    stroke: #c89a5b;
    stroke-width: 1.2;
    opacity: 0.95;
}
.amenities .icon-wifi{
    background: 0 5px url(../icons/wifi.svg) no-repeat;
}
.amenities .icon-climate{
    background: 0 5px url(../icons/climate.svg) no-repeat;
}
.amenities .icon-safe{
    background: 0 5px url(../icons/safe.svg) no-repeat;
}
.amenities .icon-premium{
    background: 0 5px url(../icons/premium.svg) no-repeat;
}
.amenities .icon-minibar{
    background: 0 5px url(../icons/minibar.svg) no-repeat;
}
.amenities .icon-smarttv{
    background: 0 5px url(../icons/smarttv.svg) no-repeat;
}

/* ====== Мобильная версия ====== */

@media (max-width: 768px) {
    .room-card {
        flex-direction: column;
        gap: 20px;
    }

    .room-card__left,
    .room-card__center,
    .room-card__right {
        width: 100%;
    }

    .room-card__media {
        order: 3;
    }

    .room-card__title {
        order: 1;
    }

    .room-card__desc {
        order: 2;
    }

    .features-content {
        margin-top: 10px;
    }
}

@media (min-width: 768px) {
}

@media (min-width: 1024px) {
    .room-card__left {
		display: block;
        position: relative;
        width: 435px;
        height: 312px;
    }
    .room-card__text {
        width: 40%;
    }
    .room-card__media {
        position: absolute;
        width: 213px;
        height: 312px;
        right: 0px;
        top: 0;
    }
	.room-card__media .bg-image {
		height: 100%;
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
	}
    .room-card__desc {
        position: absolute;
        bottom: 0;
        display: block;
        width: 40%;
    }    
}

@media (min-width: 1280px) {
    .elementor-form h1 {
        font-size: 60px;
        line-height: 100%;
    }

    .elementor-form .helper-text {
        font-size: 16px;
        line-height: 40px;
    }

    .elementor-form .form-notification {

    }
    .elementor-form .form-notification__text {
        font-size: 16px;
        line-height: 40px;
    }

    .elementor-form .e-form__buttons .elementor-button {
        font-size: 14px;
    }

    .elementor-field-group-checkin,
    .elementor-field-group-checkout {
        margin-bottom: 28px;
    }

    .custom-number-field {
        padding: 14px 18px;
        border-radius: 40px;
        margin-bottom: 8px;
    }

    .elementor-field-group-rooms + .elementor-field-type-html .custom-number-field {
        margin-bottom: 24px;
    }

    .cnf-icon {
        width: 36px;
        height: 36px;
    }
    
    .cnf-icon.icon-adults {
        background:-6px -8px #313131 url(../icons/adults.png) no-repeat;
    }

    .cnf-icon.icon-kids {
        background:-7px -7px #313131 url(../icons/kids.png) no-repeat;
    }

    .cnf-icon.icon-rooms {
        background:-7px -7px #313131 url(../icons/rooms.png) no-repeat;
    }

    .cnf-title {
        font-size: 14px;
    }

    .cnf-sub {
        font-size: 12px;
    }
    .cnf-counter {
        border-radius: 40px;
        padding: 6px 12px;
        gap: 18px;
    }
    .cnf-btn {
        font-size: 14px;
        width: 18px;
        height: 18px;
    }

    .cnf-value {
        font-family: Montserrat, serif;
        font-size: 16px;
        font-weight: 400;
        min-width: 16px;
    }

    .room-list-wrapper {
        max-height: 674px;
        overflow-y: auto;
        position: relative;
    }

    .room-list-wrapper::after {
		display: block;
        content: "";
        position: sticky;
        bottom: 0;
        left: 0;
        right: 0;
        height: 80px;
        pointer-events: none;
        background: linear-gradient(
                to bottom,
                rgba(255, 255, 255, 0) 0%,
                rgba(255, 255, 255, 0.8) 60%,
                rgba(255, 255, 255, 1) 100%
        );
    }

    .room-card__left {
        flex: 1;
        width: auto;
        max-width: 450px;
        min-width: 420px;
    }
    .room-card__text {
        width: 55%;
        max-width: 200px;
    }
    .room-card__desc {
        width: 55%;
        max-width: 200px;
    }
    .room-card__media {
        border-radius: 28px;
    }

    .room-card__center {
        max-width: 295px;
    }
    .room-card__right {
        max-width: 210px;
    }
    .amenities li {
        padding: 10px;
    }

	
	.e-con.elementor-element.booking-form-container {
		display:block;
	}
	.e-con.elementor-element.booking-form-container .e-con-inner {
		width:100%;
		max-width: 100%;
	}
	.booking-form form {
		display:flex;
		justify-content: space-between;
		margin: 0 auto;
		padding: 35px;
		max-width: var(--content-max-width);
	}	
	.booking-form form .e-form__indicators {
		display: flex;
		flex-direction: column;
		justify-content: start;
		align-items: flex-start;
		width: 290px;
		min-width: 180px;
		border-radius: 24px;
		border: 1px solid var(--separator);
		height: 200px;
		overflow: hidden;
	}
	.booking-form form .e-form__indicators__indicator__separator {
		display: none;
	}
	
	.booking-form form .e-form__indicators__indicator {
		display: block;
		justify-content: start;
		width: 100%;
		padding: 12px 16px;
		color: var(--medium-grey);
	}
	
	.booking-form form .e-form__indicators__indicator--state-active {
		padding-left: 48px;
		position: relative;
		background: var(--card-bg);
		color: var(--dark-grey);
	}
	.booking-form form .e-form__indicators__indicator--state-active::before {
		content: "";
		display: block;
		position: absolute;
		z-index: 1;
		left: 16px;
		top: calc(50% - 10px/2);
		width: 22px;
		height: 10px;
		border-radius: 100px;
		background: var(--honey);
	}

	.booking-form form .e-form__indicators__indicator--state-active::after {
		content: '';
		 position: absolute;
		  right: 12px;
		  top: 50%;
		  transform: translateY(-50%);
		  width: 20px;
		  height: 20px;
		  background-image: url("../icons/check.svg");
		  background-repeat: no-repeat;
		  background-position: center;
		  background-size: contain;
	}


	.booking-form form .e-form__indicators__indicator label {
		font-family: Montserrat, serif;
		font-size: 12px;
	}

	.booking-form form .e-form__indicators__indicator--state-completed label {
		color: var(--medium-grey);
	}
	
	.booking-form form .elementor-form-fields-wrapper {
		max-width: 1035px;
	}
	
	
	/* Custom validation error */
	.custom-validation-error {
		position: absolute;
		top: 0px;
		left: 50%;
}
	}
	
}
