@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,300;0,400;1,500&display=swap');
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Solid.woff') format('woff'); font-style: normal; font-weight: 900; font-display: swap;}
@font-face { font-family: "Font Awesome 6 Brands"; src:url("../fonts/FontAwesome6Brands-Regular.woff") format("woff"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Thin.woff') format('woff'); font-style: normal; font-weight: 200; font-display: swap;}
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Regular.woff') format('woff'); font-style: normal; font-weight: 400; font-display: swap;}

* { margin: 0; padding: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
*:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}
body {margin: 0;line-height: 1;font-family: var(--sans);color: var(--grey);font-size: var(--size-base);font-weight: var(--font-weight-normal); overflow-x: hidden; }
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }
audio:not([controls]) { display: none; height: 0; }
[hidden], template { display: none; }
a {color: var(--grey); background: transparent; -webkit-transition: all .6s; -moz-transition: all .6s; -o-transition: all .6s; transition: all .6s; text-decoration: none!important; }
a:active, a:hover, a:focus { text-decoration: none; }
b, strong { font-weight: var(--font-weight-bold);}
svg:not(:root) { overflow: hidden; }
button, input, optgroup, select, textarea { margin: 0; color: inherit; font: inherit; }
input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; border:none; display: block; }
label { display: block; }
img { border: 0; vertical-align: middle; max-width: 100%; }
h1, h2, h3, h4, h5, h6 { font-weight: var(--font-weight-normal); line-height: 1; }
.clear { clear: both; }
.overflow { overflow: hidden; }
.oh { overflow: hidden; }
.nav { margin: 0; padding: 0; list-style: none; }
.nav
.nav > li { position: relative; display: block; }
.nav > li > a { position: relative; display: block; }
.nav-pills { display: block; }
.nav-pills > li { float: left; text-transform: none; font-weight: normal; }
.navbar { position: relative; }
.navbar-nav > li > a { line-height: 1; }
ul.cnt { margin:0; padding:0; display:flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: stretch; }
.cnt { 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: flex-start; align-items: flex-start; justify-content: center; }
.overlay { opacity: 0; z-index: -1;}
ul { padding-left: 35px; margin: 15px 0;}
/*Elementi comuni ai template*/
.caption-cnt { 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 .title { margin: 0 0 15px 0; font-size: 200%; }
.ztemplate .title a { color: var(--grey); }
.zsimplebutton a,
.zlink a { padding: 15px 20px; display: inline-block; background-color: var(--color2); font-weight: var(--font-weight-bold); font-size: 90%; color: var(--white); text-transform: uppercase; text-align: center; letter-spacing: 3px; }
/* Slick Dots */
.slick-dots { text-align: center; z-index: 10; position: absolute; left: 0; right: 0; bottom: 0px; }
.slick-dots li { margin: 0 5px; display: inline-block; }
.slick-dots li button { position: relative; width: 12px; height: 12px; border-radius: 50%; background-color: rgba(0,0,0,0.5); font-size: 0;}
.slick-dots li.slick-active button { background-color: var(--color1); }
/* Slick Arrow */
button.slick-next, button.slick-prev { z-index: 11; position: absolute; top: calc(50% - 24px); background-color: transparent; border: none; font-size: 0;}
button.slick-prev { left: 0; right: initial; }
button.slick-next { left: initial; right: 0; }
button.slick-prev:before,
button.slick-next:before { font-family: var(--font-icon); font-weight: var(--font-weight-light); font-size: 48px; }
button.slick-prev:before{ content: '\f177'; }
button.slick-next:before{ content: '\f178'; }
/* Infosplash */
#infosplash {position: fixed; z-index: 9999; top: 0; background-color: rgba(0,0,0,.7); left: 0; width: 100%; height: 100%;}
#infosplash_container {height: 100%; padding: 15px}
.infosplash_wrapper { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; flex-direction: column; }
#infosplash .close {color: var(--white); position: relative; top: -10px; cursor: pointer;}
#infosplash_content {max-width: 640px}
#infosplash .ztemplate .caption-cnt { background-color: var(--white); text-align: center; flex-direction: column;}
#infosplash .ztemplate .caption-cnt .caption-alt {padding: 15px; width: 100%; text-align: left; }
#infosplash .ztemplate .title { font-size: 200%; }
#infosplash .ztemplate .ztextarea { font-size: 110%; line-height: 1.3; }
#infosplash .ztemplate .zsimplebutton { margin: 20px 0; }
/* Video in homepage al posto della slideshow */
#slideshow_cnt {height: 100vh; position: relative; }
.desktop #slideshow_cnt .gradient {background: linear-gradient(0deg, rgba(255,255,255,0) 30%, rgba(0,0,0,0.7) 100%);position:absolute;top:0;left:0;right:0;z-index:1;height: 60vh;}
#slideshow, #slideshow .elem { height: 100vh; }
#slideshow img { width: 100%; object-fit: cover; height: 100vh; }
#slideshow .caption {color: var(--white);text-align: left; text-shadow: 0 2px 9px rgba(0,0,0,0.20);z-index: 9;position: absolute;left: 60px; bottom: 50%; transform: translateY(50%);font-size: 250%; max-width: 40%;}
#slideshow .caption h3 { margin: 0 0 25px 0; font-size: 220%; font-family: var(--serif); color: var(--white); font-weight: var(--font-weight-light); }
#slideshow .slick-dots { text-align: left; z-index: 9; position: absolute; left: 50px; bottom: 60px; }
#slideshow .slick-dots li button { font-size: 140%; color: rgba(255, 255, 255, 0.5); background: transparent; position: relative; }
#slideshow .slick-dots li button:after { margin-right: 20px; width: 0; height: 2px; text-align: left; z-index: 3798; position: absolute; left: 0px; bottom: 3px; content: ''; transition: .3s }
#slideshow .slick-dots li.slick-active button { margin-right: 100px; color: var(--white); text-transform: lowercase; text-align: left; line-height: 1; letter-spacing: 0; position: relative; }
#slideshow .slick-dots li.slick-active button:after { width: 90px; height: 2px; background-color: var(--white); text-align: left; content: ''; left: calc(100% + 5px); transition: .3s}
/* Scroll down */
#scroll_down { position: absolute; right: 131px; bottom: 140px; width: 26px; height: 90px; z-index: 3; }
#scroll_down .shade { background-image: url(../images/bg/shade_bg.svg); filter: brightness(0) invert(1); width: 26px; height: 84px; background-position: 0px 0px; background-repeat: repeat-y; background-size: cover; animation: animatedBackground 200s linear infinite;}
#scroll_down .arrow { background-image: url(../images/icons/arrow_down.svg); background-repeat: no-repeat; background-size: contain; right: unset; top: unset;  width: 23px; height: 32px; animation: scroll_down 1.6s ease-out infinite; filter: brightness(0) invert(1);}
/* header */
header { padding: 20px; width: 100%; height: 144px; text-align: left; z-index: 9999; position: fixed; left: 0; top: 0; transition: .3s; color: var(--white); }
header.cnt { justify-content: space-between; }
header .logo { margin: 20px 0 0 30px; display: inline-block; text-align: center; }
header .logo a { display:block; }
header .logo img { transition: .3s; /*filter: brightness(0) invert(1);*/ }
header.clean { height: 144px; }
header.colour { background-color: var(--light_color2); box-shadow: 0 2px 20px 0 rgba(0,0,0,0.34); height: 110px; align-items: center; }
header.colour .logo img { transform: scale(.5) translateY(-5px);}
body.domomea header.colour .logo img { transform: scale(.35) translateY(-5px);}
header.colour .logo { margin: 0 0 0 20px}
header.colour .col.cnt { align-items: center; }
header #top_contacts { margin: 0 0 0 50px;text-align: center; align-items: center; justify-content: flex-start; }
header .language_cnt { margin: 0 0 0 5px; padding: 15px 20px; border-left: 1px solid var(--white); text-align: left; text-transform: uppercase; }
header.colour .section_booking_btn .varsimple { background-color: var(--color1);}
.white_logo { filter: brightness(0) invert(1); }
.menu_open { opacity: 0; }
#language_btn { display: block; font-weight: var(--font-weight-bold); font-size: 95%; color: var(--white); cursor: pointer;}
#language_btn:after { font-family: var(--font-icon); font-weight: var(--font-weight-solid); content: '\f0d7'; margin-left: 5px; }
#language { height: 50px; display: flex; text-align: left; align-items: center; text-transform: uppercase; }
#language li a { display: block; font-size: 90%; color: rgba(255, 255, 255, 0.5); text-transform: uppercase;}
#language li.active a { font-family: var(--sans); font-weight: var(--font-weight-bold); }
#language { display: none; height: auto; }
#language.fired { display:block; height: auto; position: absolute; }
#language.fired li.active {display: none;}
#language .nav-pills > li { float: none!important}
#language.fired ul { margin: 5px 0 0 0;padding: 0 5px;background: var(--color1);}
#language.fired li { margin: 0; padding: 5px 0; display: block; float: none; }
#language.fired li a { color: var(--white); }
.section_booking_btn { display: inline-block; text-align: center; cursor: pointer; font-family: var(--sans); font-weight: var(--font-weight-bold); font-size: 85%; letter-spacing: 3px; text-transform: uppercase; }
.section_booking_btn .varsimple { padding: 15px 20px; background-color: var(--color2); }
.section_contacts_btn { margin: 0 10px; display: inline-flex; text-align: center; }
.section_contacts_btn .varlink { margin: 0 10px }
.section_contacts_btn .varlink a { display: block; text-align: center; position: relative; color: var(--white); font-size: 0; }
.section_contacts_btn .varlink a:before { font-family: var(--font-icon); font-weight: var(--font-weight-normal); font-size: 20px; }
.section_contacts_btn .section_link_email a:before { content: "\f0e0";  }
.section_contacts_btn .section_link_tel a:before { content: "\f095";  }
.menu_btn { text-align: right; align-items: center; cursor: pointer; }
.menu_btn .text span { font-family: var(--sans); font-weight: var(--font-weight-bold); font-size: 80%; letter-spacing: 6px; }
.menu_btn .bars { margin: 0 0 0 10px; width: 35px; }
.menu_btn .bars .bar { margin: 6px 0; width: 100%; height: 3px; background-color: var(--white); content: ''; }
.menu_btn .bars .bar:nth-of-type(1){ top: -4px; transition: .3s }
.menu_btn .bars .bar:nth-of-type(2){ top: 4px; transition: .3s }
.menu_btn.fired { z-index: 9999; position: fixed; right: 20px; }
.menu_btn.fired .text { top: 3px; position: relative;color: var(--color2);}
.menu_btn.fired .bars .bar:nth-of-type(1) {transform: rotate(45deg); position: relative; top: 8px;}
.menu_btn.fired .bars .bar:nth-of-type(2) { transform: rotate(-45deg);}
.menu_btn.fired .bars .bar { background-color: var(--color2);}
#booking_open { opacity: 0; z-index: 9999; pointer-events: none;}
.modal { opacity: 0; }
/* Seo homepage */
.body_home .top_seo { max-width: 1330px; margin: 30px auto; padding: 0 0 30px 15px;}
/* Pagine interne e Vetrina */
#page,
#showcase {margin-top: 110px;font-size: var(--size-base); min-height: calc(100vh - 434px);}
#page .heading,
#showcase .heading { padding: 40px 0; text-align: center; max-width: 1200px; margin: 0 auto; }
#page .heading strong,
#showcase .heading strong { font-weight: var(--font-weight-bold); color: var(--color1); }
#page .heading.colour,
#showcase .heading.colour { padding: 60px 0 80px 0; background-color: var(--color2); max-width: unset;}
#page .heading.colour strong,
#showcase .heading.colour strong { color: var(--white); }
#page .heading.colour #page_name,
#page .heading.colour .summary,
#showcase .heading.colour #container_name,
#showcase .heading.colour .summary { color: var(--white); }
#page .heading .body,
#showcase .heading .body { margin:  0 auto; max-width: 970px; }
#page .heading .top_seo,
#showcase .heading .top_seo { font-size: 110%; color: var(--grey); text-align: center; margin-bottom: 10px;}
#page .heading .top_seo:before,
#showcase .heading .top_seo:before { width: 25px; height: 4px; background-color: #EDEDED; text-align: left; content: ''; }
#page.restaurant .heading .top_seo { text-align: left;}
#page .heading .title,
#showcase .heading .title { margin: 0 0 10px 0; font-size: 200%; color: var(--color2); text-align: center; font-weight: var(--font-weight-bold); }
#page .heading .title .varsimple,
#showcase .heading .title .varsimple { font-size: 2em;}
#page .heading #page_name,
#showcase .heading #page_name { font-family: var(--serif); font-weight: var(--font-weight-bold); }
#page .heading .summary,
#showcase .heading .summary { font-size: 150%; line-height: 1.3; }
#page .heading.over,
#showcase .heading.over { margin: -80px auto 0 auto;padding: 40px 0 10px 0; max-width: 1200px; background-color: var(--white); box-shadow: 0px -51px 45px -14px rgba(0,0,0,0.29); position: relative; z-index: 2; }
#page .heading.over .body,
#showcase .heading.over .body { padding: 0 40px; max-width: inherit; }
#page .heading.over .body .left,
#showcase .heading.over .body .left { margin: 0 40px 0 0; width: 70%; text-align: left; }
#page .heading.over .body .left .title,
#showcase .heading.over .body .left  .title { text-align: left; }
#page .heading.over .body .left .summary,
#showcase .heading.over .body .left  .summary { margin: 0 0 15px 0; }
#page .heading.over .body .right,
#showcase .heading.over .body .right { padding: 15px; background-color: var(--ice); width: 35%}
#page #content,
#showcase #content { margin: 30px auto; max-width: 1200px; overflow: hidden; }
#page #slideshow_cnt,
#showcase #slideshow_cnt { max-height: 50vh; overflow: hidden; }
#page #slideshow img,
#showcase #slideshow img { max-height: 50vh; }
#page #content .text_dyn { font-size: 110%; line-height: 1.2; }
#page #content .text_dyn > .fieldvalue { margin-bottom: 30px;}
#page #content .text_dyn p { margin-bottom: 15px;}
#page #content .text_dyn a { text-decoration: underline!important;}
#page #content img.left {float: none!important; margin: 0 auto 30px!important; min-width: 100%; }
#page .split_text { margin: 0 auto; max-width: 1024px; column-count: 2; column-gap: 40px; font-size: 110%; line-height: 1.5; }
#page #content .split_text .text_dyn { line-height: 1.5;  }
#page.content_floated_image #content .text_dyn > .fieldvalue { margin-bottom: 25px; display:block; clear:both; line-height:1.5; overflow:hidden; }
#page.content_floated_image #content .text_dyn > .fieldvalue h2 { margin:20px 0 10px 0 }
#page.content_floated_image #content img.left { float: left!important; margin: 0 25px 0 0!important; min-width: auto; max-width: 50%}
#page.content_floated_image #content img.right { float: right!important; margin: 0 0 0 25px!important; min-width: auto; max-width: 50%; }
#page.content_floated_image #content .fieldvalue ul { overflow: hidden;}
/* Error landing */
.not_found .section_page_message { margin: 90px auto 200px; max-width: 920px; padding: 40px; border-bottom: 5px solid var(--color1); background-color: #f8f8f8;}
.section_big_link { margin-top: 40px; }
.section_big_link a { border: 2px solid var(--color1); padding: 10px 15px; text-transform: uppercase; font-family: var(--sans); font-weight: var(--font-weight-bold); font-size: 85%;}


/* BEI Immersivo */

/*IMPORTANTE - START*/
#pf_2_sf .element_7 {display: none;}
#pf_2_sf .element_20 {display: none;}
#template8 .caption-3 {display: none;}
#template8 .fieldvalue.f10, #page.offer .fieldvalue.f10 {display: none;}
#template8 .fieldkey.f10, #page.offer .fieldkey.f10 {display: none;}
/*IMPORTANTE - END*/

#pf_4_sf .cal-closed { display: none; } /* calendario Servizi */
#pf_4_sf .template_calendar { top: inherit;}

.ztemplate_rooms .purchase_flow_step.purchase_flow_3_step .ztemplate .row:not(.subcontents .row) { margin-left: 0}

/* Layer Background */
.layer {background-color: rgba(0,0,0,.8); position: fixed; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; z-index: -1; transition: .7s}
.layer.fired { opacity: 1; z-index: 997 }


/* Step Footer */
.step_footer { opacity: 0;}
body.step_footer_show { padding-bottom: 84px}

/* Step */
#bookingform_summary .dates { display: flex; align-items: center; color: var(--white)}
#bookingform_summary .dates:before { font-family: var(--font-icon); content: '\e0d6'; margin-right: 10px; }
#bookingform_summary .dates .value:after { font-family: var(--font-icon); content: '\f105'; margin: 0 10px; font-size: 70%}
#bookingform_summary .dates .value:last-of-type:after { display: none;}
#bookingform_summary .guests { display: flex; align-items: center; color: var(--white)}
#bookingform_summary .guests:before { font-family: var(--font-icon); content: '\f8f7'; margin-right: 10px; }

.sticky_element { position: sticky; top: 110px; z-index: 95; }
.edit_search { font-size: 120%; margin-top: 0; background-color: var(--color2); padding: 10px 15px}
.edit_search.fixed { position: fixed; z-index: 99; top: 119px; left: 0; width: 100%; }
.edit_search .summary_title { text-align: center; color: var(--white); font-weight: var(--font-weight-medium); margin-bottom: 15px; line-height: 1.2;}
.edit_search .summary { align-items: center}
.edit_search .dates, .edit_search .guests { margin-right: 30px}
.edit_search .varsimple { cursor: pointer; padding: 10px 30px 10px 30px; border: 1px solid var(--white); background-color: var(--white); text-transform: uppercase; color: var(--grey); font-size: 80%}
.edit_search .varsimple:before { font-family: var(--font-icon); content: '\f044'; margin-right: 5px; color: var(--color2);}

/* Step servizi */
.purchase_flow_step .template_filter { position: relative; z-index: 2; left: 15px; padding: 15px; background-color: var(--white); display: block; width: 290px; box-shadow: 0 15px 22px 0 rgb(0 0 0 / 15%) }
.purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate),
.services_only .purchase_flow_step .ztemplate:not(.subcontents .ztemplate) { display: flex; height: 100%; margin: 60px auto 90px; padding: 0 15px; max-width: 1570px}
.purchase_flow_step.purchase_flow_3_step .ztemplate .row:not(.subcontents .row),
.services_only .purchase_flow_step .ztemplate .row:not(.subcontents .row) { margin-left: 20px; width: 100%}
.template_filter.filter_checkbox { position: sticky; top: 150px; left: 0;}
.template_filters { text-transform: uppercase; color: var(--grey); font-weight: var(--font-weight-medium); margin-bottom: 30px}
.template_filters .filter_checkbox .hidden_form_element { display: none;}
.template_filters .filter_checkbox .filter_key { display: flex; align-items: center; color: var(--white); text-align: left; margin-bottom: 20px; background-color: var(--color2);}
.template_filters .filter_checkbox .filter_key:before { color: var(--white); font-family: var(--font-icon); content: '\e0ad'; font-size: 100%; margin-right: 5px}
.template_filters .form_checkbox { display: flex; flex-direction: column; justify-content: center; margin: 0 auto; cursor: pointer;}
.template_filters .form_checkbox .checkbox { margin: 0 0 10px 0; padding-bottom: 10px; border-bottom: 1px dashed #dedede; position: relative; padding-right: 5px; text-align: left;}
.template_filters .form_checkbox .checkbox .value { padding-right: 30px}
.template_filters .form_checkbox .checkbox:before { content: ''; width: 30px; height: 20px; border-radius: 100px; position: absolute; z-index: 1; left: calc(100% - 30px); top: -3px; border: 2px solid var(--color2); transition: .6s;}
.template_filters .form_checkbox .checkbox:after { content: ''; width: 14px; height: 14px; border-radius: 100px; position: absolute; z-index: 1; left: calc(100% - 26.5px); top: 0; background-color: var(--color2); transition: .3s;}
.template_filters .form_checkbox .checkbox.checked:before { background-color: var(--color2); border-color: var(--color2); }
.template_filters .form_checkbox .checkbox.checked:after { left: calc(100% - 17px); background-color: var(--white)}

.ztemplate_rooms .ztemplate .services { display: flex; flex-wrap: wrap;}
.ztemplate_rooms .ztemplate .services .elem { width: calc(100% / 3 - 20px); margin: 10px; border: 5px solid #F5F5F5; transition: .4s; }
.ztemplate_rooms .ztemplate .services .elem .caption { width: 100%}
.ztemplate_rooms .ztemplate .services .elem .caption-alt:not(.subcontents .caption-alt) { width: 100%; position: absolute; padding: 20px; left: 0; bottom: -70px; background-color: transparent; color: var(--white); transition: .3s}
.ztemplate_rooms .ztemplate .services .elem:hover .caption-alt:not(.subcontents .caption-alt) { bottom: 0}
.ztemplate_rooms .ztemplate .services .elem .caption-cnt:not(.subcontents .caption-cnt) { background-color: #000; overflow: hidden;}
.ztemplate_rooms .ztemplate .services .elem .caption-cnt img { min-width: unset; width: 100%; height: 540px; object-fit: cover; transition: .6s; opacity: .8}
.ztemplate_rooms .ztemplate .services .caption .zlabel.g5 { position: absolute; z-index: 3; top: 20px; left: 20px; background-color: var(--green); color: var(--grey); padding: 10px; font-weight: var(--font-weight-medium); text-transform: uppercase}
.ztemplate_rooms .ztemplate .services .subcontents { display: none;}
.ztemplate_rooms .ztemplate .services .caption-alt .zlabel.g6 { border-top: 1px dashed; margin-top: 10px; padding-top: 10px; font-size: 130%; display: flex; align-items: center}
.ztemplate_rooms .ztemplate .services .caption-alt .zlabel.g6:before { font-family: var(--font-icon); content: '\f05a'; margin-right: 5px}
.ztemplate_rooms .ztemplate .services .caption-alt:not(.subcontents .caption-alt) .zlabel.g6 { display: none;}
.ztemplate_rooms .ztemplate .services .elem .caption .zimage { overflow: hidden}
.ztemplate_rooms .ztemplate .services .zlabel.g8:not(.subcontents .zlabel.g8) { background-color: var(--color2); color: var(--white); text-transform: uppercase; text-align: center; padding: 15px; cursor: pointer;}

.services-form { display: none; position: fixed; top: 190px; left: 0; right: 0; margin: 0 auto; z-index: 9999}
.services-form.fired { display: block;}
.services-form #cnt_forms { position: relative; padding-top: 40px}
.services-form .close_btn { cursor: pointer; position: absolute; z-index: 2; top: 0; right: 0; left: inherit; border-radius: unset; width: 30px; height: 30px; border: unset; background-color: var(--color2);}
.services-form .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: '';}
.services-form .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: '';}
.services-form .close_btn:hover { background-color: var(--color2); }
.services-form #cnt_forms form .form_element_title { font-size: 85%}
.services-form .pf_form form .field.select .form_element_title, .services-form .pf_form form .field.text .form_element_title { font-size: 71%!important} /* fix */
.services-form .pf_form form .date_from_html, .services-form .pf_form form .form_select { font-size: 100%} /* fix */


/* Order */
#order_template_wrapper .details_wrapper { display: none; font-size: 100%; background-color: var(--white); padding: 15px; margin: 15px 0; border: 1px solid #dedede}
/* CSS per subtotale in order */
#order_template_wrapper .service_title .caption:not(.subcontents .caption) { display: flex; align-items: flex-start; border-bottom: 1px solid #dedede;}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .price { margin-left: auto; font-size: 130%; display: flex; align-items: flex-start; color: var(--color1);}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .price:before { content: '\20ac'; margin-right: 3px;}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .price .number { margin: 0 1px 0 0; font-size: 100%; }
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .price .comma { margin: 0; vertical-align: super; font-size: 55%; position: relative; top: 4px;}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .price .decimal { vertical-align: super; font-size: 70%; position: relative; top: 3px;}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .title { border-bottom: unset; cursor: pointer; padding-right: 15px; display: flex; align-items: flex-start;}
#order_template_wrapper .service_title .caption:not(.subcontents .caption) .title:before { color: var(--gray); font-family: var(--font-icon); content: '\f0fe'; margin-right: 3px; font-size: var(--size-base);position: relative; top: 5px; margin-right: 5px;}
#order_template_wrapper .service_title .elem.fired .caption:not(.subcontents .caption) .title:before { content: '\f146';}
#order_template_wrapper .service_title .subcontents { display: none; padding-top: 5px;}
#order_template_wrapper .service_title .elem.fired .subcontents { display: block; }
/* FINE - CSS per subtotale in order */

/* Payment */
.no_payment_info { margin: 10px 0; padding: 15px; border: 1px solid var(--color2); color: var(--color1);}
.no_payment_info:before { font-family: var(--font-icon); color: var(--color2); content: '\f05a'; margin-right: 5px }
#page.payment #content .title:not(.title_wrapper .title) { margin: 0 0 5px 0; font-size: 160%; }
#page.payment #content .title:not(.title_wrapper .title), #page.payment #content .side #bookingform_summary .title { font-size: 190%}
#page.payment #content .side .title:not(.title_wrapper .title) { font-size: 150%}
#page.payment #content .summary { font-size: 105%; }
#page.payment #order_summary { margin: 60px auto; font-size: 130%}
#page.payment #order_summary .caption { text-align: center; max-width: 640px; margin: 0 auto}
.product { display: flex; align-items: center; margin-bottom: 5px; padding-bottom: 5px; border-bottom: 1px dashed #dedede}
.product .total { margin-left: auto; order: 3; color: var(--color1); }
.product .total:before { content: '\20ac'; }
.product .prod_qty { font-size: 70%; border-radius: 100%; order: 1; margin-right: 5px; background-color: var(--color1); width: 20px; height: 20px; display: flex; justify-content: center; text-align: center; color: var(--white); line-height: 20px;}
.product .prod_qty:before { content: 'x';}
.product .product_name { order: 2; }
#page.payment { background-color: var(--ice); }
#page.payment #content { margin: 30px auto 70px auto; padding-bottom: 60px}
#page.payment #content .cnt .body,
#page.payment #content .cnt .side { margin: 0 50px 0 0; padding: 20px; width: 55%; background-color: var(--white); color: var(--color2);}
#page.payment #content .cnt .side { margin: 0; width: 45%; }
.payment.corner .caption { background-color: var(--ice); padding: 10px 10px 20px; margin-bottom: 20px; border: 1px solid #d8d8d8}
.stripe_payment { max-width: unset!important;}
#stripe_payment { padding: 15px; width: calc(100% - 20px); margin: 20px auto 0; text-transform: uppercase; color: var(--white); background-color: var(--color2);}
.payment.corner input { padding: 8px; width: 100%; margin-top: 5px; border: 1px solid #dedede;}
.payment.corner input[type="button"] { background-color: #10c400; color: white; }
#nexi-payment-form .nexi-owner-name, #nexi-payment-form .nexi-owner-surname, #nexi-payment-form .nexi-owner-email { width: calc(50% - 20px); float: left; margin: 10px}
#nexi-payment-form .nexi-owner-email { margin-bottom: 25px}
#nexi-payment-form > div { width: calc(50% - 20px); float: left; margin: 7px 10px 0}
#xpay-card { margin-top: 5px; padding: 8px 8px 3px; background-color: var(--white); border: 1px solid #dedede}
#pagaBtn, .bank_transfer_payment input#bank_transfer_payment { clear: both; padding: 15px; width: 100%; margin: 20px auto 0; text-transform: uppercase; color: var(--white); background-color: var(--color2);}
.bank_transfer_payment > div { padding: 0; }
.bank_transfer_payment > div p { margin-bottom: 10px; color: var(--grey); font-size: 100%}
#xpay-card-errors { color: var(--color2); font-size: 90%}
.nexi_loading { text-align: center}
.info_test_payment { padding: 10px; border: 1px dashed #cddc39; display: flex; align-items: center; background-color: #f7ffa4; margin: 10px}
.info_test_payment .info_key { font-weight: var(--font-weight-medium); text-transform: uppercase; margin-right: 15px}
.info_test_payment .info_key:before { font-family: var(--font-icon); content: '\f09d'; margin-right: 5px; font-weight: var(--font-weight-solid)}

/* PAYMENT METHODS */
.payment_title { text-transform: uppercase; font-weight: var(--font-weight-bold); margin-bottom: 15px;}
.caption.cards .payment_title:before { font-family: var(--font-icon); color: var(--color2); content: '\f09d'; margin-right: 5px;}
.caption.bank_transfer .payment_title:before { font-family: var(--font-icon); color: var(--color2); content: '\e528'; margin-right: 5px;}



/* thankyou page */
#page.thankyou .title { color: var(--white);}
#page.thankyou { min-height: calc(100vh - 532px); text-align: center; margin-bottom: 90px;}
#page.thankyou #content { font-size: 120%; box-shadow: 0 2px 6px 0 rgba(0,0,0,0.05);  max-width: 640px; margin: -30px auto 0; background-color: var(--white); padding: 60px 30px 30px; position: relative; overflow: visible}
#page.thankyou #content:before { font-family: var(--font-icon); content: '\e390'; position: absolute; top: -40px; font-size: 220%; left: 50%; transform: translateX(-50%); z-index: 2; color: var(--white); background-color: var(--color2); width: 80px; height: 80px; border-radius: 100%; line-height: 80px; font-weight:var(--font-weight-solid) }
#page.thankyou #content p { margin-bottom: 15px; }
#page.thankyou .btn .varlink a { font-size: 70%}

/* BEI Offers */
.ztemplate_offers .zimage { background-color: var(--black); }
.ztemplate_offers .elem .caption-cnt img { height: 370px; object-fit: cover; opacity: .8; transition: .4s; position: relative; left: 0; }
.ztemplate_offers .fieldkey.f11, #page.offer .fieldkey.f11 { display: none;}
.ztemplate_offers .zinput.g11 .fieldkey { align-items: center; color: var(--grey); margin-top: 10px; background-color: var(--ice); padding: 7px}
.ztemplate_offers .zinput.g11 .fieldkey:before { font-family: var(--font-icon); content: '\f755'; margin-right: 6px; font-weight: var(--font-weight-solid)}
.ztemplate_offers .zinput.g11 .fieldvalue { display: none;}
.ztemplate_offers .zlabel.g16 { color: var(--grey); margin-bottom: 10px; padding-bottom: 5px; border-bottom: 1px solid #dedede; display: flex; align-items: center}
.ztemplate_offers .zlabel.g16:before { font-family: var(--font-icon); content: '\e0d6'; margin-right: 6px}
.ztemplate_offers.ztemplate_floated .caption-add { display: none;}
.ztemplate_offers .zsimplebutton, .ztemplate_offers .zlink { display: inline-block; margin-top: 20px; font-size: 100%; }
.ztemplate_offers .ztextarea { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden;  }
.ztemplate_offers .ztextarea .fieldvalue { background-color: var(--color3); width: 50%; height: 100%; padding: 20px; overflow: auto; position: relative; left: 100%; transition: .4s;}
.ztemplate_offers .ztextarea .fieldvalue::-webkit-scrollbar { width: 4px; }
.ztemplate_offers .ztextarea .fieldvalue::-webkit-scrollbar-thumb { background-color: var(--color1);}
.ztemplate_offers .elem:hover .ztextarea .fieldvalue { left: 50%}
.ztemplate_offers .elem .caption-cnt .zimage { overflow: hidden;}
.ztemplate_offers .elem:hover .caption-cnt img { left: -50%; opacity: .4}
/* BE no results */

/* Nessuna disponibilità */
body.no_results .cart_btn { display: none;}
body.no_results .edit_search { padding-bottom: 60px}
.pf_no_results {  font-size: 150%; color: var(--grey); margin-bottom: 90px; text-align: center; box-shadow: 0 2px 6px 0 rgba(0,0,0,0.05);  max-width: 640px; margin: 90px auto; border-top: 15px solid var(--color2); padding: 60px 30px 30px; position: relative; overflow: visible}
.pf_no_results:before { font-family: var(--font-icon); content: '\e46e'; position: absolute; top: -40px; font-size: 180%; left: 50%; transform: translateX(-50%); z-index: 2; color: var(--white); background-color: var(--color2); width: 80px; height: 80px; border-radius: 100%; line-height: 80px; font-weight:var(--font-weight-light) }
body.no_results .total_amount { display: none; }

/* Risultati con offerte non trovate */
.offer_not_found { font-size: 150%; color: var(--color1);}
.offer_not_found { text-align: center; box-shadow: 0 2px 6px 0 rgba(0,0,0,0.05);  max-width: 640px; margin: 60px auto 0; border-top: 5px solid var(--color2); padding: 60px 30px 30px; position: relative; overflow: visible}
.offer_not_found:before { font-family: var(--font-icon); content: '\f848'; position: absolute; top: -40px; font-size: 150%; left: 50%; transform: translateX(-50%); z-index: 2; color: var(--white); background-color: var(--color2); width: 80px; height: 80px; border-radius: 100%; line-height: 80px; font-weight:var(--font-weight-solid) }

.smartphone .pf_no_results { margin: 60px 15px 90px}
.smartphone .template_filters .form_checkbox .checkbox { margin: 10px 0 0 0}
.smartphone #page .heading, #showcase .heading { padding-bottom: 0}
.smartphone #page, .smartphone #showcase { padding-top: 55px}

/* 404 */
.not_found_title {  font-weight: var(--font-weight-bold); font-size: 90px; color: var(--color3); }
.page_not_found .page_top { margin-bottom: 60px; padding-top: 40px  }
.page_not_found .section_link { margin: 60px auto }
.body_404 header, .body_404 footer { display: none;}
.page_not_found .page_top { text-align: center;}
.body_404 .logo { margin-bottom: 60px;}

/* User Privacy */
.body_user_privacy_panel form .caption-fields .field { width: 100%}


@media (max-width: 1340px){
    .ztemplate_rooms .ztemplate .services .elem { width: calc(50% - 20px)}
    .purchase_flow_step .template_filter { width: 250px; }
    .template_filters .filter_checkbox .filter_key { font-size: 100%; }
    .template_filters .form_checkbox .checkbox .value { font-size: 85%; }
    #page .heading.over .body .right, #showcase .heading.over .body .right { width: 350px}
    #page .heading.over .body .left, #showcase .heading.over .body .left { width: calc(100% - 350px)}

}

@media (max-width: 1023px){
    .ztemplate_rooms .ztemplate .services .elem { width: calc(100% - 20px)}
    #page, #showcase { padding: 15px; }
    #page .heading.over .body .left, #showcase .heading.over .body .left { width: 100%;}
    #page .heading.over .body .right, #showcase .heading.over .body .right { width: 100%; margin-top: 30px; display: flex; justify-content: center; flex-wrap: wrap; align-items: center; }
    #page.meeting_room .heading.over .body .right { display: block;}
    #page.room .btn { margin-left: 30px; }
    #page.room .zinput, #page.room .zradio { margin: 0 20px; }
    #page .heading.over .body, #showcase .heading.over .body { display: block; }
    .body_home .top_seo { margin-bottom: 0; padding-bottom: 0;}

}

@media (max-width: 768px){
    .purchase_flow_step.purchase_flow_3_step .ztemplate:not(.subcontents .ztemplate) { flex-direction: column; margin-top: 15px; }
    .purchase_flow_step .template_filter { width: 100%}
    .purchase_flow_step.purchase_flow_3_step .ztemplate .row:not(.subcontents .row) { margin-left: 0; }
    #bookingform_summary .cnt { display: block;}
    #bookingform_summary .dates, #bookingform_summary .guests { justify-content: center; margin-bottom: 15px; }
    .edit_search .summary { text-align: center; }
    #page .split_text { column-count: 1;}
    #page #content, #showcase #content { margin-top: 0}
    #page .heading .summary { margin-bottom: 15px; }
}

@media (max-width: 767px){
    .sticky_element { position: inherit;}
}

@media (width: 393px){ /* fix per smartphone xiaomi */
    header .logo img, header.colour .logo img { transform: scale(.5) translateY(-47px)!important}
}

@media (max-width: 375px){
    header .logo img, header.colour .logo img { transform: scale(.5) translateY(-30px)!important;}

}

@media (max-width: 360px) {
        header .logo img, header.colour .logo img { transform: scale(.7) translateY(-7px)!important;}
}


/* mobile general site*/
.smartphone #slideshow .caption { left: 0; padding: 0 20px; width: 100%; max-width: unset; }
.smartphone #slideshow .slick-dots { left: 15px; padding-left: 0;}
.smartphone #slideshow .slick-dots li button { height: auto;}
.smartphone #slideshow .slick-dots li button:after { bottom: 10px; }
.smartphone #scroll_down { right: 15px;}
.smartphone.body_camera #page { padding: 0;  }
.smartphone.body_camera #page .heading.over { margin: 0 auto; padding: 0}
.smartphone.body_camera #page .heading.over .body .left { padding: 15px; margin: 0}
.smartphone.body_camera #page .heading.over .body { padding: 0; padding: 0; }
.smartphone #page .heading.colour, .smartphone #showcase .heading.colour { padding: 25px; margin-bottom: 15px}
.smartphone .ztemplate_floated .elem { width: 100%; margin: 0 auto 40px;}
.smartphone .ztemplate_floated .caption:before { display: none; }
.smartphone .ztemplate_floated .box { padding-top: 0; }
.smartphone #showcase .ztemplate_floated { margin-top: 15px; }
.smartphone #page.experience .cnt { flex-direction: column}
.smartphone #page.experience .text.g3 { width: 100%; margin-top: 15px;}
.smartphone #page.experience .graph_container { width: 100%; padding: 15px; }
.smartphone header .logo img, .smartphone header.colour .logo img { width: 60px; margin-left: 15px; transform: unset!important}
.domomea.smartphone header .logo img, .domomea.smartphone header.colour .logo img { width: 47px;}


/* fix altezza */
@media (max-height: 720px) {
    #slideshow .caption { bottom: 35%; font-size: 200%;}
    #slideshow .caption h3 { font-size: 150%; }

}
