/* =========================================================
   Agripoli v0.15 — stable mobile header and navigation drawer
   Scope: mobile navigation only. Desktop and page content unchanged.
   ========================================================= */

:root{
  --mobile-header-h:74px;
  --mobile-nav-gap:10px;
}

.nav-backdrop{
  display:none;
}

@media (max-width: 900px){
  html{
    scroll-padding-top:calc(var(--mobile-header-h) + 12px);
  }

  .site-header{
    height:var(--mobile-header-h)!important;
    min-height:var(--mobile-header-h)!important;
    overflow:visible!important;
    background:rgba(255,255,255,.94)!important;
    border-bottom:1px solid rgba(23,52,43,.08)!important;
    box-shadow:0 8px 28px rgba(23,52,43,.055)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
    backdrop-filter:blur(18px) saturate(1.12)!important;
  }

  .header-inner{
    width:min(100% - 24px,1180px)!important;
    height:var(--mobile-header-h)!important;
    min-height:var(--mobile-header-h)!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-areas:"brand tools menu"!important;
    align-items:center!important;
    column-gap:8px!important;
    padding:0!important;
  }

  .brand{
    grid-area:brand!important;
    position:relative!important;
    z-index:104!important;
    width:auto!important;
    min-width:0!important;
    margin:0!important;
  }
  .brand img{
    width:56px!important;
    height:auto!important;
  }

  .header-tools{
    grid-area:tools!important;
    position:relative!important;
    z-index:104!important;
    min-width:0!important;
    margin:0!important;
    justify-self:end!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
  }
  .header-tools .header-cta{
    display:none!important;
  }

  .lang-switcher{
    width:104px!important;
    min-width:104px!important;
    height:40px!important;
    grid-template-columns:24px 36px 36px!important;
    padding:3px!important;
    flex:0 0 104px!important;
  }
  .lang-switcher::before{
    left:27px!important;
    top:3px!important;
    width:36px!important;
    height:34px!important;
    transform:translateX(calc(var(--switch-index) * 36px))!important;
  }
  .lang-globe{
    width:24px!important;
    height:34px!important;
  }
  .lang-switcher .lang-btn{
    width:36px!important;
    min-width:36px!important;
    height:34px!important;
    font-size:10.5px!important;
  }

  .menu-toggle{
    grid-area:menu!important;
    position:relative!important;
    z-index:106!important;
    display:grid!important;
    place-content:center!important;
    justify-self:end!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    margin:0!important;
    padding:10px!important;
    border-radius:14px!important;
    border:1px solid rgba(23,52,43,.10)!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 8px 20px rgba(23,52,43,.07)!important;
    -webkit-tap-highlight-color:transparent;
    transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .18s ease!important;
  }
  .menu-toggle:active{
    transform:scale(.95)!important;
  }
  .menu-toggle span{
    width:20px!important;
    height:2px!important;
    margin:2.5px 0!important;
    border-radius:999px!important;
    background:#17342b!important;
    transform-origin:center!important;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .18s ease,width .2s ease!important;
  }
  .nav-open .menu-toggle{
    background:#eefaf4!important;
    border-color:rgba(47,185,128,.22)!important;
    box-shadow:0 9px 24px rgba(47,185,128,.13)!important;
  }
  .nav-open .menu-toggle span:nth-child(1){
    transform:translateY(7px) rotate(45deg)!important;
  }
  .nav-open .menu-toggle span:nth-child(2){
    opacity:0!important;
    width:10px!important;
  }
  .nav-open .menu-toggle span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg)!important;
  }

  .primary-nav{
    position:fixed!important;
    z-index:105!important;
    top:calc(var(--mobile-header-h) + var(--mobile-nav-gap))!important;
    left:12px!important;
    right:12px!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - var(--mobile-header-h) - 24px)!important;
    margin:0!important;
    padding:10px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:4px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    border:1px solid rgba(23,52,43,.09)!important;
    border-radius:24px!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 24px 70px rgba(23,52,43,.18),0 5px 16px rgba(23,52,43,.06)!important;
    -webkit-backdrop-filter:blur(22px) saturate(1.08)!important;
    backdrop-filter:blur(22px) saturate(1.08)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(0,-12px,0) scale(.985)!important;
    transform-origin:top center!important;
    transition:opacity .22s ease,transform .32s cubic-bezier(.16,1,.3,1),visibility 0s linear .32s!important;
  }
  .nav-open .primary-nav{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0) scale(1)!important;
    transition:opacity .22s ease,transform .32s cubic-bezier(.16,1,.3,1),visibility 0s!important;
  }

  .primary-nav a{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    min-height:48px!important;
    padding:0 44px 0 16px!important;
    margin:0!important;
    border:0!important;
    border-radius:15px!important;
    color:#30483f!important;
    background:transparent!important;
    font-size:14px!important;
    font-weight:700!important;
    line-height:1.25!important;
    letter-spacing:-.01em!important;
    opacity:0!important;
    transform:translateY(-6px)!important;
    transition:background .18s ease,color .18s ease,transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease!important;
  }
  .primary-nav a::after{
    content:"";
    position:absolute;
    right:17px;
    width:7px;
    height:7px;
    border-top:1.5px solid currentColor;
    border-right:1.5px solid currentColor;
    transform:rotate(45deg);
    opacity:.35;
    transition:transform .18s ease,opacity .18s ease;
  }
  .primary-nav a:hover,
  .primary-nav a:focus-visible{
    color:#176b4a!important;
    background:rgba(47,185,128,.08)!important;
  }
  .primary-nav a:hover::after,
  .primary-nav a:focus-visible::after{
    opacity:.8;
    transform:translateX(2px) rotate(45deg);
  }
  .primary-nav a.active{
    color:#176b4a!important;
    background:linear-gradient(90deg,rgba(47,185,128,.12),rgba(47,185,128,.045))!important;
  }
  .primary-nav a.active::before{
    content:"";
    position:absolute;
    left:5px;
    top:11px;
    bottom:11px;
    width:3px;
    border-radius:999px;
    background:#2fb980;
    box-shadow:0 0 0 4px rgba(47,185,128,.08);
  }

  .nav-open .primary-nav a{
    opacity:1!important;
    transform:none!important;
  }
  .nav-open .primary-nav a:nth-child(1){transition-delay:.04s!important;}
  .nav-open .primary-nav a:nth-child(2){transition-delay:.07s!important;}
  .nav-open .primary-nav a:nth-child(3){transition-delay:.10s!important;}
  .nav-open .primary-nav a:nth-child(4){transition-delay:.13s!important;}
  .nav-open .primary-nav a:nth-child(5){transition-delay:.16s!important;}
  .nav-open .primary-nav a:nth-child(6){transition-delay:.19s!important;}

  .nav-backdrop{
    position:fixed!important;
    z-index:99!important;
    inset:var(--mobile-header-h) 0 0!important;
    display:block!important;
    padding:0!important;
    border:0!important;
    background:rgba(13,34,27,.24)!important;
    -webkit-backdrop-filter:blur(3px)!important;
    backdrop-filter:blur(3px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .24s ease,visibility 0s linear .24s!important;
  }
  .nav-open .nav-backdrop{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:opacity .24s ease,visibility 0s!important;
  }

  body.nav-open{
    overflow:hidden!important;
    touch-action:none;
  }
}

@media (max-width: 480px){
  :root{
    --mobile-header-h:70px;
    --mobile-nav-gap:8px;
  }
  .header-inner{
    width:min(100% - 18px,1180px)!important;
    column-gap:6px!important;
  }
  .brand img{
    width:51px!important;
  }
  .lang-switcher{
    width:96px!important;
    min-width:96px!important;
    height:38px!important;
    grid-template-columns:22px 34px 34px!important;
    flex-basis:96px!important;
  }
  .lang-switcher::before{
    left:25px!important;
    width:34px!important;
    height:32px!important;
    transform:translateX(calc(var(--switch-index) * 34px))!important;
  }
  .lang-globe{
    width:22px!important;
    height:32px!important;
  }
  .lang-globe svg{
    width:14px!important;
    height:14px!important;
  }
  .lang-switcher .lang-btn{
    width:34px!important;
    min-width:34px!important;
    height:32px!important;
    font-size:10px!important;
  }
  .menu-toggle{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    border-radius:13px!important;
  }
  .primary-nav{
    left:9px!important;
    right:9px!important;
    padding:8px!important;
    border-radius:21px!important;
    max-height:calc(100dvh - var(--mobile-header-h) - 18px)!important;
  }
  .primary-nav a{
    min-height:46px!important;
    font-size:13.5px!important;
  }
}

@media (max-width: 350px){
  .header-inner{width:min(100% - 14px,1180px)!important;}
  .brand img{width:47px!important;}
  .lang-switcher{width:91px!important;min-width:91px!important;grid-template-columns:21px 32px 32px!important;flex-basis:91px!important;}
  .lang-switcher::before{left:24px!important;width:32px!important;transform:translateX(calc(var(--switch-index) * 32px))!important;}
  .lang-switcher .lang-btn{width:32px!important;min-width:32px!important;}
  .menu-toggle{width:38px!important;height:38px!important;min-width:38px!important;}
}

@media (prefers-reduced-motion: reduce){
  .primary-nav,
  .primary-nav a,
  .nav-backdrop,
  .menu-toggle,
  .menu-toggle span{
    transition:none!important;
  }
}
