/* ============================================================================
   PROLOCO IMK — Frontend stylesheet (v4.0.0-rc3 "Frontend Stabilization")
   Foglio di stile unico e autorevole per tutto il frontend del tema.
   Caricato DOPO style.css (che da rc3 tiene solo: token, reset, tipografia
   base e gli stili di contenuto singolo/archivio/widget non duplicati qui).

   Regola sugli !important: usati SOLO dove serve battere CSS inline o di
   plugin (WPBakery, Leaflet). Sono pochi e tutti commentati. Le regole del
   "guscio" del tema non ne usano: vincono per ordine di caricamento.
   ========================================================================== */

:root{
  --pl-bg:#fafaf7;
  --pl-surface:#ffffff;
  --pl-ink:#151922;
  --pl-muted:#5f6670;
  --pl-border:rgba(21,25,34,.12);
  --pl-green:#0e7a60;
  --pl-green-dark:#063f34;
  --pl-olive:#7a8f3b;
  --pl-earth:#d85b14;
  --pl-cream:#f5efe2;
  --pl-shadow:0 14px 36px rgba(8,18,28,.12);
  --pl-shadow-soft:0 7px 20px rgba(8,18,28,.08);
  --pl-radius:18px;
  --pl-radius-lg:28px;
  --pl-header-h:72px;
  --pl-header-layout-h:72px;
  --pl-container:1180px;
}

/* ---- Globali (spostati qui da style.css per togliere la duplicazione) ---- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--pl-header-h) + 12px)}
body{
  margin:0;
  background:var(--pl-bg);
  color:var(--pl-ink);
  font-family:var(--font-body,"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);
  font-size:16px;line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  /* Header fixed: lo spazio sotto l'header viene riservato qui (e ricalcolato dal JS) */
  padding-top:var(--pl-header-h);
}
img,svg,video{max-width:100%;height:auto}
a{color:var(--pl-green);text-decoration:none}
a:hover{color:var(--pl-earth)}
.container{width:min(var(--pl-container),calc(100% - 32px));margin-inline:auto}
.container--full{width:100%;max-width:none}
.text-center{text-align:center}
.mt-40{margin-top:28px}

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

.skip-link{position:absolute;left:12px;top:-80px;z-index:99999;background:#fff;color:#000;padding:10px 14px;border-radius:8px;box-shadow:var(--pl-shadow)}
.skip-link:focus{top:12px}

/* ---- Header (FIXED) ------------------------------------------------------ */
.site-header{
  position:fixed;top:0;left:0;right:0;
  z-index:9990;
  border-bottom:1px solid var(--pl-border);
  transition:box-shadow .2s ease;
  isolation:isolate;
}
/* Lo sfondo "vetro smerigliato" vive su uno pseudo-elemento e non su .site-header
   stesso: un elemento con backdrop-filter attivo diventa il riferimento di
   posizionamento per i suoi figli con position:fixed. Il menu mobile (.main-nav)
   è position:fixed dentro l'header: con backdrop-filter sull'header stesso,
   il menu restava "intrappolato" nella sua altezza (la sola barra del logo)
   invece di occupare tutto lo schermo. Spostando l'effetto qui, .main-nav
   torna a posizionarsi correttamente rispetto al viewport. */
.site-header::before{
  content:"";
  position:absolute;inset:0;
  background:rgba(250,250,247,.96);
  backdrop-filter:saturate(140%) blur(12px);
  -webkit-backdrop-filter:saturate(140%) blur(12px);
  transition:background .2s ease;
}
/* Offset barra admin di WordPress */
.admin-bar .site-header{top:32px}
.site-header.is-scrolled,.site-header--scrolled{box-shadow:0 10px 26px rgba(12,20,32,.09)}
.site-header.is-measuring,.site-header.is-measuring *{transition:none!important;animation:none!important}
.site-header__inner{min-height:var(--pl-header-layout-h,72px);padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.site-brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.site-brand a{color:var(--pl-ink)}
.custom-logo-link{display:inline-flex;align-items:center;flex:0 0 auto}
.custom-logo{display:block;width:auto;height:var(--proloco-logo-h,48px);max-height:var(--proloco-logo-h,48px);object-fit:contain;transition:height .18s ease,max-height .18s ease}
.site-header.is-scrolled .custom-logo{height:var(--proloco-logo-scroll-h,40px);max-height:var(--proloco-logo-scroll-h,40px)}
.site-brand__title{display:block;font-size:clamp(1.05rem,2vw,1.45rem);font-weight:850;letter-spacing:-.03em;line-height:1.05;color:var(--pl-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.site-brand__tag{display:block;margin-top:3px;color:var(--pl-muted);font-size:.78rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}

/* ---- Navigazione (desktop) ---------------------------------------------- */
.main-nav{display:flex;align-items:center;justify-content:flex-end}
.main-nav ul{display:flex;align-items:center;gap:22px;margin:0;padding:0;list-style:none}
.main-nav li{margin:0}
.main-nav a{display:inline-flex;align-items:center;min-height:42px;color:var(--pl-ink);font-size:.96rem;font-weight:750;padding:4px 0;position:relative}
.main-nav a::after{content:"";position:absolute;left:0;bottom:3px;width:0;height:2px;background:var(--pl-green);transition:width .2s ease}
.main-nav a:hover::after,.main-nav .current-menu-item>a::after{width:100%}
.nav-toggle{display:none;appearance:none;border:1px solid var(--pl-border);background:#fff;color:var(--pl-ink);border-radius:999px;width:44px;height:44px;padding:0;align-items:center;justify-content:center;flex:0 0 auto;position:relative;z-index:10020;box-shadow:0 6px 18px rgba(10,20,30,.07)}
.nav-toggle span{display:block;width:20px;height:2px;margin:0;background:var(--pl-ink);border-radius:2px;position:absolute;transition:transform .2s ease,opacity .2s ease}
.nav-toggle span:nth-child(1){transform:translateY(-6px)}
.nav-toggle span:nth-child(2){transform:translateY(0)}
.nav-toggle span:nth-child(3){transform:translateY(6px)}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg)}
.header-cta,.site-header .btn{flex:0 0 auto;white-space:nowrap}

/* ---- Sottomenu desktop (dropdown) ----------------------------------------
   A desktop la regola dei sottomenu mancava del tutto: il bottone-toggle
   (creato dal JS per il mobile) restava con lo stile di default del browser
   e il <ul> figlio, senza alcun display:none, rimaneva sempre visivamente
   espanso in flusso sotto la voce di menu, sfondando l'altezza della barra.
   Qui il bottone è nascosto (su desktop si usa hover/focus) e il sottomenu
   diventa un pannello flottante. Si usa opacity+pointer-events, non
   display/visibility, perché i link restano raggiungibili da tastiera anche
   da "chiuso": è quello che permette a :focus-within di funzionare. */
@media (min-width:881px){
  .main-nav li.menu-item-has-children,.main-nav li.page_item_has_children{position:relative}
  .main-nav .submenu-toggle{display:none}
  .main-nav .sub-menu,.main-nav .children{
    position:absolute;top:100%;left:0;z-index:50;min-width:230px;margin:10px 0 0;padding:8px;
    list-style:none;background:var(--pl-surface);border:1px solid var(--pl-border);
    border-radius:var(--pl-radius);box-shadow:var(--pl-shadow);
    opacity:0;pointer-events:none;transform:translateY(6px);
    transition:opacity .16s ease,transform .16s ease;
  }
  .main-nav li.menu-item-has-children:hover>.sub-menu,
  .main-nav li.menu-item-has-children:focus-within>.sub-menu,
  .main-nav li.page_item_has_children:hover>.children,
  .main-nav li.page_item_has_children:focus-within>.children{
    opacity:1;pointer-events:auto;transform:translateY(0);
  }
  .main-nav .sub-menu li,.main-nav .children li{border-bottom:0}
  .main-nav .sub-menu a,.main-nav .children a{display:flex;min-height:38px;align-items:center;padding:6px 8px;border-radius:10px;font-size:.92rem;font-weight:700;color:var(--pl-ink);white-space:nowrap}
  .main-nav .sub-menu a:hover,.main-nav .children a:hover{background:var(--pl-cream);color:var(--pl-green)}
  .main-nav .sub-menu a::after,.main-nav .children a::after{display:none}
}

/* ---- Bottoni ------------------------------------------------------------- */
.btn,.wpb_wrapper .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:11px 18px;border-radius:999px;border:1px solid transparent;background:var(--pl-green);color:#fff;font-weight:800;font-size:.93rem;box-shadow:0 10px 22px rgba(14,122,96,.22);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.btn:hover{transform:translateY(-1px);background:#0b6b54;color:#fff;box-shadow:0 14px 28px rgba(14,122,96,.3)}
.btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.72);color:#fff;box-shadow:none}
.btn--ghost:hover{background:#fff;color:var(--pl-ink)}
.btn--oliva{background:var(--pl-ink);color:#fff;box-shadow:0 10px 20px rgba(10,16,24,.18)}

/* ---- Hero ---------------------------------------------------------------- */
.hero{position:relative;display:flex;align-items:center;min-height:clamp(360px,54vh,640px);padding:clamp(56px,9vw,112px) 0;background-color:var(--pl-green-dark);background-size:cover;background-position:center;color:#fff;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,14,21,.72),rgba(5,14,21,.48) 48%,rgba(5,14,21,.18));z-index:0;pointer-events:none}
.hero::after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(0deg,rgba(0,0,0,.28),transparent);z-index:0;pointer-events:none}
.hero__inner{position:relative;z-index:2;max-width:760px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:7px 13px;border-radius:999px;background:rgba(14,122,96,.95);color:#fff;font-size:.74rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;box-shadow:0 10px 20px rgba(0,0,0,.13)}
.hero h1{margin:0 0 12px;color:#fff;font-size:clamp(2.1rem,6.2vw,4.9rem);line-height:.98;letter-spacing:-.055em;text-shadow:0 3px 18px rgba(0,0,0,.22)}
.hero p{margin:0 0 24px;color:rgba(255,255,255,.93);font-size:clamp(1rem,2vw,1.25rem);max-width:56ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px}

/* Hero slider */
.hero-slider{min-height:clamp(380px,58vh,680px);padding:0}
.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .45s ease}
.hero-slide.is-active{opacity:1;pointer-events:auto}
.hero-slide__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-slide__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,14,21,.74),rgba(5,14,21,.43) 52%,rgba(5,14,21,.12))}
.hero-slide__content{position:relative;z-index:2;width:100%;min-height:inherit;display:flex;align-items:center}
.hero-arrow,.hero-playpause,.hero-dot{z-index:3}

/* ---- Sezioni ------------------------------------------------------------- */
.section{position:relative;padding:var(--sec-pad-v,72px) 0;background:var(--pl-bg);overflow:hidden}
.section--sabbia{background:var(--pl-cream)}
.section--custom{isolation:isolate}
.section-head{margin:0 0 24px;max-width:820px}
.section-head__eyebrow{display:block;margin-bottom:7px;color:var(--pl-green);font-size:.75rem;line-height:1.2;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.section-head h2{margin:0;color:var(--pl-ink);font-size:clamp(1.55rem,4.8vw,3.2rem);line-height:1.04;letter-spacing:-.045em}
.section-head p{margin:10px 0 0;color:var(--pl-muted);font-size:1.02rem}

/* ---- Griglie auto-fit (eventi, luoghi, prodotti, produttori, itinerari) -- */
.card-grid{--grid-min:250px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--grid-min)),1fr));gap:clamp(16px,2.4vw,28px);align-items:stretch;width:100%}
.card-grid--count-1{max-width:440px}
.card-grid--count-2{--grid-min:280px}
.card-grid--count-3{--grid-min:260px}
.card-grid--count-4{--grid-min:230px}
.card-grid--count-5,.card-grid--count-6,.card-grid--count-7,.card-grid--count-8{--grid-min:220px}
.container:not(.container--full) .card-grid--count-1{margin-inline:0}
.container:not(.container--full) .card-grid--count-2{max-width:760px}
.container:not(.container--full) .card-grid--count-3{max-width:1060px}

/* ---- Card ---------------------------------------------------------------- */
.card{display:flex;flex-direction:column;background:var(--pl-surface);border:1px solid var(--pl-border);border-radius:var(--pl-radius);overflow:hidden;box-shadow:var(--pl-shadow-soft);min-width:0;transition:box-shadow .22s ease,translate .22s ease,border-color .22s ease}
.card:hover{translate:0 -3px;box-shadow:var(--pl-shadow);border-color:rgba(14,122,96,.22)}
.card__media{display:flex;align-items:center;justify-content:center;position:relative;width:100%;aspect-ratio:16/9;max-height:210px;background:#edf1e9;overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:scale .35s ease}
.card:hover .card__media img{scale:1.035}
.card__media--vuota{background:linear-gradient(135deg,#eaf2ed,#f5efe2)}
.card__media--vuota svg{width:48px;height:48px;opacity:.28;color:var(--pl-green);stroke:currentColor}
.card__body{padding:17px;display:flex;flex-direction:column;gap:8px;flex:1}
.card__head-row{display:flex;align-items:flex-start;gap:11px}
.card__title{margin:0;color:var(--pl-ink);font-size:1.06rem;line-height:1.18;letter-spacing:-.025em;overflow-wrap:anywhere}
.card__title a{color:var(--pl-ink)}
.card__excerpt{margin:0;color:#37404b;font-size:.92rem;line-height:1.45}
.card__meta{display:flex;flex-wrap:wrap;gap:7px 10px;margin-top:auto;padding-top:8px;color:var(--pl-muted);font-size:.78rem;line-height:1.2}
.card__tax{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#edf7f3;color:var(--pl-green);font-weight:850;letter-spacing:.08em;text-transform:uppercase;font-size:.65rem}
.event-date{flex:0 0 auto;display:grid;place-items:center;min-width:56px;border-radius:12px;background:var(--pl-earth);color:#fff;overflow:hidden}
.event-date__day{display:block;font-size:1.05rem;font-weight:900;line-height:1;padding-top:7px}
.event-date__mon{display:block;width:100%;padding:4px 6px 6px;text-align:center;font-size:.65rem;font-weight:850;letter-spacing:.09em;background:rgba(0,0,0,.12)}

/* Sfondi sezione per tipo di contenuto.
   Ordine: prima le alternanze, poi gli override :has() (stessa specificità,
   vince l'ultimo: nessun !important necessario). */
.section:nth-of-type(odd){background:#f7f8f2}
.section:nth-of-type(even){background:#fff}
.section:has(.card-grid--produttore),.section:has(.card-grid--luogo){background:#f4f5ed}
.section:has(.card-grid--evento){background:linear-gradient(180deg,#0e7a60,#0b6b54)}
.section:has(.card-grid--evento) .section-head__eyebrow,
.section:has(.card-grid--evento) .section-head h2,
.section:has(.card-grid--evento) .section-head p{color:#fff}
.section:has(.card-grid--prodotto){background:#050805}
.section:has(.card-grid--prodotto) .section-head__eyebrow{color:#ddbd73}
.section:has(.card-grid--prodotto) .section-head h2,
.section:has(.card-grid--prodotto) .section-head p{color:#fff}

/* ---- Mappe (moduli v20 / v31) ------------------------------------------- */
.proloco-v20-map-wrap,.proloco-v31-geo{background:#fff;border:1px solid var(--pl-border);border-radius:var(--pl-radius);padding:12px;box-shadow:var(--pl-shadow-soft);overflow:hidden}
.proloco-v20-map,.proloco-v31-geo__map{min-height:320px;border-radius:14px;background:#eaf2ed;overflow:hidden}
.proloco-v20-empty,.proloco-v31-geo__empty{margin:10px 0 0;color:var(--pl-muted);font-size:.9rem}
.proloco-v20-map-filters,.proloco-v31-geo__filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.proloco-v20-map-filters button,.proloco-v31-geo__filters button{border:1px solid var(--pl-border);background:#fff;color:var(--pl-ink);border-radius:999px;padding:8px 12px;font-weight:750}
.proloco-v20-map-filters .is-active,.proloco-v31-geo__filters .is-active{background:var(--pl-green);border-color:var(--pl-green);color:#fff}
.proloco-v31-geo__layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:16px}
.proloco-v31-geo__list{max-height:560px;overflow:auto;padding-right:4px}
.proloco-v31-geo__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.proloco-v31-geo__head h2{margin:0;color:var(--pl-ink)}
.proloco-v31-geo__head p{margin:5px 0 0;color:var(--pl-muted)}
.leaflet-container{font-family:inherit;z-index:1 !important} /* !important: batte lo z-index interno di Leaflet */

/* ---- WPBakery ------------------------------------------------------------ */
.vc_row,.wpb_row{max-width:100%;box-sizing:border-box}
.wpb_wrapper::after{content:"";display:table;clear:both}
.vc_row[data-vc-full-width]{overflow:visible !important} /* !important: batte l'overflow inline di WPBakery che taglia i contenuti full-width */
.vc_column_container>.vc_column-inner{box-sizing:border-box}
.wpb_wrapper .card-grid{margin-top:0}
.proloco-section-designed{position:relative;overflow:hidden}
.proloco-section-designed__inner{position:relative;z-index:2}

/* ---- Footer -------------------------------------------------------------- */
.site-footer{background:#101722;color:#dce4ea;padding:44px 0 22px}
.site-footer a{color:#fff}
.site-footer h2,.site-footer h3,.site-footer h4{color:#fff}
.site-footer .widget{margin-bottom:18px}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:20px;padding-top:18px;color:#aab6c2;font-size:.86rem}

/* ---- Componenti recuperati dai moduli legacy (token --pl-*) -------------- */
.proloco-header-cta{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:11px 18px;border-radius:999px;background:var(--pl-green);color:#fff;font-weight:800;font-size:.93rem;box-shadow:0 10px 22px rgba(14,122,96,.22);transition:transform .2s ease,background .2s ease}
.proloco-header-cta:hover{transform:translateY(-1px);background:var(--pl-green-dark);color:#fff}
.proloco-cta-territoriale{margin:clamp(36px,6vw,64px) 0;padding:clamp(26px,5vw,52px);border-radius:var(--pl-radius-lg);background:linear-gradient(135deg,var(--pl-olive),var(--pl-green-dark));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:26px;position:relative;overflow:hidden;box-shadow:var(--pl-shadow)}
.proloco-cta-territoriale::before{content:"";position:absolute;right:-8%;bottom:-45%;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.proloco-cta-territoriale>*{position:relative;z-index:1}
.proloco-cta-territoriale h2,.proloco-cta-territoriale p{color:#fff;margin:0}
.proloco-cta-territoriale p{opacity:.88;max-width:680px;margin-top:8px}
.proloco-cta-territoriale .btn{background:#fff;color:var(--pl-green-dark)}
.proloco-cta-territoriale .btn:hover{background:#f3f4ef;color:var(--pl-green-dark)}
.proloco-mobile-quick{display:none} /* box link rapidi: dipendeva dal JS legacy rimosso */
[class*="proloco-section--"]{position:relative;padding:var(--sec-pad-v,72px) 0}

/* ========================================================================== */
/* RESPONSIVE                                                                 */
/* ========================================================================== */

/* Tablet landscape / desktop piccolo */
@media (min-width:881px) and (max-width:1120px){
  .main-nav ul{gap:14px}
  .main-nav a{font-size:.9rem}
  .custom-logo{height:var(--proloco-mobile-logo-h,var(--proloco-logo-h,44px));max-height:var(--proloco-mobile-logo-h,var(--proloco-logo-h,44px))}
  .card-grid{--grid-min:230px}
}

/* Mobile + tablet portrait (≤880px): menu fullscreen, header compatto */
@media (max-width:880px){
  :root{--pl-header-h:64px}
  .admin-bar .site-header{top:46px} /* la admin bar è alta 46px sotto i 782px */
  .site-header__inner{min-height:64px;width:calc(100% - 24px)}
  .custom-logo{height:var(--proloco-mobile-logo-h,38px);max-height:var(--proloco-mobile-logo-h,38px)}
  .site-brand__title{font-size:.98rem;max-width:62vw}
  .site-brand__tag{display:none}
  .site-header{z-index:10030}
  .nav-toggle{display:inline-flex}
  .site-header .header-cta,.site-header .proloco-header-cta,.site-header>.btn,.site-header__inner>.btn{display:none}

  .main-nav{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:flex-start;background:rgba(250,250,247,.985);z-index:10010;padding:calc(var(--pl-header-h) + 28px) 24px 28px;transform:translateX(105%);opacity:0;pointer-events:none;transition:transform .25s ease,opacity .2s ease,visibility 0s linear .25s;overflow:auto;-webkit-overflow-scrolling:touch;border:0;box-shadow:none;visibility:hidden}
  .main-nav.is-open{transform:translateX(0);opacity:1;pointer-events:auto;visibility:visible;transition:transform .25s ease,opacity .2s ease}
  .main-nav ul{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;margin:0;list-style:none}
  .main-nav li{border-bottom:1px solid var(--pl-border);margin:0}
  .main-nav a{display:flex;min-height:58px;align-items:center;font-size:1.45rem;font-weight:850;color:var(--pl-ink);overflow-wrap:anywhere;text-decoration:none}
  .main-nav a::after{display:none}
  .main-nav .sub-menu,.main-nav .children{margin:0 0 10px 14px;padding-left:14px;border-left:2px solid var(--pl-border)}

  .main-nav li.menu-item-has-children,.main-nav li.page_item_has_children{position:relative}
  .main-nav .submenu-toggle{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:0;top:8px;width:42px;height:42px;border:1px solid var(--pl-border);border-radius:999px;background:#fff;color:var(--pl-ink);box-shadow:0 6px 18px rgba(10,20,30,.06);z-index:2}
  .main-nav .submenu-toggle span{display:block;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .18s ease}
  .main-nav .submenu-toggle[aria-expanded="true"] span{transform:rotate(225deg) translate(-2px,-2px)}
  .main-nav li.menu-item-has-children>a,.main-nav li.page_item_has_children>a{padding-right:56px}
  .main-nav .sub-menu,.main-nav .children{display:none}
  .main-nav .submenu-open>.sub-menu,.main-nav .submenu-open>.children{display:flex}
  .main-nav .sub-menu li,.main-nav .children li{border-bottom:0}
  .main-nav .sub-menu a,.main-nav .children a{min-height:42px;font-size:1rem;font-weight:750;color:var(--pl-muted)}

  .hero{min-height:360px;padding:52px 0}
  .hero::before{background:linear-gradient(180deg,rgba(5,14,21,.62),rgba(5,14,21,.54))}
  .hero h1{font-size:2.15rem}
  .hero p{font-size:1rem}
  .hero__actions{gap:9px}
  .hero__actions .btn{width:100%;min-height:42px}

  .section{padding:46px 0}
  .container{width:calc(100% - 28px)}
  .section-head{margin-bottom:18px}
  .section-head h2{font-size:1.55rem}

  .card-grid{grid-template-columns:1fr;gap:16px;max-width:none}
  .card{border-radius:16px}
  .card__media{aspect-ratio:16/8.6;max-height:170px}
  .card__body{padding:15px}
  .card__title{font-size:1rem}
  .card__excerpt{font-size:.88rem}
  .event-date{min-width:52px}

  .proloco-v31-geo__layout{grid-template-columns:1fr}
  .proloco-v31-geo__head{display:block}
  .proloco-v31-geo__head .btn{margin-top:10px;width:100%}
  .proloco-v20-map,.proloco-v31-geo__map{height:320px;min-height:320px}
  .proloco-v31-geo__list{max-height:none}
  .site-footer{padding:34px 0 18px}

  .proloco-cta-territoriale{flex-direction:column;align-items:flex-start;text-align:left}
  .proloco-cta-territoriale .btn{width:100%}
  [class*="proloco-section--"]{padding:46px 0}
}

/* Telefoni piccoli (≤380px, es. 320/360): evita overflow orizzontale */
@media (max-width:380px){
  .container{width:calc(100% - 22px)}
  .site-header__inner{width:calc(100% - 20px);gap:10px}
  .site-brand__title{font-size:.92rem;max-width:56vw}
  .hero h1{font-size:1.9rem;letter-spacing:-.04em}
  .hero__eyebrow{font-size:.68rem}
  .section-head h2{font-size:1.4rem}
  .card__body{padding:13px}
  .main-nav a{font-size:1.28rem;min-height:52px}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation:none !important;transition:none !important}
}

/* v4.4.3 Enterprise Content Experience */
.proloco-breadcrumb{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:0 0 18px;font-size:.92rem;opacity:.88}
.proloco-breadcrumb a{color:inherit;text-decoration:none;font-weight:700}.proloco-breadcrumb a:hover{text-decoration:underline}
.proloco-archive-grid--1{grid-template-columns:1fr}.proloco-archive-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.proloco-archive-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.proloco-archive-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.proloco-archive-grid--auto{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.proloco-single-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:42px;align-items:start;padding:56px 0}.proloco-single--sidebar-left .proloco-single-layout{grid-template-columns:340px minmax(0,1fr)}.proloco-single--sidebar-left .entry-body{order:2}.proloco-single--sidebar-left .proloco-single-sidebar{order:1}.proloco-single-layout--no-sidebar{display:block;max-width:920px;margin:0 auto}.proloco-single-sidebar{position:sticky;top:calc(var(--proloco-header-h,80px) + 24px)}.proloco-related .card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
@media (max-width:900px){.proloco-single-layout,.proloco-single--sidebar-left .proloco-single-layout{display:block;padding:36px 0}.proloco-single--sidebar-left .entry-body{order:initial}.proloco-single-sidebar{position:static;margin-top:28px}.proloco-archive-grid--3,.proloco-archive-grid--4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
@media (max-width:640px){.proloco-archive-grid--2,.proloco-archive-grid--3,.proloco-archive-grid--4{grid-template-columns:1fr}.proloco-breadcrumb{font-size:.84rem}}


/* v4.4.10 - responsive archive columns selectable from Theme Manager */
@media (max-width:1024px) and (min-width:641px){
  .proloco-archive-grid.proloco-archive-grid--tablet-1{grid-template-columns:1fr!important}
  .proloco-archive-grid.proloco-archive-grid--tablet-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .proloco-archive-grid.proloco-archive-grid--tablet-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .proloco-archive-grid.proloco-archive-grid--tablet-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .proloco-archive-grid.proloco-archive-grid--tablet-auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
}
@media (max-width:640px){
  .proloco-archive-grid.proloco-archive-grid--mobile-1{grid-template-columns:1fr!important}
  .proloco-archive-grid.proloco-archive-grid--mobile-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px}
  .proloco-archive-grid.proloco-archive-grid--mobile-3{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px}
  .proloco-archive-grid.proloco-archive-grid--mobile-4{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px}
  .proloco-archive-grid.proloco-archive-grid--mobile-auto{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))!important}
  .proloco-archive-grid[class*="proloco-archive-grid--mobile-"] .card{min-width:0}
  .proloco-archive-grid[class*="proloco-archive-grid--mobile-"] .card__body{padding:14px}
  .proloco-archive-grid.proloco-archive-grid--mobile-2 .card__title,
  .proloco-archive-grid.proloco-archive-grid--mobile-3 .card__title,
  .proloco-archive-grid.proloco-archive-grid--mobile-4 .card__title{font-size:clamp(.92rem,3.8vw,1.05rem);line-height:1.18}
  .proloco-archive-grid.proloco-archive-grid--mobile-2 .card__excerpt,
  .proloco-archive-grid.proloco-archive-grid--mobile-3 .card__excerpt,
  .proloco-archive-grid.proloco-archive-grid--mobile-4 .card__excerpt{display:none}
}

/* v5.1.5 Home Builder 2.0 */
.proloco-home-block--layout-compact{--sec-pad-v:44px}
.proloco-home-block--layout-featured{position:relative;overflow:hidden}
.proloco-home-block--layout-featured .section-head{max-width:860px;margin-left:auto;margin-right:auto;text-align:center}
.proloco-home-cta{border:1px solid rgba(24,27,31,.12);border-radius:28px;padding:42px;text-align:center;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(245,239,225,.92));box-shadow:0 22px 70px rgba(24,27,31,.10)}
.proloco-home-cta h2{margin:0 0 10px;font-size:clamp(1.8rem,3vw,3rem)}
.proloco-home-cta p{max-width:680px;margin:0 auto 24px;color:rgba(24,27,31,.74)}
.proloco-home-newsletter-note{border:1px dashed rgba(24,27,31,.25);border-radius:18px;padding:24px;text-align:center;color:rgba(24,27,31,.68);background:rgba(255,255,255,.6)}
@media (max-width: 767px){.proloco-home-cta{padding:28px 18px;border-radius:20px}.proloco-home-block--layout-compact{--sec-pad-v:32px}}


/* v8.4.2 — Header Engine Stabilization
   Stati expanded/compact separati e spazio documento stabile. */
:root{
  --pl-header-h:72px;
  --pl-header-expanded-h:72px;
  --pl-header-compact-h:56px;
  --pl-header-min-h:76px;
  --pl-header-scroll-min-h:56px;
  --pl-topbar-h:0px;
  --pl-fixed-stack-h:calc(var(--pl-header-h) + var(--pl-topbar-h));
  --pl-adminbar-h:0px;
}
body.admin-bar{--pl-adminbar-h:32px}
body{padding-top:var(--pl-fixed-stack-h)}
html{scroll-padding-top:calc(var(--pl-fixed-stack-h) + var(--pl-adminbar-h) + 12px)}
.site-header{
  top:calc(var(--pl-adminbar-h) + var(--pl-topbar-h));
  min-height:0;
  contain:layout style;
}
.site-header::before{z-index:-1;pointer-events:none}
.site-header__inner{
  z-index:1;
  min-height:var(--pl-header-min-h,76px);
  padding:var(--proloco-header-pad-v,16px) var(--proloco-header-pad-h,24px);
  transition:min-height .2s ease,padding .2s ease;
}
.site-header.is-scrolled .site-header__inner{
  min-height:var(--pl-header-scroll-min-h,56px);
  padding-top:var(--proloco-header-scroll-pad-v,8px);
  padding-bottom:var(--proloco-header-scroll-pad-v,8px);
}
.site-header .site-brand,.site-header .custom-logo-link{min-width:0;overflow:visible}
.site-header .custom-logo-link{display:inline-flex!important;align-items:center}
.site-header .custom-logo-link img,.site-header .custom-logo{
  display:block!important;
  width:auto!important;
  height:var(--proloco-logo-h,68px)!important;
  max-height:var(--proloco-logo-h,68px)!important;
  min-width:1px;
  min-height:1px!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  object-fit:contain!important;
  transition:height .2s ease,max-height .2s ease;
}
.site-header.is-scrolled .custom-logo-link img,.site-header.is-scrolled .custom-logo{
  height:var(--proloco-logo-scroll-h,40px)!important;
  max-height:var(--proloco-logo-scroll-h,40px)!important;
}
.site-brand__title{font-size:var(--proloco-brand-size,22px)!important;transition:font-size .2s ease}
.site-header.is-scrolled .site-brand__title{font-size:var(--proloco-brand-size-min,16px)!important}
.main-nav ul{gap:var(--proloco-nav-gap,22px)!important}
.main-nav a{
  font-size:var(--proloco-nav-size,16px)!important;
  padding-top:var(--proloco-nav-link-pad-y,4px)!important;
  padding-bottom:var(--proloco-nav-link-pad-y,4px)!important;
  transition:font-size .2s ease,color .2s ease,background-color .2s ease;
}
.site-header.is-scrolled .main-nav a{font-size:var(--proloco-nav-size-min,13px)!important}
.site-header.is-measuring,.site-header.is-measuring *{transition:none!important;animation:none!important}
body.proloco-has-topbar .proloco-topbar{top:var(--pl-adminbar-h)}
body.proloco-has-topbar .site-header{top:calc(var(--pl-adminbar-h) + var(--pl-topbar-h))}

@media (max-width:880px){
  .site-header__inner{width:calc(100% - 24px);padding-left:0;padding-right:0}
  .site-header .custom-logo-link img,.site-header .custom-logo{
    height:var(--proloco-mobile-logo-h,48px)!important;
    max-height:var(--proloco-mobile-logo-h,48px)!important;
  }
  .site-header.is-scrolled .custom-logo-link img,.site-header.is-scrolled .custom-logo{
    height:min(var(--proloco-logo-scroll-h,40px),var(--proloco-mobile-logo-h,48px))!important;
    max-height:min(var(--proloco-logo-scroll-h,40px),var(--proloco-mobile-logo-h,48px))!important;
  }
  .main-nav{
    top:var(--pl-mobile-menu-top,calc(var(--pl-adminbar-h) + var(--pl-topbar-h) + var(--pl-header-min-h)))!important;
    bottom:0!important;
    height:auto!important;
    max-height:none!important;
    width:var(--proloco-mobile-menu-width,100%)!important;
    left:auto!important;
    right:0!important;
    padding-top:18px!important;
    padding-bottom:max(28px,env(safe-area-inset-bottom))!important;
    padding-left:var(--proloco-mobile-menu-pad,24px)!important;
    padding-right:var(--proloco-mobile-menu-pad,24px)!important;
    background:var(--proloco-mobile-menu-bg,#fff)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }
  .main-nav.is-open{isolation:isolate}
  .main-nav a{font-size:var(--proloco-mobile-link-size,22px)!important}
  .site-header.is-scrolled .main-nav a{font-size:var(--proloco-mobile-link-size,22px)!important}
}
@media (max-width:782px){body.admin-bar{--pl-adminbar-h:46px}}
@media (max-width:767px){
  body.proloco-has-topbar.proloco-topbar-mobile-hidden{--pl-topbar-h:0px}
}


/* ==========================================================================
   PROLOCO IMK v8.4.4 — Mobile Menu Typography & UX Fix
   Autorità finale per dimensioni, spaziatura e scorrimento del pannello mobile.
   ========================================================================== */
@media (max-width:880px){
  body.proloco-nav-open{overflow:hidden!important;overscroll-behavior:none}
  .main-nav{
    padding-top:10px!important;
    padding-bottom:max(18px,env(safe-area-inset-bottom))!important;
    padding-left:clamp(14px,4vw,20px)!important;
    padding-right:clamp(14px,4vw,20px)!important;
    scrollbar-gutter:stable;
  }
  .main-nav>ul{gap:0!important}
  .main-nav>ul>li{border-bottom:1px solid var(--pl-border);min-width:0}
  body .site-header .main-nav.is-open>ul>li>a,
  body .site-header.is-scrolled .main-nav.is-open>ul>li>a,
  body .site-header .main-nav.is-open>ul>li>a.proloco-menu-link-custom{
    min-height:50px!important;
    padding:10px 46px 10px 2px!important;
    font-size:clamp(15px,4.2vw,18px)!important;
    font-weight:650!important;
    line-height:1.25!important;
    letter-spacing:0!important;
    overflow-wrap:anywhere;
  }
  .main-nav.is-open .proloco-menu-link__icon{width:20px!important;height:20px!important;min-width:20px!important}
  .main-nav .submenu-toggle{
    top:6px!important;right:0!important;width:38px!important;height:38px!important;
    box-shadow:none!important;border-color:var(--pl-border)!important;
  }
  .main-nav .submenu-toggle span{width:8px!important;height:8px!important;border-width:0 2px 2px 0!important}
  .main-nav .sub-menu,.main-nav .children{margin:0 0 8px 8px!important;padding:2px 0 3px 12px!important}
  body .site-header .main-nav.is-open .sub-menu a,
  body .site-header .main-nav.is-open .children a{
    min-height:42px!important;padding:8px 6px!important;font-size:15px!important;
    font-weight:550!important;line-height:1.25!important;
  }
}
@media (max-width:380px){
  body .site-header .main-nav.is-open>ul>li>a,
  body .site-header.is-scrolled .main-nav.is-open>ul>li>a,
  body .site-header .main-nav.is-open>ul>li>a.proloco-menu-link-custom{font-size:16px!important;min-height:48px!important}
}

/* ==========================================================================
   PROLOCO IMK v8.5.1 — Mobile Menu Viewport Portal
   Il pannello mobile viene spostato via JavaScript come figlio diretto del body:
   nessun contenitore dell'header può più limitarne dimensioni o scroll.
   ========================================================================== */
@media (max-width:880px){
  html{overflow-x:hidden}
  body.proloco-nav-open{overflow:hidden!important;overscroll-behavior:none!important;touch-action:none}
  html body > .main-nav.proloco-mobile-nav{
    position:fixed!important;
    inset:var(--pl-mobile-menu-top,72px) 0 0 0!important;
    width:auto!important;
    min-width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    padding:clamp(12px,2.5vh,22px) clamp(16px,5vw,28px) max(24px,env(safe-area-inset-bottom))!important;
    background:var(--proloco-mobile-menu-bg,#fff)!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    transform:translate3d(100%,0,0)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:transform .26s cubic-bezier(.22,.61,.36,1),opacity .16s ease,visibility 0s linear .26s!important;
    z-index:2147483000!important;
  }
  html body > .main-nav.proloco-mobile-nav.is-open{
    transform:translate3d(0,0,0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transition:transform .26s cubic-bezier(.22,.61,.36,1),opacity .16s ease!important;
  }
  html body > .main-nav.proloco-mobile-nav > ul{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    width:100%!important;max-width:720px!important;margin:0 auto!important;padding:0!important;gap:0!important;list-style:none!important;
  }
  html body > .main-nav.proloco-mobile-nav > ul > li{position:relative!important;width:100%!important;min-width:0!important;margin:0!important}
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a.proloco-menu-link-custom{
    display:flex!important;align-items:center!important;width:100%!important;min-width:0!important;min-height:52px!important;
    padding:11px 48px 11px 4px!important;font-size:clamp(16px,4.6vw,19px)!important;line-height:1.22!important;
    white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;color:var(--plm-mobile-text,var(--proloco-mobile-link-text,#181B1F))!important;
  }
  html body > .main-nav.proloco-mobile-nav .submenu-toggle{top:7px!important;right:0!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  html body > .main-nav.proloco-mobile-nav .sub-menu,
  html body > .main-nav.proloco-mobile-nav .children{width:calc(100% - 8px)!important;margin:0 0 10px 8px!important;padding:3px 0 4px 12px!important}
  html body > .main-nav.proloco-mobile-nav.is-open .sub-menu a,
  html body > .main-nav.proloco-mobile-nav.is-open .children a{min-height:44px!important;padding:9px 8px!important;font-size:clamp(14px,4vw,16px)!important;white-space:normal!important;overflow-wrap:anywhere!important}
  body.proloco-nav-open .site-header{z-index:2147483001!important}
  body.proloco-nav-open .nav-toggle{z-index:2147483002!important}
}
@media (max-width:380px){html body > .main-nav.proloco-mobile-nav{padding-left:14px!important;padding-right:14px!important}}
@media (prefers-reduced-motion:reduce){html body > .main-nav.proloco-mobile-nav,html body > .main-nav.proloco-mobile-nav.is-open{transition:none!important}}

/* v8.6.0 Footer Manager */
.site-footer--managed{background:var(--pf-bg);color:var(--pf-text);padding:var(--pf-pt) 0 var(--pf-pb)}
.site-footer--managed .footer-manager-grid{display:grid;grid-template-columns:repeat(var(--pf-cols),minmax(0,1fr));gap:clamp(24px,4vw,54px);align-items:start}
.site-footer--managed h2,.site-footer--managed h3,.site-footer--managed h4{color:var(--pf-heading);margin:0 0 18px}
.site-footer--managed a{color:var(--pf-link);text-decoration:none}
.site-footer--managed a:hover,.site-footer--managed a:focus-visible{color:var(--pf-accent)}
.footer-manager-logo{display:inline-block;margin-bottom:18px}.footer-manager-logo img{display:block;width:auto;height:auto}.footer-manager-logo img.is-inverted{filter:brightness(0) invert(1)}
.footer-manager-description{max-width:34ch;margin:0 0 20px;color:var(--pf-text);line-height:1.65}
.site-footer--managed ul{list-style:none;margin:0;padding:0}.site-footer--managed li{margin:0 0 10px;line-height:1.5}
.site-footer--managed .widget{margin:0}.site-footer--managed .widget+.widget{margin-top:24px}
.footer-manager-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--pf-border);margin-top:42px;padding-top:20px;color:var(--pf-text);font-size:.88rem}
.site-footer--minimal .footer-manager-grid{grid-template-columns:1fr}.site-footer--minimal .footer-manager-brand{text-align:center}.site-footer--minimal .footer-manager-description{margin-left:auto;margin-right:auto}
@media(max-width:980px){.site-footer--managed .footer-manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.site-footer--managed .footer-manager-grid{grid-template-columns:1fr}.footer-manager-bottom{display:grid;justify-content:start}.site-footer--managed{padding-top:calc(var(--pf-pt) * .72)}}

/* Footer Manager v8.6.1 - contatti centralizzati */
.site-footer--managed .footer-contact-label{color:var(--pf-heading);font-weight:700}
.site-footer--managed .footer-contact-hours{white-space:normal}
.site-footer--managed .footer-contact-whatsapp a{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--pf-accent) 70%,transparent);border-radius:999px;padding:.48em .85em;font-weight:700}

/* PROLOCO IMK v8.7.0 — Blog Manager */
.proloco-blog-hero{background-color:var(--col-oliva-dk)}
.proloco-blog-main{padding:clamp(44px,7vw,88px) 0}
.proloco-blog-container{box-sizing:border-box;margin-inline:auto}
.proloco-blog-main--boxed .proloco-blog-container{width:min(var(--container,1180px),calc(100% - 32px));max-width:none;padding-left:var(--proloco-header-pad-h,24px);padding-right:var(--proloco-header-pad-h,24px)}
.proloco-blog-main--full .proloco-blog-container{width:100%;max-width:none;padding-inline:clamp(18px,3vw,40px)}.proloco-blog-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:32px;padding:18px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;box-shadow:0 12px 34px rgba(0,0,0,.06)}
.proloco-blog-filters label{flex:1 1 220px}.proloco-blog-filters input,.proloco-blog-filters select{width:100%;min-height:46px;padding:9px 13px;border:1px solid rgba(0,0,0,.18);border-radius:10px;background:#fff}
.proloco-blog-grid{display:grid;grid-template-columns:repeat(var(--blog-columns,3),minmax(0,1fr));gap:clamp(18px,2.6vw,32px)}
.proloco-blog-card{overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;box-shadow:0 14px 38px rgba(0,0,0,.07);transition:transform .2s ease,box-shadow .2s ease}.proloco-blog-card:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(0,0,0,.11)}
.proloco-blog-card__media{display:block;aspect-ratio:16/10;overflow:hidden}.proloco-blog-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.proloco-blog-card:hover .proloco-blog-card__media img{transform:scale(1.035)}
.proloco-blog-card__body{padding:clamp(18px,2.4vw,28px)}.proloco-blog-card__meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:11px;font-size:.83rem}.proloco-blog-card__meta a,.proloco-blog-card__link{color:var(--blog-accent,#2f6f4e);font-weight:700}.proloco-blog-card h2{font-size:clamp(1.25rem,2vw,1.65rem);margin:0 0 12px}.proloco-blog-card h2 a{color:inherit;text-decoration:none}.proloco-blog-card p{margin:0 0 18px}.proloco-blog-card__link{text-decoration:none}
.proloco-blog-layout--list{grid-template-columns:1fr}.proloco-blog-layout--list .proloco-blog-card{display:grid;grid-template-columns:minmax(240px,36%) 1fr}.proloco-blog-layout--list .proloco-blog-card__media{aspect-ratio:auto;height:100%}
.proloco-blog-layout--magazine .proloco-blog-card:first-child{grid-column:span 2;grid-row:span 2}.proloco-blog-layout--magazine .proloco-blog-card:first-child .proloco-blog-card__media{aspect-ratio:16/9}
@media(max-width:900px){.proloco-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.proloco-blog-layout--magazine .proloco-blog-card:first-child{grid-column:span 2}.proloco-blog-layout--list .proloco-blog-card{grid-template-columns:220px 1fr}}
@media(max-width:640px){.proloco-blog-grid{grid-template-columns:1fr}.proloco-blog-layout--magazine .proloco-blog-card:first-child{grid-column:auto;grid-row:auto}.proloco-blog-layout--list .proloco-blog-card{display:block}.proloco-blog-layout--list .proloco-blog-card__media{aspect-ratio:16/10}.proloco-blog-filters{align-items:stretch}.proloco-blog-filters .btn{width:100%;justify-content:center}}

/* v8.7.12 — Home Builder: full width reale.
   L'opzione per-sezione deve neutralizzare anche i wrapper boxed annidati
   prodotti dagli shortcode e da WPBakery. */
.proloco-home-block.section--content-full > .proloco-home-container--full{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
.proloco-home-block.section--content-full > .proloco-home-container--full > .container,
.proloco-home-block.section--content-full > .proloco-home-container--full > .site-container,
.proloco-home-block.section--content-full > .proloco-home-container--full .vc_row[data-vc-full-width],
.proloco-home-block.section--content-full > .proloco-home-container--full .vc_row.vc_row-stretch-content,
.proloco-home-block.section--content-full > .proloco-home-container--full .vc_row.vc_row-stretch-content-no-spaces{
  box-sizing:border-box;
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  left:0!important;
  right:auto!important;
  transform:none!important;
}
.proloco-home-block.section--content-full > .proloco-home-container--full .card-grid,
.proloco-home-block.section--content-full > .proloco-home-container--full .proloco-grid{
  width:100%;
  max-width:none;
}


/* v8.7.14 — brand subtitle visible beside logo and adaptive header copy. */
.site-brand__copy{display:flex;flex-direction:column;justify-content:center;min-width:0;max-width:min(54vw,620px)}
.site-brand__copy:has(.site-brand__tag:only-child){justify-content:center}
.site-brand__copy .site-brand__tag{display:block!important}
@media(max-width:767px){
  .site-brand{gap:10px}
  .site-brand__copy{max-width:calc(100vw - 210px)}
  .site-brand__title{max-width:100%}
  .site-brand__tag{display:block!important;max-width:100%;margin-top:2px;font-size:clamp(9px,2.4vw,12px);letter-spacing:.035em;text-transform:none;line-height:1.15;white-space:normal;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
@media(max-width:420px){
  .site-brand__copy{max-width:calc(100vw - 180px)}
  .site-brand__title{font-size:clamp(.84rem,4vw,.98rem)!important}
  .site-brand__tag{font-size:9px;line-height:1.1}
}

/* ========================================================================== 
   PROLOCO IMK v9.0.0 RC1 — Header/Menu stable authority
   Mantiene il menu mobile nel viewport e rende coerenti le regole del
   Customizer anche dopo il portale del menu come figlio diretto del body.
   ========================================================================== */
.site-header__inner{box-sizing:border-box;width:min(var(--pl-container,1180px),calc(100% - 32px));max-width:100%;}
.site-brand__copy{min-width:0;display:flex;flex-direction:column;justify-content:center;}
.site-brand__title,.site-brand__tag{max-width:min(48vw,520px);}
.nav-toggle:focus-visible,.main-nav a:focus-visible,.main-nav .submenu-toggle:focus-visible{outline:3px solid currentColor;outline-offset:3px;}

@media (max-width:880px){
  .site-header__inner{width:calc(100% - 24px)!important;padding-left:0!important;padding-right:0!important;}
  .site-brand{flex:1 1 auto;max-width:calc(100% - var(--proloco-hamburger-size,44px) - 12px);gap:10px;}
  .site-brand__copy{display:flex;min-width:0;}
  .site-brand__title{max-width:100%;font-size:clamp(14px,3.8vw,18px)!important;line-height:1.08!important;}
  .site-brand__tag{display:block;max-width:100%;margin-top:2px;font-size:clamp(9px,2.5vw,12px)!important;line-height:1.15!important;letter-spacing:.04em;}
  .site-header.is-scrolled .site-brand__tag{font-size:clamp(9px,2.3vw,11px)!important;}
  html body > .main-nav.proloco-mobile-nav{
    color:var(--proloco-mobile-link-text,#181B1F)!important;
    background:var(--proloco-mobile-menu-bg,#fff)!important;
    padding-left:var(--proloco-mobile-menu-pad,20px)!important;
    padding-right:var(--proloco-mobile-menu-pad,20px)!important;
  }
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a.proloco-menu-link-custom{
    color:var(--proloco-mobile-link-text,#181B1F)!important;
    font-family:var(--imk-font-menu,inherit)!important;
    font-size:clamp(15px,var(--proloco-mobile-link-size,18px),20px)!important;
  }
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a:hover,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li > a:focus-visible{
    color:var(--proloco-mobile-hover-text,#0E7A60)!important;
    background:var(--proloco-mobile-hover-bg,#EFF4F1)!important;
  }
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li.current-menu-item > a,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li.current_page_item > a,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li.current-menu-ancestor > a,
  html body > .main-nav.proloco-mobile-nav.is-open > ul > li.current_page_ancestor > a{
    color:var(--proloco-mobile-active-text,#0B6350)!important;
    background:var(--proloco-mobile-active-bg,#E4EFEA)!important;
  }
  html body > .main-nav.proloco-mobile-nav .sub-menu,
  html body > .main-nav.proloco-mobile-nav .children{
    background:var(--proloco-mobile-submenu-bg,#F5F7F4)!important;
    border-left-color:var(--proloco-mobile-divider,#E5E6E1)!important;
  }
  html body > .main-nav.proloco-mobile-nav.is-open .sub-menu a,
  html body > .main-nav.proloco-mobile-nav.is-open .children a{
    color:var(--proloco-mobile-submenu-text,#5C636B)!important;
  }
  html body > .main-nav.proloco-mobile-nav .submenu-toggle{
    color:var(--proloco-hamburger-icon,#181B1F)!important;
    background:var(--proloco-hamburger-bg,#fff)!important;
    border-color:var(--proloco-hamburger-border,#E5E6E1)!important;
  }
}
@media (max-width:480px){
  .site-header .custom-logo-link img,.site-header .custom-logo{max-width:min(34vw,150px)!important;}
  .site-brand__copy{max-width:52vw;}
}

/* ========================================================================== 
   v9.0.0 RC1 — WPBakery Stable Runtime
   ========================================================================== */
.proloco-wpb-element{box-sizing:border-box;max-width:100%;min-width:0}
.proloco-wpb-element::after{content:"";display:table;clear:both}
.proloco-wpb-element>.section:first-child,
.proloco-wpb-element>.hero:first-child{margin-top:0}
.proloco-page__content>.vc_row,
.proloco-page__content>.wpb-content-wrapper>.vc_row{margin-left:0;margin-right:0}
.proloco-page__content .vc_column_container>.vc_column-inner{box-sizing:border-box}
.proloco-page__content .wpb_content_element:last-child,
.proloco-page__content .proloco-wpb-element:last-child{margin-bottom:0}
@media(max-width:767px){
  .proloco-wpb-element{width:100%}
  .proloco-page__content .vc_column_container>.vc_column-inner{padding-left:0;padding-right:0}
}

/* v9.0.0 RC1 - Partner e Collaborazioni */
.proloco-partners{width:100%}.proloco-partners__title{margin:0 0 22px}.proloco-partners__grid{display:grid;grid-template-columns:repeat(var(--proloco-partner-cols,6),minmax(0,1fr));gap:18px;align-items:stretch}.proloco-partner{display:flex;min-width:0;min-height:112px;padding:18px;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(20,30,40,.12);border-radius:12px;background:#fff;text-align:center;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.proloco-partner:hover,.proloco-partner:focus-visible{transform:translateY(-2px);box-shadow:0 10px 28px rgba(10,20,30,.12);border-color:var(--pf-accent,#0e7a60)}.proloco-partner__logo{display:flex;align-items:center;justify-content:center;width:100%;height:var(--proloco-partner-logo-h,70px)}.proloco-partner__logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.proloco-partner__name{font-size:.9rem;font-weight:700;line-height:1.25;color:inherit}.footer-manager-partners{margin-top:30px;padding-top:24px;border-top:1px solid var(--pf-border)}.proloco-partners--footer .proloco-partners__title{margin:0 0 14px;color:var(--pf-heading);font-size:1rem}.proloco-partners--footer .proloco-partners__grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 16px}.proloco-partners--footer .proloco-partner{flex:0 0 auto;width:clamp(88px,10vw,132px);min-height:0;padding:8px;gap:6px;background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.12);border-radius:8px}.proloco-partners--footer .proloco-partner__logo{width:100%;height:min(var(--proloco-partner-logo-h,56px),70px)}.proloco-partners--footer .proloco-partner__logo img{max-width:112px!important;max-height:70px!important;width:auto!important;height:auto!important;object-fit:contain}.proloco-partners--footer .proloco-partner__name{display:block;width:100%;font-size:.78rem;font-weight:600;line-height:1.2;color:#18202a;overflow-wrap:anywhere}@media(max-width:980px){.proloco-partners__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.proloco-partners__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.proloco-partner{min-height:92px;padding:14px}}

@media(max-width:640px){.footer-manager-partners{margin-top:24px;padding-top:20px}.proloco-partners--footer .proloco-partners__grid{gap:10px}.proloco-partners--footer .proloco-partner{width:calc(50% - 5px);max-width:120px;padding:7px}.proloco-partners--footer .proloco-partner__logo{height:min(var(--proloco-partner-logo-h,52px),60px)}.proloco-partners--footer .proloco-partner__logo img{max-width:100px!important;max-height:60px!important}}


/* PROLOCO IMK 9.1.0 - Footer Contact & Opening Hours Manager */
@media (min-width: 1024px){
 .footer-manager-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
 .footer-manager-contacts{grid-column:span 2;}
}
.footer-manager-contacts .proloco-opening-hours dl{margin:.45rem 0 0;}
.proloco-hours-row{display:grid;grid-template-columns:minmax(80px,.8fr) 1.8fr;gap:12px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.08);}
.proloco-hours-row dt{font-weight:700;color:var(--pf-heading,#fff);}
.proloco-hours-row dd{margin:0;color:var(--pf-text,#b8c2cc);}
.proloco-hours-row small{display:block;opacity:.78;margin-top:2px;}
.proloco-hours-note{margin:.65rem 0 0;padding:.55rem .7rem;border-left:3px solid var(--pf-accent,#0e7a60);background:rgba(255,255,255,.05);font-size:.88rem;}
.proloco-mega-disabled .mega-menu,.proloco-mega-disabled [class*="mega-menu"]{all:revert-layer;}
@media(max-width:1023px){.footer-manager-contacts{grid-column:auto}.proloco-hours-row{grid-template-columns:100px 1fr}}
@media(max-width:520px){.proloco-hours-row{grid-template-columns:1fr;gap:1px}}
