/* VARIABILI */
:root {
    --color1: #1D1D1B;
    --color2: #4A4A49;
    --color3: #646363;
    --color4: #69a8a0; /* AFD4CF */
    --color5: #33394A;
    --grey: #373737;
    --light-grey: #F8F8F8;
    --soft-grey: #D9D9D9;
    --white: #ffffff;
    --black: #000000;
    --alpha_black: rgba(0,0,0,.7);
    --green: #40BC71;
    --red: #F14E4E;
    --highlighted: #EBF7F5;

    --sans: 'helvetica-neue-lt-pro', sans-serif;
   /*  --serif: 'Nomark', serif; */
    --serif: 'Cinzel', serif;
    --font-icon: 'Font Awesome 6 Pro';
    --font-icon-alt: 'Font Awesome 6 Pro Brands';

    --font-weight-thin: 100;
    --font-weight-light: 200;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-solid: 900;

    --size-giant: 100px;
    --size-big: 70px;
    --size-medium: 42px;
    --size-average: 28px;
    --size-base: 18px;
    --size-mini: 13px;
    --size-button: 15px;
    --size-minor: 10px;
    --max-width: 1728px;
    --max-width2: 960px;
    --max-width3: 1340px;
    --max-width4: 820px;
}

@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 Pro 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-Light.woff') format('woff'); font-style: normal; font-weight: 300; 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; }
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Thin.woff') format('woff'); font-style: normal; font-weight: 100; font-display: swap; }
@font-face { font-family: 'Nomark'; src: url('../fonts/NomarkRegular.woff') format('woff'); font-weight: normal; font-style: normal; font-display: swap; }

/* Animazioni */
@keyframes blink_background { from { background-color: var(--color1); } to { background-color: var(--color5); } }


* { 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.5; font-family: var(--sans); color: var(--grey); font-size: var(--size-base); font-weight: var(--font-weight-normal); }
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 { 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 { margin-bottom: 10px; font-weight: var(--font-weight-normal); line-height: 1; }
.clear { clear: both; }
.overflow { overflow: hidden; }
.nav { margin: 0; padding: 0; list-style: none; }
.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; }
/*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-family: var(--serif); text-transform: uppercase; }
.ztemplate .title a { color: var(--color1); }
.ztemplate .zoption { margin: 0 0 10px 0; font-size: 90%; color: var(--grey);}
.ztemplate .zoption .fieldvalue:before { margin: 0 5px 0 0;content: "/";  }
.template_filter, .template_filter .form_checkbox { display: flex; justify-content: center; align-items: center; column-gap: 30px; }
.template_filter { margin-bottom: 60px; text-transform: uppercase; }
.template_filter .checkbox { display: flex; flex-direction: row-reverse; align-items: center; gap: 8px; color: var(--color3); opacity: .7; flex; cursor: pointer; }
.template_filter .check { position: relative; display: flex; }
.template_filter .check:before { content: ''; position: relative; display: inline-block; width: 30px; height: 20px; border-radius: 100px; background-color: var(--color1); opacity: .2; }
.template_filter .check:after { content: ''; position: absolute; top: 0; left: 0; z-index: 2; width: 20px; height: 20px; border-radius: 100%; background-color: var(--color1); opacity: .3; transition: .4s all; }
.template_filter .checkbox.checked .check:after { left: calc(100% - 20px);opacity: 1; }
.template_filter .checkbox.checked { color: var(--color1); opacity: 1; }
.ztemplate .title a { font-size: 200%; }

/* 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(--white); 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-bottom: 20px; display: flex; gap: 20px; justify-content: flex-end;}
.tns-controls button { background-color: transparent; width: 40px; height: 40px; background-color: var(--panna); text-align: center; line-height: 40px; }
.tns-controls button > div:before { font-family: var(--font-icon); font-weight: var(--font-weight-extra-light); font-size: 35px; color: var(--black); }
.tns-controls button[disabled] { opacity: .3; pointer-events: none; }
.tns-controls .prev:before {  content: '\f053'; }
.tns-controls .next:before { content: '\f054'; }

/* Body noslide */
body.noslide:not(.home_video) { padding-top: 190px; }

body.oh { overflow: hidden; }

/* Elementi comuni */
.btn a,
.zlink a, .btn .varsimple, .zlabel.btn.black_btn .fieldkey { padding: 10px 20px; text-transform: uppercase; color: var(--color1); font-size: var(--size-button); font-weight: var(--font-weight-medium); background-color: var(--white); border: 2px solid var(--color2); min-width: 130px; display: inline-block; text-align: center; cursor: pointer; }
.black_btn a, .black_btn .varsimple, .zlabel.btn.black_btn .fieldkey { background-color: var(--color1); color: var(--white); border-color: var(--color1); text-decoration: none!important; }
.varlink a, a.link-primary, .ztemplate .ztextarea a { font-size: var(--size-button); font-weight: var(--font-weight-medium); text-transform: uppercase; color: var(--color1); text-decoration: underline!important; text-underline-offset: 5px; }
.zsimplebutton a { text-transform: uppercase; color: var(--color1); font-size: var(--size-button); font-weight: var(--font-weight-medium); text-decoration: underline!important; text-underline-offset: 5px;}
.hidden_form_element { font-size: 0; line-height: 0; opacity: 0; visibility: hidden; height: 0; padding: 0; }
.text_center { text-align: center; }
.ztemplate .ztextarea a, #page .text-dyn a { text-transform: initial; font-weight: var(--font-weight-normal); font-size: var(--size-base); }
.sticky_top { position: sticky; }
.toggle_btn .fieldkey { font-size: var(--size-button); text-transform: uppercase; font-weight: var(--font-weight-medium); cursor: pointer; }
.toggle_btn .fieldkey:before { margin-right: 5px; font-family: var(--font-icon); content: '\f0fe'; font-weight: var(--font-weight-solid); }
.toggle_btn.fired .fieldkey:before { content: '\f146'; }
.toggle_btn .fieldvalue { display: none; }
.toggle_btn.fired .fieldvalue { display: block; }

/* Documents */
.document_size { display: none; }
.documents { margin-bottom: 60px; display: flex; flex-direction: column; gap: 10px; counter-reset: section;}
.document a { padding: 10px; text-align: left; display: flex; gap: 10px; color: var(--white); background-color: var(--color1); line-height: 1.2; }
.document a:before { font-family: var(--font-icon); content: '\f0c6'; font-weight: var(--font-weight-light); width: 40px; min-width: 40px; text-align: center; border-right: 1px solid var(--white);}
.document a:after { margin-left: auto; font-family: var(--font-icon); content: '\e053'; font-weight: var(--font-weight-thin); width: 40px; text-align: center; border-left: 1px solid var(--white); }
.document:nth-of-type(even) a { background-color: var(--soft-grey); color: var(--black); }
.document:nth-of-type(even) a:before { border-right: 1px solid var(--color3);}
.document:nth-of-type(even) a:after {border-left: 1px solid var(--color3); }

/* Accordion */
.accordion { padding: 15px; border: 1px solid var(--color4); }
.text_dyn .accordion-title { margin-bottom: 5px; padding: 15px; background-color: var(--color1); color: var(--white); display: flex; align-items: center; font-weight: var(--font-weight-bold); text-transform: uppercase; font-size: var(--size-mini); text-decoration: none!important; }
.accordion-title:after { margin-left: auto; font-family: var(--font-icon); content: '\f078'; }
.accordion-title.selected:after { transform: rotate(-180deg); }
.standard_page .text_dyn .accordion a { color: var(--white); text-decoration: none!important; }
.standard_page .text_dyn .accordion .accordion-content a { color: var(--black); text-decoration: underline!important; }

/* Slideshow */
.body_home #slideshow img { height: 100vh; }
.slideshow_cnt { position: relative; overflow: hidden; }
#slideshow { position: relative; overflow: hidden; }
#slideshow img { width: 100%; max-height: 100vh; object-fit: cover; }

/* Header */
header { padding: 20px 30px; position: fixed; z-index: 998; top: 0; left: 0; width: 100%; color: var(--white); transition: .4s all; }
#header_logo_cnt img { transition: .4s all; }
#header_logo_cnt .logo_compact { transform: scale(0); pointer-events: none; }
#header_logo_cnt .logo_full { transform: scale(1) translateX(-50%); filter: brightness(0) invert(1); position: absolute; top: 190px; left: 50%; transform-origin: left; }
.header_cnt { margin: 0 auto; position: relative; display: flex; align-items: center; gap: 20px; width: 100%; max-width: var(--max-width); }
.header_cnt .col { width: calc(100% / 3); display: flex; justify-content: center;  align-items: center; gap: 20px; transition: .4s all;}
.header_cnt .col:first-of-type { justify-content: flex-start;}
.header_cnt .col:last-of-type { justify-content: flex-end; }
header.scrolled, .booking_is_open header { background-color: var(--light-grey); color: var(--color3); }
header.scrolled #header_logo_cnt .logo_compact,
.booking_is_open header #header_logo_cnt .logo_compact { transform: scale(1); pointer-events: inherit; }
header.scrolled #header_logo_cnt .logo_full,
.booking_is_open header #header_logo_cnt .logo_full { transform: scale(0) translateX(-50%); opacity: 0; pointer-events: none; }
#booking_btn { cursor: pointer; position: relative; min-width: 130px; height: 44px; background-color: var(--color1); overflow: hidden; }
#booking_btn .varsimple { position: absolute; left: 0; top: 50%; width: 100%; transform: translateY(-50%); line-height: 1; transition: .4s all; }
#booking_btn #varsimple_booking_close { top: 100%; transform: translateY(0); opacity: 0; }
#booking_btn.fired #varsimple_booking_close { top: 50%; transform: translateY(-50%); opacity: 1; }
#booking_btn.fired #varsimple_booking_btn { top: -100%; transform: translateY(0); opacity: 0; }
#menu_btn { cursor: pointer; }
.menu_is_open header { z-index: 999999; }
.menu_is_open .header_cnt { z-index: 10; }
.menu_is_open .header_cnt .col:not(:last-child) { opacity: 0; pointer-events: none; }
.menu_is_open .iubenda-tp-btn.iubenda-cs-preferences-link { display: none!important; }
.shop_btns { padding: 30px 20px; border-left: 1px solid var(--white); }
.shop_btns a { color: var(--white); text-transform: uppercase; font-size: var(--size-button); font-weight: var(--font-weight-bold); text-decoration: none!important; }
.shop_btns a:before { margin-right: 5px; font-family: var(--font-icon); font-weight: var(--font-weight-normal); transition: .4s all; }
#varlink_shop-cnt a:before { content: '\f290'; }
.scrolled .shop_btns, .booking_is_open .shop_btns { border-color: var(--color1); }
.scrolled .shop_btns a, .booking_is_open .shop_btns a { color: var(--color3); }
.scrolled .shop_btns a:before, .booking_is_open .shop_btns a:before { color: var(--color1); }
/* Carrello dinamico */
.cart_empty #cart { opacity: 0; pointer-events: none; }
#cart { position: relative; opacity: 1; pointer-events: inherit; }
#cart:before { content: ''; width: 80px; height: 40px; left: -10px; position: absolute; z-index: 1; display: inline-block; }
#cart .qty { position: absolute; top: -10px; left: 10px; width: 16px; height: 16px; background-color: var(--green); color: var(--white); font-size: var(--size-minor); font-weight: var(--font-weight-bold); text-align: center; border-radius: 100%; line-height: 16px; }
#cart a { color: var(--white); display: inline-block; line-height: 1; position: relative; z-index: 2; }
body.noslide #cart a { color: var(--color1); }
body.home_video #cart a, body.noslide #cart .go_to_cart a, body.noslide .scrolled #cart .go_to_cart a { color: var(--white); }
.scrolled #cart a, body.home_video .scrolled #cart a  { color: var(--color1); }
#cart .icon-shopping-cart:before { font-size: var(--size-button); }
#cart #cart_detail { padding: 10px; display: none; flex-wrap: wrap; gap: 10px; position: absolute; z-index: 2; top: 100%; left: 0; width: 460px; background-color: var(--color1); }
#cart.opened #cart_detail { display: flex!important; }
#cart #cart_detail .product { padding: 10px; width: 100%; display: flex; flex-wrap: wrap; align-items: center; background-color: var(--color5); color: var(--white); font-size: var(--size-button); text-transform: uppercase; }
#cart #cart_detail .product_name { padding-bottom: 3px; margin-bottom: 5px; width: 100%; border-bottom: 1px solid var(--color4); order: 1; }
#cart #cart_detail .prod_qty { order: 2; margin-right: 10px; font-weight: var(--font-weight-light); }
#cart #cart_detail .prod_qty:after { content: 'X'; }
#cart #cart_detail .prod_amount { order: 3; display: flex; font-size: var(--size-base); font-weight: var(--font-weight-bold); }
#cart #cart_detail .prod_amount:before { margin-right: 2px; content: '\20AC'; }
#cart #cart_detail .remove_product { display: none; margin-left: auto; order: 4; color: var(--red); cursor: pointer; }
#cart #cart_detail .remove_product:before { font-family: var(--font-icon); font-weight: var(--font-weight-solid); content: '\f2ed'; }
#cart .go_to_cart { margin-left: auto; }
#cart .go_to_cart a { padding: 10px 20px; background-color: var(--green); color: var(--white); text-transform: uppercase; font-size: var(--size-button); font-weight: var(--font-weight-medium);}
#cart .total_amount { display: flex; align-items: center; color: var(--white); }
#cart .total_amount .key { margin-right: 10px; font-size: var(--size-button); font-weight: var(--font-weight-bold); }
#cart .total_amount .value { display: flex; font-size: var(--size-base); font-weight: var(--font-weight-bold); }
#cart .total_amount .value:before { margin-right: 2px; content: '\20AC'; }


/* Pulsante vai al Carrello */
header .mobile_goto_cart, header.cart_empty .mobile_goto_cart { display: none; }

/* Top Seo */
.top_seo { margin-bottom: 30px; font-size: var(--size-base); color: var(--grey); }
.body_showcase_pagina .top_seo { /* margin-top: 30px; */ line-height: 1.5; }
.top_seo.ecommerce { margin-bottom: 30px; }

/* Pagina standard */
.body_page #slideshow { margin-bottom: 60px; }
.standard_page { margin: 0 auto 50px; padding: 0 50px; max-width: var(--max-width3); }
.standard_page .text.g2 { font-style: italic; /* text-transform: uppercase; color: var(--color3); line-height: 1; */}
.standard_page .page_wrap { margin-top: 60px; }
#page_name, #container_name { font-family: var(--serif); font-size: var(--size-giant); text-transform: uppercase; }
#page .text_dyn .fieldvalue { margin-bottom: 60px; overflow: hidden; }
#page .text_dyn ul { padding-left: 15px; margin-bottom: 15px; }
#page .text_dyn :where(h2,h3,h4,h5,h6) { margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid var(--grey); font-size: var(--size-average); }
#page p { margin-bottom: 15px; }
.page_gallery .gallery { position: relative; }
.page_gallery .tns-controls { margin-bottom: 0; }
.page_gallery .tns-controls button[data-controls="prev"] {width: 130px; position: absolute; z-index: 2; top: 50%; left: 0; transform: translateY(-50%); height: 100%; background: linear-gradient(90deg,rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.31) 89%, rgba(0, 0, 0, 0) 100%); }
.page_gallery .tns-controls button[data-controls="next"] { width: 120px; position: absolute; z-index: 2; top: 50%; right: 0; transform: translateY(-50%); height: 100%; background: linear-gradient(-90deg,rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.31) 89%, rgba(0, 0, 0, 0) 100%); }
.page_gallery .tns-controls button > div:before { color: var(--white); }
.standard_page .gallery_cnt { padding: 0; }
.standard_page .text_dyn a, .standard_page .text a, .page_wrap .vareditor a { color: var(--color1); text-decoration: underline!important; text-underline-offset: 5px; }
.standard_page .text.g3 { font-style: italic; /* font-size: var(--size-average); font-family: var(--serif); color: var(--color2); line-height: 1; */ }

/* Interna Resort */
.body_resort .page_cnt { margin: 0 auto; padding: 0 15px; max-width: var(--max-width2); text-align: center; }
.body_resort :where(.text.g2, .text_dyn.g3) { text-align: left; }
.body_resort .gallery_cnt { margin-top: 60px; }

/* Interna Camera */
.body_camera #page_name { margin-bottom: 20px; font-size: var(--size-big); width: 100%; }
.page_cnt.block_flex { margin: 0 auto; max-width: var(--max-width3); display: flex; align-items: flex-start; gap: 60px; }
.page_cnt.block_flex .col:first-of-type { text-align: right; display: flex; flex-wrap: wrap; justify-content: flex-end; column-gap: 40px; min-width: 43%; }
.room-amenities { padding-top: 20px; margin: 20px 0 0 0; display: flex; flex-wrap: wrap; column-gap: 35px; border-top: 1px solid var(--color1); }
.room-amenities .fieldvalue { margin-bottom: 10px; }
.room-amenities .fieldvalue:before { margin-right: 5px; font-family: var(--font-icon); }
.room-amenities .fieldvalue.v0:before { content: '\f8f4'; } /* Aria condizionata */
.room-amenities .fieldvalue.v1:before { content: '\f2f7'; } /* Cassaforte */
.room-amenities .fieldvalue.v2:before { content: '\f561'; } /* Minibar */
.room-amenities .fieldvalue.v3:before { content: '\f2cc'; } /* Doccia */
.room-amenities .fieldvalue.v4:before { content: '\f72e'; } /* Asciugacapelli */
.room-amenities .fieldvalue.v5:before { content: '\f1eb'; } /* Wifi */
.room-amenities .fieldvalue.v6:before { content: '\f26c'; } /* TV */
.room-amenities .fieldvalue.v7:before { content: '\e3d1'; } /* Accapatoio */
.room-amenities .fieldvalue.v8:before { content: '\e050'; } /* Balconcino */
.room-amenities .fieldvalue.v11:before { content: '\f8f7'; } /* Letto King Size */
.room-amenities .fieldvalue.v12:before { content: '\f593'; } /* Jakuzi */
.room-amenities .fieldvalue.v13:before { content: '\f4b8'; } /* Divano */
.room-amenities .fieldvalue.v14:before { content: '\f7d8'; } /* 2 Bagni */
.room-amenities .fieldvalue.v15:before { content: '\f2cd'; } /* Vasca relax ovale */

.outline_btn { padding: 10px; margin-top: 15px; border: 1px solid var(--color1); cursor: pointer; }
.modal_box {display: flex; align-items: center; justify-content: center; position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; pointer-events: none; transform: scale(1.1); opacity: 0; transition: .4s all; background-color: rgba(0,0,0,.7); }
.modal_box_cnt { padding: 50px; background-color: var(--white); text-align: left; max-width: 920px; position: relative; overflow: auto; max-height: calc(100vh - 200px); }
.modal_box.fired { opacity: 1; transform: scale(1); pointer-events: inherit; }
.modal_box_close { position: absolute; top: 0; right: 0; background-color: var(--color1); width: 40px; height: 40px; cursor: pointer; color: var(--white); text-align: center; }
.modal_box_close:before { font-family: var(--font-icon); content: '\f00d'; font-size: var(--size-average); font-weight: var(--font-weight-light); }
.body_camera .gallery_cnt { margin-top: 90px; }
.modal_box ul { margin: 15px 0; padding-left: 15px; }

/* Vetrina Camere */
.body_showcase #page .text_dyn .fieldvalue { margin-bottom: 0; }
#page.showcase_rooms #page_name { margin-bottom: 0; line-height: 1; }
#page.showcase_rooms .text.g2 { font-size: var(--size-medium); font-family: var(--serif); color: var(--color2); line-height: 1; }
.rooms_showcase_tpl { padding: 0 50px;  }
.rooms_showcase_tpl .template_filter { margin-top: 60px; padding: 40px 50px; border-top: 1px solid var(--soft-grey); }
.rooms_showcase_tpl .template_filters { position: sticky; top: 127px; z-index: 9; background-color: var(--white); }
.rooms_showcase_tpl .template_filters .filter_key { display: flex; align-items: center; gap: 5px; }
.rooms_showcase_tpl .template_filters .filter_key:after { content: ':'; }
.rooms_showcase_tpl .template_filters .filter_key:before { content: 'filtra per'; }
body.en .rooms_showcase_tpl .template_filters .filter_key:before { content: 'filter by'; }
body.de .rooms_showcase_tpl .template_filters .filter_key:before { content: 'nach '; }
body.de .rooms_showcase_tpl .template_filters .filter_key:after { content: 'filtern:'; }

/* Vetrina Pagine */
.body_showcase #slideshow { margin-bottom: 60px; }
.body_showcase .text.g2 { text-transform: uppercase; color: var(--color3); line-height: 1;}
.body_showcase .text_dyn.g3 { margin: 15px auto 50px; padding: 0 50px; max-width: var(--max-width3); text-align: left; } 
#one_column #intro { margin-bottom: 60px; text-align: center; }
.page_showcase_tpl { padding: 0 50px; }
.grid_box { margin: 0 auto 120px; max-width: var(--max-width); display: flex; flex-wrap: wrap; gap: 50px; }
.grid_box .elem { width: calc(50% - 25px); }
.grid_box .caption-cnt { flex-wrap: wrap; }
.grid_box .caption { width: 100%; overflow: hidden; }
.grid_box .caption-alt { padding: 30px; }
.grid_box .title a { font-family: var(--sans); font-weight: var(--font-weight-medium); font-size: var(--size-average); text-transform: initial; }
.grid_box img { transform: scale(1.01); width: 100%; transition: .8s all cubic-bezier(.215, .61, .355, 1); }
.grid_box .elem:hover img { transform: scale(1.03); filter: brightness(85%); }
/* Variante piccola */
.grid_box.small_box { justify-content: flex-start; }
.grid_box.small_box.centered { justify-content: center; }
.grid_box.small_box.elem_center { justify-content: center; }
.grid_box.small_box .elem { width: calc(100% / 3 - 34px); transition: .4s all; }
.grid_box.small_box .elem:hover { background-color: var(--light-grey); }
.grid_box.small_box .caption-alt { padding: 15px; width: 100%; }
/* Specifica per vetrina Offerte */
.grid_box.small_box.offers_box .elem { transition: .4s all; }

.grid_box.small_box.offers_box .caption-cnt { position: relative; }
.grid_box.small_box.offers_box .caption-alt { display: flex; flex-wrap: wrap; align-items: center; }
.grid_box.small_box.offers_box .caption-alt :where(.title, .ztextarea) { width: 100%; }
.grid_box.small_box.offers_box .caption-add { padding: 10px; position: absolute; z-index: 2; top: 0; left: 0; width: 100%; background-color: var(--alpha_black); color: var(--white); font-size: var(--size-button); }
.grid_box.small_box.offers_box .zlink a { background-color: var(--black); color: var(--white); border: unset; }
.grid_box.small_box.offers_box .zlink { margin-left: 30px; }



/* Page model: Split Box */
.body_split_blocks #page_name { margin-bottom: 0; }
:is(.body_split_blocks, .body_split_blocks_alt) .text.g2 { font-style: italic; /* font-size: var(--size-medium); font-family: var(--serif); color: var(--color2); line-height: 1; */ }
.body_split_blocks .page_cnt { padding: 0 50px; }
.split_block_tpl { margin: 60px auto 120px; padding: 0 50px; max-width: var(--max-width); }
.split_block_tpl :where(.caption, .caption-alt) { width: 50%; }
.split_block_tpl .caption { border: 50px solid var(--soft-grey); }
.split_block_tpl .caption img {  object-fit: cover; width: 100%; max-height: calc(100vh - 127px); }
.split_block_tpl .caption-alt { padding: 50px; text-align: center; }
.split_block_tpl .elem.odd .caption-cnt { flex-direction: row-reverse; }
.split_block_tpl .elem.odd .caption { border-color: var(--color1); }
.split_block_tpl .title { font-size: 200%; }

/* Vetrina Shop */
.body_showcase_shop .logo_full { display: none; }
.body_showcase_shop  { background-color: var(--color1); position: relative; z-index: 1; }
.body_showcase_shop #page { border-bottom: 90px solid var(--light-grey); color: var(--white); }
.body_showcase_shop .grid_box.small_box .elem { width: calc(100% / 5 - 40px); }
.body_showcase_shop:before { content: ''; position: absolute; inset: 0; z-index: -1; background-image: url(../images/bg/shop_bg.jpg); background-size: cover; background-position: center; filter: brightness(0.15);}
.body_showcase_shop .grid_box.small_box .caption-cnt { position: relative; }
.body_showcase_shop .grid_box.small_box .caption-alt { position: absolute; z-index: 2; bottom: 0; left: 0; width: 100%; text-align: center; transition: .4s all; }
.body_showcase_shop .grid_box.small_box .elem:hover .caption-alt { bottom: 30px; }
.body_showcase_shop .grid_box .title a { color: var(--white); }
.body_showcase_shop .grid_box .zsimplebutton a { color: var(--white); opacity: 0; }
.body_showcase_shop .grid_box .elem:hover .zsimplebutton a { opacity: 1; }

#container_summary h3 { margin: 30px auto; font-family: var(--serif); font-size: var(--size-medium); }

/* Fix Carrello */
.cart_tpl .subcontents :where(.caption, .caption-alt) { width: 100%; }

/* Submenu */
.has_submenu { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 40px; }
.has_submenu > .col { width: calc(100% - 320px - 40px); }
.section_submenu { padding: 15px; top: 170px; width: 320px; background-color: var(--light-grey); }
.submenu li > ul { padding-left: 15px; list-style-type: none; }
.submenu li a, .submenu li span { font-size: var(--size-button); text-transform: uppercase; color: var(--black); }
.submenu ul > li a:before { font-family: var(--font-icon); content: '\e196'; font-weight: var(--font-weight-solid); }
.submenu ul li :where(a, span) { display: flex; align-items: center; gap: 5px; }
.submenu ul li ul li a:before,
.submenu ul#tree li span:before,
.submenu ul#tree > li:not(:has(ul)) a:before { font-family: var(--font-icon); content: '\f0c8'; font-weight: var(--font-weight-solid); font-size: 10px; }
.submenu ul li span:before, .submenu ul li span { color: var(--color4); }

/* Custom submenu */
.section_submenu #page_name { display: flex; align-items: center; gap: 5px; font-family: var(--sans); font-size: var(--size-button); text-transform: uppercase; color: var(--color4); }
.custom_submenu_tpl .elem a { font-family: var(--sans); font-size: var(--size-button); text-transform: uppercase; color: var(--black); }
.custom_submenu_tpl .elem .title { margin: 0 0 10px; }
.custom_submenu_tpl .elem .title a { display: flex; align-items: center; gap: 5px; }
.custom_submenu_tpl .box > .elem a:before,
.section_submenu #page_name:before { font-family: var(--font-icon); content: '\f0c8'; font-weight: var(--font-weight-solid); font-size: 10px; }
.custom_submenu_tpl .box_heading { font-family: var(--serif); font-size: var(--size-average); text-transform: uppercase; line-height: 1; }


/* Pulsante Whatsapp fixed */
.fixed_whatsapp_btn a { display: flex; align-items: center; justify-content: center; flex-direction: column; font-size: 0; position: fixed; z-index: 99; bottom: 30px; left: 30px; background-color: var(--green); width: 60px; height: 60px; border-radius: 100%; text-decoration: unset!important; text-align: center;}
.fixed_whatsapp_btn a:before { font-size: var(--size-medium); font-family: var(--font-icon-alt); content: '\f232'; color: var(--white);  }

/* RWD */

@media(max-width: 1600px){
    .body_showcase_shop .grid_box.small_box .elem { width: calc(100% / 4 - 38px); }
}

@media (max-width: 1280px) {
    :root {
        --size-giant: 70px;
    }
    .grid_box.small_box .elem { width: calc(50% - 34px) }
    .grid_box { gap: 30px; }
}

@media(max-width: 1100px){
    .split_block_tpl .caption-cnt, .split_block_tpl .elem.odd .caption-cnt { flex-direction: column; }
    .split_block_tpl :where(.caption, .caption-alt) { width: 100%; }
    .body_showcase_shop .grid_box.small_box .elem { width: calc(50% - 38px); }
}

@media (max-width: 1024px){
    .shop_btns { padding: 30px 0 30px 15px; }
    .header_cnt .col { gap: 15px; }
    .btn a, .zlink a, .btn .varsimple, .zlabel.btn.black_btn .fieldkey { padding: 10px; }
    header .logo_compact { height: 25px; }
}

@media(max-width: 1023px){
    body { padding-top: 102px; }
    body.noslide:not(.home_video) { padding-top: 102px; }
    header { padding: 0; }
    .header_cnt { padding: 15px; }
    #booking_btn { position: absolute; z-index: 2; left: 0; top: 58px; width: 50%; }
    .shop_btns { padding: 10px; position: absolute; z-index: 2; top: 58px; left: 50%; width: 50%; height: 44px; border: unset; background-color: var(--color2); text-align: center; }
    #varlink_shop-cnt a:before { display: none; }
    .shop_btns a, .booking_is_open .shop_btns a { display: block; color: var(--white); }
    header #header_logo_cnt .logo_compact { transform: scale(1); pointer-events: inherit; }
    header { background-color: var(--light-grey); color: var(--color3); }
    #cart a, body.home_video .scrolled #cart a,
    body.home_video #cart a, body.noslide #cart .go_to_cart a, body.noslide .scrolled #cart .go_to_cart a { color: var(--color1); }
    .scrolled .shop_btns a, .booking_is_open .shop_btns a { color: var(--white); font-weight: var(--font-weight-medium); }
    body.noslide:not(.home_video) #page { padding-top: 40px; }
    .page_cnt.block_flex .col:first-of-type { width: 100%; }
    #page.showcase_rooms #page_name { width: 100%; }
    .page_cnt.block_flex .col:first-of-type { text-align: center; justify-content: center;}
    .page_cnt.block_flex { flex-direction: column; gap: 20px; }
    .rooms_showcase_tpl .template_filters { top: 100px; }
    .rooms_showcase_tpl .template_filter { padding: 15px; font-size: var(--size-mini);}
    .page_cnt.block_flex .col { padding: 0 15px; }
    .body_split_blocks .page_cnt { padding: 0; }
    .split_block_tpl { padding: 0; }
    .page_showcase_tpl { padding: 0; }
    
}

@media (max-width: 968px) {
    :root {
        --size-giant: 45px;
    }
    .fullscreen_video_cnt .vareditor em::before, .fullscreen_video_cnt .vareditor em::after {  }

   
    .page_cnt.block_flex .col:first-of-type { gap: 0 }
    #page.showcase_rooms .text.g2 { font-size: var(--size-giant); }
    #page.showcase_rooms .text.g2 p { margin-bottom: 0; }
    .body_showcase .text_dyn.g3 { margin: 0 auto; padding: 0; }
    
    #page { padding: 15px; }

    .rooms_showcase_tpl { padding: 0; }
    .grid_box .elem { width: 100%; }

    .page_cnt.block_flex .col { padding: 0; }
    .body_camera .page_cnt.block_flex .col:first-of-type { column-gap: 30px;  }
    .body_camera .page_cnt.block_flex .col .room-size { margin: 0; width: auto; }
    .split_block_tpl .caption { border: 35px solid var(--soft-grey) }
    .has_submenu { flex-direction: column; }
    .has_submenu > .col { width: 100%; }
    .section_submenu { margin-bottom: 40px; width: 100%; }
    .body_showcase_shop #container_summary h3 { margin-top: 10px; font-size: var(--size-average); }
    .fixed_whatsapp_btn a { left: 15px; bottom: 15px; }

}

@media (max-width: 767px) {
    :root {
        --size-big: 45px;
        --size-average: 20px;
        --size-giant: 28px;
    }
    .rooms_showcase_tpl .template_filter { padding: 15px 0; }
    .template_filter, .template_filter .form_checkbox { column-gap: 15px; }
    .room-amenities { flex-direction: column; }
    .body_camera #page { display: flex; flex-direction: column; }
    .body_camera .gallery_cnt { margin: 0 0 30px; order: 1; }
    .body_camera .page_cnt { order: 2; }
    .body_camera .related_rooms_cnt { order: 3; }
    body.body_camera.noslide:not(.home_video) #page { padding-top: 15px; }
    .body_camera .page_cnt.block_flex { gap: 50px; }
    .page_gallery .tns-controls { margin-bottom: 0; }
    .page_gallery .tns-controls button[data-controls="prev"] {width: auto; left: 15px;  background: transparent; }
    .page_gallery .tns-controls button[data-controls="next"] { width: auto; right: 15px; background: transparent; }
    .page_gallery .tns-controls button > div:before { font-size: var(--size-base); }
    .body_camera .page_gallery .tns-controls { margin: 0; }
    .body_camera .tns-controls button { background-color: var(--color1); }
    .body_camera .tns-controls button[data-controls="prev"] { position: absolute; z-index: 2; top: 50%; left: 15px; transform: translateY(-50%); }
    .body_camera .tns-controls button[data-controls="next"] { position: absolute; z-index: 2; top: 50%; right: 15px; transform: translateY(-50%); }
    .body_camera .gallery .tns-outer { position: relative; }
    .body_camera .gallery .tns-controls button > div:before { color: var(--white); }
    .body_camera .gallery .tns-controls button > div:before { font-size: 18px; }
    .split_block_tpl .caption { border: 20px solid var(--soft-grey) }
    .grid_box.small_box .elem { width: 100%; }
    .ztemplate .title a, .split_block_tpl .title { font-size: var(--size-giant); }
    .body_showcase_shop .grid_box.small_box .elem { width: 100%; }
    .body_showcase_shop .grid_box.small_box .elem .caption-alt { bottom: 30px; }
    .body_showcase_shop .grid_box .zsimplebutton a { opacity: 1; }
    .fixed_whatsapp_btn a { width: 40px; height: 40px; bottom: 65px; }
    .fixed_whatsapp_btn a:before { font-size: var(--size-average); }
    

}

/* Fix altezza schermo */
@media(max-height: 850px){
    #header_logo_cnt .logo_full { width: 140px; }
}

@media(max-height: 790px){
    #header_logo_cnt .logo_full { width: 120px; top: 150px; }
}

/* Smartphone */
.smartphone #menu_btn { font-size: 55%; }
.smartphone #menu_btn .bars { width: 30px; }
.smartphone .header_cnt {  justify-content: space-between; }
.smartphone .header_cnt .col { width: auto; justify-content: space-between; }
.smartphone .header_cnt .col:first-of-type, .smartphone .header_cnt .col:last-of-type { width: 30px; }
.smartphone .template_filter { margin-bottom: 20px;  }
.smartphone .shop_showcase_tpl .template_filter { padding-top: 20px; }
.smartphone .template_filter, .smartphone .template_filter .form_checkbox { flex-direction: column; align-items: flex-start; width: 100%; gap: 5px; }
.smartphone .template_filter .checkbox_wrap { width: 100%; }
.smartphone .template_filter .checkbox { width: 100%; justify-content: space-between; }
.smartphone.body_resort .page_cnt { padding: 0; }
.smartphone.body_resort .box_page_room { padding: 0; }
.smartphone.body_resort :where(.box_restaurant, .box_wellness, .box_wellness_elements) { padding: 15px 0; text-align: center; }
.smartphone.body_resort .box_wellness { margin-top: 15px; padding-top: 40px; border-top: 1px solid var(--color1); }
.smartphone.body_resort .box_wellness_elements .title a { font-family: var(--serif); font-size: var(--size-giant); }
.smartphone.body_resort :where(.text.g2, .text_dyn.g3) { text-align: center; }
.smartphone .family_resort .caption-alt { text-align: center; }
.smartphone .box_page_room .caption-alt { text-align: center; }
.smartphone .box_club .caption-alt { text-align: center; }
.smartphone .box_club .vareditor { justify-content: center; }
.smartphone .box_restaurant .caption-alt { justify-content: center; text-align: center; }
.smartphone .box_wellness .title { text-align: center; }
.smartphone #page { text-align: center; }
.smartphone form.form { text-align: left; }
.smartphone #page .text_dyn ul { text-align: left; }
.smartphone .split_block_tpl .caption-alt { padding: 15px 0; }
.smartphone .grid_box.small_box .caption-alt { padding: 15px 0; justify-content: center; }
.smartphone header .mobile_goto_cart { display: block; position: fixed; bottom: 0; left: 0; width: 100%; }
.smartphone header .mobile_goto_cart a { padding: 15px; background-color: var(--green); color: var(--white); text-decoration: none!important; display: inline-block; width: 100%; text-align: center; }
.smartphone header.cart_empty .mobile_goto_cart,
.smartphone:is(.body_ecommerce_cart, .body_ecommerce_order) header .mobile_goto_cart { display: none; }
.smartphone:is(.body_split_blocks_alt) .text.g2 { font-size: var(--size-average); }
.smartphone #page .submenu { text-align: left; }





