.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-2327 .elementor-element.elementor-element-e140a50{width:100%;}}/* Start custom CSS for html, class: .elementor-element-4783d09 *//* =====================================================
   HEADER — IO PER L'ALTRO APS
===================================================== */

.ipa-site-header {

  --ipa-green: #123d35;
  --ipa-green-dark: #07332d;
  --ipa-yellow: #f5c04d;
  --ipa-cream: #faf7ef;

  position: relative;
  z-index: 9999;

  width: 100vw;
  max-width: 100vw;

  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  background: rgba(250,247,239,.96);

  border-bottom:
    1px solid rgba(18,61,53,.07);

  color: var(--ipa-green);

  font-family: inherit;
}


.ipa-site-header *,
.ipa-site-header *::before,
.ipa-site-header *::after {
  box-sizing: border-box;
}


/* =====================================================
   CONTENITORE
===================================================== */

.ipa-header-container {

  width: calc(100% - 50px);
  max-width: 1700px;

  min-height: 92px;

  margin: 0 auto;

  display: grid;

  grid-template-columns:
    auto 1fr auto;

  align-items: center;

  gap: 45px;
}


/* =====================================================
   LOGO
===================================================== */

.ipa-header-logo {

  display: flex;

  align-items: center;

  text-decoration: none;
}


.ipa-header-logo img {

  display: block;

  width: auto;

  height: 62px;

  max-width: 150px;

  object-fit: contain;
}


/* =====================================================
   MENU DESKTOP
===================================================== */

.ipa-main-nav {

  display: flex;

  align-items: center;

  justify-content: center;

  gap: clamp(19px, 2vw, 36px);
}


.ipa-main-nav a {

  position: relative;

  padding:
    35px 0 32px;

  color: var(--ipa-green);

  text-decoration: none;

  font-size: 14px;

  font-weight: 750;

  line-height: 1;

  white-space: nowrap;

  transition:
    color .2s ease;
}


.ipa-main-nav a::after {

  content: "";

  position: absolute;

  left: 50%;
  bottom: 24px;

  width: 0;
  height: 3px;

  background: var(--ipa-yellow);

  border-radius: 999px;

  transform: translateX(-50%);

  transition:
    width .24s ease;
}


.ipa-main-nav a:hover {

  color: var(--ipa-green-dark);
}


.ipa-main-nav a:hover::after {

  width: 100%;
}


/* =====================================================
   CTA CONTATTACI
===================================================== */

.ipa-header-actions {

  display: flex;

  align-items: center;

  gap: 14px;
}


.ipa-site-header .ipa-header-cta {

  display: inline-flex !important;

  align-items: center !important;
  justify-content: center !important;

  gap: 12px !important;

  min-height: 44px !important;
  height: 44px !important;

  padding:
    0 21px !important;

  background:
    var(--ipa-yellow) !important;

  border:
    0 !important;

  border-radius:
    999px !important;

  color:
    var(--ipa-green) !important;

  text-decoration:
    none !important;

  font-size:
    14px !important;

  line-height:
    1 !important;

  font-weight:
    850 !important;

  box-shadow:
    0 8px 20px rgba(217,155,25,.15) !important;

  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease !important;
}


.ipa-site-header .ipa-header-cta:hover {

  background:
    #e9ae31 !important;

  color:
    var(--ipa-green) !important;

  transform:
    translateY(-2px);

  box-shadow:
    0 12px 25px rgba(217,155,25,.22) !important;
}


.ipa-site-header .ipa-header-cta span {

  font-size:
    17px !important;

  line-height:
    1 !important;
}


/* =====================================================
   HAMBURGER — NASCOSTO SU DESKTOP
===================================================== */

.ipa-menu-toggle {

  display: none;

  width: 46px;
  height: 46px;

  padding: 0;

  border:
    1px solid rgba(18,61,53,.20);

  border-radius:
    50%;

  background:
    transparent;

  cursor:
    pointer;

  align-items:
    center;

  justify-content:
    center;

  flex-direction:
    column;

  gap:
    5px;
}


.ipa-menu-toggle span {

  display:
    block;

  width:
    21px;

  height:
    2px;

  margin:
    0;

  background:
    var(--ipa-green);

  border-radius:
    999px;

  transition:
    transform .25s ease,
    opacity .25s ease;
}


/* =====================================================
   MENU MOBILE — BASE
===================================================== */

.ipa-mobile-menu {

  display:
    none;
}


/* =====================================================
   FIX ELEMENTOR THEME BUILDER
===================================================== */

.elementor-location-header {

  position:
    relative !important;

  z-index:
    9999 !important;

  width:
    100% !important;

  max-width:
    none !important;

  overflow:
    visible !important;
}


.elementor-location-header .e-con,
.elementor-location-header .e-con-inner {

  overflow:
    visible !important;
}


.elementor-location-header
.elementor-widget-html,

.elementor-location-header
.elementor-widget-html
.elementor-widget-container {

  width:
    100% !important;

  max-width:
    none !important;

  overflow:
    visible !important;
}


/* =====================================================
   TABLET + MOBILE
===================================================== */

@media (max-width: 1050px) {

  /* layout principale */

  .elementor-location-header
  .ipa-site-header
  .ipa-header-container {

    width:
      calc(100% - 30px) !important;

    max-width:
      none !important;

    min-height:
      74px !important;

    margin:
      0 auto !important;

    display:
      flex !important;

    align-items:
      center !important;

    justify-content:
      space-between !important;

    gap:
      20px !important;
  }


  /* nascondi menu desktop */

  .elementor-location-header
  .ipa-site-header
  .ipa-main-nav {

    display:
      none !important;
  }


  /* nascondi CTA desktop */

  .elementor-location-header
  .ipa-site-header
  .ipa-header-cta {

    display:
      none !important;
  }


  /* logo */

  .elementor-location-header
  .ipa-site-header
  .ipa-header-logo {

    display:
      flex !important;

    align-items:
      center !important;

    flex:
      0 0 auto !important;
  }


  .elementor-location-header
  .ipa-site-header
  .ipa-header-logo img {

    width:
      auto !important;

    height:
      52px !important;

    max-width:
      120px !important;
  }


  /* area azioni */

  .elementor-location-header
  .ipa-site-header
  .ipa-header-actions {

    display:
      flex !important;

    align-items:
      center !important;

    margin-left:
      auto !important;
  }


  /* mostra hamburger */

  .elementor-location-header
  .ipa-site-header
  .ipa-menu-toggle {

    display:
      flex !important;

    flex:
      0 0 46px !important;

    width:
      46px !important;

    height:
      46px !important;

    padding:
      0 !important;

    margin:
      0 !important;

    align-items:
      center !important;

    justify-content:
      center !important;

    flex-direction:
      column !important;

    gap:
      5px !important;

    visibility:
      visible !important;

    opacity:
      1 !important;

    border:
      1.5px solid rgba(18,61,53,.22) !important;

    border-radius:
      50% !important;

    background:
      transparent !important;
  }


  .elementor-location-header
  .ipa-site-header
  .ipa-menu-toggle span {

    display:
      block !important;

    width:
      21px !important;

    height:
      2px !important;

    background:
      var(--ipa-green) !important;

    border:
      0 !important;

    border-radius:
      999px !important;
  }


  /* =====================================================
     HAMBURGER → X
  ===================================================== */

  .elementor-location-header
  .ipa-site-header.is-menu-open
  .ipa-menu-toggle span:nth-child(1) {

    transform:
      translateY(7px) rotate(45deg) !important;
  }


  .elementor-location-header
  .ipa-site-header.is-menu-open
  .ipa-menu-toggle span:nth-child(2) {

    opacity:
      0 !important;
  }


  .elementor-location-header
  .ipa-site-header.is-menu-open
  .ipa-menu-toggle span:nth-child(3) {

    transform:
      translateY(-7px) rotate(-45deg) !important;
  }


  /* =====================================================
     MENU MOBILE CHIUSO
  ===================================================== */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu {

    position:
      absolute !important;

    z-index:
      99999 !important;

    top:
      100% !important;

    left:
      0 !important;

    width:
      100% !important;

    max-width:
      none !important;

    display:
      block !important;

    max-height:
      0 !important;

    overflow:
      hidden !important;

    opacity:
      0 !important;

    visibility:
      hidden !important;

    background:
      var(--ipa-cream) !important;

    border-top:
      1px solid rgba(18,61,53,.08) !important;

    box-shadow:
      0 24px 45px rgba(18,61,53,.13) !important;

    transition:
      max-height .35s ease,
      opacity .25s ease,
      visibility .25s ease !important;
  }


  /* =====================================================
     MENU MOBILE APERTO
  ===================================================== */

  .elementor-location-header
  .ipa-site-header.is-menu-open
  .ipa-mobile-menu {

    max-height:
      700px !important;

    opacity:
      1 !important;

    visibility:
      visible !important;
  }


  /* contenitore link */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu nav {

    width:
      calc(100% - 30px) !important;

    margin:
      0 auto !important;

    padding:
      14px 0 24px !important;

    display:
      flex !important;

    flex-direction:
      column !important;
  }


  /* link */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu nav > a {

    width:
      100% !important;

    display:
      flex !important;

    align-items:
      center !important;

    justify-content:
      space-between !important;

    padding:
      16px 4px !important;

    margin:
      0 !important;

    border:
      0 !important;

    border-bottom:
      1px solid rgba(18,61,53,.08) !important;

    background:
      transparent !important;

    color:
      var(--ipa-green) !important;

    text-decoration:
      none !important;

    font-size:
      18px !important;

    line-height:
      1.2 !important;

    font-weight:
      750 !important;
  }


  /* freccia automatica */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu nav > a:not(.ipa-mobile-contact)::after {

    content:
      "→";

    color:
      #d99b19;

    font-size:
      17px;
  }


  /* hover */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu nav > a:hover {

    color:
      #d99b19 !important;
  }


  /* =====================================================
     CONTATTACI MOBILE
  ===================================================== */

  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu
  .ipa-mobile-contact {

    min-height:
      50px !important;

    margin-top:
      16px !important;

    padding:
      0 22px !important;

    justify-content:
      center !important;

    gap:
      12px !important;

    border-bottom:
      0 !important;

    border-radius:
      999px !important;

    background:
      var(--ipa-yellow) !important;

    color:
      var(--ipa-green) !important;

    font-weight:
      850 !important;
  }

}


/* =====================================================
   MOBILE PICCOLO
===================================================== */

@media (max-width: 767px) {

  .elementor-location-header
  .ipa-site-header
  .ipa-header-container {

    width:
      calc(100% - 26px) !important;
  }


  .elementor-location-header
  .ipa-site-header
  .ipa-header-logo img {

    height:
      50px !important;

    max-width:
      115px !important;
  }


  .elementor-location-header
  .ipa-site-header
  .ipa-menu-toggle {

    width:
      44px !important;

    height:
      44px !important;

    flex-basis:
      44px !important;
  }


  .elementor-location-header
  .ipa-site-header
  .ipa-mobile-menu nav {

    width:
      calc(100% - 26px) !important;
  }

}/* End custom CSS */