@font-face { font-family: "F37Ginger"; src: url("../fonts/F37Ginger-Bold.woff") format("woff"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "F37Ginger"; src: url("../fonts/F37Ginger.woff") format("woff"); font-style: normal; font-weight: 400; font-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;}


 /* VARIABILI */
 :root {
     --color1: #3B2B2C;
     --color2: #af9e93;  /* 9F8C76 */
     --color3: #3B2F2F;
     --grey: #575757;
     --ice: #f5f5f5;
     --white: #ffffff;
     --black: #000000;
     --green: #d8ebcc;

     --sans: "Gantari", sans-serif;
     --serif: "Cactus Classical Serif", serif;
     --font-icon: 'Font Awesome 6 Pro';
     --font-icon-alt: 'Font Awesome 6 Brands';

     --font-weight-light: 200;
     --font-weight-normal: 400;
     --font-weight-medium: 500;
     --font-weight-bold: 700;
     --font-weight-solid: 900;

     --size-base: 14px;
     --size-medium: 24px;

     --l-height: 25px;
     --max-width: 1366px;
     --container1: 1920px;
     --container2: 1460px;
     --container3: 550px;
     --container4: 1200px;
 }

* { 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: 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; }
.no-scroll {overflow-y: hidden;}
.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(--color1); font-family:var(--serif); }
.zsimplebutton a,
.zlink a { padding: 15px 20px; display: inline-block; background-color: var(--color2); font-weight: var(--font-weight-bold); font-size: 95%; color: var(--white); text-transform: uppercase; text-align: center; letter-spacing: 0; }
/* 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'; }

/* TNS Controls */
.tns-nav { display: flex; align-items: center; gap: 10px; position: absolute; z-index: 3; bottom: 30px; left: 50%; transform: translateX(-50%);}
.tns-nav button { width: 15px; height: 2px; background-color: var(--color2); opacity: .5; transition: .4s all;}
.tns-nav button:before { content: ''; position: absolute; height: 20px; top: -10px; width: 100%; }
.tns-nav button.tns-nav-active { opacity: 1; width: 25px; }
.tns-controls { margin-top: 15px; display: flex; gap: 10px; justify-content: center;}
.tns-controls button { width: 60px; height: 60px; background-color: var(--color2); text-align: center; line-height: 60px; }
.tns-controls button > div:before { font-family: var(--font-icon); font-weight: var(--font-weight-extra-light); font-size: var(--size-mini); color: var(--white); }
.tns-controls button[disabled] { opacity: .3; pointer-events: none; }
.tns-controls .prev:before {  content: '\f177'; }
.tns-controls .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; border: 4px solid var(--color2);}
#infosplash .ztemplate .caption-cnt { background-color: var(--white); text-align: center; }
#infosplash .ztemplate .caption-cnt .caption-alt {padding: 15px; text-align: left;}
#infosplash .ztemplate .caption-cnt .caption-alt ul, #infosplash .ztemplate .caption-cnt .caption-alt ol { padding-left: 20px;}
#infosplash .ztemplate .title { font-size: 200%; color: var(--color2); font-family: var(--serif);}
#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; }
#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); text-transform: uppercase; color: var(--white); font-weight: var(--font-weight-bold); }
#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); opacity: 0; 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?v=2); background-repeat: no-repeat; background-size: contain; right: unset; top: unset;  width: 23px; height: 32px; animation: scroll_down 1.6s ease-out infinite; }

/* Slideshow */
#slideshow .z-slider .z-slider-dots { margin:0; position:absolute;z-index:2; bottom:30px; left:30px; }
#slideshow .z-slider .z-slider-dots span { background-color:var(--white); opacity: .3; }
#slideshow .z-slider .z-slider-dots span.active { background-color: var(--white); opacity: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 { width: 168px; display: inline-block; text-align: center; }
header .logo img { transition: .3s }
header.clean { height: 144px; }
header.colour { background-color: var(--color1); box-shadow: 0 2px 20px 0 rgba(0,0,0,0.34); height: 110px; align-items: center; }
header.colour .logo img {transform: scale(.7) translateY(-10px);}
header.colour .logo { height: 70px }
header.colour .col.cnt { align-items: center; }
header #top_contacts { margin: 0 0 0 100px;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; }
.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);}
#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 li a { display: block; text-transform: uppercase;}
#language .nav-pills > li { float: none!important}
#language.fired ul { margin: 5px 0 0 0;padding: 0 5px;background: var(--color3);}
#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: 95%; letter-spacing: 0; 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: 0; }
.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; }
.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);}
#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 - 370px);}
#page .heading,
#showcase .heading { padding: 40px 0; text-align: center; }
#page .heading strong,
#showcase .heading strong { font-weight: var(--font-weight-bold); color: var(--color1); }
#page .heading.colour,
#showcase .heading.colour { padding: 60px 0 60px 0; margin-bottom: 30px; background-color: var(--color2); }
#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; }
.body_camera #page .heading .top_seo { text-align: left;}
#page .heading .top_seo:before,
#showcase .heading .top_seo:before { width: 25px; height: 4px; background-color: #EDEDED; text-align: left; content: ''; }
#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; font-family: var(--serif); text-transform: uppercase;}
#page .heading #page_name,
#showcase .heading #page_name { font-family: var(--serif); text-transform: uppercase; 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 30px auto;padding: 40px 15px 10px 15px; 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: 30%}
#page #content,
#showcase #content { margin: 0 auto 30px; 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 { padding: 0 15px; 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 { font-size: 100%; line-height: 1.5;  }
#page #content .open_desc_order .fieldkey { display: none;}

/* 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%;}

/* Error message */
#page_error.none { display: none; }
#page_error { position: fixed; width: 100%; height: 100%; background-color: rgba(0,0,0,.7); z-index: 99999999; top: 0; padding-top: 200px;}
#page_error .cnt-message { display: flex; align-items: center; justify-content: center; text-align: center;}
#page_error .message { background-color: var(--white); color: var(-black); padding: 25px; font-size: var(--size-base); border: 3px solid var(--color2);}
#page_error .close { color: var(--white); margin-bottom: 10px; cursor: pointer; display: block; font-size: 18px;}

/* 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); border-bottom: 1px solid #dedede; border-top: 1px solid #dedede; padding: 10px 15px}
.edit_search .engagement_expire {color: var(--white);}
.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 20px 10px 20px; 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);}

/* OTA Ccomparison Module */
#price_compare { margin: 40px auto 0 auto;padding: 20px;max-width: var(--max-width);font-size: 120%;line-height:1;text-align:center;width: auto; background-color: var(--white); padding: 50px 30px; box-shadow: 0 122px 44px -90px rgb(0 0 0 / 30%); }
#price_compare .title { margin: 0 0 20px 0; color:var(--color1); font-size:130% }
#price_compare .title strong { color:var(--color2); }
#ota_comparison { margin: 0 -20px; display: flex;align-items: stretch;justify-content: center;}
#ota_comparison .accomodation { display: flex;align-items: center;justify-content: space-between;}
#ota_comparison .channel {margin: 0 10px;padding: 10px 5px;display: flex;align-items: center;justify-content: flex-start;background-color:var(--white);box-shadow: 0 0 10px rgba(0, 0, 0, .2);border-radius: 5px;position: relative;}
#ota_comparison .channel.site { padding: 10px 5px 20px 5px; }
#price_compare .channel .saving.none { display: none;}
#ota_comparison .channel .accomodation { margin: 0 5px; background-color:#CC0000; color: var(--white); border-radius: 3px; }
#ota_comparison .channel.site .accomodation { background-color: #449D44;}
#ota_comparison .channel .name { margin:0 0 0 5px; display: flex;align-items: center; }
#ota_comparison .channel .name:after { content:":" }
#ota_comparison .channel .occupancy { padding:0 10px; }
#ota_comparison .channel .price { padding: 8px; background-color: rgba(0, 0, 0, .2);}
#ota_comparison .channel .price:before { content: "\20ac"}
#ota_comparison .saving {margin: 0 5px;background-color: var(--white);color: var(--grey);border: 1px solid rgba(0, 0, 0, .2);border-radius: 3px;font-size: 80%;display: flex;align-items: center;justify-content: flex-start;position: absolute;left: 5px;bottom: -14px;}
#ota_comparison .saving .text {padding: 5px 0 5px 5px;}
#ota_comparison .saving .text:before { margin: 0 5px 0 0; content: "\f336"; font-family: var(--font-icon); font-weight: var(--font-weight-solid); color: #449D44; }
#ota_comparison .saving .price {padding: 0px 5px;background-color:transparent;}
#ota_comparison .channel .not_available { padding: 8px;}
@keyframes loading_bar { 0% {background-position: -5vw 0;} 100% {background-position: 0vw 0;} }
#price_compare.loading { overflow: hidden;}
#price_compare.loading .channel.site { position: relative; padding-bottom: 20px; overflow: hidden;}
#price_compare.loading .channel.site:before { position: absolute; content: ''; z-index: 1; bottom: 0; left: 0; height: 10px; width: 100%; background: #dddddd; }
#price_compare.loading .channel.site:after { position: absolute; content: ''; z-index: 2; bottom: 0; left: 0; height: 10px; width: 200%; background: #dddddd; background-image: linear-gradient(45deg,
		 #dddddd -5%, #dddddd -2.5%,
		 #cccccc -2.5%, #cccccc 0%,
		 #dddddd 0%, #dddddd 2.5%,
		 #cccccc 2.5%, #cccccc 5%,
		 #dddddd 5%, #dddddd 7.5%,
		 #cccccc 7.5%, #cccccc 10%,
		 #dddddd 10%, #dddddd 12.5%,
		 #cccccc 12.5%, #cccccc 15%,
		 #dddddd 15%, #dddddd 17.5%,
		 #cccccc 17.5%, #cccccc 20%,
		 #dddddd 20%, #dddddd 22.5%,
		 #cccccc 22.5%, #cccccc 25%,
		 #dddddd 25%, #dddddd 27.5%,
		 #cccccc 27.5%, #cccccc 30%,
		 #dddddd 30%, #dddddd 32.5%,
		 #cccccc 32.5%, #cccccc 35%,
		 #dddddd 35%, #dddddd 37.5%,
		 #cccccc 37.5%, #cccccc 40%,
		 #dddddd 40%, #dddddd 42.5%,
		 #cccccc 42.5%, #cccccc 45%,
		 #dddddd 45%, #dddddd 47.5%,
		 #cccccc 47.5%, #cccccc 50%,
		 #dddddd 50%, #dddddd 52.5%,
		 #cccccc 52.5%, #cccccc 55%,
		 #dddddd 55%, #dddddd 57.5%,
		 #cccccc 57.5%, #cccccc 60%,
		 #dddddd 60%, #dddddd 62.5%,
		 #cccccc 62.5%, #cccccc 65%,
		 #dddddd 65%, #dddddd 67.5%,
		 #cccccc 67.5%, #cccccc 70%,
		 #dddddd 70%, #dddddd 72.5%,
		 #cccccc 72.5%, #cccccc 75%,
		 #dddddd 75%, #dddddd 77.5%,
		 #cccccc 77.5%, #cccccc 80%,
		 #dddddd 80%, #dddddd 82.5%,
		 #cccccc 82.5%, #cccccc 85%,
		 #dddddd 85%, #dddddd 87.5%,
		 #cccccc 87.5%, #cccccc 90%,
		 #dddddd 90%, #dddddd 92.5%,
		 #cccccc 92.5%, #cccccc 95%,
		 #dddddd 95%, #dddddd 97.5%,
		 #cccccc 97.5%, #cccccc 100%,
		 #dddddd 100%, #dddddd 102.5%,
		 #cccccc 102.5%, #cccccc 105%); animation: loading_bar 1.5s linear infinite; }

/* 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!important; z-index: 3; top: 20px; left: 20px; background-color: var(--color3); 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(--color1);}
#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; text-transform: uppercase; background-color: var(--color1); color: var(--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;}
/* .payment.corner input { clear: both; padding: 15px; width: 100%; margin: 20px auto 0; text-transform: uppercase; color: var(--white); background-color: var(--color2);} */

/* 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(--color1); margin-top: 10px; background-color: var(--ice); color: var(--color1); 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(--color1); 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: 3px}
.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(--color1); 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.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; }

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

}

.smartphone.body_home .top_seo {margin-bottom: 0; padding-bottom: 0; padding-left: 15px; padding-right: 15px; text-align: left;}