@import url('https://fonts.googleapis.com/css2?family=Host+Grotesk:ital,wght@0,300..800;1,300..800&display=swap');

@font-face {
  font-family: 'Citrus Gothic';
  src: url('/fonts/Citrus_Gothic_Regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}

:root {
  --color-nero: #1D1D1D;
  --color-bianco: #FFFFFF;
  --color-rosso: #BF3D27;
  --color-verde: #00896F;
  --color-giallo: #FFD433;
  --color-blu: #027BA3;
  
  /* Legacy names mapping if needed, but better to use new ones */
  --color-rosso-terra: #BF3D27;
  --color-verde-taiga: #00896F;
  --color-giallo-savana: #FFD433;
  --color-blu-ghiaccio: #027BA3;
}

p,
h1,
h2,
h3,
span,
div,
body,
html,
a,
text {
  font-family: "Host Grotesk", sans-serif;
  font-optical-sizing: auto;
}

/* Color definitions for title lines */
.title-line-1,
.title-line-2,
.title-line-3 {
    font-family: "Citrus Gothic", "CitrusGothic", sans-serif;
    font-weight: 400;
    text-transform: uppercase;
}

.mainStyle {
  font-weight: 400;
}

.secondStyle {
  font-weight: 800;
}

.lqd-overlay {
  background-color: transparent !important;
}

.lqd-af-slide__content {
  bottom: 2em;
}

.lqd-af-slide__title-container {
  font-family: "Citrus Gothic", "CitrusGothic", 'Host Grotesk', Sans-serif;
  text-transform: uppercase !important;
  line-height: 1.5;
  font-size: 9em !important;
  margin: 0;
  padding: 0;
}

.lqd-af-slide__desc {
  color: #fff !important;
  max-width: 680px;
  width: 100%;
  font-size: 1.4em !important;
  line-height: 1.4;
  margin-top: 1em;
  text-shadow: rgba(0, 0, 0, 0.5) 1px 0 5px;
}

.lqd-af-slide__title-text {
  text-shadow: rgba(0, 0, 0, 0.5) 2px 0 5px;
}

.elementor-9 .elementor-element.elementor-element-c1b5d75 .btn-icon {
  color: unset !important;
  fill: unset !important;
}

.lqd-stickybar-wrap .elementor-widget-ld_button {
  transform: unset !important;
}

.lqd-af-slide__title-container {
  margin: 0 !important;
  padding: 0 !important;
}

.elementor-9 .elementor-element.elementor-element-c107d83 .nav-trigger .bars {
  width: 40px !important;
  height: 40px !important;
}

.nav-trigger .txt {
  display: none !important;
}

.elementor-9 .elementor-element.elementor-element-c1b5d75 .btn-icon img {
  transform: unset !important;
}

.lqd-af-slide__title {
  font-size: 0.8em !important;
}

.lqd-af-slide__title-text,
.lqd-af-slide__title {
  line-height: 1.15 !important;
}

.lqd-stickybar-wrap .elementor-widget-ld_button .elementor-widget-container {
  transform: unset;
}

@media (max-width: 1200px) {
  #lqd-gdpr .lqd-gdpr-inner {
    flex-direction: column !important;
    text-align: center !important;
    padding: 20px !important;
    gap: 20px !important;
  }

  #lqd-gdpr .lqd-gdpr-accept {
    width: 100% !important;
  }

  /* Hide custom cursor on mobile */
  .lqd-cc,
  .lqd-cc--el,
  .lqd-cc--dot,
  .lqd-cc--circle {
    display: none !important;
  }

  body,
  a,
  button {
    cursor: auto !important;
  }
}

@media (max-width: 767px) {
  .lqd-af-slide__title-container {
    font-size: 55px !important; /* Reduced for better mobile fit */
    line-height: 1;
    text-align: left !important;
    display: block !important;
    margin-left: 0 !important;
  }

  .lqd-af-slide__title-text {
    text-anchor: start !important;
  }

  .lqd-af-slide__title-text tspan {
    x: 0;
  }

  .lqd-af-slide__desc {
    font-size: 14px !important; /* Reduced slightly more for better mobile layout */
    max-width: 100% !important;
    text-align: left !important;
    margin-top: 1.2em !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }

  .lqd-af-slide__content {
    bottom: 4em;
    padding-left: 20px; /* Restore left padding as requested */
    padding-right: 20px;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
  }
}

/* Custom Cursor Color Override */
:root {
  --lqd-cc-bc: var(--color-giallo-savana) !important;
  --lqd-cc-bg: var(--color-giallo-savana) !important;
  --lqd-cc-active-bc: var(--color-giallo-savana) !important;
  --lqd-cc-active-bg: var(--color-giallo-savana) !important;
  --lqd-cc-inner-bg: var(--color-giallo-savana) !important;
  --lqd-cc-outer-bc: var(--color-giallo-savana) !important;
}

.lqd-cc--inner,
.lqd-cc--dot {
  background-color: var(--color-giallo-savana) !important;
  opacity: 1 !important;
}

.lqd-cc--outer,
.lqd-cc--circle {
  border-color: var(--color-giallo-savana) !important;
  background-color: transparent !important;
  opacity: 0.5 !important;
}

.lqd-cc--el,
.lqd-cc-solid-bg,
.lqd-cc-ci {
  background-color: var(--color-giallo-savana) !important;
  border-color: var(--color-giallo-savana) !important;
  color: var(--color-giallo-savana) !important;
}

.lqd-cc--arrow svg path,
.lqd-cc-custom-icon svg path,
.lqd-cc-solid-ext svg path {
  fill: var(--color-giallo-savana) !important;
  stroke: var(--color-giallo-savana) !important;
}

.lqd-cc {
  mix-blend-mode: normal !important;
}

/* Slide Counter Line - 100% White */
.lqd-af-slidenum__line {
  background-color: #fff !important;
  opacity: 1 !important;
}

/* GDPR - Minimal overrides to keep original style but update button color */
#lqd-gdpr .lqd-gdpr-accept {
  background-color: var(--color-giallo-savana) !important;
  color: #000 !important;
  border: none !important;
  font-weight: 700 !important;
  transition: background-color 0.3s, color 0.3s !important;
}

#lqd-gdpr .lqd-gdpr-accept:hover {
  background-color: #000 !important;
  color: #fff !important;
}

@media (max-width: 1200px) {
  #lqd-gdpr .lqd-gdpr-inner {
    flex-direction: column !important;
    text-align: center !important;
    padding: 20px !important;
    gap: 20px !important;
  }

  #lqd-gdpr .lqd-gdpr-accept {
    width: 100% !important;
  }

  /* Hide custom cursor on mobile */
  .lqd-cc,
  .lqd-cc--el,
  .lqd-cc--dot,
  .lqd-cc--circle {
    display: none !important;
  }

  body,
  a,
  button {
    cursor: auto !important;
  }
}

#form-contatti {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 99999 !important;
  background: transparent !important;
}

#form-contatti .lqd-modal-inner {
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 100% !important;
  overflow-y: auto !important;
}

#form-contatti .lqd-modal-content {
  padding: 15px 30px;
  max-width: 1000px;
  margin: 0 auto;
  background: transparent !important;
  box-shadow: none !important;
}

.form-container {
  background: transparent;
  max-width: 900px;
  margin: 0 auto;
}

.form-title-section {
  text-align: left;
  margin-bottom: 10px;
}

.form-title-section h3 {
  font-family: "Host Grotesk", sans-serif !important;
  font-weight: 700;
  font-size: 28px;
  margin-bottom: 5px;
  color: #000;
}

.form-title-section p {
  font-size: 16px;
  color: #000;
  margin-bottom: 10px;
}

.contact-buttons-row {
  display: flex;
  gap: 15px;
  margin-bottom: 25px;
}

.btn-form-contact {
  flex: 1;
  padding: 12px 20px;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  border-radius: 0;
  transition: all 0.3s ease;
  text-decoration: none !important;
  display: inline-block;
}

.btn-form-whatsapp {
  background-color: var(--color-rosso-terra);
  color: #fff !important;
  border: 1px solid var(--color-rosso-terra);
}

.btn-form-calendar {
  background-color: #fff !important;
  color: var(--color-rosso-terra) !important;
  border: 1px solid var(--color-rosso-terra);
}


.lqd-lity-container {
  background-image: url('/images/form_background.webp') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.form-grid-layout {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid #C6C6C6;
  border-left: 1px solid #C6C6C6;
  background: #fff !important;
}

.form-cell {
  width: 50%;
  padding: 10px 15px;
  border-right: 1px solid #C6C6C6;
  border-bottom: 1px solid #C6C6C6;
  display: flex;
  flex-direction: column;
}

.form-cell.full-width {
  width: 100%;
}

.form-cell label {
  font-weight: 700;
  font-size: 16px;
  margin-bottom: 5px;
  color: #000;
  font-family: inherit !important;
}

.form-cell .sub-label {
  display: block;
  font-size: 11px;
  color: #4B4B4C;
  margin-bottom: 4px;
}

.form-cell input,
.form-cell textarea {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  font-size: 15px !important;
  color: #000;
  width: 100%;
  font-family: inherit !important;
  outline: none !important;
}

.form-cell input::placeholder,
.form-cell textarea::placeholder {
  color: #BAB6B6 !important;
  font-weight: 400;
}

.form-cell input:focus,
.form-cell select:focus,
.form-cell textarea:focus {
  color: #000000 !important;
}

.not-homepage .main-header {
    background-color: #FFFFFF !important;
}

/* Fix per allineamento contenuti sottopagine */
.not-homepage .breadcrumb,
.not-homepage section:first-of-type,
.not-homepage main section:first-of-type,
.not-homepage .bm-hero {
    margin-top: 0 !important;
    padding-top: 150px !important; /* Adjusted to prevent header overlap */
}

@media (max-width: 991px) {
    .not-homepage .breadcrumb,
    .not-homepage section:first-of-type,
    .not-homepage main section:first-of-type,
    .not-homepage .bm-hero {
        padding-top: 100px !important;
    }
}

.header-spacer {
    height: 120px;
    width: 100%;
}

@media (max-width: 991px) {
    .header-spacer {
        height: 100px;
    }
}

/* --- HEADER THEME STYLES (Black by default, White on Homepage) --- */
.not-homepage .nav-trigger {
    color: #000000;
}

.not-homepage .nav-trigger .bar,
.not-homepage .nav-trigger .bar:before,
.not-homepage .nav-trigger .bar:after {
    background-color: #000000;
}

.is-homepage .nav-trigger {
    color: #FFFFFF;
}

.is-homepage .nav-trigger .bar,
.is-homepage .nav-trigger .bar:before,
.is-homepage .nav-trigger .bar:after {
    background-color: #FFFFFF;
}

/* ============================================================
   CONSOLIDATED MOBILE HEADER & MENU FIXES
   ============================================================ */
@media (max-width: 991px) {
    /* 1. Reset aggressive overrides that broke the theme's JS */
    .main-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        z-index: 1001 !important;
        background-color: transparent !important;
        margin: 0 !important;
    }
    .not-homepage .main-header {
        background-color: #FFFFFF !important;
    }

    /* 2. Toggle Button (X Animation) */
    .nav-trigger .bars {
        width: 30px !important;
        height: 30px !important;
    }
    .nav-trigger .bar {
        background-color: #000 !important; /* Force black bars on mobile white header/menu */
    }
    .is-homepage .nav-trigger:not(.is-active) .bar {
        background-color: #fff !important; /* White bars on homepage transparent header */
    }
    /* Let the theme's natural CSS handle the X transform, just ensure color is right */
    .nav-trigger.is-active .bar {
        background-color: #000 !important;
    }

    /* 3. Fullscreen Nav Fixes */
    #fullscreen-nav {
        z-index: 1000 !important;
        background: transparent !important;
    }
    /* Cover the whole page including header */
    .navbar-fullscreen {
        top: 0 !important;
        height: 100vh !important;
    }
    .lqd-fsh-bg { 
        display: flex !important;
        z-index: -1 !important;
    }
    .lqd-fsh-bg-side-container span,
    .lqd-fsh-bg-col span {
        background: #FFFFFF !important;
    }

    /* 4. Menu Links right-aligned */
    .elementor-8030 .elementor-element.elementor-element-11f174fb {
        margin-top: 40px !important;
    }
    .elementor-8030 .elementor-element.elementor-element-3d94e7a8 .main-nav {
        text-align: right !important;
        align-items: flex-end !important;
        flex-direction: column !important;
        padding-right: 10px !important;
    }
    .elementor-8030 .elementor-element.elementor-element-3d94e7a8 .main-nav > li {
        width: auto !important;
        text-align: right !important;
        margin-left: 20px !important;
    }
    .elementor-8030 .elementor-element.elementor-element-3d94e7a8 .main-nav > li > a {
        font-size: 32px !important;
        padding: 5px 0 !important;
        font-weight: 700 !important;
    }
    
    /* 5. Social Icons */
    .elementor-8030 .elementor-element.elementor-element-35c93ea6 .elementor-grid {
        justify-content: flex-end !important;
    }

    /* 6. Remove requested spacers - targeted IDs */
    .elementor-element-15829275,
    .elementor-8030 .elementor-spacer-inner[style*="height: 6em"],
    .elementor-8030 .elementor-element.elementor-element-2278b0ca,
    .elementor-8030 .elementor-element.elementor-element-31b0e0fc,
    .elementor-8030 .elementor-element.elementor-element-66d49812,
    .elementor-8030 .elementor-element.elementor-element-1544b6a4 {
        display: none !important;
    }

    /* 7. X position when active */
    .navbar-fullscreen-opened .main-nav-trigger {
        right: 20px !important;
        top: 25px !important;
        position: fixed !important;
        z-index: 100001 !important;
    }
    .nav-trigger.is-active .bars {
        animation: fadeInMenuX 0.7s cubic-bezier(0.165, 0.84, 0.44, 1) 0.35s both !important;
    }
    @keyframes fadeInMenuX {
        0% {
            opacity: 0;
            transform: translateX(-40px) !important;
        }
        100% {
            opacity: 1;
            transform: translateX(0) !important;
        }
    }
    /* Logo black on subpages header */
    .not-homepage .main-header .logo-default,
    .not-homepage .main-header .logo-dark,
    .not-homepage .main-header .logo-sticky {
        filter: none !important;
    }

    /* 8. Compact section */
    .elementor-8030 .elementor-element.elementor-element-44174de4 {
        width: 100% !important;
        padding: 20px !important;
        border-top: 1px solid rgba(0,0,0,0.1) !important;
        text-align: center !important;
    }
    .elementor-8030 .elementor-element.elementor-element-44174de4 .lqd-animated-line-l,
    .elementor-8030 .elementor-element.elementor-element-44174de4 .lqd-animated-line-r,
    .elementor-8030 .elementor-element.elementor-element-44174de4 .lqd-animated-line-b {
        display: none !important;
    }
    .elementor-8030 .elementor-element.elementor-element-47e361e3 .ld-fh-element {
        font-size: 32px !important;
        line-height: 1.0 !important;
        text-align: center !important;
        margin-bottom: 5px !important;
    }
    .elementor-8030 .elementor-element.elementor-element-11ad5f2f .ld-fh-element {
        font-size: 16px !important;
        text-align: center !important;
        margin-bottom: 5px !important;
    }
    .elementor-8030 .elementor-element.elementor-element-25d2a900 {
        text-align: center !important;
        display: flex !important;
        justify-content: center !important;
    }
}
/* FINISH CONSOLIDATED FIXES */

/* Logo Size Constraints */
.module-logo img,
.navbar-brand img,
.navbar-brand-inner img {
    max-height: 50px !important;
    width: auto !important;
}

@media (max-width: 767px) {
    .module-logo img,
    .navbar-brand img,
    .navbar-brand-inner img {
        max-height: 40px !important;
    }
}

/* Stili Trigger Menu - Area cliccabile più grande, stile originale */
.elementor-9 .elementor-element.elementor-element-c107d83 .nav-trigger {
  padding: 20px !important;
  /* Aumenta area cliccabile */
  margin: -20px !important;
  /* Ripristina posizione visiva */
  background: transparent !important;
  border: none !important;
}

.nav-trigger .close-txt {
  display: none;
  margin-left: 10px;
  text-transform: uppercase;
}

.nav-trigger .menu-txt {
  margin-left: 10px;
}

.nav-trigger.is-active .menu-txt {
  display: none;
}

.nav-trigger.is-active .close-txt {
  display: inline-block;
}

/* Menu Fullscreen - Stili Testo e Hover */
.elementor-8030 .main-nav>li>a {
  font-weight: 500 !important;
  transition: all 0.3s ease !important;
}

.elementor-8030 .main-nav>li>a:hover,
.elementor-8030 .main-nav>li.is-active>a,
.elementor-8030 .main-nav>li.lqd-is-active>a {
  font-weight: 700 !important;
  color: #000 !important;
}

/* Sottomenu Destinazioni - Effetto Slide Down */
.elementor-8030 .nav-item-children {
  padding: 0 !important;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), opacity 0.3s ease !important;
  opacity: 0;
  display: block !important;
  visibility: hidden;
  background-color: transparent !important;
}

/* Mostra al passaggio del mouse o quando attivo */
.menu-item-has-children:hover>.nav-item-children,
.menu-item-has-children.lqd-is-active>.nav-item-children {
  max-height: 1000px;
  /* Valore alto per permettere l'espansione */
  opacity: 1;
  visibility: visible;
  padding: 10px 0 !important;
}

.elementor-8030 .nav-item-children>li>a {
  font-size: 28px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #4B4B4C !important;
  padding: 5px 0 !important;
  background-color: transparent !important;
}

.elementor-8030 .nav-item-children>li>a:hover {
  font-weight: 700 !important;
  color: #000 !important;
  background-color: transparent !important;
}

/* Rotazione e Spessore Freccia Sottomenu - Senza sfondo */
.elementor-8030 .submenu-expander {
  transition: transform 0.3s ease;
  display: inline-block;
  margin-left: 10px;
  vertical-align: middle;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

.elementor-8030 .submenu-expander svg {
  width: 22px !important;
  height: 22px !important;
  stroke-width: 3px !important;
  /* Più spessa */
}

.lqd-is-active>a .submenu-expander {
  transform: rotate(180deg);
}

/* Select standard styling */
.form-cell select {
  display: block !important;
  width: 100% !important;
  border: none !important;
  background-color: #fff !important;
  color: #000 !important;
  border-radius: 0 !important;
  padding: 0 25px 0 0 !important;
  /* Right padding for arrow, 0 for top/bottom/left to match inputs */
  font-size: 15px !important;
  font-family: inherit !important;
  cursor: pointer !important;
  outline: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e") !important;
  background-repeat: no-repeat !important;
  background-position: right center !important;
  background-size: 16px !important;
}

/* Hide the redundant/broken jQuery UI widget */
.ui-selectmenu-button,
.ui-selectmenu-menu {
  display: none !important;
}

.form-cell select option {
  background-color: #fff !important;
  color: #000 !important;
  padding: 10px !important;
}

.form-cell select:focus,
.form-cell input:focus,
.form-cell textarea:focus {
  outline: none !important;
}

.agency-details-cell {
  display: none;
}

.form-footer-row {
  padding-top: 20px;
}

.privacy-check {
  display: flex !important;
  align-items: center !important;
}

.privacy-check label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-weight: 500 !important;
  color: #000 !important;
  cursor: pointer !important;
  margin-bottom: 0 !important;
  font-size: 14px !important;
}

.privacy-check {
  padding-bottom: 15px;
  display: inline-flex !important;
  gap: 0.5em;
}

.privacy-check input[type="checkbox"] {
  margin: 0 !important;
  width: 14px !important;
  height: 14px !important;
}

.btn-form-submit {
  width: 100%;
  background-color: var(--color-rosso-terra);
  color: #fff !important;
  border: none;
  padding: 15px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.3s;
  text-transform: capitalize;
}

.btn-form-submit:hover {
  background-color: #a3331f;
}

.lqd-modal-inner .lity-close {
  color: #000 !important;
  font-size: 40px !important;
  top: 20px !important;
  right: 30px !important;
}

.elementor-background-overlay {
  background: white !important;
  background-image: unset !important;
  opacity: 0.05;
  transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
}

.elementor-widget-divider {
  display: none;
}

/* Impedisce lo scroll quando il menu è aperto - Solo sui container principali */
.navbar-fullscreen,
.navbar-fullscreen-inner {
  overflow: hidden !important;
}

/* Nota: Rimosso overflow:hidden da #primary-nav per permettere la visibilità del sottomenu */

/* Blocca lo scroll della pagina principale */
html.navbar-fullscreen-opened,
html.mobile-nav-activated,
body.navbar-fullscreen-opened,
body.lqd-column-menu-activated {
  overflow: hidden !important;
  height: 100% !important;
}

.elementor-8030 .elementor-element.elementor-element-25d2a900 .btn,
.elementor-8030 .elementor-element.elementor-element-25d2a900 .btn::before {
  background-color: #a3331f !important;
  color: white !important;
}

.elementor-8030 .elementor-element.elementor-element-47e361e3 .ld-fh-element {
  color: #a3331f !important;
}

.elementor-social-icons-wrapper {
  display: none !important;
}


@media (max-width: 767px) {
    .form-cell {
    width: 100%;
  }

  .contact-buttons-row {
    flex-direction: column;
  }

  #form-contatti .lqd-modal-content {
    padding: 20px;
  }
}

.container-alert {
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    z-index: 999999;
    opacity: 0;
    visibility: hidden;
    transition: all 400ms cubic-bezier(0.165, 0.84, 0.44, 1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.container-alert.open {
    opacity: 1;
    visibility: visible;
}

.alert-modal-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
}

.alert-card {
    width: 90%;
    max-width: 580px;
    background: #fff;
    position: relative;
    z-index: 2;
    padding: 60px 50px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.2);
    transform: scale(0.9);
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.15);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.container-alert.open .alert-card {
    transform: scale(1);
}

.alert-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    cursor: pointer;
    color: #000;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.alert-title {
    font-size: 64px;
    font-weight: 800;
    margin-bottom: 25px;
    color: #000;
    line-height: 1;
    letter-spacing: -2px;
}

.is-success .alert-title {
    color: #027BA3; /* Blue/Cyan from palette */
}

.alert-text {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 20px;
    color: #1D1D1D;
    line-height: 1.3;
}

.alert-subtext {
    font-size: 14px;
    color: #666;
    margin-bottom: 35px;
    max-width: 380px;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

.alert-actions {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
}

.btn-alert-action {
    width: 100%;
    max-width: 400px;
    padding: 18px 30px;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    display: inline-block;
}

.explore-btn {
    background-color: #027BA3;
    color: #fff !important;
}

.explore-btn:hover {
    background-color: #026080;
    transform: translateY(-2px);
}

.btn-ok {
    background-color: #1D1D1D;
    color: #fff;
}

.btn-ok:hover {
    background-color: #000;
}

@media (max-width: 767px) {
    .alert-card {
        padding: 50px 25px;
    }
    .alert-title {
        font-size: 48px;
    }
    .alert-text {
        font-size: 20px;
    }
}
.container-overlay{position: fixed;width: 100%;height: 100%;left: 0;top:0;text-align: center;z-index: 5;opacity: 0;visibility: hidden;transition:all 400ms; background-color: rgba(0, 0, 0, 0.5)}
.container-overlay.open{opacity: 1;visibility: visible}

/* --- SITE FOOTER STYLES --- */
.site-footer {
    width: 100%;
    font-family: 'Host Grotesk', sans-serif;
    color: var(--color-bianco);
}

.footer-top {
    position: relative;
    padding: 100px 20px;
    background-color: var(--color-bianco);
    text-align: center;
    color: var(--color-nero);
    z-index: 2;
}

/* Background image overlay that overflows at the bottom */
.footer-top .lqd-overlay-white {
    position: absolute;
    top: 0; left: 0; right: 0; 
    bottom: -40px; /* Overlap only for the image */
    background-image: url('/images/bg_footer_1.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    pointer-events: none;
}

.footer-top-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
}

.footer-top h2 {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 20px;
    line-height: 1.2;
    color: var(--color-nero);
}

.footer-top p {
    font-size: 24px;
    font-weight: 400;
    margin-bottom: 40px;
    color: var(--color-nero);
}

.footer-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.btn-footer {
    padding: 15px 40px;
    border: 2px solid var(--color-rosso);
    background: transparent;
    color: var(--color-rosso);
    font-weight: 700;
    font-size: 18px;
    text-decoration: none;
    transition: all 0.3s ease;
    min-width: 220px;
}

.btn-footer:hover {
    background: var(--color-rosso);
    color: var(--color-bianco);
    text-decoration: none;
}

.footer-main {
    background-color: var(--color-blu);
    background-image: url('/images/bg_footer_2.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    padding: 80px 20px 40px;
    position: relative;
    z-index: 1;
}

.footer-main-container {
    max-width: 1200px;
    margin: 0 auto;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.footer-col h4 {
    font-size: 22px;
    font-weight: 800;
    margin-bottom: 30px;
    color: var(--color-bianco);
}

.footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-col ul li {
    margin-bottom: 12px;
}

.footer-col ul li a {
    color: var(--color-bianco);
    text-decoration: none;
    font-size: 18px;
    opacity: 0.9;
    transition: opacity 0.3s;
}

.footer-col ul li a:hover {
    opacity: 1;
    text-decoration: underline;
}

.footer-info-item {
    margin-bottom: 25px;
}

.footer-info-item span {
    display: block;
    font-weight: 800;
    font-size: 16px;
    margin-bottom: 5px;
}

.footer-info-item p, .footer-info-item a {
    margin: 0;
    font-size: 18px;
    color: var(--color-bianco);
    text-decoration: none;
}

.social-links {
    display: flex;
    gap: 15px;
}

.social-icon {
    width: 45px;
    height: 45px;
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-bianco);
    text-decoration: none;
    transition: all 0.3s ease;
}

.social-icon:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--color-bianco);
}

.social-icon i {
    font-size: 20px;
}

.footer-bottom {
    border-top: 2px solid #FFFFFF;
    margin-top: 60px;
    padding-top: 40px;
    margin-left: -20px;
    margin-right: -20px;
}

/* Floating Contact Button (Ballon) */
.floating-contact-btn {
    position: fixed !important;
    bottom: 30px !important;
    right: 30px !important;
    z-index: 99999 !important;
    display: block;
}

.floating-contact-btn .btn {
    width: 65px !important;
    height: 65px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    background-color: var(--color-bianco) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible;
}

.floating-contact-btn .btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.3) !important;
}

.footer-bottom-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    width: 100%;
}

.footer-bottom-info {
    font-size: 14px;
    opacity: 0.8;
}

.footer-bottom-logo {
    flex-grow: 1;
    text-align: right;
}

.footer-bottom-logo img {
    height: 60px;
    width: auto;
    display: inline-block;
}

@media (max-width: 991px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }
    
    .footer-top h2 { font-size: 32px; }
    .footer-top p { font-size: 18px; }
    
    .footer-bottom-inner {
        flex-direction: column;
        text-align: center;
    }
}


/*DISPLAY NONE*/
#MainContent_breadcrumb {
    display: none !important;
}

.sidebar-filtri, .floating-contact-btn, .tag-tipologia {
    display: none !important;
}