﻿/* ============================================================
   AIFI — Header interno + Footer only
   CSS pulito: solo header, menu overlay, popup area riservata e footer.
   Tutte le section centrali sono state rimosse dall'HTML.
   ============================================================ */

/* ============================================================
   01 — Header interno AIFI + menu overlay + popup area riservata
   Estratto da interna_header_only(2).html
   ============================================================ */
:root {
      /* AIFI design system tokens */
      --primary-light: #F2F7D8;
      --primary-soft: #E5EEB1;
      --primary-base: #AFCA0B;
      --primary-hover: #95AC09;
      --primary-dark: #606F06;

      --secondary-light: #F0F5F3;
      --secondary-soft: #DBE7E4;
      --secondary-base: #01523B;
      --secondary-hover: #014834;
      --secondary-dark: #002219;

      --neutral-white: #FFFFFF;
      --neutral-background: #F8FAF9;
      --neutral-surface: #F1F4F3;
      --neutral-border: #D0D7D5;
      --neutral-muted: #9AA6A3;
      --neutral-text-secondary: #4D5A56;
      --neutral-text-primary: #111A17;

      --background-default: #FFFFFF;
      --background-page: #F8FAF9;
      --background-soft: #F1F4F3;
      --background-brand-soft: #F0F5F3;
      --background-brand-dark: #002219;
      --background-highlight: #F2F7D8;

      --text-primary: #111A17;
      --text-secondary: #4D5A56;
      --text-muted: #9AA6A3;
      --text-inverse: #FFFFFF;
      --text-brand: #01523B;

      --border-light: #E4E8E7;
      --border-default: #D0D7D5;
      --border-strong: #9AA6A3;
      --border-brand: #01523B;
      --border-accent: #AFCA0B;

      --editorial-red-light: #FFF1F1;
      --editorial-red-soft: #FFDADA;
      --editorial-red-base: #D92D20;
      --editorial-red-hover: #B42318;
      --editorial-red-dark: #7A271A;

      /* Local aliases preserve the approved visual treatment. */
      --green: var(--secondary-base);
      --lime: var(--primary-base);
      --white: var(--neutral-white);
      --text: var(--text-primary);
      --page-bg: transparent;
      --footer-height: 560px;
      --header-height: 80px;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      width: 100%;
      overflow-x: hidden;
      background: var(--background-page);
      color: var(--text);
      font-family: "Outfit", Arial, sans-serif;
      letter-spacing: 0;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    button {
      font: inherit;
      border: 0;
      appearance: none;
      -webkit-appearance: none;
    }

    img {
      max-width: 100%;
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    /* =========================
       Header globale AIFI
       ========================= */
    .site-header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 30;
      display: flex;
      align-items: center;
      justify-content: space-between;
      height: var(--header-height);
      padding: 24px 64px;
      background: transparent;
      color: var(--white);
      transition: background 180ms ease, color 180ms ease;
    }

    .site-header.is-solid {
      background: var(--green);
    }

    .logo {
      display: inline-flex;
      flex-direction: column;
      color: var(--green);
      line-height: 0.74;
      transition: color 180ms ease;
    }

    .logo-image {
      display: block;
      width: 150px;
      height: auto;
    }

    .logo-image--green {
      display: none;
    }

    .logo-image--white {
      display: block;
    }

    .site-header:not(.is-solid) .logo-image--green {
      display: none;
    }

    .site-header:not(.is-solid) .logo-image--white {
      display: block;
    }

    .logo-image--footer {
      width: 168px;
    }

    .header-actions {
      display: flex;
      align-items: center;
      gap: 16px;
      color: var(--white);
      font-weight: 700;
      font-size: 14px;
    }

    .icon-button {
      display: inline-grid;
      place-items: center;
      width: 44px;
      height: 44px;
      border: 0;
      border-radius: 50%;
      background: transparent;
      color: currentColor;
      padding: 0;
      cursor: pointer;
      transition: background 180ms ease, color 180ms ease;
    }

    .language-link {
      display: inline-grid;
      place-items: center;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      transition: background 180ms ease, color 180ms ease;
    }

    .pill {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      height: 44px;
      padding: 0 20px;
      border-radius: 24px;
      border: 1px solid var(--white);
      background: transparent;
      color: var(--white);
      font: inherit;
      font-weight: 700;
      cursor: pointer;
      transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
    }

    .pill-solid {
      border-color: var(--white);
      background: var(--white);
      color: var(--green);
    }

    .reserved-link__icon {
      display: none;
      width: 20px;
      height: 20px;
    }

    .reserved-link__logged-text,
    .reserved-link__logged-icon,
    .reserved-link__arrow {
      display: none;
    }

    .is-logged-in .reserved-link__guest-text,
    .is-logged-in .reserved-link__guest-icon {
      display: none;
    }

    .is-logged-in .reserved-link__logged-text,
    .is-logged-in .reserved-link__arrow {
      display: inline-flex;
    }

    .reserved-link__arrow {
      width: 15px;
      height: 15px;
      filter: brightness(0) invert(1);
    }

is-logged-in .reserved-link__guest-text, .is-logged-in .reserved-link__guest-icon {
    display: none;
}

.is-logged-in .reserved-link__logged-text, .is-logged-in .reserved-link__arrow {
    display: inline-flex;
}

.is-logged-in .reserved-link__arrow--green {
    display: none;
}

.is-logged-in .reserved-link__arrow--white {
    display: inline-flex;
}

    .site-header .reserved-link .reserved-link__arrow,
    .site-header .reserved-link:hover .reserved-link__arrow,
    .site-header .reserved-link:active .reserved-link__arrow,
    .site-header .reserved-link:focus .reserved-link__arrow,
    .site-header .reserved-link:focus-visible .reserved-link__arrow,
    .site-header.is-solid .reserved-link .reserved-link__arrow {
      filter: brightness(0) invert(1);
    }

    .site-header .icon-button:hover,
    .site-header .language-link:hover {
      background: var(--secondary-hover);
      color: var(--text-inverse);
    }

    .site-header .pill:hover {
      border-color: var(--primary-base);
      background: var(--secondary-hover);
      color: var(--text-inverse);
    }

    .site-header .pill-solid:hover {
      border-color: var(--primary-base);
      background: var(--primary-base);
      color: var(--secondary-dark);
    }

    .site-header a:focus-visible,
    .site-header button:focus-visible,
    .home-cta:focus-visible,
    .login-modal button:focus-visible,
    .login-modal input:focus-visible,
    .login-modal a:focus-visible,
    .slider-control:focus-visible,
    .slider-indicator:focus-visible,
    .mobile-carousel-control:focus-visible {
      outline: 3px solid var(--border-accent);
      outline-offset: 4px;
      border-radius: 24px;
    }

    .hamburger {
      display: grid;
      gap: 4px;
      width: 16px;
    }

    .hamburger span {
      display: block;
      height: 2px;
      border-radius: 8px;
      background: currentColor;
    }

    /* =========================
       Popup Area riservata
       ========================= */
    .login-modal {
      position: fixed;
      inset: 0;
      z-index: 100;
      display: none;
      place-items: center;
      padding: 24px;
      background: color-mix(in srgb, var(--secondary-dark) 28%, transparent);
    }

    .login-modal.is-open {
      display: grid;
    }

    .login-dialog {
      position: relative;
      display: grid;
      grid-template-columns: minmax(360px, 1fr) minmax(360px, 1fr);
      width: min(1240px, calc(100vw - 48px));
      min-height: 720px;
      overflow: hidden;
      border-radius: 28px;
      background: var(--white);
      box-shadow: 0 24px 80px color-mix(in srgb, var(--secondary-dark) 18%, transparent);
    }

    .login-brand {
      display: grid;
      place-items: center;
      padding: 64px;
      background: var(--primary-base);
    }

    .login-brand img {
      width: 240px;
      height: auto;
    }

    .login-panel {
      display: grid;
      align-content: center;
      padding: 96px 78px;
    }

    .login-close {
      position: absolute;
      top: 28px;
      right: 28px;
      display: inline-grid;
      place-items: center;
      width: 48px;
      height: 48px;
      border: 0;
      background: transparent;
      color: var(--text);
      cursor: pointer;
    }

    .login-close::before,
    .login-close::after {
      content: "";
      position: absolute;
      width: 42px;
      height: 4px;
      border-radius: 4px;
      background: currentColor;
    }

    .login-close::before {
      transform: rotate(45deg);
    }

    .login-close::after {
      transform: rotate(-45deg);
    }

    .login-title {
      margin: 0;
      color: var(--primary-base);
      font-size: 54px;
      line-height: 1;
      font-weight: 800;
      text-transform: uppercase;
    }

    .login-subtitle {
      margin: 10px 0 26px;
      color: var(--text-secondary);
      font-size: 18px;
      line-height: 1.45;
    }

    .login-form {
      display: grid;
      gap: 24px;
    }

    .login-field {
      position: relative;
    }

    .login-field input {
      width: 100%;
      height: 66px;
      padding: 0 20px;
      border: 1px solid var(--border-default);
      border-radius: 16px;
      background: var(--background-page);
      color: var(--text);
      font: inherit;
      font-size: 18px;
    }

    .login-field input::placeholder {
      color: var(--text-muted);
    }

    .password-toggle {
      position: absolute;
      top: 50%;
      right: 16px;
      display: inline-grid;
      place-items: center;
      width: 36px;
      height: 36px;
      border: 0;
      background: transparent;
      color: var(--text-secondary);
      transform: translateY(-50%);
      cursor: pointer;
    }

    .password-toggle svg {
      width: 24px;
      height: 24px;
    }

.login-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    border: 0;
    border-radius: 16px;
    background: var(--primary-base);
    color: var(--white);
    font: inherit;
    font-size: 20px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: background 180ms ease, color 180ms ease;
}

    .login-submit:hover {
      background: var(--primary-hover);
    }

    .login-help,
    .login-register {
      margin: 26px 0 0;
      color: #536075;
      font-size: 17px;
      line-height: 1.4;
      text-align: center;
    }

    .login-help a,
    .login-register a {
      color: var(--primary-base);
      font-weight: 800;
    }

    .login-divider {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      gap: 20px;
      margin: 28px 0 0;
      color: #6B7280;
      font-size: 17px;
    }

    .login-divider::before,
    .login-divider::after {
      content: "";
      height: 1px;
      background: #8D96A6;
    }


    .login-success-message {
      display: none;
      margin: 0;
      color: var(--secondary-base);
      font-size: 22px;
      line-height: 1.35;
      font-weight: 800;
      text-align: center;
    }

    .login-modal.is-recovery-sent .login-title,
    .login-modal.is-recovery-sent .login-subtitle,
    .login-modal.is-recovery-sent .login-form,
    .login-modal.is-recovery-sent .login-help,
    .login-modal.is-recovery-sent .login-divider,
    .login-modal.is-recovery-sent .login-register {
      display: none;
    }

    .login-modal.is-recovery-sent .login-success-message {
      display: block;
    }



/* =========================
   Responsive essenziale header + popup
   ========================= */
@media (max-width: 1199px) {
  .site-header {
    padding-left: 32px;
    padding-right: 32px;
  }

    .hero-content {
        padding: 0 32px;
    }

    :root {
        --footer-height: 640px;
    }

    .lead-title {
        max-width: 880px;
    }
}

@media (max-width: 767px) {
  .site-header {
    height: 80px;
    padding: 16px 24px;
    background: transparent;
  }

    :root {
        --footer-height: 0px;
    }

  .logo-image {
    width: 108px;
  }

  .header-actions {
    gap: 8px;
    font-size: 13px;
  }

    .is-logged-in .site-header:not(.is-solid) .reserved-link__logged-icon--green {
        display: block;
    }

  .reserved-link {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-color: var(--white);
    background: transparent;
  }

  .site-header.is-solid .reserved-link {
    background: var(--white);
  }

  .site-header:not(.is-solid) .reserved-link__guest-icon--green {
    display: none;
  }

  .site-header:not(.is-solid) .reserved-link__guest-icon--white {
    display: block;
  }

  .site-header.is-solid .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header.is-solid .reserved-link__guest-icon--white {
    display: none;
  }

  .reserved-link__text {
    display: none;
  }

  .reserved-link__icon {
    width: 28px;
    height: 28px;
  }

  .reserved-link__guest-icon--green {
    display: block;
  }

  .reserved-link__guest-icon--white {
    display: none;
  }

  .is-logged-in .reserved-link__logged-text,
  .is-logged-in .reserved-link__arrow {
    display: none;
  }

  .is-logged-in .reserved-link__logged-icon {
    display: block;
    width: 28px;
    height: 28px;
  }

  .site-header .reserved-link:hover,
  .site-header .reserved-link:active,
  .site-header .reserved-link:focus {
    border-color: var(--white);
  }

  .site-header:not(.is-solid) .reserved-link:hover,
  .site-header:not(.is-solid) .reserved-link:active,
  .site-header:not(.is-solid) .reserved-link:focus {
    background: transparent;
    color: var(--white);
  }

  .site-header.is-solid .reserved-link:hover,
  .site-header.is-solid .reserved-link:active,
  .site-header.is-solid .reserved-link:focus {
    background: var(--white);
    color: var(--green);
  }

  .pill {
    height: 40px;
    padding: 0 14px;
    border-radius: 24px;
  }

    .hero {
        position: sticky;
        top: 80px;
        height: 288px;
        background-position: center;
    }

    .hero-content {
        padding: 0 24px;
    }

    .hero h1 {
        font-size: 32px;
    }

    .hero-line {
        width: 104px;
    }


  .login-modal {
    padding: 16px;
  }

  .login-dialog {
    grid-template-columns: 1fr;
    width: min(100%, 420px);
    min-height: auto;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    border-radius: 24px;
  }

  .login-brand {
    display: none;
  }

  .login-panel {
    padding: 48px 24px 32px;
  }

  .login-close {
    top: 18px;
    right: 18px;
    width: 40px;
    height: 40px;
  }

  .login-close::before,
  .login-close::after {
    width: 32px;
    height: 3px;
  }

  .login-title {
    font-size: 40px;
  }

  .login-subtitle,
  .login-help,
  .login-register,
  .login-divider {
    font-size: 15px;
  }

  .login-success-message {
    font-size: 19px;
  }

  .login-field input {
    height: 56px;
    font-size: 16px;
  }

  .login-submit {
    height: 56px;
    font-size: 18px;
  }

    .claim {
        max-width: 304px;
        margin-top: 24px;
    }

    p {
        font-size: 15px;
        line-height: 1.6;
    }

}

@media (max-width: 479px) {
    :root {
        --footer-height: 0px;
    }

  .site-header {
    padding: 16px;
  }

    .hero-content,
    .content-card,
    .activities-card {
        padding-left: 16px;
        padding-right: 16px;
    }

  .logo-image {
    width: 120px;
  }

  .header-actions {
    gap: 8px;
  }

  .pill {
    height: 36px;
    padding: 0 10px;
  }

  .reserved-link {
    width: 36px;
  }

  .language-link,
  .icon-button {
    width: 36px;
    height: 36px;
  }

    .lead-title {
        font-size: 28px;
    }
}



@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}

/* =========================
   Header: ricerca + menu overlay interno
   ========================= */
:root {
  --aifi-green: var(--secondary-base);
  --aifi-lime: var(--primary-base);
  --aifi-white: var(--neutral-white);
  --aifi-bg: var(--neutral-background);
  --aifi-border: var(--border-light);
  --aifi-ink: var(--text-primary);
  --aifi-text-secondary: var(--text-secondary);
  --aifi-muted: var(--text-muted);
  --aifi-left-w: clamp(316px, 24vw, 366px);
  --aifi-center-w: clamp(372px, 29vw, 448px);
  --aifi-sidebar-w: 68px;
  --ease-page: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --panel-duration: 0.78s;
}

.site-header {
  overflow: visible;
}

.site-header__search {
  position: fixed;
  top: var(--header-height);
  left: 0;
  right: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  gap: 18px;
  height: 0;
  padding: 0 64px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(1, 82, 59, 0.08);
  box-shadow: 0 18px 42px rgba(17, 26, 23, 0.06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: height 0.4s var(--ease-soft), opacity 0.28s ease;
}

.site-header.is-search-open .site-header__search {
  height: 96px;
  opacity: 1;
  pointer-events: auto;
}

.site-header__search-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 18px;
  min-width: 18px;
  height: 18px;
  color: rgba(1, 82, 59, 0.54);
}

.site-header__search-icon svg {
  width: 18px;
  height: 18px;
}

.site-header__search input {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  border: none;
  outline: none !important;
  box-shadow: none !important;
  background: transparent;
  border-radius: 0;
  font-family: 'Outfit', sans-serif;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 500;
  letter-spacing: -0.045em;
  color: var(--aifi-ink);
  caret-color: var(--aifi-lime);
}

.site-header__search input:focus,
.site-header__search input:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.site-header__search input::placeholder {
  color: rgba(77, 90, 86, 0.44);
  font-weight: 500;
}

.site-header__search-cta {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 52px;
  min-width: 52px;
  height: 52px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--aifi-green);
  color: var(--aifi-white);
  cursor: pointer;
  opacity: 0;
  transform: scale(0.55);
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.42s var(--ease-soft), background 0.2s ease;
}

.site-header__search-cta img {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}

.site-header__search.has-text .site-header__search-cta {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

.site-header__search-cta:hover,
.site-header__search-cta:focus-visible {
  background: var(--secondary-hover);
  transform: scale(1.06);
  outline: none !important;
}

.site-header.is-search-open #aifiHeaderSearchToggle {
  opacity: 0;
  pointer-events: none;
}

@media (max-width: 1199px) {
  .site-header__search {
    padding: 0 32px;
  }
}

@media (max-width: 767px) {
  .site-header__search {
    top: 80px;
    padding: 0 20px;
    gap: 12px;
  }

  .site-header.is-search-open .site-header__search {
    height: 64px;
  }

  .site-header__search-icon,
  .site-header__search-icon svg {
    width: 16px;
    min-width: 16px;
    height: 16px;
  }

  .site-header__search input {
    font-size: 22px;
    letter-spacing: -0.04em;
  }

  .site-header__search-cta {
    width: 40px;
    min-width: 40px;
    height: 40px;
  }

  .site-header__search-cta img {
    width: 17px;
    height: 17px;
  }
}

@media (max-width: 390px) {
  .site-header__search {
    padding: 0 16px;
  }

  .site-header__search input {
    font-size: 20px;
  }
}

/* ============================================================
   OVERLAY E APERTURA A “LIBRO”
   ============================================================ */
.aifi-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow: hidden;
  pointer-events: none;
  visibility: hidden;
  background: transparent;
  transition: visibility 0s linear 0.9s;
}

.aifi-menu-overlay.is-open {
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.aifi-menu-panel,
.aifi-menu-sidebar {
  position: absolute;
  top: 0;
  bottom: 0;
  transform: translateY(-104%);
  transition: transform var(--panel-duration) var(--ease-page);
  will-change: transform;
}

.aifi-menu-overlay.is-open .aifi-menu-panel,
.aifi-menu-overlay.is-open .aifi-menu-sidebar {
  transform: translateY(0);
}

/* Ombra/cordonatura sottile tra le pagine. */
.aifi-menu-panel::after {
  content: "";
  position: absolute;
  top: 0;
  right: -18px;
  bottom: 0;
  z-index: 5;
  width: 18px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(17, 26, 23, 0.08), rgba(17, 26, 23, 0));
  opacity: 0.42;
}

.aifi-menu-panel--left {
  left: 0;
  z-index: 4;
  width: var(--aifi-left-w);
  background: var(--aifi-green);
  transition-delay: 0s;
}

.aifi-menu-panel--center {
  left: var(--aifi-left-w);
  z-index: 3;
  width: var(--aifi-center-w);
  background: var(--aifi-bg);
  border-right: 1px solid var(--aifi-border);
  transition-delay: 0.08s;
}

.aifi-menu-panel--right {
  left: calc(var(--aifi-left-w) + var(--aifi-center-w));
  right: var(--aifi-sidebar-w);
  z-index: 2;
  background: var(--aifi-white);
  transition-delay: 0.16s;
}

.aifi-menu-sidebar {
  right: 0;
  z-index: 6;
  width: var(--aifi-sidebar-w);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 22px 0 18px;
  border-bottom-right-radius: 0;
  background: var(--aifi-green);
  transition-delay: 0.24s;
}

/* ============================================================
   PANNELLO SINISTRO — indice principale
   ============================================================ */
.aifi-menu-left__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.aifi-menu-left__top {
  padding: 28px 34px 18px;
}

.aifi-menu-left__logo {
  display: block;
  width: 150px;
  height: auto;
}

.aifi-menu-left__heading {
  padding: 34px 34px 18px;
}

.aifi-menu-left__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  color: var(--aifi-lime);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.aifi-menu-left__eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
}

.aifi-menu-left__heading h2 {
  color: var(--aifi-white);
  font-size: clamp(38px, 4vw, 52px);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 1;
  text-transform: uppercase;
}

.aifi-menu-nav {
  flex: 1;
  overflow-y: auto;
  padding: 6px 34px 18px;
  scrollbar-width: none;
}

.aifi-menu-nav::-webkit-scrollbar,
.aifi-menu-center__inner::-webkit-scrollbar {
  display: none;
}

.aifi-menu-nav__item {
  position: relative;
  opacity: 0;
  transform: translateX(-14px);
  transition: opacity 0.38s var(--ease-soft), transform 0.38s var(--ease-soft);
}

.aifi-menu-overlay.is-open .aifi-menu-nav__item {
  opacity: 1;
  transform: translateX(0);
}

.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(1) { transition-delay: 0.24s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(2) { transition-delay: 0.29s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(3) { transition-delay: 0.34s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(4) { transition-delay: 0.39s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(5) { transition-delay: 0.44s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(6) { transition-delay: 0.49s; }
.aifi-menu-overlay.is-open .aifi-menu-nav__item:nth-child(7) { transition-delay: 0.54s; }

.aifi-menu-nav__button {
  position: relative;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 15px 0;
  color: rgba(255, 255, 255, 0.68);
  text-align: left;
  background: transparent;
  cursor: pointer;
  transition: color 0.24s ease, padding-left 0.28s var(--ease-soft);
}

.aifi-menu-nav__button::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -34px;
  width: 3px;
  height: 0;
  border-radius: 0 4px 4px 0;
  background: var(--aifi-lime);
  transform: translateY(-50%);
  transition: height 0.26s var(--ease-soft);
}

.aifi-menu-nav__button:hover,
.aifi-menu-nav__button:focus-visible,
.aifi-menu-nav__item.is-active .aifi-menu-nav__button {
  color: var(--aifi-white);
  padding-left: 6px;
}

.aifi-menu-nav__item.is-active .aifi-menu-nav__button::before {
  height: 30px;
}

.aifi-menu-nav__number {
  color: rgba(255, 255, 255, 0.28);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.08em;
  transition: color 0.22s ease;
}

.aifi-menu-nav__item.is-active .aifi-menu-nav__number,
.aifi-menu-nav__button:hover .aifi-menu-nav__number {
  color: var(--aifi-lime);
}

.aifi-menu-nav__label {
  overflow: hidden;
  color: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.095em;
  line-height: 1.2;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.aifi-menu-nav__arrow {
  display: block;
  width: 15px;
  height: 15px;
  opacity: 0.42;
  filter: brightness(0) invert(1);
  transition: transform 0.24s var(--ease-soft), opacity 0.24s ease;
}

.aifi-menu-nav__item.is-active .aifi-menu-nav__arrow,
.aifi-menu-nav__button:hover .aifi-menu-nav__arrow {
  opacity: 1;
  transform: translateX(4px);
}

.aifi-menu-nav__subitems {
  display: none;
}

.aifi-menu-lang {
  display: flex;
  align-items: center;
  padding: 18px 34px 26px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.38s var(--ease-soft) 0.62s, transform 0.38s var(--ease-soft) 0.62s;
}

.aifi-menu-overlay.is-open .aifi-menu-lang {
  opacity: 1;
  transform: translateY(0);
}

.aifi-menu-lang__btn {
  padding: 5px 0;
  color: rgba(255, 255, 255, 0.42);
  background: transparent;
  cursor: pointer;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  transition: color 0.2s ease;
}

.aifi-menu-lang__btn.is-active,
.aifi-menu-lang__btn:hover {
  color: var(--aifi-lime);
}

.aifi-menu-lang__divider {
  width: 1px;
  height: 13px;
  margin: 0 13px;
  background: rgba(255, 255, 255, 0.22);
}

/* Header mobile, nascosto su desktop. */
.aifi-menu-mobile-tools,
.aifi-menu-mobile-social {
  display: none;
}

/* ============================================================
   PANNELLO CENTRALE — indice secondario
   Impostazione più essenziale: la pagina principale è separata
   dalle sottovoci e il pannello conserva il ritmo di un indice.
   ============================================================ */
.aifi-menu-panel--center {
  background: var(--aifi-bg);
}

.aifi-menu-center__inner {
  height: 100%;
  overflow-y: auto;
  padding: 52px 40px 36px;
  scrollbar-width: none;
}

.aifi-menu-center__inner::-webkit-scrollbar {
  display: none;
}

.aifi-menu-center__section {
  display: none;
}

.aifi-menu-center__section.is-visible {
  display: block;
  animation: aifiCenterSectionIn 0.34s var(--ease-soft) both;
}

@keyframes aifiCenterSectionIn {
  from { opacity: 0; transform: translateY(7px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Numero discreto: evita l'effetto intestazione da landing page. */
.aifi-menu-center__kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
  color: rgba(1, 82, 59, 0.54);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1;
}

.aifi-menu-center__kicker::before {
  content: "";
  width: 24px;
  height: 2px;
  border-radius: 999px;
  background: var(--aifi-lime);
}

.aifi-menu-center__heading {
  margin-bottom: 23px;
  color: var(--aifi-green);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: -0.042em;
  line-height: 1.08;
}

.aifi-menu-center__group {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(228, 232, 231, 0.94);
}

.aifi-menu-center__group:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.aifi-menu-center__group-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: rgba(1, 82, 59, 0.56);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.19em;
  line-height: 1.2;
  text-transform: uppercase;
}

.aifi-menu-center__group-title::before {
  content: "";
  width: 3px;
  height: 11px;
  border-radius: 999px;
  background: var(--aifi-lime);
}

.aifi-menu-center__link {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 31px;
  padding: 5px 0;
  color: var(--aifi-text-secondary);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.34;
  text-decoration: none;
  opacity: 0;
  transform: translateX(-7px);
  transition: color 0.2s ease, padding-left 0.24s var(--ease-soft), opacity 0.32s var(--ease-soft), transform 0.32s var(--ease-soft);
}

.aifi-menu-center__link::before {
  content: "";
  width: 0;
  height: 1px;
  margin-right: 0;
  background: var(--aifi-lime);
  transition: width 0.22s var(--ease-soft), margin-right 0.22s var(--ease-soft);
}

.aifi-menu-center__link:hover,
.aifi-menu-center__link:focus-visible {
  padding-left: 4px;
  color: var(--aifi-green);
}

.aifi-menu-center__link:hover::before,
.aifi-menu-center__link:focus-visible::before {
  width: 11px;
  margin-right: 7px;
}

.aifi-menu-center__link--solo::after {
  content: "";
  width: 13px;
  height: 13px;
  margin-left: auto;
  background: url("asset/icon/navigation/navigation_right.svg") center / contain no-repeat;
  opacity: 0.58;
  transition: opacity 0.2s ease, transform 0.22s var(--ease-soft);
}

.aifi-menu-center__link--solo:hover::after,
.aifi-menu-center__link--solo:focus-visible::after {
  opacity: 1;
  transform: translateX(3px);
}

.aifi-menu-center__link--solo {
  min-height: 40px;
  padding: 9px 0 11px;
  border-bottom: 1px solid var(--aifi-border);
  color: var(--aifi-green);
  font-size: 14px;
  font-weight: 600;
}

.aifi-menu-center__section.is-visible .aifi-menu-center__link {
  opacity: 1;
  transform: translateX(0);
}

.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(1) { transition-delay: 0.04s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(2) { transition-delay: 0.07s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(3) { transition-delay: 0.10s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(4) { transition-delay: 0.13s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(5) { transition-delay: 0.16s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(6) { transition-delay: 0.19s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(7) { transition-delay: 0.22s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(8) { transition-delay: 0.25s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(9) { transition-delay: 0.28s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(10) { transition-delay: 0.31s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(11) { transition-delay: 0.34s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(12) { transition-delay: 0.37s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(13) { transition-delay: 0.40s; }
.aifi-menu-center__section.is-visible .aifi-menu-center__link:nth-of-type(14) { transition-delay: 0.43s; }

/* ============================================================
   PANNELLO DESTRO — superficie istituzionale e astratta
   ============================================================ */
.aifi-menu-right__inner {
  position: relative;
  height: 100%;
  overflow: hidden;
  padding: 68px 64px 72px;
}

.aifi-menu-right__grid {
  position: absolute;
  inset: 0;
  opacity: 0.8;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(1, 82, 59, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(1, 82, 59, 0.035) 1px, transparent 1px);
  background-size: 72px 72px;
}

.aifi-menu-right__grid::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(130deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.9) 72%);
}

.aifi-menu-right__meta {
  position: absolute;
  right: 64px;
  bottom: 72px;
  left: 64px;
  z-index: 2;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.42s var(--ease-soft) 0.5s, transform 0.42s var(--ease-soft) 0.5s;
}

.aifi-menu-overlay.is-open .aifi-menu-right__meta {
  opacity: 1;
  transform: translateY(0);
}

.aifi-menu-right__meta-line {
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--aifi-muted);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.aifi-menu-right__meta-line::before {
  content: "";
  width: 30px;
  height: 1px;
  background: var(--aifi-lime);
}

.aifi-menu-right__number {
  position: absolute;
  right: 42px;
  bottom: 42px;
  z-index: 1;
  color: var(--aifi-green);
  font-size: clamp(154px, 17vw, 280px);
  font-weight: 600;
  letter-spacing: -0.105em;
  line-height: 0.82;
  opacity: 0.045;
  pointer-events: none;
  user-select: none;
  transition: opacity 0.28s ease, transform 0.35s var(--ease-soft);
}

.aifi-menu-right__claim {
  position: absolute;
  top: clamp(154px, 17vh, 210px);
  right: 64px;
  left: 64px;
  z-index: 3;
  max-width: 650px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s var(--ease-soft) 0.42s, transform 0.5s var(--ease-soft) 0.42s;
}

.aifi-menu-overlay.is-open .aifi-menu-right__claim {
  opacity: 1;
  transform: translateY(0);
}

.aifi-menu-right__claim.is-changing {
  opacity: 0;
  transform: translateY(10px);
  transition-delay: 0s;
}

.aifi-menu-right__eyebrow {
  margin-bottom: 16px;
  color: var(--aifi-lime);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.21em;
  text-transform: uppercase;
}

.aifi-menu-right__title {
  max-width: 630px;
  margin-bottom: 19px;
  color: var(--aifi-ink);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 500;
  letter-spacing: -0.052em;
  line-height: 1.05;
}

.aifi-menu-right__body {
  max-width: 535px;
  margin-bottom: 31px;
  color: var(--aifi-text-secondary);
  font-size: 15px;
  font-weight: 400;
  line-height: 1.65;
}

.aifi-menu-right__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--aifi-green);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-decoration: none;
  text-transform: uppercase;
  transition: gap 0.24s var(--ease-soft), color 0.2s ease;
}

.aifi-menu-right__link:hover,
.aifi-menu-right__link:focus-visible {
  gap: 16px;
  color: var(--aifi-green);
}

.aifi-menu-right__link img {
  display: block;
  width: 15px;
  height: 15px;
}

/* ============================================================
   SIDEBAR VERTICALE DESTRA
   ============================================================ */
.aifi-menu-sidebar__button {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 0;
  color: rgba(255, 255, 255, 0.64);
  background: transparent;
  cursor: pointer;
  transition: color 0.2s ease;
}

.aifi-menu-sidebar__button:hover,
.aifi-menu-sidebar__button:focus-visible {
  color: var(--aifi-white);
  background: transparent;
  outline: none;
}



.aifi-menu-sidebar__divider {
  width: 20px;
  height: 1px;
  margin: 11px 0;
  background: rgba(255, 255, 255, 0.14);
}

.aifi-menu-sidebar__spacer {
  flex: 1;
}

.aifi-menu-sidebar__follow {
  margin-bottom: 12px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  user-select: none;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.aifi-menu-sidebar__social {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.aifi-menu-sidebar__social a,
.aifi-menu-mobile-social a,
.aifi-menu-mobile-tools__social a {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  opacity: 0.82;
  transition: opacity 0.2s ease, transform 0.2s var(--ease-soft);
}

.aifi-menu-sidebar__social a:hover,
.aifi-menu-sidebar__social a:focus-visible,
.aifi-menu-mobile-social a:hover,
.aifi-menu-mobile-social a:focus-visible,
.aifi-menu-mobile-tools__social a:hover,
.aifi-menu-mobile-tools__social a:focus-visible {
  opacity: 1;
  transform: translateY(-2px);
}

.aifi-menu-sidebar__social img,
.aifi-menu-mobile-social img,
.aifi-menu-mobile-tools__social img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

/* ============================================================
   RICERCA — fascia overlay
   ============================================================ */
.aifi-menu-search {
  position: absolute;
  top: 0;
  left: 0;
  right: var(--aifi-sidebar-w);
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 18px;
  height: 0;
  padding: 0 64px;
  overflow: hidden;
  opacity: 0;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(1, 82, 59, 0.08);
  box-shadow: 0 18px 42px rgba(17, 26, 23, 0.06);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: height 0.4s var(--ease-soft), opacity 0.28s ease;
}

.aifi-menu-search.is-open {
  height: 96px;
  opacity: 1;
}

.aifi-menu-search::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  opacity: 0.54;
  background: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='5.7' stroke='%2301523B' stroke-width='1.7'/%3E%3Cpath d='M12.3 12.3L16 16' stroke='%2301523B' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.aifi-menu-search__input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none;
  outline: none !important;
  box-shadow: none !important;
  background: transparent;
  border-radius: 0;
  font-family: 'Outfit', sans-serif;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 500;
  letter-spacing: -0.045em;
  color: var(--aifi-ink);
  caret-color: var(--aifi-lime);
}

.aifi-menu-search__input:focus,
.aifi-menu-search__input:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.aifi-menu-search__input::placeholder {
  color: rgba(77, 90, 86, 0.44);
  font-weight: 500;
}

.aifi-menu-search__close {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: rgba(77, 90, 86, 0.58);
  border-radius: 0;
  transition: color 0.2s ease, transform 0.22s var(--ease-soft);
  flex-shrink: 0;
}

.aifi-menu-search__close:hover,
.aifi-menu-search__close:focus-visible {
  color: var(--aifi-green);
  background: transparent;
  outline: none;
  transform: rotate(90deg);
}

.aifi-menu-search__close svg {
  width: 19px;
  height: 19px;
}

/* CTA freccia ricerca menu — compare alla digitazione, come nell'header */
.aifi-menu-search__cta {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 52px;
  min-width: 52px;
  height: 52px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--aifi-green);
  color: var(--aifi-white);
  cursor: pointer;
  opacity: 0;
  transform: scale(0.55);
  pointer-events: none;
  transition: opacity 0.28s ease, transform 0.42s var(--ease-soft), background 0.2s ease;
}

.aifi-menu-search__cta img {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1);
}

.aifi-menu-search.has-text .aifi-menu-search__cta {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}

.aifi-menu-search__cta:hover,
.aifi-menu-search__cta:focus-visible {
  background: #014834;
  transform: scale(1.06);
  outline: none;
}

@media (max-width: 767px) {
  .aifi-menu-search__cta {
    width: 40px;
    min-width: 40px;
    height: 40px;
  }

  .aifi-menu-search__cta img {
    width: 17px;
    height: 17px;
  }
}

/* ============================================================
   MOBILE — singolo pannello verde e accordion
   ============================================================ */
@media (max-width: 900px) {
  .demo-header {
    height: 70px;
    padding: 0 22px;
  }

  .demo-header__logo {
    width: 104px;
  }

  .aifi-menu-trigger__label {
    display: none;
  }

  .aifi-menu-overlay {
    --panel-duration: 0.42s;
    overflow-y: auto;
    overflow-x: hidden;
    background: transparent;
    transition: visibility 0s linear 0.42s;
  }

  .aifi-menu-overlay.is-open {
    background: var(--aifi-green);
    transition-delay: 0s;
  }

  .aifi-menu-panel--left {
    position: relative;
    min-height: 100%;
    width: 100%;
    overflow-y: auto;
  }

  .aifi-menu-panel--center,
  .aifi-menu-panel--right,
  .aifi-menu-sidebar {
    display: none;
  }

  .aifi-menu-panel--left::after {
    display: none;
  }

  .aifi-menu-left__inner {
    min-height: 100vh;
    height: auto;
    overflow: visible;
  }

  .aifi-menu-mobile-tools {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 28px 0;
  }

  .aifi-menu-mobile-tools__main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
  }

  .aifi-menu-mobile-tools__logo {
    display: block;
    width: 120px;
    max-width: 48vw;
    height: auto;
    flex: 0 0 auto;
  }

  .aifi-menu-mobile-tools__button {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-top: 1px;
    border-radius: 0;
    color: rgba(255, 255, 255, 0.84);
    background: transparent;
    cursor: pointer;
    flex: 0 0 auto;
  }

  .aifi-menu-mobile-tools__button:hover,
  .aifi-menu-mobile-tools__button:focus-visible {
    color: var(--aifi-white);
    background: transparent;
    outline: none;
  }

  .aifi-menu-mobile-tools__button svg {
    width: 21px;
    height: 21px;
  }

  .aifi-menu-mobile-tools__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 38px;
    padding: 10px 0 13px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }

  .aifi-menu-mobile-tools__lang {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .aifi-menu-mobile-tools__lang .aifi-menu-lang__btn {
    font-size: 10.5px;
    letter-spacing: 0.16em;
  }

  .aifi-menu-mobile-tools__lang .aifi-menu-lang__divider {
    height: 12px;
    margin: 0 10px;
  }

  .aifi-menu-mobile-tools__social {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    flex: 1 1 auto;
    min-width: 0;
  }

  .aifi-menu-mobile-tools__social-label {
    margin-right: 4px;
    color: rgba(255, 255, 255, 0.42);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.18em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .aifi-menu-mobile-tools__social a {
    width: 30px;
    height: 30px;
  }

  .aifi-menu-mobile-tools__social img {
    width: 26px;
    height: 26px;
  }

  .aifi-menu-left__top {
    display: none;
  }

  .aifi-menu-left__logo {
    width: 111px;
  }

  .aifi-menu-left__heading {
    padding: 22px 28px 13px;
  }

  .aifi-menu-left__eyebrow {
    margin-bottom: 9px;
  }

  .aifi-menu-left__heading h2 {
    font-size: 39px;
  }

  .aifi-menu-nav {
    flex: none;
    overflow: visible;
    padding: 0 28px 16px;
  }

  .aifi-menu-nav__item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  }

  .aifi-menu-nav__button {
    grid-template-columns: 24px minmax(0, 1fr) 15px;
    min-height: 57px;
    padding: 15px 0;
  }

  .aifi-menu-nav__button::before {
    left: -28px;
  }

  .aifi-menu-nav__button:hover,
  .aifi-menu-nav__button:focus-visible,
  .aifi-menu-nav__item.is-active .aifi-menu-nav__button {
    padding-left: 0;
  }

  .aifi-menu-nav__label {
    font-size: 12px;
    white-space: normal;
  }

  .aifi-menu-nav__item.is-active .aifi-menu-nav__arrow {
    transform: rotate(90deg);
  }

  .aifi-menu-nav__subitems {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows 0.36s var(--ease-soft), opacity 0.3s ease;
  }

  .aifi-menu-nav__subitems.is-open {
    grid-template-rows: 1fr;
    opacity: 1;
  }

  .aifi-menu-nav__subitems-inner {
    min-height: 0;
    overflow: hidden;
  }

  .aifi-menu-nav__subitems-content {
    padding: 2px 0 18px 36px;
  }

  .aifi-menu-nav__subgroup-title {
    padding: 15px 0 6px;
    color: rgba(175, 202, 11, 0.82);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  .aifi-menu-nav__sublink {
    display: block;
    padding: 7px 0;
    color: rgba(255, 255, 255, 0.62);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.3;
    text-decoration: none;
    transition: color 0.2s ease, transform 0.22s var(--ease-soft);
  }

  .aifi-menu-nav__sublink:hover,
  .aifi-menu-nav__sublink:focus-visible {
    color: var(--aifi-white);
    transform: translateX(5px);
  }

  .aifi-menu-nav__sublink--standalone {
    margin-top: 8px;
  }

  .aifi-menu-lang,
  .aifi-menu-mobile-social {
    display: none;
  }

  @media (max-width: 380px) {
    .aifi-menu-mobile-tools {
      padding-right: 22px;
      padding-left: 22px;
      gap: 15px;
    }

    .aifi-menu-mobile-tools__logo {
      width: 112px;
    }

    .aifi-menu-mobile-tools__meta {
      gap: 10px;
    }

    .aifi-menu-mobile-tools__social-label {
      font-size: 8px;
      letter-spacing: 0.14em;
    }

    .aifi-menu-mobile-tools__social {
      gap: 5px;
    }

    .aifi-menu-mobile-tools__social a {
      width: 27px;
      height: 27px;
    }

    .aifi-menu-mobile-tools__social img {
      width: 24px;
      height: 24px;
    }
  }

}

@media (min-width: 901px) and (max-width: 1200px) {
  :root {
    --aifi-left-w: 300px;
    --aifi-center-w: 350px;
    --aifi-sidebar-w: 64px;
  }

  .aifi-menu-left__top,
  .aifi-menu-left__heading {
    padding-right: 28px;
    padding-left: 28px;
  }

  .aifi-menu-nav {
    padding-right: 28px;
    padding-left: 28px;
  }

  .aifi-menu-nav__button::before {
    left: -28px;
  }

  .aifi-menu-lang {
    padding-right: 28px;
    padding-left: 28px;
  }

  .aifi-menu-center__inner {
    padding-right: 36px;
    padding-left: 36px;
  }

  .aifi-menu-right__inner {
    padding-right: 48px;
    padding-left: 48px;
  }

  .aifi-menu-right__claim {
    right: 48px;
    left: 48px;
  }
}

/* Blocca lo scroll della pagina sottostante durante l’apertura. */
body.aifi-no-scroll {
  overflow: hidden;
}

  
/* Fix homepage: rimuove i bordi default dei bottoni dentro il menu overlay */
.aifi-menu-overlay button,
.aifi-menu-overlay [type="button"],
.aifi-menu-overlay [type="submit"] {
  border: 0 !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
}

.aifi-menu-overlay .aifi-menu-nav__item,
.aifi-menu-overlay .aifi-menu-nav__button {
  border: 0 !important;
  box-shadow: none !important;
}



/* =========================
   Header: stato bianco iniziale + verde allo scroll
   ========================= */
.site-header {
  background: var(--white);
  color: var(--green);
}

.site-header.is-solid {
  background: var(--green);
  color: var(--white);
}

.site-header:not(.is-solid) .header-actions {
  color: var(--green);
}

.site-header.is-solid .header-actions {
  color: var(--white);
}

.site-header:not(.is-solid) .logo-image--green {
  display: block;
}

.site-header:not(.is-solid) .logo-image--white {
  display: none;
}

.site-header.is-solid .logo-image--green {
  display: none;
}

.site-header.is-solid .logo-image--white {
  display: block;
}

.site-header:not(.is-solid) .icon-button,
.site-header:not(.is-solid) .language-link {
  color: var(--green);
}

.site-header.is-solid .icon-button,
.site-header.is-solid .language-link {
  color: var(--white);
}

.site-header:not(.is-solid) .pill {
  border-color: var(--green);
  background: transparent;
  color: var(--green);
}

.site-header:not(.is-solid) .reserved-link:hover,
.site-header:not(.is-solid) .reserved-link:active,
.site-header:not(.is-solid) .reserved-link:focus {
  border-color: var(--green);
  background: var(--green);
  color: var(--white);
}

.site-header:not(.is-solid) .pill-solid {
  border-color: var(--green);
  background: var(--green);
  color: var(--white);
}

.site-header:not(.is-solid) .pill-solid:hover,
.site-header:not(.is-solid) .pill-solid:active,
.site-header:not(.is-solid) .pill-solid:focus {
  border-color: var(--secondary-hover);
  background: var(--secondary-hover);
  color: var(--white);
}

.site-header.is-solid .pill {
  border-color: var(--white);
  background: transparent;
  color: var(--white);
}

.site-header.is-solid .pill-solid {
  border-color: var(--white);
  background: var(--white);
  color: var(--green);
}

.site-header.is-solid .pill-solid:hover,
.site-header.is-solid .pill-solid:active,
.site-header.is-solid .pill-solid:focus {
  border-color: var(--primary-base);
  background: var(--primary-base);
  color: var(--secondary-dark);
}

.site-header:not(.is-solid) .reserved-link__arrow {
  filter: brightness(0) saturate(100%) invert(23%) sepia(29%) saturate(1347%) hue-rotate(116deg) brightness(91%) contrast(99%);
}

.site-header:not(.is-solid) .reserved-link:hover .reserved-link__arrow,
.site-header:not(.is-solid) .reserved-link:active .reserved-link__arrow,
.site-header:not(.is-solid) .reserved-link:focus .reserved-link__arrow {
  filter: brightness(0) invert(1);
}

.site-header.is-solid .reserved-link__arrow,
.site-header.is-solid .reserved-link:hover .reserved-link__arrow,
.site-header.is-solid .reserved-link:active .reserved-link__arrow,
.site-header.is-solid .reserved-link:focus .reserved-link__arrow {
  filter: brightness(0) invert(1);
}

@media (max-width: 767px) {
  .site-header {
    background: var(--white);
  }

  .site-header.is-solid {
    background: var(--green);
  }

  .site-header:not(.is-solid) .reserved-link {
    border-color: var(--green);
    background: transparent;
    color: var(--green);
  }

  .site-header:not(.is-solid) .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header:not(.is-solid) .reserved-link__guest-icon--white {
    display: none;
  }

  .site-header.is-solid .reserved-link {
    border-color: var(--white);
    background: var(--white);
    color: var(--green);
  }

  .site-header.is-solid .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header.is-solid .reserved-link__guest-icon--white {
    display: none;
  }

  .site-header:not(.is-solid) .reserved-link:hover,
  .site-header:not(.is-solid) .reserved-link:active,
  .site-header:not(.is-solid) .reserved-link:focus {
    border-color: var(--green);
    background: var(--green);
    color: var(--white);
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--green {
    display: none;
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--white {
    display: block;
  }
}


/* Header bianco: hover dei cerchi search / lingua */
.site-header:not(.is-solid) .icon-button:hover,
.site-header:not(.is-solid) .icon-button:active,
.site-header:not(.is-solid) .icon-button:focus,
.site-header:not(.is-solid) .language-link:hover,
.site-header:not(.is-solid) .language-link:active,
.site-header:not(.is-solid) .language-link:focus {
  background: #ECF1F0;
  color: var(--green);
}

/* Header bianco: hover CTA Area Riservata coerente con i cerchi */
.site-header:not(.is-solid) .reserved-link:hover,
.site-header:not(.is-solid) .reserved-link:active,
.site-header:not(.is-solid) .reserved-link:focus {
  border-color: var(--green);
  background: #ECF1F0;
  color: var(--green);
}

.site-header:not(.is-solid) .reserved-link:hover .reserved-link__arrow,
.site-header:not(.is-solid) .reserved-link:active .reserved-link__arrow,
.site-header:not(.is-solid) .reserved-link:focus .reserved-link__arrow {
  filter: brightness(0) saturate(100%) invert(23%) sepia(29%) saturate(1347%) hue-rotate(116deg) brightness(91%) contrast(99%);
}

/* Header verde: hover CTA Area Riservata come trattamento originale */
.site-header.is-solid .reserved-link:hover,
.site-header.is-solid .reserved-link:active,
.site-header.is-solid .reserved-link:focus {
  border-color: var(--primary-base);
  background: var(--secondary-hover);
  color: var(--text-inverse);
}

@media (max-width: 767px) {
  .site-header:not(.is-solid) .reserved-link:hover,
  .site-header:not(.is-solid) .reserved-link:active,
  .site-header:not(.is-solid) .reserved-link:focus {
    border-color: var(--green);
    background: #ECF1F0;
    color: var(--green);
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--white {
    display: none;
  }

  .site-header.is-solid .reserved-link:hover,
  .site-header.is-solid .reserved-link:active,
  .site-header.is-solid .reserved-link:focus {
    border-color: var(--primary-base);
    background: var(--secondary-hover);
    color: var(--text-inverse);
  }
}


/* Mobile: nessun hover sticky su header e menu */
@media (max-width: 767px) {
  .site-header:not(.is-solid) .icon-button:hover,
  .site-header:not(.is-solid) .icon-button:active,
  .site-header:not(.is-solid) .icon-button:focus,
  .site-header:not(.is-solid) .language-link:hover,
  .site-header:not(.is-solid) .language-link:active,
  .site-header:not(.is-solid) .language-link:focus {
    background: transparent;
    color: var(--green);
  }

  .site-header.is-solid .icon-button:hover,
  .site-header.is-solid .icon-button:active,
  .site-header.is-solid .icon-button:focus,
  .site-header.is-solid .language-link:hover,
  .site-header.is-solid .language-link:active,
  .site-header.is-solid .language-link:focus {
    background: transparent;
    color: var(--white);
  }

  .site-header:not(.is-solid) .reserved-link:hover,
  .site-header:not(.is-solid) .reserved-link:active,
  .site-header:not(.is-solid) .reserved-link:focus {
    border-color: var(--green);
    background: transparent;
    color: var(--green);
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--green,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header:not(.is-solid) .reserved-link:hover .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:active .reserved-link__guest-icon--white,
  .site-header:not(.is-solid) .reserved-link:focus .reserved-link__guest-icon--white {
    display: none;
  }

  .site-header.is-solid .reserved-link:hover,
  .site-header.is-solid .reserved-link:active,
  .site-header.is-solid .reserved-link:focus {
    border-color: var(--white);
    background: var(--white);
    color: var(--green);
  }

  .site-header.is-solid .reserved-link:hover .reserved-link__guest-icon--green,
  .site-header.is-solid .reserved-link:active .reserved-link__guest-icon--green,
  .site-header.is-solid .reserved-link:focus .reserved-link__guest-icon--green {
    display: block;
  }

  .site-header.is-solid .reserved-link:hover .reserved-link__guest-icon--white,
  .site-header.is-solid .reserved-link:active .reserved-link__guest-icon--white,
  .site-header.is-solid .reserved-link:focus .reserved-link__guest-icon--white {
    display: none;
  }

  .site-header:not(.is-solid) .pill-solid:hover,
  .site-header:not(.is-solid) .pill-solid:active,
  .site-header:not(.is-solid) .pill-solid:focus {
    border-color: var(--green);
    background: var(--green);
    color: var(--white);
  }

  .site-header.is-solid .pill-solid:hover,
  .site-header.is-solid .pill-solid:active,
  .site-header.is-solid .pill-solid:focus {
    border-color: var(--white);
    background: var(--white);
    color: var(--green);
  }

  .aifi-menu-nav__button:hover,
  .aifi-menu-nav__button:active,
  .aifi-menu-nav__button:focus,
  .aifi-menu-center__link:hover,
  .aifi-menu-center__link:active,
  .aifi-menu-center__link:focus,
  .aifi-menu-right__link:hover,
  .aifi-menu-right__link:active,
  .aifi-menu-right__link:focus,
  .aifi-menu-sidebar__button:hover,
  .aifi-menu-sidebar__button:active,
  .aifi-menu-sidebar__button:focus,
  .aifi-menu-lang__btn:hover,
  .aifi-menu-lang__btn:active,
  .aifi-menu-lang__btn:focus {
    padding-left: initial;
    transform: none;
    background: transparent;
  }
}

/* ============================================================
   02 — Footer globale AIFI
   Estratto da footer_only_aifi(1).html
   ============================================================ */
/* =========================
       Footer globale AIFI - copiato integralmente dalla homepage
       ========================= */
    :root {
      --footer-height: 560px;
    }

    .logo-image--footer {
      width: 168px;
    }

    .site-footer {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1;
      height: var(--footer-height);
      padding: 72px 64px;
      background: var(--green);
      color: var(--white);
    }

    .footer-inner {
      display: grid;
      grid-template-columns: 392px 160px 200px 1fr;
      gap: 72px;
      height: 100%;
    }

    .footer-logo .logo {
      color: var(--white);
    }

    .footer-nav {
      display: flex;
      flex-direction: column;
      gap: 16px;
      padding-top: 16px;
      font-size: 16px;
      line-height: 1;
      font-weight: 800;
      text-transform: uppercase;
    }

    .socials {
      display: flex;
      gap: 16px;
      margin-top: 24px;
    }

    .social {
      display: inline-grid;
      place-items: center;
      width: 44px;
      min-width: 44px;
      height: 44px;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      line-height: 1;
      flex: 0 0 44px;
    }

    .social img {
      display: block;
      width: 44px;
      height: 44px;
      object-fit: contain;
      transition: filter 180ms ease;
    }

    .social:hover img {
      filter: brightness(0) saturate(100%) invert(78%) sepia(80%) saturate(783%) hue-rotate(19deg) brightness(90%) contrast(92%);
    }

    .footer-contact {
      justify-self: end;
      width: 264px;
      padding-top: 16px;
      font-size: 16px;
      line-height: 1.5;
    }

    .footer-label {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      height: 18px;
      min-width: 48px;
      margin-bottom: 8px;
      padding: 0 8px;
      border: 1px solid var(--white);
      border-radius: 16px;
      font-size: 11px;
      line-height: 1;
      font-weight: 800;
      text-transform: uppercase;
    }

    .footer-contact-group + .footer-contact-group {
      margin-top: 24px;
    }

    .footer-bottom {
      position: absolute;
      left: 64px;
      right: 64px;
      bottom: 72px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 14px;
      line-height: 1;
    }

    .rolling-link {
      display: inline-grid;
      height: 1.1em;
      overflow: hidden;
      vertical-align: top;
    }

    .rolling-link__inner {
      display: grid;
      transition: transform 180ms ease;
    }

    .rolling-link__text {
      height: 1.1em;
      line-height: 1.1;
    }

    .rolling-link:hover .rolling-link__inner {
      transform: translateY(-1.1em);
    }

    .site-footer a {
      color: inherit;
      text-decoration: none;
      transition: color 180ms ease, border-color 180ms ease;
    }

    .site-footer .legal .iubenda-embed {
      color: inherit !important;
      text-decoration: none !important;
      font: inherit !important;
    }

    .site-footer .legal .iubenda-embed:hover {
      color: var(--primary-base) !important;
    }

    .site-footer a:hover {
      color: var(--primary-base);
    }

    .legal,
    .company {
      display: flex;
      align-items: center;
      gap: 32px;
    }

    @media (max-width: 1199px) {
      :root {
        --footer-height: 640px;
      }

      .site-footer {
        padding-left: 32px;
        padding-right: 32px;
      }

      .footer-inner {
        grid-template-columns: 304px 160px 184px 1fr;
        gap: 40px;
      }

      .footer-contact {
        justify-self: start;
        width: 216px;
      }

      .footer-bottom {
        left: 32px;
        right: 32px;
        bottom: 64px;
        align-items: flex-end;
        gap: 24px;
      }

      .company,
      .legal {
        flex-wrap: wrap;
        gap: 16px 24px;
      }
    }

    @media (max-width: 767px) {
      :root {
        --footer-height: 0px;
      }

      .site-footer {
        position: relative;
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 0;
        padding: 48px 24px;
      }

      .footer-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 32px;
        height: auto;
      }

      .footer-logo .logo-image--footer {
        width: 140px;
      }

      .footer-nav {
        gap: 16px;
        padding-top: 0;
      }

      .footer-inner .footer-nav:first-of-type {
        display: none;
      }

      .footer-inner .footer-nav:nth-of-type(2) > a {
        display: none;
      }

      .footer-inner .footer-nav:nth-of-type(2) {
        gap: 0;
      }

      .footer-inner .footer-nav:nth-of-type(2) .socials {
        margin-top: 0;
      }

      .footer-contact {
        justify-self: start;
        width: auto;
        padding-top: 0;
      }

      .footer-bottom {
        position: static;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        margin-top: 24px;
        gap: 14px 24px;
        font-size: 13px;
        line-height: 1.35;
      }

      .company,
      .legal {
        display: contents;
      }

      .legal a:not(.footer-credit) {
        order: 1;
      }

      .fiscal-line {
        order: 2;
        flex-basis: 100%;
      }

      .tribunal-line {
        order: 3;
        flex-basis: 100%;
      }

      .footer-credit {
        order: 4;
        flex-basis: 100%;
      }

      .copyright-line {
        order: 5;
        flex-basis: 100%;
        margin-top: 0;
      }
    }

    @media (max-width: 479px) {
      .site-footer {
        padding-left: 16px;
        padding-right: 16px;
      }

      .footer-logo .logo-image--footer {
        width: 128px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .rolling-link:hover .rolling-link__inner {
        transform: none;
      }
    }

    @media (hover: none) {
      .rolling-link:hover .rolling-link__inner {
        transform: none;
      }
    }


/* ============================================================
   03 — Footer reveal effect
   Il footer resta fisso sotto la pagina.
   La .page ha z-index superiore e uno spazio finale pari
   all'altezza del footer: scrollando, il footer viene
   rivelato da sotto l'ultima section.
   ============================================================ */
body {
  background: var(--green);
}

.page {
  position: relative;
  z-index: 2;
  margin-bottom: var(--footer-height);
  background: var(--background-default);
}


.site-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  height: var(--footer-height);
}

.site-footer p {
  margin: 0 0 8px;
  font-size: 16px;
  line-height: 1.55;
  font-weight: 400;
}

@media (max-width: 767px) {
  .page {
    margin-bottom: 0;
  }

  .site-footer {
    position: relative;
    z-index: 2;
    height: auto;
  }
}

.hero.is-covered {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
}

.hero-content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0 64px;
    color: var(--white);
}

.breadcrumb {
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

    .breadcrumb span {
        color: var(--lime);
    }

.hero h1 {
    margin: 0;
    font-size: 32px;
    line-height: 1.08;
    font-weight: 800;
}

.hero-line {
    width: 104px;
    height: 4px;
    margin-top: 16px;
    background: var(--lime);
}




/* FIX MOBILE PAGINE INTERNE - allineamento hero chi-siamo statico */
@media (max-width: 767px) {
  .hero {
    position: sticky;
    top: 80px;
    height: 288px !important;
    background-position: center;
  }

  .hero-content {
    padding: 0 24px !important;
  }

  .card-stack {
    position: relative;
    z-index: 4;
    margin-top: -32px;
    background: transparent;
  }

  .content-card {
    position: relative;
    top: auto;
    min-height: auto;
    padding: 56px 24px;
    border-radius: 32px;
  }

  .content-card.is-stuck {
    border-radius: 32px;
  }
}

@media (max-width: 479px) {
  .hero-content,
  .content-card,
  .activities-card {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}