@keyframes blink { 0% { opacity: 1; } 20% { opacity: 0; } 40% { opacity: 1; } 60% { opacity: 0; } 80% { opacity: 1; } 100% { opacity: 1;  } }

/* Offerte */
.offer_minstay .fieldvalue { display: none;}
.offer_validity { display: flex; align-items: flex-start; margin-bottom: 10px; color: var(--grey); text-align: left; font-size: var(--mini_base);}
.offer_validity:before { font-family: var(--icon); content: '\f336'; margin-right: 3px;}
.offer_minstay { display: flex; align-items: flex-start; width: 100%!important; font-family: var(--sans); color: var(--grey); text-align: left; font-size: var(--mini_base);}
.offer_minstay .fieldkey { display: none;}
.offer_minstay .fieldkey:before { font-family: var(--icon); content: '\e0d6'; margin-right: 3px; }
.section#offers .ztemplate_model_11 .ztemplate .row .box .elem .caption-cnt .zlink.offer_btn a { color: var(--white); border: 2px solid var(--ocean); background-color: var(--ocean);}
.section#offers .ztemplate_model_11 .ztemplate .row .box .elem .caption-cnt .zlink.offer_btn { margin: 0;}
.section#offers .ztemplate_model_11 .title { border-bottom: 1px solid var(--ocean); padding-bottom: 10px; margin-bottom: 10px;}
.section#offers .ztemplate_model_11.slick_off .box { display: flex; flex-wrap: wrap; max-width: 1440px; margin: 0 auto; }
.section#offers .ztemplate_model_11.slick_off .ztemplate .row .box .elem { margin: 15px; width: calc(100% / 3 - 30px);}
.section#offers .ztemplate_model_11 .ztemplate .row .box .elem .caption-cnt img { height: 300px; object-fit: cover;}
.section#offers .ztemplate_model_11 .ztemplate .row .box .elem.odd .caption-cnt .zinput.offer_minstay .fieldkey { color: var(--grey);}

/* Booking mask > Dettaglio sistemazione */
.immersive_be .merge_group { position: relative; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: center; align-items: center; }
.immersive_be .merge_group .form.field {  margin: 0 5px; }
.immersive_be .form_merge_add_button[disabled] {display: none;}
.immersive_be .form_merge_add_button { display: inline-flex; align-items: center; justify-content: center; text-transform: uppercase; font-size: var(--mini_base); font-weight: var(--bold); color: var(--grey); cursor: pointer; margin-top: 10px; padding-left: 5px}
.immersive_be .form_merge_add_button:before { font-family: var(--icon); content: '\f055'; font-size: 120%; color: var(--purple); font-weight: var(--solid); margin-right: 3px; position: relative; }
.immersive_be .merge_group:not(:last-child) .form_merge_rem_button, .immersive_be .merge_group:first-child .form_merge_rem_button { display: none; }
.immersive_be .form_merge_rem_button { font-size: 0; cursor: pointer; background-color: var(--transparent); display: flex; align-items: center; justify-content: center; height: 40px; width: 40px; position: absolute; z-index: 1; top: 0; right: 0}
.immersive_be .form_merge_rem_button:before { font-size: var(--mini_base); font-family: var(--icon); content: '\f00d'; color: var(--white);  }
.immersive_be .guests_wrapper { background-color: var(--ocean); color: var(--black); padding: 20px 20px 10px; margin: 0 auto;position: absolute; top: 0; bottom: 0; left: 100%; width: 100%; transition: .6s all cubic-bezier(.215, .61, .355, 1); z-index: 10; box-shadow: 0 0 10px rgb(0 0 0 / 30%); text-align: left; }
.immersive_be.fired .guests_wrapper { bottom: inherit; top: 0;}
.immersive_be .b_mask.fired .guests_wrapper { left: 0; }
.immersive_be .guests_wrapper .form_select .current_value { pointer-events: none; margin: 0 10px; padding: 10px; text-align: center; font-size: var(--size_base); width: auto!important;}
.immersive_be .guests_desc { font-size: var(--standard); text-align: center; margin-bottom: 10px; font-family: var(--sans);}
.immersive_be .guests_wrapper .form.field.select { text-align: center; padding: 10px 0}
.immersive_be .guests_wrapper .form.field.select:last-of-type  { /* border-right: unset */}
#side_modal .immersive_be form .guests_wrapper .form_select { display: flex; justify-content: center; padding: 0; align-items: center; border: unset; position: relative; }
.immersive_be .guests_wrapper .form.field.select.element_7 { display: none!important;}
.immersive_be .guests_wrapper .form_merge_group { text-align: center;}
.immersive_be .guests_wrapper .form_merge_group .form.field.select_wrap { width: calc(100% / 3 - 10px); }
.immersive_be .guests_wrapper .form_merge_group .form.field.select_wrap:last-of-type { /* border-right: unset */}
.immersive_be .guests_wrapper .form_select .elements_list {display: none !important}
.immersive_be .merge_group { margin-top: 5px; display: flex; flex-wrap: wrap; padding: 0 0 10px; background-color: #ECECEC; margin-bottom: 15px;}
.immersive_be .group_title { text-align: center; font-size: var(--size_base); width: 100%; color: var(--white); background-color: var(--grey); padding: 7px 15px; margin-bottom: 0; }
.immersive_be .group_title .group_index { margin-left: 5px; }
.immersive_be .guests_wrapper .add_btn, .immersive_be .guests_wrapper .rem_btn { background-color: transparent; cursor: pointer; /* height: 20px; */ z-index: 2; right: 7px;}
.immersive_be .guests_wrapper .add_btn { top: 5px; }
.immersive_be .guests_wrapper .rem_btn { bottom: 5px;  }
.immersive_be .guests_wrapper .add_btn:before, .immersive_be .guests_wrapper .rem_btn:before { font-family: var(--icon); font-weight: var(--solid); font-size: var(--mini_base); color: var(--purple);}
.immersive_be .guests_wrapper .add_btn:before { content: '\f055'; }
.immersive_be .guests_wrapper .rem_btn:before { content: '\f056'; }
.immersive_be .guests_wrapper_ok { text-transform: uppercase; background-color: var(--purple); color: var(--white); padding: 15px; border-radius: 0; font-size: var(--mini_base); font-weight: var(--bold); margin: 40px auto 0; cursor: pointer; text-align: center}
#booking_mask_sidebar form .caption-fields .b_mask .guests_wrapper .field { width: 50%; background-color: var(--white); padding-top: 10px;}
#side_modal .immersive_be form .guests_wrapper .form_element_title { color: var(--grey); margin-bottom: 0; font-size: var(--size_base); text-align: center; left: 0; font-family: var(--sans); bottom: 0;}
#side_modal .immersive_be form .b_mask .guests_wrapper .form_element_title { width: 100%; margin-bottom: 5px;}

#booking_mask_sidebar { max-width: 480px; margin: 0 auto; padding: 0 0 40px; overflow: auto;}
#booking_mask_sidebar form .date_from_html { width: 100%; font-weight: var(--bold); font-size: var(--mini_base); display: flex; align-items: center; justify-content: center;}
#booking_mask_sidebar form .date_from_html:after { display: none;}
#booking_mask_sidebar .date_from_html:before { font-family: var(--icon); color: var(--azure); font-size: var(--average); font-weight: var(--light); content: '\e0d6'; margin-right: 10px; position: relative; top: -5px;}
#booking_mask_sidebar .month:before { content: '/'; margin: 0 2px;}
#booking_mask_sidebar .month:after { content: '/'; margin: 0 2px;}
form .date_from_html > div { margin: 0;}
#booking_mask_sidebar form .caption-fields { margin: 0; }
#booking_mask_sidebar form .caption-fields .field.date .form_element_title, #booking_mask_sidebar form .caption-fields .field.date .calendar_field_html { display: none;}
#booking_mask_sidebar form .caption-fields .field { margin: 0 10px; padding: 0; width: 100%; }
#booking_mask_sidebar form .form_element_title { color: var(--grey); font-size: var(--mini_base); }
#booking_mask_sidebar .rooms_cnt { width: 100%; background-color: rgba(255,255,255,.070); margin: 20px 10px; padding: 15px 20px 20px; color: var(--purple);}
#booking_mask_sidebar .rooms_cnt .merge_group {display: flex; align-items: center; }
#booking_mask_sidebar form .rooms_cnt .form_select .current_value { pointer-events: none; color: var(--white); font-size: 140%;}
#booking_mask_sidebar form .rooms_cnt .form_select .current_value:after { border: unset;}
#booking_mask_sidebar .rooms_cnt .form_merge_add_button { display: none; pointer-events: none;}
#booking_mask_sidebar form .caption-fields .rooms_cnt .field { border-bottom: unset;}
#booking_mask_sidebar form .rooms_cnt .form_select { border: unset; width: 80px; padding: 15px; margin: 0 auto; position: relative; text-align: center; display: flex; align-items: center; justify-content: center;}
#booking_mask_sidebar form .rooms_cnt .form_element_title { text-align: center; color: var(--white);}
#booking_mask_sidebar form .caption-fields .field.element_11 { width: 100%; position: relative;}
#booking_mask_sidebar form .caption-fields .field.element_11 input { background-color: transparent; color: var(--white); border: unset; font-size: var(--big_normal); padding: 5px; }
#booking_mask_sidebar form .caption-fields .field.element_11:after { position: absolute; z-index: -1; right: 0; bottom: 8px; color: var(--ocean); font-weight: var(--light); font-family: var(--icon); content: "\f02c"; font-size: var(--medium); }
#booking_mask_sidebar form input[type="submit"] { display: block; width: 100%; text-transform: uppercase; font-family: var(--sans); background-color: var(--purple); padding: 15px 25px; margin: 15px 10px; cursor: pointer; text-align: center; font-size: var(--mini_base); font-weight: var(--bold); color: var(--white); }
#booking_mask_sidebar .varlink a { color: var(--white); text-transform: uppercase; font-size: var(--mini_base); font-weight: var(--light); }
#booking_mask_sidebar .varlink { text-align: center;}
.b_mask { width: 100%; padding: 10px 0; }
#booking_mask_sidebar form .caption-fields .b_mask .field { width: 100%; margin: 0; padding: 0;}
.b_mask_summary { margin-top: 30px; background-color: var(--ice); padding: 15px; border-radius: 5px;}
.b_mask_summary input { cursor: pointer; font-size: var(--mini_base); font-weight: var(--regular); border: unset!important; }
#booking_mask_sidebar form .form_select .current_value:after { display: none;}
.bm_title { font-family: var(--sans); font-size: var(--large_medium); position: absolute; transform: rotate(-90deg); z-index: 1; top: 250px; left: -70px;}
.guests_wrapper_cnt { background-color: var(--white); position: relative; top: 12%; max-width: 530px; border-radius: 5px; margin: 0 auto; padding: 25px;}
.guests_desc { font-family: var(--sans);}

/* Booking mask > Calendario */
/*
.template_calendar { top: 0; left: 0; background-color: var(--ice); border-radius: 0; padding: 10px;}
.calendar_dates_info { display: none;}
.calendar_dates_info .date_1_wrapper,
.calendar_dates_info .date_2_wrapper { margin: 0 10px; }
.calendar_dates_info .date_1_label,
.calendar_dates_info .date_2_label,
.calendar_dates_info .num_days_label { margin: 0 0 5px 0; font-size: var(--mini_base); text-transform: uppercase; color: var(--azure); font-weight: var(--bold);}
.calendar_dates_info .date_1_text,
.calendar_dates_info .date_2_text,
.calendar_dates_info .num_days_control { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: center; align-items: center; justify-content: center; text-align: center; font-size: var(--mini_base); font-weight: var(--bold); letter-spacing: 2px; color: var(--grey);}
.calendar_dates_info .remove_day_selector:before,
.calendar_dates_info .add_day_selector:before { margin: 0 10px; font-family: var(--icon); content: "\f055"; color: var(--azure); font-weight: var(--regular); cursor: pointer; font-weight: var(--solid); font-size: var(--average);}
.calendar_dates_info .date_1_text:before, .calendar_dates_info .date_2_text:before { font-family: var(--icon); content: "\e0d6"; color: var(--azure); font-weight: var(--light); font-size: var(--average); margin-right: 7px; top: -5px; position: relative;}
.calendar_dates_info .remove_day_selector:before { content: "\f056"; }
.calendar_control { }
.calendar_header { padding: 0; color: var(--black); height: auto; line-height: 40px; font-weight: var(--bold); border-radius: 5px; font-size: var(--size_superior);}
.current_month, .current_year { position: relative; bottom: -3px;}
.fc-calendar .fc-head > div { font-size: var(--mini_base); font-weight: var(--regular); letter-spacing: 2px; padding-top: 10px; }
.calendar_wrapper .fc-calendar .fc-head { background-color: var(--ice); color: var(--grey); font-size: var(--mini_base); height: 38px;}
.calendar_wrapper .fc-calendar .fc-body,
.calendar_wrapper .fc-calendar .fc-row,
.calendar_wrapper .fc-calendar .fc-row > div { text-align: center; line-height: 60px; background-color: #D9D9D9;}
.calendar_wrapper .fc-calendar .fc-row .day-content { padding: 5px; font-size: 9px; position: absolute; z-index: 1; top: -18px; right: 6px;}
.calendar_wrapper .fc-calendar .fc-row .day-content .tc-f-minStay,
.calendar_wrapper .fc-calendar .fc-row .day-content .tc-f-roomCount { display: none;}
.calendar_wrapper .fc-calendar .fc-row > div > span.fc-date { text-align: center; font-size: var(--mini_base); font-weight: var(--regular); position: initial; }
.calendar_wrapper .fc-calendar .fc-row > div.selected.sel-first,
.calendar_wrapper .fc-calendar .fc-row > div.selected.sel-last { background-color: #2F3537; color: var(--white); }
.calendar_wrapper .fc-calendar .fc-row > div.selected { background: #CECBAF; }
.calendar_wrapper .fc-calendar .fc-row > div.selected.sel-first > span.fc-date,
.calendar_wrapper .fc-calendar .fc-row > div.selected.sel-last > span.fc-date {color: var(--white);}
.controls .prev_month,
.controls .next_month { padding: 0 10px; top: 0; color: var(--black);}
.controls .prev_month:before,
.controls .next_month:before { font-size: var(--size_large); font-weight: var(--thin);}
.controls .prev_month { left: 0;}
.controls .next_month { right: 0;}
.pf_cal .template_calendar .fc-calendar .fc-row > div.fc-past { background: repeating-linear-gradient( -45deg , rgb(255, 255, 255), rgb(255, 255, 255) 3px, rgb(235, 235, 235) 3px, rgb(235, 235, 235) 4px); cursor: inherit;}
.pf_cal .template_calendar .fc-calendar .fc-row > div.fc-past > span.fc-date { color: #b5b5b5}
.template_calendar .oob .tc-f-startingPrice { display: none;}
.template_calendar .tc-f-startingPrice:before { content: '\20ac'}
.template_calendar .confirm_btn { display: none;}
.fc-calendar .fc-row > div { height: 60px}
.template_calendar .oob {background-color: #E7E5DD!important; pointer-events: none;}
.calendar_wrapper .fc-calendar .fc-row > .oob span.fc-date { color: #908E86; }
.fc-calendar .fc-row, .fc-calendar .fc-row > div, .fc-calendar .fc-body { border-color: var(--ocean);}
.selection_preview { background-color: var(--ocean); }
*/
#side_modal #booking_mask_sidebar form .date .form_element_title { display: none;}
#booking_mask_sidebar .date-invisible { height: 0; font-size: 0; opacity: 0; padding: 0!important; }
#booking_mask_sidebar form .caption-fields .field.date.element_19 { height: 0; }

/* BE Immersivo > Step Risultati Camere e Tariffe */
.ztemplate_model_rooms.showcase.ztemplate_rooms { margin-top: 0;}
#page.ecommerce { text-align: center;}
.ztemplate_rooms .elem:not(.subcontents .elem) { margin-bottom: 90px;}
.desktop .ztemplate_rooms .elem:not(.subcontents .elem) { min-height: 450px;}
.ztemplate_rooms .rooms.gallery .elem {margin-bottom: 0px;}
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { position: relative; padding: 0 0 0 435px; }
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { transition: .4s}
.ztemplate_rooms .subcontents { margin-top: 0; position: relative; padding-left: 435px;}
.ztemplate_rooms .subcontents .ztemplate { margin: 0;  overflow: hidden; padding: 0px 25px;}
.ztemplate_rooms .subcontents .elem {margin: 0;padding: 0;width: 100%; border-bottom: 1px solid rgba(0, 0, 0, 0.1); background-color: var(--ice);}
.ztemplate_rooms .subcontents .elem:nth-child(odd){  }
.ztemplate_rooms .subcontents .elem:last-of-type { border-bottom: unset; }
.ztemplate_rooms .subcontents .caption-cnt { display: flex; padding: 0; align-items: stretch; justify-content: space-between; background-color: transparent; }
.ztemplate_rooms .subcontents .caption-cnt > li { margin: 10px 0; padding: 10px 15px; border-right: 1px solid rgba(0, 0, 0, 0.1); display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; justify-content: center; align-items: center; flex-wrap: wrap; }
.ztemplate_rooms .subcontents .caption-cnt .caption-3 { align-items: center; flex-direction: column; justify-content: center; row-gap: 9px; }
.ztemplate_rooms .subcontents .caption-cnt .caption { box-shadow: unset; width: 40%; text-align: left; justify-content: center; align-items: center; display: block;}
.ztemplate_rooms .subcontents .rate-group-header .rate-group-title { width: 40%; text-align: left; justify-content: flex-start; align-items: flex-start; }
.ztemplate_rooms .subcontents .caption-cnt .caption-alt { background-color: transparent; position: initial; left: initial; bottom: initial; max-width: inherit; width: 32%;  align-items: flex-start; justify-content: flex-start; flex-direction: column; border-right: unset;}
.ztemplate_rooms .subcontents .caption-cnt .caption-alt .upfront.zlabel .fieldkey { font-weight: var(--bold); }
.ztemplate_rooms .subcontents .caption-add,
.ztemplate_rooms .subcontents .rate-group-header .rate-group-price,
.ztemplate_rooms .subcontents .rate-group-header .rate-group-rooms { width: 25%; text-align: center; position: initial; bottom: initial; right: initial; }
.ztemplate_rooms .subcontents .caption-add { background-color: transparent; order: 1;}
.ztemplate_rooms .subcontents .caption-add.last { border: none; border-left: 1px solid rgba(0, 0, 0, 0.1);}
.ztemplate_rooms .subcontents .caption-add .zlabel.g20 { font-weight: var(--bold); }
.ztemplate_rooms .subcontents .title { margin:0; font-size: 110%; font-family: var(--sans); width: 100%; text-align: left; color: var(--purple); font-weight: var(--bold); width: auto; }
.ztemplate_rooms .subcontents .title:after { display: none;}
.ztemplate_rooms .subcontents .ztextarea { margin: 0; font-size: 100%; width: 100%; text-align: left; }
.ztemplate_rooms .subcontents .rate-group-header { padding: 5px 0; display: flex; background-color: var(--ocean); color: var(--white); font-size: 70%; text-transform: uppercase; text-align: center; position: relative; cursor: pointer; }
.ztemplate_rooms .subcontents .rate-group-header p { margin-bottom: 0;}
.ztemplate_rooms .subcontents .rate-group-header.open { background-color: var(--ocean); }
.ztemplate_rooms .subcontents .rate-group-header:before { font-family: var(--icon); position: absolute; left: 20px; top: 14px; cursor: pointer; content: "\f0fe"; }
.ztemplate_rooms .subcontents .rate-group-header.open:before { content: "\f146"; }
.ztemplate_rooms .subcontents .rate-group-header > div { padding: 10px 20px; text-align: left; border-left: 1px solid rgba(255, 255, 255, 0.3); display: none; }
.ztemplate_rooms .subcontents .rate-group-header.open > div {  display: block; }
.ztemplate_rooms .subcontents .rate-group-header .rate-group-title { padding: 10px 0 10px 45px; display: block; border: none;}
.ztemplate_rooms .subcontents .rate-group-header .rate-group-cond { width: 32%; }
.ztemplate_rooms .subcontents a { color: var(--ocean); }
.carousel_photos .ztemplate .elem .caption-cnt img { min-width: unset; transition: .6s all cubic-bezier(.215, .61, .355, 1); filter: brightness(75%);}
.carousel_photos .ztemplate:not(.template17) .elem .caption-cnt .caption:hover img { transform: scale(1.1);}
.carousel_photos .ztemplate .elem .caption-cnt .caption:hover img:not(.template_detail_wrapper img) { filter: brightness(55%);}
.carousel_photos .template_detail_wrapper.opened .ztemplate .elem .caption-cnt img { filter: brightness(100%);}
.ecommerce .ztemplate .rooms .rooms_available { margin: 5px 0 0 0; color: var(--green); display: flex; width: auto; align-items: center; gap: 5px; margin-bottom: 8px;}
.ecommerce .ztemplate .rooms .rooms_available:before { font-family: var(--icon); font-weight: var(--regular); content: "\f06a"; position: relative; top: -1px;}

/* Fasce orarie - Servizi */
.ztemplate .selection_time { display: flex; align-items: center; gap: 3px; margin-left: 10px;}
.ztemplate .selection_time select { border: 1px solid #dedede; border-radius: 3px; background-color: #f6f6f6; padding: 3px;}
.ztemplate .selection_time select:focus { outline:none;}
.ztemplate .selection_time:before, .ztemplate .time:before { font-family: var(--icon); content: '\f017';}
.ztemplate .time { order: 3; margin-left: 5px; display: flex; align-items: center; gap: 3px;}
.ztemplate .time:before { font-size: 90%;}
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time:hover .selection_date { padding-left: 0;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time { position: relative; padding: 15px 20px;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time .selection_date { position: relative; top: -10px;}
.smartphone .ztemplate .selection_time { position: absolute; bottom: 10px; left: 10px; gap: 2px;}
.smartphone .ztemplate .selection_time select { padding: 0; border: unset;}
.smartphone .ztemplate .selection_time:before { font-size: 90%; }

/* fix per risultati camere compatto */
.body_ecommerce_step .booking_label, .body_ecommerce_order .booking_label, .body_ecommerce_payment .booking_label   { display: none;}
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { width: 100%; max-width: 430px; overflow: hidden; position: absolute; top: 0; left: 0; }
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { width: 100%; background-color: rgba(255,255,255,.65); padding:0 25px 25px ; text-align: left;}
.ecommerce .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt .title { font-family: var(--sans); font-size: var(--bigger); margin-bottom: 5px; color: var(--purple); text-transform: uppercase;}
.ecommerce .ztemplate_rooms .step_content_wrapper .location { color: var(--red); border-bottom: 1px solid rgba(0,0,0,.1);}
.ecommerce .ztemplate_rooms .zsimplebutton { cursor: pointer; background-color: var(--ocean); color: var(--white); font-size: var(--mini_base); text-transform: uppercase; letter-spacing: 2px; font-weight: var(--bold); padding: 20px 25px 10px; border-radius: 3px; display: inline-block;}
.ecommerce .ztemplate_rooms .zlabel.g13 { margin: 0; padding-bottom: 15px; animation: blink 2s 5;}
.ecommerce .ztemplate_rooms .zlabel.g13 .fieldkey { text-transform: uppercase; font-size: var(--nano); margin-bottom: 5px;}
.ecommerce .ztemplate_rooms .zlabel.g13 .fieldvalue { color: var(--ocean); font-weight: var(--bold); font-size: var(--medium);}
.ecommerce .ztemplate_rooms .zlabel.g13 .fieldvalue:before { content: '\f0e7'; margin-right: 5px; font-family: var(--icon); font-weight: var(--solid);}
.ecommerce .ztemplate_rooms .box.rooms .zlabel.g10:not(.ztemplate_rooms .box.rates .zlabel.g10) { margin-bottom: 40px; border: 2px dotted var(--ocean); font-size: var(--nano); text-transform: uppercase; font-weight: var(--bold); padding: 15px 10px 0px; border-radius: 3px; display: inline-flex;}
.ecommerce .ztemplate_rooms .box.rooms .zlabel.g10:not(.ztemplate_rooms .box.rates):before { font-family: var(--icon); content: '\f675'; font-weight: var(--solid); color: var(--ocean); font-size: var(--standard); position: relative; bottom: 8px; margin-right: 5px;}
.ecommerce .ztemplate_rooms .box.rooms .zinput.g6 { display: flex; align-items: center; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--purple); justify-content: flex-start;}
.ecommerce .ztemplate_rooms .box.rooms .zinput.g6 .fieldvalue { margin-left: 10px}

.room_size { display: flex; align-items: center; font-family: var(--sans);}

.ecommerce .template_detail_wrapper.opened { position: fixed; z-index: 9999; top: 0; left: 0; width: 100%; height: 100%;}
.photo.open_detail { position: absolute; bottom: 50%; height: calc(100% - 50px); z-index: 2; padding-top: 65%; cursor: pointer; text-align: center; color: var(--white); text-align: center; width: calc(100% - 80px); left: 50%; transition: .4s all; transform: translate(-50%, 50%);}
.photo.open_detail:before { width: 60px; height: 60px; line-height: 60px; text-align: center; display: inline-block; font-family: var(--icon); font-weight: var(--light); color: var(--white); background-color: var(--purple); font-size: var(--medium); content: '\f030'; margin-bottom: 15px; transition: .6s all;}
.photo.open_detail .fieldkey { margin-top: 10px; text-transform: uppercase; font-size: var(--mini); font-weight: var(--bold); }
.ztemplate_rooms .elem .caption:hover .photo.open_detail { height: calc(100% - 30px); width: calc(100% - 60px); }
.ztemplate_rooms .elem .caption:hover .photo.open_detail:before { opacity: 1;}
.ztemplate_rooms .subcontents .rate-group-header { display: none;}
.ecommerce .purchase_flow_step .template_filter { background-color: unset; padding-left: 0; box-shadow: unset; left: 0; margin-left: 450px;}
.ecommerce .ztemplate .rooms .rates .saving { display: none;}
.ecommerce .amenities .fieldkey { display: block; width: 100%;}
.ztemplate_rooms.list .ztemplate .amenities.open_desc_order .fieldvalue { padding: 0; line-height: 1; margin: 0; padding: 10px 15px 0; font-size: 80%;}
.ztemplate_rooms.list .ztemplate .open_desc_order .fieldvalue { padding-bottom: 0;}
.ztemplate_rooms.list .canc_policy_label:before, .ztemplate_rooms.list .payment_policy_label:before { display: none;}
.ztemplate_rooms.list .canc_policy_label, .ztemplate_rooms.list .payment_policy_label { text-transform: inherit; cursor: inherit; font-size: 90%; color: var(--ocean);}
.ztemplate_rooms.list .payment_policy_label { color: var(--ocean);}
.ztemplate_rooms.list .canc_policy.fired .canc_policy_text, .ztemplate_rooms.list .payment_policy.fired .payment_policy_text { display: none;}
.template18 .canc_policy_text,
.template18 .payment_policy_text { display: block; }
.canc_costs_title {margin-top: 20px; font-size: 16px; color: var( --ocean); margin-bottom: 10px;}
.price_from { display: none;}
.ztemplate .open_desc_order.g3 .fieldkey { display: none;}
.ztemplate .open_desc_order.g3 { border-bottom: 1px solid var(--purple); }
.order .ztemplate .open_desc_order.g3,
.payment .ztemplate .open_desc_order.g3 { border-bottom: none; }
.ztemplate .open_desc_order.g3 .fieldvalue { display: block;}
.ztemplate_rooms .subcontents .elem { margin-bottom: 0;}
.ztemplate_rooms .subcontents .zlabel.condition_detail { margin-top: 5px;}
.ztemplate_rooms .subcontents .zlabel.condition_detail .fieldkey { background-color: var(--purple); padding: 5px; color: var(--white); font-size: 60%; cursor: pointer;}
.purchase_flow_step { max-width: 1600px; margin: 40px auto 0;}
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt .zlabel.g12 { color: var(--green); display: flex; align-items: center; gap: 5px; margin-bottom: 10px;}
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt .zlabel.g12:before { font-family: var(--icon); content: '\f06a'; font-weight: var(--solid); animation: blink 2s infinite;}
.ztemplate_rooms .step_content_wrapper .room_size :where(.fieldkey, .fieldvalue) { font-size: var(--size_base); color: var(--grey);}
.ztemplate_rooms .step_content_wrapper .room_size .fieldkey:after { background-color: var(--grey);}
.ztemplate_rooms .step_content_wrapper .zsimplebutton { display: none;}

/* Nascondo i messaggi */
.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt .zlabel.g12 { display: none!important; }

/* Template di dettaglio delle tariffe */
/*
.template_detail_wrapper .content_detail_wrapper { width:auto; position:relative; }
.template_detail_wrapper .close_detail { padding: 5px; position:absolute; top:10px; right:10px; z-index: 9999999; background-color:var(--ocean); font-size:0; cursor:pointer; }
.template_detail_wrapper .close_detail:before { content:"\f00d"; display:block; width:30px; height:30px; font-family: var(--icon); font-weight:var(--light); color:var(--white); font-size:var(--average); line-height:30px; text-align:center; }
.template_detail_wrapper .detail_template { margin: 0 auto; padding: 30px; width: 720px; max-height:60vh; background-color:var(--white); text-align:left; box-shadow: 0px 0 15px rgba(0, 0, 0, 0.1); position:relative; flex-wrap:wrap; z-index:999999; overflow-y:auto; }
*/
.ecommerce .template_detail_wrapper { background-color: rgba(0, 0, 0, .8);  }
.ecommerce .template_detail_wrapper .content_detail_wrapper { width:auto; position:relative; /* max-width: 1440px; */ margin: 0 auto; position: relative; /* top: 50%; transform: translateY(-50%); */}
.ecommerce .template_detail_wrapper .content_detail_wrapper .template { max-width: 1440px;}
.ecommerce .template_detail_wrapper .close_detail { padding: 5px; position:absolute; top:10px; right:10px; z-index: 9999999; background-color:var(--purple); font-size:0; cursor:pointer; }
.ecommerce .template_detail_wrapper .close_detail:before { content:"\f00d"; display:block; width:30px; height:30px; font-family: var(--icon); font-weight:var(--light); color:var(--white); font-size:var(--average); line-height:30px; text-align:center; }
.ecommerce .template_detail_wrapper .ztemplate.rate_detail .row .box .elem { background-color: unset; padding: 30px 0;}
.rates .template_detail_wrapper .content_detail_wrapper { background-color: var(--white); max-height: 590px; overflow: auto; width: 100%; max-width: 760px; border: 5px solid var(--dark_sand);}
.rates .template_detail_wrapper { display: flex; align-items: center; justify-content: center;}
.rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt { display: block; max-width: unset; height: auto;}
.rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption { position: inherit; display: block; height: auto; margin: 0; padding: 0; border: unset;}
.rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption-alt { width: 100%; display: block; height: auto; margin: 0; padding: 0;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztextarea.g2 .fieldkey { display: none;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztextarea.g2 .fieldvalue { display: block;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .zlabel.g8 { display: block; text-align: left; border-top: 1px solid #dedede; margin-top: 15px; padding-top: 10px;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .zlabel.g25 { border-top: 1px solid #dedede; margin-top: 15px; padding-top: 20px;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption-add { background-color: unset; box-shadow: unset; padding: 0; max-width: unset; margin: 0;}
.ztemplate_rooms .subcontents .rates .template_detail_wrapper .rate_details { border-top: 1px solid #dedede; margin-top: 15px; padding-top: 10px; }
.rates .template_detail_wrapper ul, #order_template_wrapper .rates .caption-alt .ztextarea.g2 ul { list-style-type: disc; }
.template18 .rate_arrangement .f8 .canc_policy {margin-top: 17px;}

/* Template di dettaglio delle camere */
.ecommerce .template_detail_wrapper .room_detail { width: auto; max-width:70vw; }
.ecommerce .template_detail_wrapper .room_detail .box.rooms .elem { margin: 0; padding: 0; border:none; }
.ecommerce .template_detail_wrapper .gallery { overflow: inherit; height: 100%;}
.ecommerce .template_detail_wrapper .gallery .tns-controls { position: absolute; top: 50%; z-index: 2; width: 100%; max-width: 1920px; margin: 0 auto; left: 0; right: 0; padding: 0 20px; display: flex; justify-content: space-between;}
.ecommerce .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt { padding:0; position: inherit;width: 100%; margin: 0 auto; }
.ecommerce .template_detail_wrapper .ztemplate .row .box.gallery .elem .caption-cnt { height: 90vh; }
.ecommerce .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption { max-width: unset;  bottom: 0; position: absolute; z-index: 1; height: 100% }
/*
.template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption img { min-width:inherit; height: 100vh!important; object-fit: contain;  width: 100%; background-color: unset!important; padding: 5%;}
.template_detail_wrapper .ztemplate .row .box .elem .caption-cnt .caption:hover img { transform: unset; }
*/
/* Carousel Arrows
.ztemplate .tns-controls,
.gallery .tns-controls,
.ztemplate .gallery .tns-controls { padding: 0 45px; width: 100%; display:flex; align-items:center; justify-content:space-between; position: absolute; bottom:50%; left: 0; z-index:20 }
.ztemplate .tns-controls button,
.gallery .tns-controls button,
.ztemplate .gallery .tns-controls button { background-color:transparent; }
.ztemplate .tns-controls button div,
.gallery .tns-controls button div,
.ztemplate .gallery .tns-controls button div { color: var(--white); font-weight: var(--light); font-family: var(--icon); cursor:pointer; font-size:0 }
.ztemplate .tns-controls button div:before,
.gallery .tns-controls button div:before,
.ztemplate .gallery .tns-controls button div:before { font-size:var(--big); }
.ztemplate .tns-controls button .prev:before,
.gallery .tns-controls button .prev:before,
.ztemplate .gallery .tns-controls button .prev:before { content:"\f177" }
.ztemplate .tns-controls button .next:before,
.gallery .tns-controls button .next:before,
.ztemplate .gallery .tns-controls button .next:before { content:"\f178" }
*/
/* Carousel Dots
.ztemplate .tns-nav { display:flex; align-items:center; justify-content:center }
.ztemplate .tns-nav button { margin:0 5px; width:16px; height:16px; background-color:transparent; border: 1px solid var(--white); position:initial; border-radius:100%; }
.ztemplate .tns-nav button.tns-nav-active { background-color:var(--white); box-shadow: inset 0 0 0 2px var(--ocean); }
*/

/* Highlighted */
.ztemplate_rooms .subcontents .elem.highlighted { border: 3px solid var(--ocean); margin-bottom: 10px;}
.ztemplate_rooms .subcontents .elem.highlighted .title:before { font-family: var(--icon); margin-right: 5px; content: '\f06b'; font-size: 120%; }
.ztemplate_rooms .subcontents .elem.highlighted .title { }
.ztemplate_rooms .subcontents .elem.highlighted .caption-add.last { background-color: var(--ocean); margin: 0;}
.ztemplate_rooms .subcontents .elem.highlighted .zlabelprice .fieldvalue { color: var(--white); }
.ztemplate_rooms .subcontents .elem.highlighted .product_selection_wrap .prod_sel_content { color: var(--white);}
.ztemplate_rooms .subcontents .elem.highlighted .product_selection_wrap span:before,
.ztemplate_rooms .subcontents .elem.highlighted .product_selection_wrap span:after { color: var(--white); }

.rate-group-content { overflow: visible!important; background-color: transparent; margin-top: 0px;}
.ztemplate_rooms.ztemplate_model_7 .box > div { width: 100%; }
.ztemplate_rooms.ztemplate_model_7 .subcontents .caption.first { order: 1; background-color: transparent; }
.ztemplate_rooms.ztemplate_model_7 .subcontents .caption-add { order: 3; }
.ztemplate_rooms.ztemplate_model_7 .subcontents .caption-add.last { order: 4; }
/* Titolo offerta limitata */
.ztemplate_rooms .subcontents .elem .zlabel.promo_name { display: flex; align-items: center; color: var(--green);  text-transform: uppercase; font-weight: var(--bold); text-align: left; margin-bottom: 10px; width: 100%; font-size: var(--mini); justify-content: start;}
.promo_name:before { font-family: var(--icon); content: '\f005'; margin-bottom: 0; margin-right: 5px; color: var(--green); font-weight: var(--solid);}
.promo_name .fieldvalue { }
.smartphone .ztemplate_rooms .subcontents .elem .zlabel.promo_name { flex-direction: row; }


/* Tariffe in vendita */
.ztemplate_rooms .subcontents .elem .zlabel.rate_select_bei {border-top: 1px solid #dedede; width: 100%;}
.ztemplate_rooms .subcontents .elem .zlabel.rate_select_bei .fieldkey { padding: 5px; margin-top: 10px; color: var(--purple); font-weight: var(--bold); font-size: 80%; width: 100%; text-align: center;}
.ztemplate_rooms .subcontents .elem .zlabel { line-height: 1; display: inline-block; width: auto;}
.ztemplate_rooms .subcontents .elem .zlabel.g17 { display: none;}
.ztemplate_rooms .subcontents .product_selection_wrap {/* margin: -15px 0 0 0 */ ;text-align: center;position: relative;display: -webkit-box;display: -moz-box;display: -ms-flexbox;display: -moz-flex;display: -webkit-flex;display: flex;list-style: none;-ms-box-orient: horizontal;-webkit-align-items: center;align-items: center; justify-content: center; width: 100%;}
.ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_content {padding: 0;min-width: 40px;width:auto; height: inherit;font-size: 170%; line-height: 1.2;text-align: center;border: none;background: none;color: var(--purple);}
.ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_add.disabled, .ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_rem.disabled { opacity: 0.1; }
.ztemplate_rooms .subcontents .product_selection_wrap span:before {font-family: var(--icon); font-weight: var(--solid); text-align: center; font-size: 100%; line-height: 1; color: var(--purple);}
.ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_rem:before {content: "\f056";}
.ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_add:before {content: "\f055";}

/* Prodotti e Tariffe - Descrizione Tariffa */
.ztemplate_rooms .subcontents .ztextarea.g2 .fieldkey { cursor: pointer; font-size: 70%; width: 100%; text-align: left; text-transform: uppercase; }
.ztemplate_rooms .subcontents .ztextarea.g2 .fieldkey:before { margin: 0 5px 0 0; font-family: var(--icon); font-weight: var(--regular); text-align: center; content: "\f0fe"; }
.ztemplate_rooms .subcontents .ztextarea.g2 .fieldvalue { display: none; font-size: 16px!important; line-height: 1.3}
.ztemplate_rooms .subcontents .ztextarea.g2 .fieldvalue span { font-size: 16px!important; }
.ztemplate_rooms .subcontents .ztextarea.g2 .fieldvalue ul { padding-left: 15px; margin: 10px 0;}
.ztemplate_rooms .subcontents .ztextarea.g2.fired .fieldvalue { margin: 0 0 10px 0; display: block; }
.ztemplate_rooms .subcontents .ztextarea.g2.fired .fieldkey:before { content: "\f146"; }

/* Trattamento ed eventuali Servizi inclusi */
.ztemplate_rooms .subcontents .zlabel.g24 {margin: 5px 0; width: 100%; display: -webkit-box;display: -moz-box;display: -ms-flexbox;display: -moz-flex;display: -webkit-flex;display: flex;list-style: none;-ms-box-orient: horizontal;-webkit-align-items: center;align-items: center; }
.ztemplate_rooms .subcontents .zlabel.g24 .fieldvalue { margin: 0 5px 0 0; font-size: 90%; color: var(--ocean);}
.ztemplate_rooms .subcontents .zlabel.g24 .fieldvalue:before { margin: 0 5px 0 0; font-family: var(--icon); font-weight: var(--solid); color: var(--ocean);}
.ztemplate_rooms .treatment-breakfast .zlabel.g24 .fieldvalue:before { content: "\f7b6";  }
.ztemplate_rooms .treatment-room .zlabel.g24 .fieldvalue:before { content: "\f236";  }
.ztemplate_rooms .treatment-half .zlabel.g24 .fieldvalue:before,
.ztemplate_rooms .treatment-full .zlabel.g24 .fieldvalue:before { content: "\f2e6";  }
.ztemplate_rooms .treatment-all .zlabel.g24 .fieldvalue:before { content: "\f561";  }
.ztemplate_rooms .subcontents .zlabel.g25 { color: var(--dark_grey); margin: 0 0 10px 0; width: 100%; font-size: 90%; line-height: 1.2;}
.ztemplate_rooms .subcontents .zlabel.g25 .fieldkey { margin: 0 5px 0 0; color: var(--dark_grey); font-size: 100%; text-align: left; text-transform: none;  }
.ztemplate_rooms .subcontents .zlabel.g25 .fieldkey:after { content: ":"; }

/* Prodotti e Tariffe - Condizioni */
.ztemplate_rooms .subcontents .caption-alt, .ztemplate_rooms .subcontents .caption-add { border-bottom: unset; text-align: left; text-transform: inherit;}
.ztemplate_rooms .subcontents .zlabel.g6 { width: 100%; display: flex; align-items: center; color: var(--dark_grey); font-weight: var(--regular);}
.ztemplate_rooms .subcontents .zlabel.g6 .fieldvalue {display: none;}
/*
.ztemplate_rooms .subcontents .zlabel.g6 .fieldvalue { display: flex; margin-left: 5px; font-size: var(--mini_base); color: var(--grey); font-weight: var(--bold);}
*/
.ztemplate_rooms .subcontents .zlabel.g6 .fieldvalue:before { content: '\20ac'; margin-right: 2px}
.ztemplate_rooms .subcontents .zlabel.g8 { line-height: 1.2;  }
.ztemplate_rooms .subcontents .zlabel.g8 .fieldvalue { display: flex; flex-direction: column-reverse;}
.ztemplate_rooms .subcontents .zlabel.g8 .fieldkey { display: none; color: var(--grey); font-size: 100%; width: 100%; text-align: left; }
.ztemplate_rooms .subcontents .zlabel.g8 .fieldkey:before { margin: 0 5px 0 0; font-family: var(--icon); font-weight: var(--regular); text-align: center; content: "\f0fe"; }
.ztemplate_rooms .subcontents .zlabel.g8.fired .fieldvalue { margin: 0 0 10px 0; display: block; }
.ztemplate_rooms .subcontents .zlabel.g8.fired .fieldkey:before { content: "\f146"; }
.ztemplate_rooms .subcontents .payment_policy { margin-top: 5px; text-align: left;}
.prepaid_detail { display: flex; align-items: center; margin: 10px 0 0; border-top: 1px dashed var(--purple); padding: 10px 0; color: var(--dark_grey)}
.prepaid_detail:before { font-family: var(--icon); content: '\f51e'; font-weight: var(--solid); margin-right: 5px}
.prepaid_detail_amount { font-size: 120%;; padding-top: 6px;}
.prepaid_detail_date { margin-left: 10px; font-weight: var(--bold); text-transform: uppercase; font-size: 80%; border: 1px solid var(--ocean); padding: 5px;}
.canc_policy_label, .payment_policy_label { text-transform: uppercase; cursor: pointer; font-size: 70%}
.canc_policy_label:before, .payment_policy_label:before { margin: 0 5px 0 0; font-family: var(--icon); font-weight: var(--regular); text-align: center; content: "\f0fe";}
.canc_policy_text, .payment_policy_text { margin: 5px 0 30px; display: none; font-size: 75%;}
.canc_policy.fired .canc_policy_text, .payment_policy.fired .payment_policy_text { display: block;}
.canc_policy.fired .canc_policy_label:before, .payment_policy.fired .payment_policy_label:before { content: '\f146'}

/* Prodotti e Tariffe - Visualizzazione prezzi e Occupanti*/
.ztemplate_rooms .subcontents .zlabel.g15,
.ztemplate_rooms .subcontents .zlabel.g16,
.ztemplate_rooms .subcontents .zlabel.g23 { margin: 0 5px 10px 5px; color: var(--ocean); display: none;  }
.ztemplate_rooms .subcontents .zlabel.g15 .fieldvalue:after,
.ztemplate_rooms .subcontents .zlabel.g16 .fieldvalue:after,
.ztemplate_rooms .subcontents .zlabel.g23 .fieldvalue:after { margin: 0 0 0 5px; font-family: var(--icon); font-weight: var(--regular); text-align: center; font-size: 130%; line-height: 1; content: "\f183"; }
.ztemplate_rooms .subcontents .zlabelprice { width: 100%; color: var(--purple); font-size: var(--size_base);}
.ztemplate_rooms .subcontents .zlabel.g9 { width: 100%; color: var(--grey); font-size: var(--size_base);}
.ztemplate_rooms .subcontents .zlabel .fieldkey { margin: 0; font-size: var(--mini); text-transform: uppercase; text-align: left; }
.ztemplate_rooms .subcontents .zlabelprice .fieldvalue,
.ztemplate_rooms .subcontents .zlabel.g9 .fieldvalue { position: relative; font-size: 130%; display: flex; justify-content: center; text-align: center; font-weight: var(--bold);}
.ztemplate_rooms .subcontents .zlabel.g9 .fieldvalue {font-size: 100%;}
.ztemplate_rooms .subcontents .zlabelprice .fieldvalue:before,
.ztemplate_rooms .subcontents .zlabel.g9 .fieldvalue:before,
.ztemplate_rooms .subcontents .zlabel.g20 .fieldvalue:before  { margin: 0 2px 0 0;content: "\20ac";text-transform: uppercase; text-align: left;}
.ztemplate_rooms .subcontents .zlabel.g9 { margin: 0; display: inline-block; width: auto;}
.ztemplate_rooms .subcontents .zlabel.g9 .number,
.ztemplate_rooms .subcontents .zlabel.g9 .decimal { text-decoration: line-through; }
.ztemplate_rooms .subcontents .zlabel.g20 { display: flex; align-items: center; justify-content: center; text-align: center; color: var(--grey);}
.ztemplate_rooms .subcontents .zlabel.g20 .fieldkey,
.ztemplate_rooms .subcontents .zlabel.g20 .fieldvalue { margin: 0 2px; font-size: 70%;}
.ztemplate_rooms .subcontents .zlabel.g20 .fieldvalue { position: relative; top: 2px; }
.ztemplate_rooms .subcontents .caption-add .zlabel.g20 .fieldvalue { top: 0;}
.ztemplate_rooms .subcontents .zlabel.g20 span.comma,
.ztemplate_rooms .subcontents .zlabel.g20 span.decimal  { vertical-align: initial;font-size: 100%;letter-spacing: 0;position: relative;top: initial;}
.ztemplate_rooms .subcontents .zlabelprice:before { display: none;}


/* CSS Takyon */
.takyon-scripts-target-info .takyon-info-box { width: auto; align-items: flex-start; background-color: #fff; padding: 15px; border: 1px solid #dedede; margin-bottom: 15px;}
img.takyon-logo-little { min-width: unset!important; width: auto; height: auto!important; max-width: 50px;}
.takyon-scripts-target-info .takyon-info-box::after { display: none!important;}
.takyon-logo { min-width: unset!important; width: auto!important; height: 60px!important;}
.ztemplate_rooms .rates .caption-alt { z-index: auto;}
.takyon-scripts-target-info .takyon-ratename { white-space: normal; line-height: 1.2;}
.takyon-scripts-target-info .takyon-info-btn { display: none;}
#order_template_wrapper .details_wrapper p.takyon-text-title, #order_template_wrapper .details_wrapper p.takyon-text-subtitle { color: var(--white)!important;}

/* Step Bar - Purchase flow */
.step_footer { margin: 0; padding: 15px 20px; width: 100%; position: fixed; bottom: 0; left: 0; background-color: var(--white); box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); transform: translateY(130%);transition-timing-function: ease-in;transition: 0.2s;z-index: -2; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: center; align-items: center; justify-content: flex-end;}
.step_footer.fired { transition: 0.25s;transition-timing-function: ease-out;transform: translateY(0);opacity: 1; z-index: 3;  }
.step_footer_wrap { position: relative; width: 100%; max-width: 1520px; padding: 0 20px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center}
.pf_step_button { font-size: var(--mini_base); font-weight: var(--bold); position: relative; transition: .3s; top: 0; padding: 15px 50px; letter-spacing: 0; order: 2; background-color: var(--purple); color: var(--white); text-transform: uppercase; border: unset; cursor: pointer; }
.pf_step_button.disabled { opacity: 0; pointer-events: none; top: 100px; }

@keyframes bg-loading {
    0% {
      background-position: 0% 0%;
    }
    100% {
      background-position: 100% 0%;
    }
  }

.pf_step_button { background: linear-gradient(90deg, var(--purple) 0%, var(--purple) 50%, var(--ocean) 50%, var(--ocean) 100%); background-size: 200% 100%; animation: bg-loading 1s linear infinite alternate-reverse;}


.totals { margin: 0 20px 0 0; }
.total_price_title { text-transform: uppercase; font-size: 70%; display: flex;align-items: center; order: 2; }
.total_amount { order: 1; font-size: var(--medium); color: var(--purple); display: flex; align-items: center; margin-right: 0;font-weight: var(--bold); position: relative; margin-bottom: 5px; font-size: 150%;}
.order .total_amount, .payment .total_amount {color: var(--white); font-size: var(--medium);}
.total_amount span.number {margin: 0px 2px 0px 0;font-size: 100%;letter-spacing: -1px;line-height: 1;}
.total_amount span.comma {margin: 0px 0px 0px 0; position: relative; }
.total_amount span.decimal { letter-spacing: -0.5px;position: relative; }
.total_amount:before {margin: 0 2px 0 0;content: "\20ac";text-transform: uppercase; text-align: left; position: relative; }
.step_footer_wrap .cart_detail_wrapper { position: absolute; z-index: 2; left: 0}
.step_footer_wrap #cart_detail { text-align: left; opacity: 0; transition: .4s; max-height: 420px; overflow: auto; border: 1px solid var(--purple); box-shadow: 0 0 20px rgb(0 0 0 / 20%); position: absolute; left: 20px; bottom: 30px; width: 420px; background-color: var(--white); z-index: 2; pointer-events: none; transform: scale(0); transform-origin: bottom left;padding-bottom: 10px; }
#cart_summary_wrapper { padding: 0 15px;}
.ztemplate .box_heading { display: none;}
.step_footer_wrap #cart_detail > .box_heading {  display: block; color: var(--white); position: sticky; top: 0; left: 0; width: 93%; height: 34px; z-index: 9; padding: 10px; background-color: var(--purple); margin-bottom: -34px; line-height: 1; text-transform: uppercase; font-size: 70%; font-weight: var(--bold);}
.step_footer_wrap #cart_detail > .box_heading p { margin: 0; line-height: 1.3;}
.step_footer_wrap #cart_detail::-webkit-scrollbar { width: 4px; background-color: var(--white);}
.step_footer_wrap #cart_detail::-webkit-scrollbar-thumb { background-color: #2F3537;}
.step_footer_wrap #cart_detail.fired { opacity: 1; pointer-events: inherit; transform: scale(1);}
.step_footer_wrap #cart_detail .ztemplate { margin: 0; display: block; width: 100%; padding: 0; }
.step_footer_wrap #cart_detail .ztemplate .caption {width: 100%; background-color: transparent; }
.step_footer_wrap #cart_detail .ztemplate .row, .purchase_flow_step.purchase_flow_3_step#pf_3_step_2 #cart_detail .ztemplate .row:not(.subcontents .row) { margin-left: 0; width: 100%; }
.step_footer_wrap #cart_detail .zlabel.g24 { order: 9;}
.step_footer_wrap #cart_detail .zlabel.g24 .fieldvalue { font-size: var(--mini);}
.step_footer_wrap #cart_detail .subcontents .zlabel.g9 { position: relative;top: 5px;}


.step_footer_wrap #cart_detail .elem { margin: 20px 0 0; padding: 0; background-color: transparent; min-height: unset;}
.step_footer_wrap #cart_detail .elem .zinput.g3 { display: none;}
.step_footer_wrap #cart_detail .subcontents { display: block; margin-top: 0; padding-left: 0;}
.step_footer_wrap #cart_detail .subcontents .elem { padding: 0; margin: 0; border-bottom: 1px dashed rgba(0,0,0,.1)}
.step_footer_wrap #cart_detail .subcontents .elem:last-of-type { border-bottom: unset;}
.step_footer_wrap #cart_detail .subcontents .elem .caption { width: 100%}
.step_footer_wrap #cart_detail .subcontents .elem:nth-child(odd) { background-color: var(--white);}
.step_footer_wrap #cart_detail .subcontents .elem .caption-cnt:not(.service_title .caption-cnt) { padding: 6px 0;}
.step_footer_wrap #cart_detail .zlabel.g11 { animation: unset; position: relative; left: 0; top: 0; width: 100%;}
.step_footer_wrap #cart_detail .zlabel.g11 .subfield { border-bottom: 1px dashed #dedede; padding: 4px 0; }
.step_footer_wrap #cart_detail .zlabel.g11 .subfield:last-of-type { border-bottom: unset;}
.step_footer_wrap #cart_detail .zlabel.g11 .subfield .fieldvalue{ display: flex; align-items: center; color: var(--grey); width: 100%; background-color: transparent}
.step_footer_wrap #cart_detail .zlabel.g11 .date { order: 2; font-size: 90%; color: var(--purple);}
.step_footer_wrap #cart_detail .zlabel.g11 .quantity { order: 1; color: var(--purple);}
.step_footer_wrap #cart_detail .zlabel.g11 .name { order: 3; margin-left: auto; margin-right: 20px; color: var(--grey); font-size: 70%; }
.step_footer_wrap #cart_detail .zlabel.g11 .price { order: 4; font-size: 90%; color: var(--purple); font-weight: var(--bold); position: relative; top: 0;}
.step_footer_wrap #cart_detail .zlabel.g11 .price .decimal {position: relative;}
.step_footer_wrap #cart_detail .zlabel.g11 .price .comma {position: relative;}
.step_footer_wrap #cart_detail .zlabel.g11 .price:before { content: '\20ac'; margin-right: 2px; }
.step_footer_wrap #cart_detail .subcontents .caption-cnt .caption-alt { display: none;}
.step_footer_wrap #cart_detail .ztemplate .title { font-size: 130%; font-family: var(--sans); border-bottom: 1px solid #dedede; margin-top: 0; padding-bottom: 10px; margin-bottom: 0; color: var(--purple); text-transform: uppercase;}
.step_footer_wrap #cart_detail .ztemplate .service_title .title { font-size: 100%;}
.step_footer_wrap #cart_detail .ztemplate .title:after { display: none; }
.step_footer_wrap #cart_detail .subcontents .caption { align-items: center}
.step_footer_wrap #cart_detail .subcontents .title { /* text-transform: lowercase; */ width: auto; order: 2; font-size: 85%; font-family: var(--sans); font-weight: var(--bold); border-bottom: unset; padding-bottom: 0; margin-bottom: 0; line-height: 1.2; margin-top: 5px;}
.step_footer_wrap #cart_detail .subcontents .title::first-letter { /* text-transform: uppercase; */ }
.step_footer_wrap #cart_detail .subcontents .ztemplate { box-shadow: unset; border-radius: unset; overflow: unset; }
.step_footer_wrap #cart_detail .subcontents .caption-cnt .caption { padding: 2px 0; margin: 0; display: flex; flex-wrap: wrap; flex-direction: row; width: 70%; justify-content: flex-start;}
.step_footer_wrap #cart_detail .zlabelquantity { font-size: 90%; order: 1; margin-right: 5px; display: flex; align-items: center; font-weight: var(--bold); color: var(--white); background-color: var(--purple); padding: 5px; }
.step_footer_wrap #cart_detail .subcontents .caption-add { padding: 0; margin: 0; display: flex; flex-wrap: nowrap; flex-direction: column; width: 30%!important; justify-content: center; align-items: end; }
.step_footer_wrap #cart_detail .zlabel.g11 .fieldvalue { display: flex; align-items: center}
.step_footer_wrap #cart_detail .subcontents .caption-cnt > li { border-right: unset; border-left: unset; width: auto; }
.step_footer_wrap #cart_detail .subcontents .zlabelprice .fieldvalue { font-size: 130%}
.step_footer_wrap #cart_detail .service_title .subcontents .caption-cnt .caption { width: 100%; }
.step_footer_wrap #cart_detail .service_title .subcontents .elem { border-bottom: unset}
.step_footer_wrap #cart_detail .subcontents .zlabel.g9 { margin: 0 0px 0 0; font-size: 75%; width: auto;}
.step_footer_wrap #cart_detail .subcontents .elem .zlabelprice { font-size: 70%; width: auto; position: relative; top: 5px;}
.step_footer_wrap .subcontents .elem .zlabel { margin-right: 0;}
.step_footer_wrap #cart_detail .subcontents .zlabel.g20 { display: none;}
.cart_btn { cursor: pointer; margin-right: 15px; color: var(--purple); position: relative; display: flex; align-items: center; text-transform: uppercase; font-size: 80%; font-weight: var(--bold);}
.cart_btn:before { font-family: var(--icon); font-size: 150%; color: var(--purple); content: '\f07a'; position: relative; z-index: 1; margin-right: 10px; font-weight: var(--regular); position: relative; bottom: 2px;}
.cart_btn:after { font-family: var(--icon); color: var(--purple); position: absolute; z-index: 2; font-weight: var(--solid); content: '\f05a'; font-size: 90%; line-height: 1; bottom: -1px; left: 12px; border: 3px solid var(--white); background-color: var(--white); border-radius: 100%; }
.step_footer_wrap #cart_detail .caption-cnt { background-color: transparent;}
.step_footer_wrap #cart_detail .close_btn { cursor: pointer; position: sticky; z-index: 5; top: 0; right: 0; left: 100%; width: 30px; height: 34px; border: unset; background-color: var(--purple);}
.step_footer_wrap #cart_detail .close_btn:before { width: 20px; height: 1px; background-color: var(--white); transform: rotate(45deg) translateY(-50%); position: absolute; top: 50%; left: calc(50% - 10px); content: '';}
.step_footer_wrap #cart_detail .close_btn:after { width: 20px; height: 1px; background-color: var(--white); transform: rotate(-45deg) translateY(-50%); position: absolute; top: 50%; left: calc(50% - 10px); content: '';}
.step_footer_total_wrap { margin-left: auto; display: flex; flex-direction: column; margin-right: 60px; align-items: flex-end; line-height: 1; }
.step_footer #total_amount.fired { animation: blink 2s; animation-delay: .5s;}
.step_footer_wrap #cart_detail .ztemplate .caption-alt { display: none;}

/* Step Servizi */
.ztemplate_rooms .step_content_wrapper .ztemplate .services .caption-cnt:not(.subcontents .caption-cnt) .caption { max-width: unset; margin: 0;}
.ztemplate_rooms .ztemplate .services .elem .caption:not(.subcontents .caption):before { transition: .6s; transition-delay: .2s; position: absolute; z-index: 2; width: 115px; height: 115px; border-radius: 100%; top: -120px; right: -120px; content: '';}
.ztemplate_rooms .ztemplate .services .elem.selected .caption:not(.subcontents .caption):before { top: -50px; right: -50px; }
.ztemplate_rooms .ztemplate .services .elem .caption:not(.subcontents .caption):after { position: absolute; z-index: 2; top: 5px; right: 8px; font-size: 180%; transform: scale(0); transition: .4s; color: var(--ocean); font-family: var(--icon); font-weight: var(--solid); content: '\f058'}
.ztemplate_rooms .ztemplate .services .elem.selected .caption:not(.subcontents .caption):after { transform: scale(1); transition-delay: .4s}
.ztemplate_rooms .ztemplate .services .elem.selected { border: 8px solid var(--ocean);}
.ztemplate_rooms .ztemplate .services .elem:hover .caption-cnt img { filter: blur(5px); transform: scale(1.4) rotate(5deg); opacity: .5; }
.ztemplate_rooms .ztemplate .services .elem.selected .caption-cnt img { opacity: .5; }
.ztemplate_rooms .ztemplate .services .subcontents::-webkit-scrollbar { width: 5px; background-color: rgba(0,0,0,.3)}
.ztemplate_rooms .ztemplate .services .subcontents::-webkit-scrollbar-thumb { background-color: var(--dark_sand);}
.ztemplate_rooms .ztemplate .services .subcontents { padding: 10px; display: block; width: 100%; position: fixed; z-index: 9999; width: 540px; right: 0; left: 0; margin: 0 auto; top: 150px; pointer-events: none; opacity: 0; transform: scale(.8); bottom: 84px; overflow: auto; background-color: var(--white); transition: .4s}
.ztemplate_rooms .ztemplate .services .elem.fired .subcontents { opacity: 1; transform: scale(1); pointer-events: inherit; max-height: 920px; height: auto;}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt { display: flex; flex-wrap: wrap; width: 100%}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption { display: flex; flex-direction: row;align-items: center; width: 100%; margin: 0; padding: 10px; font-size: 60%; text-transform: uppercase; background-color: var(--ocean);}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption-alt { width: 100%; margin: 0; padding: 0; left: 0}
.ztemplate_rooms .ztemplate .services .subcontents .ztemplate { box-shadow: unset; border-radius: unset;}
.ztemplate_rooms .ztemplate .services .subcontents .elem { background-color: transparent; border: unset; margin: 0; width: 100%; padding: 0 0 15px; height: auto;}
.ztemplate_rooms .ztemplate .services .subcontents .title { padding-bottom: 5px; margin-bottom: 0!important; margin-top: 15px; font-size: var(--medium); font-family: var(--sans); font-weight: var(--regular); font-size: var(--average); text-transform: uppercase;}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt > li { border: unset}
.ztemplate_rooms .ztemplate .services .subcontents .product_selection_wrap { display: flex; flex-wrap: wrap; width: 100%}
.ztemplate_rooms .ztemplate .services .subcontents .selection_date_fields{ display: flex;align-items: center; width: 100%; list-style-type: none; justify-content: space-between; padding-left: 0}
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper .selection_date {  transition: .4s}
.ztemplate_rooms .ztemplate .services .subcontents .price_per_day { position: relative; margin-left: auto; color: var(--dark_grey); padding: 5px 20px; margin-right: 20px;}
.ztemplate_rooms .ztemplate .services .subcontents .price_per_day .fieldvalue { display: flex; align-items: flex-start; font-weight: var(--bold);}
.ztemplate_rooms .ztemplate .services .subcontents .price_per_day .fieldvalue:before { content: '\20ac'; margin-right: 2px; position: relative; }
.ztemplate_rooms .ztemplate .services .subcontents .price_per_day .number { margin-right: 2px}
.ztemplate_rooms .ztemplate .services .subcontents .price_per_day .comma, .ztemplate_rooms .ztemplate .services .subcontents .price_per_day .decimal { }
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper { transition: .4s; width: 100%; padding-bottom: 5px; border-bottom: 1px solid var(--dark_sand); padding: 5px 10px;}
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper:nth-child(even) { background-color: var(--ice)}
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper:last-child { border-bottom: unset}
.ztemplate_rooms .ztemplate .services .subcontents .selection_date .fieldvalue{ font-size: 60%; display: flex; align-items: center; font-size: 65%; font-weight: var(--bold); }
.ztemplate_rooms .ztemplate .services .subcontents .selection_date .fieldvalue > div { margin-right: 5px; font-size: 120%}
.ztemplate_rooms .ztemplate .services .subcontents .month { display: none}
.ztemplate_rooms .ztemplate .services .subcontents .selection_per_day_wrap .fieldvalue { display: flex; align-items: center}
.ztemplate_rooms .ztemplate .services .subcontents .ztextarea { padding-right: 0}
.ztemplate_rooms .ztemplate .services .subcontents .ztextarea.g2 { cursor: inherit; color: var(--black); display: block; margin-bottom: 0;}
.ztemplate_rooms .ztemplate .services .subcontents .caption-alt { position: relative; width: 100%; padding: 10px 5px; list-style-type: none; display: block; background-color: transparent;}
.ztemplate_rooms .ztemplate .services .subcontents .zlabel.g6 .fieldvalue:before { display: none;}
.ztemplate_rooms .ztemplate .services .subcontents .zlabel.g6 .fieldvalue { color: var(--dark_grey); font-size: 60%; display: block;}
.ztemplate_rooms .ztemplate .services .subcontents .zlabel.g8 { display: none;}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption-alt .product_selection_wrap .prod_sel_content { font-size: 120%; color: var(--dark_grey);}
.close_services { display: inline-block; position: absolute; top: 0; left: 0; z-index: 2; width: 0; height: 0; border-style: solid; border-width: 70px 70px 0 0; background-color: var(--purple); cursor: pointer; width: 70px; height: 70px;}
.close_services:before { position: absolute; top: -45px; right: 4px; transform: translate(-50%, -50%); display: flex; font-family: var(--icon); font-weight: var(--regular); content: '\f00d'; color: var(--white); font-size: 100%; transform-origin: center; transition: .3s}
.close_services:hover:before { transform: translate(-50%, -50%) rotate(90deg); }
.service_info { position: relative;}
.service_info .ztextarea.g2 { color: var(--white)}
.ztemplate_rooms .subcontents .service_info .ztextarea.g2 .fieldvalue{ display: block}
.ztemplate_rooms .ztemplate .services .service_info .service_desc { padding: 20px; pointer-events: none;}
.ztemplate_rooms .subcontents .service_desc .zlabel.g6 .fieldvalue { color: var(--grey); font-size: 85%}
.ztemplate_rooms .subcontents .service_desc .zlabel.g6 .fieldvalue:before { display: none;}
.ztemplate_rooms .subcontents img { min-width: unset; width: 600px; height: 290px; object-fit: cover; opacity: 1;}
.close_services_btn { cursor: pointer; padding: 15px; background-color: var(--purple); color: var(--white); text-transform: uppercase; font-size: var(--mini); font-family: var(--sans); font-weight: var(--bold); text-align: center; position: sticky; bottom: 0; z-index: 2; }
.ztemplate_rooms .ztemplate .services .service_info .service_desc .zlabel.g6 { display: flex;}
.services_label { display: none; color: var(--white)}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption .services_label { display: block; font-weight: var(--bold);}
.ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption .title { width: auto; padding: 0; border: unset; font-size: 100%; margin: 0 27px 0 0; color: var(--white); border-right: 1px solid rgba(255, 255, 255, 0.3); padding-right: 15px; font-family: var(--sans); font-weight: var(--bold);}
.services_label.price_label { margin-left: auto; margin-right: 3px; border-left: 1px solid rgba(255, 255, 255, 0.3); padding-left: 22px}
.services_label.qty_label { margin-right: 15px}
.body_ecommerce_step .ecommerce .purchase_flow_step .template_filter { margin-left: 0;}
.body_ecommerce_step .template_filter .form_checkbox { justify-content: center;}
.ztemplate_rooms .ztemplate .services .selected .zlabel.g8:not(.subcontents .zlabel.g8) { background-color: var(--purple);}

/* Filtro servizi in Step  */
.hidden_form_element { height: 0;}
.purchase_flow_step .ztemplate .row { width: 100%;}
.purchase_flow_step .template_filter { width: 320px; text-align: left;}
.purchase_flow_step .template_filter .filter_key { font-family: var(--sans); font-size: var(--normal); color: var(--dark_grey); text-transform: uppercase; display: block; text-align: center; font-weight: var(--bold);}
.purchase_flow_step .template_filter .filter_values { margin-top: 15px; padding: 15px; width: 100%;}
.purchase_flow_step .template_filter .filter_values .form_checkbox { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 30px;}
.purchase_flow_step .template_filter .checkbox { display: flex; align-items: center; gap: 6px; cursor: pointer; width: 100%; padding-bottom: 0px; color: var(--grey);}
.purchase_flow_step .template_filter .checkbox:last-of-type { border-bottom: unset; padding-bottom: 0;}
/* .purchase_flow_step .template_filter .checkbox .check:before { font-family: var(--icon); content: '\f0c8'; transition: .4s all;}
.purchase_flow_step .template_filter .checkbox.checked .check:before { content: '\f14a'; color: var(--ocean); font-weight: var(--solid); } */
.purchase_flow_step .template_filter .checkbox .check { position: relative; width: 32px; height: 20px; display: inline-block; border-radius: 100px; background-color: var(--ocean);}
.purchase_flow_step .template_filter .checkbox .check:before { content: ''; position: absolute; width: 15px; height: 15px; border-radius: 100%; left: 3px; top: 2px; z-index: 1; background-color: var(--white); opacity: 1; transition: all 0.3s cubic-bezier(.215, .61, .355, 1); }
.purchase_flow_step .template_filter .checkbox.checked .check:before { background-color: var(--white); left: 14px; opacity: 1; }
.purchase_flow_step .template_filter .checkbox.checked .check {background-color: var(--purple);}
/*
.purchase_flow_step .template_filter .form_radio .radio { position: relative; width: 32px; height: 20px; display: inline-block; border-radius: 100px; background-color: var(--ocean);}
.purchase_flow_step .template_filter .form_radio .radio:before { content: ''; position: absolute; width: 15px; height: 15px; border-radius: 100%; left: 3px; top: 10px; z-index: 1; background-color: var(--white); opacity: 1; transition: all 0.3s cubic-bezier(.215, .61, .355, 1); }
.purchase_flow_step .template_filter .form_radio .radio.checked:before { background-color: var(--white); left: 14px; opacity: 1; }
.purchase_flow_step .template_filter .form_radio .radio.checked {background-color: var(--purple);}
.purchase_flow_step .template_filter .radio:after {display: none;}
.purchase_flow_step .template_filter .form_radio .value {margin-left: 40px;}
*/
/*
.purchase_flow_step .template_filter .radio:before { content: ''; position: absolute; z-index: 1; left: calc(100% + 10px); top: 50%; transform: translateY(-50%); width: 50px; height: 24px; background-color: var(--ocean); transition: .4s all; border-radius: 100px;}
.purchase_flow_step .template_filter .radio:after { content: ''; font-family: var(--icon); line-height: 28px; color: var(--white); position: absolute; z-index: 2; left: calc(100% + 12px); top: 50%; transform: translateY(-50%); width: 20px; height: 20px; background-color: var(--white); transition: .4s all; border-radius: 100px;}
.purchase_flow_step .template_filter .radio.checked:before { background-color: var(--purple);}
.purchase_flow_step .template_filter .radio.checked:after { left: calc(100% + 38px);}
*/
.purchase_flow_step .template_filter .value { text-transform: uppercase; font-weight: var(--light); color: var(--dark_grey);}
.purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate),
.services_only .purchase_flow_step .ztemplate:not(.subcontents .ztemplate) { flex-wrap: nowrap;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) {flex-wrap: wrap;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) .template_filters {width: 100%; display: none !important;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) .template_filters .template_filter {width: 100%; margin: 0;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) .template_filters .template_filter .filter_values {display: flex; align-items: center; justify-content: center; margin-top: 0;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) .template_filters .template_filter .filter_values .form_checkbox {display: flex; align-items: center; justify-content: center; flex-direction: row;}
.purchase_flow_step:is(.purchase_flow_3_step, .purchase_flow_4_step) .ztemplate:not(.subcontents .ztemplate) .template_filters .template_filter .filter_values .form_radio {display: flex; align-items: center; justify-content: center; flex-direction: row;}


/* Aggiustamenti nuovi per renderlo piu compatto */
.ztemplate_rooms .ztemplate .services .elem .subcontents .zimage { display: none;}
.ztemplate_rooms .ztemplate .services .elem .subcontents { background-color: transparent; padding: 0;}
.service_info { background-color: var(--white); border: 10px solid var(--white); border-bottom: 0;}
.ztemplate_rooms .ztemplate .services .subcontents .caption-alt { padding: 0 5px;}
.ztemplate_rooms .ztemplate .services .subcontents .ztemplate { position: sticky; bottom: 40px; background-color: var(--white); border: 10px solid var(--white); padding: 0px;}
.close_services { position: sticky; width: 100%; border: unset; height: 35px;}
.close_services:before { top: 50%; }
.close_services_btn { border: 10px solid var(--white);}
.service_info { margin-top: -10px;}

/* Servizi Extra */
.services_only #bookingform_summary .guests,
.services_only #bookingform_summary .dates .nights { display:none; }


/* Order */
body.body_ecommerce_order header #varsimple_booknow { display: none;}
#page.order { }
#page.order #content { margin: 60px auto 70px auto; display: flex; justify-content: center; }
#page.order .ztemplate .open_desc_order.g3 .fieldkey { display: flex;}
#page.order .ztemplate .open_desc_order.g3 .fieldvalue { display: none;}
#page.order .ztemplate .open_desc_order.g3 .fieldvalue.fired { display: block;}
#page.order #content .cnt .body,
#page.order #content .cnt .side { margin: 0 50px 0 0; padding: 20px; width: 50%; background-color: rgba(255,255,255,.65); color: var(--grey); border: 1px solid var(--purple); }
#page.order #content .cnt .side { margin: 0; width: 50%; }
#page.order #content .cnt .side #bookingform_summary,
#page.payment #content .cnt .side #bookingform_summary { padding: 0;}
#page.order #cnt_forms { border: unset; }
#page.order #cnt_forms .form_merge_group { padding: 15px 0; min-width: unset}
#page.order .transfer_info { font-size: 100%; color: var(--purple); display: flex; margin-bottom: 20px; align-items: center;}
#page.order .transfer_info:before { color: var(--ocean); font-family: var(--icon);margin-right: 10px; content: '\f1ba'; font-weight: var(--solid); font-size: 100%}
#page.order .group_wrapper { border: 1px dashed var(--ocean); padding: 0 15px 15px 15px;}
.transfer_date { padding: 15px 18px; color: var(--white); background-color: var(--ocean); margin: -1px -16px 0; display: flex; align-items: flex-start; }
.transfer_date:before { font-family: var(--icon); content: '\f0ec'; margin-right: 10px;}
#page.order .group_wrapper .merge_group { padding: 15px 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end;}
body.en .ecommerce form .caption-fields .form_element_title { font-size: calc(var(--mini_base) - 2px);}
#page.order form .caption-fields .group_wrapper .field { width: calc(100% / 3 - 10px); }
#page.order form .caption-fields .group_wrapper .field.element_12 { width: 100%}
#page.order form .caption-fields .group_wrapper .field.textarea { width: 100%; }
#page.order form .caption-fields .transfer { padding: 0!important; margin-bottom: 30px;}
#page.order form .caption-fields .transfer .group_wrapper .field { width: calc(100% / 3 - 10px); }
#page.order form .caption-fields .transfer .group_wrapper .field .current_value { border: 1px solid var(--dark_sand); min-height: 42px;}
#page.order form .caption-fields .transfer .group_wrapper .field.element_12, #page.order form .caption-fields .transfer .group_wrapper .field.element_13 { width: 100%;}
#page.order form .caption-fields .transfer .field.textarea { margin-bottom: 0;}
#page.order form .caption-fields .transfer .merge_group { padding-bottom: 0;}
#page.order #content .title:not(.title_wrapper .title), #page.order #content .side #bookingform_summary .title,
#page.payment #content .title:not(.title_wrapper .title), #page.payment #content .side #bookingform_summary .title { margin: 0 0 0px 0; font-size: var(--medium); font-weight: var(--bold); font-family: var(--sans); text-align: left; text-transform: uppercase; color: var(--purple);}
#page.order #content .side .title:not(.title_wrapper .title) { font-size: var(--average); color: var(--purple); font-weight: var(--light); }
#page.order #content .side .service_title h2.title { font-size: 100% !important; color: var(--dark_grey) !important; font-weight: var(--regular) !important; }
#page.order #content .summary { font-size: 100%; text-align: left; color: var(--dark_grey);}
#page.order #cnt_forms { margin: 20px 0 0 0; padding: 15px; color: var(--dark_grey); text-align: left;}
.ecommerce #cnt_forms .caption-fields .form.field.textarea { width: 100%;}
#order_template_wrapper { margin: 20px 0 0 0; text-align: left;}
#order_template_wrapper .row-1 .caption:not(.subcontents .caption) { justify-content: flex-start; align-items: flex-start; flex-direction: column; margin-top: 0;}
#order_template_wrapper .row-1 .caption { display: flex; justify-content: space-between; margin-top: 15px;}
#order_template_wrapper .row-1 .caption .title:not(.subcontents .title) { order: 2; margin-bottom: 0!important; color: var(--purple)!important; font-weight: var(--light); }
#order_template_wrapper .row-1 .caption-add > div { text-align: right; justify-content: flex-end; font-weight: var(--bold); }
#order_template_wrapper .caption-cnt { display: block; color: var(--purple);  }
#order_template_wrapper .details_wrapper p { font-family: var(--sans)!important; color: var(--grey)!important; font-size: 100%!important; }
#order_template_wrapper .room .title { margin: 0; font-size: 130%; font-family: var(--sans); color: var(--purple);}
#order_template_wrapper .rates { }
#order_template_wrapper .rates .caption-cnt {  }
#order_template_wrapper .rates .title_wrapper { display: flex; flex-direction: column; margin-bottom: 25px;}
#order_template_wrapper .rates .title { font-size: var(--average); }
#order_template_wrapper .rates .zlabel.g24 { margin-top: 0; order: 9;}
#order_template_wrapper .rates .zlabel.g24 .fieldvalue:before { content: '\f7b6'; font-family: var(--icon); font-weight: var(--solid); margin-right: 5px; color: var(--ocean);}
#order_template_wrapper .rates .treatment-room .zlabel.g24 .fieldvalue:before { content: '\f236'; color: var(--ocean);}
#order_template_wrapper .rates .caption-alt { margin-top: 10px}
#order_template_wrapper .ztemplate .elem { margin-bottom: 20px; }
#order_template_wrapper .ztemplate .elem.single { margin-bottom: 0;}
#order_template_wrapper .caption-cnt .fieldvalue.f11 { display: flex; align-items: center; margin-bottom: 5px; border-bottom: 1px dashed rgba(0,0,0,.1); padding-bottom: 5px}
.ztemplate .quantity, .zlabelquantity, .room_count { display: flex; align-items: center; justify-content: center; font-size: 90%; order: 1; margin-right: 8px; text-align: center; color: var(--purple); font-weight: var(--bold); position: relative; }
.ecommerce .room_count { display: flex; align-items: center; justify-content: center; font-size: 90%; order: 1; margin-right: 8px; text-align: center; color: var(--white); font-weight: var(--bold); position: relative; background-color: var(--purple); padding: 5px 8px; }
.ztemplate .quantity:after, .zlabelquantity:after, .room_count:after { content: 'X'; font-size: 100%;}
#order_template_wrapper .caption-cnt .fieldvalue.f11 .date { order: 2; font-size: 90%;}
#order_template_wrapper .caption-cnt .fieldvalue.f11 .name { order: 3; margin-left: auto; margin-right: 30px; font-size: 90%; color: var(--grey);}
#order_template_wrapper .caption-cnt .fieldvalue.f11 .price { order: 4; font-weight: var(--bold); position: relative;  }
#order_template_wrapper .caption-cnt .fieldvalue.f11 .price:before { content: '\20ac'; margin-right: 3px; }
#order_template_wrapper .service_title .title { font-size: 130%; margin-bottom: 0px; padding-bottom: 0px; border-bottom: 1px solid #dedede; font-weight: var(--bold); }
#order_template_wrapper .service_title .room_count { display: none;}
#order_template_wrapper .rates .caption-alt .fieldkey { color: var(--purple); border-bottom: 1px solid rgba(0,0,0,.1); font-size: 100%; padding-bottom: 0px; margin-bottom: 18px; font-weight: var(--bold);}
#order_template_wrapper .row-2 .rates .caption-alt .fieldkey:not(.details_wrapper .fieldkey) { cursor: pointer; color: var(--dark_grey); font-size: 100%; font-weight: var(--regular); display: flex; align-items: center; text-transform: uppercase;}
#order_template_wrapper .row-2 .rates .caption-alt .fieldkey:not(.details_wrapper .fieldkey):before { font-family: var(--icon); font-size: var(--size_base); content: '\f0fe'; margin-right: 3px; font-weight: var(--light);}
#order_template_wrapper .row-2 .rates .caption-alt .fieldkey.fired:not(.details_wrapper .fieldkey):before { content: '\f146'}
.quantity_wrapper { display: flex; align-items: center; margin: 5px 0 0 0}
.quantity_wrapper .zlabelquantity { order: 1}
.quantity_wrapper .title { order: 2}
#order_template_wrapper .details_wrapper.fired { display: block;}
#order_template_wrapper .details_wrapper .zlabel.g6 { display: flex; border-bottom: unset; align-items: center;}
#order_template_wrapper .details_wrapper .zlabel.g6 .fieldkey { border-bottom: unset; margin: 0; padding: 0}
#order_template_wrapper .details_wrapper .zlabel.g6 .fieldkey:after { content: ':'; margin-right: 10px}
#order_template_wrapper .zlabelprice { font-size: 120%; display: flex; align-items: center; color: var(--purple); margin-top: 5px;}
#order_template_wrapper .rate_arrangement { color: var(--ocean);}
#order_template_wrapper .zlabelprice:before,
#order_template_wrapper .zlabel.g6 .fieldvalue:before,
#order_template_wrapper .zlabel.g9 .fieldvalue:before,
#order_template_wrapper .zlabel.g20 .fieldvalue:before { content: '\20ac'; margin-right: 3px; position: relative; top: 0; font-size: 100%;}
#order_template_wrapper .zlabel.g9 .fieldvalue:before { top: 0;}
#order_template_wrapper .zlabel.g20 .fieldvalue:before  { top: 0px;}
#order_template_wrapper .zlabel span.number  { margin: 0 1px 0 0;font-size: 100%;}
#order_template_wrapper .zlabel span.comma { margin: 0; font-size: 100%; position: relative; }
#order_template_wrapper .zlabel span.decimal { font-size: 100%;position: relative; }
#order_template_wrapper .zlabel.g9 { font-size: 70%;}
#order_template_wrapper .zlabel.g20 { margin: 3px auto; font-size: 90%; display: inline-flex; align-items: center; background-color: var(--ocean); text-transform: uppercase; color: var(--white); padding: 5px;}
#order_template_wrapper .zlabel.g20 .fieldkey, #order_template_wrapper .zlabel.g20 .fieldvalue { font-size: 70%;}
#order_template_wrapper .zlabel.g20 .comma, #order_template_wrapper .zlabel.g20 .decimal { }
#order_template_wrapper .zlabel.g8 span.number,
#order_template_wrapper .zlabel.g6 .fieldvalue { color: var(--dark_grey);}
#order_template_wrapper .zlabel.g9 .fieldvalue { font-size: 95%; color: var(--grey);}
#order_template_wrapper .zlabel.g9 .number, #order_template_wrapper .zlabel.g9 .decimal { text-decoration: line-through;}
#order_template_wrapper .zlabel.g20 .fieldvalue { display: flex;align-items: center; margin-left: 5px}
#order_template_wrapper .rates .caption-alt .ztextarea.g2,
#order_template_wrapper .rates .caption-alt .zlabel.g8 { margin-bottom: 10px; line-height: 1.3; }
#order_template_wrapper .details_wrapper .fieldvalue span { font-size: 100%!important;}
#order_template_wrapper .rates .caption-alt .ztextarea.g2 ul, #order_template_wrapper .rates .caption-alt .zlabel.g8 ul,
#order_template_wrapper .rates .caption-alt .ztextarea.g2 ol, #order_template_wrapper .rates .caption-alt .zlabel.g8 ol { padding-left: 15px; }
#order_template_wrapper .rates .caption-alt .ztextarea.g2 ul li, #order_template_wrapper .rates .caption-alt .zlabel.g8 ul li,
#order_template_wrapper .rates .caption-alt .ztextarea.g2 ol li, #order_template_wrapper .rates .caption-alt .zlabel.g8 ol li { margin-bottom: 10px;}
#order_template_wrapper .canc_policy { margin-bottom: 5px}
#total_cost { color: var(--grey); margin-left: auto; margin-right: 40px; text-transform: uppercase; font-size: var(--mini_base); }
.order #total_cost .key {color: var(--white); margin-bottom: 5px;}
.payment #total_cost .key {color: var(--white); margin-bottom: -1px;}
.order #total_cost, .payment #total_cost {margin-left: 0; margin-right: 0;}
#total_upfront, #page.order #total_cost { display: inline-block; line-height: 1; }
#total_upfront { font-size: 295%; margin-right: 20px}
#total_upfront .number:before { content: '\20ac'; margin-right: 2px;}
#total_upfront .comma { margin: 0px 0px 0px 0;  position: relative; }
#total_upfront .decimal {  letter-spacing: -0.5px; position: relative; }
#total_upfront .key { font-size: var(--mini_base); color: var(--grey); font-weight: var(--regular); text-transform: uppercase; }
.order #total_upfront .key, .payment #total_upfront .key {color: var(--white); margin-bottom: 5px;}
.total_wrap { display: flex; align-items: flex-start; margin-top: 25px; padding: 10px 0px 7px 10px; text-align: left; background-color: var(--purple); justify-content: flex-start; gap: 25px; }
.total_wrap .total_amount { margin-right: 15px; }
.total_wrap #total_upfront { color: var(--white); font-weight: var(--bold); font-size: var(--medium);}
#order_template_wrapper .zinput.g3 { display: none;}
form p.privacy label { font-size: var(--mini_base); }
#payment_method { color: var(--dark_grey);}
#bookingform_summary:not(.ecommerce.step #bookingform_summary) .cnt { justify-content: flex-start;}
#bookingform_summary .dates { display: flex; align-items: center;}
#bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates { color: var(--dark_grey); font-size: 90%; font-weight: var(--regular); margin-right: 30px;}
#bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates:before { color: var(--purple); font-weight: var(--regular); font-weight: var(--thin); font-size: 130%; position: relative; }
#bookingform_summary .dates .value:after { font-family: var(--icon); content: '\f105'; margin: 0 10px; font-size: 70%;}
#bookingform_summary .dates .value.last:after { display: none;}
#bookingform_summary .dates .value.last { margin-right: 10px;}
#bookingform_summary .dates .label { display: none;}
#bookingform_summary .dates .nights .label { display: block;}
.dates .nights { gap: 3px; display: flex; text-transform: capitalize;}
/*
.dates .nights:before { content: '('; }
.dates .nights:after { content: ')'; }
*/
#bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests { color: var(--dark_grey); font-size: 90%; font-weight: var(--regular);}
#bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests:before { color: var(--purple); font-weight: var(--thin); font-size: 130%; position: relative; }
.ecommerce.order form .caption-fields .form_select.html_select { padding: 0; border: unset;}
.ecommerce.order form .form.checkbox label { display: flex; align-items: center;}
.city_tax { margin-top: 10px; padding: 10px; text-align: center; font-size: 90%; color: var(--purple);}

form .arrival_time { width: 100%; align-items: flex-end!important; margin-bottom: 10px;}
form .arrival_time .form_merge_add_button { display: none;}
form .arrival_time .merge_group { padding: 0!important; align-items: flex-end;}
form .arrival_time .field { display: flex; flex-direction: column; width: calc(50% - 10px)!important; margin-bottom: 0!important;}
form .arrival_time .field_description { order: 1; display: flex; align-items: center; gap: 5px; align-items: center; margin-bottom: 15px;}
form .arrival_time .field_description p { margin: 0; }
form .arrival_time .field_description:before { font-family: var(--icon); content: '\f017'; color: var(--purple); font-weight: var(--thin);}
form .arrival_time .form_element_title { order: 2; }
form .arrival_time .form_select { order: 3; }


/* Invoice */
.ecommerce #cnt_forms .caption-fields .form.field.element_17 { padding-bottom: 0; width: 100%; margin-bottom: 0; }
#page.order #cnt_forms .form_merge_group.invoice { background-color: var(--white);}
#page.order form .field.element_17 .form_element_title { display: none;}
#page.order form .caption-fields .invoice .field { width: 100%; padding: 0;}
#page.order form .caption-fields .invoice .field:nth-of-type(3),
#page.order form .caption-fields .invoice .field:nth-of-type(4),
#page.order form .caption-fields .invoice .field:nth-of-type(5) { width: calc(100% / 3 - 10px);}
#page.order form .caption-fields .invoice .field:nth-of-type(6),
#page.order form .caption-fields .invoice .field:nth-of-type(7) { width: calc(100% / 2 - 10px); margin-bottom: 0;}
#page.order form .caption-fields .invoice .merge_group { padding-bottom: 0;}
#page.order form .caption-fields .invoice .merge_group .autocomplete_select:before { position: absolute; content: ''; top: 50%; margin-top: -2px; right: 6px; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #555; z-index: 2;}
.ecommerce.order form .caption-fields .form_select.html_select:after { position: absolute; content: ''; top: 50%; margin-top: -2px; right: 6px; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #555; z-index: 2;}
.ecommerce form .form_select .current_value:after {display: none;}
.smartphone #page.order form .caption-fields .invoice .field:nth-of-type(3),
.smartphone #page.order form .caption-fields .invoice .field:nth-of-type(4),
.smartphone #page.order form .caption-fields .invoice .field:nth-of-type(5),
.smartphone #page.order form .caption-fields .invoice .field:nth-of-type(6),
.smartphone #page.order form .caption-fields .invoice .field:nth-of-type(7) { width: 100%;}


/* fix form privacy */
#showprivacy .privacy_field .show_privacy a { color: var(--purple); text-decoration: underline!important;}

/* date + numero notti nello step footer (riepilogo prenotazione) */
#cart_summary_wrapper .dates { display: flex; align-items: center; margin: 10px 0 0;}
#cart_summary_wrapper:not(.ecommerce.step #bookingform_summary) .dates { color: var(--dark_grey); font-size: 80%; font-weight: var(--medium); }
#cart_summary_wrapper:not(.ecommerce.step #bookingform_summary) .dates .label { display: none;}
#cart_summary_wrapper:not(.ecommerce.step #bookingform_summary) .dates .nights .label { display: block;}
#cart_summary_wrapper .dates:before { font-family: var(--icon); content: '\e0d6'; margin-right: 4px; font-size: var(--mini_base);  }
#cart_summary_wrapper:not(.ecommerce.step #bookingform_summary) .dates:before { color: var(--purple); font-weight: var(--thin); margin-left: 5px;}
#cart_summary_wrapper .dates .value:after { font-family: var(--icon); content: '\f105'; margin: 0 5px; font-size: 70%}
#cart_summary_wrapper .dates .nights .value:after { display: none; }
#cart_summary_wrapper .dates .value.last:after { display: none;}
#cart_summary_wrapper .dates .value.last { margin-right: 10px;}

/* BEI - Cross Hotels */
.cross_property_wrapper { max-width: 1024px; width: 100%; margin: 30px auto;}
.cross_property_msg { text-align: center; margin-bottom: 40px;}
.cross_property_element { background-color: var(--white); box-shadow: 0 2px 6px 0 rgba(0,0,0,0.05); margin-bottom: 40px;}
.cross_property_element .element-cnt { display: flex; align-items: center;}
.cross_property_element .photo_wrapper { width: 40%; padding: 15px;}
.cross_property_element .photo_wrapper img { min-height: 250px; object-fit: cover;}
.cross_property_element .info_wrapper { padding: 30px 45px 30px 30px; font-size: 110%; width: 60%; text-align: left;}
.cp_name { font-weight: bold; font-size: 130%; color: var(--ocean); font-family: var(--sans);}
.cp_hotel_info { margin-bottom: 15px;}
.cp_address { margin-bottom: 20px;}
.cp_address:before { font-family: var(--icon); content:'\f3c5'; font-weight: var(--solid); margin-right: 5px; color: var(--ocean);}
.cp_description { width: 100%;}
.cp_link { margin-top: 5px;}
.cp_link a { display: inline-block; text-align: center; background-color: var(--ocean); color: var(--white); font-family: var(--sans); padding: 15px; text-transform: uppercase; font-size: 90%;}
.cp_price_ctn { display: flex; align-items: center; justify-content: space-between; border-top: 1px dashed #dedede; padding: 10px 0; margin-top: 10px;}
.cp_min_price { display: flex; flex-direction: column; font-size: 90%;}
.cp_min_price span { font-weight: var(--bold); color: var(--ocean); font-size: 150%; margin-top: 3px;}
.cp_min_price span:before { content: '\20ac';}
.cp_rating { display: flex; align-items: center;}
.cp_star { margin-right: 2px;}
.cp_star:before { font-family: var(--icon); font-weight: var(--solid); content: '\f005'; color: #e9ac24; font-size: 10px;}
@media (max-width: 640px) {
    .cross_property_element .element-cnt { flex-direction: column;}
    .cross_property_element .photo_wrapper { width: 100%; padding: 0;}
    .cross_property_element .info_wrapper { width: 100%; padding: 15px;}
    .cp_price_ctn { flex-direction: column; align-items: flex-start;}
    .cp_link { width: 100%;}
    .cp_link a { display: block;}
}


/* Configurazione per RWD */
/* Generic Mobile Devic Tablet */





@media (max-width: 1280px) {
    .section#offers .ztemplate_model_11.slick_off .ztemplate .row .box .elem { margin: 15px; width: calc(100% / 2 - 30px);}
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { max-width: 335px;}
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { padding-left: 345px;}
    .ztemplate_rooms .subcontents { padding-left: 345px;}

}

@media (max-width: 1140px) {
	#page.order #content .cnt, #page.payment #content .cnt { display: flex; flex-direction: column;}
	#page.order #content .cnt .body, #page.order #content .cnt .side,
	#page.payment #content .cnt .body, #page.payment #content .cnt .side  { width: 100%}
	#page.order #cnt_forms .form_merge_group { width: 100%}
}

@media (max-width: 1120px) {
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { max-width: 215px;}
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { padding-left: 225px;}
    .ztemplate_rooms .subcontents { padding-left: 225px;}
    .photo.open_detail { border: 0;  position: relative; top: 0; transform: unset; height: auto; width: 100%; left: 0; padding: 15px; background-color: var(--red); margin-top: 10px; text-transform: uppercase; font-family: var(--sans); font-size: var(--mini_base); font-weight: var(--bold); }
    .photo.open_detail:before { display: none;}
    .photo.open_detail .fieldkey { margin: 0;}
    .ztemplate_rooms .elem .caption:hover .photo.open_detail { width: 100%; height: auto; }
}

@media (max-width: 1023px){

	.immersive_be form .caption-fields .b_mask { width: calc(100% - 30px); margin-bottom: 80px;}
	.immersive_be form .caption-fields .field.text { width: calc(100% - 30px); }
	.immersive_be form .caption-fields .field.text input { margin-left: 25px; width: 100%;}
	.immersive_be form .caption-fields input[type="submit"] { display: block; margin: 30px auto 0; width: 100%; max-width: 320px;}
	.immersive_be form .edit_reservation { width: 100%; text-align: center;}

	/* risultati camere */
	.ztemplate_rooms .subcontents .caption-cnt .caption,
	.ztemplate_rooms .subcontents .caption-cnt .caption-alt { width: calc(100% / 2)}
	.ztemplate_rooms .subcontents .caption-cnt .caption-add { width: calc(100% / 4)}
	.ztemplate_rooms .subcontents .caption-cnt { display: flex;}
	.ztemplate_rooms .subcontents .rate-group-header.open > div { display: none}
	.ztemplate_rooms .subcontents .rate-group-header.open .rate-group-title, .ztemplate_rooms .subcontents .rate-group-header .rate-group-title { display: block; padding: 10px; width: 100%}
	.ztemplate_rooms .subcontents .rate-group-header:before { display: none;}
	.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { flex-direction: column; }
	.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { width: 100%;}
	.ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { width: 100%; padding: 15px;}
	.ztemplate_rooms .caption:not(.subcontents .caption) { width: 100%; }
	.rate-group-content { display: block!important;}
	.ecommerce .ztemplate_model_7 .zlabel.g16 { right: 30px;}
	.ecommerce .ztemplate_model_7 .zsimplebutton { right: 0;}
}

@media (max-width: 820px){
	.edit_search .summary { flex-wrap: wrap; }
	.edit_search .varsimple { width: 100%; margin-top: 15px; text-align: center;}
	.purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate), .services_only .purchase_flow_step .ztemplate:not(.subcontents .ztemplate) { margin-top: 0;}
	.purchase_flow_step.purchase_flow_3_step .ztemplate .row:not(.subcontents .row), .services_only .purchase_flow_step .ztemplate .row:not(.subcontents .row) { margin-left: 0;}
	.ztemplate_rooms .elem { margin: 15px auto 40px;}
	#page.order #content #bookingform_summary .cnt { flex-direction: row; justify-content: flex-start;}
	#bookingform_summary .dates { margin-right: 20px;}
	.ecommerce .ztemplate_model_7.carousel_photos .ztemplate .elem .caption-cnt img { height: 440px; object-fit: cover;}
	.ecommerce .ztemplate_model_7 .caption-add .title { top: inherit; bottom: 60px; width: 50%;}
	.ecommerce .ztemplate_model_7 .caption-alt { width: 100%;}
	.ecommerce .ztemplate_model_7 .caption-add { width: 100%; order: 3; justify-content: flex-start; position: relative;}
    .section#offers .ztemplate_model_11.slick_off .ztemplate .row .box .elem { margin: 15px 0; width: 100%;}
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { padding-left: 0; display: flex; flex-direction: row;}
    .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { position: relative; margin-right: 10px;}
    .ztemplate_rooms .subcontents { padding-left: 0;}

}

@media (max-width: 767px) {
    .template_detail_wrapper .ztemplate.room_detail .row .box .elem .caption-cnt { background-color: transparent; }
    .step_footer { width: 100%; }
    .ztemplate_rooms .step_content_wrapper { padding: 0;}
    .ecommerce #cnt_forms .caption-fields .form.field, #page.order form .caption-fields .invoice .field:nth-of-type(3), #page.order form .caption-fields .invoice .field:nth-of-type(4), #page.order form .caption-fields .invoice .field:nth-of-type(5),
    #page.order form .caption-fields .invoice .field:nth-of-type(6), #page.order form .caption-fields .invoice .field:nth-of-type(7) { width: 100%; margin-bottom: 20px;}
    .ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt { background-color: var(--white);}
    .ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztemplate.rate_detail .row .box .elem { padding: 15px;}
    .ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztemplate .row .box .elem .caption-cnt { padding: 0;}
    .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate),
    .services_only .purchase_flow_step .ztemplate:not(.subcontents .ztemplate) { flex-wrap: wrap; flex-direction: column;}
    .purchase_flow_step .template_filter { width: 100%;}
}




/* SMARTPHONE */
.smartphone .immersive_be .guests_desc { }
.smartphone .immersive_be form .caption-fields .b_mask .b_mask_guests .form_element_title {  }
.smartphone .immersive_be .form_cnt form .caption-fields .form { margin-bottom: 0;}
.smartphone .immersive_be form .caption-fields .b_mask { margin-left: 0; width: 100%; margin-bottom: 0;}
.smartphone .immersive_be form .caption-fields .b_mask.fired:before { content: ''; position: fixed; top: 0; left: 0; height: 100%; width: 100%; background-color: rgba(0,0,0,.8); z-index: 8; }
.smartphone .immersive_be form .caption-fields .b_mask .field.text:before { display: none;}
.smartphone .immersive_be form .caption-fields .b_mask .field.text { margin-left: 0; width: 100%; background-color: transparent; }
.smartphone .immersive_be form .caption-fields .b_mask .field.text input { margin-left: 0; width: 100%; padding: 20px; height: auto; font-size: 100%; letter-spacing: 0;}
.smartphone .immersive_be form .caption-fields .b_mask .field.text:after { font-size: 130%;}
.smartphone .immersive_be form .caption-fields .field.date { width: calc( 50% - 18px);}
.smartphone .immersive_be form .caption-fields .field.text { margin-left: 0; width: calc(100% - 35px); margin-bottom: 0; }
.smartphone .immersive_be form .caption-fields .field.text input { margin-left: 0; padding: 20px; height: auto;}
.smartphone .immersive_be form .merge_group { flex-wrap: wrap; }
.smartphone #booking_mask_sidebar form .caption-fields .b_mask .guests_wrapper .field { padding: 10px;}
.smartphone .immersive_be form .group_title { width: 100%; margin: 0; border-bottom: 2px solid var(--white); display: block; padding-top: 12px; text-align: center;}
.smartphone .immersive_be form .form_merge_rem_button { height: 33px; width: 33px; background-color: transparent; }
.smartphone .immersive_be form .group_title:before { font-size: 85%; color: var(--white);}
.smartphone .immersive_be .guests_wrapper .add_btn, .smartphone .immersive_be .guests_wrapper .rem_btn { height: auto;}
.smartphone .immersive_be form .guests_wrapper .form_merge_group .form.field.select_wrap { width: calc(100% / 2 - 10px); margin: 5px;}
.smartphone .immersive_be form .caption-fields .form.field.select .form_select .current_value:before { display: none;}
.smartphone .immersive_be form .guests_wrapper .form_select { }
.smartphone .immersive_be form .guests_wrapper .form_select .current_value { padding: 0; }
.smartphone .immersive_be form .merge_group { padding: 0; }
.smartphone .fc-calendar .fc-row > div { width: calc(100%/7); float: left; height: 50px; padding-top: 3px;}
.smartphone .fc-calendar .fc-row > div > span.fc-weekday { display: none; }
.smartphone #booking_mask_sidebar form input[type="submit"] { margin: 15px 0; }
.smartphone .calendar_wrapper .fc-calendar .fc-row .day-content { right: 0;}
.smartphone .b_mask { padding: 0;}
.smartphone .template_calendar { /* left: 5px; width: calc(100% - 10px); */ top: -30px;}
.smartphone .overlay.fired { z-index: 99;}
.smartphone .ecommerce { padding: 0 8px; }
.smartphone .pf_step_button { font-size: var(--mini_base); width: 100%;}
.smartphone .rate-group-header { pointer-events: none}
.smartphone .ztemplate_rooms .zlabel.g12 { width: 100%; }
.smartphone .ztemplate_rooms .zinput.g1.text .fieldvalue { font-size: 120%}
.smartphone .ztemplate_rooms .subcontents .rate-group-header.open { }
.smartphone .ztemplate_rooms .subcontents .rate-group-header p { margin-bottom: 0;}
.smartphone .ztemplate_rooms .subcontents .rate-group-header.open > div { text-align: center}
.smartphone .ztemplate_rooms .subcontents .caption-cnt { flex-wrap: wrap;}
.smartphone .ztemplate_rooms .subcontents .title { text-transform: uppercase; line-height: 1; margin-bottom: 5px;}
.smartphone .ztemplate_rooms .subcontents .elem .zlabel { font-size: 100%;  }
.smartphone .ztemplate_rooms .subcontents .elem .zlabel.g25 .fieldvalue { font-size: 80%;}
.smartphone .ztemplate_rooms .subcontents .elem .zlabel ul, .smartphone .ztemplate_rooms .subcontents .elem .zlabel ol { padding-left: 5px;}
.smartphone .ztemplate_rooms .subcontents .elem .zlabel ul li, .smartphone .ztemplate_rooms .subcontents .elem .zlabel ol li { margin-bottom: 10px;}
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-add:not(#cart_detail .subcontents .caption-add) { font-size: 110%; width: 100%; flex-direction: column; align-items: center; background-color: var(--grey); color: var(--white); margin-bottom: 0; margin-top: 0; }
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-add:not(#cart_detail .subcontents .caption-add):last-of-type { background-color: var(--ice); border-radius: 5px; border: none;}
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-alt { border-right: unset; font-size: var(--font-size-little);}
.smartphone .ztemplate_rooms .subcontents .elem:nth-child(odd) { }
.smartphone .ztemplate_rooms .subcontents .elem { margin: 0 auto 40px; overflow: hidden; font-size: 100%; padding-top: 10px;}
.smartphone .ztemplate_rooms .subcontents .zlabelprice:not(#cart_detail .zlabelprice), .smartphone .ztemplate_rooms .subcontents .zlabel.g9 { width: auto; margin-bottom: 0; color: var(--white); position: relative; top: 10px;}
.smartphone .ztemplate_rooms .subcontents .zlabel.g9 { margin-right: 10px; font-size: 55%; }
.smartphone .ztemplate_rooms .subcontents .zlabel.g6 .fieldvalue { }
.smartphone .ztemplate_rooms .subcontents .zlabel.g20 { width: 100%; border-radius: 2px; font-size: 100%;}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_content:not(.services .subcontents .prod_sel_content) { font-size: 120%; position: relative; top: 0;}
.smartphone .ztemplate_rooms .caption-alt { position: relative; width: 100%; max-width: unset; background-color: var(--white); padding: 15px; }
.smartphone .ztemplate_model_7 .caption-add { padding: 10px; border-bottom: unset; }
.smartphone .ecommerce .ztemplate_model_7 { margin: 0 auto;}
.smartphone .ztemplate_rooms .caption-alt { color: var(--dark_grey);}
.smartphone .ecommerce .ztemplate_model_7 .caption-add .title { color: var(--purple); font-size: var(--font-size-medium); position: inherit; bottom: 0; top: inherit; width: 100%;}
.smartphone .ecommerce .ztemplate_model_7 .zlabel.g16 { position: inherit; bottom: 0; right: inherit; margin-bottom: 10px;}
.smartphone .ecommerce .ztemplate_model_7 .zlabel.g16 .fieldvalue { font-size: var(--font-size-medium); color: var(--purple);}
.smartphone .ecommerce .ztemplate_model_7 .zlabel.g16 .fieldvalue:before { font-size: var(--font-size-little); }
.smartphone .ecommerce .ztemplate_model_7 .zlabel.g16 .fieldkey { top: 5px; font-size: var(--font-size-mini);}
.smartphone .ztemplate_rooms .subcontents { padding: 0px;}
.smartphone .ecommerce .ztemplate_model_7 .zsimplebutton { position: relative; top: 0; right: 0; text-align: center; border-radius: 0; }
.smartphone .ecommerce .ztemplate_model_7 .zsimplebutton.open { background-color: var(--ocean);}
.smartphone .ztemplate_rooms .zinput.g13 { display: none;}
.smartphone .ztemplate_rooms img { height: auto}
.smartphone .step_footer { padding: 0; left: 0;}
.smartphone .step_footer_wrap { flex-wrap: wrap; padding: 10px; justify-content: center;}
.smartphone .cart_btn .varsimple{ display: none}
.smartphone .total_price_title { margin-left: 0; padding: 15px 0}
.smartphone .step_footer_wrap .cart_detail_wrapper { width: 100%}
.smartphone .total_amount { font-size: 160%; top: 0; }
.smartphone .step_footer_wrap #cart_detail .subcontents .elem .caption-cnt:not(.service_title .caption-cnt) { padding: 6px 0;}
.smartphone .ztemplate_rooms .step_footer_wrap #cart_detail .subcontents .elem { border: unset;}
.smartphone .step_footer_wrap #cart_detail { opacity: 1; width: 100%; left:0; font-size: 130%; border-top-left-radius: 3px; bottom: -100vh; border-top-right-radius: 3px; transform: scale(1); border: unset; box-shadow: 0 0 20px rgb(0 0 0 / 50%); max-height: 90vh; padding-bottom: 40px}
.smartphone .step_footer_wrap #cart_detail.fired { bottom: -76px}
.smartphone .step_footer_wrap #cart_detail .close_btn { width: 34px; border-radius: 100%; top: 5px; margin: 0 10px 0 auto; left: inherit; z-index: 9; position: absolute; }
.smartphone .step_footer_wrap #cart_detail .close_btn:before, .smartphone .step_footer_wrap #cart_detail .close_btn:after { background-color: var(--white);}
.smartphone .ztemplate_rooms #cart_detail .elem { margin: 10px 0 0; font-size: 85%;}
.smartphone .ztemplate_rooms #cart_detail .subcontents .elem { box-shadow: unset; border-radius: 0; margin: 0 auto}
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { border-radius: unset;}
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { text-align: left; padding: 10px; display: flex; flex-wrap: wrap; background-color: transparent; width: 100%; }
.ztemplate_rooms .zlabel.g13 { width: 100%;}
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt .fieldvalue:before,
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt > :before  { color: var(--ocean); }
.smartphone .ztemplate_rooms .caption:not(.subcontents .caption) { width: 100%; border-radius: unset;}
.smartphone .edit_search .varsimple { margin-top: 15px!important; border-radius: 0; padding: 15px!important;}
.smartphone #bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates:before { font-size: 15px;}
.smartphone #bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests:before { font-size: 15px;}
.smartphone .step_footer_wrap .total_price_title { padding: 0; font-size: 55%; position: relative; top: -4px;}
.smartphone .step_footer_total_wrap { margin: 0; padding-bottom: 5px;}
.smartphone .ztemplate_rooms .rooms .caption-alt > .zsimplebutton { border-radius: 3px; display: none; font-size: var(--mini_base); float: none; clear: both;}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap { margin-top: 0px;}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap span:before { font-size: 150%; color: var(--ocean);}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap span { position: relative; z-index: 1;}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap span:after { display: none;}
.smartphone .ztemplate_rooms .subcontents .ztemplate { box-shadow: unset; border-radius: unset; padding: 0;}
.smartphone .ztemplate_rooms .ztemplate .services .caption { display: flex; flex-direction: column}
.smartphone .ztemplate_rooms .ztemplate .services .zimage { order: 1}
.smartphone .ztemplate_rooms .ztemplate .services .service_desc { position: relative; background-color: var(--purple); padding: 15px 10px 15px; order: 2; }
.smartphone .ztemplate_rooms .ztemplate .subcontents .service_info .service_desc { background-color: transparent; padding-bottom: 5px; }
.smartphone .ztemplate_rooms .ztemplate .services .elem.selected { border: 5px solid var(--purple); box-sizing: border-box; }
.smartphone .ztemplate_rooms .ztemplate .services .elem.selected .caption:not(.subcontents .caption):after { color: var(--ocean); }
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .service_info .title,
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .ztextarea.g2 { color: var(--purple); padding-bottom: 0; margin: 0}
.smartphone .ztemplate_rooms .ztemplate .services .service_info .service_desc .zlabel.g6 { color: var(--purple); align-items: flex-start;}
.smartphone .ztemplate_rooms .ztemplate .services .service_info .service_desc .zlabel.g6 .fieldvalue { color: var(--purple); font-size: 120%}
.smartphone .cart_btn {  }
.smartphone .cart_btn:after { left: 20px; bottom: 6px;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents { width: 100%; height: calc(100vh - 100px); bottom: calc( -100vh); top: inherit; right: 0}
.smartphone .ztemplate_rooms .ztemplate .services .elem.fired .subcontents { bottom: 0;}
.smartphone .close_services_btn { border-radius: 0; font-size: var(--mini_base); }
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .elem { margin: 10px 0 30px}
.smartphone .ztemplate_rooms .ztemplate .services .day_name,
.smartphone .ztemplate_rooms .ztemplate .services .month_name { display: none;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .month { display: block;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .month:before { content: '/'}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .month:after { content: '/'}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selection_date .fieldvalue > div { margin: 0}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption .title { margin-right: 36px; text-transform: inherit; font-size: 80%;}
.smartphone .ztemplate_rooms .ztemplate .services .elem .caption-cnt img { height: 250px; border-radius: unset; opacity: 1;}
.smartphone .ztemplate_rooms .service_info img { height: 250px; }
.smartphone .ztemplate_rooms .ztemplate .services .zlabel.g8:not(.subcontents .zlabel.g8) { }
.smartphone .ztemplate_rooms .ztemplate .services .selected .zlabel.g8:not(.subcontents .zlabel.g8) { border-radius: unset; background-color: var(--purple);}
.smartphone .ztemplate_rooms .subcontents img { border-radius: 3px }
.smartphone .ztemplate_rooms .ztemplate .services .elem.selected .caption-cnt img { border-radius: unset}
.smartphone #page.order #content .cnt .body, .smartphone #page.order #content .cnt .side,
.smartphone #page.payment #content .cnt .body, .smartphone #page.payment #content .cnt .side { width: 100%; padding: 15px; margin-top: 30px;}
.smartphone #page.order #content, .smartphone #page.payment #content { padding: 0; margin-top: 0px;}
.smartphone form .caption-fields .field { padding: 0 10px; margin-bottom: 20px}
.smartphone #page.order #content .cnt { display: flex; flex-direction: column}
.smartphone #page.order #content .cnt .body { order: 2; padding: 10px 0; }
.smartphone #page.order #content .cnt .side { order: 1; padding: 0; margin-top: 0; }
.smartphone #bookingform_summary { text-align: center; padding: 10px; border-radius: 0; margin: 20px 0 0; }
.smartphone #bookingform_summary .dates, .smartphone #bookingform_summary .guests { width: 100%; justify-content: center; margin-top: 5px; margin-right: 0!important; margin-bottom: 0; font-size: var(--mini_base)!important; }
.smartphone #total_upfront { font-size: 119%; }
.smartphone #total_upfront .key { margin-bottom: 0; margin-top: 0;}
.smartphone #total_cost { margin-left: 0; }
.smartphone .total_wrap { justify-content: center}
.smartphone #page.order #content .cnt .body .title,.smartphone #page.payment #content .cnt .body .title, .smartphone #page.payment #content .summary { text-align: center; margin-bottom: 15px; font-size: 170%;}
.smartphone #cnt_forms form input[type="submit"] { width: calc(100% - 0px); margin: 20px auto 0; display: block;}
.smartphone #nexi-payment-form .nexi-owner-name, .smartphone #nexi-payment-form .nexi-owner-surname, .smartphone #nexi-payment-form .nexi-owner-email, .smartphone #nexi-payment-form > div { width: 100%; margin: 10px 0 20px; float: none; }
.smartphone #pagaBtn, .smartphone .bank_transfer_payment input#bank_transfer_payment { width: 100%; margin: 0;}
.smartphone .info_test_payment { margin: 0; font-size: 85%;}
.smartphone .thankyou .section_title { margin-bottom: 30px}
.smartphone .template_filters .filter_key {  display: block}
.smartphone .template_filters .form_checkbox .checkbox .value { font-size: 90%;}
.smartphone .template_filters .form_checkbox .checkbox:last-of-type { margin-bottom: 0; padding-bottom: 0; border-bottom: unset;}
.smartphone .transfer_date { margin: 0}
.smartphone #page.order form .caption-fields .group_wrapper .field.element_14 { width: 50%; padding-right: 10px}
.smartphone #page.order form .caption-fields .group_wrapper .field.element_15 { width: 50%; padding-left: 10px}
.smartphone .ztemplate_rooms .elem { /* width: 100%; */ }
.smartphone .ztemplate_rooms button:before { font-size: 25px;}
.smartphone .ztemplate_rooms button.slick-next { left: unset;}
.smartphone .ztemplate_rooms .subcontents .elem.highlighted { background-color: var(--light_secondary-alt);}
.smartphone .ztemplate_rooms .subcontents .elem.highlighted .title { padding: 10px;}
.smartphone .ztemplate_rooms .subcontents .elem.highlighted .caption-cnt { padding-top: 55px; border-bottom: unset; border: 2px solid var(--purple);}
.smartphone .ztemplate_rooms .box.rooms .zlabel.g10:not(.ztemplate_rooms .box.rates .zlabel.g10) { margin-bottom: 15px;}
.smartphone .immersive_be form .caption-fields input[type="submit"] { max-width: unset; }
/* custom */
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .price_per_day { font-size: 100%; }
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption .services_label { font-size: 80%;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .ztextarea.g2 { font-size: 140%; padding: 0; }
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .service_info .title { margin-bottom: 10px!important; text-transform: inherit; font-size: 150%; color: var(--ocean); margin-top: 15px;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .caption-cnt .caption { font-size: 75%;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .zlabel.g6 .fieldvalue { line-height: 1;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper .selection_date { font-size: 100%;}
.smartphone #page.order #content .cnt .body, .smartphone #page.order #content .cnt .side { border: unset;}
/*
.smartphone #page .heading .title, .smartphone #showcase .heading .title,
.smartphone #page .heading .summary, .smartphone #showcase .heading .summary { font-size: 110%; }
*/
.smartphone .heading .title { font-size: 2.5em;}
.smartphone .ztemplate_rooms.list { background-color: var(--white); padding-bottom: 30px}
.smartphone .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate) { margin-bottom: 0}
.smartphone .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate),
.smartphone .services_only .purchase_flow_step .ztemplate:not(.subcontents .ztemplate) { padding: 0; flex-direction: column; width: 100%;}
.smartphone .purchase_flow_step.purchase_flow_3_step#pf_3_step_2 .ztemplate .row:not(.subcontents .row),
.smartphone .services_only .purchase_flow_step .ztemplate .row:not(.subcontents .row) { margin: 0; width: 100%;}
.smartphone .ztemplate_rooms .rooms .caption-alt > .title { font-size: 212%; width: 100%; text-align: center;}
.smartphone .ztemplate_rooms .rooms .caption-alt > .ztextarea { width: 100%;}
.smartphone .ztemplate_rooms .rooms .zlabel.g15 { float: none;}
.smartphone .ztemplate_rooms .rooms .caption-alt > .zlabel.g15 .fieldkey { color: var(--white);}
.smartphone .ztemplate_rooms .rooms .caption-alt .zlabel.g15 .fieldvalue { color: var(--white);}
.smartphone .ztemplate_rooms .elem { margin: 0 auto 40px; overflow: hidden; /*background-color: var(--white);*/}
.smartphone .ztemplate_rooms .elem:last-of-type { margin-bottom: 0;}
.smartphone .edit_search .summary_title { padding: 0}
.smartphone .ztemplate_rooms .subcontents .ztextarea.g2 .fieldkey { font-size: 53%;}
.smartphone .ztemplate_rooms .subcontents .zlabel .fieldkey { font-size: 80%; }
.smartphone .ztemplate_rooms .subcontents .zlabel.g25 .fieldkey { }
.smartphone .canc_policy.fired .canc_policy_text, .smartphone .payment_policy.fired .payment_policy_text { font-size: 100%;}
.smartphone .ztemplate_rooms .subcontents .ztextarea.g2 .fieldvalue, .smartphone .ztemplate_rooms .subcontents .ztextarea.g2 .fieldvalue { font-size: 60%!important; line-height: 1;}
.smartphone .prepaid_detail { flex-wrap: wrap; }
.smartphone .canc_policy_label, .smartphone .payment_policy_label { }
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-alt .payment_policy_label { font-size: 90%;}
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-alt .canc_policy_label{ font-size: 90%; }
.smartphone .ztemplate_rooms .subcontents .zlabel.condition_detail { width: 100%; margin-bottom: 15px; display: block; }
.smartphone .ztemplate_rooms .subcontents .zlabel.condition_detail .fieldkey { text-align: center; padding: 10px; font-size: 70%;}
.smartphone .ztemplate_rooms .subcontents .zlabel.g20 { margin-top: 10px; flex-direction: row;}
.smartphone .ztemplate_rooms .subcontents .zlabel.g20 .fieldkey, .smartphone .ztemplate_rooms .subcontents .zlabel.g20 .fieldvalue { }
.smartphone .step_footer_wrap #cart_detail > .box_heading { width: 100%; margin-bottom: 0; font-size: 55%; padding: 18px 10px 12px; height: 45px; color: var(--white);}
.smartphone #cart_summary_wrapper:not(.ecommerce.step #bookingform_summary) .dates { font-size: 60%;}
.smartphone .step_footer_wrap #cart_detail .zlabelquantity { flex-direction: row; line-height: 1.6; padding: 2px 6px; }
.smartphone .step_footer_wrap #cart_detail .subcontents .caption-cnt .caption { width: 100%;}
.smartphone .ztemplate_rooms .step_footer_wrap #cart_detail .subcontents .zlabel.g9 .fieldvalue { color: var(--white); position: relative; top: 4px;}
.smartphone .ztemplate_rooms .step_footer_wrap #cart_detail .subcontents .zlabel.g9 { top: 0;}
.smartphone .step_footer_wrap #cart_detail .subcontents .caption-add { width: 100%!important; margin-top: 5px; justify-content: flex-end; padding-left: 33px; background-color: var(--ocean); padding: 10px; border-radius: 0; display: flex; align-items: center;}
.smartphone .step_footer_wrap #cart_detail .service_title .subcontents .caption-cnt .caption { width: 100%; }
.smartphone .step_footer_wrap #cart_detail .ztemplate .title:not(.subcontents .title) { padding: 10px 5px 5px 0px; color: var(--purple);}
.smartphone .step_footer_wrap #cart_detail .zlabel.g11 .name {  }
.smartphone .ztemplate_rooms .ztemplate .services .elem { width: 100%; margin: 0 0 30px; border-color: var(--white); height: auto;}
.smartphone  .ztemplate_rooms .ztemplate .services .elem .caption-alt:not(.subcontents .caption-alt) { position: relative; bottom: 0; background-color: var(--ice); color: var(--grey); font-size: 85%; padding: 0;}
.smartphone .ztemplate_rooms .ztemplate .services .elem .caption-alt:not(.subcontents .caption-alt) .title { padding: 10px; margin-bottom: 0!important; text-align: center;}
.smartphone .ztemplate_rooms .ztemplate .services .elem:hover .caption-cnt img { transform: unset; opacity: 1; filter: unset;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .caption-alt { background-color: var(--white);}
.smartphone .ztemplate_rooms .subcontents .product_selection_wrap .prod_sel_content { font-size: 120%; }
.smartphone .step_footer_wrap #cart_detail .zlabel.g11 .date,
.smartphone .step_footer_wrap #cart_detail .zlabel.g11 .name { font-size: 80%;}
.smartphone .step_footer_wrap #cart_detail .zlabel.g11 .price { font-size: 100%;}
.smartphone .step_footer_wrap #cart_detail .subcontents .zlabel.g24 .fieldvalue { font-size: 100%;}
.smartphone .step_footer_wrap #cart_detail .subcontents .zlabelprice .fieldvalue { font-size: 150%; justify-content: flex-end; color: var(--white);}
.smartphone #cnt_forms form .form_element_title { }
.smartphone #page.payment #content .side .title:not(.title_wrapper .title) { /* font-weight: var(--bold); text-align: left; */}
.smartphone #page.payment #content .title:not(.title_wrapper .title),
.smartphone #page.payment #content .side #bookingform_summary .title { font-size: 1.3em;}
.smartphone.body_ecommerce_payment #bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates,
.smartphone.body_ecommerce_payment #bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests { font-size: 60%;}
.smartphone #bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates { font-size: var(--mini_base); margin-right: 0!important;}
.smartphone.body_ecommerce_thank_you #page .heading.colour { }
.smartphone #page.thankyou .title:after { color: var(--purple);}
.smartphone #page.thankyou #content { top: 0; margin: 0 auto 0; padding-top: 30px; box-shadow: unset; }
.smartphone #page.thankyou #content:before { background-color: var(--purple);}
.smartphone #page.order #content .title:not(.title_wrapper .title),
.smartphone #page.order #content .side #bookingform_summary .title { font-size: 1.3em; color: var(--purple); text-align: left;}
.smartphone #page.order #content .cnt .body #varsimple_order_form_title { text-align: center!important; }
.smartphone #order_template_wrapper .service_title .caption:not(.subcontents .caption) .title:before { font-weight: var(--light); }
.smartphone #order_template_wrapper .service_title .caption:not(.subcontents .caption) .price { position: relative; top: 0;}
.smartphone .city_tax { font-size: 75%;}
.smartphone #page.order #cnt_forms { padding: 15px; }
.smartphone #page.order #content .summary { text-align: center;}
.smartphone #order_template_wrapper .zlabel.g20 { font-size: 80%; }
.smartphone form .newsletter { padding-left: 10px;}
.smartphone .ztemplate_rooms.list .template_filter { padding: 15px 0; margin-bottom: 0; margin-top: 0; width: 100%; position: inherit; background-color: var(--white);}
.smartphone .ztemplate_rooms.list .template_filters { padding-top: 0; width: 100%; margin-right: 0; position: inherit;}
.smartphone .ztemplate_rooms .step_content_wrapper { padding: 0;}
.smartphone .ztemplate_rooms.list .template_filters .html_select { background-color: var(--ice); }
.smartphone .ztemplate_rooms .ztemplate .services .elem .caption-cnt:not(.subcontents .caption-cnt) { background-color: var(--white); color: var(--grey);}
.smartphone .ztemplate_rooms .ztemplate .services .elem .caption-cnt:not(.subcontents .caption-cnt) .title { color: var(--white); background-color: var(--ocean); font-size: 200%; font-weight: var(--light); }
.smartphone #page.step.services_only .ztemplate_rooms.list { padding-bottom: 0; }
.smartphone #page.order #content #bookingform_summary .cnt { /* flex-direction: column */}
.smartphone .purchase_flow_step .product_selection_wrap .prod_sel_add, .smartphone .purchase_flow_step .product_selection_wrap .prod_sel_rem { font-size: 65%;}
.smartphone #page.order form .caption-fields .group_wrapper .field.element_11 { width: 100%;}
.smartphone #page.order .transfer_info { color: var(--purple); padding: 10px;}
.smartphone #order_template_wrapper .row-1 .caption-alt:not(.subcontents .caption-alt) .zimage { border: unset;}
.smartphone #page.order #cnt_forms .form_merge_group.invoice { padding: 0; margin-top: 10px;}
.smartphone #page.order .group_wrapper { border: unset; padding: 0;}
.smartphone .ztemplate_rooms.ztemplate_model_7 .zcheckbox .fieldvalue, .smartphone .starred_amenities .zcheckbox .fieldvalue { margin: 0 10px 0 0; }
.smartphone .ztemplate_rooms.ztemplate_model_7 .caption-add .zinput.g6 { display: flex; align-items: center; margin: 10px 0; }
.smartphone .ztemplate_rooms.ztemplate_model_7 .zinput.g6:before { margin-right: 5px; color: var(--ocean);}
.smartphone .ztemplate_rooms.ztemplate_model_7 .ztemplate img { opacity: 1; }
.smartphone .ztemplate_rooms .ztemplate .services .caption .zlabel.g5 { border-radius: 0px;}
.smartphone .ecommerce .ztemplate_model_7.carousel_photos .ztemplate .elem .caption-cnt img { height: 250px;}
.smartphone .ecommerce .ztemplate_model_7 .z_cnt_2 { margin-left: auto;}
.smartphone .ztemplate .open_desc_order .fieldvalue {  position: relative; top: 0; box-shadow: unset; -webkit-box-shadow: unset; margin-bottom: 20px;}
.smartphone .ztemplate_rooms .subcontents .ztextarea { font-size: 120%;}
.smartphone .ecommerce .ztemplate_rooms .subcontents .caption-cnt .caption-add:not(#cart_detail .subcontents .caption-add) .zlabel.g10 .fieldvalue { color: var(--purple);}
.smartphone .ztemplate_rooms.ztemplate_model_7 .subcontents .caption.first { padding: 10px; font-size: 130%;}
.smartphone .ztemplate_rooms .ztemplate .services .ztextarea { padding: 0 10px; margin-top: 0; font-size: 130%; }
.smartphone #order_template_wrapper { padding: 10px;}
.smartphone #order_template_wrapper .row-2 .rates .caption-alt .fieldkey:not(.details_wrapper .fieldkey):before { position: relative; }
.smartphone #order_template_wrapper .row-2 .rates .caption-alt .fieldkey:not(.details_wrapper .fieldkey) { }
.smartphone .ztemplate .open_desc_order .fieldkey {  }
.smartphone .ztemplate_rooms .subcontents .zlabel.g8 { }
.smartphone .fc-calendar .fc-row > div > span.fc-date { bottom: 0;}
.smartphone .ztemplate_rooms .subcontents .zlabel.g24 .fieldvalue {  }
.smartphone #bookingform_summary .dates { font-size: var(--mini_base);}
.smartphone #order_template_wrapper .title_wrapper .title { font-size: 1.3em; }
.smartphone .ztemplate_rooms .subcontents .zlabel.g9 .fieldvalue { color: var(--grey); font-size: 130%;}
.smartphone .ztemplate_rooms .step_content_wrapper .location { width: 100%; margin-top: 15px;}
.smartphone .ecommerce .ztemplate .rooms .rooms_available:before { color: var(--green)!important;}
.smartphone.body_ecommerce_step .template_filter .form_checkbox { flex-direction: column; align-items: flex-start; padding: 0 15px; gap: 0;}

.smartphone.body_ecommerce_step .template_filter .form_radio .radio, .smartphone.body_ecommerce_step .template_filter .form_checkbox .checkbox { padding: 10px 0; width: 100%; justify-content: space-between; display: flex; align-items: center; flex-direction: row-reverse; border-bottom: none; margin: 0;}
.smartphone.body_ecommerce_step .template_filter .form_radio .radio:last-of-type, .smartphone.body_ecommerce_step .template_filter .form_checkbox .checkbox:last-of-type { border-bottom: unset; margin-bottom: 0;}
.smartphone .rate-group-content { margin-top: 0;}
.smartphone .ztemplate_rooms .subcontents .caption-cnt > li { margin-top: 0;}
.smartphone .ztemplate_rooms .subcontents .caption-cnt .caption, .smartphone .ztemplate_rooms .subcontents .caption-cnt .caption-alt { width: 100%; padding: 0 10px; margin: 0; border: none}
.smartphone .ztemplate_rooms .elem:not(.subcontents .elem) { padding: 0; margin: 5px 5px 30px; border: unset;}
.smartphone .ztemplate_rooms .subcontents .rate_detail .elem { border: unset;}
.smartphone .ztemplate_rooms .subcontents .rate_detail .caption-cnt .caption-add:not(#cart_detail .subcontents .caption-add):last-of-type { border: unset;}
.smartphone .total_amount { color: var(--white);}
.smartphone .ztemplate_rooms .subcontents .rates .template_detail_wrapper .ztemplate.rate_detail .row .box .elem { padding-top: 60px;}
.smartphone #page.order #content .side .title.size_medium {  text-align: center; padding-top: 10px;}
.smartphone .order #bookingform_summary { margin-top: 0;}
.smartphone .ecommerce #cnt_forms .caption-fields { margin: 0;}

/* fix */
.smartphone #page.payment #content .cnt .side { padding: 0;}
.smartphone #page.payment #content .cnt .side .title.size_medium { text-align: center;}
.smartphone #page.payment .total_wrap { background-color: var(--ocean); margin-top: 0;}
.smartphone #page.order .total_wrap { background-color: var(--ocean); margin-top: 0;}
.smartphone .total_amount, .smartphone #total_upfront { font-size: var(--average); margin-bottom: 0; line-height: 1;}
.smartphone #total_cost .varsimple { line-height: 1;}
.smartphone .step_footer .total_amount, .smartphone .step_footer #total_upfront { font-size: 160%; margin-bottom: 5px;}
.smartphone #bookingform_summary .title { text-align: center!important;}
.smartphone .template_detail_wrapper .ztemplate .row .box.gallery { padding-top: 40px;}
.smartphone .template_detail_wrapper .ztemplate .row .box.gallery .elem { margin: 0; }
.smartphone .carousel_photos .ztemplate .elem .caption-cnt img { filter: brightness(100%);}

.smartphone #total_cost {text-align: center;}
.smartphone #total_amount {margin-right: 0;}
.smartphone #total_upfront {text-align: center; margin-right: 0;}

/* fix per smartphone schermi piccoli */
@media (max-width: 375px) {
	.smartphone .template_calendar { left: 0; padding: 0;}

}

@media (max-width: 360px) {
	.smartphone .template_calendar { left: -0; }

}

/* BEI - Tariffa rimborsabile */
.secure_refund .box { max-width: 1100px; margin: 0 auto; }
.secure_refund .title { text-transform: uppercase; font-weight: var(--bold); color: var(--dark_sand);}
.ztemplate_rooms .secure_refund .caption-cnt { display: flex; flex-wrap: wrap; align-items: stretch;}
.ztemplate_rooms .secure_refund .caption-alt { padding: 15px 30px; background-color: var(--white); position: relative; width: calc(100% - 290px); display: flex; align-items: center; gap: 30px;}
.ztemplate_rooms .secure_refund .caption-alt:before { font-family: var(--icon); content: '\f2f7'; font-size: 100px; color: var(--dark_sand); font-weight: var(--solid)}
.ztemplate_rooms .secure_refund .caption-add { width: 290px; display: flex; justify-content: center; align-items: center; gap: 30px; background-color: var(--white); padding-right: 30px; position: relative;}
.ztemplate_rooms .secure_refund .caption-add:before { position: absolute; content: ''; width: 1px; top: 15px; bottom: 15px; background-color: rgba(0, 0, 0, 0.1); left: 0; }
.ztemplate_rooms .secure_refund .selector_wrapper { display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center; font-size: 170%;}
.ztemplate_rooms .secure_refund .prod_sel_content { border: unset; padding: 0; height: auto; width: auto; background-color: transparent; }
.ztemplate_rooms .secure_refund :where(.prod_sel_rem, .prod_sel_add):before  { font-family: var(--icon); font-weight: var(--regular); text-align: center; display: flex; font-size: 80%; line-height: 1; cursor: pointer;}
.ztemplate_rooms .secure_refund .prod_sel_rem:before { content: '\f056';}
.ztemplate_rooms .secure_refund .prod_sel_add:before { content: '\f055';}
.ztemplate_rooms .secure_refund .caption-alt :where(.prod_sel_rem.disabled, .prod_sel_add.disabled) { opacity: .1;}
.ztemplate_rooms .secure_refund .caption { width: 100%; margin-bottom: 20px;}
.ztemplate_rooms .secure_refund .ztextarea.g5 { width: 100%; margin: 0; line-height: 1.3;}
.insurance .ztextarea a { text-decoration: underline!important;}
.insurance .ztextarea { margin: 15px 0px;}
.ztemplate_rooms .secure_refund .ztextarea.g2 { font-size: 100%; margin: 0;}
.ztemplate_rooms .insurance .ztextarea.g2 ul { column-count: 2; column-gap: 60px; column-rule: 1px solid rgba(0, 0, 0, 0.1); margin: 0; list-style-type: none; padding-left: 0;}
.insurance .ztextarea.g2 ul { list-style-type: none; padding-left: 0; }
.insurance .ztextarea.g2 ul li { margin-bottom: 6px;}
.insurance .ztextarea.g2 ul li:before { font-family: var(--icon); content: '\f00c'; margin-right: 8px; font-size: 12px; font-weight: var(--solid)}
.ztemplate_rooms .secure_refund .zlabelprice { font-size: 160%; color: var(--dark_sand); display: flex; align-items: center; }
.ztemplate_rooms .secure_refund .zlabelprice:before { margin: 0 2px 0 0; content: '\20ac'; text-transform: uppercase; font-size: 100%; text-align: left;}
.purchase_flow_step .product_selection_wrap .secure_refund .prod_sel_add, .purchase_flow_step .product_selection_wrap .secure_refund .prod_sel_rem { display: flex;}
.ztemplate_rooms .secure_refund .elem { margin: 0;}
.insurance .caption:not(.ztemplate_rooms .secure_refund .caption) { display: flex; align-items: center; justify-content: space-between;}
.insurance .caption .title:not(.ztemplate_rooms .secure_refund .title) { margin-bottom: 0!important;}
.insurance .ztextarea.g6 { background-color: var(--white); padding: 10px; border: 1px solid rgba(0,0,0,.1); line-height: 1.2;}
@media (max-width: 1023px) {
    .ztemplate_rooms .secure_refund .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { flex-direction: row; }
    .ztemplate_rooms .secure_refund .ztextarea.g2 ul { column-count: 1; column-gap: normal;}
    .ztemplate_rooms .secure_refund .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { width: calc(100% - 290px);}
}
@media (max-width: 820px) {
    .secure_refund { padding-top: 40px;}
    .ztemplate_rooms .secure_refund .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption-alt { width: 100%; flex-direction: column; padding: 30px 15px;}
    .ztemplate_rooms .secure_refund .caption-add { width: 100%; padding: 20px; border-top: 1px solid rgba(0, 0, 0, 0.1); }
}
.smartphone .ztemplate_rooms .secure_refund .caption { text-align: center;}
.smartphone .ztemplate_rooms .secure_refund .caption-alt { background-color: var(--white);  background-color: #f2f2f2;}
.smartphone .ztemplate_rooms .secure_refund .caption-alt:before { font-size: 60px;}
.smartphone .ztemplate_rooms .secure_refund .ztextarea.g2 { font-size: 130%; }
.smartphone .ztemplate_rooms .secure_refund .caption-add:before { display: none;}
.smartphone .ztemplate_rooms .secure_refund .caption-add { background-color: var(--dark_sand); padding: 0; gap: 0;  }
.smartphone .ztemplate_rooms .secure_refund .zlabelprice { color: var(--white); width: 50%; justify-content: center; border-right: 1px solid rgba(0, 0, 0, 0.1); padding: 10px 15px;}
.smartphone .ztemplate_rooms .secure_refund .selector_wrapper { color: var(--white); width: 50%; justify-content: center; padding: 10px 15px; font-size: 210%;}
/* FINE Tariffa rimborsabie */

/* BEI CrossBooking */
.crossbooking_box { margin-top: 10px;}
.crossbooking { padding: 15px; }
.crossbooking_header { text-align: center; margin-bottom: 30px;}
.crossbooking_header .info_title { color: var(--dark_sand); font-size: 30px;}
.crossbooking_header .info_subtitle { font-size: 20px;}
.crossbooking_elements { display: flex; grid-gap: 30px; flex-wrap: wrap; box-sizing: border-box; justify-content: flex-start;  padding-left: 10px; background-color: var(--white); padding: 15px 30px 15px 40px; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; box-shadow: 0px 0px 30px -12px rgba(0,0,0,0.16);}
.crossbooking_elements:after { width: 30px; height: 30px; border-radius: 100%; background-color: var(--white); border: 1px solid #dedede; z-index: 1; position: absolute; bottom: 30px; left: 12px; font-family: var(--icon); content: '\f058'; text-align: center; line-height: 30px; font-size: 15px; }
.crossbooking_block { width: 100%; position: relative; padding: 0 0 0 20px; counter-increment: section; margin-bottom: 30px; }
.crossbooking_block:before { width: 30px; height: 30px; border-radius: 100%; background-color: var(--white); border: 1px solid #dedede; z-index: 1; position: absolute; top: 2px; left: -27px; content: counter(section); text-align: center; line-height: 30px; font-size: 15px; font-weight: var(--bold);}
.crossbooking_block:after { position: absolute; left: -14px; top: 2px; height: calc(100% + 60px); content: ''; border-left: 2px dotted #c7c7c7; }
.crossbooking_block:last-of-type:after { height: 100%; }
.crossbooking_block_header { display: flex; align-items: center; margin-bottom: 10px; min-height: 36px; }
.crossbooking_select .select { display: flex; align-items: center; margin-left: auto; padding: 0; width: 100%;}
.crossbooking_select form .form_select .current_value { display: flex; align-items: center;}
.crossbooking_select form .form_select .current_value:after { position: inherit; margin-left: 15px; right: 0;}
.crossbooking_select .select:before { font-family: var(--icon); content: '\f0ec'; margin-right: 5px; color: var(--dark_sand);}
.crossbooking_select { margin-left: auto; min-width: 290px;}
.crossbooking_select form .form_select { background-color: var(--white);}
.crossbooking_select form .form_select .elements_list { padding: 0;}
.crossbooking_select form .form_select .elements_list .option { background-color: var(--white); transition: .4s all; padding: 10px;}
.crossbooking_select form .form_select .elements_list .option:hover { background-color: var(--dark_sand); color: var(--white);}
.crossbooking_select form .form_element_title { margin: 0 15px 0 0; white-space: nowrap;}
.ztemplate_rooms .crossbooking_elements .elem { margin: 0; padding: 0;}
.ztemplate_rooms .crossbooking_elements .caption { padding: 10px;}
.ztemplate_rooms .crossbooking_elements .caption-cnt { flex-direction: row; background-color: #f6f6f6; }
.ztemplate_rooms .crossbooking_elements .caption-alt { position: relative; flex-direction: column; width: 100%; max-width: unset; background-color: #f6f6f6; color: #000; padding: 35px;}
.ztemplate_rooms .rooms .crossbooking_elements .caption-alt > .title { color: var(--dark_sand);}
.ztemplate_rooms .crossbooking_elements .zoption .fieldvalue { color: #000;}
.ztemplate_rooms .crossbooking_elements .zinput.g1.text .fieldvalue:before { color: var(--dark_sand);}
.ztemplate_rooms .crossbooking_elements .zinput.g1.text .fieldvalue { color: #000;}
.ztemplate_rooms .crossbooking_elements .ztextarea { color: #000;}
.crossbooking_dates { font-size: 16px; }
.crossbooking_dates:before { font-family: var(--icon); content: '\e0d6'; margin-right: 5px; color: var(--dark_sand); }
.crossbooking_footer .rate-group-header { display: flex; background-color: var(--ocean); padding: 10px; color: var(--white); font-size: 110%; position: relative; cursor: pointer;}
.crossbooking_footer .rate-group-header:before { font-family: var(--icon); position: absolute; left: 20px; top: 22px; cursor: pointer; content: "\f0fe"; }
.crossbooking_footer .rate-group-header.open:before { content: "\f146";}
.crossbooking_footer .rate-group-header > div { padding: 10px 20px; border-left: 1px solid rgba(255, 255, 255, 0.3);}
.crossbooking_footer .rate-group-header .rate-group-title { width: 40%; border-left: unset; padding-left: 35px;}
.crossbooking_footer .rate-group-cond { width: 30%; max-width: 325px;}
.crossbooking_footer .rate-group-price { width: 15%; text-align: center; }
.crossbooking_footer .rate-group-rooms { width: 15%; text-align: center; }
.crossbooking_footer .rate-group-content { display: flex; overflow: hidden!important; background-color: #f0f0f0;}
.crossbooking_footer .rate_details { display: none;}
.crossbooking_footer .rate-group-content > div { padding: 10px 0 15px 20px; border-left: 1px solid rgba(0, 0, 0, 0.1);}
.crossbooking_footer .rate-group-content .rate-group-title-value { width: 40%; border-left: unset;}
.crossbooking_footer .rate-group-cond-value { width: 30%; line-height: 1.2; max-width: 325px;}
.crossbooking_footer .rate-group-price-value { width: 15%; text-align: center; font-size: 160%; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--dark_sand)}
.crossbooking_footer .rate-group-price-value :where(.comma, .decimal) { font-size: 70%;}
.crossbooking_footer .rate-group-rooms-value { width: 15%; text-align: center; font-size: 170%; display: flex; align-items: center; justify-content: center;}
.crossbooking_footer .rate-group-rooms-value .selector_wrapper { display: flex; align-items: center; justify-content: center; gap: 10px;}
.crossbooking_footer .rate-group-rooms-value :where(.prod_sel_rem, .prod_sel_add):before  { font-family: var(--icon); font-weight: var(--regular); text-align: center; font-size: 80%; line-height: 1; cursor: pointer;}
.crossbooking_footer .rate-group-rooms-value .prod_sel_rem:before { content: '\f056';}
.crossbooking_footer .rate-group-rooms-value .prod_sel_add:before { content: '\f055';}
.crossbooking_footer .rate-group-rooms-value :where(.prod_sel_rem.disabled, .prod_sel_add.disabled) { opacity: .1;}
.crossbooking_footer .rate-group-content .title { font-size: 120%; color: var(--dark_sand); margin-bottom: 10px; text-transform: uppercase}
.crossbooking_footer .rate-group-content .rate_arrangement { display: flex; align-items: center; font-size: 105%;}
.crossbooking_footer .rate-group-content .rate_arrangement:before { }
.ztemplate_rooms .crossbooking_footer .rate_arrangement.g24 .fieldvalue:before { font-family: var(--icon); font-weight: var(--solid); margin-right: 5px;}
.crossbooking_footer .rate-group-cond-value .zlabel.g8 .fieldkey { display: none;}
.crossbooking_footer .rate-group-cond-value .zlabel.g8 .fieldvalue { display: flex; flex-direction: column; gap: 10px; }
#order_template_wrapper .row-1 .caption:not(.subcontents .caption) { flex-wrap: wrap; flex-direction: row; align-items: center;}
.cross_booking_dates { width: 100%; border-top: 1px solid var(--dark_sand); margin: 5px 0 10px; order: 9;}
.cross_booking_dates .fieldvalue { display: flex; flex-wrap: wrap; padding: 5px 0;}
.cross_booking_dates .fieldvalue > div { width: 50%; }
.cross_booking_dates .dates { display: flex; align-items: center; gap: 10px;}
.cross_booking_dates .dates:before { font-family: var(--icon); content: '\e0d6'; color: var(--dark_sand); }
.cross_booking_dates .dates .value:first-of-type:after { font-family: var(--icon); content: '\f105'; font-size: 70%; margin-left: 10px; }
.cross_booking_dates .nights {display: flex; justify-content: flex-end; align-items: center; gap: 5px;}
.cross_booking_dates :where( .dates, .nights) { padding: 4px 0;}
@media (max-width: 1023px) {
    .crossbooking_footer :where(.rate-group-cond, .rate-group-price, .rate-group-rooms) { display: none;}
    .crossbooking_footer .rate-group-header .rate-group-title { width: 100%; }
    .crossbooking_footer .rate-group-content { display: flex!important;}
}
@media (max-width: 768px) {
    .crossbooking_block_header { position: relative; }
    .crossbooking_select { position: absolute; top: 55px; right: 10px; background-color: var(--white); z-index: 2; padding: 10px 10px 10px 20px; }
}
.smartphone .ztemplate_rooms .crossbooking_elements .caption-alt { background-color: #f6f6f6; padding: 15px; }
.smartphone .crossbooking_block { padding-left: 5px; z-index: 1;}
.smartphone .crossbooking { padding: 0;}
.smartphone .crossbooking_header { padding: 0 15px;}
.smartphone .crossbooking_block:last-of-type { padding-bottom: 40px; margin-bottom: 0;}
.smartphone .crossbooking_footer .rate-group-content .rate-group-title-value { width: 50%;}
.smartphone .crossbooking_footer .rate-group-cond-value { width: 50%; }
.smartphone .crossbooking_footer .rate-group-content { flex-wrap: wrap; margin: 0 10px; background-color: var(--white); box-shadow: 0px 9px 23px -8px rgba(0,0,0,0.77); padding: 10px 0;}
.smartphone .crossbooking_footer .rate-group-price-value { width: 50%; background-color: var(--dark_sand); color: var(--white);}
.smartphone .crossbooking_footer .rate-group-rooms-value { width: 50%; background-color: var(--dark_sand); color: var(--white); }
.smartphone .crossbooking_block:before { left: 0; right: 0; margin: 0 auto; font-size: 25px; line-height: 50px; width: 50px; height: 50px; color: var(--ocean);}
.smartphone .crossbooking_block:after { left: 0; right: 0; margin: 0 auto; width: 1px; z-index: -1;}
.smartphone .crossbooking_elements { padding: 15px 10px 80px;}
.smartphone .crossbooking_block_header { background-color: var(--dark_sand); color: var(--white); padding: 10px; align-items: center; margin-top: 80px; margin-bottom: 0; flex-direction: column; align-items: flex-start; padding-top: 10px;}
.smartphone .crossbooking_block_rooms { border: 1px solid var(--dark_sand); }
.smartphone .crossbooking_select { position: inherit; left: 0; right: inherit; top: inherit; margin-left: 0; padding: 10px 0 0; margin: 10px 0; width: 100%; padding-right: 0; border-top: 1px solid #dedede; background-color: transparent;}
.smartphone .crossbooking_select form .form_select { color: var(--dark_sand);}
.smartphone .crossbooking_select form .form_select .current_value:after { margin-left: auto; }
.smartphone .crossbooking_block:last-of-type:after { height: calc(100% + 60px);}
.smartphone .crossbooking_footer { margin-top: 0;}
.smartphone .crossbooking_elements:after { left: 0; bottom: 9px; right: 0; margin: 0 auto; font-size: 25px; line-height: 50px; width: 50px; height: 50px; color: var(--ocean); }
.smartphone .crossbooking_footer .rate-group-header { background-color: var(--white); color: var(--dark_sand); text-align: center; padding-top: 0; padding-bottom: 0; margin-bottom: 10px;}
.smartphone .crossbooking_footer .rate-group-header.open:before { display: none;}
/* FINE - BEI CrossBooking */

/* ENGAGEMENT PLATFORM */
html { min-height: 100vh;}
.body_ecommerce_engagement header, .body_ecommerce_engagement footer, .body_ecommerce_engagement #slideshow, .body_ecommerce_engagement .slideshow-cnt, .body_ecommerce_engagement .slideshow_cnt { display: none!important;}
.body_ecommerce_engagement #page { } /* calcolo altezza del footer e dell'header */
.body_ecommerce_engagement { height: 100%; overflow: auto; background: linear-gradient(to top, var(--ocean) 0%, var(--ocean) 50%, var(--white) 50%, #eeeeee 100%);}
.body_ecommerce_engagement:before { /* position: absolute; content: ''; z-index: -1; background-color: #dedede; height: 100%; top: 50%; left: 0; width: 100%; */}
#page.engagement { padding: 0; max-width: 860px; margin: 200px auto; background-color: var(--white); box-shadow: 0px 9px 11px 0px rgba(0,0,0,0.15); border: 10px solid #f6f6f6; position: relative;}
#page.engagement:after { width: 0; height: 0; content: ''; position: absolute; z-index: 1; top: 0; right: 0; border-style: solid; border-width: 0 90px 90px 0; border-color: transparent var(--purple); }
#page.engagement:before { position: absolute; top: 14px; right: 14px; font-family: var(--icon); content: '\f06b'; color: var(--white); z-index: 2; font-size: 25px; }
.engagement_header { padding: 45px 30px 15px;}
.engagement_header > div { margin-bottom: 10px; line-height: 1.2; text-align: center;}
.engagement_header > div > div { margin-bottom: 10px;}
.engagement_greeting { font-size: 40px; display: flex; flex-direction: column; gap: 10px; color: var(--purple); font-family: var(--sans);}
.engagement_greeting:before {}
.engagement_user { margin-top: 15px; position: relative; display: flex; flex-direction: column; gap: 20px;}
.engagement_user:before { margin: 0 auto; position: relative; content: ''; width: 60px; height: 1px; top: 0; left: 0; display: inline-block; background-color: var(--purple);}
.unlock_offer { margin-top: 40px; text-align: center; padding: 30px; background-color: #f9f9f9;}
.unlock_offer_msg { margin-bottom: 30px; font-size: 120%; color: var(--purple); font-family: var(--sans);}
#unlock_offer_form { display: flex; align-items: center; justify-content: center;}
#unlock_offer_email { padding: 10px; background-color: #dedede; width: 50%; border: unset;}
#unlock_offer_form input[type="submit"] { background-color: var(--purple); color: var(--white);}
.engagement_expire:before { font-family: var(--icon); font-weight: var(--thin); content: '\f334'; font-size: 25px; margin-right: 5px; color: var(--purple);}
.engagement_multi { margin: 0 auto; padding: 30px; border-top: 1px dashed #dedede;}
.engagement_multi_info { margin-bottom: 15px; text-align: center;}
.engagement_multi_info .title { font-size: 25px; margin-bottom: 10px; font-family: var(--sans); color: var(--purple);}
.engagement_offers { margin-top: 30px; display: flex; flex-direction: column; gap: 30px;}
.engagement_offer { background-color: #f6f6f6; padding: 15px; border: 3px solid #ebebeb; text-align: left;}
.engagement_offer .search_info { font-size: 120%; line-height: 1.2;}
.search_info { padding: 0 0 15px; margin-bottom: 15px; border-bottom: 1px solid #dedede;}
.room_count_string { margin-bottom: 10px; color: var(--purple);}
.room_count_string:before {font-family: var(--icon); content: '\f06b'; margin-right: 5px; }
.offer_occ_per_room { background-color: var(--white); padding: 15px; border: 1px dashed #dedede;}
.offer_occ { padding-bottom: 10px; margin-bottom: 10px; display: flex; align-items: center; gap: 5px; border-bottom: 1px dashed #dedede;}
.offer_occ:last-of-type { margin-bottom: 0; padding-bottom: 0; border-bottom: unset; }
.offer_occ:before { font-family: var(--icon); content: '\f8f7'; }
.engagement_offer .starting_from { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; margin-top: 15px; font-weight: var(--bold);}
.engagement_offer .starting_from span { font-size: 25px; color: var(--purple);}
.engagement_offer .starting_from span.number:before { content: '\20ac';}
.view_offer_link { padding: 15px; background-color: var(--purple); display: inline-block; margin-top: 15px; text-transform: uppercase; color: var(--white);}
.refuse_offer { padding: 30px; text-align: center; border-top: 1px dashed #dedede; max-width: 920px; margin: 0 auto;}
.refuse_offer_title { font-size: 25px; margin-bottom: 20px; font-family: var(--sans); color: var(--purple);}
#refuse_offer_reason { padding: 15px; width: 100%; border: 1px solid #dedede; resize: none;}
.refuse_offer_btn { cursor: pointer; background-color: var(--purple); padding: 15px; color: var(--white); text-transform: uppercase; margin-top: 15px;}
/* engagement mode ON */
.engagement_mode .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate) { margin-top: 30px; margin-bottom: 0;}
/* .engagement_mode .ztemplate_rooms .elem.first { margin-top: 30px;} */
#page.engagement_mode { margin-bottom: 0;}
.engagement_mode .ztemplate_rooms.list { padding-bottom: 0;}
.engagement_mode .engagement_header { padding: 15px; max-width: 920px; margin: 0 auto;}
.engagement_mode .engagement_greeting { font-size: 20px;}
.engagement_mode .engagement_description { font-size: var(--size-base);}
.engagement_mode .engagement_header .engagement_expire { display: none;}
.engagement_mode .engagement_user { display: none;}
.engagement_mode .engagement_expire { color: var(--black); font-size: 15px; display: flex; align-items: center;}
.accomodation_info { /* max-width: 1024px; */ margin: 0 auto 30px; text-align: center; position: relative;}
.accomodation_info.selected {  padding: 20px; background-color: var(--white); box-shadow: 0 14px 15px -11px rgba(0,0,0,0.1); border: 2px solid var(--purple);}
.accomodation_info .occupancy { font-size: 18px; font-weight: var(--font-weight-bold); margin-bottom: 15px; padding: 10px; background-color: var(--color3);}
.accomodation_info .occupancy:before { font-family: var(--icon); font-weight: var(--font-weight-regular); content: "\f8f7"; margin-right: 5px; }
.accomodation_info .info_msg { font-size: 18px; line-height: 1.2; padding: 15px; /* background-color: #f6f6f6; border: 1px solid #dedede; */ width: auto; display: inline-block;}
.accomodation_info .info_msg:before { font-family: var(--icon); font-weight: var(--font-weight-regular); content: "\f05a"; margin-right: 5px;}
/* .accomodation_info:before { content: counter(section); position: absolute; top: 50%; left: -60px; transform: translateY(-50%); z-index: 2; width: 50px; height: 50px; font-size: 60px;  font-weight: var(--font-weight-bold); color: var(--purple); opacity: .3; } */
.selected_option_info .caption { box-shadow: unset!important;}
.selected_option_info { margin-bottom: 0; display: flex; flex-wrap: wrap; align-items: center;}
.selected_option_info .selected_rate_ctn .caption-cnt { display: flex; align-items: center; position: relative!important; padding: 30px!important; flex-direction: row!important;}
.selected_option_info .selected_rate_ctn .caption { width: 60%!important; position: relative!important; color: var(--grey); font-size: 90%;}
.selected_option_info .selected_rate_ctn .caption-cnt .caption-alt { padding: 15px!important; width: 40%!important; background-color: transparent!important;}
.selected_option_info { text-align: left;}
.selected_option_info .toggle_open { text-transform: uppercase; cursor: pointer; font-size: 14px; display: none;}
.selected_option_info .toggle_open:before { font-family: var(--icon); font-weight: var(--font-weight-regular); content: "\f0fe"; margin-right: 5px;}
.selected_option_info .toggle_open.fired:before { content: '\f146';}
.selected_option_info .selected_rate_ctn .caption-cnt .caption:before { display: none!important; }
.selected_room_name { font-family: var(--sans); font-size: 190%; color: var(--purple); margin-bottom: 10px; width: calc(100% - 290px); text-transform: uppercase;}
.selected_room_price { margin-left: auto; width: 290px; text-align: center; font-size: 35px; color: var(--purple); font-weight: var(--bold);}
.selected_room_price .number:before { content: '\20ac'; margin-right: 3px;}
.selected_room_name:before { font-family: var(--icon); font-weight: var(--thin); content: "\f058"; margin-right: 10px; color: var(--purple);}
.selected_option_info .title { font-size: 120%; color: var(--purple); width: 100%; text-align: left; margin-top: 0; font-family: var(--sans); font-weight: var(--bold); margin-bottom: 5px;}
.selected_option_info .rate_arrangement { display: flex; gap: 5px; color: var(--ocean);}
.selected_option_info .rate_arrangement:before { font-family: var(--icon); font-weight: var(--solid);}
.selected_option_info .selected_rate_ctn[treatment="treatment-breakfast"] .rate_arrangement.g24:before { content: '\f7b6';}
.selected_option_info .selected_rate_ctn[treatment="treatment-room"] .rate_arrangement.g24:before { content: '\f236';}
.selected_option_info .selected_rate_ctn[treatment="treatment-half"] .rate_arrangement.g24:before { content: '\f2e6';}
.selected_option_info .selected_rate_ctn[treatment="treatment-full"] .rate_arrangement.g24:before { content: '\f2e6';}
.selected_option_info .selected_rate_ctn[treatment="treatment-all"] .rate_arrangement.g24:before { content: '\f561';}
.selected_option_info .caption .zlabel.g25 { display: flex; gap: 5px; margin: 5px auto 10px; flex-wrap: wrap;}
.selected_option_info .caption .zlabel.g25 .fieldkey { color: var(--grey);}
.selected_option_info .caption .zlabel.g25 .fieldkey:after { content: ':'; }
.selected_option_info .rate_details .fieldkey { cursor: pointer; color: var(--grey); font-size: 13px; width: 100%; text-align: left; text-transform: uppercase; display: flex; gap: 5px; }
.selected_option_info .rate_details .fieldkey:before { font-family: var(--icon); font-weight: var(--font-weight-regular); content: "\f0fe";}
.selected_option_info .rate_details.fired .fieldkey:before { content: '\f146';}
.selected_option_info .rate_details .fieldvalue { display: none; font-size: var(--size-base);}
.selected_option_info .rate_details.fired .fieldvalue { display: block}
.selected_option_info .caption-cnt { align-items: center!important; background-color: var(--ice);}
.selected_option_info .caption-alt { position: initial!important; bottom: unset!important; top: unset!important; left: unset!important; right: unset!important; line-height: 1.2; width: auto; background-color: transparent; border-left: 1px solid #dedede; padding: 0 40px;}
.selected_option_info .caption-alt .upfront { margin-bottom: 10px; color: var(--purple);}
.selected_option_info .caption-alt .upfront .fieldvalue { font-size: 20px;}
.selected_option_info .caption-alt .upfront .number:before {  content: '\20ac'; }
.selected_option_info .caption-alt .condition_detail { display: none;}
.selected_option_info .caption-alt .g8 .fieldkey { display: none;}
.selected_option_info .caption-add { position: initial!important; bottom: unset!important; top: unset!important; left: unset!important; right: unset!important; padding-right: 40px;}
.selected_option_info .caption-add .zlabel { display: none!important;}
.selected_option_info .caption-add .zlabel.zlabelprice { display: none!important; /* gap: 2px; align-items: center; font-size: 30px; color: var(--purple); */}
.selected_option_info .caption-add .zlabel.zlabelprice:before { content: '\20ac'; position: relative; top: 2px;}
.selected_rate_ctn { display: block; width: 100%;}
.selected_rate_ctn.fired { display: block; margin-top: 15px;}
.remove_eng_selection { position: absolute; z-index: 2; top: 0; right: 0; font-size: 0; width: 40px; height: 40px; background-color: transparent; line-height: 40px; text-align: center; cursor: pointer;}
.remove_eng_selection:before {font-family: var(--icon); content: '\f00d'; color: var(--white); font-size: 25px; z-index: 2; position: relative;}
.remove_eng_selection:after { width: 0; height: 0; content: ''; position: absolute; z-index: 1; top: 0; right: 0; border-style: solid; border-width: 0 70px 70px 0; border-color: transparent var(--purple); }
/* Engagement Media */
.engagement_media { text-align: center; padding-top: 30px; margin-top: 40px;}
.engagement_media > div {/* max-width: 1024px; */ max-width: 1600px; margin: 0 auto 90px; padding: 50px 30px 30px; background-color: #f6f6f6; box-shadow: 0 14px 15px -11px rgba(0,0,0,0.1); position: relative; border-top: 5px solid var(--purple);}
.engagement_media > div:before { font-family: var(--icon); font-weight: 900; font-size: 25px; color: var(--white); position: absolute; top: -30px; left: 0; right: 0; margin: 0 auto; z-index: 2; width: 60px; height: 60px; line-height: 60px; text-align: center; background-color: var(--purple);}
.engagement_video:before { content: '\f03d';}
.engagement_spotify:before { content: '\f001';}
.engagement_attachments:before { content: '\f07c';}
.engagement_video { background-color: #f6f6f6; }
.engagement_video iframe { width: 100%; height: 517px; box-shadow: 0px 9px 11px 0px rgba(0,0,0,0.15); padding: 10px;}
.engagement_video .video_wrapper { max-width: 920px; margin: 0 auto 30px; }
.spotify_hint {  display: flex; flex-direction: column; gap: 20px; align-items: center; line-height: 1.2; font-size: 100%;}
.spotify_hint:after { display: none; background-color: var(--grey); width: 40px; height: 40px; border-radius: 100%; line-height: 40px; text-align: center; font-family: var(--icon); content: '\f6a8'; color: var(--white); cursor: pointer; font-size: 20px; }
.spotify_wrapper { width: 100%; text-align: left;}
.spotify_wrapper iframe { width: 100%; height: 400px; margin-top: 30px;}
.spotify_wrapper.fired { display: block;}
.spotify_wrapper .trigger_close { display: none;}
.engagement_attachments { max-width: 920px; margin: 30px auto; padding: 15px; background-color: #f6f6f6;}
.attachments_wrapper .trigger_close:before { display: none;}
.trigger_close:before { font-family: var(--icon); content: '\f057'; font-weight: 900; cursor: pointer; font-size: 20px; color: var(--grey); }
.engagement_video .trigger_close { display: none;}
.video_hint, .attachments_hint { font-size: 25px; margin-bottom: 30px;}
.engagement_attachments .attachment { text-align: left; padding: 10px; margin-bottom: 10px; border: 1px dashed #dedede;}
.engagement_attachments .attachment a { color: var(--purple); font-size: 18px;}
.engagement_attachments .attachment a:before { font-family: var(--icon); content: '\f019'; margin-right: 5px; }
@media (max-width: 960px) {
    .selected_option_info .selected_rate_ctn .caption-cnt { flex-direction: column!important; padding: 15px!important;}
    .selected_option_info .caption-alt { padding: 30px 0!important; border-left: unset; border-top: 1px solid #dedede;}
    .accomodation_info { margin: 0 auto 15px;}
}
@media (max-width: 767px) {
    .selected_room_name { width: 100%; font-size: 25px;}
    .selected_room_price { width: 100%; margin-left: 0; text-align: left; margin-bottom: 20px; font-size: 20px;}
    .engagement_video iframe { height: auto;}
    #unlock_offer_form { flex-direction: column;}
    #unlock_offer_email { width: 100%;}
}
.smartphone .accomodation_info .info_msg { font-size: 100%;}
.smartphone #page.engagement { margin: 0 auto;}
.smartphone .engagement_multi { padding: 10px;}
.smartphone .engagement_greeting { font-size: 20px;}
.smartphone .engagement_multi_info .title,
.smartphone .refuse_offer_title { font-size: 18px;}
.smartphone #page.engagement_mode .heading { padding-top: 20px;}
.smartphone .engagement_mode .engagement_expire { margin-top: 8px; text-align: center;}
.smartphone .selected_option_info .caption-alt { background-color: transparent!important;}
.smartphone .selected_option_info .selected_rate_ctn .caption-cnt .caption-alt { padding: 10px 0!important;}
.smartphone .engagement_media { margin-top: 15px; padding: 0 15px;}
.smartphone .engagement_media > div { padding: 50px 15px 15px; border-radius: 5px;}
.smartphone .engagement_media > div:before { border-radius: 100%; font-size: 20px;}
.smartphone .selected_option_info .selected_rate_ctn .caption,
.smartphone .selected_option_info .selected_rate_ctn .caption-cnt .caption-alt { width: 100%!important;}

/* FINE ENGAGEMENT PLATFORM */

/* Fasce orarie - Servizi */
.ztemplate .selection_time { display: flex; align-items: center; gap: 3px; margin-left: 10px; font-size: 65%;}
.ztemplate .selection_time select { border: 1px solid #dedede; border-radius: 3px; background-color: #f6f6f6; padding: 3px;}
.ztemplate .selection_time select:focus { outline:none;}
.ztemplate .selection_time:before, .ztemplate .time:before { font-family: var(--icon); content: '\f017';}
.ztemplate .time { order: 3; margin-left: 5px; display: flex; align-items: center; gap: 3px;}
.ztemplate .time:before { font-size: 90%;}
.ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time:hover .selection_date { padding-left: 0;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time { position: relative; padding: 15px 20px;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents .selector_wrapper.has_time .selection_date { position: relative; top: -10px;}
.smartphone .ztemplate .selection_time { position: absolute; bottom: 10px; left: 10px; gap: 2px;}
.smartphone .ztemplate .selection_time select { padding: 0; border: unset;}
.smartphone .ztemplate .selection_time:before { font-size: 100%; }

/* Edit Reservation */
.edit_reservation_cnt { max-width: 640px; margin: 60px auto; }
.edit_reservation_cnt #bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates,
.edit_reservation_cnt #bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests { font-size: 95%;}
.edit_reservation #order_template_wrapper .row-1 .caption .title:not(.subcontents .title),
.edit_reservation #order_template_wrapper .service_title .caption:not(.subcontents .caption) .title { font-family: var(--sans); font-weight: var(--regular);}
.ibe_search_error { width: 100%; text-align: center; padding-top: 15px;}
.ibe_search_btn { cursor: pointer; text-align: center; font-size: var(--mini_base); display: flex; align-items: center; justify-content: center; color: var(--white); text-transform: uppercase;}
.ibe_search_btn:before { font-family: var(--icon); content: '\f044'; font-size: 16px; margin-right: 5px; position: relative; bottom: 2px; color: var(--purple);}
.ibe_search_box { background-color: #fff; color: #000; padding: 20px; margin: 0 auto; position: absolute; z-index: 9999; bottom: 50%; transform: translateY(50%); left: 15px; right: 15px; box-shadow: 0 0 10px rgb(0 0 0 / 30%); text-align: left; max-width: 766px; display: none; }
.ibe_search_box form { padding: 20px;}
.ibe_search_box_close { cursor: pointer; position: absolute; top: 4px; right: 10px; font-size: 21px; background: white; padding: 10px 15px; font-size: 0;}
.ibe_search_box_close:before { font-family: var(--icon); content: '\f00d'; color: #000; font-size: 20px;}
.ibe_search_wrapper { padding: 0 25px 15px; color: var(--white); margin-top: 15px;}
.ibe_search_wrapper.fired .ibe_search_box {display: block;}
.ibe_search_wrapper.fired:before {content: ''; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(88,81,104, .9); position: fixed; z-index: 1;}
.ibe_search_wrapper input { width: 100%; padding: 10px;}
.ibe_search_box_title { text-align: center; font-size: 22px; margin-bottom: 15px; color: var(--purple); font-family: var(--sans); text-transform: uppercase;}
.ibe_search_box form { display: flex; flex-direction: row!important; flex-wrap: wrap; justify-content: space-between;}
.ibe_search_box form .field, #booking_cnt.ibe_search_box form .field.text { width: calc(50% - 5px); margin: 0; padding: 0 15px 20px 15px; margin-bottom: 10px;}
.ibe_search_box form .field { padding: 0;}
#booking_cnt.ibe_search_box form .field input { padding: 10px!important; width: 100%; text-align: left; background-color: #fff!important; line-height: 1; border: 1px solid #dedede; text-transform: inherit!important;}
#booking_cnt.ibe_search_box .form_element_title, .ibe_search_box .form_element_title, #booking_cnt.ibe_search_box .form_element_title.text { color: #373737; font-size: var(--mini_base); margin-bottom: 5px;}
.ibe_search_loading .fa-spin, .edit_reservation_loading .fa-spin { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 99999; color: #fff; font-size: 50px;}
.ibe_search_loading:before, .edit_reservation_loading:before  { position: fixed; content: ''; top: 0; left: 0; width: 100%; height: 100%; z-index: 9; background-color: rgba(0,0,0,.8);}
#page.thankyou.edit_reservation .side #order_template_wrapper { text-align: left; border-radius: 20px;}
.edit_reservation .side { margin-top: 30px;}
.edit_reservation .side #bookingform_summary .title { margin: 0 0 15px 0; padding-bottom: 15px; border-bottom: 1px solid #dedede; font-size: 130%; color: #575757;}
.edit_reservation .section_text { display: none;}
.edit_reservation .reservation_code { display: block;}
.edit_reservation .section_big_link, .edit_reservation .btn, .edit_reservation .section_button_1 { display: none;}
.edit_reservation #order_template_wrapper .row-1 .caption { flex-wrap: wrap; align-items: center; margin-top: 15px; margin-bottom: 10px;}
.edit_reservation #order_template_wrapper .row-1 .caption .title_wrapper { width: 100%;}
.edit_reservation .rate_arrangement { font-size: 18px;}
.delete_reservation_info { padding: 15px; background-color: #fff; margin-top: 15px; margin-bottom: 15px; border-top: 1px solid #dedede; width: 100%; font-size: 16px;}
.delete_reservation_info .fieldvalue { display: flex; align-items: center;}
.delete_reservation_info .fieldvalue:before { font-family: var(--icon); content: '\f05a'; margin-right: 5px; color: var(--ocean); position: relative; bottom: 2px;}
.delete_reservation { background-color: #ef5f3e; padding: 15px 25px; font-size: 12px; color: #fff; text-transform: uppercase; cursor: pointer;}
.delete_reservation .fieldkey { display: flex; align-items: center;}
.delete_reservation .fieldkey:before { font-family: var(--icon); content: '\f2ed'; margin-right: 5px; position: relative; bottom: 2px;}
.delete_reservation .fieldvalue { display: none;}
.edit_reservation #bookingform_summary .summary { font-size: 15px;}
.edit_reservation #order_template_wrapper .ztemplate .elem { position: relative;}
.edit_reservation #order_template_wrapper .ztemplate .elem.odd { padding-top: 35px;}
.edit_reservation #order_template_wrapper .ztemplate .elem.odd:before { position: absolute; z-index: 1; top: 0; left: -21px; width: calc(100% + 42px); content: ''; background-color: #fff; border-bottom: 1px solid #dedede; border-top: 1px solid #dedede; height: 20px; z-index: 1; }
#page_error .message .buttons { display: flex; align-items: center; justify-content: center; margin-top: 20px;}
#page_error .message .buttons > div { padding: 15px 25px; color: #373737; text-transform: uppercase; cursor: pointer; margin: 0 5px; border: 2px solid #373737;}
#booking_cnt.ibe_search_box input[type="submit"], .ibe_search_box input[type="submit"] { font-size: 12px;}
.ibe_search_box input[type="submit"] { background-color: var(--purple) !important; font-family: var(--sans); font-size: var(--standard); margin: 15px 0 0 0 !important;}
.edit_reservation #order_template_wrapper .row-2 .rates .caption-alt .fieldkey:not(.details_wrapper .fieldkey) { font-size: 12px;}
.edit_reservation .canc_policy_label, .edit_reservation .payment_policy_label { font-size: 12px;}
.edit_reservation #order_template_wrapper .rates .caption-alt .ztextarea.g2, .edit_reservation #order_template_wrapper .rates .caption-alt .zlabel.g8 { font-size: 16px;}
.smartphone .delete_reservation { width: 100%; margin-bottom: 15px;}
.smartphone .ibe_search_box form { flex-direction: column!important; margin: 0;}
.edit_reservation .ztemplate .open_desc_order .fieldkey { font-size: 12px!important;}
.smartphone .ibe_search_box form .field, .smartphone #booking_cnt.ibe_search_box form .field.text { width: 100%; border-bottom: unset;}
.smartphone .ibe_search_wrapper .ibe_search_box { height: 100%; top: 80px; padding: 60px 10px 30px 10px; height: auto; bottom: inherit; top: 50%; transform: translateY(-50%);}
.smartphone #page.thankyou.edit_reservation #content { padding: 0 0 60px;}
.smartphone.body_ecommerce_thank_you #page.edit_reservation .heading.colour { border-bottom: 1px solid var(--color1);}
.smartphone #page.thankyou.edit_reservation #content:before { display: none;}
.smartphone .ibe_search_btn { text-align: center; }
.smartphone .ibe_search_wrapper { padding: 0 0 15px;}

.smartphone #booking_cnt.section_text { margin: 0 auto; }

/* FIX */
.smartphone section.no_slideshow { display: none;}
.smartphone.body_ecommerce_payment #bookingform_summary:not(.ecommerce.step #bookingform_summary) .dates,
.smartphone.body_ecommerce_payment #bookingform_summary:not(.ecommerce.step #bookingform_summary) .guests { font-size: 50%;}
.smartphone.body_ecommerce_payment #total_upfront .key { margin-bottom: 0;}
/* body.noslide.smartphone { padding-top: 0;} */
.smartphone .step_footer.fired { z-index: 9990;}
.smartphone .ztemplate_rooms .ztemplate .services .subcontents { z-index: 99999; top: 0;}
.smartphone #order_template_wrapper .zlabel.g8 span.number, .smartphone #order_template_wrapper .zlabel.g6 .fieldvalue { font-size: 100%; font-weight: var(--bold);}
.smartphone #order_template_wrapper .details_wrapper .zlabel.g6 .fieldkey { font-weight: var(--bold); font-size: 90%;}
.smartphone #order_template_wrapper .zlabel.g6 .fieldvalue:before { position: relative; top: 0;}
.smartphone #order_template_wrapper .zlabelprice { position: relative; top: 0;}
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) { flex-direction: column;}
.smartphone .ztemplate_rooms .step_content_wrapper .caption-cnt:not(.subcontents .caption-cnt) .caption { max-width: unset; margin: 0;}

.smartphone .purchase_flow_step { margin-top: 0;}
.smartphone .immersive_be .guests_wrapper .add_btn, .smartphone .immersive_be .guests_wrapper .rem_btn { position: relative; bottom: 0; top: 0; right: 0;}
.smartphone .immersive_be .guests_wrapper .add_btn:after, .smartphone .immersive_be .guests_wrapper .rem_btn:after { position: absolute; width: 30px; height: 30px; background-color: transparent; z-index: 1; content: ''; top: -6px; left: -3px;}

/* FIX Edit search mobile */
.edit_search .show_summary_btn { display: none; }
.smartphone .edit_search .show_summary_btn { display: block; position: relative; z-index: 2; }
.smartphone #bookingform_summary { position: fixed; top: 55px; width: 100%; margin: 0; padding: 0; left: 0;}
.smartphone #bookingform_summary.fired .summary {display: block;}
.smartphone #bookingform_summary .summary { display: none;}
.smartphone .bookingform_summary_cnt { position: absolute; width: 100%; z-index: 1; top: -170px; transition: .6s all cubic-bezier(.215, .61, .355, 1);}
.smartphone .bookingform_summary_cnt.fired { top: 45px;}
.smartphone .edit_search .show_summary_btn .varsimple { margin: 0!important;}
.smartphone.body_ecommerce_step #booking_btn,
.smartphone.body_ecommerce_order #booking_btn,
.smartphone.body_ecommerce_payment #booking_btn,
.smartphone.body_ecommerce_thank_you #booking_btn {display: none;}

/* Fix */
.smartphone #page.order #content .side .title.size_medium { display: none;}
.smartphone #page.order form .caption-fields .invoice .merge_group { padding: 10px;}
.smartphone #page.ecommerce { margin-bottom: 40px;}
.smartphone .ecommerce #cnt_forms form .newsletter { margin-top: 10px;}

/* FIX bei gallery rooms */
.template17 .caption-cnt {display: flex; align-items: center; background-color: transparent;}
.template17 .slick-slider {display: flex; align-items: center; height: fit-content !important;}
.template17 .caption-cnt .caption {margin: 0; position: relative !important;}
.template17 .caption-cnt .caption .slick-arrow {top:50%; transform: translateY(-50%);}
.template17 .caption-cnt .caption .slick-arrow.slick-prev {left: 0 !important; right: unset;}
.template17 .caption-cnt .caption .slick-arrow.slick-next {right: 0 !important; left: unset;}
.template17 .caption-cnt .caption .slick-dots {padding-bottom: 10px;}
.template17 .caption-cnt .caption .slick-dots li {margin: 0 4px;}
.template17 .caption-cnt .caption .slick-dots li button {background-color: var(--white);}
#template_detail_wrapper_12 .close_detail {right: 50% !important; transform: translateX(50%);}

.template12 .caption-cnt:not(.subcontents .caption-cnt) .caption:before {width: 60px; height: 60px; line-height: 60px; text-align: center; display: inline-block; font-family: var(--icon); font-weight: var(--light); color: var(--white); background-color: var(--purple); font-size: var(--medium); content: '\f030'; position: absolute; z-index: 1; cursor: pointer;}
.ecommerce .template_detail_wrapper .template18 .row .box .elem .caption-cnt .caption {position: relative; width: 100%;}

/* fix menù tendina */
.order form .form_select .elements_list,
.payment form .form_select .elements_list { top:30px }

.order #varsimple_edit_search, .payment #varsimple_edit_search {font-family: var(--sans); cursor: pointer; padding: 15px; background-color: var(--ocean); text-transform: uppercase; color: var(--white); font-size: var(--mini); font-weight: var(--bold); margin-top: 10px; width: 100%; text-align: center;}
.order form .newsletter input[type="checkbox"] {margin: 0 5px 0 0}
.order form .newsletter label {margin-top: 12px;}


/* fix BEI smartphone */
.smartphone .ztemplate_rooms .box.rooms .zinput.g6 {align-items: center; justify-content: center; width: 100%;}
.smartphone .ztemplate_rooms .zlabel.g13 .fieldvalue {font-size: var(--mini); text-align: center; margin-top: 10px;}
.smartphone .ztemplate_rooms .subcontents .elem {border: none;}
.smartphone .rates .template_detail_wrapper .content_detail_wrapper {width: 90%;}
.smartphone .ztemplate_rooms .subcontents .title {font-size: 130%;}
.smartphone .step_footer_wrap #cart_detail .subcontents .elem .zlabelprice {top: unset;}
.smartphone .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate) .template_filters .template_filter .filter_values .form_radio {flex-direction: column; background-color: var(--white); padding: 0; width: 100%;}
.smartphone .purchase_flow_step .template_filter .radio:before {left: calc(100% - 60px);}
.smartphone .purchase_flow_step .template_filter .radio.checked:after {left: calc(100% - 58px);}
.smartphone .purchase_flow_step .template_filter .radio:after {left: calc(100% - 26px);}
.smartphone #cart_summary_wrapper { padding: 0 15px 0px 15px; }
.smartphone .order #bookingform_summary, .smartphone .payment #bookingform_summary {position: unset;}
.smartphone .order #total_cost .key { margin-bottom: 0px; }
.smartphone #page.thankyou .btn {display: block;}
.smartphone.body_ecommerce_step .template_detail_wrapper .ztemplate .row .box.gallery .elem ul {display: flex; align-items: center; flex-direction: row; justify-content: center;}
.smartphone .ztemplate_rooms .subcontents .elem {background-color: var(--white);}
.smartphone .step_footer .total_amount {color: var(--purple);}
.smartphone #bookingform_summary .dates:before,
.smartphone #bookingform_summary .guests:before {font-size: 15px;}
.smartphone #varsimple_booking_btn_bei {display: none;}

@media (max-width: 1441px) {
    .step_footer_wrap {max-width: 1000px;}
}

body.de #page.order form .caption-fields .group_wrapper .field.element_12,
body.de #page.order form .caption-fields .group_wrapper .field.element_11,
body.de #page.order form .caption-fields .group_wrapper .field.element_14,
body.de #page.order form .caption-fields .group_wrapper .field.element_15 {width: calc(100% / 2 - 10px);}
body.de.smartphone .ibe_search_box input[type="submit"] {font-size: 90%;}
body.de.smartphone #page.order form .caption-fields .group_wrapper .field {width: 100%; padding: 0;}

/* fix offerte IBE */
.ztemplate_model_experience.grid .offers .caption-alt .g16,
.ztemplate_model_experience.grid .offers .caption-alt .g11,
.ztemplate_model_experience.grid .offers .caption-alt .g6,
.ztemplate_model_experience.grid .offers .caption-3 {display: none;}
.ztemplate_model_experience.grid .offers .caption-cnt img {min-height: 320px;}

/* fix services */
.subcontents .service_info p {padding-bottom: 10px; margin-bottom: 0;}

/* add to cart loader */
.dot_loading { display: none; position: fixed; z-index: 99999999; width: 100%; height: 100%; background-color: rgba(0,0,0,.7); top: 0; left: 0;}
.dot_loading.fired { display: block;}
.dot_loading:before { position: fixed; content: ''; left: 50%;  top: 50%;  margin: -25px 0 0 -25px;  border-bottom: 6px solid var(--purple); border-left: 6px solid var(--ocean);  border-right: 6px solid var(--ocean); border-top: 6px solid var(--purple);  border-radius: 100%; height: 50px;  width: 50px; animation: rot .6s infinite linear; }
@keyframes rot { from {transform: rotate(0deg);} to {transform: rotate(359deg);} }
