:root{
  --text-color: #625e5e;
  --primary-color: #0097cb;
  --bg-color-1:#49c1ca;
  --bg-color-2:#c82473;
  --bg-color-3:#f2efea;
  --bg-color-4:#dec5af;
  --bg-color-white:#fff;
  --bg-opened-menu: rgba(22, 150, 195, 0.8);
}

body{ font-weight:400; font-family: "Outfit", sans-serif; font-size:21px; color: var(--text-color); overflow-x:hidden; scroll-behavior: smooth; }
.no-carousel { padding-top: 195px !important; }

a { text-decoration:none; color:var(--text-color); }
b { font-weight: 700; }

.scroll-disabled { overflow: hidden; }

.anchor { scroll-margin-top: 80px; }

.section-padding { padding:60px 0; }

.container { width:100%; max-width: 1600px; }
.container-fluid { max-width:1920px; margin:0px auto; }

.section__maintitle { margin-bottom:30px; font-size:5rem; line-height: 4.8rem; font-weight: 100; }
.section__maintitle b { color: var(--bg-color-2); }
.section__maintitle-decoration { position: relative; display: inline-block; z-index: 0; }
.section__maintitle-decoration::after { content: ""; position: absolute; left: 0; right: 0; top:55px; width: 100%; height: 50px; background: url('../images/decoration-maintitle.png') no-repeat left center; background-size: contain; z-index: -1; }

.section__mainsubtitle { margin-bottom:30px; font-size:2.4rem; font-weight: 200; }

.btn-cta { display:inline-block; padding:22px 40px 22px 40px; border-radius: 40px; max-width: fit-content; background:var(--bg-color-1); color:var(--bg-color-white); font-size: 28px; font-weight: 400; text-transform: uppercase; text-decoration: none; border:0; overflow: hidden; position: relative; z-index: 1; transition: color 0.35s ease, opacity 0.35s ease; }
.btn-cta::before { content: ""; position: absolute; top: 0; left: -16px; right: 0; bottom: 0; width: 100%; height: 0%; margin: auto; transform: rotate(-45deg); background-color: var(--bg-color-2); transition: 700ms cubic-bezier(0.52, 1.64, 0.37, 0.66); z-index: -1; }
.btn-cta:hover,
.btn-cta:focus{ color:var(--bg-color-white); text-decoration:none; opacity:0.95; }
.btn-cta:hover::before,
.btn-cta:focus::before{ height: 550%; }

.btn-cta-decoration { background: url(../images/decoration-cta.png) no-repeat center center; max-width: 860px; width: inherit; background-size: contain; display: inline-block; padding: 0px; }
.btn-microcopy { font-size: 1rem; }
.btn-microcopy ul li i { display: inline-flex; align-items: center; line-height: 1; margin-right: 0.35rem; }
.btn-microcopy i:before { font-size: 1.5rem; }
.btn-microcopy ul li i:before { line-height: 1; }

.btn-cta-2 { display:inline-block; padding:12px 28px; background:var(--bg-color-4); color:var(--text-color); font-size: 16px; font-weight: 600; text-transform: uppercase; text-decoration: none; transition: 0.3s all; border:0px; }
.btn-cta-2:hover,
.btn-cta-2:focus { text-decoration: none; opacity:0.9; }

.bg-custom { background: var(--bg-color-3); }


.line-separated { border-top:1px solid #888; padding: 35px 0; clear: both; display: flex; align-items: center; }
.line-separated h4 { font-size: 40px; font-weight: 500; }

.circle-number { display: inline-flex; align-items: center; justify-content: center; width: 150px; height: 150px; border: 1px solid #b3b3b3; margin-right: 25px; border-radius: 50%; font-size: 36px; font-weight: 300; background: transparent; line-height: 1; text-align: center; flex-shrink: 0; }

/* HEADER */

.noscroll { overflow: hidden; }

header { background: transparent; position: absolute; width: 100%; top: 0; left: 0; right: 0; z-index: 101; padding: 0; color: #00292e; transition: background, 0.2s; }
header .header-container { display: flex; flex-direction: row; flex-wrap: wrap; align-content: center; }
.header-no-carousel { background: rgba(0, 0, 0, 0.6); padding-bottom: 25px; }
.header-no-carousel .header-nav__logo { margin-top: 25px !important; }

@media (min-width: 992px){
  .visible-desktop{ display:initial; position: absolute; left: 6rem; top: 40%; }
  .visible-desktop a {display: block; margin: 30px;}
  .visible-mobile { display: none; }
}


/* CAROUSEL */
.section-carousel__wrapper { position: relative; }
.section-carousel__wrapper::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 100%; background: rgba(0, 0, 0, 0.45); pointer-events: none; z-index: 2; }
.section-carousel .carousel,
.section-carousel .carousel .swiper,
.section-carousel .carousel .swiper-wrapper,
.section-carousel .carousel .swiper-slide { width: 100%; height: 100%; }
.section-carousel .carousel { position: relative; z-index: 1; }
.section-carousel .carousel__picture { display: block; width: 100%; height: 100%; }
.section-carousel .carousel .swiper-slide { height: 650px; }
.section-carousel .carousel__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.wrap-carousel__title { position: absolute; z-index: 100; bottom: 15%; width: 96%; margin: 0 2%; text-align: center; color:var(--bg-color-white); }
.wrap-carousel__title .carousel-title { position: relative; z-index: 5; }
.wrap-carousel__title::after { content: ""; position: absolute; left: 0; right: 0; bottom: -15%; height: 100%; background: url(../images/decoration-wrap-carousel.png) no-repeat center bottom; }
.wrap-carousel__title h2 { font-size: 5rem; line-height: 6.5rem; font-weight: 200; letter-spacing: -3px; }
.wrap-carousel__title h2 span { font-size: 8rem; }

@media (min-width: 1200px) {
  .section-carousel .carousel .swiper-slide { height: 100svh; }
}
@media (max-width: 1199px) {
  .header-nav__logo { max-width: 340px; }
  .wrap-carousel__title h2 { display: none; }
  .wrap-carousel__title::after { background-size: contain; }

  .btn-cta { padding:22px 35px 22px 35px; font-size: 22px; }

  .section__maintitle { margin-bottom:24px; font-size:4rem; line-height: 3.8rem; }
  .section__maintitle-decoration::after { top:40px; }
  .section__mainsubtitle { margin-bottom:24px; font-size:2rem; }
}

/* 2 Colonne Testo e Immagine */
.section-with-image__wrap-text{ padding:25px 10px; }
.section-with-image__wrap-text p:last-child{ margin-bottom:0; }
.section-with-image__wrap-text ul:last-child{ margin-bottom:0; }
.section-with-image__wrap-button { margin-top:30px; }

@media (min-width: 992px){
 .section-with-image__wrap-text { padding:25px 20px; }
}
.arrow-decoration .col-text { position: relative; }
.arrow-decoration .col-text::before { content: ""; background: url('../images/decoration-arrow.png') no-repeat top right; background-size: contain; height: 230px; width: 155px; display: block; position: absolute; top:5rem; right: -7rem; opacity: 0; transform: translateX(40px); }

.arrow-decoration.aos-animate .col-text::before { animation: arrow-decoration-reveal 0.8s ease-out 0.45s forwards; }

@keyframes arrow-decoration-reveal {
  from {
    opacity: 0;
    transform: translateX(80px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}


/* Form Contatti */
/*.section-contatti { background:#f4f6f9; padding:60px 0px; }*/
.section-contatti h2 { text-align:center; }
.section-contatti__description { text-align:center; margin-bottom:30px; }

.contact-form .form-control {border-radius:0;}
.wrap_eta.hidden{display:none;}

.contact-form .form-group { margin-bottom:15px; }
.contact-form .form-check a { color:#222; text-decoration:none; }

/* Contatore */
.counter { display: inline-block; margin-bottom: 25px; width: 180px; height: 180px; line-height: 180px; border:1px solid var(--bg-color-1); border-radius: 50%; font-size: 3.8rem; font-weight: 100; letter-spacing:-4px; }

/* Portfolio */
.elenco-progetti__progetto { position: relative; min-height: 650px; margin-bottom:25px; background-attachment: fixed; background-position: center; background-repeat: no-repeat; background-size: cover; }
.elenco-progetti__progetto .container-fluid { position: absolute; bottom: 15%; left: 0; }
.elenco-progetti__progetto .elenco-progetti__titolo { margin-left: 5%; margin-bottom:0px; background-color: var(--bg-color-1); color: var(--bg-color-white); padding: 20px 35px; font-size: 2rem; text-transform: uppercase; display: inline-block; }
.elenco-progetti__progetto .btn-portfolio { margin-left: 5%; background-color: var(--bg-color-2); color: var(--bg-color-white); padding: 10px 35px; font-size: 1rem; text-transform: uppercase; }

/* Mappa */
#map-map{width:100%;height:400px; }
.map__infowindow{padding:10px;font-weight:400; text-align: center;}
.map__title{margin-bottom:5px; font-size: 18px;}
.map__description p{margin-bottom:0;}

/* Parallax */
.parallax{min-height:680px;position: relative;display:flex;  background-attachment: fixed; background-position: center; background-repeat: no-repeat;  background-size: cover;}
.parallax:before{content: ' ';display: block;position:absolute;left:0;right:0;top:0;bottom:0;background-color:rgba(12, 103, 196, .40);   }
.parallax__container{position: absolute; left: 0; top: 50%; width: 100%; margin-top:-75px; text-align: center; color: #000;}
.parallax__title{font-size:60px;margin-bottom:30px;color:#ffffff; }
.parallax__btn{border-color:#fff;border-radius:50px;padding-left:30px;padding-right:30px;color:#fff;font-weight:700;text-transform:uppercase; }
.parallax__btn:hover{background:#fff;color:#0b2247}

/* Lista Luoghi */

.place-item__wrapper { padding:45px 0px; }
.place-item__wrapper h2 { margin-bottom:20px; }

.place-item__wrapper { background-color: #f4f6f9; }
.place-item__wrapper.sinistra { background-color: #fff; }
.place-item__text h3 { color:#6d98a1; }

.place-item__wrapper .col-image { margin-top:30px; }

@media (min-width: 992px){
  .place-item__wrapper.sinistra .col-text { order: 6!important; }
  .place-item__wrapper .col-image { margin-top:0px; }

  .place-item__wrap-image{ position: relative; overflow: hidden; border-radius: 0; }
  .place-item__wrap-image img{ width: 100%; height: 100%; display: block; object-fit: cover; }
  .place-item__wrapper .place-item__wrap-image{ overflow: hidden; -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
  .place-item__wrapper.sinistra .place-item__wrap-image{ -webkit-clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%); clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%); }
}

@media (min-width: 1400px){
  .place-item__wrapper.destra .col-image { padding-left:25px; }
  .place-item__wrapper.sinistra .col-image { padding-right:25px; }
  .place-item__wrapper.destra .place-item__text { padding-left:30px; padding-right:15px; }
  .place-item__wrapper.sinistra .place-item__text { padding-left:15px; padding-right:30px; }
}

@media (min-width: 1800px){
  .place-item__wrapper.destra .place-item__text { padding-left:50px; padding-right:25px; }
  .place-item__wrapper.sinistra .place-item__text { padding-left:25px; padding-right:50px; }
}

/* POPUP */

.popup-dynamic .modal-header img { margin:0px auto; }
.popup-dynamic__header-logo { background-color: #0137a1; }
.popup-dynamic__header-logo button { position: absolute; top:5px; right:15px; color:#fff; }
.popup-dynamic__wrap-image img { margin:0px auto; }
.popup-dynamic__wrap-image + .popup-dynamic__wrap-text { margin-top:20px; }
.popup-dynamic__wrap-text h2,
.popup-dynamic__wrap-text h3 { color:#0137a1; }

@media (min-width: 576px){
  .popup-dynamic .modal-dialog { max-width: 600px; }
}

/* NEWSLETTER */
.section-newsletter { background:#f4f6f9; overflow: none; padding:40px 0px; }
.box-newsletter { text-align: center; margin:0px auto; max-width: 850px; position: relative; }
.box-newsletter__wrapper { max-width: 450px; margin:0px auto; }
.box-newsletter h2 { margin-bottom:5px; }
.box-newsletter .form-control { border-radius: 0px; }
.box-newsletter .form-check { margin:10px 0px; }

/* SLIDER OFFERTE */
.section-slider-offerte { text-align: center; padding-top:40px; }
.section-slider-offerte__wrap-text h2 { color:#68c2bb; margin-bottom: 5px; }
.section-slider-offerte__text { margin-bottom: 25px; font-weight: 600; }
.section-slider-offerte__wrap-btn-all { margin-top: 15px;  margin-bottom:25px; }

.slider-offerte__slide { margin:0px auto; max-width: 450px; padding: 0px 5px; }
.slider-offerte__wrap-title { margin-bottom: 20px;  }
.slider-offerte__wrap-title h3 { font-size: 22px; }
.slider-offerte__link { margin-bottom:30px; position: relative; }
.slider-offerte__link:before { content: ""; position: absolute; height:50px; bottom:-60px; left:50%; border-right:1px solid #1d273d; }
.slider-offerte__wrap-link a { color:#15233e; text-transform: uppercase; display: block; }
.slider-offerte__wrap-link a:hover { text-decoration: none; }

.slider-offerte > .slider-offerte__wrap-slide { display:none; } 
.slider-offerte > .slider-offerte__wrap-slide:first-child { display:block; display: block; max-width: 100%; height: auto; }

@media (min-width: 992px){
.section-slider-offerte__column-left { padding-top:40px; }
.section-slider-offerte__text { font-size: 20px; margin-bottom: 105px; }
.section-slider-offerte__wrap-btn-all a { font-size: 22px; }
}


/* Lista Camere */
.section-lista-camere { padding-top:45px; }

.section-lista-camere__wrap-text { margin-bottom:45px; }

.room-item__wrapper { padding:45px 0px; }

.room-item__wrapper .room-meta{ margin: 10px 0 18px; }
.room-item__wrapper .meta-pill{ display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; background: var(--primary-color); border: 1px solid var(--primary-color); color: #ffffff; font-size: 14px; line-height: 1; }
.room-item__wrapper .meta-pill strong{ margin-left: 2px; }
.room-item__wrapper .meta-ico{ width: 18px; height: 18px; fill: currentColor; opacity: .7; } 

.room-item__services ul { list-style:none; padding:0px; }
.room-item__services li { position:relative; display:block; padding:7px 0px 7px 38px; }
.room-item__services li i { position:absolute; top:4px; /*top:50%; margin-top:-14px;*/ left:2px; color:var(--primary-color); font-size:26px; height:26px; /* fix */ }

.room-item__wrapper { background: var(--bg-color-2); }
.room-item__wrapper.sinistra { background: #fff; }

.room-item__wrap-image { position:relative; overflow:hidden; }
.room-item__wrap-image img { transition:0.8s all; }
.room-item__wrap-image:hover img { transform:scale(1.1); }
.wrap-gallery-room__wrap-button a { position:absolute; top:0px; left:0px; right:0px; bottom:0px; z-index:10; transition:0.3s all; }
.wrap-gallery-room__wrap-button a:hover { background-color:rgba(0, 0, 0, 0.2); }
.wrap-gallery-room__button { position:absolute; top:20px; left:20px; z-index: 15; display:inline-block; background-color:#f4f6f9; color:#222; padding:10px 15px; font-size: 16px; font-weight: 500; text-decoration:none; transition:0.3s all; }
.wrap-gallery-room__wrap-button a:hover .wrap-gallery-room__button { background-color:var(--primary-color); color:#fff; }
.wrap-gallery-room__wrap-button .wrap-icon { position:absolute; top:50%; left:0%; right: 0px; text-align: center; transform: translateY(-50%); z-index:15; }
.wrap-gallery-room__wrap-button i { opacity:0; font-size: 40px; color:#fff; transition:0.5s all; }
.wrap-gallery-room__wrap-button a:hover i { opacity:0.8; font-size: 80px; }

.room-item__wrapper .col-image { margin-top:30px; }

@media (min-width: 992px){
  .room-item__services ul { -webkit-column-count: 2; -moz-column-count: 2; column-count: 2; -webkit-column-gap: 20px; -moz-column-gap: 20px; column-gap: 20px; }
  .room-item__services li { break-inside: avoid-column; }

  .room-item__wrapper.sinistra .col-text { order: 6!important; }

  .room-item__wrapper .col-image { margin-top:0px; }
  .sinistra .wrap-gallery-room__button { left:auto; right:20px; }
}

@media (min-width: 1400px){
  .room-item__wrapper.destra .col-image { padding-left:25px; }
  .room-item__wrapper.sinistra .col-image { padding-right:25px; }
  .room-item__wrapper.destra .room-item__wrap-text { padding-left:30px; padding-right:15px; }
  .room-item__wrapper.sinistra .room-item__wrap-text { padding-left:15px; padding-right:30px; }
}
@media (min-width: 1800px){
  .room-item__wrapper.destra .room-item__wrap-text { padding-left:50px; padding-right:25px; }
  .room-item__wrapper.sinistra .room-item__wrap-text { padding-left:25px; padding-right:50px; }
}

/* SLIDER CAMERE */

.slider-camere .swiper-slide { width: auto; /* per rispettare la larghezza contenuto, come variableWidth */ }

/* RECENSIONI */
.section-recensioni { background:#f9f9f9; }
.lista-recensioni__wrapper-recensione { position: relative; padding: 30px; margin: 0px 0px 25px; background: #fff; box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.08); }
.lista-recensioni__wrapper-name { line-height:1; }
.lista-recensioni__wrap-name { float: left; padding-top: 0; margin-left: 15px; }
.lista-recensioni__wrap-name h6 { font-size: 24px; margin-top: 5px; margin-bottom: 5px; color: #3e3e3e; font-weight: 700; }
.lista-recensioni__source { font-size: 18px; }
.lista-recensioni__date { margin-top:8px; }
.lista-recensioni__wrap-rating { font-size:26px; color:#78b0c4; margin-bottom:10px; }

@media (min-width: 768px){
  .lista-recensioni__wrap-recensione { padding:25px; }
  .lista-recensioni__wrap-data { font-size: 16px; }
  .lista-recensioni__wrap-rating { top:30px; right:30px; font-size: 30px; }
}

/* SLIDER RECENSIONI */
.col-slider-recensioni { background:#e7ecf1; }

.slider-recensioni__wrap-title { margin-bottom:5px; font-size: 20px; }
.slider-recensioni__text { margin-bottom:20px; }
.slider-recensioni__text h2 { margin-bottom:30px; }
.slide-recensione__fonte { margin-top:25px; margin-bottom:7px; }
.slide-recensione__fonte img { max-height:22px; }
.slide-recensione__wrap-name { font-weight:700; }

.section-slider-recensioni__wrap-btn-all { margin-top:15px; }

@media (min-width: 992px){
  .slider-recensioni__wrap-text { border-left:1px solid #2d477e; padding-left:50px; }

}

/* MINIGALLERY */
.section-minigallery .album__image {padding: 0px 3px;}

/* GALLERY */
.section-main-gallery { padding-top:30px; }
#gallery-filters { text-align: center; margin-bottom:20px; }
#gallery-filters.selected .gallery-filter__filter:first-child:not(.active),
.gallery-filter__filter { display: inline-block; font-size: 16px; margin:6px 4px; padding:6px 12px; background:#f4f6f9; color:#333; border-radius:2px; font-weight: 500; }
#gallery-filters .gallery-filter__filter:first-child,
.gallery-filter__filter.active { background:#97b3d2; color:#fff; }
.gallery-filter__filter:hover { cursor: pointer; }
.main-gallery .col-album { padding:3px; display: none; transition: 1s all; }
.main-gallery .col-album.show { display: block; }

@media (min-width: 992px){
  .main-gallery .col-album { padding:7px; }
}

/* MINIPREVENTIVO */

.minipreventivo__wrapper { position:fixed; bottom:0px; left:0px; right:0px; background:#f9f5f1; z-index:30; -webkit-box-shadow: 0px 5px 15px rgb(0 0 0 / 10%);  box-shadow: 0px 5px 15px rgb(0 0 0 / 10%); }
.minipreventivo__wrap { padding: 15px 15px; color:#213689; margin: 0px auto; max-width: 1400px;  text-align:center; }
.minipreventivo__wrap .wrap-field { position: relative; }
.minipreventivo__wrap .wrap-field.is-invalid { border: 1px solid #ff2237; }

.minipreventivo__wrap .wrap-field label { color: #213689; font-size: 18px; line-height: 24px; margin: 0px; margin-bottom:5px; text-transform:uppercase; font-weight:600; }
.minipreventivo__wrap .wrap-field.is-invalid label{color:#ff2237;}
.minipreventivo__wrap .wrap-field input { background:#ffffff; color:#213689; border:1px solid #1b3b84; text-align:center; border-radius:0; }
.minipreventivo__wrap .wrap-field select option { color:#333; }
.minipreventivo__wrap_wrap-button button { display: block; width:100%; }
.minipreventivo__wrap .btn-minibooking { background:#1e3986; color:#fff; padding: 0px 10px; line-height: 70px; border: 0px; font-weight: 500; }
.minipreventivo__wrap .btn-minibooking:hover { cursor: pointer; }

#abs-popover-content .wrap-field { margin-bottom: 15px; }
#abs-popover-content .wrap-field.is-invalid{border: 1px solid #ff2237;}
#abs-popover-content .wrap-field label { color: #333; font-size: 16px; }
#abs-popover-content .wrap-field.is-invalid label { color: #ff2237; }

#abs-popover-content .wrap-field input,
#abs-popover-content .wrap-field select { background-color:#ffffff; color:#333; border:1px solid #1b3b84; border-radius:0;  }
#abs-popover-content .row.small-margin { margin:0px -5px; }
#abs-popover-content .row.small-margin > div { padding: 0px 5px; }

#abs-popover{ height:38px; display:block; padding:3px 12px; background:#fff; color:#213689; border:1px solid #1b3b84; font-size:15px; line-height: 28px; text-decoration:none; }
#abs-popover .abs-camera-label{font-weight:700; }
#abs-popover-content { display:none; position: absolute; z-index: 10000; bottom: 0px;left:-10px;right:-10px; background:#f9f5f1; padding:25px 15px 15px; border:1px solid #1e3987;}
#abs-popover-content strong {text-transform: uppercase; color: #b82209;}
#abs-popover-content .selects{text-align:left; clear:both;}
#abs-popover-content .selects label, 
#abs-popover-content .selects select{float:left; width:45%; margin-bottom:5px;}
#abs-popover-content .selects select{width:auto; margin-right:5px;}
#abs-popover-content #abs-popover-close{line-height:normal; margin-top:10px;}
#abs-popover-content .eta-bambini{display:none;}

@media (max-width: 991px){
  .section__minipreventivo .minipreventivo__wrapper { display: none; }
}

@media (min-width: 992px){
  .minipreventivo__wrapper .wrap-field { margin-bottom:0px; }
  .minipreventivo__wrapper .wrap-field .form-control{ font-size: 15px;  }
}
@media (min-width: 1200px){
  .minipreventivo__wrapper .wrap-field .form-control { font-size: 16px; }
  #abs-popover{ font-size:16px; }
}


/* Icone Servizi */
.elenco-servizi__servizio{text-align:center;padding:15px; margin-bottom:30px;}
.elenco-servizi__icona{color: #d51568;background: linear-gradient(90deg, rgba(213, 21, 104, 1) 0%, rgba(213, 21, 104, 1) 25%, rgba(72, 194, 203, 1) 75%, rgba(72, 194, 203, 1) 100%);font-size:70px;line-height:1;-webkit-background-clip: text;-webkit-text-fill-color: transparent;}
.elenco-servizi__titolo{text-transform:uppercase;font-size:21px;margin-bottom:0; margin-top: 15px;}

/* Footer */
footer a:hover { color: var(--bg-color-1); }
.footer-top { padding: 65px 0; }
.footer-bottom { font-size: 1rem; }
.footer__title { font-size:1.6rem; text-transform: uppercase; }
.footer__social a i:before { font-size: 2rem; color: var(--bg-color-1); }
.footer__social a:hover i:before { color: var(--bg-color-2); transition: 0.8s all; }