/* =====================================================================
   nav.css — barra di navigazione condivisa (lotto 2)
   Caricato dalle 252 pagine con navigazione completa, DOPO site.css /
   destinations.css / home.css. Le 18 pagine legali e admin non lo caricano.

   Il guscio <header class="nav" id="siteNav"> resta quello delle famiglie
   esistenti (sticky + backdrop, definito in modo identico nei due fogli);
   tutto il contenuto interno usa un namespace nuovo (.mnav, .langsw,
   .mobilenav) cosi' nessuna regola precedente puo' interferire.

   Tutte le variabili usate hanno un fallback letterale: --radius e --maxw
   sono definite in site.css ma non in destinations.css.
   ===================================================================== */

/* ---------- guscio ---------- */
#siteNav{
  position:sticky;top:0;z-index:200;
  background:rgba(11,14,20,.72);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid transparent;
  transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
#siteNav.is-scrolled{
  background:rgba(11,14,20,.94);
  border-bottom-color:var(--line, rgba(212,184,124,.16));
  box-shadow:0 10px 30px -24px rgba(0,0,0,.9);
}

#siteNav .nav__inner{
  max-width:var(--maxw,1240px);
  margin:0 auto;
  padding:.95rem clamp(1rem,4vw,1.75rem);
  padding-inline-start:max(clamp(1rem,4vw,1.75rem), env(safe-area-inset-left));
  padding-inline-end:max(clamp(1rem,4vw,1.75rem), env(safe-area-inset-right));
  display:flex;align-items:center;gap:1.25rem;
  transition:padding .25s ease;
}
#siteNav.is-scrolled .nav__inner{padding-top:.6rem;padding-bottom:.6rem;}

#siteNav .brand{
  display:flex;align-items:center;gap:.6rem;min-width:0;
  color:var(--ivory,#F6F2E8);flex:0 1 auto;text-decoration:none;
}
#siteNav .brand__logo{height:40px;width:auto;display:block;transition:height .25s ease;}
#siteNav.is-scrolled .brand__logo{height:32px;}
#siteNav .brand__word{
  font-family:var(--font-display,Georgia,serif);font-weight:500;font-size:1.05rem;
  letter-spacing:.14em;color:var(--ivory,#F6F2E8);white-space:nowrap;
}

/* ---------- lista principale (desktop) ---------- */
.mnav{margin-inline-start:auto;}
.mnav__list{
  display:flex;align-items:center;gap:.35rem;
  list-style:none;margin:0;padding:0;
}
.mnav__item{position:relative;}

.mnav__link,
.mnav__trigger{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:inherit;font-size:.86rem;letter-spacing:.02em;line-height:1;
  color:var(--ivory-dim,#C7C2B6);
  background:none;border:0;margin:0;padding:.62rem .7rem;
  border-radius:var(--radius,2px);
  text-decoration:none;cursor:pointer;
  transition:color .2s ease, background .2s ease;
}
.mnav__link:hover,
.mnav__trigger:hover{color:var(--ivory,#F6F2E8);background:rgba(255,255,255,.05);}
.mnav__link:focus-visible,
.mnav__trigger:focus-visible{
  outline:2px solid var(--gold-bright,#E4C888);outline-offset:2px;
  color:var(--ivory,#F6F2E8);
}
.mnav__caret{flex:none;transition:transform .2s ease;}
.mnav__item.is-open > .mnav__trigger{color:var(--ivory,#F6F2E8);background:rgba(255,255,255,.06);}
.mnav__item.is-open > .mnav__trigger .mnav__caret{transform:rotate(180deg);}

/* stato attivo: pagina corrente (aria-current) e sezione corrente (classe) */
.mnav__link[aria-current="page"],
.mnav__trigger.is-section{color:var(--gold-bright,#E4C888);}
.mnav__link[aria-current="page"]::after,
.mnav__trigger.is-section::after{
  content:"";position:absolute;left:.7rem;right:.7rem;bottom:.28rem;height:1px;
  background:var(--gold,#C6A15B);
}
.mnav__link[aria-current="page"],
.mnav__trigger.is-section{position:relative;}

/* ---------- pannelli a tendina ---------- */
.mnav__panel{
  position:absolute;top:calc(100% + 10px);inset-inline-start:0;
  background:var(--surface-2,#1A1F2A);
  border:1px solid var(--line,rgba(212,184,124,.16));
  border-radius:var(--radius,2px);
  box-shadow:var(--shadow-lg,0 30px 80px -30px rgba(0,0,0,.65));
  padding:.55rem;
  z-index:10;
  max-height:calc(100dvh - 6.5rem);
  overflow-y:auto;overscroll-behavior:contain;
}
.mnav__panel-list{list-style:none;margin:0;padding:0;}
.mnav__panel[hidden]{display:none;}
.mnav__panel--wide{inset-inline-start:auto;inset-inline-end:0;}
.mnav__cols{display:flex;align-items:stretch;gap:.35rem;}
.mnav__col{display:flex;flex-direction:column;min-width:15.5rem;}
.mnav__col + .mnav__col{
  border-inline-start:1px solid var(--line-strong,rgba(212,184,124,.32));
  padding-inline-start:.35rem;margin-inline-start:.1rem;
}
.mnav__collabel{
  padding:.5rem .75rem .35rem;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#C6A15B);font-weight:700;
}
.mnav__panel a{
  display:block;padding:.5rem .75rem;border-radius:var(--radius,2px);
  color:var(--ivory-dim,#C7C2B6);text-decoration:none;
  font-size:.85rem;line-height:1.35;white-space:nowrap;
  transition:background .15s ease, color .15s ease;
}
.mnav__panel a:hover{background:var(--surface-3,#232935);color:var(--gold-bright,#E4C888);}
.mnav__panel a:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:-2px;color:var(--ivory,#F6F2E8);}
.mnav__panel a[aria-current="page"]{color:var(--gold,#C6A15B);background:rgba(198,161,91,.10);}

/* pannello Servizi: colonna singola con descrizione */
.mnav__panel--single{min-width:20rem;}
.mnav__panel--single a{white-space:normal;}
.mnav__ltitle{display:block;color:inherit;}
.mnav__ldesc{
  display:block;margin-top:.12rem;
  font-size:.74rem;line-height:1.3;color:var(--ivory-faint,#8A8A86);
}
.mnav__panel--single a:hover .mnav__ldesc{color:var(--ivory-dim,#C7C2B6);}

/* riga "Tutte le ..." */
.mnav__all{
  display:flex;justify-content:flex-end;
  margin-top:.3rem;padding-top:.35rem;
  border-top:1px solid var(--line,rgba(212,184,124,.16));
}
.mnav__panel .mnav__all a{
  display:inline-flex;align-items:center;gap:.45rem;
  font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--gold-bright,#E4C888);
}
.mnav__panel .mnav__all a:hover{gap:.65rem;background:none;color:var(--gold,#C6A15B);}
.mnav__all svg{flex:none;}
[dir="rtl"] .mnav__all svg{transform:scaleX(-1);}

/* ---------- azioni a destra ---------- */
.mnav__actions{display:flex;align-items:center;gap:.6rem;flex:none;}

/* selettore lingua: anchor reali costruite dagli hreflang della pagina */
.langsw{position:relative;}
.langsw__btn{
  display:inline-flex;align-items:center;gap:.4rem;
  background:transparent;border:1px solid var(--line-strong,rgba(212,184,124,.32));
  color:var(--ivory-dim,#C7C2B6);
  padding:.5rem .7rem;min-height:40px;
  font-family:inherit;font-size:.78rem;letter-spacing:.03em;
  border-radius:var(--radius,2px);cursor:pointer;
  transition:color .2s ease, border-color .2s ease;
}
.langsw__btn:hover{color:var(--gold-bright,#E4C888);border-color:var(--gold-deep,#8A6C34);}
.langsw__btn:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:2px;}
.langsw__globe{flex:none;}
.langsw__name{max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.langsw__caret{flex:none;transition:transform .2s ease;}
.langsw.is-open .langsw__caret{transform:rotate(180deg);}

.langsw__menu{
  position:absolute;top:calc(100% + 8px);inset-inline-end:0;
  min-width:12.5rem;padding:.45rem;
  background:var(--surface-2,#1A1F2A);
  border:1px solid var(--line,rgba(212,184,124,.16));
  border-radius:var(--radius,2px);
  box-shadow:var(--shadow-lg,0 30px 80px -30px rgba(0,0,0,.65));
  z-index:20;
}
.langsw__menu[hidden]{display:none;}
.langsw__title{
  margin:0;padding:.35rem .6rem .45rem;
  font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#C6A15B);font-weight:700;
}
.langsw__list{list-style:none;margin:0;padding:0;}
.langsw__list a{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.6rem;min-height:40px;border-radius:var(--radius,2px);
  color:var(--ivory-dim,#C7C2B6);text-decoration:none;font-size:.86rem;
  transition:background .15s ease, color .15s ease;
}
.langsw__list a:hover{background:var(--surface-3,#232935);color:var(--gold-bright,#E4C888);}
.langsw__list a:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:-2px;}
.langsw__list a[aria-current="true"]{color:var(--gold,#C6A15B);font-weight:600;}
.langsw__list a[aria-current="true"]::after{content:"✓";font-size:.8rem;}

/* CTA */
#siteNav .mnav__cta{padding:.68rem 1.35rem;font-size:.76rem;white-space:nowrap;}

/* hamburger */
.mnav__burger{
  display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;
  background:none;border:0;padding:.4rem;cursor:pointer;
  min-width:44px;min-height:44px;border-radius:var(--radius,2px);
}
.mnav__burger:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:2px;}
.mnav__burger span{display:block;width:22px;height:1px;background:var(--ivory,#F6F2E8);transition:transform .2s ease, opacity .2s ease;}

/* ---------- pannello mobile ---------- */
.mobilenav{
  position:fixed;inset:0;z-index:300;
  height:100vh;height:100dvh;
  display:none;flex-direction:column;
  background:var(--midnight,#0B0E14);
  overflow-y:auto;overscroll-behavior:contain;
  padding-bottom:max(2rem, env(safe-area-inset-bottom));
}
.mobilenav[hidden]{display:none;}
.mobilenav.is-open{display:flex;}
.mobilenav__top{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:center;gap:.75rem;
  padding:.9rem clamp(1rem,5vw,1.5rem);
  padding-top:max(.9rem, env(safe-area-inset-top));
  background:var(--midnight,#0B0E14);
  border-bottom:1px solid var(--line,rgba(212,184,124,.16));
}
.mobilenav__top .btn{flex:1 1 auto;text-align:center;padding:.85rem 1.2rem;}
.mobilenav__top a.btn--gold{color:var(--midnight,#0B0E14);}
.mobilenav__close{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;
  background:none;border:1px solid var(--line-strong,rgba(212,184,124,.32));
  border-radius:var(--radius,2px);color:var(--ivory,#F6F2E8);cursor:pointer;
}
.mobilenav__close:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:2px;}

.mobilenav__body{padding:.5rem clamp(1rem,5vw,1.5rem) 1rem;}
.mobilenav__group{border-bottom:1px solid var(--line,rgba(212,184,124,.16));}
.mobilenav__acc{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;
  background:none;border:0;margin:0;padding:1.05rem .25rem;
  font-family:inherit;font-size:1rem;color:var(--ivory,#F6F2E8);
  text-align:start;cursor:pointer;min-height:52px;
}
.mobilenav__acc:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:-2px;}
.mobilenav__acc .mnav__caret{transition:transform .2s ease;}
.mobilenav__acc[aria-expanded="true"] .mnav__caret{transform:rotate(180deg);}
.mobilenav__sub{padding:0 0 .8rem;}
.mobilenav__sub[hidden]{display:none;}
.mobilenav__sublabel{
  display:block;padding:.6rem .25rem .3rem;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#C6A15B);font-weight:700;
}
.mobilenav a{
  display:block;color:var(--ivory-dim,#C7C2B6);text-decoration:none;
}
.mobilenav__sub a{padding:.75rem .25rem;min-height:44px;font-size:.95rem;line-height:1.35;}
.mobilenav__sub a:hover,
.mobilenav__sub a:focus-visible{color:var(--gold-bright,#E4C888);}
.mobilenav__sub a:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:-2px;}
.mobilenav__sub a[aria-current="page"]{color:var(--gold,#C6A15B);}
.mobilenav__acc.is-section{color:var(--gold-bright,#E4C888);}
.mobilenav__sub .mnav__ldesc{color:var(--ivory-faint,#8A8A86);}
.mobilenav__flat{
  display:block;padding:1.05rem .25rem;min-height:52px;
  font-size:1rem;color:var(--ivory,#F6F2E8);
  border-bottom:1px solid var(--line,rgba(212,184,124,.16));
}
.mobilenav__flat:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:-2px;}
.mobilenav__flat[aria-current="page"]{color:var(--gold-bright,#E4C888);}
.mobilenav__langs{padding-top:1.1rem;}
.mobilenav__langtitle{
  margin:0 0 .5rem;padding:0 .25rem;
  font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold,#C6A15B);font-weight:700;
}
.mobilenav__langlist{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.4rem;
}
.mobilenav__langlist a{
  padding:.75rem .6rem;min-height:44px;
  border:1px solid var(--line,rgba(212,184,124,.16));
  border-radius:var(--radius,2px);font-size:.9rem;
}
.mobilenav__langlist a[aria-current="true"]{
  color:var(--gold,#C6A15B);border-color:var(--gold-deep,#8A6C34);
}
.mobilenav__langlist a:focus-visible{outline:2px solid var(--gold-bright,#E4C888);outline-offset:2px;}

/* body bloccato quando il pannello e' aperto.
   backdrop-filter sull'header creerebbe un containing block per il pannello
   position:fixed, che coprirebbe la sola altezza dell'header: va spento. */
html.mnav-locked, html.mnav-locked body{overflow:hidden;}
html.mnav-locked #siteNav{-webkit-backdrop-filter:none;backdrop-filter:none;}

/* ---------- breakpoint ---------- */
@media (max-width:1080px){
  #siteNav .brand__word{display:none;}
}
@media (max-width:960px){
  .mnav{display:none;}
  #siteNav .mnav__cta{display:none;}
  .langsw{display:none;}
  .mnav__burger{display:flex;}
  #siteNav .nav__inner{justify-content:space-between;}
  #siteNav .brand__word{display:inline;}
}
@media (min-width:961px){
  .mobilenav{display:none !important;}
}
/* schermi molto stretti: il marchio si comprime, l'hamburger resta 44px */
@media (max-width:380px){
  #siteNav .nav__inner{gap:.6rem;}
  #siteNav .brand{gap:.45rem;}
  #siteNav .brand__logo{height:32px;}
  #siteNav .brand__word{
    white-space:normal;font-size:.85rem;letter-spacing:.08em;line-height:1.15;
  }
}

/* ---------- movimento ridotto ---------- */
@media (prefers-reduced-motion:reduce){
  #siteNav,#siteNav .nav__inner,#siteNav .brand__logo,
  .mnav__link,.mnav__trigger,.mnav__caret,.mnav__panel a,
  .langsw__btn,.langsw__caret,.langsw__list a,
  .mobilenav__acc .mnav__caret,.mnav__burger span{transition:none !important;}
}
