/*
Theme Name: Turmet 
Author: pixel-drop
Author URI: https://themeforest.net/user/pixel-drop/portfolio
Description: Turmet - Travel & Tour Agency HTML Template
Service Html Template 
Version: 1.0.0
*/
/*CSS Table Of Content Ends Here*/
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap");
/* Variabili colore: definite in color.css (caricato prima di questo file in site.php e
   nell'iframe di prenotazione, deltabooking-booking-frame.php) — così deltabooking-style.css
   può usare le stesse var(--theme)/var(--success)/ecc. pur essendo un documento HTML separato. */

.bg-gradient{
  background:linear-gradient(to top, rgba(53, 146, 200, 0) 0%, rgba(53, 146, 200, 0.1) 100%)!important
}
/* ── container più largo sui desktop, in stile ai siti più recenti ───
   Bootstrap di default si ferma a 1320px da 1400px in su: qui invece
   continuiamo ad allargare fino a 1520px sui monitor più ampi. */
@media (min-width: 1200px) {
  .container {
    max-width: 1320px;
  }
}
@media (min-width: 1400px) {
  .container {
    max-width: 1400px;
  }
}
@media (min-width: 1600px) {
  .container {
    max-width: 1520px;
  }
}

.theme-btn {
  position: relative;
  z-index: 2;
  overflow: hidden;
  vertical-align: middle;
  display: inline-block;
  border: none;
  text-align: center;
  background-color: var(--theme-2);
  color: var(--white);
  line-height: 1;
  padding: 18px 20px;
  min-width: 170px;
  border-radius: 100px;
  font-size: 16px;
  font-weight: 700;
  font-family: "Manrope", sans-serif;
}
@media (max-width: 991px) {
  .theme-btn {
    padding: 18px 24px;
  }
}
.theme-btn{
  display: inline-flex;
  gap:10px;
  align-items:center;
  justify-content:center;
}

.theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}

@media (max-width: 767px) {
  .theme-btn {
    padding: 14px 22px;
    min-width: 130px;
  }
}
@media (max-width: 575px) {
  .theme-btn {
    padding: 14px 20px;
    min-width: 110px;
    font-size: 13px;
  }
}

.theme-btn.style-2 {
  background-color: var(--header);
  border: 1px solid var(--header);
  color: var(--white);
}
.theme-btn.style-2::before {
  display:none
}
.theme-btn:hover {
  color: var(--white);
  border-color: var(--black);
  background-color: var(--black);
}
.theme-btn.style-3 {
  background-color: transparent;
  border: 1px solid var(--border);
  color: var(--black);
}
.theme-btn.style-3::before {
  display:none
}
.theme-btn.style-3:hover {
  color: var(--white);
  border-color: var(--black);
  background-color: var(--black);
}
.link-btn {
  font-size: 16px;
  font-weight: 700;
  color: var(--theme);
  text-transform: capitalize;
}
.link-btn i {
  margin-left: 10px;
}
.link-btn.style-2 {
  color: #535353;
}
.link-btn.style-2:hover {
  color: var(--theme);
}
.link-btn:hover {
  color: var(--theme) !important;
}

/* --------------------------------------------
    Template Default Fonts & Fonts Styles
 ---------------------------------------------- */
body {
  font-family: "Manrope", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  color: var(--text);
  background-color: var(--white);
  padding: 0;
  margin: 0;
  overflow-x: hidden;
}

ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

button {
  border: none;
  background-color: transparent;
  padding: 0;
}

input:focus {
  color: var(--white);
  outline: none;
}

input {
  color: var(--white);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Manrope", sans-serif;
  margin: 0px;
  padding: 0;
  color: var(--header);
  text-transform: initial;
  transition: all 0.2s ease-in-out;
}

h1 {
  font-size: 74px;
  font-weight: 800;
  line-height: 114%;
}
@media (max-width: 1399px) {
  h1 {
    font-size: 53px;
  }
}
@media (max-width: 1199px) {
  h1 {
    font-size: 42px;
  }
}
@media (max-width: 991px) {
  h1 {
    font-size: 50px;
  }
}
@media (max-width: 767px) {
  h1 {
    font-size: 45px;
  }
}
@media (max-width: 575px) {
  h1 {
    font-size: 40px;
  }
}

h2 {
  font-size: 48px;
  font-weight: 700;
  line-height: 125%;
}
@media (max-width: 1399px) {
  h2 {
    font-size: 44px;
  }
}
@media (max-width: 1199px) {
  h2 {
    font-size: 40px;
  }
}
@media (max-width: 991px) {
  h2 {
    font-size: 36px;
  }
}
@media (max-width: 767px) {
  h2 {
    font-size: 32px;
  }
}
@media (max-width: 575px) {
  h2 {
    font-size: 28px;
  }
}

h3 {
  font-size: 24px;
  font-weight: 700;
  line-height: 150%;
}
@media (max-width: 767px) {
  h3 {
    font-size: 22px;
  }
}
@media (max-width: 575px) {
  h3 {
    font-size: 20px;
  }
}

h4 {
  font-size: 22px;
  font-weight: 700;
  line-height: 136%;
}
@media (max-width: 575px) {
  h4 {
    font-size: 18px;
  }
}

h5 {
  font-size: 18px;
  font-weight: 700;
}
@media (max-width: 575px) {
  h5 {
    font-size: 16px;
  }
}

h6 {
  font-size: 16px;
  font-weight: 700;
}
@media (max-width: 575px) {
  h6 {
    font-size: 15px;
  }
}

a {
  text-decoration: none;
  outline: none !important;
  cursor: pointer;
  color: var(--header);
  transition: all 0.2s ease-in-out;
}

p {
  margin: 0px;
  transition: all 0.2s ease-in-out;
}
.about-wrapper {
  padding-bottom: 85px;
}
@media (max-width: 1199px) {
  .about-wrapper {
    padding-bottom: 0;
  }
}
.about-wrapper .about-image {
  position: relative;
  max-width: 350px;
  z-index: 1;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image {
    max-width: 800px;
  }
}
.about-wrapper .about-image img {
  width: 100%;
  height: 100%;
}
.about-wrapper .about-image .border-image {
  position: absolute;
  top: 25%;
  z-index: -1;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .border-image {
    display: none;
  }
}
.about-wrapper .about-image .border-image img {
  border-radius: none;
  width: initial;
  height: initial;
}
.about-wrapper .about-image .vdeo-item {
  position: absolute;
  bottom: -30%;
  left: 18%;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .vdeo-item {
    bottom: initial;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 9;
  }
}
.about-wrapper .about-image .vdeo-item .video-btn {
  width: 57px;
  height: 57px;
  line-height: 57px;
  text-align: center;
  background-color: var(--theme-2);
  color: var(--white);
  left: 46%;
  bottom: -27%;
  position: absolute;
  transform: translate(-50%, -50%);
  font-size: 22px;
  margin-bottom: 20px;
}
@media (max-width: 575px) {
  .about-wrapper .about-image .vdeo-item .video-btn {
    margin-bottom: 40px;
  }
}
.about-wrapper .about-image .vdeo-item .video-btn::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  border: 1px solid var(--theme-2);
  border-radius: 0;
  top: 50%;
  left: 51%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .vdeo-item .video-btn {
    width: 50px;
    height: 50px;
    line-height: 50px;
    font-size: 18px;
  }
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .vdeo-item h5 {
    color: var(--white);
  }
}
.about-wrapper .about-image .about-image-2 {
  max-width: 360px;
  position: absolute;
  right: -70%;
  bottom: -45%;
}
@media (max-width: 1399px) {
  .about-wrapper .about-image .about-image-2 {
    right: -57%;
  }
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .about-image-2 {
    max-width: 262px;
    height: 230px;
    left: 0;
    bottom: 0;
  }
}
.about-wrapper .about-image .about-image-2 .plane-shape {
  position: absolute;
  top: -178px;
  right: 0;
  z-index: -1;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .about-image-2 .plane-shape {
    display: none;
  }
}
.about-wrapper .about-image .about-image-2 .about-tour {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 16px;
  background-color: var(--theme);
  position: absolute;
  left: 30px;
  right: 30px;
  border-radius: 10px;
  bottom: 30px;
}
@media (max-width: 1199px) {
  .about-wrapper .about-image .about-image-2 .about-tour {
    left: 3px;
    right: 20px;
    bottom: 2px;
  }
}
.about-wrapper .about-image .about-image-2 .about-tour .content h4 {
  font-size: 20px;
  color: var(--white);
}
.about-wrapper .about-image .about-image-2 .about-tour .content span {
  font-size: 14px;
  font-weight: 400;
  color: var(--white);
}
.about-wrapper .about-content {
  position: relative;
  z-index: 9;
}
.about-wrapper .about-content .about-area {
  position: relative;
  z-index: 1;
}
.about-wrapper .about-content .about-area .line-image {
  position: absolute;
  left: 34px;
  top: 72px;
  z-index: -1;
}
@media (max-width: 1199px) {
  .about-wrapper .about-content .about-area .line-image {
    display: none;
  }
}
.about-wrapper .about-content .about-area .about-items {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 50px;
}
@media (max-width: 1199px) {
  .about-wrapper .about-content .about-area .about-items {
    margin-bottom: 25px;
    flex-wrap: wrap;
  }
}
.about-wrapper .about-content .about-area .about-items .icon {
  width: 67px;
  height: 67px;
  line-height: 67px;
  border-radius: 50px;
  flex-basis: 70px;
  text-align: center;
  background-color: var(--theme);
}

.about-wrapper-2 {
  margin-bottom: 37px;
}
@media (max-width: 1199px) {
  .about-wrapper-2 {
    margin-bottom: 0;
  }
}
.about-wrapper-2 .about-image {
  position: relative;
  max-width: 330px;
  z-index: 1;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image {
    max-width: 700px;
    height: 500px;
  }
}
@media (max-width: 991px) {
  .about-wrapper-2 .about-image {
    height: 500px;
  }
}
.about-wrapper-2 .about-image img {
  width: 100%;
  height: 100%;
  border-radius: 15px;
  object-fit: cover;
}
.about-wrapper-2 .about-image .shape-image {
  position: absolute;
  bottom: 50px;
  left: -60px;
}
.about-wrapper-2 .about-image .shape-image img {
  border: 8px solid var(--white);
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .shape-image img {
    width: initial;
    height: initial;
  }
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .shape-image {
    left: 0;
    top: 0;
  }
}
.about-wrapper-2 .about-image .group-image {
  position: absolute;
  bottom: -65px;
  left: 70px;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .group-image img {
    width: initial;
    height: initial;
  }
}
@media (max-width: 1399px) {
  .about-wrapper-2 .about-image .group-image {
    left: 30px;
  }
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .group-image {
    right: 0;
    bottom: 0;
    left: initial;
    z-index: 1;
  }
}
.about-wrapper-2 .about-image .about-image-2 {
  max-width: 300px;
  position: absolute;
  right: -75%;
  bottom: -13%;
}
@media (max-width: 1399px) {
  .about-wrapper-2 .about-image .about-image-2 {
    right: -62%;
  }
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .about-image-2 {
    height: 255px;
    max-width: 250px;
    left: 0;
    bottom: 0;
  }
}
.about-wrapper-2 .about-image .about-image-2 img {
  border: 8px solid var(--white);
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
}
.about-wrapper-2 .about-image .about-image-2 .plane-shape {
  position: absolute;
  top: -138px;
  left: -100px;
  z-index: -1;
}
.about-wrapper-2 .about-image .about-image-2 .plane-shape img {
  border: none;
  box-shadow: none;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .about-image-2 .plane-shape {
    display: none;
  }
}
.about-wrapper-2 .about-image .about-image-2 .circle-image {
  position: absolute;
  top: 120px;
  left: -52px;
}
.about-wrapper-2 .about-image .about-image-2 .circle-image img {
  border: none;
  box-shadow: none;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-image .about-image-2 .circle-image {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}
.about-wrapper-2 .about-content .about-items {
  display: flex;
  align-items: center;
  gap: 150px;
  margin-top: 30px;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-content .about-items {
    gap: 15px;
    flex-wrap: wrap;
  }
}
@media (max-width: 991px) {
  .about-wrapper-2 .about-content .about-items {
    gap: 70px;
  }
}
@media (max-width: 767px) {
  .about-wrapper-2 .about-content .about-items {
    gap: 20px;
  }
}
@media (max-width: 575px) {
  .about-wrapper-2 .about-content .about-items {
    gap: 15px;
  }
}
.about-wrapper-2 .about-content .about-items:not(:last-child) {
  margin-bottom: 40px;
}
.about-wrapper-2 .about-content .about-items .about-icon-items {
  display: flex;
  align-items: center;
  gap: 16px;
}
.about-wrapper-2 .about-content .about-items .text {
  position: relative;
}
.about-wrapper-2 .about-content .about-items .text::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background: var(--theme);
  width: 2px;
  height: 41px;
  left: -27px;
  top: 8px;
}
@media (max-width: 1199px) {
  .about-wrapper-2 .about-content .about-items .text::before {
    display: none;
  }
}
.about-wrapper-2 .about-content .theme-btn {
  background-color: var(--theme-2);
}
.about-wrapper-2 .about-content .theme-btn:before {
  background-color: var(--theme);
}

.about-wrapper-3 {
  padding: 40px 0;
}
@media (max-width: 1199px) {
  .about-wrapper-3 {
    padding: 0;
  }
}
.about-wrapper-3 .about-image {
  position: relative;
  max-width: 450px;
  margin-left: -30px;
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-image {
    max-width: 700px;
    height: 500px;
    margin-left: 0;
  }
}
@media (max-width: 991px) {
  .about-wrapper-3 .about-image {
    height: 500px;
  }
}
.about-wrapper-3 .about-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  object-fit: cover;
  transform: rotate(-20deg);
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-image img {
    transform: rotate(0);
  }
}
.about-wrapper-3 .about-image .about-image-2 {
  max-width: 350px;
  position: absolute;
  right: -48%;
  bottom: -2%;
  z-index: 1;
}
@media (max-width: 1399px) {
  .about-wrapper-3 .about-image .about-image-2 {
    right: -27%;
  }
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-image .about-image-2 {
    max-width: 250px;
    left: 0;
    bottom: 0;
  }
}
.about-wrapper-3 .about-image .about-image-2 img {
  transform: rotate(26deg);
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-image .about-image-2 img {
    transform: rotate(0);
  }
}
.about-wrapper-3 .about-image .about-image-2 .plane-shape {
  position: absolute;
  top: -58%;
  left: 6px;
  z-index: -1;
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-image .about-image-2 .plane-shape {
    display: none;
  }
}
.about-wrapper-3 .about-content {
  margin-left: 60px;
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-content {
    margin-left: 0;
  }
}
.about-wrapper-3 .about-content .about-items {
  display: flex;
  align-items: center;
  gap: 150px;
  margin-top: 30px;
}
.about-wrapper-3 .about-content .about-items:not(:last-child) {
  margin-bottom: 40px;
}
@media (max-width: 1199px) {
  .about-wrapper-3 .about-content .about-items:not(:last-child) {
    margin-bottom: 30px;
  }
}
.about-wrapper-3 .about-content .about-items .about-icon-items {
  display: flex;
  align-items: center;
  gap: 24px;
}
.about-wrapper-3 .about-content .about-items .about-icon-items .icon {
  width: 74px;
  height: 74px;
  line-height: 74px;
  text-align: center;
  border-radius: 50px;
  background-color: rgb(239, 243, 250);
  position: relative;
}
.about-wrapper-3 .about-content .about-items .about-icon-items .content h4 {
  font-size: 20px;
}

.about-section {
  position: relative;
}
.about-section .right-shape {
  position: absolute;
  right: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .about-section .right-shape {
    display: none;
  }
}
.about-section .left-shape {
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 1399px) {
  .about-section .left-shape {
    display: none;
  }
}

@-webkit-keyframes rippleOne {
  70% {
    -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
    box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
  }
  100% {
    -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
    box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
  }
}
@keyframes rippleOne {
  70% {
    -webkit-box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
    box-shadow: 0 0 0 40px rgba(244, 68, 56, 0);
  }
  100% {
    -webkit-box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
    box-shadow: 0 0 0 0 rgba(244, 68, 56, 0);
  }
}
@keyframes cir36 {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes rounded {
  50% {
    transform: rotate(15deg);
  }
}
@keyframes up-down {
  0% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(-10px);
  }
}
@-webkit-keyframes spinner {
  to {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}
@keyframes spinner {
  to {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}
@-webkit-keyframes letters-loading {
  0%, 75%, 100% {
    opacity: 0;
    transform: rotateY(-90deg);
  }
  25%, 50% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}
@keyframes letters-loading {
  0%, 75%, 100% {
    opacity: 0;
    transform: rotateY(-90deg);
  }
  25%, 50% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}
@keyframes loaderspin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
@keyframes tpswing {
  0% {
    -webkit-transform: rotate(20deg);
    -ms-transform: rotate(20deg);
    transform: rotate(20deg);
  }
  100% {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}
@keyframes width {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}
@-webkit-keyframes width {
  0% {
    width: 0%;
  }
  100% {
    width: 100%;
  }
}
@-webkit-keyframes loaderspin {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
@keyframes loaderpulse {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}
@keyframes rounded {
  50% {
    transform: rotate(20deg);
  }
}
@keyframes cir36 {
  100% {
    transform: rotate(360deg);
  }
}
.float-bob-y {
  -webkit-animation-name: float-bob-y;
  animation-name: float-bob-y;
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
}

@-webkit-keyframes float-bob-y {
  0% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  50% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
}
@keyframes float-bob-y {
  0% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  50% {
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px);
  }
  100% {
    -webkit-transform: translateY(-30px);
    transform: translateY(-30px);
  }
}
.float-bob-x {
  -webkit-animation-name: float-bob-x;
  animation-name: float-bob-x;
  -webkit-animation-duration: 3s;
  animation-duration: 3s;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
}

@-webkit-keyframes float-bob-x {
  0% {
    -webkit-transform: translateX(0px);
    transform: translateX(30px);
  }
  50% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }
  100% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px);
  }
}
@keyframes float-bob-x {
  0% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px);
  }
  50% {
    -webkit-transform: translateX(10px);
    transform: translateX(10px);
  }
  100% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px);
  }
}
@keyframes bounce-x {
  0% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(30px);
    transform: translateX(30px);
  }
  100% {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
.bounce-x {
  -webkit-animation: bounce-x 7s infinite linear;
  animation: bounce-x 7s infinite linear;
}

@keyframes criss-cross-left {
  0% {
    left: -20px;
  }
  50% {
    left: 50%;
    width: 20px;
    height: 20px;
  }
  100% {
    left: 50%;
    width: 375px;
    height: 375px;
  }
}
@keyframes criss-cross-right {
  0% {
    right: -20px;
  }
  50% {
    right: 50%;
    width: 20px;
    height: 20px;
  }
  100% {
    right: 50%;
    width: 375px;
    height: 375px;
  }
}
@keyframes rotated2 {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes wave {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-25%);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes zoom {
  0% {
    transform: scale(0.5);
  }
  50% {
    transform: scale(1);
  }
  100% {
    transform: scale(0.5);
  }
}
@keyframes translateY2 {
  0% {
    -webkit-transform: translateY(-30px);
    -moz-transform: translateY(-30px);
    -ms-transform: translateY(-30px);
    -o-transform: translateY(-30px);
    transform: translateY(-30px);
  }
  100% {
    -webkit-transform: translateY(20px);
    -moz-transform: translateY(20px);
    -ms-transform: translateY(20px);
    -o-transform: translateY(20px);
    transform: translateY(20px);
  }
}
@keyframes translateX2 {
  0% {
    -webkit-transform: translateX(-30px);
    -moz-transform: translateX(-30px);
    -ms-transform: translateX(-30px);
    -o-transform: translateX(-30px);
    transform: translateX(-30px);
  }
  100% {
    -webkit-transform: translatXY(20px);
    -moz-transform: translateX(20px);
    -ms-transform: translateX(20px);
    -o-transform: translateX(20px);
    transform: translateX(20px);
  }
}
@keyframes moving {
  0% {
    transform: translatey(0px);
  }
  20% {
    transform: translateX(-50px);
  }
  50% {
    transform: translatey(-40px);
  }
  100% {
    transform: translatey(0px);
  }
}
/*img-animation**********************/
.img-custom-anim-right {
  animation: img-anim-right 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.2s;
  opacity: 0;
}

@keyframes img-anim-right {
  0% {
    transform: translateX(5%);
    clip-path: inset(0 0 0 100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.img-custom-anim-left {
  animation: img-anim-left 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1) 0.2s;
  opacity: 0;
}

@keyframes img-anim-left {
  0% {
    transform: translateX(-5%);
    clip-path: inset(0 100% 0 0);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.img-custom-anim-top {
  animation: img-anim-top 1.3s forwards cubic-bezier(0.645, 0.045, 0.355, 1);
  opacity: 0;
}

@keyframes img-anim-top {
  0% {
    transform: translateY(-5%);
    clip-path: inset(0 0 100% 0);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    clip-path: inset(0 0 0 0);
    opacity: 1;
  }
}
.brand-wrapper .brand-title {
  text-align: center;
  margin-bottom: 50px;
  font-size: 22px;
  font-weight: 600;
  position: relative;
}
.brand-wrapper .brand-title::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  top: 10px;
  width: 40%;
  height: 1%;
  background: #E1E4E5;
}
@media (max-width: 1199px) {
  .brand-wrapper .brand-title::before {
    display: none;
  }
}
.brand-wrapper .brand-title::after {
  position: absolute;
  content: "";
  top: 10px;
  right: 0;
  width: 40%;
  height: 1%;
  background: #E1E4E5;
}
@media (max-width: 1199px) {
  .brand-wrapper .brand-title::after {
    display: none;
  }
}
.brand-wrapper .brand-image {
  text-align: center;
  filter: grayscale(100%);
  transition: all 0.2s ease-in-out;
  opacity: 0.4;
}
.brand-wrapper .brand-image:hover {
  filter: initial;
  opacity: 1;
}
.brand-wrapper .swiper-slide.swiper-slide-active .brand-image {
  filter: initial;
  opacity: 1;
}

.brand-section {
  position: relative;
}
.brand-section .left-shape {
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .brand-section .left-shape {
    display: none;
  }
}

.swiper-3d-section .container {
  max-width: 1500px;
  margin: 0 auto;
}
.swiper-3d-section .card3d-content {
  position: absolute;
  left: 50%;
  width: 100%;
  text-align: center;
  display: grid;
  opacity: 0;
}
.swiper-3d-section .card3d-content h3 a {
  color: var(--white);
}
.swiper-3d-section .card3d-content span {
  margin: 0 auto;
  color: var(--white);
}
.swiper-3d-section .card3d-content .theme-btn {
  border: 1px solid var(--white);
  background-color: transparent;
  max-width: 160px;
  text-align: center;
  margin: 0 auto;
}
.swiper-3d-section .card3d-content .theme-btn:hover {
  color: var(--white);
  border: 1px solid var(--header);
  box-shadow: none;
}
.swiper-3d-section .card3d-content .theme-btn:hover::before {
  width: 100%;
}

.swiper-3d-section .swiper-3d-container {
  width: 100%;
}

.swiper-3d-section .swiper-3d-container .swiper-slide {
  width: 320px;
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d {
  position: relative;
  width: 320px;
  transition: all 0.2s ease;
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d .img-area {
  border-radius: inherit;
  position: relative;
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d .img-area img {
  border-radius: inherit;
  transition: all 0.2s ease;
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d .card-date {
  border-radius: 12px;
  background: rgba(var(--n1), 0.45);
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d .card-status {
  border-radius: 46px;
  border: 1px solid var(--border);
  background: var(--theme);
  bottom: -10px;
}

.swiper-3d-section .swiper-3d-container .swiper-slide .card-3d .card-info {
  border-radius: 12px;
  background: var(--theme);
}

.swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d {
  opacity: 1;
  z-index: 1;
  position: relative;
}
.swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d .card3d-content {
  position: absolute;
  bottom: 30px;
  left: 40px;
  width: 100%;
  text-align: center;
  z-index: 1;
  opacity: 1;
}
.swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d .card3d-content span {
  margin: 0 auto;
}
.swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::before {
  position: absolute;
  bottom: -220px;
  left: 0;
  content: "";
  width: 400px;
  border-radius: 50%;
  height: 430px;
  background: var(--theme);
  z-index: 1;
}
@media (max-width: 1199px) {
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::before {
    background: none;
  }
}
.swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::after {
  position: absolute;
  bottom: -220px;
  left: 0;
  width: 400px;
  height: 400px;
  content: "";
  background: rgba(5, 5, 5, 0.486);
  border-radius: 50%;
}
@media (max-width: 1199px) {
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::after {
    background: none;
  }
}
@media (max-width: 575px) {
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d {
    width: 100%;
    overflow: hidden;
  }
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d .card3d-content {
    left: 50%;
    transform: translateX(-50%);
  }
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d img {
    width: 100%;
  }
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::before {
    bottom: -220px;
    left: 50%;
    transform: translateX(-50%);
    width: 300px;
    height: 300px;
  }
  .swiper-3d-section .swiper-3d-container .swiper-slide-active .card-3d::after {
    bottom: -220px;
    left: 50%;
    transform: translateX(-50%);
    width: 300px;
    height: 300px;
  }
}

.footer-newsletter-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 80px 0 45px;
  position: relative;
}
.input-group button{border-radius:6px;}
.pq-newsletter__disclaimer{font-size:.85rem;margin-top:8px;line-height:1.3}
@media (max-width: 1199px) {
  .footer-newsletter-wrapper {
    flex-wrap: wrap;
  }
}
.footer-newsletter-wrapper .footer-newsletter-item .widget-head {
  margin-bottom: 30px;
}
.footer-newsletter-wrapper .footer-newsletter-item .footer-content p {
  color: var(--white);
}
.footer-newsletter-wrapper .footer-newsletter-item .social-icon {
  gap: 8px;
  margin-top: 30px;
}
.footer-newsletter-wrapper .footer-newsletter-item .social-icon a {
  width: 36px;
  height: 36px;
  line-height: 36px;
  border-radius: 50px;
  text-align: center;
  color: var(--theme);
  background-color: var(--white);
  transition: all 0.2s ease-in-out;
}
.footer-newsletter-wrapper .footer-newsletter-item .social-icon a:hover {
  background-color: var(--theme);
  color: var(--white);
}
@media (max-width: 1199px) {
  .footer-newsletter-wrapper .newsletter-input {
    margin-top: 20px;
  }
}
.footer-newsletter-wrapper .newsletter-input h2 {
  font-size: 32px;
  color: var(--white);
}
@media (max-width: 767px) {
  .footer-newsletter-wrapper .newsletter-input h2 {
    font-size: 28px;
  }
}
@media (max-width: 575px) {
  .footer-newsletter-wrapper .newsletter-input h2 {
    font-size: 24px;
  }
}
.footer-newsletter-wrapper .newsletter-input p {
  font-size: 18px;
  font-weight: 500;
  color: var(--white);
}
.footer-newsletter-wrapper .newsletter-input .footer-input {
  position: relative;
  margin-top: 30px;
}
.footer-newsletter-wrapper .newsletter-input .footer-input input {
  background: var(--white);
  border: none;
  outline: none;
  width: 100%;
  padding: 18px 20px;
  border-radius: 100px;
  color: #727171;
  line-height: 1;
  text-transform: capitalize;
}
@media (max-width: 991px) {
  .footer-newsletter-wrapper .newsletter-input .footer-input input {
    padding: 15px 20px;
  }
}
@media (max-width: 767px) {
  .footer-newsletter-wrapper .newsletter-input .footer-input input {
    padding: 17px 20px;
  }
}
@media (max-width: 575px) {
  .footer-newsletter-wrapper .newsletter-input .footer-input input {
    padding: 14px 20px;
  }
}
.footer-newsletter-wrapper .newsletter-input .footer-input input::placeholder {
  color: #727171;
}
.footer-newsletter-wrapper .newsletter-input .footer-input .newsletter-btn {
  position: absolute;
  top: 0px;
  right: 0px;
}

.contact-us-main {
  border-radius: 10px;
  padding: 12px 16px;
  background-color: var(--bg);
  text-align: center;
  position: relative;
  transition: all 0.2s ease-in-out;
}
.contact-us-main.style-2 {
  background-color: var(--theme);
}
.contact-us-main.style-2 .contact-box-items {
  border: 1px solid var(--white);
}
.contact-us-main.style-2 .contact-box-items .icon {
  color: var(--white);
}
.contact-us-main.style-2 .contact-box-items .content h3 a {
  color: var(--white);
}
.contact-us-main.style-2 .contact-box-items .content p {
  color: var(--white);
}
.contact-us-main .contact-box-items {
  border-radius: 10px;
  border: 1px solid var(--border);
  padding: 28px 30px;
}
.contact-us-main .contact-box-items .icon {
  margin-bottom: 20px;
}
.contact-us-main .contact-box-items .content h3 {
  font-weight: 600;
  margin-bottom: 5px;
}
.contact-us-main .contact-box-items .content p {
  font-size: 18px;
  font-weight: 400;
  color: var(--text);
}
.contact-us-main:hover {
  background-color: var(--theme);
}
.contact-us-main:hover .contact-box-items .icon img {
  filter: grayscale(100%) brightness(300%);
}
.contact-us-main:hover .contact-box-items .content {
  position: relative;
  z-index: 1;
}
.contact-us-main:hover .contact-box-items .content h3 {
  color: var(--white);
}
.contact-us-main:hover .contact-box-items .content h3 a {
  color: var(--white);
}
.contact-us-main:hover .contact-box-items .content p {
  color: var(--white);
}

.contact-us-wrapper .contact-us-contact {
  padding: 120px 0;
}
@media (max-width: 991px) {
  .contact-us-wrapper .contact-us-contact {
    padding: 80px 0 30px;
  }
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt input, .contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt textarea {
  width: 100%;
  outline: none;
  border: none;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  padding: 16px 20px;
  background-color: transparent;
  font-weight: 400;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt input::placeholder, .contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt textarea::placeholder {
  color: var(--white);
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt textarea {
  padding-bottom: 100px;
  border-radius: 20px;
  resize: none;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt .nice-select {
  background-color: transparent;
  padding: 16px 20px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt .nice-select span {
  font-size: 14px;
  color: var(--white);
  font-weight: 400;
  text-transform: capitalize;
  margin-bottom: 0;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt .nice-select::after {
  right: 25px;
  top: 28px;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt .nice-select .list {
  right: 0;
  background-color: var(--bg);
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .form-clt .nice-select .option {
  border: none;
  padding: 6px 15px;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .theme-btn {
  background-color: transparent;
  border: 1px solid var(--theme);
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .theme-btn:before {
  background-color: var(--theme);
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}
.contact-us-wrapper .contact-us-contact .comment-form-wrap .theme-btn:hover::before {
  width: 100%;
}
.contact-us-wrapper .map-area {
  margin-left: 25px;
}
@media (max-width: 1199px) {
  .contact-us-wrapper .map-area {
    margin-left: 0;
  }
}
.contact-us-wrapper .map-area .google-map iframe {
  width: 1053px;
  height: 810px;
}

.cta-items {
  padding: 60px 45px;
  border-radius: 20px;
  position: relative;
  background: radial-gradient(164.46% 92.51% at 63.51% -24.13%, #FFED70 0.33%, #DDE583 15.83%, #86CFB4 50.2%, #00AEFF 99.87%);
}
@media (max-width: 1199px) {
  .cta-items {
    padding: 60px 20px;
  }
}
.cta-items .cta-text h2 {
  color: var(--white);
  margin-bottom: 10px;
  line-height: 1;
  position: relative;
  z-index: 9;
}
.cta-items .cta-text p {
  color: var(--white);
  font-size: 24px;
  font-weight: 700;
  z-index: 9;
  position: relative;
}
@media (max-width: 575px) {
  .cta-items .cta-text p {
    font-size: 20px;
  }
}
.cta-items .theme-btn {
  margin-top: 20px;
  background: var(--white);
  color: var(--theme);
}
.cta-items .cta-image {
  position: absolute;
  right: 25px;
  top: 10px;
}
@media (max-width: 1199px) {
  .cta-items .cta-image {
    max-width: 200px;
  }
}
@media (max-width: 1199px) {
  .cta-items .cta-image img {
    width: 100%;
    height: 100%;
  }
}
.cta-items.style-2 {
  background: radial-gradient(164.46% 92.51% at 63.51% -24.13%, #F9B403 0.33%, #E5BE83 15.83%, #8696CF 50.2%, #002A81 99.87%);
}

.cta-section {
  position: relative;
}
.cta-section .mobile-shape {
  position: absolute;
  right: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .cta-section .mobile-shape {
    display: none;
  }
}

.cta-wrapper {
  text-align: center;
    padding: 100px;
}

.cta-wrapper .cta-btn {
  margin-top: 40px;
  display: flex;
  align-items: center;
  gap: 40px;
  justify-content: center;
}
@media (max-width: 767px) {
  .cta-wrapper .cta-btn {
    flex-wrap: wrap;
  }
}
.cta-wrapper .cta-btn .watch-btn {
  display: flex;
  align-items: center;
  gap: 15px;
}
.cta-wrapper .cta-btn .watch-btn .video-btn {
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  border: 1px solid var(--white);
  border-radius: 50%;
  background-color: transparent;
  color: var(--white);
  font-size: 16px;
}
.cta-wrapper .cta-btn .watch-btn h6 {
  color: var(--white);
  position: relative;
}

.cta-bg-section {
    background: linear-gradient(45deg, rgba(198, 151, 252, 0.12) 0%, rgba(53, 146, 200, 0.16) 60%);

}

/* gift-cta-section — testo centrato, sotto la section Packages. Sfondo a
   gradiente leggerissimo sul colore del tema (stile "WeRoad" attenuato sulla
   palette del sito, non un blocco colore pieno) invece della foto del nodo a
   piena sezione: quell'immagine non è pensata per essere ingrandita/ritagliata
   così (vedi conversazione — small/medium sono quadrate, solo large è un
   banner larghissimo 1920x410, probabile disallineamento nella config vs il
   contenuto reale caricato). */
.gift-cta-section__box {
  /* Diagonale rosa (--theme-2, lo stesso rosa dei bottoni) -> blu (--theme),
     entrambi molto tenui: accenna un tramonto senza diventare un blocco colore.
     Sul box interno (non sulla section a piena larghezza) così il colore resta
     dentro i margini del container, con angoli arrotondati come le card. */
  background: linear-gradient(45deg, rgba(252, 200, 151, 0.25) 0%, rgba(247, 137, 161, 0.25) 60%);
  border-radius: 35px;
  padding: 60px 40px;
}
@media (max-width: 575px) {
  .gift-cta-section__box {
    padding: 40px 20px;
  }
}
.gift-cta-section__content {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  color: var(--black);
}
.gift-cta-section__content h2 {
  margin: 0;
  color: var(--black);
  line-height:1.2;
  font-weight:800
}
.gift-cta-section__subtitle {
  margin: 0;
  color: var(--black);
}

.instagram-wrapper {
  padding: 0 60px;
}
@media (max-width: 1399px) {
  .instagram-wrapper {
    padding: 0 30px;
  }
}
@media (max-width: 1199px) {
  .instagram-wrapper {
    padding: 0 20px;
  }
}
.instagram-wrapper h2 {
  margin-bottom: 30px;
  position: relative;
  line-height: 1;
  margin-top: -7px;
}
.instagram-wrapper h2::before {
  position: absolute;
  top: 30px;
  left: 9%;
  content: "";
  height: 1px;
  width: 471px;
  background-color: #E6E5E5;
}
@media (max-width: 1899px) {
  .instagram-wrapper h2::before {
    display: none;
  }
}
.instagram-wrapper h2::after {
  position: absolute;
  top: 30px;
  right: 9%;
  content: "";
  height: 1px;
  width: 471px;
  background-color: #E6E5E5;
}
@media (max-width: 1899px) {
  .instagram-wrapper h2::after {
    display: none;
  }
}
.instagram-wrapper .instagram-banner-items .banner-image {
  position: relative;
}
.instagram-wrapper .instagram-banner-items .banner-image img {
  width: 100%;
  height: 100%;
  border-radius: 16px;
}
.instagram-wrapper .instagram-banner-items .banner-image::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  content: "";
  background-color: rgba(28, 168, 203, 0.5);
  border-radius: 16px;
  opacity: 0.6;
  transform: scale(1, 0);
  transition: transform 500ms ease;
  transform-origin: bottom center;
  z-index: 1;
}
.instagram-wrapper .instagram-banner-items .banner-image .icon {
  position: absolute;
  width: 68px;
  height: 68px;
  line-height: 68px;
  text-align: center;
  border-radius: 50%;
  background-color: var(--theme);
  font-size: 28px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 99;
  color: var(--white);
  opacity: 0;
  transition: all 0.2s ease-in-out;
}
.instagram-wrapper .instagram-banner-items:hover .banner-image::before {
  transform: scale(1, 1);
  transform-origin: top center;
}
.instagram-wrapper .instagram-banner-items:hover .banner-image .icon {
  opacity: 1;
}

.counter-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--theme);
  padding: 50px 0;
}
@media (max-width: 1199px) {
  .counter-wrapper {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.counter-wrapper .counter-items {
  border-right: 1px solid rgb(169, 175, 191);
  padding-right: 100px;
}
@media (max-width: 1199px) {
  .counter-wrapper .counter-items {
    border-right: none;
    padding-right: 0;
  }
}
.counter-wrapper .counter-items .counter-content h2 {
  font-size: 54px;
  color: var(--white);
}
@media (max-width: 991px) {
  .counter-wrapper .counter-items .counter-content h2 {
    font-size: 45px;
  }
}
@media (max-width: 767px) {
  .counter-wrapper .counter-items .counter-content h2 {
    font-size: 40px;
  }
}
@media (max-width: 575px) {
  .counter-wrapper .counter-items .counter-content h2 {
    font-size: 35px;
  }
}
.counter-wrapper .counter-items .counter-content p {
  color: var(--white);
  font-size: 18px;
}
@media (max-width: 1199px) {
  .counter-wrapper .counter-items .counter-content p {
    font-size: 16px;
  }
}
.counter-wrapper .counter-items.style-2 {
  border: none;
  margin-right: 0;
}

.cta-wrapper-2 {
  padding: 60px;
  border-radius: 20px;
}
.cta-wrapper-2 .cta-content .app-image {
  margin-top: 40px;
  display: flex;
  align-items: center;
  gap: 30px;
}
@media (max-width: 575px) {
  .cta-wrapper-2 .cta-content .app-image {
    flex-wrap: wrap;
  }
}
.cta-wrapper-2 .cta-image {
  margin-bottom: -60px;
  text-align: right;
  position: relative;
}
@media (max-width: 1199px) {
  .cta-wrapper-2 .cta-image img {
    width: 100%;
    height: 100%;
  }
}
.cta-wrapper-2 .cta-image .shape {
  position: absolute;
  top: 27%;
  left: -16%;
}

.cta-section-2 {
  position: relative;
}
.cta-section-2 .left-shape {
  position: absolute;
  bottom: 0;
  left: 0;
}
@media (max-width: 1199px) {
  .cta-section-2 .left-shape {
    display: none;
  }
}

.cta-box-items {
  padding: 30px;
  border-radius: 20px;
  background: #017DB9;
  position: relative;
}
.cta-box-items .cta-content {
  position: relative;
  z-index: 1;
}
.cta-box-items .cta-content h3 {
  font-weight: 800;
  color: var(--white);
  margin-bottom: 20px;
}
.cta-box-items .cta-content .shape {
  margin-bottom: 40px;
}
.cta-box-items .cta-content .theme-btn {
  padding: 12px 20px;
  background-color: transparent;
  border: 1px solid var(--white);
  min-width: 100px;
  color: var(--white);
}
.cta-box-items .cta-content .theme-btn:before {
  background-color: var(--theme);
}
.cta-box-items .cta-content .theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}
.cta-box-items .cta-content .theme-btn:hover::before {
  width: 100%;
}
.cta-box-items .cta-image {
  position: absolute;
  bottom: 14px;
  right: 40px;
}
@media (max-width: 1199px) {
  .cta-box-items .cta-image {
    bottom: 0;
    right: 0;
  }
}
.cta-box-items.style-2 {
  background: #F29D00;
}
.cta-box-items.style-2.bg-color {
  background-color: #1CA8CB;
}
.cta-box-items.style-2 .cta-content h3 {
  margin-bottom: 105px;
}

.cta-offer-wrapper {
  margin-top: 90px;
}
@media (max-width: 1199px) {
  .cta-offer-wrapper {
    margin-top: 95px;
  }
}
@media (max-width: 991px) {
  .cta-offer-wrapper {
    margin-top: 180px;
  }
}
@media (max-width: 767px) {
  .cta-offer-wrapper {
    margin-top: 145px;
  }
}
.cta-offer-wrapper .offer-content .coming-soon-timer {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
  margin-bottom: 40px;
  flex-wrap: wrap;
}
.cta-offer-wrapper .offer-content .coming-soon-timer .timer-content {
  border-radius: 8px;
  border: 0.5px solid var(--white);
  background: radial-gradient(157.24% 123.22% at 47.19% -0.63%, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 100%);
  backdrop-filter: blur(25px);
}
.cta-offer-wrapper .offer-content .coming-soon-timer .timer-content h3 {
  color: var(--white);
  font-size: 33px;
  font-weight: 600;
  border-bottom: 1px solid #E6F7FC;
  padding: 13px 22px;
  line-height: 1;
}
.cta-offer-wrapper .offer-content .coming-soon-timer .timer-content p {
  font-size: 14px;
  text-transform: uppercase;
  color: var(--white);
  font-weight: 400;
  text-align: center;
  padding: 5px;
}
.cta-offer-wrapper .offer-image {
  position: relative;
  z-index: 1;
}
@media (max-width: 1199px) {
  .cta-offer-wrapper .offer-image img {
    width: 100%;
    height: 100%;
  }
}
.cta-offer-wrapper .offer-image .circle {
  width: 386px;
  height: 386px;
  border-radius: 193px;
  border: 1px solid var(--white);
  background: radial-gradient(157.24% 123.22% at 47.19% -0.63%, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 100%);
  backdrop-filter: blur(21px);
  position: absolute;
  left: 58%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
@media (max-width: 1199px) {
  .cta-offer-wrapper .offer-image .circle {
    display: none;
  }
}
.cta-offer-wrapper .offer-image .circle .text-item {
  display: flex;
  align-items: center;
  gap: 20px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  left: 82%;
}
.cta-offer-wrapper .offer-image .circle .text-item .icon {
  top: 50%;
  transform: translate(-50%, -50%);
  left: 34%;
  position: absolute;
}

.deals-offer-items {
  border-radius: 15px;
  background: #EFF3FA;
  padding: 30px;
  margin-top: 30px;
}
@media (max-width: 767px) {
  .deals-offer-items {
    padding: 15px;
  }
}
.deals-offer-items .airline-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .deals-offer-items .airline-wrap {
    flex-wrap: wrap;
  }
}
.deals-offer-items .airline-wrap .airline-card {
  display: flex;
  align-items: center;
  gap: 50px;
}
@media (max-width: 1199px) {
  .deals-offer-items .airline-wrap .airline-card {
    gap: 15px;
  }
}
.deals-offer-items .airline-wrap .airline-card .airline {
  display: flex;
  align-items: center;
  gap: 18px;
}
@media (max-width: 1199px) {
  .deals-offer-items .airline-wrap .airline-card .airline {
    gap: 10px;
  }
}
.deals-offer-items .airline-wrap .airline-card .airline .content h4 {
  font-size: 20px;
  font-weight: 700;
}
.deals-offer-items .airline-wrap .airline-card .theme-btn {
  padding: 12px 15px;
  min-width: 130px;
}
.deals-offer-items .airline-wrap .text {
  color: var(--theme);
}
.deals-offer-items .post-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--white);
  border-radius: 6px;
  padding: 10px 15px;
  margin-top: 30px;
}
.deals-offer-items .post-meta li {
  color: var(--text);
}
@media (max-width: 1199px) {
  .deals-offer-items .post-meta .plane-shape {
    display: none;
  }
}
.deals-offer-items .date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  border-bottom: 1px solid rgba(10, 31, 36, 0.2);
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.deals-offer-items .date .content h4 {
  font-size: 20px;
  font-weight: 600;
}
.deals-offer-items .date .content h4 span {
  color: var(--text);
}
.deals-offer-items .offer-business {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .deals-offer-items .offer-business {
    flex-wrap: wrap;
    gap: 10px;
  }
}
.deals-offer-items .offer-business .business-content {
  display: flex;
  align-items: center;
  gap: 20px;
}
@media (max-width: 1199px) {
  .deals-offer-items .offer-business .business-content {
    gap: 8px;
  }
}
.deals-offer-items .offer-business .business-content .text h6 {
  font-weight: 600;
}
.deals-offer-items .offer-business span {
  color: var(--theme);
}
.deals-offer-items .offer-business .link-btn {
  color: var(--black);
}

.deals-offer-section .section-title-area .array-button {
  display: flex;
  align-items: center;
  gap: 10px;
}
.deals-offer-section .section-title-area .array-button .array-prev, .deals-offer-section .section-title-area .array-button .array-next {
  width: 56px;
  height: 56px;
  border-radius: 50px;
  line-height: 56px;
  text-align: center;
  transition: all 0.2s ease-in-out;
}
.deals-offer-section .section-title-area .array-button .array-prev:hover, .deals-offer-section .section-title-area .array-button .array-next:hover {
  background-color: var(--header);
  color: var(--white);
}
.deals-offer-section .section-title-area .array-button .array-prev {
  background-color: rgba(255, 255, 255, 0.15);
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
  color: var(--white);
}
.deals-offer-section .section-title-area .array-button .array-prev:hover {
  background-color: var(--header);
  color: var(--white);
}
.deals-offer-section .section-title-area .array-button .array-next {
  background: var(--header);
  color: var(--white);
}
.deals-offer-section .section-title-area .array-button .array-next:hover {
  background-color: var(--white);
  color: var(--header);
}

.counter-wrapper-2 {
  display: flex;
  align-items: center;
  gap: 100px;
  padding: 50px 150px;
  border-radius: 100px 0px 0px 100px;
  position: relative;
}
@media (max-width: 1399px) {
  .counter-wrapper-2 {
    border-radius: 0;
  }
}
@media (max-width: 1199px) {
  .counter-wrapper-2 {
    flex-wrap: wrap;
    gap: 70px;
    padding: 50px 120px;
  }
}
@media (max-width: 991px) {
  .counter-wrapper-2 {
    padding: 50px 80px;
    flex-wrap: wrap;
    gap: 50px;
  }
}
@media (max-width: 767px) {
  .counter-wrapper-2 {
    padding: 50px 45px;
    flex-wrap: wrap;
    gap: 30px;
  }
}
.counter-wrapper-2 .counter-image {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
}
@media (max-width: 1399px) {
  .counter-wrapper-2 .counter-image {
    display: none;
  }
}
.counter-wrapper-2 .counter-items-2 {
  border-right: 1px solid rgb(169, 175, 191);
  padding-right: 90px;
}
@media (max-width: 1399px) {
  .counter-wrapper-2 .counter-items-2 {
    border-right: none;
    padding-right: 0;
  }
}
.counter-wrapper-2 .counter-items-2 .counter-content h2 {
  font-size: 54px;
  color: var(--white);
}
@media (max-width: 991px) {
  .counter-wrapper-2 .counter-items-2 .counter-content h2 {
    font-size: 45px;
  }
}
@media (max-width: 767px) {
  .counter-wrapper-2 .counter-items-2 .counter-content h2 {
    font-size: 40px;
  }
}
@media (max-width: 575px) {
  .counter-wrapper-2 .counter-items-2 .counter-content h2 {
    font-size: 35px;
  }
}
.counter-wrapper-2 .counter-items-2 .counter-content p {
  color: var(--white);
  font-size: 18px;
}
@media (max-width: 1199px) {
  .counter-wrapper-2 .counter-items-2 .counter-content p {
    font-size: 16px;
  }
}
.counter-wrapper-2 .counter-items-2.style-2 {
  border: none;
  margin-right: 0;
}

.counter-section-2 .container-fluid {
  padding: 0px 0px 0px 120px;
}
@media (max-width: 1399px) {
  .counter-section-2 .container-fluid {
    padding: 0 60px;
  }
}
@media (max-width: 1199px) {
  .counter-section-2 .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 991px) {
  .counter-section-2 .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 767px) {
  .counter-section-2 .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 575px) {
  .counter-section-2 .container-fluid {
    padding: 0 30px;
  }
}

.counter-wrapper-3 {
  display: flex;
  align-items: center;
  gap: 100px;
  padding: 80px 80px;
}
@media (max-width: 1199px) {
  .counter-wrapper-3 {
    padding: 80px 0;
    flex-wrap: wrap;
  }
}
@media (max-width: 767px) {
  .counter-wrapper-3 {
    justify-content: center;
    padding: 80px 25px;
  }
}
.counter-wrapper-3 .counter-items {
  border-right: 1px dashed #A4ACB9;
  padding-right: 90px;
  text-align: center;
}
@media (max-width: 1399px) {
  .counter-wrapper-3 .counter-items {
    border-right: none;
    padding-right: 0;
  }
}
.counter-wrapper-3 .counter-items .icon {
  position: relative;
}
.counter-wrapper-3 .counter-items .icon::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  width: 80px;
  height: 80px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 100%;
  background-color: rgba(255, 255, 255, 0.1);
}
.counter-wrapper-3 .counter-items .icon::after {
  position: absolute;
  content: "";
  width: 60px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  height: 60px;
  line-height: 60px;
  text-align: center;
  border-radius: 100%;
  background-color: rgba(255, 255, 255, 0.2);
}
.counter-wrapper-3 .counter-items .counter-content {
  margin-top: 50px;
}
.counter-wrapper-3 .counter-items .counter-content h2 {
  font-size: 36px;
  font-weight: 800;
  color: var(--white);
}
@media (max-width: 991px) {
  .counter-wrapper-3 .counter-items .counter-content h2 {
    font-size: 30px;
  }
}
@media (max-width: 767px) {
  .counter-wrapper-3 .counter-items .counter-content h2 {
    font-size: 26px;
  }
}
@media (max-width: 575px) {
  .counter-wrapper-3 .counter-items .counter-content h2 {
    font-size: 22px;
  }
}
.counter-wrapper-3 .counter-items .counter-content p {
  color: var(--white);
}
.counter-wrapper-3 .counter-items.style-2 {
  border: none;
  margin-right: 0;
}

.booking-wrapper2 {
  margin-top: -50px;
  position: relative;
  z-index: 999;
}
.booking-wrapper2 .booking-wrap {
  margin-bottom: 10px;
}
.booking-wrapper2 .booking-wrap .nav {
  display: flex;
  align-items: center;
  gap: 100px;
}
@media (max-width: 1199px) {
  .booking-wrapper2 .booking-wrap .nav {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.booking-wrapper2 .booking-wrap .nav .nav-item {
  display: flex;
  align-items: center;
  gap: 20px;
}
.booking-wrapper2 .booking-wrap .nav .nav-item .nav-link {
  font-size: 15px;
  color: var(--header);
  font-weight: 500;
}
.booking-wrapper2 .booking-wrap .nav .nav-item .nav-link i {
  margin-right: 10px;
}
.booking-wrapper2 .booking-wrap .nav .nav-item .nav-link.active {
  color: var(--theme);
}
.booking-wrapper2 .tab-content {
  border-top: 1px solid var(--border);
  padding-top: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 20px;
}
.booking-wrapper2 .tab-content .form-clt .input-group .input-group-addon {
  display: none;
}
.booking-wrapper2 .tab-content .form-clt .input-group input {
  padding: 0;
  border: none;
  font-size: 14px;
  font-weight: 400;
  outline: none;
  line-height: 1;
  height: initial;
  padding-top: 10px;
  outline: none;
}
.booking-wrapper2 .tab-content .tour-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .booking-wrapper2 .tab-content .tour-wrapper {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item {
  display: flex;
  align-items: center;
  gap: 20px;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .icon {
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  border-radius: 100px;
  background: rgba(28, 168, 203, 0.1);
  position: relative;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .icon::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  width: 1px;
  height: 60px;
  top: 0px;
  background: #E6E6E6;
  left: -25px;
  top: 0px;
}
@media (max-width: 1399px) {
  .booking-wrapper2 .tab-content .tour-wrapper .tour-item .icon::before {
    display: none;
  }
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item.style-5 .icon::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  width: none;
  height: none;
  background: none;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .content .nice-select {
  padding: 0;
  border: none;
  font-size: 14px;
  font-weight: 400;
  outline: none;
  line-height: 1;
  height: initial;
  padding-top: 10px;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .content .nice-select::after {
  border: none;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .content h5 {
  font-weight: 600;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .content input {
  border: none;
  padding: 0;
  width: 100%;
  color: var(--text);
  margin-top: 5px;
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .content input::placeholder {
  color: var(--text);
}
.booking-wrapper2 .tab-content .tour-wrapper .tour-item .theme-btn {
  min-width: 145px;
}
.booking-wrapper2 .form-check-input:checked {
  background-color: var(--theme);
  border-color: var(--theme);
}
.booking-wrapper2 .nav-link.acive .form-check-input:checked {
  background-color: var(--theme);
  border-color: var(--theme);
}

.destination-card-items {
  margin-top: 30px;
  border: 1px solid var(--border);
  border-radius: 20px;
}
.destination-card-items .destination-image {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}
.destination-card-items .destination-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  transform: scale(1.1);
  transition: all 0.2s ease-in-out;
}
.destination-card-items .destination-image .heart-icon {
  position: absolute;
  right: 20px;
  top: 20px;
  text-align: center;
  border-radius: 5px;
  width: 30px;
  height: 30px;
  line-height: 30px;
  background: rgba(22, 25, 33, 0.8);
}
.destination-card-items .destination-image .heart-icon .material-symbols-outlined {
  color: var(--white);
}
.destination-card-items .destination-content {
  padding: 15px;
}
.destination-card-items .destination-content .meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.destination-card-items .destination-content .meta li {
  font-size: 14px;
  color: var(--text);
}
.destination-card-items .destination-content .meta li i {
  color: var(--theme);
  margin-right: 5px;
}
.destination-card-items .destination-content .meta .rating {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 15px;
  line-height: 1;
  border-radius: 100px;
  background: rgba(28, 168, 203, 0.16);
}
.destination-card-items .destination-content .meta .rating .star i {
  color: var(--theme);
}
.destination-card-items .destination-content .meta .rating p {
  color: var(--theme);
  font-size: 12px;
}
.destination-card-items .destination-content h5 {
  margin-bottom: 20px;
}
.destination-card-items .destination-content h5 a:hover {
  color: var(--theme);
}
.destination-card-items .destination-content .info {
  display: flex;
  align-items: center;
  gap: 24px;
  border-bottom: 1px dashed var(--theme);
  padding-bottom: 10px;
  margin-bottom: 20px;
}
.destination-card-items .destination-content .info li {
  font-size: 14px;
  font-weight: 300;
  color: var(--text);
}
.destination-card-items .destination-content .info li i {
  color: var(--theme);
  margin-right: 5px;
}
.destination-card-items .destination-content .price {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.destination-card-items .destination-content .price h6 span {
  font-size: 12px;
  color: var(--text);
}
.destination-card-items .destination-content .price .theme-btn.style-2 {
  border-radius: 100px;
  background: rgba(2, 165, 206, 0.1);
  color: var(--theme);
  padding: 10px 20px;
  min-width: 140px;
}
.destination-card-items .destination-content .price .theme-btn.style-2::before {
  background-color: var(--theme);
}
.destination-card-items .destination-content .price .theme-btn.style-2:hover {
  color: var(--white);
  box-shadow: none;
}
.destination-card-items .destination-content .price .theme-btn.style-2:hover::before {
  width: 100%;
}
.destination-card-items:hover .destination-image img {
  transform: scale(1.4);
}

.destination-card-items-2 {
  margin-top: 30px;
}
.destination-card-items-2 .destination-image img {
  border-radius: 15px;
}

.destination-category-section {
  position: relative;
}
.destination-category-section .plane-shape {
  position: absolute;
  left: 30px;
  top: -40px;
}

.popular-destination-section {
  position: relative;
}

/* reviews-section — widget recensioni Google (Elfsight): home e, con contenitore ristretto
   dedicato sotto, colonna prenotazione di _attraction-detail.php. Altezza minima riservata:
   il widget carica i dati reali dopo lo script (vedi head.php/javascript.php, plugin
   elfsight_reviews), senza questa riserva la pagina "salta" quando arriva. Valore
   indicativo: da affinare guardando l'altezza reale renderizzata in locale. */
.reviews-section__widget {
  min-height: 340px;
}

/* Stesso widget, versione compatta sotto il box di prenotazione (_attraction-detail.php):
   niente .section-padding largo (80-100px, pensato per una sezione a piena pagina), titolo
   più piccolo — qui è un rinforzo secondario in colonna stretta, non una sezione a sé. */
.attraction-detail__reviews {
  padding-top: 1.5rem;
}
.attraction-detail__reviews .section-title {
  margin-bottom: 1.5rem !important;
}
.attraction-detail__reviews .section-title h2 {
  font-size: 1.25rem;
}

/* attraction-gallery — mosaico foto pagina dettaglio attrazione/carnet (1 grande + 4
   piccole), lightbox PhotoSwipe su tutte le piastrelle (vedi include/_gallery.php).
   height: clamp() invece di aspect-ratio sul blocco intero: aspect-ratio + max-height
   insieme fa sì che alcuni browser ricalcolino la LARGHEZZA per rispettare il rapporto
   una volta che l'altezza viene tagliata dal max-height — risultato: il mosaico si
   restringe invece di restare a piena larghezza. clamp() dà un'altezza sempre esplicita
   (mai in conflitto con la larghezza, che riempie il container come qualunque blocco),
   cresce con la larghezza del viewport fra un minimo e un massimo assoluto. Da mobile
   si mostra solo la foto principale (4:3, tutta la larghezza): le altre restano nel DOM
   (display:none, non rimosse) così PhotoSwipe le include comunque nella lightbox una
   volta aperta. */
.attraction-gallery {
  padding-top: 1.5rem;
}
.attraction-gallery__mosaic {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  height: clamp(280px, 30vw, 460px);
  gap: 0.5rem;
  border-radius: 1rem;
  overflow: hidden;
}
.attraction-gallery__tile {
  position: relative;
  display: block;
  overflow: hidden;
}
.attraction-gallery__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.attraction-gallery__tile:hover img,
.attraction-gallery__tile:focus-visible img {
  transform: scale(1.04);
}
.attraction-gallery__tile:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: -2px;
}
.attraction-gallery__tile--main {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.attraction-gallery__more {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .45);
}
/* Stessa scala "small" del bottone condividi nell'intestazione (.page-header__share-btn):
   coerenza tra i due unici bottoni-pillola della pagina di dettaglio. */
.attraction-gallery__more-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .8rem;
  border-radius: 100px;
  background: var(--white);
  color: var(--header);
  font-weight: 700;
  font-size: 12px;
  white-space: nowrap;
}
.attraction-gallery__more-badge .material-symbols-outlined {
  font-size: 15px;
  color: var(--black);
}

/* Meno di 5 immagini: la piastrella principale occupa tutta la riga rimasta libera
   invece di lasciare celle vuote nella griglia — proporzione 16:9 mantenuta comunque. */
.attraction-gallery__mosaic[data-count="1"],
.attraction-gallery__mosaic[data-count="2"] {
  grid-template-rows: 1fr;
}
.attraction-gallery__mosaic[data-count="1"] {
  grid-template-columns: 1fr;
}
.attraction-gallery__mosaic[data-count="1"] .attraction-gallery__tile--main,
.attraction-gallery__mosaic[data-count="2"] .attraction-gallery__tile--main {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.attraction-gallery__mosaic[data-count="2"] {
  grid-template-columns: repeat(2, 1fr);
}
.attraction-gallery__mosaic[data-count="3"] {
  grid-template-columns: repeat(3, 1fr);
}
.attraction-gallery__mosaic[data-count="3"] .attraction-gallery__tile--main {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}

/* 4 immagini: principale 2x2 a sinistra, una piastrella larga in alto a destra e le
   ultime due affiancate in basso a destra — evita che l'auto-placement (griglia a 3
   colonne pensata per il caso "3") crei una riga implicita con una foto sola stretta. */
.attraction-gallery__mosaic[data-count="4"] .attraction-gallery__tile--main {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
}
.attraction-gallery__mosaic[data-count="4"] .attraction-gallery__tile:nth-child(2) {
  grid-column: 3 / 5;
  grid-row: 1 / 2;
}
.attraction-gallery__mosaic[data-count="4"] .attraction-gallery__tile:nth-child(3) {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}
.attraction-gallery__mosaic[data-count="4"] .attraction-gallery__tile:nth-child(4) {
  grid-column: 4 / 5;
  grid-row: 2 / 3;
}

/* Mobile: solo la foto principale, 4:3, tutta la larghezza — niente mosaico. */
@media (max-width: 767px) {
  .attraction-gallery__mosaic {
    display: block;
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: 0.75rem;
  }
  .attraction-gallery__tile {
    height: 100%;
  }
  .attraction-gallery__tile:not(.attraction-gallery__tile--main) {
    display: none;
  }
}

.popular-destination-section .car-shape {
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .popular-destination-section .car-shape {
    display: none;
  }
}
.popular-destination-section .left-shape {
  position: absolute;
  left: 0;
  bottom: 0;
}
.popular-destination-section .right-shape {
  position: absolute;
  right: 0;
  top: 80px;
}

.destination-wrapper .main-box {
  padding: 0;
  gap: 30px;
  display: flex;
  align-items: center;
}
@media (max-width: 1199px) {
  .destination-wrapper .main-box {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 30px;
  }
}
.destination-wrapper .main-box .box {
  background-image: url(../../assets/img/destination/14.jpg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 1;
  width: 414px !important;
  height: 420px;
  position: relative;
  overflow: hidden;
  list-style: none;
  transition: all 0.2s ease-in-out;
  margin-top: 30px;
  overflow: hidden;
  border-radius: 15px;
}
@media (max-width: 1199px) {
  .destination-wrapper .main-box .box {
    width: 570px !important;
    height: 420px;
  }
}
@media (max-width: 575px) {
  .destination-wrapper .main-box .box {
    height: 420px;
    object-fit: cover;
  }
}
.destination-wrapper .main-box .box .destination-content {
  position: absolute;
  bottom: 30px;
  left: 30px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
  right: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .destination-wrapper .main-box .box .destination-content {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.destination-wrapper .main-box .box .destination-content .text h3 {
  margin-bottom: 5px;
}
.destination-wrapper .main-box .box .destination-content .text h3 a {
  color: var(--white);
}
.destination-wrapper .main-box .box .destination-content .text h3 a:hover {
  color: var(--theme);
}
.destination-wrapper .main-box .box .destination-content .text span {
  color: var(--white);
}
.destination-wrapper .main-box .box .destination-content .theme-btn {
  background-color: transparent;
  border: 1px solid var(--white);
  color: var(--white);
}
.destination-wrapper .main-box .box .destination-content .theme-btn:before {
  background-color: var(--theme);
}
.destination-wrapper .main-box .box .destination-content .theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}
.destination-wrapper .main-box .box .destination-content .theme-btn:hover::before {
  width: 100%;
}
.destination-wrapper .main-box .box.bg {
  background-image: url(../../assets/img/destination/14.jpg);
  width: 138px;
  height: 340px;
}
.destination-wrapper .main-box .box.bg-1 {
  background-image: url(../../assets/img/destination/15.jpg);
  width: 255px;
  height: 380px;
}
.destination-wrapper .main-box .box.bg-2 {
  background-image: url(../../assets/img/destination/16.jpg);
}
.destination-wrapper .main-box .box.bg-3 {
  background-image: url(../../assets/img/destination/17.jpg);
  width: 255px;
  height: 380px;
}
.destination-wrapper .main-box .box.bg-4 {
  background-image: url(../../assets/img/destination/18.jpg);
  width: 138px;
  height: 340px;
}
.destination-wrapper .main-box .box.active {
  width: 950px !important;
  height: 420px;
}
.destination-wrapper .main-box .box.active::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(10, 31, 36, 0.4);
}
.destination-wrapper .main-box .box.active .destination-content {
  opacity: 1;
  visibility: visible;
}

.top-destination-section {
  position: relative;
}
.top-destination-section .bag-shape {
  position: absolute;
  top: 38%;
  left: 30px;
}
@media (max-width: 1399px) {
  .top-destination-section .bag-shape {
    display: none;
  }
}
.top-destination-section .watch-shape {
  position: absolute;
  bottom: 40px;
  right: 40px;
}
@media (max-width: 1399px) {
  .top-destination-section .watch-shape {
    display: none;
  }
}

.tour-destination-wrapper .main-sidebar {
  margin-top: 30px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget {
  background-color: var(--white);
  border: 1px solid var(--border);
  padding: 30px;
  margin-bottom: 30px;
  border-radius: 10px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .wid-title {
  margin-bottom: 25px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .wid-title.style-2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single {
  position: relative;
  padding-left: 18px;
  cursor: pointer;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single:not(:last-child) {
  border-bottom: 1px solid var(--border);
  padding-bottom: 15px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single:not(:last-child) {
  margin-bottom: 15px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .checkbox-area .checkmark {
  position: absolute;
  left: 0;
  height: 20px;
  width: 20px;
  border: 1px solid var(--theme);
  top: 5px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .checkbox-area .checkmark::after {
  content: "";
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark {
  background-color: var(--theme);
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark::after {
  content: "\f00c";
  position: absolute;
  font-family: "Font Awesome 6 Pro";
  top: -5px;
  left: 5px;
  color: var(--theme);
  font-size: 11px;
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark:after {
  display: block;
  color: var(--white);
}
.tour-destination-wrapper .main-sidebar .single-sidebar-widget .categories-list .checkbox-single .text-color {
  color: #586061;
}

.destination-details-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
}

.new-destination-wrapper {
  margin-right: -40%;
}
@media (max-width: 1399px) {
  .new-destination-wrapper {
    margin-right: -20%;
  }
}
@media (max-width: 1199px) {
  .new-destination-wrapper {
    margin-right: 0;
  }
}

.new-destination-items {
  margin-top: 30px;
}
.new-destination-items .thumb {
  position: relative;
}
.new-destination-items .thumb::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(37, 37, 37, 0) 0%, #252525 100%);
}
.new-destination-items .thumb img {
  width: 100%;
  height: 100%;
  border-radius: 18px;
}
.new-destination-items .thumb .content {
  position: absolute;
  z-index: 9;
  display: flex;
  align-items: center;
  justify-content: space-between;
  left: 35px;
  right: 35px;
  bottom: 35px;
}
@media (max-width: 1199px) {
  .new-destination-items .thumb .content {
    left: 30px;
    right: 30px;
    bottom: 30px;
    flex-wrap: wrap;
    gap: 20px;
  }
}
.new-destination-items .thumb .content h3 a {
  color: var(--white);
}
.new-destination-items .thumb .content h3 a:hover {
  color: var(--theme);
}
.new-destination-items .thumb .content p {
  color: var(--white);
}
.new-destination-items .thumb .content .icon {
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
  background-color: var(--white);
  color: var(--header);
  text-align: center;
}
.new-destination-items .thumb .content .icon:hover {
  background-color: var(--theme);
  color: var(--white);
}

.new-top-desti-thumb {
  margin-top: 30px;
  position: relative;
  overflow: hidden;
}
.new-top-desti-thumb img {
  width: 100%;
  height: 100%;
  border-radius: 18px;
}
.new-top-desti-thumb::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  border-radius: 18px;
  background: linear-gradient(0deg, rgba(14, 14, 14, 0.7) 0%, rgba(14, 14, 14, 0.7) 100%);
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
}
.new-top-desti-thumb .content {
  position: absolute;
  bottom: -100px;
  left: 30px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
  z-index: 9;
}
.new-top-desti-thumb .content h4 a {
  color: var(--white);
}
.new-top-desti-thumb .content h4 a:hover {
  color: var(--theme);
}
.new-top-desti-thumb .content p {
  color: var(--white);
}
.new-top-desti-thumb .icon {
  width: 60px;
  height: 60px;
  line-height: 60px;
  text-align: center;
  border-radius: 50%;
  border: 2px solid var(--white);
  text-align: center;
  color: var(--white);
  display: inline-block;
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
}
.new-top-desti-thumb .icon:hover {
  background-color: var(--theme);
  border: 2px solid var(--theme);
}
.new-top-desti-thumb:hover::before {
  opacity: 1;
  visibility: visible;
}
.new-top-desti-thumb:hover .content {
  bottom: 30px;
  opacity: 1;
  visibility: visible;
}
.new-top-desti-thumb:hover .icon {
  top: 50%;
  opacity: 1;
  visibility: visible;
}

.destination-details-wrapper .destination-details-items .details-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
}
.destination-details-wrapper .destination-details-items .details-content {
  margin-top: 30px;
}
.destination-details-wrapper .destination-details-items .map-area {
  margin-top: 40px;
}
.destination-details-wrapper .destination-details-items .map-area h3 {
  font-size: 30px;
  font-weight: 700;
  margin-bottom: 20px;
}
.destination-details-wrapper .destination-details-items .map-area .google-map iframe {
  width: 100%;
  height: 460px;
  border-radius: 20px;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li {
  display: flex;
  align-items: center;
  gap: 24px;
  position: relative;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li:not(:last-child) {
  margin-bottom: 40px;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li:nth-child(2) {
  margin-left: 135px;
}
@media (max-width: 1199px) {
  .destination-details-wrapper .destination-details-items .map-area .review-items li:nth-child(2) {
    margin-left: 0;
  }
}
.destination-details-wrapper .destination-details-items .map-area .review-items li .thumb img {
  border-radius: 12px;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li .content .star {
  color: #FFB700;
  margin-bottom: 4px;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li .content p {
  margin-top: 7px;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li .content .reply-icon {
  color: var(--header);
  position: absolute;
  top: 0;
  right: 0;
}
.destination-details-wrapper .destination-details-items .map-area .review-items li .content .reply-icon .material-symbols-outlined {
  color: var(--theme);
  margin-right: 10px;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items {
  background-color: var(--bg);
  border-radius: 20px;
  padding: 50px 40px;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items h3 {
  line-height: 1;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items ul {
  display: flex;
  align-items: center;
  gap: 70px;
  margin-bottom: 10px;
}
@media (max-width: 1399px) {
  .destination-details-wrapper .destination-details-items .map-area.ratting-items ul {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items ul li {
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-basis: 25%;
}
@media (max-width: 1399px) {
  .destination-details-wrapper .destination-details-items .map-area.ratting-items ul li {
    flex-basis: initial;
  }
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items ul li .star {
  color: #F7921E;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items h4 {
  font-size: 20px;
  font-weight: 600;
  margin-top: 50px;
  margin-bottom: 25px;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items .form-clt input, .destination-details-wrapper .destination-details-items .map-area.ratting-items .form-clt textarea {
  border: none;
  outline: none;
  width: 100%;
  background-color: var(--white);
  padding: 20px 30px;
  line-height: 1;
  border-radius: 10px;
  text-transform: capitalize;
  color: #455151;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items .form-clt input::placeholder, .destination-details-wrapper .destination-details-items .map-area.ratting-items .form-clt textarea::placeholder {
  color: #455151;
}
.destination-details-wrapper .destination-details-items .map-area.ratting-items .form-clt textarea {
  padding-bottom: 152px;
}

.faq-wrapper .faq-content p {
  color: #504E4E;
}
.faq-wrapper .faq-content .faq-list {
  display: flex;
  align-items: center;
  gap: 35px;
  margin-top: 40px;
  padding: 25px 0;
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
@media (max-width: 1199px) {
  .faq-wrapper .faq-content .faq-list {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.faq-wrapper .faq-content .faq-list li {
  color: #504E4E;
}
.faq-wrapper .faq-content .faq-list li img {
  margin-right: 16px;
}
.faq-wrapper .faq-items {
  margin-left: 50px;
}
@media (max-width: 1199px) {
  .faq-wrapper .faq-items {
    margin-left: 0;
  }
}
.faq-wrapper .faq-items .accordion-item {
  border: 0;
  background-color: var(--white);
  border-radius: 12px;
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
}
.faq-wrapper .faq-items .accordion-item .accordion-header {
  border: none;
}
.faq-wrapper .faq-items .accordion-item .accordion-header .accordion-button {
  font-weight: 600;
  color: var(--theme);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: var(--white);
  border-radius: 12px;
  padding: 25px 30px 0;
  text-transform: capitalize;
  font-size: 22px;
}
@media (max-width: 1199px) {
  .faq-wrapper .faq-items .accordion-item .accordion-header .accordion-button {
    font-size: 20px;
  }
}
.faq-wrapper .faq-items .accordion-item .accordion-header .accordion-button::after {
  content: "\f324";
  background: transparent;
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  transition: all 0.2s ease-in-out !important;
  color: var(--header);
}
.faq-wrapper .faq-items .accordion-item .accordion-header .accordion-button:not(.collapsed)::after {
  content: "\f322";
  background: transparent;
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  transform: rotate(0);
  color: var(--theme);
}
.faq-wrapper .faq-items .accordion-item .accordion-header .accordion-button.collapsed {
  background-color: transparent;
  padding: 25px 30px;
  color: var(--header);
}
.faq-wrapper .faq-items .accordion-item .accordion-collapse .accordion-body {
  padding-left: 30px;
  padding-top: 15px;
  color: #504E4E;
}

.faq-section {
  position: relative;
}
.faq-section .left-shape {
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 1399px) {
  .faq-section .left-shape {
    display: none;
  }
}

.feature-card-items {
  text-align: center;
}
@media (max-width: 1199px) {
  .feature-card-items {
    margin-bottom: 20px;
  }
}
.feature-card-items .icon {
  width: 82px;
  height: 82px;
  border-radius: 50px;
  line-height: 82px;
  text-align: center;
  background-color: rgba(28, 168, 203, 0.2);
  margin: 0 auto;
  margin-bottom: 20px;
}
.feature-card-items .icon.bg-color {
  background: #FEE8E8;
}

.feature-wrapper .feature-content .feature-area {
  position: relative;
  margin-bottom: 50px;
}
.feature-wrapper .feature-content .feature-area .line-shape {
  position: absolute;
  right: 297px;
  top: 5px;
}
@media (max-width: 1399px) {
  .feature-wrapper .feature-content .feature-area .line-shape {
    display: none;
  }
}
.feature-wrapper .feature-content .feature-area .feature-items {
  display: flex;
  align-items: center;
  gap: 100px;
  margin-top: 30px;
}
@media (max-width: 1399px) {
  .feature-wrapper .feature-content .feature-area .feature-items {
    gap: 60px;
  }
}
@media (max-width: 1199px) {
  .feature-wrapper .feature-content .feature-area .feature-items {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.feature-wrapper .feature-content .feature-area .feature-items:not(:last-child) {
  margin-bottom: 50px;
}
@media (max-width: 1199px) {
  .feature-wrapper .feature-content .feature-area .feature-items:not(:last-child) {
    margin-bottom: 30px;
  }
}
.feature-wrapper .feature-content .feature-area .feature-items .feature-icon-item {
  display: flex;
  align-items: center;
  gap: 24px;
}
.feature-wrapper .feature-content .feature-area .feature-items .feature-icon-item .icon {
  width: 67px;
  height: 67px;
  line-height: 67px;
  border-radius: 50px;
  text-align: center;
  background-color: var(--theme);
}
.feature-wrapper .feature-content .feature-area .feature-items .circle-icon {
  display: flex;
  align-items: center;
  gap: 20px;
}
.feature-wrapper .feature-content .feature-area .feature-items .circle-icon li .material-symbols-outlined {
  color: var(--theme);
}
.feature-wrapper .feature-image img {
  width: 100%;
  height: 100%;
}

.travel-feature-section {
  position: relative;
}
.travel-feature-section .shape-1 {
  position: absolute;
  left: -18px;
  top: 114px;
}
@media (max-width: 1399px) {
  .travel-feature-section .shape-1 {
    display: none;
  }
}
.travel-feature-section .shape-2 {
  position: absolute;
  right: 0;
  top: 0;
}
@media (max-width: 1399px) {
  .travel-feature-section .shape-2 {
    display: none;
  }
}

.deals-offer-section {
  position: relative;
}
.deals-offer-section::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
}

.deals-offer-wrapper .price-items {
  padding: 0 80px;
}
.deals-offer-wrapper .price-items .price-image h2 {
  font-size: 200px;
  color: var(--white);
}
.deals-offer-wrapper .price-items .coming-soon-timer {
  display: flex;
  align-items: center;
  gap: 60px;
  margin-top: 80px;
}
@media (max-width: 1399px) {
  .deals-offer-wrapper .price-items .coming-soon-timer {
    flex-wrap: wrap;
    margin-top: 50px;
    gap: 40px;
  }
}
.deals-offer-wrapper .price-items .coming-soon-timer .timer-content h2 {
  font-size: 40px;
  color: var(--white);
  display: inline-block;
  font-weight: 700;
  margin-bottom: 10px;
}
.deals-offer-wrapper .price-items .coming-soon-timer .timer-content p {
  font-weight: 500;
  color: var(--white);
}
.deals-offer-wrapper .section-title-area {
  display: flex;
  align-items: center;
  gap: 130px !important;
  justify-content: initial;
}
@media (max-width: 1399px) {
  .deals-offer-wrapper .section-title-area {
    justify-content: center;
    flex-wrap: wrap;
    gap: 17px !important;
    margin-bottom: 30px;
  }
}
@media (max-width: 1199px) {
  .deals-offer-wrapper .section-title-area {
    gap: 10px !important;
  }
}
@media (max-width: 767px) {
  .deals-offer-wrapper .section-title-area {
    gap: 35px !important;
  }
}
.deals-offer-wrapper .offer-slide-items .offer-slider {
  margin-right: -85px;
}
@media (max-width: 1199px) {
  .deals-offer-wrapper .offer-slide-items .offer-slider {
    margin-right: 0;
  }
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image {
  position: relative;
  overflow: hidden;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(22, 25, 33, 0) 0%, #161921 100%);
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .offer-btn {
  position: absolute;
  left: 24px;
  top: 24px;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .offer-btn li {
  font-size: 14px;
  font-weight: 500;
  color: var(--white);
  background-color: var(--theme);
  padding: 10px;
  line-height: 1;
  border-radius: 8px;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .offer-btn li:not(:last-child) {
  margin-bottom: 5px;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .offer-btn li.bg-color {
  background-color: var(--header);
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .content {
  position: absolute;
  left: 24px;
  bottom: 24px;
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .content h3 a {
  color: var(--white);
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .content h3 a:hover {
  color: var(--theme);
}
.deals-offer-wrapper .offer-slide-items .offer-items .offer-image .offer-content .content span {
  font-size: 20px;
  font-weight: 700;
  color: var(--white);
}
.deals-offer-wrapper .offer-slide-items .offer-items:hover .offer-image::before {
  opacity: 1;
  visibility: visible;
}

.choose-us-wrapper .choose-us-content .choose-us-area {
  margin-top: 40px;
  position: relative;
  z-index: 1;
}
.choose-us-wrapper .choose-us-content .choose-us-area .line-shape {
  position: absolute;
  left: 29px;
  top: 28px;
  z-index: -1;
}
@media (max-width: 1199px) {
  .choose-us-wrapper .choose-us-content .choose-us-area .line-shape {
    display: none;
  }
}
.choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items {
  display: flex;
  gap: 30px;
}
@media (max-width: 1199px) {
  .choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items {
    flex-wrap: wrap;
  }
}
.choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items:not(:last-child) {
  margin-bottom: 30px;
}
.choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items .number {
  width: 56px;
  height: 56px;
  line-height: 56px;
  border-radius: 50px;
  text-align: center;
  color: var(--theme);
  background-color: #E1EFF3;
}
.choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items .content h4 {
  font-size: 20px;
  margin-bottom: 12px;
}
.choose-us-wrapper .choose-us-content .choose-us-area .choose-us-items .content p {
  font-size: 14px;
}
@media (max-width: 1399px) {
  .choose-us-wrapper .choose-us-thumb img {
    width: 100%;
    height: 100%;
  }
}

.video-wrapper .watch-button {
  display: flex;
  align-items: center;
  gap: 40px;
  justify-content: center;
  margin-bottom: 80px;
}
@media (max-width: 1199px) {
  .video-wrapper .watch-button {
    margin-top: 30px;
    margin-bottom: 30px;
    gap: 10px;
  }
}
.video-wrapper .watch-button .theme-btn.style-2 {
  background-color: var(--theme-2);
}
.video-wrapper .watch-button .theme-btn.style-2:before {
  background-color: var(--theme);
}
.video-wrapper .video-image {
  position: relative;
  border-radius: 20px;
  padding: 270px 0;
  background-attachment: fixed;
}
@media (max-width: 1199px) {
  .video-wrapper .video-image {
    padding: 200px 0;
  }
}
@media (max-width: 991px) {
  .video-wrapper .video-image {
    padding: 170px 0;
  }
}
@media (max-width: 767px) {
  .video-wrapper .video-image {
    padding: 140px 0;
  }
}
@media (max-width: 575px) {
  .video-wrapper .video-image {
    padding: 100px 0;
  }
}
.video-wrapper .video-image::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: rgba(10, 31, 36, 0.45);
  border-radius: 50px;
}
.video-wrapper .video-image .video-btn {
  width: 110px;
  height: 110px;
  line-height: 110px;
  border-radius: 110px;
  text-align: center;
  background-color: var(--theme);
  color: var(--white);
  top: 50%;
  left: 50%;
  position: absolute;
  transform: translate(-50%, -50%);
  font-size: 18px;
}

.watch-video-section {
  position: relative;
}
.watch-video-section .bg-shape {
  position: absolute;
  left: 50px;
}

.feature-tour-items {
  margin-top: 30px;
}
.feature-tour-items .feature-tour-image {
  position: relative;
}
.feature-tour-items .feature-tour-image img {
  width: 100%;
  height: 100%;
  border-radius: 15px;
}
.feature-tour-items .feature-tour-image .location {
  position: absolute;
  left: 25px;
  top: 25px;
  background-color: var(--white);
  padding: 7px 12px;
  border-radius: 100px;
  line-height: 1;
}
.feature-tour-items .feature-tour-image .location li {
  font-size: 14px;
  font-weight: 400;
  color: var(--text);
}
.feature-tour-items .feature-tour-image .location li i {
  color: var(--theme);
  margin-right: 5px;
}
.feature-tour-items .feature-tour-content {
  margin-top: 20px;
  position: relative;
}
.feature-tour-items .feature-tour-content h4 {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 30px;
}
.feature-tour-items .feature-tour-content h4 a:hover {
  color: var(--theme);
}
.feature-tour-items .feature-tour-content h5 {
  transition: all 0.2s ease-in-out;
}
.feature-tour-items .feature-tour-content h5:hover {
  color: var(--theme);
}
.feature-tour-items .feature-tour-content h5 span {
  font-size: 13px;
  font-weight: 400;
  color: var(--text);
}
.feature-tour-items .feature-tour-content .icon {
  border-radius: 5px;
  border: 1px solid rgba(10, 31, 36, 0.25);
  width: 42px;
  height: 42px;
  line-height: 38px;
  text-align: center;
  position: absolute;
  right: 0;
  bottom: 0;
}
.feature-tour-items .feature-tour-content .icon:hover {
  background-color: var(--theme);
  border: 1px solid var(--theme);
  color: var(--white);
}

.featured-tour-section {
  position: relative;
}
.featured-tour-section::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: var(--bg);
  top: -35%;
  z-index: -1;
}
.featured-tour-section .left-shape {
  position: absolute;
  top: 50%;
  left: 50px;
}
@media (max-width: 1399px) {
  .featured-tour-section .left-shape {
    display: none;
  }
}
.featured-tour-section .right-shape {
  position: absolute;
  bottom: 23%;
  right: 30px;
}
@media (max-width: 1399px) {
  .featured-tour-section .right-shape {
    display: none;
  }
}
.featured-tour-section .array-button {
  display: grid;
  gap: 10px;
}
.featured-tour-section .array-button .array-prev, .featured-tour-section .array-button .array-next {
  width: 56px;
  height: 56px;
  border-radius: 50px;
  line-height: 56px;
  text-align: center;
  transition: all 0.2s ease-in-out;
  color: var(--white);
}
.featured-tour-section .array-button .array-prev {
  background-color: var(--theme);
  position: absolute;
  bottom: 36%;
  right: 11%;
}
.featured-tour-section .array-button .array-prev:hover {
  background-color: var(--header);
}
.featured-tour-section .array-button .array-next {
  background: rgba(2, 165, 206, 0.1);
  position: absolute;
  left: 11%;
  bottom: 35%;
  color: var(--header);
}
.featured-tour-section .array-button .array-next:hover {
  background-color: var(--header);
  color: var(--white);
}

.featured-flight-items {
  margin-top: 30px;
}
.featured-flight-items .featured-image img {
  width: 100%;
  height: 100%;
  border-radius: 15px;
}
.featured-flight-items .featured-content {
  margin-top: 20px;
}
.featured-flight-items .featured-content .featured-post {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.featured-flight-items .featured-content .featured-post .feature-list li {
  font-size: 16px;
  font-weight: 400;
  color: var(--text);
}
.featured-flight-items .featured-content .featured-post .feature-list li i {
  color: var(--theme);
  margin-right: 5px;
}
.featured-flight-items .featured-content .featured-post .text p {
  color: var(--text);
}
.featured-flight-items .featured-content .featured-cont {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #E6E6E6;
  padding-bottom: 20px;
  margin-bottom: 30px;
}
.featured-flight-items .featured-content .featured-cont p {
  font-size: 14px;
  color: var(--text);
}
.featured-flight-items .featured-content .featured-cont p b {
  font-size: 18px;
  color: var(--theme);
}
.featured-flight-items .featured-content .featured-rating {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.featured-flight-items .featured-content .featured-rating .star {
  display: inline-block;
  margin-bottom: 20px;
}
.featured-flight-items .featured-content .featured-rating .star i {
  color: #F16522;
}
.featured-flight-items .featured-content .featured-rating .star h6 {
  font-weight: 400;
  margin-top: 10px;
}
.featured-flight-items .featured-content .featured-rating .theme-btn {
  padding: 15px 22px;
  background-color: transparent;
  border: 1px solid var(--theme);
  color: var(--header);
}
.featured-flight-items .featured-content .featured-rating .theme-btn:before {
  background-color: var(--theme);
}
.featured-flight-items .featured-content .featured-rating .theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}
.featured-flight-items .featured-content .featured-rating .theme-btn:hover::before {
  width: 100%;
}

.airlines-items {
  display: flex;
  align-items: center;
  gap: 15px;
  border-radius: 13px;
  background: rgba(6, 51, 71, 0.06);
  border: 1px solid var(--white);
  padding: 20px;
  transition: all 0.2s ease-in-out;
}
@media (max-width: 1199px) {
  .airlines-items {
    margin-top: 30px;
  }
}
.airlines-items .content {
  font-weight: 700;
  color: #1D3638;
}
.airlines-items:hover {
  border: 1px solid #1CA8CB;
  background: var(--white);
}

.top-airlines-section {
  margin-bottom: -50px;
}

.activities-items .activities-image {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}
.activities-items .activities-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  transform: scale(1.1);
  transition: all 0.2s ease-in-out;
}
.activities-items .activities-image .post {
  font-size: 12px;
  font-weight: 600;
  color: var(--white);
  padding: 8px 10px;
  line-height: 1;
  background-color: var(--theme);
  position: absolute;
  top: 25px;
  left: 25px;
  border-radius: 100px;
}
.activities-items .activities-content {
  margin-top: 30px;
}
.activities-items .activities-content h4 a:hover {
  color: var(--theme);
}
.activities-items:hover .activities-image img {
  transform: scale(1.4);
}

.activities-details-wrapper .details-thumb {
  margin-bottom: 30px;
  position: relative;
}
.activities-details-wrapper .details-thumb img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
}
.activities-details-wrapper .details-thumb .image-list {
  position: absolute;
  bottom: 20px;
  left: 20px;
  display: flex;
  align-items: center;
  right: 20px;
  gap: 15px;
}
.activities-details-wrapper .details-thumb .image-list li img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.activities-details-wrapper .activities-rating {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-rating {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.activities-details-wrapper .activities-rating .activities-content h3 {
  font-size: 30px;
  margin-bottom: 10px;
}
@media (max-width: 575px) {
  .activities-details-wrapper .activities-rating .activities-content h3 {
    font-size: 24px;
  }
}
.activities-details-wrapper .activities-rating .activities-content .rating {
  display: flex;
  align-items: center;
  gap: 20px;
}
.activities-details-wrapper .activities-rating .activities-content .rating .star i {
  color: #FE6902;
}
.activities-details-wrapper .activities-rating .activities-content .rating li i {
  color: var(--theme);
  margin-right: 6px;
}
.activities-details-wrapper .activities-rating .share {
  border-radius: 6px;
  border: 1px solid var(--theme);
  padding: 20px 24px;
  line-height: 1;
}
.activities-details-wrapper .activities-rating .share li {
  font-size: 16px;
}
.activities-details-wrapper .activities-rating .share li i {
  color: var(--theme);
  margin-left: 5px;
}
.activities-details-wrapper .activities-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 30px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-top: 50px;
  margin-bottom: 50px;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-wrap {
    flex-wrap: wrap;
    gap: 20px;
    padding-right: 0;
  }
}
.activities-details-wrapper .activities-wrap .activities-item {
  display: flex;
  align-items: center;
  gap: 20px;
  border-right: 1px solid rgb(169, 175, 191);
  padding-right: 60px;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-wrap .activities-item {
    border-right: none;
  }
}
.activities-details-wrapper .activities-wrap .activities-item.style-2 {
  border: none;
  margin-right: 0;
}
.activities-details-wrapper .activities-wrap .activities-item .content h6 {
  font-size: 14px;
  font-weight: 600;
}
.activities-details-wrapper .activities-wrap .activities-item .content span {
  font-size: 12px;
  color: var(--text);
}
.activities-details-wrapper .main-bar .activities-card {
  border: 1px solid var(--border);
  padding: 30px;
  border-radius: 10px;
}
.activities-details-wrapper .main-bar .activities-card h3 {
  margin-bottom: 30px;
}
.activities-details-wrapper .main-bar .activities-card .from-bar .from-list {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.activities-details-wrapper .main-bar .activities-card .from-bar .from-list li {
  font-size: 18px;
  font-weight: 500;
  color: var(--header);
}
.activities-details-wrapper .main-bar .activities-card .from-bar .from-list li i {
  color: var(--theme);
}
.activities-details-wrapper .main-bar .activities-card .from-bar .from-list li input {
  border: none;
  padding: 0;
}
.activities-details-wrapper .main-bar .activities-card .from-bar .list {
  font-size: 18px;
  font-weight: 500;
  color: var(--header);
  border-bottom: 1px solid var(--border);
  padding-bottom: 15px;
  margin-bottom: 15px;
}
.activities-details-wrapper .main-bar .activities-card .from-bar .ticket {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
  padding-bottom: 15px;
  margin-bottom: 20px;
}
.activities-details-wrapper .main-bar .activities-card .from-bar .ticket li {
  font-size: 18px;
  font-weight: 500;
  color: var(--header);
}
.activities-details-wrapper .main-bar .activities-card .from-bar .ticket li span {
  font-weight: 300;
}
.activities-details-wrapper .main-bar .activities-card .categories-list h5 {
  font-weight: 500;
  margin-bottom: 30px;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single {
  position: relative;
  padding-left: 18px;
  cursor: pointer;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single:not(:last-child) {
  margin-bottom: 10px;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .checkbox-area .checkmark {
  position: absolute;
  left: 0;
  height: 20px;
  width: 20px;
  border: 1px solid var(--border);
  top: 5px;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .checkbox-area .checkmark::after {
  content: "";
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark {
  background-color: var(--theme);
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark::after {
  content: "\f00c";
  position: absolute;
  font-family: "Font Awesome 6 Pro";
  top: -5px;
  left: 5px;
  color: var(--theme);
  font-size: 11px;
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .checkbox-area input:checked ~ .checkmark:after {
  display: block;
  color: var(--white);
}
.activities-details-wrapper .main-bar .activities-card .categories-list .checkbox-single .text-color {
  color: var(--text);
}
.activities-details-wrapper .main-bar .activities-card .doller {
  margin-top: 30px;
}
.activities-details-wrapper .main-bar .activities-card .doller span {
  font-weight: 500;
  color: var(--header);
  display: inline-block;
  margin-bottom: 15px;
}
.activities-details-wrapper .main-bar .activities-card .doller li {
  font-size: 18px;
  font-weight: 500;
  color: var(--header);
}
.activities-details-wrapper .main-bar .activities-card .doller li:not(:last-child) {
  margin-bottom: 10px;
}
.activities-details-wrapper .main-bar .activities-card .price {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  margin-top: 10px;
  border-top: 1px solid var(--border);
  padding-top: 15px;
}
.activities-details-wrapper .main-bar .activities-card .price li {
  font-size: 18px;
  font-weight: 500;
  color: var(--header);
}
.activities-details-wrapper .main-bar .activities-card .theme-btn {
  width: 100%;
}
.activities-details-wrapper .main-bar .booking-bg {
  border-radius: 20px;
  position: relative;
  height: 340px;
  margin-top: 30px;
}
.activities-details-wrapper .main-bar .booking-bg::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(14, 14, 14, 0) 19.86%, #0E0E0E 77.79%);
}
.activities-details-wrapper .main-bar .booking-bg .text-title {
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  color: var(--white);
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 295px;
}
.activities-details-wrapper .activities-details-content h3 {
  margin-bottom: 20px;
  line-height: 1;
}
.activities-details-wrapper .activities-details-content .activities-list-item {
  margin-top: 40px;
}
.activities-details-wrapper .activities-details-content .activities-list-item .activities-item {
  display: flex;
  align-items: center;
  gap: 60px;
  margin-top: 15px;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-details-content .activities-list-item .activities-item {
    flex-wrap: wrap;
  }
}
@media (max-width: 991px) {
  .activities-details-wrapper .activities-details-content .activities-list-item .activities-item {
    gap: 30px;
  }
}
.activities-details-wrapper .activities-details-content .activities-list-item .activities-item .activities-list li {
  font-weight: 500;
  color: #1D3638;
}
.activities-details-wrapper .activities-details-content .activities-list-item .activities-item .activities-list li:not(:last-child) {
  margin-bottom: 15px;
}
.activities-details-wrapper .activities-details-content .activities-list-item .activities-item .activities-list li svg {
  margin-right: 5px;
}
.activities-details-wrapper .activities-details-content .activities-box-wrap {
  border-radius: 16px;
  background-color: var(--bg);
  padding: 40px 40px;
  margin-top: 50px;
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
}
@media (max-width: 991px) {
  .activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item .icon {
  width: 44px;
  height: 44px;
  text-align: center;
  line-height: 40px;
  border-radius: 6px;
  border: 1px solid #92A4A8;
  transition: all 0.2s ease-in-out;
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item.style-2 .icon {
  background-color: var(--theme);
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item .content span {
  font-size: 14px;
  font-weight: 400;
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item:hover .icon {
  background-color: var(--theme);
  border: 1px solid var(--theme);
}
.activities-details-wrapper .activities-details-content .activities-box-wrap .activities-box-area .activities-box-item:hover .icon img {
  filter: grayscale(100%) brightness(300%);
}
.activities-details-wrapper .activities-details-content .video-image {
  position: relative;
  border-radius: 20px;
  padding: 170px 0;
  margin-top: 50px;
}
@media (max-width: 767px) {
  .activities-details-wrapper .activities-details-content .video-image {
    padding: 130px 0;
  }
}
@media (max-width: 575px) {
  .activities-details-wrapper .activities-details-content .video-image {
    padding: 100px 0;
  }
}
.activities-details-wrapper .activities-details-content .video-image .video-btn {
  width: 74px;
  height: 74px;
  line-height: 74px;
  border-radius: 50px;
  text-align: center;
  border: 1px solid var(--white);
  background: radial-gradient(157.24% 123.22% at 47.19% -0.63%, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 100%);
  color: var(--white);
  top: 50%;
  left: 50%;
  position: absolute;
  transform: translate(-50%, -50%);
  font-size: 18px;
}
.activities-details-wrapper .activities-details-content .faq-items {
  margin-top: 50px;
  margin-bottom: 50px;
}
.activities-details-wrapper .activities-details-content .faq-items h3 {
  margin-bottom: 20px;
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item {
  border: 0;
  background-color: var(--white);
  border-radius: 12px;
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header {
  border: none;
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header .accordion-button {
  font-weight: 600;
  color: var(--theme);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: var(--white);
  border-radius: 12px;
  padding: 25px 30px 0;
  text-transform: capitalize;
  font-size: 18px;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header .accordion-button {
    font-size: 20px;
  }
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header .accordion-button::after {
  content: "\f324";
  background: transparent;
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  transition: all 0.2s ease-in-out !important;
  color: var(--header);
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header .accordion-button:not(.collapsed)::after {
  content: "\f322";
  background: transparent;
  font-family: "Font Awesome 6 Pro";
  font-weight: 300;
  transform: rotate(0);
  color: var(--theme);
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-header .accordion-button.collapsed {
  background-color: transparent;
  padding: 25px 30px;
  color: var(--header);
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-collapse .accordion-body {
  padding-left: 30px;
  padding-top: 15px;
  color: #504E4E;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1399px) {
  .activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-collapse .accordion-body {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-collapse .accordion-body p {
  max-width: 620px;
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-collapse .accordion-body .faq-image {
  max-width: 160px;
}
.activities-details-wrapper .activities-details-content .faq-items .accordion-item .accordion-collapse .accordion-body .faq-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.activities-details-wrapper .activities-details-content .map-area {
  margin-bottom: 50px;
}
.activities-details-wrapper .activities-details-content .map-area h3 {
  margin-bottom: 20px;
}
.activities-details-wrapper .activities-details-content .map-area .google-map iframe {
  width: 100%;
  height: 458px;
  border-radius: 16px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items {
  border-radius: 20px;
  background: #151415;
  padding: 40px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box {
  display: flex;
  align-items: center;
  gap: 35px;
}
@media (max-width: 767px) {
  .activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box .reviews-box {
  padding: 50px 34px;
  text-align: center;
  min-width: 257px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.1);
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box .reviews-box h2 {
  font-size: 70px;
  font-weight: 700;
  line-height: 1;
  color: var(--white);
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box .reviews-box .star {
  color: #F7921E;
  margin-bottom: 10px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .courses-reviews-box .reviews-box p {
  color: var(--white);
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right {
  max-width: 460px;
  width: 100%;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item {
  display: flex;
  align-items: center;
  gap: 30px;
}
@media (max-width: 767px) {
  .activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item:not(:last-child) {
  margin-bottom: 15px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .star {
  color: #F7921E;
  display: flex;
  align-items: center;
  gap: 7px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .star i.color-2 {
  color: var(--text);
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item span {
  font-weight: 500;
  color: var(--white);
  font-size: 16px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .progress {
  background: rgba(247, 146, 30, 0.15);
  justify-content: flex-start;
  border-radius: 0;
  align-items: center;
  position: relative;
  display: flex;
  height: 5px;
  width: 100%;
  max-width: 244px;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .progress-value {
  animation: load 3s normal forwards;
  border-radius: 0;
  background: #F7921E;
  height: 5px;
  width: 0;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .style-two {
  animation: load2 3s normal forwards;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .style-three {
  animation: load3 3s normal forwards;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .style-four {
  animation: load4 3s normal forwards;
}
.activities-details-wrapper .activities-details-content .courses-reviews-box-items .reviews-ratting-right .reviews-ratting-item .style-five {
  animation: load5 3s normal forwards;
}
@keyframes load {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}
@keyframes load2 {
  0% {
    width: 0;
  }
  100% {
    width: 90%;
  }
}
@keyframes load3 {
  0% {
    width: 0;
  }
  100% {
    width: 80%;
  }
}
@keyframes load4 {
  0% {
    width: 0;
  }
  100% {
    width: 70%;
  }
}
@keyframes load5 {
  0% {
    width: 0;
  }
  100% {
    width: 60%;
  }
}
.activities-details-wrapper .activities-details-content .cliect-review-area {
  margin-top: 50px;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li {
  display: flex;
  align-items: center;
  gap: 24px;
  position: relative;
}
@media (max-width: 767px) {
  .activities-details-wrapper .activities-details-content .cliect-review-area .review-items li {
    flex-wrap: wrap;
  }
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li:not(:last-child) {
  margin-bottom: 40px;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li:nth-child(2) {
  margin-left: 135px;
}
@media (max-width: 1199px) {
  .activities-details-wrapper .activities-details-content .cliect-review-area .review-items li:nth-child(2) {
    margin-left: 0;
  }
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li .thumb img {
  border-radius: 12px;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li .content .star {
  color: #FFB700;
  margin-bottom: 4px;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li .content p {
  margin-top: 7px;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li .content .reply-icon {
  color: var(--header);
  position: absolute;
  top: 0;
  right: 0;
}
.activities-details-wrapper .activities-details-content .cliect-review-area .review-items li .content .reply-icon .material-symbols-outlined {
  color: var(--theme);
  margin-right: 10px;
}
.activities-details-wrapper .activities-details-content .comments-area {
  margin-top: 40px;
}
.activities-details-wrapper .activities-details-content .comments-area .comments-heading {
  margin-bottom: 10px;
}
@media (max-width: 575px) {
  .activities-details-wrapper .activities-details-content .comments-area .activities-single-comment {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.activities-details-wrapper .activities-details-content .comments-area .activities-single-comment .content .head .con h5 {
  margin-bottom: 5px;
  font-weight: 600;
  font-size: 20px;
}
.activities-details-wrapper .activities-details-content .comments-area .activities-single-comment .content .head .con span {
  color: #586061;
}
.activities-details-wrapper .activities-details-content .comments-area .activities-single-comment .content .head .star i {
  color: #FE6902;
  font-size: 14px;
}
.activities-details-wrapper .activities-details-content .rating-bar {
  margin-top: 30px;
}
.activities-details-wrapper .activities-details-content .rating-bar span {
  display: inline-block;
  margin-right: 10px;
  font-weight: 500;
}
.activities-details-wrapper .activities-details-content .rating-bar .star {
  display: inline-block;
}
.activities-details-wrapper .activities-details-content .rating-bar .star i {
  color: #FE6902;
  font-size: 16px;
}
.activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt span {
  color: var(--header);
  display: inline-block;
  margin-bottom: 10px;
}
.activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt input, .activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt textarea {
  width: 100%;
  outline: none;
  border: none;
  background-color: transparent;
  border: 1px solid var(--border);
  padding: 16px 20px;
  font-weight: 500;
  border-radius: 8px;
  color: var(--text);
}
.activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt input::placeholder, .activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt textarea::placeholder {
  color: var(--text);
}
.activities-details-wrapper .activities-details-content .comment-form-wrap .form-clt textarea {
  padding-bottom: 100px;
}
.activities-details-wrapper .client-ratting-items {
  background-color: var(--bg);
  border-radius: 20px;
  padding: 50px 40px;
  margin-top: 50px;
}
.activities-details-wrapper .client-ratting-items h3 {
  line-height: 1;
}
.activities-details-wrapper .client-ratting-items ul {
  display: flex;
  align-items: center;
  gap: 70px;
  margin-bottom: 10px;
}
@media (max-width: 1399px) {
  .activities-details-wrapper .client-ratting-items ul {
    flex-wrap: wrap;
    gap: 30px;
  }
}
.activities-details-wrapper .client-ratting-items ul li {
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-basis: 25%;
}
@media (max-width: 1399px) {
  .activities-details-wrapper .client-ratting-items ul li {
    flex-basis: initial;
  }
}
.activities-details-wrapper .client-ratting-items ul li .star {
  color: #F7921E;
}
.activities-details-wrapper .client-ratting-items h4 {
  font-size: 20px;
  font-weight: 600;
  margin-top: 50px;
  margin-bottom: 25px;
}
.activities-details-wrapper .client-ratting-items .form-clt input, .activities-details-wrapper .client-ratting-items .form-clt textarea {
  border: none;
  outline: none;
  width: 100%;
  background-color: var(--white);
  padding: 20px 30px;
  line-height: 1;
  border-radius: 10px;
  text-transform: capitalize;
  color: #455151;
}
.activities-details-wrapper .client-ratting-items .form-clt input::placeholder, .activities-details-wrapper .client-ratting-items .form-clt textarea::placeholder {
  color: #455151;
}
.activities-details-wrapper .client-ratting-items .form-clt textarea {
  padding-bottom: 152px;
}

.footer-newsletter .container {
  padding-top: 40px;
}
.footer-newsletter__title {
  color: var(--header);
  font-size: 24px;
  margin-bottom: 8px;
}
/* font-size in !important: NEWSLETTER_TEXT viene stampata senza htmlspecialchars() (vedi
   site.php), quindi se la label è stata scritta nel CMS con un editor rich-text può
   portarsi dietro uno style="font-size:..." inline sul proprio markup — un inline style
   batte qualunque regola qui, !important compreso solo se anche l'inline lo fosse (mai il
   caso per contenuto CMS). Senza, questa regola veniva ignorata proprio per quel motivo. */
.footer-newsletter__text {
  color: var(--black);
  margin-bottom: 0;
  font-size: 16px !important;
  line-height:1.4
}
@media (max-width: 575px) {
  .footer-newsletter__title {
    font-size: 20px;
  }
  .footer-newsletter__text {
    font-size: 14px !important;
  }
}
.footer-newsletter__field {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-newsletter__field .form-control {
  flex: 1 1 240px;
}
.footer-newsletter__submit {
  flex-shrink: 0;
}
.footer-newsletter__gdpr {
  margin-top: 10px;
  font-size: 12px;
  color: var(--text);
}
.footer-newsletter__gdpr a {
  color: var(--theme);
}
.footer-newsletter__success {
  margin: 0;
  color: var(--theme);
  font-weight: 600;
}

.footer-widget-wrapper-new {
  padding: 70px 0 50px;
  position: relative;
  z-index: 9;
}

@media (max-width: 1199px) {
  .footer-widget-wrapper-new .single-widget-items {
    text-align: left !important;
  }
}
.footer-widget-wrapper-new .single-widget-items .widget-head {
  margin-bottom: 15px;
}
.footer-widget-wrapper-new .single-widget-items .widget-head .h4 {
  color: var(--header);
  position: relative;
  padding-bottom: 0;
  font-size:18px
}
/* footer-accordion — toggle disattivato/inerte sopra i 768px (main.js lo mantiene sincronizzato
   coi breakpoint, guarda sempre come il testo del titolo, vedi 'all:unset'): diventa un vero
   bottone accordion solo sotto i 768px, soglia mobile reale (non 'lg' Bootstrap: un tablet/lg
   non è considerabile mobile per questa interazione). */
.footer-accordion__toggle {
  all: unset;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: default;
}
.footer-accordion__toggle:disabled {
  color: inherit;
  opacity: 1;
}
.footer-accordion__icon {
  display: none;
}
@media (max-width: 768px) {
  .footer-accordion__toggle {
    width: 100%;
    justify-content: space-between;
    cursor: pointer;
  }
  .footer-accordion__toggle:focus-visible {
    outline: 2px solid var(--theme);
    outline-offset: 2px;
  }
  .footer-accordion__icon {
    display: inline-flex;
    transition: transform .2s ease;
  }
  .footer-accordion__toggle[aria-expanded="true"] .footer-accordion__icon {
    transform: rotate(180deg);
  }
  .footer-widget-wrapper-new .single-widget-items.footer-accordion{
  border-bottom: 1px solid var(--border);
}
  .footer-widget-wrapper-new .single-widget-items .h4{margin-bottom:0}

  .footer-widget-wrapper-new .single-widget-items .footer-accordion__toggle{
    padding-bottom:20px
  }
  .footer-widget-wrapper-new .single-widget-items .widget-head{
    margin-bottom:0
  }
  .footer-accordion nav{padding:0 0 20px}
}
.footer-widget-wrapper-new .single-widget-items .footer-content {
  text-align: left;
}
.footer-widget-wrapper-new .single-widget-items .footer-content h3 {
  color: var(--header);
  margin-bottom: 10px;
}
.footer-widget-wrapper-new .single-widget-items .footer-content p {
  color: var(--text);
}
.footer-legal {
  margin-top: 16px;
}
.footer-legal p {
  font-size: 12px;
  color: var(--text);
  line-height: 1.6;
}
.footer-legal__separator {
  margin-top: 12px;
}
.footer-widget-wrapper-new .single-widget-items .footer-content .footer-input {
  position: relative;
  margin-top: 30px;
  text-align: center;
  padding: 0 45px;
}
@media (max-width: 1199px) {
  .footer-widget-wrapper-new .single-widget-items .footer-content .footer-input {
    text-align: left !important;
    padding: 0;
  }
}
.footer-widget-wrapper-new .single-widget-items .footer-content .footer-input input {
  background: var(--white);
  border: none;
  outline: none;
  width: 100%;
  padding: 18px 20px;
  border-radius: 100px;
  color: #727171;
  line-height: 1;
  text-transform: capitalize;
  margin-bottom: 20px;
}
@media (max-width: 991px) {
  .footer-widget-wrapper-new .single-widget-items .footer-content .footer-input input {
    padding: 15px 20px;
  }
}
@media (max-width: 767px) {
  .footer-widget-wrapper-new .single-widget-items .footer-content .footer-input input {
    padding: 17px 20px;
  }
}
@media (max-width: 575px) {
  .footer-widget-wrapper-new .single-widget-items .footer-content .footer-input input {
    padding: 14px 20px;
  }
}
.footer-widget-wrapper-new .single-widget-items .footer-content .footer-input input::placeholder {
  color: #727171;
}
.footer-widget-wrapper-new .single-widget-items .footer-content .footer-input .newsletter-btn {
  width: 100%;
}
.footer-widget-wrapper-new .single-widget-items .footer-content .social-icon {
  gap: 20px;
  margin-top: 20px;
}
@media (max-width: 1199px) {
  .footer-widget-wrapper-new .single-widget-items .footer-content .social-icon {
    justify-content: start !important;
  }
}
.footer-widget-wrapper-new .single-widget-items .footer-content .social-icon a {
  color: var(--header);
  font-size: 18px;
  line-height: 1;
  transition: color 0.2s ease;
}
.footer-widget-wrapper-new .single-widget-items .footer-content .social-icon a:hover {
  color: var(--theme);
}
.footer-widget-wrapper-new .single-widget-items .list-items li {
  transition: all 0.2s ease-in-out;
  font-size: 15px;
}
.footer-widget-wrapper-new .single-widget-items .list-items li i {
  margin-right: 10px;
  color: var(--theme);
  transition: all 0.2s ease-in-out;
}
.footer-widget-wrapper-new .single-widget-items .list-items li a {
  color: var(--header);
}
.footer-widget-wrapper-new .single-widget-items .list-items li:not(:last-child) {
  margin-bottom: 12px;
}

.footer-widget-wrapper-new .single-widget-items .list-items li:hover a {
  color: var(--theme);
  text-decoration: underline;
}
.footer-widget-wrapper-new .single-widget-items .list-items li:hover i {
  color: var(--theme);
}
.footer-partner-logo {
  width: 200px;
  height: auto;
  margin-top: 20px;
}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items:not(:last-child) {
  margin-bottom: 14px;
}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .icon {
  flex-shrink: 0;
  color: var(--header);
  line-height: 1.4;
}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .icon .material-symbols-outlined {
  font-size: 18px;
}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .content,
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .content address,
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .content a {
  color: var(--text);
  font-size: 14px;
}
address{margin-bottom:0}
.footer-widget-wrapper-new .single-widget-items .contact-info .contact-items .content a:hover {
  color: var(--theme);
}

.footer-eu {
  position: relative;
  padding: 40px 0 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.footer-eu__logos {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  row-gap: 48px;
  column-gap: 48px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-eu__logos img {
  display: block;
  height: 56px;
  width: auto;
  opacity: 1;
}
@media (max-width: 768px) {
  .footer-eu {
    padding-top: 20px;
  }
  .footer-eu__logos {
    row-gap: 16px;
  }
}
.footer-eu__link {
line-height:1.3;
  font-size: 12px;
  color: var(--text);
}
.footer-eu__link:hover {
  color: var(--theme);
  text-decoration: underline;
}
/* Stretched link: unico <a> reale (sulla label), area cliccabile estesa a tutto il blocco
   .footer-eu (loghi inclusi) — stesso pattern di .poster-card__link. */
.footer-eu__link::after {
  content: '';
  position: absolute;
  inset: 0;
}
.footer-eu__link:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.footer-bottom {
  padding: 32px 0 20px;
  position: relative;
  border-top: 1px solid var(--border);
}
.footer-bottom .footer-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 768px) {
  .footer-bottom .footer-wrapper {
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
  }
}
.footer-bottom .footer-wrapper p {
  color: var(--text);
}
.footer-bottom .footer-wrapper p span {
  color: var(--theme);
}
.footer-bottom .footer-wrapper .bottom-list {
  display: flex;
  align-items: center;
  gap: 24px;
}
.footer-bottom .footer-wrapper .bottom-list li {
  font-size: 16px;
  font-weight: 400;
  color: var(--header);
}
.footer-bottom .footer-wrapper .bottom-list a {
  color: var(--header);
  font-size: 13px;
}
.footer-bottom__legal {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
}
.footer-bottom__buttons {
  display: flex;
  align-items: center;
  gap: 10px;
}
@media (max-width: 768px) {
  .footer-bottom__buttons {
    width: 100%;
    justify-content: space-between;
    margin-bottom: 16px;
  }
}
.footer-credit {
  display: inline-flex;
  align-items: center;
}
.footer-credit img {
  display: block;
  width: 90px;
  height: auto;
}

.footer-dealer-login {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 100px;
  border: 1px solid var(--border);
  color: var(--header);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.footer-dealer-login .material-symbols-outlined {
  font-size: 20px;
}
.footer-dealer-login:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}

.header-top-section {
  background-color: var(--theme);
  padding: 12px 0;
  position: relative;
}
@media (max-width: 1199px) {
  .header-top-section {
    display: none;
  }
}
.header-top-section::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: #113D48;
  width: 55%;
  clip-path: polygon(0 0, 100% 0%, 97% 100%, 0% 100%);
}
.header-top-section .container-fluid {
  padding: 0 60px;
}
@media (max-width: 1600px) {
  .header-top-section .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .header-top-section .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .header-top-section .container-fluid {
    padding: 0 30px;
  }
}

.header-top-wrapper {
  position: relative;
  z-index: 9;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header-top-wrapper .top-left {
  display: flex;
  align-items: center;
  gap: 30px;
}
.header-top-wrapper .top-left li {
  color: var(--white);
}
.header-top-wrapper .top-left li i {
  margin-right: 10px;
}
.header-top-wrapper .top-right {
  display: flex;
  align-items: center;
  gap: 30px;
}
.header-top-wrapper .top-right li {
  color: var(--white);
}
.header-top-wrapper .top-right li a {
  color: var(--white);
}
.header-top-wrapper .top-right li i {
  margin-right: 10px;
}
.header-top-wrapper .top-right li .social-icon {
  gap: 10px;
}

.header-1 {
  position: relative;
}
.header-1::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: var(--theme);
  opacity: 0.1;
  width: 445px;
  clip-path: polygon(0 0, 84% 0%, 100% 100%, 0% 100%);
  z-index: -1;
}
@media (max-width: 991px) {
  .header-1::before {
    display: none;
  }
}
.header-1 .container-fluid {
  padding: 0 60px;
}
@media (max-width: 1600px) {
  .header-1 .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .header-1 .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .header-1 .container-fluid {
    padding: 0 30px;
  }
}
@media (max-width: 1399px) {
  .header-1 .theme-btn {
    display: none;
  }
}
.header-1 .search-icon {
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  border-radius: 50%;
  border: 1px solid var(--border);
}
.header-1.header-3 {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
}
.header-1.header-3 .header-logo {
  display: none;
}
.header-1.header-3::before {
  display: none;
}
.header-1.header-3 .header-main .main-menu ul li a {
  color: var(--white);
}
.header-1.header-3 .header-main .main-menu ul li a:hover {
  color: var(--theme) !important;
}
.header-1.header-3 .header-main .main-menu ul li .submenu {
  color: var(--header);
}
.header-1.header-3 .header-main .main-menu ul li .submenu li a {
  color: var(--header);
}
.header-1.header-3 .header-main .main-menu ul li .submenu li.has-dropdown > a::after {
  position: absolute;
  top: 50%;
  inset-inline-end: 25px;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  color: var(--theme);
}
.header-1.header-3 .header-main .sidebar__toggle {
  color: var(--white);
}
.header-1.header-3 .theme-btn {
  border: 1px solidrgba(255, 255, 255, 0.25);
  color: var(--white);
  background: rgba(255, 255, 255, 0.25);
}
.header-1.header-3 .search-icon {
  border: 1px solid var(--white);
  color: var(--white);
}
.header-1.header-2 {
  padding: 30px 0;
}
.header-1.header-2 .logo-2 {
  position: absolute;
  top: 25px;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 1399px) {
  .header-1.header-2 .logo-2 {
    width: 150px;
  }
  .header-1.header-2 .logo-2 img {
    width: 100%;
    height: 100%;
  }
}
@media (max-width: 1199px) {
  .header-1.header-2 .logo-2 {
    width: 100px;
  }
}
.header-1.header-2 .logo {
  display: none;
}

.header-top-section-new .container-fluid {
  padding: 0 150px;
}
@media (max-width: 1600px) {
  .header-top-section-new .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .header-top-section-new .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .header-top-section-new .container-fluid {
    padding: 0 30px;
  }
}

.header-section-10 {
  position: relative;
}
.header-section-10::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 28%;
  height: 100%;
  content: "";
  background-color: var(--theme);
  z-index: -1;
  clip-path: polygon(78% 0, 100% 106%, 100% 100%, 0 100%, 0 0);
}
@media (max-width: 1899px) {
  .header-section-10::before {
    display: none;
  }
}
.header-section-10 .header-logo {
  position: absolute;
  top: 55px;
  left: 150px;
}
@media (max-width: 1899px) {
  .header-section-10 .header-logo {
    display: none;
  }
}

@media (max-width: 1899px) {
  .header-top-section-new {
    padding-left: 0;
  }
}
@media (max-width: 1199px) {
  .header-top-section-new {
    display: none;
  }
}

.header-top-wrapper-new {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0 0;
  font-size:14px!important;
}
.header-top-wrapper-new .social-icon {
  display: flex;
  align-items: center;
  gap: 20px;
}
.header-top-wrapper-new .social-icon span {
  font-weight: 500;
  color: var(--header);
}
.header-top-wrapper-new .top-right {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.header-top-wrapper-new .top-right li {
  color: var(--header);
  font-weight: 500;
}
.header-top-wrapper-new .top-right li i {
  margin-right: 10px;
}
.header-top-wrapper-new .top-right li a {
  color: var(--header);
}

.header-11 .container-fluid {
  padding: 0 150px;
}
@media (max-width: 1600px) {
  .header-11 .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .header-11 .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .header-11 .container-fluid {
    padding: 0 30px;
  }
}
.header-11 .logo-2 {
  display: none;
}
@media (max-width: 1899px) {
  .header-11 .logo-2 {
    display: block;
  }
}
@media (max-width: 1399px) {
  .header-11 .theme-btn {
    display: none;
  }
}

@media (max-width: 1199px) {
  .menu-thumb {
    display: none !important;
  }
}

.header-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
}
.header-main .main-menu ul {
  margin-bottom: 0;
}
.header-main .main-menu ul li {
  position: relative;
  list-style: none;
  display: inline-block;
  margin-inline-end: 40px;
}
.header-main .main-menu ul li:last-child {
  margin-inline-end: 0;
}
.header-main .main-menu ul li a {
  display: inline-block;
  font-size: 16px;
  font-weight: 500;
  color: var(--header);
  padding: 20px 0;
  text-align: left;
  position: relative;
  text-transform: capitalize;
  transition: all 0.2s ease-in-out;
}
.header-main .main-menu ul li a i {
  margin-left: 4px;
  font-size: 14px;
}
.header-main .main-menu ul li a:hover {
  color: var(--theme) !important;
}
.header-main .main-menu ul li .submenu {
  position: absolute;
  top: 115%;
  inset-inline-start: 0;
  min-width: 240px;
  background: var(--white);
  padding: 20px 0;
  z-index: 99999;
  visibility: hidden;
  opacity: 0;
  transform-origin: top center;
  color: var(--header);
  transform: translateY(-10px);
  transition: all 0.2s ease-in-out;
  border-top: 6px solid var(--theme);
  box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}
.header-main .main-menu ul li .submenu li {
  display: block;
  width: 100%;
  margin: 0;
}
.header-main .main-menu ul li .submenu li a {
  position: relative;
  z-index: 11;
  font-size: 16px;
  font-weight: 500;
  color: var(--header);
  line-height: 38px;
  padding: 0px 0px 0px 32px;
  width: 100%;
}
.header-main .main-menu ul li .submenu li a::before {
  content: "";
  position: absolute;
  width: 0px;
  height: 2px;
  background: var(--theme);
  left: 14px;
  bottom: 18px;
  transition: all 0.2s ease-in-out;
}
.header-main .main-menu ul li .submenu li a:hover {
  color: var(--theme) !important;
}
.header-main .main-menu ul li .submenu li:last-child a {
  border: none;
}
.header-main .main-menu ul li .submenu li .submenu {
  inset-inline-start: 100%;
  top: 0;
  visibility: hidden;
  opacity: 0;
}
.header-main .main-menu ul li .submenu li:hover > a {
  color: var(--theme) !important;
  margin-left: 10px;
}
.header-main .main-menu ul li .submenu li:hover > a::before {
  width: 10px;
}
.header-main .main-menu ul li .submenu li:hover > a::after {
  color: var(--theme);
}
.header-main .main-menu ul li .submenu li:hover > .submenu {
  -webkit-transform: translateY(1);
  -moz-transform: translateY(1);
  -ms-transform: translateY(1);
  -o-transform: translateY(1);
  transform: translateY(1);
  visibility: visible;
  opacity: 1;
}
.header-main .main-menu ul li .submenu li.has-dropdown > a::after {
  position: absolute;
  top: 50%;
  inset-inline-end: 25px;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  color: var(--theme);
}
.header-main .main-menu ul li .has-homemenu {
  width: 800px;
  padding: 30px 30px 10px 30px;
  opacity: 0;
  left: -250px;
  visibility: hidden;
  padding: 30px 30px 10px 30px;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items {
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: space-between;
}
@media (max-width: 991px) {
  .header-main .main-menu ul li .has-homemenu .homemenu-items {
    flex-wrap: wrap;
  }
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu {
  position: relative;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb {
  position: relative;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb .demo-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70%;
  gap: 10px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
  margin-top: 20px;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb .demo-button .theme-btn {
  padding: 14px 20px;
  color: var(--white) !important;
  width: initial;
  font-size: 16px;
  text-align: center;
  border-radius: 0px !important;
  background-color: var(--theme);
  line-height: initial;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb .demo-button .theme-btn:hover {
  background-color: var(--header);
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb::before {
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(20, 19, 19, 0)), to(#5e5ef6));
  background: linear-gradient(to bottom, rgba(99, 92, 92, 0) 0%, #252527 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  opacity: 0;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  content: "";
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb:hover::before {
  visibility: visible;
  opacity: 1;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb:hover .demo-button {
  opacity: 1;
  visibility: visible;
  margin-top: 0;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb:hover .homemenu-btn {
  opacity: 1;
  visibility: visible;
  bottom: 50%;
  transform: translateY(50%);
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-thumb img {
  width: 100%;
}
.header-main .main-menu ul li .has-homemenu .homemenu-items .homemenu .homemenu-title {
  text-align: center;
  margin: 15px auto;
  display: inline-block;
  font-size: 18px;
  font-weight: 600;
  font-family: "Manrope", sans-serif;
}
.header-main .main-menu ul li:hover > a {
  color: var(--theme-2);
}
.header-main .main-menu ul li:hover > a::after {
  color: var(--theme);
}
.header-main .main-menu ul li:hover > .submenu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0px);
}
.header-main .header-right {
  gap: 30px;
}
@media (max-width: 1399px) {
  .header-main .header-right {
    gap: 20px;
  }
}
.header-main .sidebar__toggle {
  cursor: pointer;
  font-size: 20px;
}

.sticky {
  position: fixed !important;
  top: 0 !important;
  left: 0;
  width: 100%;
  z-index: 100;
  transition: all 0.9s;
  background-color: var(--white);
  -webkit-animation: 500ms ease-in-out 0s normal none 1 running fadeInDown;
  animation: 500ms ease-in-out 0s normal none 1 running fadeInDown;
  box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;
}
.sticky.header-11 .header-logo {
  display: none;
}
.sticky.header-11 .logo-2 {
  display: block;
}
.sticky.header-3 .header-logo-2 {
  display: none;
}
.sticky.header-3 .header-logo {
  display: block;
}
.sticky.header-3 .header-main .main-menu ul li a {
  color: var(--header);
}
.sticky.header-3 .header-main .main-menu ul li a:hover {
  color: var(--theme) !important;
}
.sticky.header-3 .header-main .main-menu ul li .submenu {
  color: var(--header);
}
.sticky.header-3 .header-main .main-menu ul li .submenu li a {
  color: var(--header);
}
.sticky.header-3 .header-main .sidebar__toggle {
  color: var(--header);
}
@media (max-width: 1399px) {
  .sticky.header-3 .theme-btn {
    display: none;
  }
}
.sticky.header-3 .search-icon {
  color: var(--header);
  border: 1px solid var(--border);
}
.sticky.header-3 .theme-btn {
  background-color: var(--theme);
}

.offcanvas__info {
  background: var(--white) none repeat scroll 0 0;
  border-left: 2px solid var(--theme);
  position: fixed;
  right: 0;
  top: 0;
  width: 400px;
  height: 100%;
  -webkit-transform: translateX(calc(100% + 80px));
  -moz-transform: translateX(calc(100% + 80px));
  -ms-transform: translateX(calc(100% + 80px));
  -o-transform: translateX(calc(100% + 80px));
  transform: translateX(calc(100% + 80px));
  -webkit-transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
  -moz-transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
  transition: transform 0.45s ease-in-out, opacity 0.45s ease-in-out;
  z-index: 99999;
  overflow-y: scroll;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}
.offcanvas__info::-webkit-scrollbar {
  display: none;
}

.offcanvas__info.info-open {
  opacity: 1;
  -webkit-transform: translateX(0);
  -moz-transform: translateX(0);
  -ms-transform: translateX(0);
  -o-transform: translateX(0);
  transform: translateX(0);
}

.offcanvas__wrapper {
  position: relative;
  height: 100%;
  padding: 30px 30px;
}
.offcanvas__wrapper .offcanvas__content .text {
  color: var(--text);
}
.offcanvas__wrapper .offcanvas__content .offcanvas__close {
  width: 45px;
  height: 45px;
  line-height: 45px;
  text-align: center;
  border-radius: 50%;
  background-color: var(--theme);
  position: relative;
  z-index: 9;
  cursor: pointer;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__close i {
  color: var(--white);
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact {
  margin-top: 20px;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul {
  margin-top: 20px;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul li {
  font-size: 16px;
  font-weight: 600;
  text-transform: capitalize;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul li a {
  color: var(--text);
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul li:not(:last-child) {
  margin-bottom: 15px;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul li .offcanvas__contact-icon {
  margin-right: 20px;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact ul li .offcanvas__contact-icon .material-symbols-outlined {
  color: var(--theme);
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact span {
  text-transform: initial;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact .header-button .theme-btn {
  width: 100%;
  padding: 20px 40px;
  text-transform: capitalize !important;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact .social-icon {
  margin-top: 30px;
  gap: 10px;
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact .social-icon a {
  width: 45px;
  height: 45px;
  line-height: 45px;
  text-align: center;
  font-size: 16px;
  display: block;
  background: transparent;
  color: var(--text);
  border-radius: 50%;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  text-align: center;
  border: 1px solid var(--border);
}
.offcanvas__wrapper .offcanvas__content .offcanvas__contact .social-icon a:hover {
  background-color: var(--theme);
  color: var(--white);
}
.offcanvas__wrapper .offcanvas__logo {
  width: 170px;
}
.offcanvas__wrapper .offcanvas__logo img {
  width: 100%;
  height: 100%;
}

.offcanvas__overlay {
  position: fixed;
  height: 100%;
  width: 100%;
  background: #151515;
  z-index: 900;
  top: 0;
  opacity: 0;
  visibility: hidden;
  right: 0;
}

.offcanvas__overlay.overlay-open {
  opacity: 0.8;
  visibility: visible;
}

@media (max-width: 450px) {
  .offcanvas__info {
    width: 300px;
  }
}
@media (max-width: 575px) {
  .offcanvas__wrapper {
    padding: 20px;
  }
}
.breadcrumb-wrapper {
  position: relative;
}
.breadcrumb-wrapper::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(10, 31, 36, 0.65);
}
.breadcrumb-wrapper .page-heading {
  padding: 190px 0 170px;
  text-align: center;
  position: relative;
}
@media (max-width: 1199px) {
  .breadcrumb-wrapper .page-heading {
    padding: 170px 0 130px;
  }
}
@media (max-width: 767px) {
  .breadcrumb-wrapper .page-heading {
    padding: 130px 0 130px;
  }
}
@media (max-width: 575px) {
  .breadcrumb-wrapper .page-heading {
    padding: 130px 0 100px;
  }
}
.breadcrumb-wrapper .page-heading h2 {
  color: var(--white);
  font-size: 60px;
  font-weight: 800;
  margin-bottom: 30px;
}
@media (max-width: 767px) {
  .breadcrumb-wrapper .page-heading h2 {
    font-size: 52px;
  }
}
@media (max-width: 991px) {
  .breadcrumb-wrapper .page-heading h2 {
    font-size: 46px;
  }
}
@media (max-width: 767px) {
  .breadcrumb-wrapper .page-heading h2 {
    font-size: 40px;
  }
}
@media (max-width: 575px) {
  .breadcrumb-wrapper .page-heading h2 {
    font-size: 34px;
  }
}
.breadcrumb-wrapper .page-heading .breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  border-radius: 100px;
  border: 0.5px solid var(--white);
  background: rgba(255, 255, 255, 0.15);
  justify-content: center;
  display: inline-flex;
}
.breadcrumb-wrapper .page-heading .breadcrumb-list li {
  color: var(--white);
  font-weight: 500;
}
.breadcrumb-wrapper .page-heading .breadcrumb-list li i {
  color: var(--white);
}
.breadcrumb-wrapper .page-heading .breadcrumb-list li a {
  color: var(--white);
}
.breadcrumb{font-size:14px}
.breadcrumb a:hover{text-decoration:underline;color:var(--theme)}
::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}

/* Track */
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px var(--theme);
  border-radius: 5px;
}

/* Handle */
::-webkit-scrollbar-thumb {
  background: var(--theme);
  border-radius: 10px;
}

.fix {
  overflow: hidden;
}

.ralt {
  position: relative;
}

.ml-50 {
  margin-left: 50px;
}
@media (max-width: 1199px) {
  .ml-50 {
    margin-left: 0;
  }
}

.ripple {
  position: relative;
}
.ripple::before, .ripple::after {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 80px;
  height: 80px;
  -webkit-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5);
  -webkit-animation: rippleOne 3s infinite;
  animation: rippleOne 3s infinite;
}
.ripple::before {
  -webkit-animation-delay: 0.9s;
  animation-delay: 0.9s;
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
}
.ripple::after {
  -webkit-animation-delay: 0.2s;
  animation-delay: 0.2s;
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
}

.array-button {
  display: flex;
  align-items: center;
  gap: 10px;
}
.array-button .array-prev {
  width: 56px;
  height: 56px;
  line-height: 56px;
  border-radius: 50px;
  text-align: center;
  background-color: var(--header);
  color: var(--header);
  transition: all 0.2s ease-in-out;
}
.array-button .array-next {
  width: 56px;
  height: 56px;
  line-height: 56px;
  border-radius: 50px;
  text-align: center;
  background-color: rgb(17, 61, 72);
  transition: all 0.2s ease-in-out;
}

.swiper-dot .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  transition: all 0.2s ease-in-out;
  background-color: var(--theme);
  opacity: 1;
  border-radius: 10px;
}
.swiper-dot .swiper-pagination-bullet:not(:last-child) {
  margin-right: 10px;
}
.swiper-dot .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--theme);
  transition: 0.2s;
  position: relative;
}
.swiper-dot .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
  position: absolute;
  width: 22px;
  height: 22px;
  line-height: 22px;
  top: -6px;
  left: -6px;
  border-radius: 50%;
  background-color: transparent;
  border: 2px solid var(--theme);
  content: "";
}

.swiper-dot-2 {
  text-align: center;
}
.swiper-dot-2 .swiper-pagination-bullet {
  width: 32px;
  height: 8px;
  transition: 0.2s;
  background-color: rgba(213, 213, 213, 0.6);
  opacity: 1;
  border-radius: 10px;
  position: relative;
}
.swiper-dot-2 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: var(--theme);
  transition: 0.2s;
  position: relative;
  width: 50px;
}

.price-range-wrapper {
  /* Custom thumb styling */
  /* Remove the default appearance for sliders in Firefox */
}
.price-range-wrapper .slider-container {
  position: relative;
  width: 100%;
}
.price-range-wrapper .price-text label {
  color: #1b1f2a;
  font-size: 20px;
  font-weight: 500;
}
.price-range-wrapper .price-text input {
  color: #1b1f2a;
  font-size: 18px;
  font-weight: 500;
}
.price-range-wrapper .slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  background: var(--theme);
  outline: none;
  position: absolute;
  top: 0;
  pointer-events: none;
}
.price-range-wrapper .slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  background: var(--theme);
  cursor: pointer;
  border: 2px solid #fff;
  position: relative;
  z-index: 2;
  pointer-events: all;
}
.price-range-wrapper .slider::-moz-range-thumb {
  width: 20px;
  height: 20px;
  background: var(--theme);
  cursor: pointer;
  border-radius: 4px;
  border: 2px solid #000;
  z-index: 2;
  position: relative;
}
.price-range-wrapper .slider::-ms-thumb {
  width: 20px;
  height: 20px;
  background: var(--theme);
  cursor: pointer;
  border-radius: 4px;
  border: 2px solid #000;
  z-index: 2;
  position: relative;
}
.price-range-wrapper input[type=range]::-moz-range-track {
  background: transparent;
}

.mt-10 {
  margin-top: 10px;
}

@media (max-width: 767px) {
  br {
    display: none;
  }
}

.mt-60 {
  margin-top: 55px;
}

.mb-40 {
  margin-bottom: 40px;
}

/* background */
.bg-cover {
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  background-position: center;
}

.bg-cover-2 {
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  background-position: center;
  width: 100%;
  height: 100%;
}

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

.custom-container {
  max-width: 1680px;
}

.page-nav-wrap {
  margin-top: 60px;
}
.page-nav-wrap ul li {
  display: inline-block;
}
.page-nav-wrap ul li .page-numbers {
  display: inline-block;
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  border-radius: 4px;
  background: var(--bg);
  color: var(--theme);
  font-weight: 700;
  transition: all 0.2s ease-in-out;
  margin: 0 2px;
}
.page-nav-wrap ul li .page-numbers.current {
  background-color: var(--theme);
  color: var(--white);
}
@media (max-width: 767px) {
  .page-nav-wrap ul li .page-numbers {
    margin-top: 10px;
    width: 50px;
    height: 50px;
    line-height: 50px;
    font-size: 14px;
  }
}
.page-nav-wrap ul li .page-numbers i {
  margin-top: 2px;
}
.page-nav-wrap ul li .page-numbers:hover {
  background-color: var(--theme);
  color: var(--white);
}

.custom-container {
  max-width: 1410px;
  margin: 0 auto;
}

.custom-container-3 {
  max-width: 1655px;
  margin: 0 auto;
}

.swiper-dot4 {
  text-align: center;
}
.swiper-dot4 .swiper-pagination-bullet {
  width: 15px;
  height: 15px;
  transition: 0.2s;
  background-color: var(--white);
  border: 1px solid var(--theme);
  opacity: 1;
  border-radius: 100%;
  position: relative;
}
.swiper-dot4 .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--theme);
  transition: 0.2s;
  position: relative;
  width: 30px;
  border-radius: 30px;
}

/* Splide — paginazione di default per tutti i caroselli di contenuto del sito
   (equivalente Splide di .swiper-dot4 sopra). splide-core.min.css fornisce solo il
   layout strutturale (flex, centrato) e nasconde i pallini quando le slide entrano
   tutte in una pagina sola: qui aggiungiamo solo lo stile visivo dei pallini. */
.splide__pagination {
  margin-top: 30px;
}
.splide__pagination__page {
  width: 15px;
  height: 15px;
  padding: 0;
  margin: 0 4px;
  background-color: var(--white);
  border: 1px solid var(--theme);
  opacity: 1;
  border-radius: 100%;
  transition: 0.2s;
}
.splide__pagination__page.is-active {
  background-color: var(--theme);
  width: 30px;
  border-radius: 30px;
}
.splide__pagination__page:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

/* .splide ha già position:relative nativo (splide-core.min.css), ma quel foglio è
   caricato col media="print" trick (non-bloccante, vedi head.php): per una finestra
   reale prima che scatti (main.css invece è bloccante, sempre attivo da subito),
   .carousel-nav qui sotto (position:absolute;inset:0) risulterebbe senza un
   contenitore posizionato e si ancorerebbe all'intera pagina invece che al carosello
   — bug reale segnalato: le frecce prev/next comparivano in cima alla pagina al
   caricamento. Stessa dichiarazione qui, bloccante, chiude la finestra — ridondante
   ma innocua una volta che splide-core.min.css carica (stesso valore). */
.splide {
  position: relative;
}
/* Frecce prev/next di default per _carousel.php (vedi javascript.php:
   data-splide-target/data-splide-dir). Componente unico condiviso da tutti i
   caroselli di contenuto del sito — non usare .array-button (legacy, ancora usato
   da alcune section del tema non ancora integrate, con stili scoped diversi).
   Overlay ai lati del carosello (stile Booking/immobiliare.it), non più una riga sotto
   le card: .carousel-nav è annidato dentro .splide (position:relative nativo di Splide,
   vedi splide-core.min.css) e copre l'intero riquadro, con pointer-events:none così i
   click raggiungono comunque le card sottostanti tranne che sui due bottoni stessi. */
.carousel-nav {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Niente padding: prev sempre a left:0, next sempre a right:0 (bordo di .splide) —
     stessa distanza dal contenitore per entrambi, indipendentemente dal padding del
     track configurato per il singolo carosello (peek simmetrico o solo a destra). Prima
     un padding:0 12px inseriva un margine fisso qui, che con un track a padding-left:0
     andava compensato a mano con un margin-left negativo su .carousel-nav__btn--prev —
     rimosso insieme a questa modifica (vedi _carousel.php), non più necessario. */
  pointer-events: none;
}
.carousel-nav__btn {
  pointer-events: auto;
  width: 53px;
  height: 53px;
  border-radius: 50px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  color: var(--black);
  border:2px solid var(--border);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.carousel-nav__btn .material-symbols-outlined{font-size:22px}

/* Da 576px in su: piccola sporgenza oltre il bordo esatto del carosello — prev/next
   esattamente a filo (left:0/right:0, vedi .carousel-nav sopra) risultavano troppo
   "precisi"/geometrici. Valore volutamente contenuto (solo un accenno di distacco). */
@media (min-width: 576px) {
  .carousel-nav__btn--prev {
    margin-left: -10px;
  }
  .carousel-nav__btn--next {
    margin-right: -10px;
  }
}

@media (max-width: 575px) {
  /* Card strette: un cerchio da 56px in overlay coprirebbe troppo dell'immagine.
     Resta sopra il target minimo WCAG 2.5.8 (24x24, idealmente 44x44). */
  .carousel-nav__btn {
    width: 44px;
    height: 44px;
  }
  /* Sotto 576px il carosello (.splide, vedi sotto) diventa a tutta larghezza, a filo
     con la finestra — qui i bottoni tornano a un margine POSITIVO di 8px dal bordo
     (che ora coincide col bordo reale del viewport), non più il "-10px" di sopra. */
  .carousel-nav__btn--prev {
    margin-left: 8px;
  }
  .carousel-nav__btn--next {
    margin-right: 8px;
  }
}

/* Caroselli a tutta larghezza (filo finestra) sotto i 576px: compensa il gutter standard
   di Bootstrap (--bs-gutter-x:1.5rem → 12px per lato, da .container o da una colonna
   .row>.col-*) con un margine negativo uguale e contrario su .splide stesso — la coppia
   .row (margine negativo) + .col (padding) si annulla sempre a vicenda per qualunque
   livello di nidificazione riga/colonna, quindi il valore netto da compensare resta
   sempre 12px indipendentemente da quanti .row/.col ci sono in mezzo tra il .container
   più esterno e questo carosello.
   ATTENZIONE — questa regola compensa SOLO il gutter standard Bootstrap: un carosello
   annidato dentro un box con un proprio padding extra (es. .vouchers-carousel-box,
   .package-detail-form-sticky) non arriva comunque a filo della finestra, resta filo
   di QUEL box — per il filo-finestra completo lì serve un margine negativo aggiuntivo
   scoped a quel box specifico, da aggiungere caso per caso. */
@media (max-width: 575px) {
  .splide {
    margin-left: -12px;
    margin-right: -12px;
  }
}
/* .vouchers-carousel-box/.article-detail-experiences-box sotto i 991px azzerano già il
   proprio padding orizzontale (vedi le due regole sopra) per andare a filo col carosello
   dentro — qui il .splide è già esattamente a filo del box, quindi il -12px generico
   qui sopra lo farebbe sporgere OLTRE il bordo del box invece di allinearcisi: va
   neutralizzato solo per questi due, non per i caroselli "normali" a filo finestra. */
@media (max-width: 575px) {
  .vouchers-carousel-box .splide,
  .article-detail-experiences-box .splide {
    margin-left: 0;
    margin-right: 0;
  }
}

.carousel-nav__btn:hover,
.carousel-nav__btn:focus-visible {
  background-color: var(--black);
  color: var(--white);
  border-color: var(--white);
}
.carousel-nav__btn:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

.carousel-nav__btn--hidden {
  visibility: hidden;
}

/* Carosello ↔ griglia responsive (vedi _carousel.php: carouselGridBreakpoint). Stesso markup
   per entrambe le modalità: sotto la soglia Splide è montato (carosello), sopra si distrugge
   da solo (data-splide: mediaQuery+breakpoints+destroy) lasciando le classi Bootstrap .row/
   .col-* già presenti nel markup libere di funzionare normalmente. .splide--grid-active è
   pilotata via matchMedia in JS (setupGridCarousel), sulla stessa soglia, e serve solo a
   correggere le proprietà CSS in cui Splide e Bootstrap si contendono lo stesso elemento. */
.splide__list {
  /* splide-core.min.css ha una regola nativa
     ".splide.is-initialized:not(.is-active) .splide__list { display: block }" — quando Splide
     si autodistrugge (modalità griglia, vedi sotto) resta is-initialized ma sparisce is-active,
     quindi quella regola scatta e rompe sia il flex del carosello sia la griglia Bootstrap.
     !important necessario: la regola nativa ha 4 classi di specificità, più della nostra. */
  display: flex !important;
  /* Splide non dichiara flex-wrap (default nowrap): se sul contenitore c'è anche .row di
     Bootstrap (flex-wrap:wrap), le slide andrebbero a capo invece di scorrere in riga mentre
     è ancora un carosello. Esplicitiamo nowrap qui — innocuo per i caroselli senza .row. */
  flex-wrap: nowrap;
}
.splide__slide {
  /* Le classi colonna Bootstrap (carouselGridColClass, sempre presenti nel markup anche in
     modalità carosello) portano un padding orizzontale pensato per lavorare insieme al margine
     negativo di .row — serve solo in griglia. In carosello si somma al gap di Splide (margine
     inline tra slide), raddoppiando lo spazio. Azzerato di default, ripristinato solo in
     modalità griglia (sotto) — innocuo per i caroselli senza classi colonna. */
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Splide non montato: succede SEMPRE per un istante prima che il JS giri, ma per un
   carosello con una sola slide (count($items) > 1 falso in _plugins_config.php) non
   monta MAI — niente splide-core.min.css (caricato solo se il plugin è attivo, vedi
   head.php), quindi niente ".splide{visibility:hidden}" a nascondere l'attesa, e niente
   larghezza calcolata da JS in base a perPage: la slide risulterebbe piccola/imprevedibile
   (dimensionata sul solo contenuto, nessuna larghezza esplicita per lei da nessuna parte).
   Fallback: piena larghezza del track. Per i caroselli multi-slide è ininfluente — restano
   ".splide{visibility:hidden}" (core CSS caricato) finché JS non monta e aggiunge
   .is-initialized, a quel punto questa regola smette di applicarsi e vince comunque la
   larghezza inline calcolata da Splide.
   :not(.splide--grid-active) è OBBLIGATORIO: in modalità griglia (carouselGridBreakpoint,
   soglia già superata al caricamento) Splide non viene MAI montato per design (vedi
   initContentSplide() in javascript.php) — .is-initialized non scatta MAI, quindi senza
   questa esclusione il fallback restava attivo per sempre e, avendo specificità più alta
   di ".splide--grid-active .splide__slide" (3 classi vs 2), sovrascriveva la larghezza
   delle colonne Bootstrap con width:100% su ogni slide, rompendo la griglia. Bug reale
   segnalato dall'utente dopo l'introduzione di questo fallback. */
.splide:not(.is-initialized):not(.splide--grid-active) .splide__slide {
  width: 100%;
  flex-shrink: 0;
}
.splide--grid-active {
  /* Se il breakpoint griglia è già attivo al primo caricamento, Splide non viene MAI montato
     (vedi initContentSplide() in javascript.php — evita il flash "prima carosello poi griglia").
     Senza mount() non scatta mai ".splide.is-initialized{visibility:visible}" del core CSS: il
     default pre-mount ".splide{visibility:hidden}" resterebbe per sempre. */
  visibility: visible !important;
}
.splide--grid-active .splide__track {
  /* .splide__track ha overflow:hidden fisso (classe statica, non rimossa da Splide quando si
     distrugge): senza questo override una griglia multi-riga verrebbe tagliata verticalmente. */
  overflow: visible;
}
.splide--grid-active .splide__list {
  flex-wrap: wrap;
  /* .splide__list forza margin:0 !important (classe statica): serve ripristinare i margini
     negativi di .row di Bootstrap (orizzontale per il gutter-x delle colonne, verticale per il
     gutter-y tra righe quando la griglia va a capo — .row ha margin-top:calc(-1*gutter-y)). */
  margin-right: calc(var(--bs-gutter-x, 1.5rem) * -.5) !important;
  margin-left: calc(var(--bs-gutter-x, 1.5rem) * -.5) !important;
  margin-top: calc(var(--bs-gutter-y, 0) * -1) !important;
}
.splide--grid-active .splide__slide {
  /* .splide__slide forza margin:0 (senza !important, ma stessa specificità di ".row > *" di
     Bootstrap: vince per ordine di caricamento, splide-core.min.css dopo bootstrap.min.css).
     ".row > *" ha margin-top:var(--gutter-y) per il gutter verticale tra righe — senza questo
     override le card sembrano appiccicate verticalmente quando la griglia va a capo. */
  margin-top: var(--bs-gutter-y, 0) !important;
  /* Ripristina il padding di ".col-*" azzerato sopra di default (necessario solo qui, in
     abbinamento al margine negativo di .row per il gutter-x orizzontale tra colonne). */
  padding-right: calc(var(--bs-gutter-x, 1.5rem) * .5) !important;
  padding-left: calc(var(--bs-gutter-x, 1.5rem) * .5) !important;
}
/* In modalità griglia le frecce prev/next non hanno senso (nessuno "slide successivo" da
   raggiungere): .carousel-nav è annidato dentro .splide in _carousel.php. */
.splide--grid-active .carousel-nav {
  display: none;
}

.hero-1,.hero-1 .container,.hero-1 .container .row{
  position: relative;
  height: 65vh;
  /* Testo+gap+form arrivano insieme a ~301px quando il form va in wrap
     (sotto i 1199px, vedi .booking-list-area) — 460px lascia sempre un
     margine di respiro sopra/sotto, anche su viewport molto bassi. */
  min-height: 460px;
}
.hero-1 .hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
.hero-1 .hero-bg::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background: linear-gradient(180deg, rgba(11, 13, 17, 1) 0%, rgba(11, 13, 17, 1) 30%, rgba(11, 13, 17, 0.9) 100%);
}
.hero-1 .hero-content {
  position: relative;
  height: 100%;
  display: grid;
  /* Le due righe 1fr sopra/sotto il form sono sempre uguali fra loro, qualunque
     sia l'altezza reale del form (1 riga su desktop, wrap multi-riga sotto i
     1199px): il form risulta così sempre centrato verticalmente nell'hero,
     invece di essere spinto in basso dal testo sopra di lui. Copre anche
     l'area dove YouTube potrebbe mostrare la sua icona play/pausa nativa. */
  grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
  /* Il centraggio via grid risulta comunque ~20px più in basso del vero
     centro video (verificato dall'utente: 20px di UI YouTube restavano
     scoperti sopra il form) — corretto spostando l'intero blocco
     testo+form verso l'alto, mantenendo invariato il gap tra i due.
     NON usare transform: crea un nuovo stacking context e "intrappola"
     il calendario flatpickr (appeso dentro .content, quindi dentro
     .hero-content — vedi fpContent in javascript.php), che finirebbe
     sotto la sezione successiva quando aperto. margin-top ottiene lo
     stesso spostamento visivo senza creare stacking context. */
  margin-top: -20px;
}
.hero-1 .hero-content__text {
  grid-row: 1;
  align-self: end;
}
.hero-1 .hero-content .sub-title {
  font-size: 18px;
  color: var(--white);
  font-weight: 300;
}
.hero-1 .hero-content h1 {
  color: var(--white);
}
@media (max-width: 991px) {
  /* L'hero ha altezza fissa (65vh, min 460px, vedi .hero-1 sopra): quando il pannello
     di ricerca è aperto (righe stackate, molto più alto), la riga di testo del grid
     (minmax(0,1fr)) non riesce a comprimersi sotto l'altezza naturale del testo e
     trabocca fuori dal riquadro scuro dell'hero — su sfondo chiaro il testo bianco
     resta invisibile. Il testo va quindi nascosto finché la ricerca resta aperta,
     lasciando tutta l'altezza disponibile al form. */
  .hero-1 .hero-content:has(.experience-search-bar__toggle[aria-expanded="true"]) .hero-content__text {
    display: none;
  }
  /* min-height fisso (non condizionato allo stato aperto/chiuso, per non far
     "allargare" l'hero solo quando si apre la ricerca): deve stare comodo anche nel
     caso peggiore, pannello aperto a testo nascosto (toggle + 3 campi impilati +
     bottone, ~450px stimati: 40 margin-top + 52 riga toggle + 25 padding/bordo
     pannello + 16 padding booking-list-area + 3×~56 campi + 3×12 gap + 52 bottone),
     con margine sotto per non sovrapporsi a .hero__pause (cerchio 40px + 1rem dal
     bordo, vedi .yt-bg__pause/.hero__pause). Stima da verificare/affinare a video. */
  .hero-1,
  .hero-1 .container,
  .hero-1 .container .row {
    min-height: 520px;
  }
}
@media (max-width: 767px) {
  .hero-1 .hero-content .sub-title {
    display: none;
  }
  .hero-1 .hero-content h1 {
    font-size: 32px;
  }
}
/* Da qui in giù la home riusa lo stesso _experience-search-bar.php (pillola collassabile
   sotto i 991px) delle pagine attrazioni — vedi blocco EXPERIENCE SEARCH BAR più sotto,
   che stila .experience-search-bar/.booking-list-area indipendentemente dalla pagina.
   grid-row/margin-top per il centraggio verticale dell'hero restano invece specifici di
   qui, perché il diretto figlio della grid di .hero-content ora è .experience-search-bar
   (il wrapper), non più il form stesso. */
.hero-1 .hero-content .experience-search-bar {
  grid-row: 2;
  margin-top: 40px;
}
.hero-1 .hero-content .booking-list-area .booking-list h6 {
  font-size: 16px;
  font-weight: 600;
  color: var(--white);
  margin-bottom: 10px;
}
.hero-1 .hero-content .booking-list-area .booking-list .form .single-select {
  padding: 0;
  border: none;
  font-size: 15px;
  font-weight: 400;
  outline: none;
  line-height: 1;
  height: initial;
  background-color: transparent;
  color: var(--white);
  padding-right: 25px;
}
.hero-1 .hero-content .booking-list-area .booking-list .form .single-select::after {
  right: 0;
  border-bottom: 2px solid #fff;
  border-right: 2px solid #fff;
  margin-top: -5px;
  width: 8px;
  height: 8px;
}
.hero-1 .hero-content .booking-list-area .booking-list .form .single-select .option {
  color: var(--text);
}
.hero-1 .hero-content .booking-list-area .booking-list .form-clt {
  color: var(--white);
  line-height: 1;
}
.hero-1 .hero-content .booking-list-area .booking-list .form-clt input {
  padding: 0;
  border: none;
  font-size: 14px;
  font-weight: 400;
  outline: none;
  line-height: 1;
  height: initial;
  outline: none;
  background-color: transparent;
  color: var(--white);
  color-scheme: dark;
}
.hero-1 .hero-content .booking-list-area .booking-list .form-clt input::placeholder {
  color: var(--white);
}
.hero-1 .counter-area {
  position: relative;
}
.hero-1 .counter-area .counter-items {
  display: flex;
  align-items: center;
  gap: 48px;
  margin-top: 100px;
}
@media (max-width: 1199px) {
  .hero-1 .counter-area .counter-items {
    gap: 40px;
    flex-wrap: wrap;
  }
}
@media (max-width: 575px) {
  .hero-1 .counter-area .counter-items {
    gap: 32px;
    margin-top: 40px;
  }
}
.hero-1 .counter-area .counter-items .counter-text h2 {
  font-size: 40px;
  color: var(--white);
}
@media (max-width: 1199px) {
  .hero-1 .counter-area .counter-items .counter-text h2 {
    font-size: 34px;
  }
}
@media (max-width: 767px) {
  .hero-1 .counter-area .counter-items .counter-text h2 {
    font-size: 30px;
  }
}
@media (max-width: 575px) {
  .hero-1 .counter-area .counter-items .counter-text h2 {
    font-size: 26px;
  }
}
.hero-1 .counter-area .counter-items .counter-text p {
  font-size: 20px;
  font-weight: 400;
  color: var(--white);
}
@media (max-width: 1199px) {
  .hero-1 .counter-area .counter-items .counter-text p {
    font-size: 16px;
  }
}

.hero-2 {
  padding: 500px 90px 120px;
  border-radius: 20px;
  margin: 20px 20px;
  background-position: top !important;
}
@media (max-width: 1600px) {
  .hero-2 {
    padding: 400px 30px 120px;
  }
}
@media (max-width: 1399px) {
  .hero-2 {
    padding: 350px 30px 120px;
  }
}
@media (max-width: 1199px) {
  .hero-2 {
    padding: 300px 30px 100px;
  }
}
@media (max-width: 991px) {
  .hero-2 {
    padding: 260px 30px 100px;
  }
}
@media (max-width: 767px) {
  .hero-2 {
    padding: 220px 30px 100px;
  }
}
@media (max-width: 575px) {
  .hero-2 {
    padding: 180px 30px 100px;
  }
}

.hero-2 .hero-content h1 {
  color: var(--white);
  margin-bottom: 20px;
}
.hero-2 .hero-content p {
  color: var(--white);
}

.best-price-section {
  border: 1px solid var(--border);
  margin-left: 20px;
  margin-right: 20px;
  border-radius: 20px;
  padding: 60px 30px;
}
@media (max-width: 1199px) {
  .best-price-section {
    margin-top: 0;
  }
}

.hero-bottom .best-price-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .hero-bottom .best-price-wrapper {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.hero-bottom .best-price-wrapper .content h2 {
  font-size: 36px;
  font-weight: 600;
}
.hero-bottom .best-price-wrapper .nav {
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero-bottom .best-price-wrapper .nav .nav-item .nav-link {
  background-color: transparent;
  border: 1px solid #E6E6E6;
  font-weight: 500;
  color: var(--header);
  font-family: "Manrope", sans-serif;
  padding: 12px 15px;
  border-radius: 5px;
  line-height: 1;
}
.hero-bottom .best-price-wrapper .nav .nav-item .nav-link.active {
  background-color: var(--header);
  color: var(--white);
  border: 1px solid var(--header);
}
.hero-bottom .filter-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 34px;
}
@media (max-width: 1199px) {
  .hero-bottom .filter-wrapper {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.hero-bottom .filter-wrapper .list span {
  font-weight: 700;
  color: var(--header);
  display: inline-block;
  margin-right: 20px;
}
.hero-bottom .filter-wrapper .list a {
  display: inline-block;
  line-height: 1;
  margin-right: 20px;
  background: transparent;
  text-transform: capitalize;
  font-weight: 500;
  padding: 12px 15px;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  border-radius: 5px;
}
.hero-bottom .filter-wrapper .list a.active {
  background-color: var(--header);
  color: var(--white);
}
.hero-bottom .filter-wrapper .list a:hover {
  background-color: var(--header);
  padding: 12px 15px;
  color: var(--white);
}
.hero-bottom .filter-wrapper .serch-button {
  display: flex;
  align-items: center;
  gap: 24px;
}
.hero-bottom .filter-wrapper .serch-button span {
  font-weight: 700;
  color: var(--header);
}
.hero-bottom .filter-wrapper .serch-button .theme-btn {
  min-width: 145px;
  background-color: var(--theme-2);
}
.hero-bottom .filter-wrapper .serch-button .theme-btn:before {
  background-color: var(--theme);
}
.hero-bottom .filter-wrapper .serch-button .theme-btn:hover {
  color: var(--white);
  box-shadow: none;
}
.hero-bottom .filter-wrapper .serch-button .theme-btn:hover::before {
  width: 100%;
}

.comment-form-wrap {
  margin-top: 40px;
}
.comment-form-wrap .form-clt span {
  font-weight: 700;
  color: var(--header);
  display: inline-block;
  margin-bottom: 20px;
}
.comment-form-wrap .form-clt input, .comment-form-wrap .form-clt textarea {
  width: 100%;
  outline: none;
  border: none;
  border-radius: 5px;
  padding: 16px 20px;
  color: var(--text);
  background-color: var(--bg);
  font-weight: 400;
}
.comment-form-wrap .form-clt input::placeholder, .comment-form-wrap .form-clt textarea::placeholder {
  color: var(--text);
}
.comment-form-wrap .form-clt .nice-select {
  border-radius: 5px;
  padding: 10px 20px;
  color: var(--text);
  background-color: var(--bg);
  font-weight: 400;
  border: none;
  outline: none;
  height: initial;
  z-index: 99;
}
.comment-form-wrap .form-clt .nice-select span {
  margin-bottom: 0;
  font-weight: 400;
  color: var(--text);
}
.comment-form-wrap .form-clt .nice-select::after {
  width: 8px;
  height: 8px;
  right: 20px;
}
.comment-form-wrap .form-clt .nice-select .list {
  width: 100%;
}
.comment-form-wrap .form-clt .input-group {
  position: relative;
}
.comment-form-wrap .form-clt .input-group .input-group-addon {
  position: absolute;
  top: 19px;
  right: 20px;
}
.comment-form-wrap .form-clt .input-group input {
  padding: 0;
  border: none;
  font-size: 14px;
  font-weight: 400;
  outline: none;
  padding: 19px 20px;
  outline: none;
}
.comment-form-wrap .form-clt textarea {
  padding-bottom: 100px;
  border-radius: 20px;
  resize: none;
}
.comment-form-wrap .form-clt .theme-btn {
  border-radius: 5px;
  background-color: var(--theme-2);
}
.comment-form-wrap .form-clt .theme-btn::before {
  background-color: var(--theme);
}

.hero-3 {
  position: relative;
  z-index: 999;
}
.hero-3 .hero-image {
  overflow: hidden;
  position: absolute !important;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  z-index: -2;
  background-size: cover;
  background-position: bottom !important;
}
.hero-3 .hero-content {
  text-align: center;
  position: relative;
  padding-top: 240px;
  padding-bottom: 300px;
}
@media (max-width: 1399px) {
  .hero-3 .hero-content {
    padding-top: 250px;
    padding-bottom: 280px;
  }
}
@media (max-width: 1199px) {
  .hero-3 .hero-content {
    padding-top: 200px;
    padding-bottom: 250px;
  }
}
@media (max-width: 991px) {
  .hero-3 .hero-content {
    padding-top: 170px;
    padding-bottom: 230px;
  }
}
@media (max-width: 767px) {
  .hero-3 .hero-content {
    padding-top: 150px;
    padding-bottom: 200px;
  }
}
@media (max-width: 575px) {
  .hero-3 .hero-content {
    padding-top: 130px;
    padding-bottom: 180px;
  }
}

.hero-3 .hero-content h1 {
  color: var(--white);
  margin-bottom: 20px;
}
.hero-3 .hero-content p {
  color: var(--white);
}
.hero-3 .hero-content .about-button {
  margin-top: 50px;
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: center;
}
@media (max-width: 575px) {
  .hero-3 .hero-content .about-button {
    flex-wrap: wrap;
  }
}
.hero-3 .hero-content .about-button .theme-btn.style-2 {
  background: rgba(255, 255, 255, 0.25);
}
.hero-3 .swiper-dot {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 12%;
  z-index: 1;
}
.hero-3 .swiper-dot .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  transition: 0.2s;
  background: var(--white);
  opacity: 1;
  border-radius: 10px;
}
.hero-3 .swiper-dot .swiper-pagination-bullet:not(:last-child) {
  margin-right: 10px;
}
.hero-3 .swiper-dot .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background-color: var(--theme);
  transition: 0.2s;
  position: relative;
}
.hero-3 .swiper-dot .swiper-pagination-bullet.swiper-pagination-bullet-active::before {
  position: absolute;
  width: 22px;
  height: 22px;
  line-height: 22px;
  top: -6px;
  left: -6px;
  border-radius: 50%;
  background-color: transparent;
  border: 2px solid var(--theme);
  content: "";
}
.hero-3 .array-button {
  display: grid;
  gap: 0px;
  position: absolute;
  right: 60px;
  z-index: 3;
  opacity: 1;
  bottom: 80px;
}
.hero-3 .array-button .array-prev {
  width: 80px;
  height: 80px;
  line-height: 80px;
  text-align: center;
  border-radius: 50%;
  border: 1px solid var(--white);
  background-color: rgba(255, 255, 255, 0.1);
  color: var(--white);
  backdrop-filter: blur(9px);
}
.hero-3 .array-button .array-prev span {
  color: var(--white);
}
.hero-3 .array-button .array-next {
  width: 80px;
  height: 80px;
  line-height: 80px;
  text-align: center;
  border-radius: 50%;
  border: 1px solid var(--white);
  background: transparent;
  color: var(--white);
}
.hero-3 .array-button .array-next i {
  color: var(--white);
}

.mean-container a.meanmenu-reveal {
  display: none;
}

.mean-container .mean-nav {
  background: none;
  margin-top: 0;
}

.mean-container .mean-bar {
  padding: 0;
  min-height: auto;
  background: none;
}

.mean-container .mean-nav > ul {
  padding: 0;
  margin: 0;
  width: 100%;
  list-style-type: none;
  display: block !important;
}
.mean-container .mean-nav > ul .homemenu-items {
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: space-between;
}
@media (max-width: 1199px) {
  .mean-container .mean-nav > ul .homemenu-items {
    flex-wrap: wrap;
  }
}
.mean-container .mean-nav > ul .homemenu-items .homemenu {
  position: relative;
}
@media (max-width: 1199px) {
  .mean-container .mean-nav > ul .homemenu-items .homemenu {
    max-width: 300px;
    text-align: center;
    margin: 0 auto;
    border: 1px solid var(--border);
    padding: 10px;
  }
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb {
  position: relative;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb .demo-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60%;
  gap: 10px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
  margin-top: 20px;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb .demo-button .theme-btn {
  padding: 12px 20px;
  color: var(--white) !important;
  width: initial;
  font-size: 16px;
  text-align: center;
  border-radius: 0;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb .demo-button .theme-btn:hover {
  color: var(--white) !important;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb::before {
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(20, 19, 19, 0)), to(#5e5ef6));
  background: linear-gradient(to bottom, rgba(99, 92, 92, 0) 0%, #252527 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  opacity: 0;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  content: "";
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb:hover::before {
  visibility: visible;
  opacity: 1;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb:hover .demo-button {
  opacity: 1;
  visibility: visible;
  margin-top: 0;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb:hover .homemenu-btn {
  opacity: 1;
  visibility: visible;
  bottom: 50%;
  transform: translateY(50%);
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-thumb img {
  width: 100%;
}
.mean-container .mean-nav > ul .homemenu-items .homemenu .homemenu-title {
  text-align: center;
  margin: 15px auto;
  display: inline-block;
  font-size: 16px;
}

.mean-container a.meanmenu-reveal {
  display: none !important;
}

.mean-container .mean-nav ul li a {
  width: 100%;
  padding: 10px 0;
  color: var(--header);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  text-transform: capitalize;
  border-bottom: 1px solid var(--border) !important;
  border: none;
}
.mean-container .mean-nav ul li a:hover {
  color: var(--theme);
}

.mean-container .mean-nav ul li a:last-child {
  border-bottom: 0;
}

.mean-container .mean-nav ul li a:hover {
  color: var(--theme);
}

.mean-container .mean-nav ul li a.mean-expand {
  margin-top: 5px;
  padding: 0 !important;
}

.mean-container .mean-nav ul li > a > i {
  display: none;
}

.mean-container .mean-nav ul li > a.mean-expand i {
  display: inline-block;
  font-size: 18px;
}

.mean-container .mean-nav > ul > li:first-child > a {
  border-top: 0;
}

.mean-container .mean-nav ul li a.mean-expand.mean-clicked i {
  transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transition: all 0.2s ease-in-out;
}

.mean-container .mean-nav ul li .mega-menu li a {
  height: 200px;
  width: 100%;
  padding: 0;
  border-top: 0;
  margin-bottom: 20px;
}

.news-card-items {
  margin-top: 30px;
}
.news-card-items .news-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.news-card-items .news-content {
  border-radius: 10px;
  background: #F7F7F7;
  padding: 50px 40px;
}
@media (max-width: 1399px) {
  .news-card-items .news-content {
    padding: 20px 40px;
  }
}
@media (max-width: 1199px) {
  .news-card-items .news-content {
    padding: 50px 40px;
  }
}
@media (max-width: 991px) {
  .news-card-items .news-content {
    padding: 16px 25px;
  }
}
@media (max-width: 767px) {
  .news-card-items .news-content {
    padding: 35px 35px;
  }
}
.news-card-items .news-content .post-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
@media (max-width: 1399px) {
  .news-card-items .news-content .post-meta {
    flex-wrap: wrap;
    gap: 10;
  }
}
.news-card-items .news-content .post-meta li {
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}
.news-card-items .news-content .post-meta li i {
  margin-right: 8px;
  color: var(--theme);
}
.news-card-items .news-content h3 a:hover {
  color: var(--theme);
}
.news-card-items .news-content .link-btn {
  margin-top: 22px;
  display: inline-block;
}
@media (max-width: 1399px) {
  .news-card-items .news-content .link-btn {
    margin-top: 10px;
  }
}
@media (max-width: 991px) {
  .news-card-items .news-content .link-btn {
    margin-top: 6px;
  }
}

.news-card-items-2 {
  margin-top: 30px;
  border-radius: 16px;
  background: var(--white);
  box-shadow: 0px 4px 50px 0px rgba(0, 0, 0, 0.08);
  padding: 15px;
}
.news-card-items-2 .news-image {
  position: relative;
}
.news-card-items-2 .news-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.news-card-items-2 .news-content {
  padding: 30px 20px 30px;
}
@media (max-width: 1399px) {
  .news-card-items-2 .news-content {
    padding: 30px 0 30px;
  }
}
.news-card-items-2 .news-content .post-meta {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 15px;
}
@media (max-width: 1399px) {
  .news-card-items-2 .news-content .post-meta {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.news-card-items-2 .news-content .post-meta li {
  color: #535353;
}
.news-card-items-2 .news-content .post-meta li i {
  margin-right: 5px;
  color: var(--theme);
}
.news-card-items-2 .news-content h4 {
  font-size: 20px;
  font-weight: 600;
}
.news-card-items-2 .news-content h4 a:hover {
  color: var(--theme);
}
.news-card-items-2 .news-content .news-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
}

.news-card-items-3 {
  margin-top: 30px;
}
.news-card-items-3.style-4 {
  margin-bottom: 30px;
}
.news-card-items-3 .news-image {
  position: relative;
}
.news-card-items-3 .news-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.news-card-items-3 .news-content {
  padding: 24px;
  border-radius: 10px;
  background-color: var(--white);
  box-shadow: 0px 4px 30px 0px rgba(0, 0, 0, 0.1);
  position: relative;
  margin: -82px 22px 0px;
}
@media (max-width: 1199px) {
  .news-card-items-3 .news-content {
    padding: 20px;
  }
}
.news-card-items-3 .news-content .post-meta {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 15px;
}
@media (max-width: 1399px) {
  .news-card-items-3 .news-content .post-meta {
    gap: 18px;
  }
}
.news-card-items-3 .news-content .post-meta .post {
  background: var(--theme);
  color: var(--white);
  border-radius: 6px;
  font-size: 24px;
  font-weight: 700;
  padding: 5px 14px;
  display: grid;
  line-height: 1;
}
.news-card-items-3 .news-content .post-meta .post span {
  font-size: 16px;
  font-weight: 400;
  display: inline-block;
  margin-top: 6px;
  text-align: center;
}
.news-card-items-3 .news-content .post-meta li {
  color: #535353;
}
.news-card-items-3 .news-content .post-meta li i {
  margin-right: 5px;
  color: var(--theme);
}
.news-card-items-3 .news-content h4 {
  font-size: 20px;
  margin-bottom: 10px;
}
.news-card-items-3 .news-content h4 a:hover {
  color: var(--theme);
}
.news-card-items-3 .news-content .link-btn {
  color: var(--header);
}

.news-section-2 .container-fluid {
  padding: 0 110px;
}
@media (max-width: 1600px) {
  .news-section-2 .container-fluid {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .news-section-2 .container-fluid {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .news-section-2 .container-fluid {
    padding: 0 30px;
  }
}

.news-section-3 {
  position: relative;
  margin-bottom: -30px;
}
.news-section-3 .top-shape {
  position: absolute;
  right: 0;
  top: 40px;
}
@media (max-width: 1199px) {
  .news-section-3 .top-shape {
    display: none;
  }
}

.main-sideber .single-sidebar-widget {
  padding: 25px 25px;
  margin-bottom: 30px;
  border: 1px solid var(--border);
  border-radius: 20px;
}
.main-sideber .single-sidebar-widget .wid-title {
  margin-bottom: 20px;
}
.main-sideber .single-sidebar-widget .search-widget form {
  width: 100%;
  position: relative;
}
.main-sideber .single-sidebar-widget .search-widget form input {
  background-color: var(--white);
  font-size: 14px;
  font-weight: 500;
  padding: 16px 20px;
  width: 100%;
  border: none;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.main-sideber .single-sidebar-widget .search-widget form button {
  position: absolute;
  right: -2px;
  top: 0;
  width: 58px;
  border-radius: 8px;
  font-size: 18px;
  height: 100%;
  background-color: var(--theme);
  color: var(--white);
  text-align: center;
  transition: all 0.2s ease-in-out;
}
.main-sideber .single-sidebar-widget .search-widget form button:hover {
  background-color: var(--header);
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 400;
  transition: all 0.2s ease-in-out;
  border-radius: 0;
  font-size: 16px;
  line-height: 1;
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li a {
  color: var(--text);
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li span {
  transition: all 0.2s ease-in-out;
  color: var(--text);
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li:not(:last-child) {
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px dashed var(--border);
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li:hover a {
  color: var(--theme);
}
.main-sideber .single-sidebar-widget .news-widget-categories ul li:hover span {
  color: var(--theme);
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items {
  display: flex;
  align-items: center;
  gap: 20px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items:not(:last-child) {
  margin-bottom: 20px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-thumb img {
  border-radius: 10px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content ul {
  margin-bottom: 8px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content ul li {
  color: var(--theme);
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content ul li i {
  color: #FE6902;
  margin-right: 5px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content .star {
  color: #FFB700;
  margin-bottom: 4px;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content h6 a:hover {
  color: var(--theme);
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content .price-text {
  font-size: 16px;
  font-weight: 400;
}
.main-sideber .single-sidebar-widget .recent-post-area .recent-items .recent-content .price-text b {
  color: #FFB700;
  font-weight: 400;
}
.main-sideber .single-sidebar-widget .tagcloud a {
  display: inline-block;
  padding: 15px 21px;
  line-height: 1;
  font-size: 14px;
  font-weight: 400;
  background: var(--white);
  margin-right: 5px;
  text-transform: capitalize;
  margin-bottom: 10px;
  border-radius: 4px;
  border: 1px solid var(--border);
  transition: all 0.2s ease-in-out;
}
.main-sideber .single-sidebar-widget .tagcloud a:last-child {
  margin-right: 0;
}
.main-sideber .single-sidebar-widget .tagcloud a:hover {
  background-color: var(--theme);
  color: var(--white);
}
.main-sideber .single-sidebar-widget .desti-booking-form .form-clt input, .main-sideber .single-sidebar-widget .desti-booking-form .form-clt textarea {
  border: none;
  outline: none;
  width: 100%;
  background-color: var(--bg);
  padding: 20px 30px;
  line-height: 1;
  border-radius: 10px;
  text-transform: capitalize;
  color: #455151;
}
.main-sideber .single-sidebar-widget .desti-booking-form .form-clt input::placeholder, .main-sideber .single-sidebar-widget .desti-booking-form .form-clt textarea::placeholder {
  color: #455151;
}
.main-sideber .single-sidebar-widget .desti-booking-form .form-clt textarea {
  padding-bottom: 152px;
}
.main-sideber .single-sidebar-widget .desti-booking-form .theme-btn {
  width: 100%;
  border-radius: 10px;
}

.news-standard-wrapper .news-standard-items {
  border: 1px solid var(--border);
  padding: 30px;
  border-radius: 10px;
}
.news-standard-wrapper .news-standard-items:not(:last-child) {
  margin-bottom: 20px;
}
.news-standard-wrapper .news-standard-items .news-thumb {
  position: relative;
}
.news-standard-wrapper .news-standard-items .news-thumb img {
  width: 100%;
  height: 100%;
}
.news-standard-wrapper .news-standard-items .news-thumb .post {
  position: absolute;
  top: 30px;
  left: 30px;
  background-color: var(--theme);
  border-radius: 8px;
  text-align: center;
}
.news-standard-wrapper .news-standard-items .news-thumb .post h3 {
  color: var(--white);
  display: grid;
  padding: 12px 15px;
  line-height: 1;
  font-size: 24px;
  min-width: 60px;
}
.news-standard-wrapper .news-standard-items .news-thumb .post h3 span {
  display: inline-block;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 400;
}
.news-standard-wrapper .news-standard-items .news-content {
  margin-top: 20px;
  position: relative;
  z-index: 9;
}
.news-standard-wrapper .news-standard-items .news-content ul {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 10px;
}
@media (max-width: 1199px) {
  .news-standard-wrapper .news-standard-items .news-content ul {
    gap: 20px;
  }
}
.news-standard-wrapper .news-standard-items .news-content ul li {
  font-size: 16px;
  font-weight: 500;
}
.news-standard-wrapper .news-standard-items .news-content ul li i {
  color: var(--theme);
  margin-right: 5px;
}
.news-standard-wrapper .news-standard-items .news-content h3 {
  font-weight: bold;
  margin-bottom: 12px;
  font-size: 30px;
  font-weight: 600;
}
@media (max-width: 575px) {
  .news-standard-wrapper .news-standard-items .news-content h3 {
    font-size: 25px;
  }
}
.news-standard-wrapper .news-standard-items .news-content h3 a:hover {
  color: var(--theme);
}
.news-standard-wrapper .news-standard-items .news-content .theme-btn {
  margin-top: 30px;
}
.news-standard-wrapper .news-standard-items .news-content .theme-btn.style-2 {
  background-color: var(--header);
  color: var(--white);
}
.news-standard-wrapper .news-standard-items .news-content .theme-btn.style-2:before {
  background-color: var(--theme);
}
.news-standard-wrapper .news-standard-items .news-content .theme-btn.style-2:hover {
  color: var(--white);
  box-shadow: none;
}
.news-standard-wrapper .news-standard-items .news-content .theme-btn.style-2:hover::before {
  width: 100%;
}

.news-details-area .blog-post-details .single-blog-post .post-featured-thumb {
  height: 460px;
  border-radius: 10px;
}
@media (max-width: 767px) {
  .news-details-area .blog-post-details .single-blog-post .post-featured-thumb {
    height: 400px;
  }
}
.news-details-area .blog-post-details .single-blog-post .post-featured-thumb .post {
  position: absolute;
  top: 30px;
  left: 30px;
  background-color: var(--theme);
  border-radius: 8px;
  text-align: center;
}
.news-details-area .blog-post-details .single-blog-post .post-featured-thumb .post h3 {
  color: var(--white);
  display: grid;
  padding: 12px 15px;
  line-height: 1;
}
.news-details-area .blog-post-details .single-blog-post .post-featured-thumb .post h3 span {
  display: inline-block;
  margin-top: 6px;
}
.news-details-area .blog-post-details .single-blog-post .post-content {
  margin-top: 30px;
}
.news-details-area .blog-post-details .single-blog-post .post-content .post-list {
  gap: 30px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 20px;
}
.news-details-area .blog-post-details .single-blog-post .post-content .post-list li {
  font-size: 14px;
  font-weight: 500;
}
.news-details-area .blog-post-details .single-blog-post .post-content .post-list li i {
  color: var(--theme);
  margin-right: 5px;
}
.news-details-area .blog-post-details .single-blog-post .post-content h3 {
  margin-bottom: 15px;
  font-size: 30px;
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .single-blog-post .post-content h3 {
    font-size: 24px;
  }
}
.news-details-area .blog-post-details .single-blog-post .post-content h3 a:hover {
  color: var(--theme);
}
.news-details-area .blog-post-details .single-blog-post .post-content .hilight-text {
  border-left: 4px solid var(--theme);
  padding: 40px;
  background-color: var(--bg);
  border-radius: 10px;
}
.news-details-area .blog-post-details .single-blog-post .post-content .hilight-text p {
  font-weight: 600;
  text-transform: capitalize;
  font-style: italic;
  line-height: 26px;
  color: var(--header);
  line-height: 162%;
}
.news-details-area .blog-post-details .single-blog-post .post-content .hilight-text svg {
  float: right;
  margin-top: -30px;
}
.news-details-area .blog-post-details .single-blog-post .post-content .details-image img {
  width: 100%;
  height: 100%;
}
.news-details-area .blog-post-details .tag-share-wrap {
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 30px 0;
}
.news-details-area .blog-post-details .tag-share-wrap .tagcloud a {
  display: inline-block;
  padding: 12px 26px;
  line-height: 1;
  background: transparent;
  margin-right: 8px;
  text-transform: capitalize;
  font-weight: 500;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  border-radius: 4px;
  border: 1px solid var(--border);
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .tag-share-wrap .tagcloud a {
    margin-bottom: 5px;
    padding: 12px 23px;
  }
}
.news-details-area .blog-post-details .tag-share-wrap .tagcloud a:hover {
  background-color: var(--theme);
  color: var(--white);
}
.news-details-area .blog-post-details .tag-share-wrap .social-share span {
  font-size: 18px;
  color: var(--header);
  font-weight: 600;
}
.news-details-area .blog-post-details .tag-share-wrap .social-share a {
  font-size: 18px;
  color: var(--header);
}
.news-details-area .blog-post-details .tag-share-wrap .social-share a:not(:last-child) {
  margin-right: 10px;
}
.news-details-area .blog-post-details .tag-share-wrap .social-share a:hover {
  color: var(--theme);
}
.news-details-area .blog-post-details .comments-area {
  margin-top: 40px;
}
.news-details-area .blog-post-details .comments-area .comments-heading {
  margin-bottom: 10px;
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .comments-area .comments-heading {
    margin-bottom: 20px;
  }
}
.news-details-area .blog-post-details .comments-area .comments-heading h3 {
  font-size: 30px;
  font-weight: 700;
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .comments-area .comments-heading h3 {
    font-size: 26px;
  }
}
.news-details-area .blog-post-details .comments-area .blog-single-comment {
  border-bottom: 1px solid var(--border);
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .comments-area .blog-single-comment {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.news-details-area .blog-post-details .comments-area .blog-single-comment .content .head .con h5 {
  margin-bottom: 10px;
  font-weight: 600;
  font-size: 20px;
}
.news-details-area .blog-post-details .comments-area .blog-single-comment .content .reply {
  border-radius: 50px;
  padding: 5px 18px;
  font-weight: 400;
  background-color: var(--theme);
  color: var(--white);
}
.news-details-area .blog-post-details .comment-form-wrap h3 {
  font-size: 32px;
  margin-bottom: 30px;
}
@media (max-width: 575px) {
  .news-details-area .blog-post-details .comment-form-wrap h3 {
    font-size: 28px;
    margin-bottom: 20px;
  }
}
.news-details-area .blog-post-details .comment-form-wrap .form-clt span {
  color: var(--header);
  display: inline-block;
  margin-bottom: 10px;
}
.news-details-area .blog-post-details .comment-form-wrap .form-clt input, .news-details-area .blog-post-details .comment-form-wrap .form-clt textarea {
  width: 100%;
  outline: none;
  border: none;
  background-color: transparent;
  border: 1px solid var(--border);
  padding: 16px 20px;
  font-weight: 500;
  border-radius: 8px;
  color: var(--text);
}
.news-details-area .blog-post-details .comment-form-wrap .form-clt input::placeholder, .news-details-area .blog-post-details .comment-form-wrap .form-clt textarea::placeholder {
  color: var(--text);
}
.news-details-area .blog-post-details .comment-form-wrap .form-clt textarea {
  padding-bottom: 100px;
  resize: none;
}

.preloader {
  align-items: center;
  cursor: default;
  display: flex;
  height: 100%;
  justify-content: center;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  z-index: 9999999;
}
.preloader .animation-preloader {
  z-index: 1000;
}
.preloader .animation-preloader .spinner {
  animation: spinner 1s infinite linear;
  border-radius: 50%;
  border: 3px solid rgba(0, 0, 0, 0.2);
  border-top-color: var(--theme);
  height: 9em;
  margin: 0 auto 3.5em auto;
  width: 9em;
}
@media (max-width: 767px) {
  .preloader .animation-preloader .spinner {
    width: 7.5em;
    height: 7.5em;
    margin: 0 auto 1.5em auto;
  }
}
.preloader .animation-preloader .txt-loading {
  font: bold 5em "Manrope", sans-serif, "Manrope", sans-serif;
  text-align: center;
  user-select: none;
}
@media (max-width: 767px) {
  .preloader .animation-preloader .txt-loading {
    font-size: 2.5em;
  }
}
.preloader .animation-preloader .txt-loading .letters-loading {
  color: var(--theme);
  position: relative;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(2):before {
  animation-delay: 0.2s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(3):before {
  animation-delay: 0.2s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(4):before {
  animation-delay: 0.2s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(5):before {
  animation-delay: 0.8s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(6):before {
  animation-delay: 1s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(7):before {
  animation-delay: 1.2s;
}
.preloader .animation-preloader .txt-loading .letters-loading:nth-child(8):before {
  animation-delay: 1.4s;
}
.preloader .animation-preloader .txt-loading .letters-loading::before {
  animation: letters-loading 4s infinite;
  color: var(--header);
  content: attr(data-text-preloader);
  left: 0;
  opacity: 0;
  font-family: "Manrope", sans-serif;
  position: absolute;
  top: -3px;
  transform: rotateY(-90deg);
}
.preloader p {
  font-size: 15px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 8px;
  color: var(--theme);
}
.preloader .loader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-size: 0;
  z-index: 1;
  pointer-events: none;
}
.preloader .loader .row {
  height: 100%;
}
.preloader .loader .loader-section {
  padding: 0px;
}
.preloader .loader .loader-section .bg {
  background-color: var(--bg);
  height: 100%;
  left: 0;
  width: 100%;
  transition: all 800ms cubic-bezier(0.77, 0, 0.175, 1);
}
.preloader.loaded .animation-preloader {
  opacity: 0;
  transition: 0.2s ease-out;
}
.preloader.loaded .loader-section .bg {
  width: 0;
  transition: 0.2s 0.2s allcubic-bezier(0.1, 0.1, 0.1, 1);
}

.search-wrap {
  width: 100%;
  height: 100%;
  overflow: hidden;
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999999;
  background-color: rgba(255, 255, 255, 0.9);
}
.search-wrap .search-inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.search-wrap .search-cell {
  position: absolute;
  top: 50%;
  width: 100%;
  transform: translateY(-50%);
}
.search-wrap .search-field-holder {
  width: 50%;
  margin: auto;
  position: relative;
  animation: slideInUp 0.2s;
}

@media only screen and (min-width: 768px) and (max-width: 991px) {
  .search-wrap .search-field-holder {
    width: 70%;
  }
}
@media (max-width: 575px) {
  .search-wrap .search-field-holder {
    width: 80%;
  }
}
.search-wrap .main-search-input {
  width: 100%;
  height: 70px;
  border: 0;
  padding: 0 50px;
  text-transform: capitalize;
  background: transparent;
  font-size: 25px;
  color: var(--theme);
  border-bottom: 2px solid var(--theme);
  text-align: center;
  letter-spacing: 2px;
}

@media (max-width: 575px) {
  .search-wrap .main-search-input {
    height: 50px;
    padding: 0 0;
    line-height: 50px;
    font-size: 18px;
  }
}
.form-control{border-radius:6px;}
.search-wrap input.form-control,
.search-wrap input.form-control:focus {
  background-color: var(--theme);
}

input.main-search-input::placeholder {
  color: var(--theme);
  opacity: 1;
  font-size: 25px;
}

@media (max-width: 575px) {
  input.main-search-input::placeholder {
    font-size: 18px;
  }
}
.search-close {
  position: absolute;
  top: 50px;
  right: 50px;
  font-size: 30px;
  color: var(--theme);
  cursor: pointer;
}

.mouse-cursor {
  position: fixed;
  left: 0;
  top: 0;
  pointer-events: none;
  border-radius: 50%;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  visibility: hidden;
}

.cursor-inner {
  width: 6px;
  height: 6px;
  z-index: 10000001;
  background-color: var(--theme);
  -webkit-transition: width 0.2s ease-in-out, height 0.2s ease-in-out, margin 0.2s ease-in-out, opacity 0.2s ease-in-out;
  -o-transition: width 0.2s ease-in-out, height 0.2s ease-in-out, margin 0.2s ease-in-out, opacity 0.2s ease-in-out;
  transition: width 0.2s ease-in-out, height 0.2s ease-in-out, margin 0.2s ease-in-out, opacity 0.2s ease-in-out;
}

.cursor-inner.cursor-hover {
  margin-left: -35px;
  margin-top: -35px;
  width: 70px;
  height: 70px;
  background-color: var(--theme);
  opacity: 0.3;
}

.cursor-outer {
  margin-left: -12px;
  margin-top: -12px;
  width: 30px;
  height: 30px;
  border: 1px solid var(--theme);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  z-index: 10000000;
  opacity: 0.5;
  -webkit-transition: all 0.08s ease-out;
  -o-transition: all 0.08s ease-out;
  transition: all 0.08s ease-out;
}

.cursor-outer.cursor-hover {
  opacity: 0;
}

.back-to-top {
  border-radius: 50%;
  background-color: var(--theme);
  width: 50px;
  height: 50px;
  line-height: 50px;
  color: var(--white);
  font-size: 18px;
  position: fixed;
  display: inline-block;
  z-index: 999;
  right: 30px;
  bottom: 30px;
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
}
.back-to-top:hover {
  background-color: var(--header);
  color: var(--white);
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translate(0);
}

.section-title {
  position: relative;
}
.section-title h2{font-size:30px}
@media (max-width: 767px) {
  .section-title h2 {
    font-size: 22px;
  }
}
@media (max-width: 575px) {
  .section-title h2 {
    font-size: 20px;
  }
}
.section-title .sub-title {
  font-size: 18px;
  font-weight: 400;
  margin-bottom: 10px;
  text-transform: capitalize;
}
@media (max-width: 767px) {
  .section-title {
    margin-bottom: 0;
  }
  .section-title .sub-title {
    font-size: 16px;
  }
}
@media (max-width: 575px) {
  .section-title .sub-title {
    font-size: 15px;
  }
}

/* Titolo + bottone "vedi tutti" (_carousel-highlight-section.php e la sezione Popular
   Destination di index.php): restano SEMPRE affiancati, anche su mobile — niente più
   flex-wrap che li faceva impilare (bottone sotto al titolo) sotto i 991px. Il titolo si
   restringe invece (vedi h2 responsive sopra) e, se serve, va a capo su due righe DENTRO
   la propria colonna (min-width:0 sotto sblocca lo shrink flex, altrimenti un flex item
   di default non si stringe sotto il proprio min-content), mentre il bottone mantiene
   sempre la sua dimensione (flex-shrink:0) e resta sulla stessa riga. */
.section-title-area {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  position: relative;
}
.section-title-area .section-title {
  min-width: 0;
  flex: 1 1 auto;
}
.section-title-area .theme-btn {
  flex-shrink: 0;
}
.section-title-area .nav {
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-title-area .nav .nav-item .nav-link {
  background: var(--white);
  box-shadow: 0px 4px 30px 0px rgba(0, 0, 0, 0.1);
  font-weight: 400;
  color: var(--header);
  font-family: "Manrope", sans-serif;
  padding: 12px 30px;
  border-radius: 5px;
  line-height: 1;
}
.section-title-area .nav .nav-item .nav-link.active {
  background-color: var(--theme);
  color: var(--white);
}
/* Sotto 767px, se la sezione non ha il bottone "vedi tutti" (es. carosello Categorie
   esperienze in experiences-overview.php, Destinazioni in visit-overview.php: qui
   viewAllUrl è null, si è già sulla pagina "vedi tutti" di quella tassonomia) il titolo
   non ha più motivo di restare a sinistra per lasciare spazio a un bottone che non c'è —
   centrato, come le altre sezioni "solo titolo" del sito. :not(:has(.theme-btn)) invece
   di una classe dedicata: la presenza/assenza del bottone nel markup (_carousel-
   highlight-section.php, condizionata su $viewAllUrl) è già il segnale, niente doppia
   fonte di verità da tenere sincronizzata. */
@media (max-width: 767px) {
  .section-title-area:not(:has(.theme-btn)) {
    justify-content: center;
  }
  .section-title-area:not(:has(.theme-btn)) .section-title {
    flex: 0 1 auto;
    text-align: center;
  }
}

.center {
  text-align: center;
  margin: 0 auto;
}

.footer-bg {
  background-color: var(--white);
  border-top: 1px solid var(--border);
}

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

.section-bg-2 {
  background-color: var(--theme-2);
}

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

.section-padding {
  padding: 80px 0;
}
@media (max-width: 1199px) {
  .section-padding {
    padding: 100px 0;
  }
}
@media (max-width: 991px) {
  .section-padding {
    padding: 80px 0;
  }
}
@media (max-width: 767px) {
  .section-padding {
    padding: 60px 0;
  }
}
@media (max-width: 575px) {
  .section-padding {
    padding: 50px 0;
  }
}

.team-card-item {
  margin-top: 30px;
}
.team-card-item .team-image img {
  width: 100%;
  height: 100%;
  border-radius: 16px;
}
.team-card-item .team-content {
  padding: 30px 25px;
  background-color: var(--white);
  box-shadow: 0px 4px 25px rgba(56, 75, 255, 0.08);
  margin: -68px 15px 0px;
  position: relative;
  z-index: 9;
  border-radius: 16px;
}
@media (max-width: 1399px) {
  .team-card-item .team-content {
    padding: 30px 22px;
  }
}
@media (max-width: 1399px) {
  .team-card-item .team-content h4 {
    font-size: 20px;
  }
}
.team-card-item .team-content h4 a:hover {
  color: var(--theme);
}
.team-card-item .team-content p {
  color: var(--text);
}
.team-card-item .team-content .social-profile {
  position: absolute;
  right: 24px;
  bottom: 95px;
  content: "";
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  z-index: 2;
  display: inline-block;
  overflow: hidden;
  cursor: pointer;
}
.team-card-item .team-content .social-profile ul {
  transform: translateY(100px);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: -1;
}
.team-card-item .team-content .social-profile ul li a {
  width: 36px;
  height: 36px;
  line-height: 36px;
  border-radius: 50px;
  text-align: center;
  display: block;
  background: var(--white);
  color: var(--theme);
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  text-align: center;
  margin: 0 auto;
  font-size: 16px;
  margin-bottom: 5px;
}
.team-card-item .team-content .social-profile ul li a:hover {
  color: var(--white);
  background-color: var(--theme);
}
.team-card-item .team-content .social-profile .plus-btn {
  z-index: 9;
  cursor: pointer;
  width: 36px;
  height: 36px;
  line-height: 36px;
  border-radius: 50px;
  text-align: center;
  display: inline-block;
  background: var(--theme);
  color: var(--white);
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  font-size: 16px;
}
.team-card-item .team-content .social-profile:hover ul {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.team-details-wrapper .team-author-items {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 30px;
  border: 1px solid var(--border);
  border-radius: 12px;
  position: relative;
}
@media (max-width: 1199px) {
  .team-details-wrapper .team-author-items {
    flex-wrap: wrap;
    gap: 20px;
    justify-content: center;
    text-align: center;
  }
}
.team-details-wrapper .team-author-items .shape {
  position: absolute;
  bottom: 0;
  right: 0;
}
@media (max-width: 1199px) {
  .team-details-wrapper .team-author-items .shape {
    display: none;
  }
}
.team-details-wrapper .team-author-items .thumb {
  max-width: 370px;
}
.team-details-wrapper .team-author-items .thumb img {
  width: 100%;
  height: 100%;
  border-radius: 8px;
}
.team-details-wrapper .team-author-items .content {
  max-width: 700px;
}
.team-details-wrapper .team-author-items .content h2 {
  font-size: 30px;
  margin-bottom: 5px;
}
@media (max-width: 575px) {
  .team-details-wrapper .team-author-items .content h2 {
    font-size: 26px;
  }
}
.team-details-wrapper .team-author-items .content span {
  margin-bottom: 10px;
  display: inline-block;
}
.team-details-wrapper .team-author-items .content ul {
  margin-top: 20px;
  display: flex;
  align-items: center;
  gap: 50px;
  border-top: 1px solid var(--border);
  padding: 20px 0;
}
@media (max-width: 1199px) {
  .team-details-wrapper .team-author-items .content ul {
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 20px;
    margin-top: 20px;
    justify-content: center;
  }
}
.team-details-wrapper .team-author-items .content ul li {
  color: var(--header);
}
.team-details-wrapper .team-author-items .content ul li span {
  font-weight: 500;
  color: var(--theme);
}
.team-details-wrapper .team-author-items .content ul li i {
  margin-right: 5px;
}
.team-details-wrapper .team-author-items .content ul li .color-star {
  color: var(--theme);
}
.team-details-wrapper .team-author-items .content .social-icon {
  gap: 15px;
  position: relative;
  z-index: 9;
}
.team-details-wrapper .team-author-items .content .social-icon a {
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  font-size: 16px;
  display: block;
  color: var(--theme);
  transition: all 0.2s ease-in-out;
  text-align: center;
  background-color: transparent;
  border: 1px solid var(--theme);
}
.team-details-wrapper .team-author-items .content .social-icon a:hover {
  background-color: var(--theme);
  color: var(--white);
  border: 1px solid transparent;
}
.team-details-wrapper .details-info-items {
  padding: 70px 0;
  border-bottom: 1px solid var(--border);
}
@media (max-width: 767px) {
  .team-details-wrapper .details-info-items {
    padding: 50px 0;
  }
}
@media (max-width: 575px) {
  .team-details-wrapper .details-info-items {
    padding: 40px 0;
  }
}
.team-details-wrapper .details-info-items .info-content h2 {
  font-size: 30px;
  margin-bottom: 15px;
}
.team-details-wrapper .details-info-items .progress-wrap {
  margin-left: 30px;
}
@media (max-width: 991px) {
  .team-details-wrapper .details-info-items .progress-wrap {
    margin-left: 0;
  }
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items {
  width: 100%;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items:not(:last-child) {
  margin-bottom: 20px;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .pro-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .pro-head .title {
  font-size: 16px;
  font-weight: 600;
  color: var(--header);
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .pro-head .point {
  font-size: 16px;
  color: var(--header);
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .progress {
  background: var(--bg);
  justify-content: flex-start;
  border-radius: 0px;
  align-items: center;
  position: relative;
  display: flex;
  height: 10px;
  width: 100%;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .progress-value {
  animation: load 3s normal forwards;
  border-radius: 0;
  background: var(--theme);
  height: 10px;
  width: 0;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .style-two {
  animation: load2 3s normal forwards;
}
.team-details-wrapper .details-info-items .progress-wrap .pro-items .style-three {
  animation: load3 3s normal forwards;
}
@keyframes load {
  0% {
    width: 0;
  }
  100% {
    width: 90%;
  }
}
@keyframes load2 {
  0% {
    width: 0;
  }
  100% {
    width: 70%;
  }
}
@keyframes load3 {
  0% {
    width: 0;
  }
  100% {
    width: 55%;
  }
}

.team-wrapper .team-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 50px;
}
@media (max-width: 1199px) {
  .team-wrapper .team-wrap {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.team-wrapper .team-wrap h2 {
  font-size: 40px;
}
@media (max-width: 767px) {
  .team-wrapper .team-wrap h2 {
    font-size: 34px;
  }
}
@media (max-width: 575px) {
  .team-wrapper .team-wrap h2 {
    font-size: 28px;
  }
}
.team-wrapper .team-wrap .array-button {
  display: flex;
  align-items: center;
  gap: 10px;
}
.team-wrapper .team-wrap .array-button .array-prev, .team-wrapper .team-wrap .array-button .array-next {
  width: 56px;
  height: 56px;
  border-radius: 50px;
  line-height: 56px;
  text-align: center;
  transition: all 0.2s ease-in-out;
}
.team-wrapper .team-wrap .array-button .array-prev {
  background-color: var(--white);
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
}
.team-wrapper .team-wrap .array-button .array-prev:hover {
  background-color: var(--black);
  color: var(--white);
}
.team-wrapper .team-wrap .array-button .array-next {
  background: var(--theme);
  color: var(--white);
}
.team-wrapper .team-wrap .array-button .array-next:hover {
  background-color: var(--header);
}
.team-wrapper .team-card-items-2 {
  margin-bottom: 30px;
}
.team-wrapper .team-card-items-2 .team-image img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
}
.team-wrapper .team-card-items-2 .team-content {
  border-radius: 0px 10px 10px 10px;
  background: var(--white);
  padding: 30px 60px;
  box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.06);
  text-align: center;
  margin: -80px 0px 0px;
  position: relative;
  margin-right: 30px;
  transition: all 0.2s ease-in-out;
  z-index: 1;
}
.team-wrapper .team-card-items-2 .team-content::before {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: var(--theme);
  opacity: 0;
  visibility: hidden;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  transition: all 0.2s ease-in-out;
  border-radius: 0px 10px 10px 10px;
  z-index: -1;
}
@media (max-width: 767px) {
  .team-wrapper .team-card-items-2 .team-content {
    padding: 30px 20px;
  }
}
@media (max-width: 1199px) {
  .team-wrapper .team-card-items-2 .team-content h4 {
    font-size: 20px;
  }
}
.team-wrapper .team-card-items-2 .team-content .social-icon {
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
  z-index: 9;
  margin-top: 24px;
  justify-content: center;
}
@media (max-width: 575px) {
  .team-wrapper .team-card-items-2 .team-content .social-icon {
    margin-top: 10px;
  }
}
.team-wrapper .team-card-items-2 .team-content .social-icon a {
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 50%;
  text-align: center;
  font-size: 16px;
  display: block;
  color: var(--theme);
  transition: all 0.2s ease-in-out;
  text-align: center;
  background-color: var(--white);
  filter: drop-shadow(0px 4px 25px rgba(19, 76, 179, 0.15));
}
.team-wrapper .team-card-items-2:hover .team-content h4 a {
  color: var(--white);
}
.team-wrapper .team-card-items-2:hover .team-content p {
  color: var(--white);
}
.team-wrapper .team-card-items-2:hover .team-content:before {
  width: 100%;
  opacity: 1;
  visibility: visible;
}

.team-section-2 {
  margin-bottom: -30px;
}

.team-section {
  position: relative;
}
.team-section .jip-shape {
  position: absolute;
  right: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .team-section .jip-shape {
    display: none;
  }
}

.testimonial-wrapper {
  position: relative;
}
.testimonial-wrapper .testimonial-card-items {
  padding: 50px 30px;
  border-radius: 12px;
  border: 1px solid #ebebeb !important;
  margin-top: 30px;
}
.testimonial-wrapper .testimonial-card-items .star {
  display: inline-block;
  margin-bottom: 20px;
}
.testimonial-wrapper .testimonial-card-items .star i {
  color: rgb(255, 163, 26);
}
.testimonial-wrapper .testimonial-card-items p {
  font-size: 18px;
  font-weight: 400;
  color: var(--header);
}
.testimonial-wrapper .testimonial-card-items .client-info-items {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 40px;
}
.testimonial-wrapper .testimonial-card-items .client-info-items .client-info {
  display: flex;
  align-items: center;
  gap: 15px;
}
@media (max-width: 1199px) {
  .testimonial-wrapper .testimonial-card-items .client-info-items .client-info {
    flex-wrap: wrap;
  }
}
.testimonial-wrapper .testimonial-card-items .client-info-items .client-info .text h4 {
  font-size: 20px;
  text-transform: capitalize;
  margin-bottom: 5px;
}
@media (max-width: 1399px) {
  .testimonial-wrapper .testimonial-card-items .client-info-items .client-info .text h4 {
    font-size: 18px;
  }
}
.testimonial-wrapper .testimonial-card-items .client-info-items .client-info .text p {
  text-transform: capitalize;
}
.testimonial-wrapper .testimonial-card-items.style-2 {
  border: none;
}
.testimonial-wrapper .array-button {
  display: flex;
  align-items: center;
  gap: 500px;
  margin-top: 60px;
  position: relative;
  justify-content: center;
}
.testimonial-wrapper .array-button::before {
  position: absolute;
  top: 14px;
  content: "";
  width: 528px;
  height: 1px;
  background: rgba(10, 31, 36, 0.2);
}
.testimonial-wrapper .array-button .array-prevs, .testimonial-wrapper .array-button .array-nexts {
  color: var(--header);
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  margin-left: 10px;
  margin-right: 45px;
  transition: all 0.2s ease-in-out;
}
.testimonial-wrapper .array-button .array-prevs:hover, .testimonial-wrapper .array-button .array-nexts:hover {
  color: var(--theme);
}
.testimonial-wrapper .array-button .array-nexts {
  color: var(--theme);
  transition: all 0.2s ease-in-out;
}
.testimonial-wrapper .array-button .array-nexts:hover {
  color: var(--header);
}

.testimonial-wrapper-2 {
  position: relative;
}
.testimonial-wrapper-2 .testimonial-image {
  max-width: 450px;
}
@media (max-width: 1199px) {
  .testimonial-wrapper-2 .testimonial-image {
    max-width: initial;
  }
}
.testimonial-wrapper-2 .testimonial-image img {
  width: 100%;
  height: 100%;
  border-radius: 20px;
}
.testimonial-wrapper-2 .testimonial-content {
  margin-left: -30px;
}
@media (max-width: 1399px) {
  .testimonial-wrapper-2 .testimonial-content {
    margin-left: 0;
  }
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items {
  background-color: var(--white);
  padding: 60px;
  border-radius: 15px;
  margin-top: 20px;
}
@media (max-width: 1399px) {
  .testimonial-wrapper-2 .testimonial-content .testimonial-card-items {
    margin-top: 0;
  }
}
@media (max-width: 1199px) {
  .testimonial-wrapper-2 .testimonial-content .testimonial-card-items {
    padding: 40px;
    margin-top: 20px;
  }
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .star-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 30px;
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .star-item .star i {
  color: rgb(241, 101, 34);
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .star-item .star span {
  font-size: 12px;
  font-weight: 400;
  padding-left: 16px;
  color: var(--header);
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .client-info-items {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 28px;
}
@media (max-width: 1199px) {
  .testimonial-wrapper-2 .testimonial-content .testimonial-card-items .client-info-items {
    flex-wrap: wrap;
  }
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .client-info-items .info-text h6 {
  color: #1D3638;
  margin-bottom: 5px;
}
.testimonial-wrapper-2 .testimonial-content .testimonial-card-items .client-info-items h5 {
  font-weight: 500;
  color: var(--text);
}
.testimonial-wrapper-2 .testimonial-content .testimonial-slider2 {
  margin-right: 40px;
}
@media (max-width: 1199px) {
  .testimonial-wrapper-2 .testimonial-content .testimonial-slider2 {
    margin-right: 0;
  }
}
.testimonial-wrapper-2 .array-button {
  display: grid;
  gap: 10px;
  position: absolute;
  top: 50%;
  right: -4%;
}
@media (max-width: 1199px) {
  .testimonial-wrapper-2 .array-button {
    display: none;
  }
}
.testimonial-wrapper-2 .array-button .array-prev, .testimonial-wrapper-2 .array-button .array-next {
  width: 56px;
  height: 56px;
  border-radius: 50px;
  line-height: 56px;
  text-align: center;
  transition: all 0.2s ease-in-out;
}
.testimonial-wrapper-2 .array-button .array-prev {
  background-color: var(--theme);
  color: var(--white);
}
.testimonial-wrapper-2 .array-button .array-prev:hover {
  background-color: var(--header);
}
.testimonial-wrapper-2 .array-button .array-next {
  background: rgba(2, 165, 206, 0.1);
}
.testimonial-wrapper-2 .array-button .array-next:hover {
  color: var(--white);
  background-color: var(--header);
}

.testimonial-wrapper-3 {
  position: relative;
}
.testimonial-wrapper-3 .testimonial-image img {
  width: 100%;
  height: 100%;
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items {
  padding: 40px 30px;
  border-radius: 16px;
  background-color: var(--white);
  border: 1px solid #DDE0E9;
  margin-top: 30px;
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items .client-info-items {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 30px;
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items .client-info-items .client-info {
  display: flex;
  align-items: center;
  gap: 12px;
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items .client-info-items .client-info .content h4 {
  font-size: 20px;
  color: var(--theme-2);
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items .client-info-items .client-info .content p {
  color: #504E4E;
}
.testimonial-wrapper-3 .testimonial-content .testimonial-card-items p {
  color: #504E4E;
}
.testimonial-wrapper-3 .array-button {
  display: grid;
  gap: 10px;
  position: absolute;
  top: 50%;
  right: -8%;
}
@media (max-width: 1399px) {
  .testimonial-wrapper-3 .array-button {
    display: none;
  }
}
.testimonial-wrapper-3 .array-button .array-prev, .testimonial-wrapper-3 .array-button .array-next {
  width: 56px;
  height: 56px;
  border-radius: 50px;
  line-height: 56px;
  text-align: center;
  transition: all 0.2s ease-in-out;
}
.testimonial-wrapper-3 .array-button .array-prev {
  background-color: var(--theme);
  color: var(--white);
}
.testimonial-wrapper-3 .array-button .array-prev:hover {
  background-color: var(--header);
}
.testimonial-wrapper-3 .array-button .array-next {
  background: rgba(2, 165, 206, 0.1);
}
.testimonial-wrapper-3 .array-button .array-next:hover {
  background-color: var(--header);
  color: var(--white);
}

.testimonial-section {
  position: relative;
}
.testimonial-section .bag-shape {
  position: absolute;
  right: 0;
  bottom: 0;
}
@media (max-width: 1199px) {
  .testimonial-section .bag-shape {
    display: none;
  }
}

.brand-icon {
  width: 1em;
  height: 1em;
  fill: currentColor;
  display: inline-block;
  vertical-align: middle;
}

/* =============================================
   FLAG IMAGE — circular
   ============================================= */
.lang-flag {
  border-radius: 50%;
  object-fit: cover;
  display: inline-block;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border:2px solid var(--white);
}
.lang-list .lang-flag {
  width: 36px;
  height: 36px;
}

/* =============================================
   LANGUAGE TRIGGER BUTTON
   ============================================= */
.nav__lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 100px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  background: none;
  color: var(--white);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.nav__lang-btn:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}
.site-header.is-sticky .nav__lang-btn {
  border-color: var(--border);
  color: var(--header);
}
.site-header.is-sticky .nav__lang-btn:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}

/* =============================================
   LANGUAGE MODAL
   ============================================= */
.lang-modal__content {
  border: none;
  border-radius: 12px;
  box-shadow: var(--box-shadow);
}
.lang-modal__header {
  border-bottom: 1px solid var(--border);
  padding: 18px 20px 14px;
}
.lang-modal__title {
  font-size: 16px;
  font-weight: 700;
  color: var(--header);
  margin: 0;
}
.lang-modal__body {
  padding: 16px 20px 20px;
}

.lang-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lang-option {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 8px;
  border: 1px solid var(--border);
  color: var(--header);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.lang-option .lang-flag {
  width: 36px;
  height: 36px;
  font-size: 36px;
}
.lang-option__name {
  flex: 1;
}
.lang-option:hover {
  border-color: var(--theme);
  color: var(--theme);
  background-color: rgba(28, 168, 203, 0.05);
}

/* Voce corrente — aspetto "selezionato", non è un link */
.lang-option--current {
  border-color: var(--theme);
  background-color: rgba(28, 168, 203, 0.08);
  color: var(--theme);
  cursor: default;
}
.lang-option__check {
  color: var(--theme);
  font-size: 20px;
  flex-shrink: 0;
}

/* =============================================
   PROMO POPUP MODAL — newsletter/sconto (#popup)
   ============================================= */
.promo-popup__content {
  border: none;
  border-radius: 20px;
  box-shadow: var(--box-shadow);
  background:#fff linear-gradient(to bottom, rgba(255, 255, 255, .0) 20%, rgba(53, 146, 200, 0.16) 100%)
}
.promo-popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 1;
}
.promo-popup__body {
  padding: 50px 60px;
  text-align: center;
}
.promo-popup__title {
  margin: 0 0 2rem;
  color: var(--header);
  font-weight: 800;
  font-size:25px;
}
.promo-popup__title strong{
  color: var(--white);
  display:inline-block;
  padding:0 8px;
  background:var(--theme-2);
}
.promo-popup__text {
  color: var(--black);
  margin-bottom: 1.5rem;
}
.promo-popup__form .input-group {
  text-align: left;
}
#promo-popup-modal .alert{margin-bottom:0;border-radius:0 0 20px 20px;}

/* =============================================
   SITE HEADER — nuova struttura BEM
   ============================================= */

/* Header shell — sticky via CSS, sfondo sempre bianco */
.site-header {
  position: sticky;
  top: 0;
  z-index: 999;
  background: var(--white);
  border-bottom:1px solid var(--border);
}

/* Inner flex container */
.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 150px;
}
@media (max-width: 1600px) {
  .site-header__inner {
    padding: 0 50px;
  }
}
@media (max-width: 1399px) {
  .site-header__inner {
    padding: 0 40px;
  }
}
@media (max-width: 1199px) {
  .site-header__inner {
    padding: 0 30px;
  }
}
@media (max-width: 575px) {
  .site-header__inner {
    padding: 0 20px;
  }
}

/* Logo — dark su sfondo bianco */
.site-header__logo {
  flex-shrink: 0;
  line-height: 0;
  display: inline-flex;
  align-items: center;
}
.logo--light {
  display: none;
}
@media (max-width: 768px) {
  /* logo-small.svg è quadrato (viewBox 148.7x148.7): senza questo, l'<img> renderizzerebbe
     comunque nel box 230x70.27 degli attributi width/height (per il logo con scritta,
     riservato per il CLS) — il simbolo verrebbe stirato invece di restare un quadrato
     pulito. Altezza pari alla precedente (70.27px) per non alterare l'altezza header. */
  .site-header__logo img {
    width: 70px;
    height: 70px;
  }
    .attraction-detail{padding-bottom:0px!important}

}

/* Desktop nav — nascosta su mobile */
.site-header__nav {
  flex: 1;
  display: flex;
  justify-content: center;
}
@media (max-width: 1199px) {
  .site-header__nav {
    display: none;
  }
}

.nav__list {
  display: flex;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav__item {
  position: relative;
}
.nav__item:not(:last-child) {
  margin-inline-end: 30px;
}
@media (max-width: 1399px) {
  .nav__item:not(:last-child) {
    margin-inline-end: 28px;
  }
}

/* Nav link — shared styles per <a> e <button> */
.nav__link {
  display: inline-flex;
  align-items: center;
  font-size: 15px;
  font-weight: 400;
  color: var(--header);
  padding: 27px 0;
  text-transform: capitalize;
  transition: color 0.2s ease;
  white-space: nowrap;
  font-family: inherit;
}
button.nav__link {
  background: none;
  border: none;
  cursor: pointer;
}
.nav__link:hover,
.nav__item.is-active > .nav__link {
  color: var(--theme);
}

/* Caret inline nel nav link */
.nav__caret {
  font-size: 18px;
  vertical-align: middle;
  transition: transform 0.2s ease;
  margin-left: 2px;
}
.nav__link[aria-expanded="true"] .nav__caret {
  transform: rotate(180deg);
}

/* Bootstrap dropdown — override stile template */
.site-header__nav .dropdown-toggle::after {
  display: none;
}
.site-header__nav .dropdown-menu {
  border: none;
  border-top: 0px solid var(--theme);
  border-radius: 20px;
  box-shadow: rgba(99, 99, 99, 0.33) 0px 2px 8px 0px;
  padding: 20px 0;
  min-width: 240px;
  margin-top: -20px!important;
}
.site-header__nav .dropdown-item {
  font-size: 15px;
  font-weight: 400;
  color: var(--header);
  padding: 0 32px;
  line-height: 38px;
  white-space: nowrap;
  background: none;
  transition: color 0.2s ease;
}
.site-header__nav .dropdown-item:hover,
.site-header__nav .dropdown-item:focus {
  color: var(--theme);
  background: none;
  text-decoration: underline;
}
.site-header__nav .dropdown-divider {
  border-color: var(--border);
  margin: 4px 0;
}

/* Header actions row */
.site-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

/* Language button (modal trigger) */
.nav__lang-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 100px;
  border: 1px solid var(--border);
  background: none;
  color: var(--header);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.nav__lang-btn:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}

/* Icon buttons (placeholders) */
.site-header__icon-btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--border);
  color: var(--header);
  background: none;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  flex-shrink: 0;
  line-height: 0;
    font-size: 22px;
}
.site-header__icon-btn:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}

/* Dropdown account (deltabooking-menu-restricted-area-widget.php): niente caret di
   Bootstrap sul bottone — è solo un'icona rotonda, la freccina ci stava male. */
.db-header-account-dropdown .dropdown-toggle::after {
  display: none;
}
/* Voci più alte su mobile per un tap comodo, invece del padding compatto di default
   pensato per mouse. */
@media (max-width: 1199px) {
  .db-header-account-dropdown .dropdown-item {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
  }
}

/* Hamburger — mobile only */
.site-header__hamburger {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  color: var(--header);
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  flex-shrink: 0;
  line-height: 0;
}
.site-header__hamburger:hover {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}
@media (max-width: 1199px) {
  .site-header__hamburger {
    display: inline-flex;
  }
}

/* Selettore lingua nell'header: su mobile fuori posto (riga icone già affollata con
   account + carrello + hamburger) — nascosto lì, resta raggiungibile dalla sezione
   lingua già presente nell'offcanvas (.nav__mobile-lang). Scoped a .site-header__actions
   per non nascondere anche l'istanza nel footer, che condivide la stessa classe. */
@media (max-width: 1199px) {
  .site-header__actions .nav__lang-btn {
    display: none;
  }
}

/* Top bar — Material Symbols */
.header-top-wrapper-new .top-right li .material-symbols-outlined {
  font-size: 16px;
  margin-right: 8px;
  vertical-align: middle;
  color: var(--black);
}
.header-top-wrapper-new .social-icon a {
  color: var(--header);
  transition: color 0.2s ease;
}
.header-top-wrapper-new .social-icon a:hover {
  color: var(--theme);
}

/* =============================================
   MOBILE NAV — offcanvas content
   ============================================= */

#mobile-nav {
  width: min(400px, 90vw);
}

.nav__mobile-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}

.nav__mobile-item {
  border-bottom: 1px solid var(--border);
}

.nav__mobile-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav__mobile-row > a {
  display: block;
  flex: 1;
  padding: 14px 0;
  font-size: 16px;
  font-weight: 500;
  color: var(--header);
  text-transform: capitalize;
  transition: color 0.2s ease;
}
.nav__mobile-row > a:hover,
.nav__mobile-item.is-active .nav__mobile-row > a {
  color: var(--theme);
}

.nav__mobile-toggle {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--header);
  padding: 8px;
  line-height: 0;
  transition: color 0.2s ease, transform 0.2s ease;
}
.nav__mobile-toggle[aria-expanded="true"] {
  transform: rotate(180deg);
  color: var(--theme);
}

.nav__mobile-sub {
  list-style: none;
  padding: 0 0 8px 16px;
  margin: 0;
}
.nav__mobile-sub li a {
  display: block;
  padding: 8px 0;
  font-size: 15px;
  color: var(--text);
  border-bottom: 1px solid var(--border);
  transition: color 0.2s ease;
}
.nav__mobile-sub li:last-child a {
  border-bottom: none;
}
.nav__mobile-sub li a:hover {
  color: var(--theme);
}

.nav__mobile-lang {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
/* Bandierine circolari (stesso stile/asset di .lang-flag già usato nel bottone lingua
   desktop e nella modale) invece delle sole sigle testuali — lo stato "lingua attuale"
   passa quindi da colore/peso del testo a un anello attorno alla bandiera. */
.nav__mobile-lang a {
  display: inline-flex;
  padding: 2px;
  border-radius: 50%;
  transition: box-shadow 0.2s ease;
}
.nav__mobile-lang a[aria-current="true"] {
  box-shadow: 0 0 0 2px var(--theme);
}
.nav__mobile-lang a:not([aria-current="true"]):hover {
  box-shadow: 0 0 0 2px var(--border);
}

.nav__mobile-contact {
  margin-bottom: 20px;
}
.nav__mobile-contact p {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  color: var(--text);
  margin-bottom: 10px;
}
.nav__mobile-contact p a {
  color: var(--text);
  transition: color 0.2s ease;
}
.nav__mobile-contact p a:hover {
  color: var(--theme);
}
.nav__mobile-contact address {
  font-style: normal;
}
.nav__mobile-contact .material-symbols-outlined {
  color: var(--theme);
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}

.nav__mobile-social {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.nav__mobile-social a {
  width: 45px;
  height: 45px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--border);
  color: var(--text);
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.nav__mobile-social a:hover {
  background-color: var(--theme);
  border-color: var(--theme);
  color: var(--white);
}

/* -----------------------------------------------
   yt-bg — YouTube video di sfondo
----------------------------------------------- */
.yt-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  container-type: size;
}
.yt-bg__poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yt-bg > iframe {
  /* --_h: altezza minima per coprire il container (16:9) + 150px per lato
     per spingere fuori dal visible area il titolo e il logo YouTube */
  --_h: calc(max(100cqh, calc(100cqw * 9 / 16)) + 300px);
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  height: var(--_h);
  width: calc(var(--_h) * 16 / 9);
  pointer-events: none;
  opacity: 0;
}
.yt-bg__pause,
.hero__pause {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  cursor: pointer;
  -webkit-transition: background 0.2s ease, border-color 0.2s ease;
  transition: background 0.2s ease, border-color 0.2s ease;
}
.yt-bg__pause:hover,
.hero__pause:hover {
  background: rgba(0, 0, 0, 0.6);
  border-color: rgba(255, 255, 255, 0.8);
}
.yt-bg__pause:focus-visible,
.hero__pause:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.hero__slider:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -4px;
}
.hero__nav-prev,
.hero__nav-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(0, 0, 0, 0.3);
  color: #fff;
  cursor: pointer;
}
.hero__nav-prev { left: 1rem; }
.hero__nav-next { right: 1rem; }
.hero__nav-prev:hover,
.hero__nav-next:hover {
  background: rgba(0, 0, 0, 0.6);
  border-color: rgba(255, 255, 255, 0.8);
}
.hero__nav-prev:focus-visible,
.hero__nav-next:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.hero__nav-prev .material-symbols-outlined,
.hero__nav-next .material-symbols-outlined {
  font-size: 20px;
}
.yt-bg__pause .material-symbols-outlined,
.hero__pause .material-symbols-outlined {
  font-size: 20px;
}

/* overlay parametrico — opacità controllata da --yt-bg-overlay (passata via $ytBgOverlay) */
.yt-bg--overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, var(--yt-bg-overlay, 0.4));
  pointer-events: none;
  z-index: 1;
}

/* overlay gradiente scuro per testo leggibile sul video */
.hero-1 .yt-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 17, .4) 0%, rgba(11, 13, 17, .6) 30%, rgba(11, 13, 17, 0.9) 100%);
  pointer-events: none;
}

/* hero static background */
.hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  isolation: isolate;
}
.hero__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}
.hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* hero slider background */
.hero__slider {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.hero__slider .splide__track,
.hero__slider .splide__list,
.hero__slider .splide__slide {
  height: 100%;
}
.hero__slider .splide__slide {
  position: relative;
  isolation: isolate;
}
.hero__slider .splide__slide picture {
  display: block;
  width: 100%;
  height: 100%;
}
.hero__slider .splide__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* contenuto testuale delle slide (title, subtitle, CTA) */
.hero__slide-content {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2rem;
  z-index: 2;
  pointer-events: none;
}
.hero__slide-content a,
.hero__slide-content button {
  pointer-events: auto;
}
.hero__slide-subtitle,
.hero__slide-title {
  margin: 0;
}
/* Titolo/sottotitolo slide (_hero.php, resi come <p>): non avevano NESSUN font-size/peso
   proprio, restavano al default del tag <p> — bug reale, una didascalia sopra un'immagine
   hero deve leggersi come un titolo. Scala allineata a .hero-1 .hero-content h1/.sub-title
   qui sopra (stesso ruolo visivo, hero senza video di sfondo). */
.hero__slide-subtitle {
  margin-bottom: .25rem;
  font-size: 18px;
  color: var(--white);
}
.hero__slide-title {
  margin-bottom: .5rem;
  font-size: 40px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--white);
}
@media (max-width: 767px) {
  .hero__slide-title {
    font-size: 32px;
  }
}
@media (max-width: 575px) {
  .hero__slide-subtitle {
    font-size: 16px;
  }
  .hero__slide-title {
    font-size: 26px;
  }
}
.hero__slide-cta {
  -webkit-align-self: flex-start;
  align-self: flex-start;
  margin-top: .5rem;
}

/* nessuna transizione slide se l'utente ha ridotto il movimento */
@media (prefers-reduced-motion: reduce) {
  .hero__slider .splide__slide {
    transition: none !important;
  }
}

/* gradient overlay (design-specific .hero-1) */
.hero-1 .hero__bg::after,
.hero-1 .hero__slider .splide__slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 17, .4) 0%, rgba(11, 13, 17, .6) 30%, rgba(11, 13, 17, 0.9) 100%);
  pointer-events: none;
  z-index: 1;
}

/* ── flatpickr — rimozione freccia e allineamento gap (4px) ─── */
.flatpickr-calendar::before,
.flatpickr-calendar::after {
  display: none;
}
/* il calendario è appendTo dentro .content (position:relative);
   sovrascrive il top assoluto calcolato da JS con una coordinata relativa.
   .date-field-wrapper: stesso ruolo di .content ma per un campo data flatpickr fuori
   dalla booking-list-area della ricerca (es. form di richiesta informazioni) — vedi
   _date-range-field.php. Non si riusa .content da sola: quella classe è già usata altrove
   nel sito (footer, template email) per scopi non correlati. */
.booking-list-area .booking-list .content .flatpickr-calendar,
.date-field-wrapper .flatpickr-calendar {
  top: 100% !important;
  left: 0 !important;
  right: auto !important;
  margin-top: 2px;
  /* margine di sicurezza per lo scrollIntoView automatico in onOpen: senza
     questo il calendario finisce spesso a filo del bordo inferiore del
     viewport invece che con un po' di respiro sotto. */
  scroll-margin-bottom: 24px;
}
.booking-list-area .booking-list:not(:first-child) .content button:not(.fp-shortcut,.flatpickr-prev-month,.flatpickr-next-month)::before {
    width: 1px;
    height: 80%;
    background-color: var(--border);
    content: "";
    position: absolute;
    top: 10%;
    left: -10px;
    z-index: 1;
}
/* Anno a fianco del mese: visibile come testo, non modificabile via input.
   monthSelectorType:'static' mostra già solo span.cur-month; nascondiamo
   le frecce ↑↓ del numInputWrapper e rendiamo il campo non interattivo. */
.flatpickr-current-month .numInputWrapper .arrowUp,
.flatpickr-current-month .numInputWrapper .arrowDown {
  display: none;
}
.flatpickr-current-month .cur-year {
  pointer-events: none;
}
/* reset stili browser sui <button> prev/next mese */
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  font-size: inherit;
  font-family: inherit;
}
/* flatpickr mette display:none sui bottoni nav disabilitati (al limite min/maxDate).
   display:none rimuove il focus → browser sposta su body → X handler chiude il calendario.
   Override: teniamo i bottoni nel DOM con opacity:0 così il focus non si perde. */
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
  display: block !important;
  opacity: 0;
  pointer-events: none;
}
/* focus visibile sui pulsanti mese prev/next (navigazione tastiera) */
.flatpickr-months .flatpickr-prev-month:focus-visible,
.flatpickr-months .flatpickr-next-month:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
  border-radius: 3px;
}
/* ripristina outline sui giorni per navigazione tastiera (flatpickr annulla outline:0) */
.flatpickr-day:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: -2px;
}
/* ── flatpickr — scorciatoie data (Oggi/Domani/Weekend) ──────── */
.fp-shortcuts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 8px 10px 10px;
  border-top: 1px solid rgba(0, 0, 0, .08);
}
.fp-shortcuts .fp-shortcut {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 13px;
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  color: inherit;
}
.fp-shortcuts .fp-shortcut:hover {
  background: var(--black);
  color: #fff;
  border-color: var(--black);
}
.fp-shortcuts .fp-shortcut:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

/* ── booking form — box per ogni campo ───────────────────────── */
/* .date-field-wrapper: stesso ruolo di .content ma per un campo data flatpickr fuori
   dalla booking-list-area (vedi commento su .flatpickr-calendar sopra). */
.booking-list-area .booking-list .content,
.date-field-wrapper {
  min-width: 100%;
  cursor: pointer;
  position: relative;
  border-radius: 8px;
}
/* a desktop, il primo campo segue la curva sinistra del contenitore pill (raggio interno = 60px - 10px di padding) */
@media (min-width: 1200px) {
  .booking-list-area .booking-list:first-child .content {
    border-radius: 50px 8px 8px 50px;
  }
}

.booking-list-area .booking-list .content:has(.ms-dropdown__trigger:focus-visible),
.booking-list-area .booking-list .content.fp-kb-focus,
.date-field-wrapper:has(.ms-dropdown__trigger:focus-visible),
.date-field-wrapper.fp-kb-focus {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--theme);
}
/* sopprime outline default dai singoli campi — il focus è visibile sul box */
.booking-list-area .booking-list .content input[type="text"]:focus,
.booking-list-area .booking-list .content .ms-dropdown__trigger:focus-visible,
.date-field-wrapper input[type="text"]:focus {
  outline: none;
  box-shadow: none;
}
/* booking-field__trigger: layout flex come ms-dropdown__trigger, senza bordo */
.booking-list-area .booking-list .content .booking-field__trigger,
.date-field-wrapper .booking-field__trigger {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding: .5rem .75rem;
  cursor: pointer;
}
.booking-field__inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
  gap: 2px;
}
.booking-field__field-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text);
  line-height: 1;
  white-space: nowrap;
}
/* altInput flatpickr dentro il box */
.booking-list-area .booking-list .content input[type="text"],
.date-field-wrapper input[type="text"] {
  width: 100%;
  border: none;
  background: transparent;
  outline: none;
  padding: 0;
  font-size: 15px;
  font-family: inherit;
  color: var(--header);
  cursor: pointer;
  display: block;
  line-height: 1.867;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.booking-list-area .booking-list .content input[type="text"]::placeholder,
.date-field-wrapper input[type="text"]::placeholder {
  color: var(--text);
}
/* freccia campo data — flex sibling come ms-dropdown__arrow */
.booking-list-area .booking-list .content .booking-field__arrow,
.date-field-wrapper .booking-field__arrow {
  flex-shrink: 0;
  font-size: 20px;
  color: var(--text);
  pointer-events: none;
  line-height: 1;
  transition: transform .2s ease;
}
.booking-list-area .booking-list .content.is-open .booking-field__arrow,
.date-field-wrapper.is-open .booking-field__arrow {
  transform: rotate(180deg);
}
/* Bottone svuota selezione (_date-range-field.php): [hidden] nativo lo nasconde finché
   non c'è una data scelta, il JS in questo file lo mostra/nasconde a ogni cambio. */
.date-range-clear {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 50%;
  color: var(--text);
  cursor: pointer;
}
.date-range-clear .material-symbols-outlined {
  font-size: 16px;
  pointer-events: none;
}
.date-range-clear:hover,
.date-range-clear:focus-visible {
  background: var(--theme-light);
  color: var(--theme);
}
.date-range-clear:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 1px;
}
/* Il display:flex sopra (classe) vince altrimenti sull'[hidden] nativo dell'UA
   (specificità attributo troppo bassa) — va ripristinato esplicitamente qui. */
.date-range-clear[hidden] {
  display: none;
}
/* .date-field-wrapper standalone (fuori dalla pill della ricerca): bordo/sfondo propri,
   coerenti con gli altri campi fe() del form intorno. */
.date-field-wrapper {
  border: 1px solid var(--border);
  background: var(--white);
}
/* ms-dropdown dentro il box: trigger senza bordo, occupa l'intero box */
.booking-list-area .booking-list .content .ms-dropdown {
  position: static;
}
.booking-list-area .booking-list .content .ms-dropdown__trigger {
  width: 100%;
  border: none;
  background: transparent;
  border-radius: 8px;
  padding: .5rem .75rem;
  cursor: pointer;
  font-family: inherit;
}
.booking-list-area button[type="submit"]{padding:0;margin:0;width:60px;height:60px;min-width:60px;}
.booking-list-area button[type="submit"] span{font-size:25px}
.booking-list-area button[type="submit"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--theme);
}
/* Testo del bottone submit: nascosto di default (bottone-icona, vedi sopra). Reso
   visibile solo dentro .experience-search-bar sotto i 991px — vedi blocco EXPERIENCE
   SEARCH BAR più sotto — dove il bottone torna un .theme-btn normale con testo. */
.booking-list-area button[type="submit"] .search-submit-label {
  display: none;
  font-size: 16px;
}
/* ── ms-dropdown ──────────────────────────────────────────────── */
.ms-dropdown {
  position: relative;
}
.ms-dropdown__trigger {
  width: 100%;
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  justify-content: space-between;
  gap: .25rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: .625rem .75rem;
  font-size: 15px;
  font-family: inherit;
  color: var(--header);
  cursor: pointer;
  text-align: left;
}
.ms-dropdown__trigger:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.ms-dropdown__trigger[aria-expanded="true"] {
  border-color: var(--theme);
}
/* label + valore impilati verticalmente dentro il trigger (stile Airbnb) */
.ms-dropdown__inner {
  -webkit-box-flex: 1;
  flex: 1;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  align-items: flex-start;
  overflow: hidden;
  gap: 2px;
}
.ms-dropdown__field-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text);
  line-height: 1;
  white-space: nowrap;
}
.ms-dropdown__text {
  -webkit-box-flex: 1;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text);
}
/* quando .ms-dropdown__text è dentro .ms-dropdown__inner non serve flex: 1 (contesto colonna) */
.ms-dropdown__inner .ms-dropdown__text {
  -webkit-box-flex: 0;
  flex: none;
  width: 100%;
}
.ms-dropdown--has-value .ms-dropdown__text {
  color: var(--header);
}
.ms-dropdown__arrow {
  flex-shrink: 0;
  font-size: 20px;
  color: var(--text);
  transition: transform .2s ease;
}
.ms-dropdown__trigger[aria-expanded="true"] .ms-dropdown__arrow {
  transform: rotate(180deg);
}
.ms-dropdown__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 100;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--box-shadow);
  max-height: 220px;
  overflow-y: auto;
  /* margine di sicurezza per lo scrollIntoView automatico in open() (JS) */
  scroll-margin-bottom: 24px;
}
.ms-dropdown__fieldset {
  border: none;
  padding: .375rem 0;
  margin: 0;
  min-width: 0;
}
.ms-dropdown__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ms-dropdown__option {
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
  align-items: center;
  gap: .625rem;
  padding: .5rem 1rem;
  cursor: pointer;
  font-size: 15px;
  color: var(--text);
  transition: background .15s;
  margin: 0;
}
.ms-dropdown__option:hover {
  background: var(--theme-light);
  color:var(--black);
}
.ms-dropdown__option input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  accent-color: var(--theme);
  flex-shrink: 0;
  cursor: pointer;
  margin: 0;
}
.ms-dropdown__option input[type="checkbox"]:focus-visible,
.ms-dropdown__option input[type="radio"]:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.ms-dropdown--single .ms-dropdown__option input[type="radio"] {
  width: 1rem;
  height: 1rem;
  accent-color: var(--theme);
  flex-shrink: 0;
  cursor: pointer;
  margin: 0;
}
.ms-dropdown .ms-dropdown__option:has(input:checked),
.ms-dropdown .ms-dropdown__option:has(input:checked) {
  background: var(--theme-light);
  color: var(--black);
}

/* ── experience-card — card cliccabile per singola attrazione ─── */
.experience-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 35px;
  overflow: hidden;
}
.experience-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--border);
  overflow: hidden;
}
.experience-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.experience-card__badge {
  position: absolute;
  bottom: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  padding: 4px 10px;
  border-radius: 16px;
  line-height:1
}
.experience-card__badge .material-symbols-outlined {
  font-size: 18px;
  line-height:1;
    color: #f76481;
}
.experience-card__body {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: 1rem;
  flex: 1;
}
.experience-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  font-size: 13px;
  color: var(--text);
  justify-content: space-between;
  line-height: 1;
}
.experience-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}
.experience-card__meta-item .material-symbols-outlined {
  font-size: 16px;
}
.experience-card__meta-item--package {
  color: var(--black);
}
.experience-card__meta-item .material-symbols-outlined {
  font-size: 18px;
  color: var(--text);}
.experience-card__title {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
}
@media (max-width: 575px) {
  .experience-card__title {
    font-size: 16px;
  }
}
.experience-card__link {
  color: var(--header);
  text-decoration: none;
}
/* Stretched link: un solo <a> reale, area cliccabile estesa a tutta la card
   tramite ::after assoluto. Il bottone carrello (z-index:2) resta sopra e
   indipendentemente cliccabile senza essere annidato nel link. */
.experience-card__link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.experience-card__link:hover,
.experience-card__link:focus-visible {
  text-decoration: underline;
}
.experience-card__link:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.experience-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 100%;
}
.experience-card__tag {
  font-size: 12px;
  line-height: 1.4;
  color: var(--black);
  background: var(--theme-light);
  border-radius: 6px;
  padding: .15rem .5rem;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.experience-card__footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .5rem;
}
.experience-card__price {
  margin: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.experience-card__price-prefix {
  font-size: 11px;
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: .03em;
}
.experience-card__price-value {
  font-size: 18px;
  font-weight: 700;
  color: var(--header);
}
.experience-card__book-btn {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.experience-card__book-btn .material-symbols-outlined{font-size:20px}
.experience-card__book-btn:hover {
  background: var(--theme-2);
  color: #fff;
  border-color: var(--theme-2);
}
.experience-card__book-btn:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
/* Iframe di prenotazione (vedi public/js/deltabooking-listing-booking.js): blocca lo
   scroll della pagina sotto mentre è aperto. Globale perché il bottone "Prenota" compare
   ora su più pagine (categoria, macro esperienze/località, ricerca), non solo sul listing. */
.db-frame-open {
  overflow: hidden;
}

/* Sotto i 576px tutte le griglie di card del sito passano a una sola colonna
   (row-cols-1, il default Bootstrap prima del breakpoint row-cols-sm-2 — vedi
   _attractions-grid.php, blog-overview.php, news-overview.php, catalogs-overview.php,
   vouchers.php, più $carouselGridRowClass in _plugins_config.php): senza questo, sui
   telefoni più grandi la card si stira a piena larghezza del viewport, risultando
   sproporzionata rispetto al layout pensato per una colonna più stretta. Qui limitiamo
   la larghezza della card e la centriamo nella riga — scoped su .row-cols-1 (converge
   su tutte le griglie sopra, non solo su .experience-card) invece che ripetuto per ogni
   singola card, per coprirle tutte in un colpo solo. Le righe sono flex (.row di
   Bootstrap): margin-inline:auto su un flex item centra correttamente lo spazio in eccesso. */
@media (max-width: 575px) {
  .row-cols-1 > * {
    max-width: 360px;
    margin-inline: auto;
  }
}

/* proposal-card — card per le Proposte gruppi (_proposal-card.php): stesso layout di
   .experience-card (immagine sopra, body sotto), ma senza meta/tag/prezzo/prenota — una
   proposta gruppi non è un nodo Deltabooking prenotabile, solo immagine/titolo/sottotitolo.
   Distinta da .poster-card (usata dalla Categoria gruppi che la contiene): qui il testo
   sta sotto l'immagine in un body separato, non in overlay su gradiente. */
.proposal-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 35px;
  overflow: hidden;
}
.proposal-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--border);
  overflow: hidden;
}
.proposal-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.proposal-card__body {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  padding: 1rem;
  flex: 1;
}
.proposal-card__title {
  margin: 0;
  font-size: 17px;
  line-height: 1.3;
}
@media (max-width: 575px) {
  .proposal-card__title {
    font-size: 16px;
  }
}
.proposal-card__link {
  color: var(--header);
  text-decoration: none;
}
/* Stretched link: un solo <a> reale, area cliccabile estesa a tutta la card
   tramite ::after assoluto — stesso pattern di .experience-card__link. */
.proposal-card__link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.proposal-card__link:hover,
.proposal-card__link:focus-visible {
  text-decoration: underline;
}
.proposal-card__link:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.proposal-card__subtitle {
  margin: 0;
  font-size: 14px;
  color: var(--text);
  line-height: 1.4;
}
@media (max-width: 575px) {
  .proposal-card__subtitle {
    font-size: 13px;
  }
}

/* poster-card — card fotografica 16:9 (l'intera card, non solo l'immagine): titolo/
   sottotitolo in overlay su gradiente sempre visibile, MAI solo su hover/focus (vedi
   pattern intenzionalmente evitato nel docblock del partial). Stretched link come
   .experience-card__link, ma esteso a tutta la card 16:9 invece che al solo titolo.
   Generica: usata sia per "Pacchetti in evidenza" sia per "Gruppi in evidenza". */
.poster-card {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 16 / 9;
  background: var(--border);
  border-radius: 35px;
  overflow: hidden;
}
.poster-card__media {
  position: absolute;
  inset: 0;
}
.poster-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Gradiente sempre presente (non legato a :hover/:focus) — garantisce leggibilità
   del testo overlay su qualunque immagine, e non nasconde mai il testo di default. */
.poster-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 17, 0.2) 10%, rgba(11, 13, 17, .95) 100%);
}
/* NON position:absolute: farebbe da containing block per il ::after del link
   annidato qui dentro, limitando l'area cliccabile alla sola striscia overlay
   invece che a tutta la card. margin-top:auto (in un .poster-card flex column)
   lo ancora comunque in basso restando nel flusso normale — z-index funziona
   comunque sugli elementi flex anche senza position, per spec. */
.poster-card__overlay {
  margin-top: auto;
  z-index: 1;
  display: flex;
  align-items: center;
  padding: 2rem;
}
.poster-card__text {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  min-width: 0;
}
.poster-card__title {
  margin: 0;
  font-size: 25px;
  line-height: 1.3;
}
.poster-card__link {
  color: var(--white);
  text-decoration: none;
}
/* Stretched link: un solo <a> reale, area cliccabile estesa a tutta la card
   tramite ::after assoluto — vedi .experience-card__link per lo stesso pattern.
   Funziona solo perché .poster-card__overlay NON è position:absolute (vedi
   nota lì sopra): altrimenti il ::after si fermerebbe al suo containing block. */
.poster-card__link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.poster-card__link:hover,
.poster-card__link:focus-visible {
  text-decoration: underline;
}
.poster-card__link:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: -2px;
}
.poster-card__subtitle {
  margin: 0;
  font-size: 20px;
  color: rgba(255, 255, 255, .85);
  line-height: 1.4;
}
/* Sotto 767px il 16:9 di base rende la card troppo bassa: nei caroselli a perPage:1
   (vedi $carouselPackages in _plugins_config.php) la larghezza è già ridotta dal peek,
   quindi 16:9 lascia pochissima altezza per immagine e testo overlay. 4:3 la rende più
   verticale senza toccare il rapporto da tablet in su, dove c'è più margine orizzontale. */
@media (max-width: 767px) {
  .poster-card {
    aspect-ratio: 4 / 3;
  }
  .poster-card__overlay {
    padding: 1.5rem;
  }
  .poster-card__title {
    font-size: 22px;
  }
  .poster-card__subtitle {
    font-size: 17px;
  }
}

/* tile-card — variante compatta di .poster-card: 3:4, solo titolo, font/padding più
   piccoli, pensata per caroselli con molte card visibili insieme (es. 5 alla volta). */
.tile-card {
  position: relative;
  display: flex;
  flex-direction: column;
  aspect-ratio: 3 / 4;
  background: var(--border);
  border-radius: 20px;
  overflow: hidden;
}
.tile-card__media {
  position: absolute;
  inset: 0;
}
.tile-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tile-card__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 13, 17, 0) 10%, rgba(11, 13, 17, .95) 100%);
}
/* NON position:absolute, stesso motivo di .poster-card__overlay: farebbe da
   containing block per il ::after del link, limitando l'area cliccabile alla sola
   striscia overlay invece che a tutta la card. */
.tile-card__overlay {
  margin-top: auto;
  z-index: 1;
  padding: 2rem 2.5rem;
}
.tile-card__title {
  margin: 0;
  font-size: 22px;
  line-height: 1.3;
  text-align: center;
}
@media (max-width: 767px) {
  .tile-card__title {
    font-size: 19px;
  }
}
@media (max-width: 575px) {
  .tile-card__title {
    font-size: 17px;
  }
}
.tile-card__link {
  color: var(--white);
  text-decoration: none;
}
.tile-card__link::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}
.tile-card__link:hover,
.tile-card__link:focus-visible {
  text-decoration: underline;
}
.tile-card__link:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: -2px;
}

/* voucher-card — card "a piano" (tipo i piani Spotify) per un buono regalo a sconto
   fisso (vouchers.php + _voucher-card.php in app/Views/Site/partials/). Card testuale
   (nessuna immagine), verticale, contenuto centrato, valore enorme come elemento
   dominante, bottone pieno larghezza sempre ancorato in fondo (mt-auto sul bottone:
   resta allineato tra le card anche quando la validità, sopra, è assente). Stesso
   principio "tutta la card cliccabile" di .experience-card/.poster-card qui sopra, ma
   applicato a un <button> reale invece che a uno stretched-link, perché l'azione è
   aprire una modale, non navigare a un url. Reset dei default browser per <button>
   (full width, testo allineato a sinistra, no background/border nativi) prima delle
   regole di stile vero e proprio. */
.voucher-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 2.5rem 1.75rem 2rem;
  background: var(--white);
  /* Trasparente, non "none": spessore (1px) invariato rispetto all'hover (border-color
     nero, vedi sotto) — stesso motivo già documentato lì, niente reflow del bottone. */
  border: 1px solid transparent;
  border-radius: 35px;
  text-align: center;
  font-family: inherit;
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.voucher-card:hover,
.voucher-card:focus-visible {
  /* border-color, non border/background: il gradiente è passato al contenitore
     (.vouchers-carousel-box, sotto) — qui sull'hover cambia solo il colore del bordo
     (spessore invariato, niente reflow, stesso motivo del commento storico) e il colore
     del bottone dentro (.voucher-card__cta qui sotto), nient'altro. */
  border-color: var(--black);
}
.voucher-card:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.voucher-card__title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--header);
  margin-bottom: 1rem;
}
/* Il valore, non il titolo, è il dato che deve saltare all'occhio (richiesta esplicita:
   "valore scritto più in grande") — qui è l'elemento centrale della card, come il prezzo
   in un piano Spotify, senza prefisso "Valore:" davanti: il numero grande parla da solo. */
.voucher-card__value {
    font-size: 34px;
    font-weight: 800;
    line-height: 1.1;
    color: var(--black);
    margin: 1rem 0 2rem;
    letter-spacing: -3px;
}
@media (max-width: 575px) {
  .voucher-card__title {
    font-size: 16px;
  }
  .voucher-card__value {
    font-size: 28px;
  }
}
.voucher-card__divider {
  display: block;
  width: 100%;
  height: 1px;
  background: var(--border);
  margin: 0 0 1rem;
}
.voucher-card__validity {
  font-size: 13px;
  color: var(--text);
  margin-top: .5rem;
}
/* .voucher-card__cta si affianca a .theme-btn per il transition — il resto (background,
   padding, border-radius, ecc.) arriva dalla classe base. È uno span, non un bottone
   vero (il bottone reale è .voucher-card stesso): l'hover/focus quindi va scoped sulla
   card intera, non su :hover del solo span. */
.voucher-card__cta {
  transition: background-color .2s ease;
}
.voucher-card:hover .voucher-card__cta,
.voucher-card:focus-visible .voucher-card__cta {
  background-color: var(--black);
}

/* vouchers-carousel-box — contenitore del carosello "Carte regalo" in vouchers.php:
   stesso gradiente diagonale già usato altrove per l'hover di questo tipo di card (vedi
   .gift-cta-section__box), spostato qui come sfondo fisso del contenitore invece che
   sull'hover della singola card — le card dentro restano a sfondo bianco (.voucher-card),
   il gradiente le distingue dalla sezione "esperienze regalabili" sotto (sfondo bianco,
   senza box) senza bisogno di un hover per notarlo. */
.vouchers-carousel-box {
  background: linear-gradient(45deg, rgba(252, 200, 151, 0.25) 0%, rgba(247, 137, 161, 0.25) 60%);
  border-radius: 35px;
  padding: 40px;
}
@media (max-width: 767px) {
  .vouchers-carousel-box {
    padding: 24px;
  }
}
/* Sotto 991px il carosello va a filo col box (padding.left:0 nello Splide, vedi
   $carouselVouchers in _plugins_config.php, allinea già la prima card al bordo interno):
   qui azzeriamo solo il padding orizzontale del box, non quello verticale (resta quello
   della regola sopra, 40px o 24px da mobile). Titolo/sottotitolo perdono il padding del
   box quindi lo riprendono su loro stessi, per non finire a filo schermo col testo. */
@media (max-width: 991px) {
  .vouchers-carousel-box {
    padding-left: 0;
    padding-right: 0;
  }
  .vouchers-carousel-box__title,
  .vouchers-carousel-box__subtitle {
    padding-left: 24px;
    padding-right: 24px;
  }
}
.vouchers-carousel-box__title {
  margin-bottom: .5rem;
  font-size: 22px;
  font-weight: 700;
  color: var(--header);
}
.vouchers-carousel-box__subtitle {
  margin-bottom: 1.5rem;
  color: var(--black);
}

/* article-card — card per news/blog: immagine in alto (bordi tutti arrotondati, non
   solo quelli superiori: non è più il container a tagliare l'immagine), contenuto
   (titolo/estratto) sotto, senza padding laterale, sfondo pieno per restare leggibile
   come poster-card/tile-card non sono (quelle sono foto+overlay). */
.article-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
}
.article-card__media {
  aspect-ratio: 16 / 9;
  border-radius: 20px;
  overflow: hidden;
}
.article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.article-card__body {
  padding: 1.5rem 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.article-card__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.35;
}
@media (max-width: 575px) {
  .article-card__title {
    font-size: 16px;
  }
}
.article-card__link {
  color: var(--header);
  text-decoration: none;
}
/* Stretched link: un solo <a> reale sul titolo, area cliccabile estesa a tutta la
   card tramite ::after assoluto — stesso pattern di .poster-card__link/.tile-card__link.
   Funziona perché .article-card__body NON è position:relative: il ::after risale
   fino a .article-card (che lo è) invece di fermarsi prima. */
.article-card__link::after {
  content: '';
  position: absolute;
  inset: 0;
}
.article-card__link:hover,
.article-card__link:focus-visible {
  color: var(--theme);
  text-decoration: underline;
}
.article-card__link:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.article-card__subtitle {
  margin: 0;
  font-size: 14px;
  color: var(--text);
  line-height: 1.5;
  /* Tronca a 2 righe: un estratto lungo non deve sbilanciare l'altezza delle card
     vicine nella stessa riga/carosello. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 575px) {
  .article-card__subtitle {
    font-size: 13px;
  }
}

/* how-it-works — sezione "respiro" tra i caroselli (Categorie esperienze / News):
   sfondo leggermente diverso dal bianco per staccare visivamente, 3 step semplici
   icona+titolo+testo, niente foto/carosello. */
.how-it-works-section {
      background: linear-gradient(45deg, rgba(151, 252, 203, 0.12) 0%, rgba(53, 146, 200, 0.16) 60%);
      padding:100px;
}
.how-it-works-item {
  text-align: center;
  padding: 0 1rem;
  background:rgba(255,255,255,0.4);
  border-radius:20px;
  padding:2.5rem
}
.how-it-works-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--black);
  font-size: 50px;
  margin-bottom: 1.25rem;
}
.how-it-works-item h3 {
  margin: 0 0 .5rem;
  font-size: 20px;
}
.how-it-works-item p {
  margin: 0;
  color: var(--black);
}
.how-it-works-support {
  text-align: center;
  margin: 2.5rem 0 0;
  color: var(--black);
}
.how-it-works-support a {
  color: var(--black);
  font-weight: 600;
  text-decoration: underline;
}
.how-it-works-support a:hover {
  text-decoration: none;
}

/* about-us-section — 2 colonne: testo (titolo/sottotitolo/testo dall'atom Htmlarea
   "text" del nodo home) + immagine, sotto la sezione News. Su mobile le colonne si
   impilano (comportamento di default di .row, nessun override necessario). */
.about-us-section__content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: var(--black);
}
.about-us-section__content h2 {
  margin: 0;
  line-height: 1.2;
  font-weight: 800;
}
.about-us-section__subtitle {
  margin: 0;
  font-weight: 600;
  color: var(--black);
}
.about-us-section__text {
  color: var(--black);
}
.about-us-section__text p:last-child {
  margin-bottom: 0;
}
.about-us-section__biosfera-logo {
  width: 220px;
  max-width: 100%;
  height: auto;
  margin-top: .5rem;
}
.about-us-section__image {
  width: 100%;
  height: auto;
  border-radius: 35px;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.flatpickr-day.today{border-color:var(--black)}

.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange,
.flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:not(.flatpickr-disabled):hover,
.flatpickr-day.prevMonthDay:not(.flatpickr-disabled):hover, .flatpickr-day.nextMonthDay:not(.flatpickr-disabled):hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus,
.flatpickr-day.nextMonthDay:focus,
.flatpickr-day.today:hover, .flatpickr-day.today:focus {
    background: var(--theme-light);
    border-color: var(--theme-light);
    color: var(--black);
}
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
    -webkit-box-shadow: -10px 0 0 var(--theme);
    box-shadow: -10px 0 0 var(--theme);
}
.flatpickr-day.inRange {
    border-radius: 0;
    -webkit-box-shadow: -5px 0 0 var(--theme-light), 5px 0 0 var(--theme-light);
    /* box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6; */
}
.flatpickr-current-month span.cur-month:hover,.numInputWrapper:hover{background:none}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover,
.flatpickr-day.today.selected:hover, .flatpickr-day.today.startRange:hover, .flatpickr-day.today.endRange:hover,
.flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay{
  background: var(--theme);
  border-color: var(--theme);
  color: var(--white);
}
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg{fill:var(--theme)}
.flatpickr-calendar.open{z-index:100}
.text-wrapper{color:var(--black)}
.text-wrapper p + p {
  margin-top: 1em;
}
.text-wrapper h2:not(.title, .subtitle) {
    font-size: 30px;
}
@media (max-width: 767px) {
  .text-wrapper h2:not(.title, .subtitle) {
    font-size: 22px;
  }
}
@media (max-width: 575px) {
  .text-wrapper h2:not(.title, .subtitle) {
    font-size: 20px;
  }
}
.text-wrapper h2 + *, .text-wrapper * + h2 {
  margin-top: 1.5em;
}
.text-wrapper ul,
.text-wrapper ol {
  padding-left: 1.25em;
  margin: 1em 0;
}
.text-wrapper ul {
  list-style: disc;
}
.text-wrapper ol {
  list-style: decimal;
}
.text-wrapper ul ul {
  list-style: circle;
}
.text-wrapper li + li {
  margin-top: .4em;
}
.text-wrapper li::marker {
  color: var(--theme);
}

/* vouchers-experiences-intro-section__text — testo intro esperienze in vouchers.php: da
   desktop su due colonne (CSS multi-column, non due <div> separati: il testo è un unico
   blob HTML dal pannello, non spezzabile a metà lato server) perché è parecchio più
   lungo del testo "gemello" di packages-overview.php, un'unica colonna lo renderebbe
   troppo alto. NIENTE break-inside:avoid sui paragrafi (tentativo precedente, rimosso):
   con pochi paragrafi lunghi, impedire lo spezzamento forzava il browser a spostare
   interi paragrafi nella seconda colonna quando il punto di bilanciamento ideale cadeva
   a metà di uno di essi — risultato, prima colonna visibilmente più vuota della
   seconda. Senza il vincolo un paragrafo può spezzarsi tra le due colonne (normale in
   un layout a più colonne), ma il bilanciamento torna corretto. */
@media (min-width: 992px) {
  .vouchers-experiences-intro-section__text {
    column-count: 2;
    column-gap: 2.5rem;
  }
}
.title{font-size: 30px;}
.subtitle{font-weight:300;line-height:1.3;font-size:22px}
/* .title/.subtitle sono classi (usate da _page-header.php su OGNI pagina interna, oltre
   che da _node-text-image-section.php/_paragraph-section.php): battono in specificità le
   regole responsive dei tag h1/h2 bare qui sopra, quindi senza queste regole restavano
   piatte a 30px/22px su ogni breakpoint, ignorando lo shrink mobile — bug reale, non
   c'era NESSUN override qui. Stessa scala di .section-title h2 (30→22→20), il pattern
   di riferimento già usato altrove nel file. */
@media (max-width: 767px) {
  .title { font-size: 22px; }
  .subtitle { font-size: 18px; }
}
@media (max-width: 575px) {
  .title { font-size: 20px; }
  .subtitle { font-size: 16px; }
}

/* =============================================
   PAGE HEADER — pagine interne (breadcrumb + h1), generico
   ============================================= */
.page-header {
  background: rgba(var(--bs-light-rgb), 1);
}
/* Pagine senza form di ricerca sotto l'header (packages-overview.php, package-detail.php,
   vouchers.php — non le pagine categoria/macro esperienze/visita, che il form ce l'hanno):
   sfondo bianco invece del grigio chiaro di default, niente bordo, padding-bottom a 3rem
   (era il valore già calibrato prima di questo tentativo). Lo stacco raddoppiato con la
   sezione successiva si evita azzerando il padding-top di QUELLA sezione (pt-0 nel
   chiamante), non riducendo qui. */
.page-header--flush {
  background: var(--white);
  padding-bottom: 3rem;
}
/* Titolo + bottone condividi (quando non ci sono $tags, vedi _page-header.php): mai una
   riga a sé stante con solo il bottone, condivide la riga con l'h1. */
.page-header__title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
}
.page-header__title {
  margin: .5rem 0 0;
}
.page-header__subtitle {
  margin: .5rem 0 0;
  color: var(--black);
}
/* Riga tag + bottone condividi (opzionale, vedi $showShareButton, presente solo se ci sono
   $tags — altrimenti il bottone è già nella riga del titolo, vedi .page-header__title-row):
   il bottone si allinea ai tag, non al titolo. */
.page-header__row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  margin-top: 5px;
}
.page-header__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.page-header__tag {
  font-size: 13px;
  line-height: 1.4;
  color: var(--black);
  background: var(--theme-light);
  border-radius: 6px;
  padding: .25rem .65rem;
}
.page-header__share-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .8rem;
  border-radius: 100px;
  border: 1px solid var(--border);
  background: none;
  color: var(--header);
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.page-header__share-btn .material-symbols-outlined {
  font-size: 15px;
}
.page-header__share-btn:hover,
.page-header__share-btn:focus-visible {
  background-color: var(--black);
  border-color: var(--black);
  color: var(--white);
}
.page-header__share-menu .dropdown-item {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.page-header__share-menu .dropdown-item .material-symbols-outlined {
  font-size: 18px;
  color: var(--text);
}

/* Intestazione attrazione (_attraction-detail.php): niente sfondo, molto più compatta della
   .page-header generica (che le altre pagine interne, es. experience-category, tengono alta
   e con sfondo) — qui sotto c'è subito la galleria, un'intestazione ingombrante sposterebbe
   troppo in basso il primo contenuto reale della pagina. */
.attraction-detail-header {
  background: none;
  padding: 3rem 0 0;
}
.attraction-detail {
  padding-bottom:100px;
}
.attraction-detail-header .page-header__title {
  font-size: 1.5rem;
}
.attraction-detail-header .page-header__subtitle {
  font-size: 1rem;
}
@media (max-width: 575px) {
  .attraction-detail-header .page-header__title {
    font-size: 1.25rem;
  }
  .attraction-detail-header .page-header__subtitle {
    font-size: .9rem;
  }
}

/* =============================================
   EXPERIENCE SEARCH BAR — wrapper "stile Airbnb" per _experience-search-form.php
   ============================================= */
/* A cavallo tra l'header e la griglia: margin-top negativo la solleva dentro il padding
   inferiore di .page-header (80-100px, vedi .section-padding — ampio abbastanza da non
   tagliare nulla). pt-0 sulla griglia sotto evita un doppio distacco visivo. */
.experience-search-section {
  position: relative;
  z-index: 2;
  margin-top: -48px;
  margin-bottom: 24px;
}
/* .booking-list-area/.booking-list (i campi veri, vedi _experience-search-form.php) sono
   già stilizzati per il contenuto interno (colori, ms-dropdown, flatpickr — regole non
   annidate sotto .hero-1, quindi già condivise). Il layout "pillola" orizzontale invece è
   definito SOLO sotto ".hero-1 .hero-content" (vedi hero-1): fuori dalla hero, senza questo
   blocco, i campi restavano impilati verticalmente (nessun display:flex). Stessi valori
   della hero per coerenza visiva; specificità inferiore alla regola hero-scoped quindi
   nessun impatto sulla home. */
.experience-search-bar .booking-list-area {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-radius: 60px;
  background-color: var(--white);
  padding: 10px;
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.15);
}
.experience-search-bar .booking-list-area.border{box-shadow:none;}
@media (max-width: 1199px) {
  .experience-search-bar .booking-list-area {
    flex-wrap: wrap;
    gap: 40px;
  }
}
.experience-search-bar .booking-list-area .booking-list {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1 1 0;
  min-width: 0;
}
.experience-search-bar__toggle {
  display: none;
}
@media (max-width: 991px) {
  /* Sotto i 991px bottone "pillola" + pannello devono leggersi come un'unica card che
     si apre (prima erano due box separati: la pillola col suo bordo/ombra sopra, il
     pannello con bordo/sfondo propri sotto). Bordo/ombra/raggio passano quindi al
     contenitore .experience-search-bar; toggle e .booking-list-area interni diventano
     "trasparenti" (niente più sfondo/bordo propri, solo layout) cosicché il rettangolo
     arrotondato visibile sia sempre e solo quello del contenitore esterno — NIENTE
     overflow:hidden qui: il calendario flatpickr e i pannelli .ms-dropdown sono
     posizionati absolute dentro elementi annidati qui sotto e verrebbero tagliati.
     .border è una utility Bootstrap con !important, va neutralizzata esplicitamente. */
  .experience-search-bar {
    border: 1px solid var(--border);
    border-radius: 24px;
    background: var(--white);
    box-shadow: rgba(149, 157, 165, 0.15) 0px 2px 16px;
  }
  /* Da chiusa (solo la riga del toggle, bassa) 999px si comporta come nelle altre
     pill del sito: il raggio viene comunque limitato dal browser a metà altezza,
     dando gli estremi perfettamente semicircolari. Da aperta (pannello coi campi
     visibile, box molto più alto) niente pillola: si torna al raggio moderato
     sopra, altrimenti gli angoli risulterebbero eccessivi su un box così alto. */
  .experience-search-bar:has(.experience-search-bar__toggle[aria-expanded="false"]) {
    border-radius: 999px;
  }
  .experience-search-bar__toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 20px;
    border: none;
    background: transparent;
    color: var(--header);
    font-weight: 600;
    cursor: pointer;
  }
  .experience-search-bar__toggle:focus-visible {
    outline: 2px solid var(--theme);
    outline-offset: -2px;
  }
  .experience-search-bar__toggle-label {
    flex: 1;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* Niente più freccina che ruota: lente di ricerca e X condividono lo stesso slot
     a destra, una sola visibile alla volta in base allo stato — da chiuso la lente
     (leggermente più grande, senza badge), da aperto la X ben visibile per chiudere
     — stesso bottone dell'intera riga, non un controllo separato. */
  .experience-search-bar__search-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 24px;
  }
  .experience-search-bar__toggle[aria-expanded="true"] .experience-search-bar__search-icon {
    display: none;
  }
  .experience-search-bar__icon {
    display: none;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--theme-light);
    color: var(--theme);
    font-size: 18px;
  }
  .experience-search-bar__toggle[aria-expanded="true"] .experience-search-bar__icon {
    display: flex;
  }
  .experience-search-bar__panel {
    padding: 4px 20px 20px;
    border-top: 1px solid var(--border);
  }
  /* I campi vanno impilati uno sotto l'altro (non più affiancati/a capo come nel wrap
     da 1199px) e il bottone submit torna un .theme-btn normale con testo visibile,
     invece del cerchio-icona da 60px usato da 992px in su (vedi
     .booking-list-area button[type="submit"] sopra). */
  .experience-search-bar .booking-list-area {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 16px 0 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .experience-search-bar .booking-list-area.border {
    border: none !important;
  }
  .experience-search-bar .booking-list-area .booking-list {
    width: 100%;
  }
  /* Il calendario flatpickr ha una larghezza fissa di default (~308px, vedi
     flatpickr.min.css): con i campi impilati a piena larghezza risulta slegato dal
     campo sotto, invece di allinearsi come il pannello di .ms-dropdown (che usa
     left:0;right:0 sullo stesso .content). Stessa tecnica qui — !important perché
     JS imposta left/top inline, vedi regola base di .flatpickr-calendar sopra. */
  .experience-search-bar .booking-list-area .booking-list .content .flatpickr-calendar {
    width: 100% !important;
    right: 0 !important;
  }
  /* Il riquadro bianco ora è largo quanto il campo, ma il grid dei giorni dentro resta
     alla sua dimensione fissa (.dayContainer/.flatpickr-days hanno width/max-width in
     px, non %, celle .flatpickr-day cappate a max-width:39px) — di default flex
     allineato a sinistra (.flatpickr-innerContainer{display:flex}, nessun
     justify-content), lasciando uno spazio vuoto sbilanciato a destra. Lo centriamo
     invece di allargare le celle: stesso target di tocco (39px, già vicino ai 44px
     ideali WCAG 2.5.8), solo riposizionato. */
  .experience-search-bar .booking-list-area .booking-list .content .flatpickr-calendar .flatpickr-innerContainer {
    justify-content: center;
  }
  /* Il separatore tra i campi (vedi .booking-list-area .booking-list:not(:first-child)
     .content button::before sopra) è pensato per l'affiancamento orizzontale: una
     linea verticale nel gap tra due campi affiancati. Impilati in colonna va ruotato
     in orizzontale, a tutta larghezza, nel gap sopra ciascun campo (eccetto il primo,
     a metà dei 12px di gap). */
  .experience-search-bar .booking-list-area .booking-list:not(:first-child) .content button:not(.fp-shortcut,.flatpickr-prev-month,.flatpickr-next-month)::before {
    width: 100%;
    height: 1px;
    top: -6px;
    left: 0;
  }
  .experience-search-bar .booking-list-area button[type="submit"] {
    width: 100%;
    height: auto;
    min-width: 0;
    padding: 16px 24px;
  }
  .experience-search-bar .booking-list-area button[type="submit"] .search-submit-label {
    display: inline;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  /* Tra 768 e 991px (tablet) il campo può arrivare a 600-900px di larghezza — un
     calendario a dimensione fissa (~308px, vedi sopra) o dei campi larghissimi
     risultano sproporzionati rispetto al resto. Vincolata a una larghezza "umana" e
     centrata, invece di occupare tutto lo spazio disponibile. Sotto i 768px (telefoni)
     resta a piena larghezza: lì il contenitore è già stretto di suo, non serve. */
  .experience-search-bar {
    width: 100%;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =============================================
   PAGER — bottoni di paginazione (app/Views/partials/pager.php), condiviso da
   qualunque pagina chiami pager()/PAGER_TYPE_DYNAMIC. Solo ricolorazione sui
   token del tema: la forma "gruppo connesso" (angoli/bordi) resta quella di
   default di Bootstrap .btn-group, qui si sovrascrivono solo i colori delle
   classi .btn-outline-info/.btn-info già usate nel markup.
   ============================================= */
.pager .btn-outline-info {
  color: var(--header);
  border-color: var(--border);
  background-color: var(--white);
}
.pager .btn-outline-info:hover:not(:disabled),
.pager .btn-outline-info:focus-visible {
  color: var(--black);
  background-color: var(--theme-light);
  border-color: var(--theme-light);
}
.pager .btn-outline-info:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
  z-index: 1;
}
.pager .btn-info.border-primary {
  /* nero, non bianco: questo bottone è "disabled" (indicatore pagina corrente, non
     cliccabile) e .pager .btn:disabled sotto lo schiarisce a opacity:.35 — sul blu
     tema stemperato il bianco perde contrasto, il nero no. */
  color: var(--white);
  background-color: var(--theme);
  border-color: var(--theme) !important;
  opacity:1!important
}
.pager .btn:disabled {
  opacity: .35;
}
.pager .material-symbols-outlined {
  font-size: 18px;
}
.pager .small {
  color: var(--text);
}

/* =============================================
   ATTRACTIONS SORT — conteggio risultati + ordinamento griglia (experience-category.php)
   ============================================= */
.attractions-grid-section__empty {
  margin: 0;
  padding: 10rem 1rem;
  text-align: center;
  color: var(--text);
  font-size: 18px;
}
.attractions-sort-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.attractions-sort-bar__count {
  margin: 0;
  font-size: 14px;
  color: var(--text);
}
.attractions-sort {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.attractions-sort label {
  font-size: 14px;
  font-weight: 600;
  color: var(--header);
  white-space: nowrap;
}
.attractions-sort select {
  border-radius: 8px;
  border: 1px solid var(--border);
  padding: .5rem 2rem .5rem .75rem;
  font-size: 14px;
  color: var(--header);
  background-color: var(--white);
}
.attractions-sort select:focus-visible {
  outline: none;
  border-color: var(--theme);
  box-shadow: 0 0 0 2px rgba(56, 121, 159, .2);
}
.attractions-sort button {
  border: 1px solid var(--theme);
  background: var(--theme);
  color: var(--white);
  border-radius: 8px;
  padding: .5rem 1rem;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}
.attractions-sort button:hover {
  background: var(--header);
  border-color: var(--header);
}
.attractions-sort button:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}

/* =============================================
   NODE TEXT+IMAGE / PARAGRAPH SECTIONS — testo+immagine (_node-text-image-section.php,
   riusato da experience-category.php ed experiences-overview.php, e _paragraph-section.php)
   ============================================= */
.node-text-image-section__image,
.paragraph-section__image {
  width: 100%;
  /* height esplicito, non solo aspect-ratio: l'<img> ha un attributo HTML height="..."
     (riservato per il CLS prima del caricamento) — senza "height: auto" quell'attributo
     resta l'unica regola per la proprietà height (vince perché non sovrascritta da nessun
     CSS) e aspect-ratio non ha nulla da calcolare, dato che l'altezza risulta già definita. */
  height: auto;
  aspect-ratio: 4 / 3;
  border-radius: 20px;
  object-fit: cover;
}
.paragraph-section__title {
  margin: 0 0 1rem;
  font-weight: 800;
}
.modal-backdrop{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:1!important;background-color:rgba(0,0,0,.8)}
/* Titoli dei caroselli "correlati" (_carousel-highlight-section.php): standard preso dal
   dettaglio esperienza/attrazione (#related-attractions-heading, già 25px) — più piccolo
   del default .section-title h2 (30px, usato dalle sezioni "in evidenza" di home/listing,
   quelle NON toccate qui) perché un titolo "correlati" a fondo pagina non deve competere
   con quello principale della pagina. Allineati qui gli altri 4, che prima ereditavano il
   default da 30px senza un motivo per essere diversi da questo. */
#related-attractions-heading,
#related-packages-heading,
#related-blog-heading,
#related-news-heading,
#related-group-proposals-heading{font-size:25px}
@media (max-width: 767px) {
  #related-attractions-heading,
  #related-packages-heading,
  #related-blog-heading,
  #related-news-heading,
  #related-group-proposals-heading{font-size:20px}
}
@media (max-width: 575px) {
  #related-attractions-heading,
  #related-packages-heading,
  #related-blog-heading,
  #related-news-heading,
  #related-group-proposals-heading{font-size:18px}
}
.header-btn-cart .badge{background:var(--theme-2);font-size:11px;top:-8px;right:-8px;border:2px solid var(--white);}
.db-header-account-dropdown .dropdown-menu.show{padding:0;overflow:hidden;}
.db-header-account-dropdown .dropdown-menu.show .dropdown-item{padding:.5rem 1rem;transition:none}
.db-header-account-dropdown .dropdown-menu.show .dropdown-item:focus, .db-header-account-dropdown .dropdown-menu.show .dropdown-item:hover{background: var(--theme-light);color: var(--black);}
.dropdown-item-text{background: var(--bg);white-space: nowrap;padding: .5rem 1rem;cursor: default;}

/* Pagina di DETTAGLIO pacchetto (non di listato): stesso container ristretto del
   dettaglio esperienza (.attraction-detail-header/.attraction-detail in
   deltabooking-style.css, stesso identico commento/motivo lì) — deliberatamente diverso
   da packages-overview.php, che resta larga (griglia di card). groups-category-detail.php
   NON la usa (container standard, vedi commento lì: più respiro per testo lungo + sidebar). */
@media (min-width: 1200px) {
  .package-detail-header .container,
  .package-detail-content .container {
    max-width: 1200px;
  }
}

/* Copertina (package-detail.php): a piena larghezza sopra le due colonne (non impilata
   nella colonna testo). height: clamp() invece di aspect-ratio, stessa tecnica di
   .attraction-gallery__mosaic sotto — aspect-ratio+max-height insieme fa restringere la
   larghezza in alcuni browser invece di restare piena una volta tagliata l'altezza. */
.package-detail-cover {
  width: 100%;
  height: clamp(280px, 30vw, 460px);
  object-fit: cover;
  border-radius: 20px;
}

/* Fotogallery a griglia uniforme (partials/_photo-grid.php, riusabile — usata da
   package-detail.php) — non il mosaico 1-grande+4-piccole di .attraction-gallery__mosaic.
   La griglia stessa (colonne/gap) è Bootstrap row/col, personalizzabile dal chiamante
   (rowClasses/colClasses); qui solo lo stile del singolo riquadro. Lightbox PhotoSwipe
   già coperto dall'init generico su .pswp-gallery in javascript.php, nessun JS dedicato. */
.photo-grid__item {
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
}
.photo-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.photo-grid__item:hover img,
.photo-grid__item:focus-visible img {
  transform: scale(1.04);
}
.photo-grid__item:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: -2px;
}

/* Contenitore form richiesta informazioni (package-detail.php): stessi identici valori
   di .attraction-detail__booking-box/__booking-title in deltabooking-style.css (non
   riusabili direttamente, quel foglio non è caricato sulle pagine Site generiche). */
.package-detail-form-box {
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 16px;
}
.package-detail-form-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--header);
  margin-bottom: 1.5rem;
  line-height: 1.3;
  text-align:center
}

/* Sezione form richiesta informazioni (group-proposal-detail.php): sfondo grigio (--bg) su
   tutta la larghezza della section — il box .group-proposal-detail-form-box dentro resta
   centrato/ristretto (col-lg-8) ma senza sfondo proprio, è la section a fare da "sfondo
   evidenziato". */
.group-proposal-detail-form-section,
.sleep-form-section {
  background: var(--bg);
}
.group-proposal-detail-form-box {
  padding: 2rem;
}
.group-proposal-detail-form-box .package-detail-form-title {
  font-size: 1.6rem;
  margin-bottom: .5rem;
}
.group-proposal-detail-form-subtitle {
  text-align: center;
  color: var(--text);
  font-size: 15px;
  margin-bottom: 1.5rem;
}

/* Carosello "Altri pacchetti" (package-detail.php): bordo superiore per staccarlo
   visivamente dalla sezione dettaglio/documenti sopra — stesso pattern di
   .related-attractions-section in deltabooking-style.css, niente altro sotto a fare da
   separatore prima del footer. */
.related-packages-section {
  border-top: 1px solid var(--border);
}

/* Colonna form richiesta informazioni (package-detail.php): sticky da lg in su, sotto
   l'header sticky del sito — stesso pattern di .attraction-detail__sidebar-sticky. */
@media (min-width: 992px) {
  .package-detail-form-sticky {
    position: sticky;
    top: calc(var(--header-height, 80px) + 1rem);
  }
}

/* Titolo di blocco (package-detail.php): stessi identici valori di
   .attraction-detail__block-title in deltabooking-style.css (non riusabile direttamente,
   quel foglio non è caricato sulle pagine Site generiche). */
.package-detail-block-title {
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 1rem;
  color: var(--header);
}
@media (max-width: 575px) {
  .package-detail-block-title {
    font-size: 1.15rem;
  }
}

/* Lista documenti scaricabili (package-detail.php): stessi identici valori di
   .attraction-detail__files-list/__file-link in deltabooking-style.css. */
.package-detail-files-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.package-detail-files-list li:not(:last-child) {
  margin-bottom: .75rem;
}
.package-detail-file-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--header);
  font-weight: 600;
  text-decoration: none;
  transition: color .2s ease;
}
.package-detail-file-link .material-symbols-outlined {
  font-size: 1.2rem;
  flex-shrink: 0;
  color: var(--black);
  transition: color .2s ease;
}
.package-detail-file-link:hover,
.package-detail-file-link:hover .material-symbols-outlined {
  color: var(--theme);
}
[type="checkbox"] + label,
[type="radio"] + label{line-height:1.3;font-size:13px}
[type="checkbox"] + label a,
[type="radio"] + label a{text-decoration:underline;}
[type="checkbox"] + label a:hover,
[type="radio"] + label a:hover{text-decoration:none;}
form textarea,form textarea.form-control,
.form-floating>textarea.form-control{min-height:150px;height: 150px;}
.text-wrapper h1{line-height: 1.2;font-weight: 800;font-size:30px;margin-bottom:20px;}

/* Dettaglio articolo (blog-detail.php/news-detail.php, via partials/_article-content-block.php):
   cover/video/testo/gallery/documenti tutti nella stessa colonna col-lg-8 (nessun layout a
   due colonne con sidebar form, a differenza di package-detail.php) — vedi .photo-grid__item
   (generico, già definito sopra) per la fotogallery. */
.article-detail-cover {
  width: 100%;
  height: clamp(280px, 30vw, 460px);
  object-fit: cover;
  border-radius: 20px;
}

/* Titolo di blocco/lista documenti: stessi identici valori di
   .package-detail-block-title/-files-list/-file-link. */
.article-detail-block-title {
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 1rem;
  color: var(--header);
}
@media (max-width: 575px) {
  .article-detail-block-title {
    font-size: 1.15rem;
  }
}
.article-detail-files-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.article-detail-files-list li:not(:last-child) {
  margin-bottom: .75rem;
}
.article-detail-file-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--header);
  font-weight: 600;
  text-decoration: none;
  transition: color .2s ease;
}
.article-detail-file-link .material-symbols-outlined {
  font-size: 1.2rem;
  flex-shrink: 0;
  color: var(--black);
  transition: color .2s ease;
}
.article-detail-file-link:hover,
.article-detail-file-link:hover .material-symbols-outlined {
  color: var(--theme);
}

/* Carosello "Altri articoli"/"Altre news" (blog-detail.php/news-detail.php): stesso
   separatore di .related-packages-section. */
.related-blog-section,
.related-news-section {
  border-top: 1px solid var(--border);
}

/* Box "Esperienze consigliate" (blog-detail.php/news-detail.php): sfondo molto tenue per
   distinguerlo dal testo dell'articolo intorno — volutamente leggero (var(--bg), niente
   bordo/ombra) perché può comparire più volte nella stessa pagina (uno per paragrafo nel
   blog). Il carosello dentro ha già padding:{left:0} nelle sue opzioni Splide, quindi la
   prima card si allinea al padding interno del box, non all'esterno. */
.article-detail-experiences-box {
  background: var(--bg);
  border-radius: 20px;
  padding: 1.75rem;
}
.article-detail-experiences-box .article-detail-block-title {
  margin-bottom: 1.25rem;
}
/* Sotto 991px il carosello va a filo col box, stesso motivo/pattern di
   .vouchers-carousel-box qui sopra: si azzera solo il padding orizzontale del box (il
   carosello dentro ha già padding.left:0 nelle sue opzioni Splide), il titolo lo
   riprende su se stesso per non toccare i bordi. */
@media (max-width: 991px) {
  .article-detail-experiences-box {
    padding-left: 0;
    padding-right: 0;
  }
  .article-detail-experiences-box .article-detail-block-title {
    padding-left: 1.75rem;
    padding-right: 1.75rem;
  }
}
/* Sotto 767px: nessun bottone "vedi tutti" accanto a questo titolo (a differenza delle
   sezioni con _carousel-highlight-section.php, qui non è mai previsto), quindi centrato
   come le altre sezioni "solo titolo" — vedi .section-title-area:not(:has(.theme-btn)). */
@media (max-width: 767px) {
  .article-detail-experiences-box .article-detail-block-title {
    text-align: center;
  }
}

/* catalog-download-card — card orizzontale per il download di un catalogo
   (groups-category-detail.php): immagine a sinistra, nome + azione a destra. Un solo
   link reale (l'intera card): niente stretched-link, non c'è un secondo elemento
   cliccabile annidato da lasciare raggiungibile. */
.catalog-download-card {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1rem;
  background: linear-gradient(45deg, rgba(151, 252, 203, 0.12) 0%, rgba(53, 146, 200, 0.16) 60%);
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
}
.catalog-download-card:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.catalog-download-card:hover .catalog-download-card__action,
.catalog-download-card:focus-visible .catalog-download-card__action {
  background: #333;
}
.catalog-download-card__media {
  flex-shrink: 0;
  width: 110px;
  aspect-ratio: 1 / 1;
  border-radius: 10px;
  overflow: hidden;
}
.catalog-download-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.catalog-download-card__body {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  flex: 1;
  min-width: 0;
}
.catalog-download-card__name {
  font-weight: 700;
  color: var(--header);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.catalog-download-card__action {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: #000;
  transition: background .2s ease;
}
.catalog-download-card__action .material-symbols-outlined {
  font-size: 20px;
}

/* catalog-card — card verticale della griglia di catalogs-overview.php: copertina grande
   in formato verticale + corpo su sfondo bianco sotto, stesso impianto di .article-card.
   Immagine reale 9:16 (troppo alta su 5 colonne da desktop), qui ritagliata a 3:4
   (object-fit:cover, centrata) — un compromesso tra "si vede che è una brochure
   verticale" e altezza card ragionevole in griglia stretta. */
.catalog-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--white);
  text-decoration: none;
  color: inherit;
  border-radius: 20px;
}
.catalog-card:focus-visible {
  outline: 2px solid var(--theme);
  outline-offset: 2px;
}
.catalog-card__media {
  aspect-ratio: 3 / 4;
  border-radius: 20px;
  overflow: hidden;
}
.catalog-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.catalog-card__body {
  flex: 1 1 auto;
  padding: 1.25rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.catalog-card__title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--header);
  line-height: 1.35;
}
@media (max-width: 575px) {
  .catalog-card__title {
    font-size: 15px;
  }
}
.catalog-card__action {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem 1rem;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  color: var(--black);
  background: var(--white);
  border:1px solid var(--border);
}
.catalog-card:hover .catalog-card__action,
.catalog-card:focus-visible .catalog-card__action {
  background: var(--black);
  border-color:var(--black);
  color: var(--white);
}
.catalog-card__action .material-symbols-outlined {
  font-size: 20px;
}

/* Proposte gruppi (groups-category-detail.php): due render distinti dello stesso elenco,
   uno per breakpoint (.d-lg-none / .d-none.d-lg-block nel markup) invece di un layout
   unico riordinato via CSS — un paio di tentativi con CSS Grid (named areas, poi
   display:contents) per ottenere l'ordine mobile testo/catalogo/carosello/form SENZA
   duplicare nulla si sono rivelati fragili proprio sullo sticky di catalogo+form (l'
   algoritmo di sizing delle righe grid in presenza di un item che spanna più righe non
   distribuisce l'altezza extra in modo prevedibile tra le righe). Duplicare qui è
   innocuo: si duplicano solo le card immagine/testo del carosello (_proposal-card.php,
   nessun form, nessuno stato), e la copia nascosta via display:none non finisce
   nell'albero di accessibilità né nel tab order — nessun contenuto doppio percepito.
   Sopra lg: griglia Bootstrap semplice (nessun carosello, nessun plugin Splide da
   caricare per quella copia). Sotto lg: carosello Splide (_carousel.php), inserito nel
   markup TRA banner catalogo e form, dentro la stessa colonna sticky di sempre. */
.groups-category-detail-proposals-grid {
  margin-top: 3rem;
}

/* Testo su 2 colonne CSS da desktop (groups-category-detail.php): riduce l'ingombro
   verticale di testi lunghi — non ha senso su un blocco stretto come col-lg-8 di
   blog/news (colonne troppo strette), qui la colonna sinistra ha più respiro (container
   non ristretto, vedi il commento in cima al file). Soglia 1200px, non 992px (dove
   inizia il layout a due colonne col-lg-7/col-lg-5): a 992-1199px la colonna sinistra è
   ancora troppo stretta per reggere bene 2 sotto-colonne di testo.
   break-inside:avoid solo su elementi "atomici" (heading/immagini/liste/tabelle), MAI sui
   paragrafi: i paragrafi devono potersi spezzare tra le due colonne come in un giornale,
   altrimenti column-count non avrebbe alcun effetto su blocchi di testo lunghi. */
@media (min-width: 1200px) {
  .groups-category-detail-content__text {
    column-count: 2;
    column-gap: 3rem;
  }
  .groups-category-detail-content__text h1,
  .groups-category-detail-content__text h2,
  .groups-category-detail-content__text h3,
  .groups-category-detail-content__text h4,
  .groups-category-detail-content__text img,
  .groups-category-detail-content__text ul,
  .groups-category-detail-content__text ol,
  .groups-category-detail-content__text table {
    break-inside: avoid;
  }
  .groups-category-detail-content__text p {
    orphans: 3;
    widows: 3;
  }
}

/* Lista contatti diretti (contacts.php): riga a tutta larghezza in cima alla pagina (la
   <ul> è anche una .row Bootstrap, g-4, ogni <li> un col-md-4 — layout via classi
   Bootstrap già nel markup, qui solo il reset lista + lo stile della card). Card evidente
   per contatto: sfondo bianco + bordo (non lo sfondo grigio --bg di un primo tentativo,
   qui il grigio è già usato dal box del form sotto e i due si confonderebbero). */
.contacts-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  /* Bootstrap .row è già display:flex/align-items:stretch (da qui l'altezza uniforme
     delle card sotto, la più alta del gruppo detta l'altezza di tutte) — dichiarati
     esplicitamente anche qui, non lasciati impliciti al solo class .row nel markup.
     NIENTE gap qui: lo spazio tra le card lo dà già il gutter di .row.g-4 (padding sui
     .col-md-4 + margine negativo sulla row) — un gap CSS aggiuntivo si sommerebbe a quel
     calcolo e, con 3 colonne già al 33.333% ciascuna, manderebbe la riga in overflow. */
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.contacts-info-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  height: 100%;
  padding: 1.25rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
}
.contacts-info-item__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--bg);
  color: var(--black);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
}
.contacts-info-item__content {
  color: var(--black);
  text-decoration: none;
  font-style: normal;
  font-weight: 600;
  line-height: 1.3;
}
a.contacts-info-item__content:hover {
  color: var(--theme);
  text-decoration: underline;
}

/* Box del form contatti (contacts.php): sfondo grigio --bg invece del bordo di
   .package-detail-form-box (quella resta invariata per package-detail.php/
   groups-category-detail.php, che la usano con bordo — qui solo un modificatore
   aggiuntivo, non si tocca la classe condivisa). */
.contacts-form-box {
  background: var(--bg);
  border: none;
}

/* european-funds-accordion__link — pannello "link diretto" in european-funds.php: stesso
   .accordion-button di un pannello normale (per restare visivamente coerente nell'elenco),
   ma non è un toggle — niente freccia nativa di Bootstrap (::after, fuorviante: non c'è
   nulla da espandere), sostituita da un'icona "apri esterno" ancorata a destra come la
   freccia originale (.accordion-button è già display:flex, margin-left:auto basta). */
.european-funds-accordion__link::after {
  display: none;
}
.european-funds-accordion__link-icon {
  margin-left: auto;
  font-size: 20px;
  flex-shrink: 0;
}

/* european-funds-accordion__files — allegati scaricabili dentro un pannello (accordion-body),
   sotto al testo. Lista semplice, ogni riga un link con icona download.
   .text-wrapper .european-funds-accordion__files (2 classi), non il solo
   .european-funds-accordion__files: .text-wrapper ul (main.css, list-style:disc per il
   testo HTML libero) ha specificità più alta di una singola classe e vinceva comunque,
   nonostante list-style:none qui sotto — bug reale, il pallino restava visibile. */
.text-wrapper .european-funds-accordion__files {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.european-funds-accordion__file-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--theme);
  font-weight: 600;
}
.european-funds-accordion__file-link:hover,
.european-funds-accordion__file-link:focus-visible {
  color: var(--theme-2);
  text-decoration: underline;
}
/* La sottolineatura del link (sopra) si estenderebbe anche sotto l'icona, essendo lei
   stessa un carattere inline nello stesso box di testo — esclusa esplicitamente. */
.european-funds-accordion__file-link:hover .material-symbols-outlined,
.european-funds-accordion__file-link:focus-visible .material-symbols-outlined {
  text-decoration: none;
}
.european-funds-accordion__file-link .material-symbols-outlined {
  font-size: 18px;
}

/* Loghi più grandi qui rispetto al footer — stesso partial (_eu-funds-logos.php,
   .footer-eu__logos), override scoped alla sezione della pagina invece di una variante
   del partial o di toccare la dimensione di base (che resta 56px nel footer).
   width:100% + max-height (non height fissa): con height fissa e width:auto (base del
   footer) l'immagine mantiene la sua proporzione naturale e può risultare più larga della
   colonna a 7-per-riga, sbordando dal contenitore — width:100% la vincola sempre alla
   larghezza della cella, object-fit:contain mantiene le proporzioni senza deformarla. */
.european-funds-logos-section .footer-eu__logos img {
  width: 100%;
  height: auto;
  max-height: 80px;
  object-fit: contain;
}
/* min-width:0 sugli item della griglia: di default un grid item non si restringe sotto la
   larghezza intrinseca del contenuto (qui l'immagine) — senza questo l'immagine forzerebbe
   comunque la cella (e quindi l'intera riga) a sbordare dal contenitore invece di scalare
   con width:100% sopra. */
.european-funds-logos-section .footer-eu__logos li {
  min-width: 0;
  max-width: 100%;
}

/* Titoli pannelli accordion (bottone toggle + variante link): line-height ridotto rispetto
   al default ereditato, i titoli spesso vanno su più righe dentro .accordion-button. */
.european-funds-accordion-section .accordion-button {
  line-height: 1.2;
}
/* Altezza dell'header del toggle: si passa dalla custom property nativa di Bootstrap
   (--bs-accordion-btn-padding-y, default 1rem), non da un padding hardcoded — resta
   coerente con qualunque altro valore derivato da quella variabile nel componente. */
.european-funds-accordion-section .accordion {
  --bs-accordion-btn-padding-y: 1.5rem;
}

/* Loghi in griglia a numero di colonne fisso per breakpoint, solo su questa pagina (footer
   resta il flex-wrap libero di .footer-eu__logos, non toccato) — grid invece di flex: con
   flex-wrap i loghi vanno a capo in base allo spazio residuo (larghezza naturale variabile),
   non a un numero fisso di colonne. 3 per riga sotto lg (mobile/tablet), 4 da lg, tutti e 7
   su una riga sola da xl in su. */
.european-funds-logos-section .footer-eu__logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
}
@media (min-width: 992px) {
  .european-funds-logos-section .footer-eu__logos {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 1200px) {
  .european-funds-logos-section .footer-eu__logos {
    grid-template-columns: repeat(7, 1fr);
  }
}

/* Più respiro in fondo alla pagina: la sezione accordion è l'ultima prima del footer,
   il default di .section-padding (80px, 100px sotto i 1200px) non bastava. */
.european-funds-accordion-section {
  padding-bottom: 160px;
}

/*# sourceMappingURL=main.css.map */