/* ============================================================
   Lonigro 1918 — Header & Footer per Elementor
   Tutti i valori qui sono soltanto i default: i controlli di
   Elementor scrivono sopra queste regole con {{WRAPPER}}.
   ============================================================ */

.lng-hf{
  --lng-ink:#12171A;
  --lng-ink-3:#0C1013;
  --lng-ink-2:#1A2126;
  --lng-brass:#C6A567;
  --lng-brass-lt:#E7D3A4;
  --lng-bone:#E9E4D8;
  --lng-bone-2:#DED7C6;
  --lng-ash:#8E8B84;
  --lng-ash-2:#B6B2A9;
  /* Scala tipografica unica: tutto il plugin deriva da --lng-fs, così basta
     un valore per rimpicciolire o ingrandire l'intera interfaccia. */
  --lng-fs:17px;
  --lng-t-micro:calc(var(--lng-fs) * 0.66);
  --lng-t-label:calc(var(--lng-fs) * 0.78);
  --lng-t-meta:calc(var(--lng-fs) * 0.88);
  --lng-t-body:var(--lng-fs);
  --lng-t-lead:calc(var(--lng-fs) * 1.08);
  --lng-t-title:calc(var(--lng-fs) * 1.28);
  --lng-t-h:calc(var(--lng-fs) * 1.55);

  --lng-tobacco:#2B2119;
  --lng-tobacco-2:#3A2C1F;
  --lng-brass-deep:#8A6C35;
  --lng-ink-txt:#2B2119;
  --lng-display:"Bodoni Moda","Didot",Georgia,serif;
  --lng-body:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --lng-track:.26em;
  --lng-e-out:cubic-bezier(.16,1,.3,1);
  --lng-e-io:cubic-bezier(.65,.05,.36,1);
  --lng-h:82px;
  --lng-h-stuck:64px;
  --lng-mbp:1340px;

  font-family:var(--lng-body);
  font-size:var(--lng-t-body);
  font-weight:300;
  line-height:1.7;
  color:var(--lng-bone);
  -webkit-font-smoothing:antialiased;
}
.lng-hf *,.lng-hf *::before,.lng-hf *::after{box-sizing:border-box}
/* I temi colorano a{} e h1..h6{} con selettori di elemento nudo. Un valore
   ereditato perde SEMPRE contro una regola diretta, per quanto debole: qui
   serve una regola nostra, non l'ereditarietà. .lng-hf a vale (0,1,1) e
   batte a{} (0,0,1); i componenti stanno a (0,2,0) e battono entrambi. */
.lng-hf a{color:inherit;text-decoration:none}
.lng-hf h1,.lng-hf h2,.lng-hf h3,
.lng-hf h4,.lng-hf h5,.lng-hf h6{color:inherit}
.lng-hf ul{margin:0;padding:0;list-style:none}
.lng-hf p{margin:0}
.lng-hf h3,.lng-hf h4{margin:0;font-weight:400}
.lng-hf button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.lng-hf img{max-width:100%;display:block}
.lng-hf :focus-visible{outline:2px solid var(--lng-brass);outline-offset:3px;border-radius:2px}
.lng-hf ::selection{background:var(--lng-brass);color:var(--lng-ink)}

.lng-wrap{max-width:1560px;margin-inline:auto;padding-inline:40px}
.lng-arw{display:inline-block;transition:transform .5s var(--lng-e-out)}

/* pulsanti condivisi */
.lng-btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.85em;
  padding:1.05em 2.1em;border:1px solid rgba(198,165,103,.5);color:var(--lng-bone);
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:var(--lng-track);text-transform:uppercase;
  overflow:hidden;isolation:isolate;transition:color .5s var(--lng-e-out),border-color .5s var(--lng-e-out);
}
.lng-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--lng-brass);
  transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--lng-e-out)}
.lng-btn:hover{color:var(--lng-ink);border-color:var(--lng-brass)}
.lng-btn:hover::before{transform:scaleY(1);transform-origin:top}
.lng-btn:hover .lng-arw{transform:translateX(4px)}
.lng-btn--fill{background:var(--lng-brass);color:var(--lng-ink);border-color:var(--lng-brass)}
.lng-btn--fill::before{background:var(--lng-brass-lt)}

/* ============================================================
   BARRA DI AVANZAMENTO
   ============================================================ */
.lng-spine{
  position:fixed;left:0;top:0;height:2px;width:100%;z-index:90;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,#8A6C35,var(--lng-brass),var(--lng-brass-lt));
  pointer-events:none;
}

/* ============================================================
   BARRA ANNUNCI
   ============================================================ */
.lng-bar{
  position:relative;z-index:60;height:38px;background:var(--lng-ink-3);
  border-bottom:1px solid rgba(198,165,103,.14);overflow:hidden;display:flex;align-items:center;
}
.lng-bar-track{display:flex;width:max-content;animation:lngMarq 46s linear infinite}
.lng-bar.is-pausable:hover .lng-bar-track{animation-play-state:paused}
@keyframes lngMarq{to{transform:translateX(-50%)}}
.lng-bar-seq{display:flex;align-items:center;flex:none}
.lng-bar-seq span{
  font:500 var(--lng-bar-size,var(--lng-t-label))/1 var(--lng-body);letter-spacing:.2em;
  text-transform:uppercase;color:var(--lng-ash-2);padding-inline:26px;white-space:nowrap;
}
.lng-bar-seq i{width:3px;height:3px;background:var(--lng-brass);border-radius:50%;flex:none}

/* modalità rotazione */
.lng-bar--rotate,.lng-bar--static{justify-content:center}
.lng-bar-rotate{position:relative;display:grid;place-items:center;width:100%}
.lng-bar-rotate span{grid-area:1/1;opacity:0;transform:translateY(8px);
  transition:opacity .6s ease,transform .7s var(--lng-e-out);padding-inline:0}
.lng-bar-rotate span.is-on{opacity:1;transform:none}
.lng-bar--static .lng-bar-rotate span{opacity:1;transform:none}

/* ============================================================
   HEADER
   ============================================================ */
.lng-hdr{
  position:relative;z-index:70;height:var(--lng-h);
  background:var(--lng-ink);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);
  border-bottom:1px solid rgba(198,165,103,.12);
  transition:height .5s var(--lng-e-out),background-color .5s ease;
}
/* Header agganciato allo scroll.

   Non usiamo position:sticky: un elemento sticky si muove soltanto
   dentro il proprio blocco contenitore, e qui il contenitore è il
   wrapper del widget, alto quanto l'header stesso. Margine di
   scorrimento zero, quindi nessun aggancio — su qualunque pagina e
   qualunque dispositivo.

   Con position:fixed il riferimento è la finestra, quindi funziona
   ovunque il widget venga inserito. Lo script aggiunge .is-fixed
   oltre la soglia e tiene in piedi uno spaziatore alto quanto
   l'header, così la pagina non sobbalza al momento dell'aggancio. */
.lng-hf.is-sticky{overflow:visible}
.lng-hf.is-fixed .lng-hdr{
  position:fixed;
  top:var(--lng-sticky-top,0px);
  left:0;right:0;
  z-index:9990;
}
.lng-hf-spacer{display:block;width:100%}
.elementor-widget-lonigro_header,
.elementor-widget-lonigro_header > .elementor-widget-container{overflow:visible}
.lng-hdr.is-stuck{height:var(--lng-h-stuck)}
/* Header sovrapposto: solo quando sotto c'è una hero scura a tutta pagina.
   Senza una hero dietro, il fondo semitrasparente su pagina chiara vira al grigio. */
.lng-hf.is-overlay .lng-hdr{background:rgba(18,23,26,.72)}
.lng-hf.is-overlay .lng-hdr.is-stuck{background:rgba(12,16,19,.94)}
/* La sovrapposizione vera e propria va impostata nel template header di
   Elementor (opzione "Overlap"): qui cambiamo solo il fondo, per non
   entrare in conflitto con il posizionamento del theme builder. */
.lng-hdr-in{height:100%;display:flex;align-items:center;justify-content:space-between;
  gap:clamp(10px,2vw,36px);min-width:0}

/* logo */
.lng-brand{display:flex;align-items:center;gap:14px;flex:0 1 auto;min-width:0}
.lng-insegna{display:block;width:26px;height:33px;flex:none;transition:transform .5s var(--lng-e-out)}
.lng-insegna svg{width:100%;height:100%;display:block}
.lng-brand:hover .lng-insegna{transform:rotate(-4deg) scale(1.06)}
.lng-plaque{fill:#0A0D0F;stroke:rgba(198,165,103,.35);stroke-width:1.5}
.lng-tglyph{fill:var(--lng-brass);opacity:1}
.lng-brand[data-lit="1"] .lng-tglyph{opacity:.08}
.lng-brand[data-lit="1"].is-lit .lng-tglyph{animation:lngFlicker 1.1s steps(1) forwards}
@keyframes lngFlicker{
  0%{opacity:.1}8%{opacity:.9}12%{opacity:.15}20%{opacity:1}26%{opacity:.3}
  34%{opacity:1}40%{opacity:.6}48%{opacity:1}100%{opacity:1}
}
.lng-brand-txt{display:grid;line-height:1;min-width:0}
.lng-brand-txt b{font-family:var(--lng-display);font-weight:500;
  font-size:var(--lng-brand-size,var(--lng-t-title));
  letter-spacing:.13em;text-transform:uppercase;color:var(--lng-bone);white-space:nowrap}
.lng-brand-txt small{font:500 var(--lng-brand-sub-size,var(--lng-t-micro))/1 var(--lng-body);
  letter-spacing:.36em;color:var(--lng-brass);margin-top:.42em;
  text-transform:uppercase;white-space:nowrap}
/* Il logo caricato non deve mai deformarsi né sforare l'altezza dell'header. */
.lng-logo-img{display:flex;align-items:center}
.lng-logo-img img{width:auto;height:auto;max-height:var(--lng-logo-max,46px);
  object-fit:contain;object-position:left center}

/* navigazione */
.lng-nav{display:flex;align-items:center;gap:clamp(12px,1.5vw,26px);
  flex:1 1 auto;justify-content:center;min-width:0}
.lng-nav > ul{display:flex;align-items:center;gap:clamp(12px,1.5vw,26px);flex-wrap:nowrap}
.lng-nav li{list-style:none}
.lng-nav a{
  position:relative;display:inline-block;white-space:nowrap;
  font:400 var(--lng-nav-size,var(--lng-t-label))/1 var(--lng-body);
  letter-spacing:.1em;text-transform:uppercase;
  padding:.7em .1em;color:rgba(233,228,216,.82);transition:color .35s ease;
}
.lng-nav a::after{content:"";position:absolute;left:0;right:0;bottom:.15em;height:1px;
  background:var(--lng-brass);transform:scaleX(0);transform-origin:right;
  transition:transform .5s var(--lng-e-out)}
.lng-nav a:hover{color:var(--lng-brass-lt)}
.lng-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.lng-nav .current-menu-item > a::after{transform:scaleX(1)}

/* strumenti */
.lng-tools{display:flex;align-items:center;gap:2px;flex:none}
.lng-tool{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;
  color:var(--lng-bone);transition:background-color .4s ease,transform .4s var(--lng-e-out)}
.lng-tool:hover{background:rgba(198,165,103,.12);transform:translateY(-2px)}
.lng-tool svg{width:var(--lng-tool-size,21px);height:var(--lng-tool-size,21px);
  stroke:currentColor;stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lng-cnt{
  position:absolute;top:4px;right:3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;
  background:var(--lng-brass);color:var(--lng-ink);font:600 var(--lng-t-micro)/17px var(--lng-body);
  text-align:center;transform:scale(0);transition:transform .45s var(--lng-e-out);
}
.lng-cnt.is-on{transform:scale(1)}
.lng-cnt.is-pop{animation:lngPop .5s var(--lng-e-out)}
@keyframes lngPop{0%{transform:scale(1)}45%{transform:scale(1.5)}100%{transform:scale(1)}}

/* Icona a tre linee.

   Il pulsante è una griglia dentro una scatola di 38px: senza
   align-content le tre righe si allargano per riempirla e le barre
   finiscono distanti quasi 29px, molto più dei margini impostati.
   Con align-content:center le righe si stringono sul contenuto e
   l'altezza torna a dipendere davvero da --lng-bar-gap.

   Altezza dell'icona: 3 barre + 2 spazi = 3×1.2 + 2×6.9 = 17.4px,
   il 60% dei 29px precedenti. Il pulsante resta 38×38: quella è
   l'area toccabile, non l'icona, e ridurla renderebbe il menu più
   difficile da centrare col dito. */
.lng-burger{display:none;width:38px;height:38px;
  align-content:center;
  --lng-bar-h:1.2px;--lng-bar-gap:6.9px}
.lng-burger i{display:block;width:18px;height:var(--lng-bar-h);background:currentColor;
  transition:transform .45s var(--lng-e-out),opacity .25s ease}
.lng-burger i + i{margin-top:var(--lng-bar-gap)}
/* la riga centrale sparisce, le altre due si incontrano al centro */
.lng-burger.is-x i:nth-child(1){
  transform:translateY(calc(var(--lng-bar-h) + var(--lng-bar-gap))) rotate(45deg)}
.lng-burger.is-x i:nth-child(2){opacity:0;transform:scaleX(.4)}
.lng-burger.is-x i:nth-child(3){
  transform:translateY(calc((var(--lng-bar-h) + var(--lng-bar-gap)) * -1)) rotate(-45deg)}

/* ============================================================
   MEGA MENU — riquadro ancorato, non fascia a tutta larghezza
   ============================================================ */
.lng-mega{
  --lng-mega-w:600px;
  --lng-mega-feat:208px;
  position:absolute;top:100%;left:0;
  width:min(var(--lng-mega-w),calc(100vw - 32px));
  background:linear-gradient(168deg,#1A2126 0%,#12171A 45%,#0C1013 100%);
  border:1px solid rgba(198,165,103,.2);
  box-shadow:0 34px 70px -18px rgba(0,0,0,.8),0 2px 0 rgba(198,165,103,.06) inset;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(-12px) scale(.985);transform-origin:top left;
  transition:opacity .38s ease,transform .55s var(--lng-e-out),visibility .38s;
  z-index:5;
}
.lng-mega.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}
/* filo d'ottone sul bordo superiore, come la cornice di una vetrina */
.lng-mega::before{
  content:"";position:absolute;left:0;right:0;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--lng-brass),transparent);
}
.lng-mega-inner{display:grid;grid-template-columns:1fr var(--lng-mega-feat);align-items:stretch}
.lng-mega-inner.is-wide{grid-template-columns:1fr}

.lng-mega-links{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 26px;padding:28px 26px 30px;align-content:start;
}
.lng-mega-inner.is-wide .lng-mega-links{padding-inline:30px}
.lng-mega-col{min-width:0}
.lng-mega h4{
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.24em;text-transform:uppercase;
  color:var(--lng-brass);margin:0 0 14px;padding-bottom:11px;
  border-bottom:1px solid rgba(198,165,103,.16);
}
.lng-mega-list{display:grid;gap:1px;min-width:0}
.lng-mega-list li{
  min-width:0;opacity:0;transform:translateX(-8px);
  transition:opacity .4s ease,transform .5s var(--lng-e-out);
}
.lng-mega.is-open .lng-mega-list li{
  opacity:1;transform:none;
  transition-delay:calc(90ms + var(--lng-i,0) * 32ms);
}
.lng-mega-list li a{
  display:flex;align-items:center;flex-wrap:wrap;gap:.35em .5em;min-width:0;
  padding:.5em .2em .5em 0;font-size:var(--lng-t-meta);line-height:1.35;color:var(--lng-ash-2);
  transition:color .3s ease;
}
.lng-mega-list li a::before{
  content:"";width:0;height:1px;background:var(--lng-brass);flex:none;
  transition:width .45s var(--lng-e-out);
}
.lng-mega-list li a:hover{color:var(--lng-bone)}
.lng-mega-list li a:hover::before{width:14px}
.lng-mega-lbl{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word}
.lng-mega-badge{
  flex:0 0 auto;font:600 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.12em;text-transform:uppercase;
  padding:.4em .52em;color:var(--lng-ink);background:var(--lng-brass);white-space:nowrap;
}
.lng-mega-arw{
  flex:none;margin-left:auto;color:var(--lng-brass);opacity:0;width:0;
  transform:translateX(-6px);transition:opacity .4s ease,transform .45s var(--lng-e-out),width .45s var(--lng-e-out);
}

.lng-mega-list li a:hover .lng-mega-arw{opacity:1;width:auto;transform:none}

/* riquadro in evidenza */
.lng-mega-feat{
  position:relative;display:flex;align-items:flex-end;overflow:hidden;
  border-left:1px solid rgba(198,165,103,.16);min-height:230px;color:var(--lng-bone);
}
.lng-mega-feat.is-brass::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(150deg,#5F4B25,#C6A567 26%,#EFE0BB 40%,#8A6C35 62%,#3A2C1F 100%);
  opacity:.85;
}
.lng-mega-feat-img{position:absolute;inset:0}
.lng-mega-feat-img img{
  width:100%;height:100%;object-fit:cover;
  transform:scale(1.04);transition:transform 1.4s var(--lng-e-out);
}
.lng-mega-feat:hover .lng-mega-feat-img img{transform:scale(1.11)}
.lng-mega-feat-txt{
  position:relative;z-index:3;display:grid;gap:5px;padding:22px 18px 20px;width:100%;
  background:linear-gradient(to top,rgba(8,11,13,.96) 25%,rgba(8,11,13,.72) 60%,transparent);
}
.lng-mega-feat.is-brass .lng-mega-feat-txt{
  background:linear-gradient(to top,rgba(8,11,13,.97) 34%,rgba(8,11,13,.78) 62%,rgba(8,11,13,.2) 100%);
}
.lng-mega-feat.is-brass::after{opacity:.7}
.lng-mega-feat-txt em{
  font:500 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.22em;text-transform:uppercase;
  color:var(--lng-brass-lt);font-style:normal;
  text-shadow:0 1px 6px rgba(0,0,0,.7);
}
.lng-mega-feat-txt b{
  font-family:var(--lng-display);font-size:var(--lng-t-title);font-weight:500;line-height:1.2;
}
.lng-mega-feat-txt small{font-size:var(--lng-t-meta);line-height:1.55;color:#C9C5BC}
.lng-mega-feat-cta{
  display:inline-flex;align-items:center;gap:.45em;margin-top:6px;
  font:500 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  color:var(--lng-brass-lt);
}
.lng-mega-feat-cta i{font-style:normal;transition:transform .45s var(--lng-e-out)}
.lng-mega-feat:hover .lng-mega-feat-cta i{transform:translateX(4px)}

@media (max-width:760px){
  .lng-mega-inner{grid-template-columns:1fr}
  .lng-mega-feat{display:none}
  .lng-mega-links{grid-template-columns:1fr;gap:4px}
}

/* ============================================================
   OVERLAY (ricerca, carrello, menu mobile)
   ============================================================ */
.lng-ov{position:fixed;inset:0;z-index:100;visibility:hidden;pointer-events:none;overflow:hidden}
.lng-ov.is-open{visibility:visible;pointer-events:auto}
.lng-scrim{position:absolute;inset:0;background:rgba(6,9,11,.72);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s ease}
.lng-ov.is-open .lng-scrim{opacity:1}
body.lng-locked{overflow:hidden}

/* carrello */
.lng-drawer{position:absolute;top:0;right:0;bottom:0;width:min(420px,92vw);background:var(--lng-ink-2);
  border-left:1px solid rgba(198,165,103,.2);display:flex;flex-direction:column;
  transform:translateX(102%);transition:transform .7s var(--lng-e-out)}
.lng-ov.is-open .lng-drawer{transform:none}
.lng-drawer-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:24px 26px;border-bottom:1px solid rgba(198,165,103,.16)}
.lng-hf .lng-drawer-hd h3{
  color:var(--lng-bone);
  font-family:var(--lng-display);font-size:var(--lng-t-title);
  text-transform:uppercase;letter-spacing:.06em}
.lng-hf .lng-drawer,
.lng-hf .lng-drawer-body,
.lng-hf .lng-drawer-foot{color:var(--lng-bone)}
.lng-hf .lng-drawer-body p{color:var(--lng-ash-2)}
.lng-drawer-body{flex:1;overflow-y:auto;padding:26px}
.lng-drawer-foot{padding:26px;border-top:1px solid rgba(198,165,103,.16);display:grid;gap:16px}
.lng-cart-note{font-size:var(--lng-t-meta);color:var(--lng-ash)}
.lng-cart-empty{display:grid;gap:16px;justify-items:center;text-align:center;
  padding-block:48px;color:var(--lng-ash)}
/* ============================================================
   CARRELLO NEL PANNELLO

   Il markup è nostro (vedi Plugin::cart_panel), non quello di
   woocommerce_mini_cart(): temi e plugin riscrivono quel template e
   ogni variante produce una struttura diversa, impossibile da
   inseguire con il solo CSS. Con markup proprio la riga è identica a
   quella dei preferiti e non dipende da nessuno.
   ============================================================ */
.lng-hf .lng-cart-list{display:block;margin:0;padding:0;list-style:none}

.lng-hf .lng-ci{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:16px;
  box-sizing:border-box;
  margin:0;padding:18px 34px 18px 0;
  border-bottom:1px solid rgba(198,165,103,.13);
  list-style:none;
  transition:background-color .4s ease;
}
.lng-hf .lng-ci:hover{background:rgba(198,165,103,.045)}
.lng-hf .lng-ci:last-child{border-bottom:none}
.lng-hf .lng-ci::before{content:none;display:none}

.lng-hf .lng-ci-thumb{
  position:static;
  flex:0 0 68px;
  display:block;width:68px;height:80px;
  overflow:hidden;margin:0;
  border:1px solid rgba(198,165,103,.28);
  background:var(--lng-tobacco);
  transition:border-color .4s ease;
}
.lng-hf .lng-ci:hover .lng-ci-thumb{border-color:rgba(198,165,103,.55)}
.lng-hf .lng-ci-thumb img{
  position:static !important;float:none !important;
  width:100% !important;height:100% !important;max-width:100% !important;
  object-fit:cover;margin:0 !important;border:0;border-radius:0;box-shadow:none}

.lng-hf .lng-ci-txt{flex:1 1 auto;min-width:0}
.lng-hf .lng-ci-name{
  display:block;
  color:var(--lng-bone);
  font-family:var(--lng-display);
  font-size:var(--lng-t-body);
  font-weight:500;line-height:1.3;
  text-decoration:none;overflow-wrap:anywhere;
  transition:color .35s ease}
.lng-hf a.lng-ci-name:hover{color:var(--lng-brass-lt)}
.lng-hf .lng-ci-meta{
  display:block;margin-top:5px;
  color:#6E6A63;font-family:var(--lng-body);font-size:var(--lng-t-micro);line-height:1.5}
.lng-hf .lng-ci-meta p{margin:0}
.lng-hf .lng-ci-price{
  display:block;margin-top:10px;
  color:var(--lng-brass-lt);
  font-family:var(--lng-display);
  font-size:var(--lng-t-body)}
.lng-hf .lng-ci-price i{font-style:normal;color:var(--lng-ash)}
/* Il prezzo arriva da WooCommerce come .amount > bdi > simbolo valuta.
   I temi colorano quelle classi con regole dirette, che battono qualsiasi
   colore ereditato: vanno dichiarate una per una. */
.lng-hf .lng-ci-price .amount,
.lng-hf .lng-ci-price bdi,
.lng-hf .lng-ci-price .woocommerce-Price-amount,
.lng-hf .lng-ci-price .woocommerce-Price-currencySymbol{
  color:var(--lng-brass-lt);font-family:var(--lng-display)}
.lng-hf .lng-ci-price del,
.lng-hf .lng-ci-price del .amount,
.lng-hf .lng-ci-price del bdi,
.lng-hf .lng-ci-price del .woocommerce-Price-currencySymbol{color:var(--lng-ash)}
.lng-hf .lng-ci-price ins,
.lng-hf .lng-ci-price ins .amount,
.lng-hf .lng-ci-price ins bdi,
.lng-hf .lng-ci-price ins .woocommerce-Price-currencySymbol{color:var(--lng-brass-lt)}
.lng-hf .lng-ci-price del,
.lng-hf .lng-ci-price del .amount{
  color:var(--lng-ash);font-size:.82em;margin-right:.55em;text-decoration-thickness:1px}
.lng-hf .lng-ci-price ins{text-decoration:none;color:var(--lng-brass-lt)}

.lng-hf .lng-ci-remove{
  position:absolute;top:18px;right:0;z-index:2;
  width:26px;height:26px;
  display:grid;place-items:center;
  border-radius:50%;border:1px solid transparent;background:none;
  color:#6E6A63;
  font-size:var(--lng-t-lead);line-height:1;text-decoration:none;
  transition:color .3s ease,border-color .3s ease,background-color .3s ease}
.lng-hf .lng-ci:hover .lng-ci-remove{color:var(--lng-ash-2);border-color:rgba(198,165,103,.28)}
.lng-hf .lng-ci-remove:hover{
  color:#D98A6A;border-color:rgba(217,138,106,.5);background:rgba(217,138,106,.12)}

.lng-hf .lng-cart-total{
  display:flex;justify-content:space-between;align-items:baseline;gap:1em;
  margin:22px 0 0;padding-top:20px;
  border-top:1px solid rgba(198,165,103,.28);
  font-family:var(--lng-body);
  font-size:var(--lng-t-label);
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--lng-ash-2)}
.lng-hf .lng-cart-total b{
  font-family:var(--lng-display);
  font-size:calc(var(--lng-fs) * 1.45);
  font-weight:500;letter-spacing:0;text-transform:none;
  color:var(--lng-brass)}
.lng-hf .lng-cart-total .amount,
.lng-hf .lng-cart-total bdi,
.lng-hf .lng-cart-total .woocommerce-Price-currencySymbol{color:var(--lng-brass)}


/* ricerca */
.lng-search{position:absolute;left:0;right:0;top:0;background:var(--lng-ink-2);
  border-bottom:1px solid rgba(198,165,103,.2);padding-block:clamp(40px,6vw,72px);
  transform:translateY(-101%);transition:transform .75s var(--lng-e-out)}
.lng-ov.is-open .lng-search{transform:none}
.lng-search-form{display:flex;align-items:center;gap:16px;border-bottom:1px solid rgba(198,165,103,.4)}
.lng-search-form > svg{width:24px;height:24px;flex:none;stroke:var(--lng-brass);stroke-width:1.2;fill:none}
.lng-search-form input[type="search"]{flex:1;min-width:0;background:none;border:0;outline:none;
  color:var(--lng-bone);font-family:var(--lng-display);font-size:clamp(1.4rem,4vw,2.6rem);
  font-weight:400;padding:.5em 0}
.lng-search-form input::placeholder{color:#5C5851}
.lng-sugg{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;align-items:center}
.lng-sugg b{font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:var(--lng-track);
  text-transform:uppercase;color:var(--lng-ash);margin-right:6px}
.lng-chip{padding:.6em 1.1em;border:1px solid rgba(198,165,103,.3);font-size:var(--lng-t-meta);
  letter-spacing:.08em;color:var(--lng-ash-2);transition:all .4s var(--lng-e-out)}
.lng-chip:hover{background:var(--lng-brass);color:var(--lng-ink);border-color:var(--lng-brass);
  transform:translateY(-2px)}

/* finestra accesso / registrazione */
.lng-ov--auth{display:flex;align-items:center;justify-content:center;padding:24px}
.lng-auth{position:relative;width:min(440px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;
  background:var(--lng-ink-2);border:1px solid rgba(198,165,103,.24);color:var(--lng-bone);
  padding:40px 36px 34px;opacity:0;transform:translateY(26px) scale(.97);
  transition:opacity .55s var(--lng-e-out),transform .55s var(--lng-e-out);
  box-shadow:0 40px 90px rgba(0,0,0,.5)}
.lng-auth::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,transparent,var(--lng-brass),transparent)}
.lng-ov--auth.is-open .lng-auth{opacity:1;transform:none}
.lng-auth-x{position:absolute;top:14px;right:14px;width:38px;height:38px;display:flex;
  align-items:center;justify-content:center;background:transparent;border:1px solid rgba(198,165,103,.25);
  border-radius:50%;color:var(--lng-bone);cursor:pointer;transition:all .35s var(--lng-e-out)}
.lng-auth-x:hover{background:var(--lng-brass);color:var(--lng-ink);border-color:var(--lng-brass)}
.lng-auth-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.lng-auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:26px}
.lng-auth-plaque{width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  background:var(--lng-ink);border:1px solid var(--lng-brass);color:var(--lng-brass);
  font-family:var(--lng-display,serif);font-size:19px;font-style:normal}
.lng-auth-since{font-size:var(--lng-t-micro);letter-spacing:.22em;text-transform:uppercase;
  color:var(--lng-brass)}
.lng-auth-tabs{position:relative;display:flex;gap:26px;border-bottom:1px solid rgba(198,165,103,.2);
  margin-bottom:26px}
.lng-auth-tab{background:transparent;border:0;padding:0 0 12px;cursor:pointer;
  font-size:var(--lng-t-micro);letter-spacing:.18em;text-transform:uppercase;
  color:var(--lng-ash-2,#8B959B);transition:color .3s ease}
.lng-auth-tab.is-on,.lng-auth-tab:hover{color:var(--lng-bone)}
.lng-auth-ink{position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--lng-brass);
  transition:left .45s var(--lng-e-out),width .45s var(--lng-e-out)}
.lng-auth-form{display:none}
.lng-auth-form.is-on{display:block}
.lng-auth-title{margin:0 0 6px;font-family:var(--lng-display,serif);font-weight:500;
  font-size:26px;line-height:1.15;color:var(--lng-bone);font-style:normal}
.lng-auth-sub{margin:0 0 22px;font-size:calc(var(--lng-fs) * .85);color:var(--lng-ash-2,#8B959B)}
.lng-auth-field{display:block;margin-bottom:16px}
.lng-auth-field span{display:block;margin-bottom:7px;font-size:var(--lng-t-micro);
  letter-spacing:.14em;text-transform:uppercase;color:var(--lng-brass)}
.lng-auth-field input{width:100%;box-sizing:border-box;background:var(--lng-ink) !important;
  color:var(--lng-bone) !important;-webkit-text-fill-color:var(--lng-bone) !important;
  caret-color:var(--lng-brass);
  border:1px solid rgba(198,165,103,.28);border-radius:0;padding:13px 14px;font-size:var(--lng-fs);
  font-family:inherit;transition:border-color .3s ease,box-shadow .3s ease;-webkit-appearance:none;appearance:none}
.lng-auth-field input::placeholder{color:rgba(233,228,216,.4);opacity:1}
.lng-auth-field input:-webkit-autofill,
.lng-auth-field input:-webkit-autofill:hover,
.lng-auth-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--lng-bone) !important;
  -webkit-box-shadow:0 0 0 1000px var(--lng-ink) inset !important;
  box-shadow:0 0 0 1000px var(--lng-ink) inset !important;
  border:1px solid rgba(198,165,103,.28);
  transition:background-color 999999s ease-out}
.lng-auth-field input:focus{outline:none;border-color:var(--lng-brass);
  box-shadow:0 0 0 3px rgba(198,165,103,.16)}
.lng-auth-field input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--lng-ink) inset,
  0 0 0 3px rgba(198,165,103,.16) !important}
.lng-auth-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0}
.lng-auth-row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:2px 0 18px;flex-wrap:wrap}
.lng-auth-check{display:flex;align-items:center;gap:8px;cursor:pointer;
  font-size:calc(var(--lng-fs) * .82);color:var(--lng-bone-2)}
.lng-auth-check input{accent-color:var(--lng-brass);width:15px;height:15px}
.lng-auth-lost{font-size:calc(var(--lng-fs) * .82);color:var(--lng-brass);text-decoration:none;
  border-bottom:1px solid rgba(198,165,103,.4);transition:border-color .3s ease}
.lng-auth-lost:hover{border-color:var(--lng-brass)}
.lng-auth-msg{margin:0 0 14px;padding:11px 13px;font-size:calc(var(--lng-fs) * .84);
  color:#F2C9C0;background:rgba(146,54,38,.18);border:1px solid rgba(196,92,72,.4)}
.lng-auth-go{position:relative;width:100%;box-sizing:border-box;border:1px solid var(--lng-brass);
  background:var(--lng-brass);color:var(--lng-ink);cursor:pointer;padding:15px 18px;
  font-size:var(--lng-t-micro);letter-spacing:.2em;text-transform:uppercase;font-family:inherit;
  transition:background .35s ease,color .35s ease}
.lng-auth-go:hover{background:transparent;color:var(--lng-brass)}
.lng-auth-go.is-busy{pointer-events:none;color:transparent}
.lng-auth-go.is-busy::after{content:"";position:absolute;top:50%;left:50%;width:18px;height:18px;
  margin:-9px 0 0 -9px;border:2px solid rgba(18,23,26,.3);border-top-color:var(--lng-ink);
  border-radius:50%;animation:lng-auth-spin .7s linear infinite}
.lng-auth-go.is-busy:hover::after{border-color:rgba(198,165,103,.3);border-top-color:var(--lng-brass)}
.lng-auth-go.is-done{pointer-events:none;background:var(--lng-brass);color:var(--lng-ink)}
@keyframes lng-auth-spin{to{transform:rotate(360deg)}}
.lng-auth-note{margin:16px 0 0;font-size:calc(var(--lng-fs) * .74);line-height:1.5;
  color:var(--lng-ash-2,#8B959B)}
@media (max-width:620px){
  .lng-ov--auth{padding:0;align-items:flex-end}
  .lng-auth{width:100%;max-height:calc(100dvh - 56px);padding:34px 22px 30px;
    border-left:0;border-right:0;border-bottom:0;transform:translateY(100%)}
  .lng-ov--auth.is-open .lng-auth{transform:none}
  .lng-auth-row{row-gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .lng-auth{transition:opacity .3s ease;transform:none}
}

/* menu mobile */
.lng-mnav{position:absolute;inset:0;background:var(--lng-ink-3);display:flex;flex-direction:column;
  clip-path:circle(0% at calc(100% - 42px) 42px);transition:clip-path .85s var(--lng-e-io)}
.lng-ov.is-open .lng-mnav{clip-path:circle(150% at calc(100% - 42px) 42px)}
.lng-mnav-body{flex:1;overflow-y:auto;padding:76px 28px 20px;display:grid;gap:0;align-content:start;
  counter-reset:lng-mi}
.lng-mnav-body a{font-family:var(--lng-display);font-size:clamp(1.28rem,5.4vw,1.75rem);
  line-height:1.15;text-transform:uppercase;padding:.5em 0;
  border-bottom:1px solid rgba(198,165,103,.12);
  display:flex;justify-content:space-between;align-items:center;gap:1em;
  opacity:0;transform:translateY(18px);
  transition:opacity .6s ease var(--lng-d,0s),transform .7s var(--lng-e-out) var(--lng-d,0s),color .3s ease}
.lng-ov.is-open .lng-mnav-body a{opacity:1;transform:none}
.lng-mnav-body a:hover{color:var(--lng-brass-lt)}
/* Numerazione con un counter: segue l'ordine reale delle voci e vale sia per
   l'elenco del widget sia per un menu di WordPress. Niente indici calcolati
   in PHP, che saltavano appena si spostava o aggiungeva una voce. */
.lng-mnav-body.has-numbers > a,
.lng-mnav-body.has-numbers li > a{counter-increment:lng-mi}
.lng-mnav-body.has-numbers > a::after,
.lng-mnav-body.has-numbers li > a::after{
  content:counter(lng-mi, decimal-leading-zero);
  flex:none;font-family:var(--lng-body);font-size:var(--lng-t-micro);
  letter-spacing:.18em;font-weight:500;color:var(--lng-brass)}
.lng-mnav-body ul{display:grid;gap:0;margin:0;padding:0;list-style:none}
.lng-mnav-body li{list-style:none;margin:0}
.lng-mnav-tools{padding:20px 28px 4px;display:grid;gap:14px}
.lng-mnav-search{display:flex;align-items:center;gap:12px;
  border:1px solid rgba(198,165,103,.28);padding:.85em 1em;background:rgba(233,228,216,.03)}
.lng-mnav-search svg{width:18px;height:18px;flex:none;
  stroke:var(--lng-brass);stroke-width:1.3;fill:none;stroke-linecap:round}
.lng-mnav-search input{flex:1;min-width:0;background:none;border:0;outline:none;
  color:var(--lng-bone);font:300 var(--lng-t-meta)/1.2 var(--lng-body)}
.lng-mnav-search input::placeholder{color:#6E6A63}
.lng-mnav-links{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px}
.lng-hf .lng-mnav-link{position:relative;display:flex;align-items:center;justify-content:center;gap:.6em;
  padding:.9em .7em;border:1px solid rgba(198,165,103,.24);
  color:var(--lng-ash-2);background:none;cursor:pointer;
  font:500 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.16em;text-transform:uppercase;
  transition:color .35s ease,border-color .35s ease,background-color .35s ease}
.lng-hf .lng-mnav-link:hover{color:var(--lng-ink);background:var(--lng-brass);border-color:var(--lng-brass)}
.lng-mnav-link svg{width:17px;height:17px;flex:none;
  stroke:currentColor;stroke-width:1.3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lng-mnav-link .lng-cnt{position:static;transform:none;min-width:18px;height:18px;
  line-height:18px;border-radius:9px}
.lng-mnav-link .lng-cnt:not(.is-on){display:none}

.lng-mnav-foot{padding:20px 28px 32px;border-top:1px solid rgba(198,165,103,.14);display:grid;gap:14px}
.lng-mnav-close{position:absolute;top:20px;right:24px;z-index:5;width:42px;height:42px;
  display:grid;place-items:center;color:var(--lng-bone)}
.lng-mnav-close svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.3;fill:none;stroke-linecap:round}
.lng-addr{display:grid;gap:6px;padding-left:20px;border-left:1px solid rgba(198,165,103,.4)}
.lng-addr b{font-family:var(--lng-display);font-size:var(--lng-t-title);font-weight:500;letter-spacing:.02em}
.lng-addr span{color:var(--lng-ash);font-size:var(--lng-t-body)}

/* ============================================================
   FOOTER
   ============================================================ */
.lng-ftr{background:var(--lng-ink);border-top:1px solid rgba(198,165,103,.14);color:var(--lng-ash)}
.lng-ftr-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:44px;padding-block:64px}
.lng-ftr h4{font:500 var(--lng-t-meta)/1 var(--lng-body);letter-spacing:.22em;
  text-transform:uppercase;color:var(--lng-brass);margin-bottom:22px}
.lng-ftr-brand{display:grid;gap:20px;align-content:start}
.lng-ftr-brand p{font-size:var(--lng-t-body);max-width:42ch;line-height:1.8;color:var(--lng-ash)}
.lng-ftr-links li a{display:inline-block;padding:.38em 0;font-size:var(--lng-t-body);color:var(--lng-ash);
  transition:color .35s ease,transform .45s var(--lng-e-out)}
.lng-ftr-links li a:hover{color:var(--lng-bone)}
.has-link-slide .lng-ftr-links li a:hover{transform:translateX(5px)}
.lng-socials{display:flex;gap:8px;flex-wrap:wrap}
.lng-socials a{width:40px;height:40px;border:1px solid rgba(198,165,103,.28);border-radius:50%;
  display:grid;place-items:center;color:var(--lng-ash);
  transition:background-color .4s ease,color .4s ease,border-color .4s ease,transform .45s var(--lng-e-out)}
.lng-socials a:hover{background:var(--lng-brass);color:var(--lng-ink);
  border-color:var(--lng-brass);transform:translateY(-3px)}
.lng-socials svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.3;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.lng-ftr-contact{display:grid;gap:8px;font-size:var(--lng-t-body);line-height:1.8;color:var(--lng-ash);
  overflow-wrap:anywhere}
.lng-ftr-contact b{color:var(--lng-bone);font-family:var(--lng-display);font-size:var(--lng-t-body);font-weight:500}
.lng-ftr-contact a{color:var(--lng-bone);border-bottom:1px solid rgba(198,165,103,.35);padding-bottom:1px}
.lng-pays{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}
.lng-pay{height:26px;padding-inline:10px;border:1px solid rgba(198,165,103,.22);border-radius:3px;
  display:grid;place-items:center;font:600 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.1em;
  color:var(--lng-ash);transition:border-color .35s ease,color .35s ease}
.lng-pay:hover{border-color:var(--lng-brass);color:var(--lng-brass-lt)}
.lng-pay--img{padding-inline:6px}
.lng-pay--img img{height:16px;width:auto}

.lng-ftr-legal{border-top:1px solid rgba(198,165,103,.12);padding-block:26px;display:grid;gap:20px}
.lng-legal-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center}
.lng-legal-links{display:flex;flex-wrap:wrap;gap:22px}
.lng-legal-links a,.lng-legal-links button{font-size:var(--lng-t-meta);color:var(--lng-ash);
  transition:color .3s ease;padding:0}
.lng-legal-links a:hover,.lng-legal-links button:hover{color:var(--lng-brass-lt)}
.lng-vat{font-size:var(--lng-t-meta);line-height:1.85;color:#6E6A63;max-width:78ch;overflow-wrap:anywhere}
.lng-credit{display:flex;flex-wrap:wrap;align-items:center;gap:11px;font-size:var(--lng-t-meta);color:#6E6A63}
.lng-credit a{display:inline-flex;align-items:center;gap:8px;color:var(--lng-ash-2);transition:color .35s ease}
.lng-credit a:hover{color:var(--lng-brass-lt)}
/* Il logo dell'agenzia non va alterato: nessun filtro, nessuna maschera colore. */
.lng-credit-logo{height:22px;width:auto;max-width:140px;object-fit:contain;
  filter:none;mix-blend-mode:normal}

/* ============================================================
   RESPONSIVE
   Il breakpoint del menu è scritto inline dal widget su
   --lng-mbp, questa media query è il fallback statico.
   ============================================================ */
@media (max-width:1340px){
  .lng-hf .lng-nav{display:none}
  .lng-hf .lng-burger{display:grid;place-items:center;align-content:center}
  .lng-ftr-top{grid-template-columns:1fr 1fr !important}
}
@media (max-width:900px){
  .lng-hdr{--lng-h:70px}
  .lng-mega-in{grid-template-columns:1fr 1fr !important;gap:24px}
}
@media (max-width:620px){
  .lng-wrap{padding-inline:20px}
  /* Marchio e strumenti devono entrare insieme: si riducono in proporzione. */
  .lng-hdr-in{gap:8px}
  .lng-tool{width:38px;height:38px}
  .lng-tools{gap:0}
  .lng-brand-txt b{font-size:calc(var(--lng-brand-size,var(--lng-t-title)) * .82)}
  .lng-brand-txt small{letter-spacing:.26em;
    font-size:calc(var(--lng-brand-sub-size,var(--lng-t-micro)) * .92)}
  .lng-ftr-top{grid-template-columns:1fr !important}
  .lng-mnav-body{padding:72px 20px 16px}
  .lng-mnav-tools,.lng-mnav-foot{padding-inline:20px}
  .lng-mnav-close{right:16px}
  .lng-legal-row{flex-direction:column;align-items:flex-start}
  .lng-bar.lng-hide-mobile{display:none}
  .lng-mega-in{grid-template-columns:1fr !important}
}

@media (prefers-reduced-motion:reduce){
  .lng-hf *,.lng-hf *::before,.lng-hf *::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .lng-mnav{clip-path:none !important}
  .lng-mega{clip-path:none !important}
}

/* Elementor editor: mostra sempre gli overlay chiusi e l'header non sticky
   così il canvas resta usabile mentre si modifica. */
.elementor-editor-active .lng-hf.is-fixed .lng-hdr{position:relative}
.elementor-editor-active .lng-hf-spacer{display:none}

/* ============================================================
   SEZIONE PRODOTTI — "Una selezione pensata per distinguersi"
   ============================================================ */
.lng-products-widget{--lng-ink-txt:#2B2119}
.lng-prod{background:#E9E4D8;color:var(--lng-ink-txt);padding-block:110px;position:relative}

/* intestazione */
.lng-prod-hd{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;
  gap:26px;margin-bottom:38px}
.lng-prod-hd-l{max-width:100%}
.lng-eyebrow{display:inline-flex;align-items:center;gap:.7em;
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:var(--lng-track);
  text-transform:uppercase;color:var(--lng-brass)}
.lng-eyebrow::before{content:"";width:26px;height:1px;background:currentColor;opacity:.6;flex:none}
.lng-eyebrow.is-plain::before{display:none}
.lng-prod-title{font-family:var(--lng-display);font-weight:400;line-height:1.02;
  font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.015em;text-transform:uppercase;
  margin-top:.55em;color:var(--lng-ink-txt)}
.lng-prod-intro{max-width:40ch;color:#6C6355;font-weight:300;line-height:1.7;
  font-size:var(--lng-t-lead)}

.lng-section--stacked .lng-prod-hd{flex-direction:column;align-items:flex-start}
.lng-section--stacked .lng-prod-intro{max-width:56ch}
.lng-section--center .lng-prod-hd{flex-direction:column;align-items:center;text-align:center}
.lng-section--center .lng-prod-intro{max-width:60ch}
.lng-section--center .lng-tabs{justify-content:center}

/* reveal a righe */
.lng-rl{display:block;overflow:hidden}
.lng-rl > span{display:block;transform:translateY(110%);
  transition:transform 1.05s var(--lng-e-out) var(--lng-d,0s)}
.lng-fu{opacity:0;transform:translateY(24px);
  transition:opacity .9s ease var(--lng-d,0s),transform 1s var(--lng-e-out) var(--lng-d,0s)}
/* senza animazione, o una volta entrati nello schermo, tutto è visibile */
.lng-hf:not(.lng-anim) .lng-rl > span,
.lng-anim.is-in .lng-rl > span{transform:translateY(0)}
.lng-hf:not(.lng-anim) .lng-fu,
.lng-anim.is-in .lng-fu{opacity:1;transform:none}

/* tab */
.lng-tabs{position:relative;display:flex;flex-wrap:wrap;gap:6px;
  border-bottom:1px solid rgba(138,108,53,.24);margin-bottom:42px}
.lng-tab{position:relative;padding:.9em 1.35em;white-space:nowrap;
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:var(--lng-track);
  text-transform:uppercase;color:#8B8272;transition:color .4s ease}
.lng-tab:hover{color:var(--lng-ink-txt)}
.lng-tab.is-on{color:var(--lng-brass)}
.lng-tabink{position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--lng-brass);
  transition:left .55s var(--lng-e-out),width .55s var(--lng-e-out)}

/* pannelli e griglia */
.lng-panel[hidden]{display:none}
.lng-panel.is-swapping .lng-card{opacity:0;transform:translateY(16px)}
.lng-pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.lng-empty{grid-column:1/-1;color:#6C6355;padding-block:32px}

/* scheda */
.lng-card{position:relative;opacity:1;transform:none;
  transition:opacity .5s ease var(--lng-d,0s),transform .6s var(--lng-e-out) var(--lng-d,0s)}
.lng-card-media{position:relative;overflow:hidden}
.lng-card-img{display:block;position:relative;aspect-ratio:.86;overflow:hidden;background:#DCD5C4}
.lng-card-img img{width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--lng-e-out)}
.lng-card:hover .lng-card-img img{transform:scale(1.06)}

.lng-badge{position:absolute;top:14px;left:14px;z-index:3;display:flex;flex-direction:column;
  align-items:flex-start;gap:6px;pointer-events:none}
.lng-badge span{font:600 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  padding:.5em .8em;background:#2B2119;color:#E9E4D8}
.lng-badge span.is-sale{background:var(--lng-brass)}

/* Il reset di base .lng-hf button{background:none} vale (0,1,1) e batterebbe
   una singola classe: qui serve .lng-hf davanti, o il cuore resta trasparente
   e diventa quasi invisibile sulle immagini scure. */
.lng-hf .lng-fav{position:absolute;top:12px;right:12px;z-index:3;width:38px;height:38px;
  border-radius:50%;display:grid;place-items:center;
  color:#2B2119;
  background:rgba(243,239,231,.88);
  border:1px solid rgba(43,33,25,.12);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;transform:translateY(-8px) scale(.9);
  transition:opacity .5s var(--lng-e-out),transform .5s var(--lng-e-out),
             background-color .35s ease,color .35s ease;
  cursor:pointer}
.lng-hf .lng-fav:hover{background:#F3EFE7}
.lng-card:hover .lng-fav,.lng-card:focus-within .lng-fav{opacity:1;transform:none}
.lng-fav svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.4;fill:none}
.lng-hf .lng-fav.is-on{background:var(--lng-brass);border-color:var(--lng-brass);color:var(--lng-ink)}
.lng-hf .lng-fav.is-on svg{fill:currentColor}

.lng-card-add{position:absolute;left:0;right:0;bottom:0;z-index:3;display:block;padding:1em;
  background:rgba(43,33,25,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#E9E4D8;font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:var(--lng-track);
  text-transform:uppercase;text-align:center;
  transform:translateY(101%);transition:transform .55s var(--lng-e-out),background-color .4s ease}
.lng-card:hover .lng-card-add,.lng-card:focus-within .lng-card-add{transform:translateY(0)}
.lng-card-add:hover{background:var(--lng-brass)}
.lng-card-add.is-added{background:var(--lng-brass)}

.lng-card-meta{padding-top:16px;display:grid;gap:5px}
.lng-card-brand{font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.18em;
  text-transform:uppercase;color:#9A9081}
.lng-card-name{font-family:var(--lng-display);font-size:var(--lng-t-title);font-weight:500;line-height:1.25;
  color:var(--lng-ink-txt)}
.lng-card-name a{color:inherit;transition:color .35s ease}
.lng-card-name a:hover{color:var(--lng-brass)}
.lng-card-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  font-family:var(--lng-display);font-size:var(--lng-t-body);color:var(--lng-ink-txt)}
.lng-card-price del{color:#A79E8D;font-size:.9em;text-decoration-thickness:1px}
.lng-card-price ins{text-decoration:none;color:var(--lng-brass);font-weight:600}
.lng-card-price .amount{font-family:inherit}

/* pallina che vola nel carrello */
.lng-fly{position:fixed;z-index:120;width:11px;height:11px;border-radius:50%;
  background:var(--lng-brass);pointer-events:none;box-shadow:0 0 18px rgba(198,165,103,.8)}

/* schede dimostrative */
.lng-demo-art{display:grid;place-items:center}
.lng-demo-art svg{width:52%;height:52%;fill:none;stroke-width:1.1;
  stroke-linecap:round;stroke-linejoin:round;stroke:rgba(43,33,25,.45);
  transition:transform 1s var(--lng-e-out),stroke .5s ease}
.lng-card:hover .lng-demo-art svg{transform:translateY(-6px) scale(1.04);stroke:rgba(43,33,25,.75)}
.lng-demo-art.is-leather{background:radial-gradient(120% 90% at 25% 15%,#6A4E31,#4A3524 42%,#2B2119)}
.lng-demo-art.is-dark{background:radial-gradient(80% 60% at 70% 25%,#2E3A42,#171F24 50%,#0D1114)}
.lng-demo-art.is-rose{background:radial-gradient(95% 80% at 75% 25%,#7A5449,#4A3229 48%,#251A15)}
.lng-demo-art.is-brass{background:linear-gradient(105deg,#5F4B25,#C6A567 22%,#EFE0BB 34%,#A5834A 46%,#7A5E2E 62%,#D7BE85 78%,#6B5329)}
.lng-demo-art.is-marble{background:radial-gradient(120% 90% at 30% 20%,#EDE8DC,#D8D1C0 45%,#B9B1A0)}
.lng-demo-art.is-leather svg,.lng-demo-art.is-dark svg,.lng-demo-art.is-rose svg{stroke:rgba(231,211,164,.5)}
.lng-card:hover .is-leather svg,.lng-card:hover .is-dark svg,.lng-card:hover .is-rose svg{stroke:rgba(231,211,164,.85)}
.lng-card.is-demo .lng-card-add{transform:translateY(101%)}
.lng-card.is-demo:hover .lng-card-add{transform:translateY(0)}

.lng-prod-foot{display:flex;justify-content:center;margin-top:52px}
.lng-btn--dark{color:#2B2119;border-color:rgba(138,108,53,.45)}
.lng-btn--dark:hover{color:#12171A}

@media (max-width:900px){
  .lng-prod{padding-block:68px}
  .lng-prod-hd{flex-direction:column;align-items:flex-start}
  .lng-section--center .lng-prod-hd{align-items:center}
}
@media (max-width:620px){
  .lng-card-add{position:static;transform:none;background:transparent;color:var(--lng-brass);
    padding:.75em 0;text-align:left;font-size:var(--lng-t-micro);letter-spacing:.1em;
    border-bottom:1px solid rgba(138,108,53,.35);-webkit-backdrop-filter:none;backdrop-filter:none}
  .lng-card-add:hover,.lng-card-add.is-added{background:transparent}
  .lng-fav{opacity:1;transform:none}
  /* griglia verticale: un prodotto per riga, i primi N, poi il pulsante shop */
  .lng-products-widget .lng-pgrid{grid-template-columns:1fr;gap:30px}
  .lng-products-widget .lng-card.lng-mob-x{display:none}
  .lng-products-widget .lng-prod-foot{justify-content:center;margin-top:34px}
  .lng-products-widget .lng-prod-foot .lng-btn{width:100%;justify-content:center;text-align:center}
}

/* ============================================================
   SEZIONE PRODOTTI — STRATO PREMIUM

   Tutto quanto segue si aggancia alle classi che il widget stampa
   sempre, quindi vale anche se JavaScript non parte. Le poche
   regole che richiedono lo script stanno sotto .lng-fx, classe che
   initProducts aggiunge quando entra in funzione.
   ============================================================ */

/* fondo a tutta larghezza, contenuto entro la misura del widget */
.lng-products-widget .lng-prod{
  position:relative;
  width:var(--lng-vw,100vw);
  max-width:var(--lng-vw,100vw);
  margin-left:calc(50% - var(--lng-vw,100vw) / 2);
  overflow:hidden;
  isolation:isolate;
}
/* Misura del contenuto. Il controllo "Larghezza massima" di Elementor
   scrive con specificità maggiore, quindi resta sempre modificabile. */
.lng-products-widget .lng-prod > .lng-wrap{position:relative;z-index:2;max-width:1250px}

/* alone e trama, senza aggiungere elementi al markup */
.lng-products-widget .lng-prod::before{
  content:"";position:absolute;z-index:0;pointer-events:none;
  right:-12%;top:-20%;width:70%;height:130%;
  background:radial-gradient(closest-side,rgba(198,165,103,.14),transparent 70%);
  animation:lng-p-breathe 14s ease-in-out infinite;
}
.lng-products-widget .lng-prod::after{
  content:"";position:absolute;z-index:0;inset:-50%;pointer-events:none;
  opacity:.32;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='170' height='170'><filter id='pgr'><feTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3'/></filter><rect width='170' height='170' filter='url(%23pgr)' opacity='.4'/></svg>");
  animation:lng-p-grain 8s steps(6) infinite;
}

/* filo prima dell'occhiello */
.lng-products-widget .lng-eyebrow{display:flex;align-items:center;gap:16px}
.lng-products-widget .lng-eyebrow::before{
  content:"";display:block;flex:none;
  width:clamp(34px,4vw,64px);height:1px;background:var(--lng-brass);
  transform:scaleX(0);transform-origin:left;
}
.lng-products-widget.is-in .lng-eyebrow::before{
  animation:lng-p-draw 1s var(--lng-e-out) .3s forwards}

/* schede tab */
.lng-products-widget .lng-tab{transition:color .4s ease,letter-spacing .5s var(--lng-e-out)}
.lng-products-widget .lng-tab:hover{letter-spacing:.24em}
.lng-products-widget .lng-tabink{
  height:2px;
  background:linear-gradient(90deg,var(--lng-brass-deep),var(--lng-brass-lt),var(--lng-brass-deep));
  box-shadow:0 0 16px rgba(198,165,103,.5);
  transition:left .6s var(--lng-e-out),width .6s var(--lng-e-out);
}

/* comparsa delle schede: solo clip-path e opacità.
   Un fotogramma che tocca transform, con fill-mode both, resterebbe
   applicato per sempre e coprirebbe l'inclinazione al passaggio del
   cursore, che usa la stessa proprietà. */
.lng-products-widget.is-in .lng-card{
  animation:lng-p-uncover 1s var(--lng-e-out) var(--lng-d,0s) both;
}
@keyframes lng-p-uncover{
  0%{clip-path:inset(0 0 100% 0);opacity:0}
  100%{clip-path:inset(0 0 0 0);opacity:1}
}

.lng-products-widget .lng-card{position:relative}
.lng-products-widget .lng-card-media{position:relative;overflow:hidden;isolation:isolate}
.lng-products-widget .lng-card-media img{transition:transform 1.5s var(--lng-e-out),filter .8s ease}
.lng-products-widget .lng-card:hover .lng-card-media img{
  transform:scale(1.07);filter:saturate(1.06) contrast(1.03)}

/* alone che segue il cursore */
.lng-products-widget .lng-card-media::before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
  background:radial-gradient(200px circle at var(--lng-mx,50%) var(--lng-my,50%),
             rgba(231,211,164,.2),transparent 70%);
  transition:opacity .5s ease;
}
.lng-products-widget .lng-card:hover .lng-card-media::before{opacity:1}

/* riflesso diagonale */
.lng-products-widget .lng-card-media::after{
  content:"";position:absolute;inset:-40%;z-index:4;pointer-events:none;
  background:linear-gradient(115deg,transparent 42%,rgba(255,246,224,.2) 50%,
             rgba(198,165,103,.1) 55%,transparent 63%);
  transform:translateX(-125%);
}
.lng-products-widget .lng-card:hover .lng-card-media::after{
  transition:transform 1.15s var(--lng-e-out);transform:translateX(125%)}

/* filo d'ottone sopra i dati */
.lng-products-widget .lng-card-meta{position:relative}
.lng-products-widget .lng-card-meta::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,var(--lng-brass-deep),var(--lng-brass-lt),var(--lng-brass-deep));
  transform:scaleX(0);transform-origin:left;
  transition:transform .7s var(--lng-e-out);
}
.lng-products-widget .lng-card:hover .lng-card-meta::before,
.lng-products-widget .lng-card:focus-within .lng-card-meta::before{transform:scaleX(1)}

/* nome, marchio, prezzo */
.lng-products-widget .lng-card-name a{
  background-image:linear-gradient(90deg,var(--lng-brass-deep),var(--lng-brass-lt));
  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;
  transition:background-size .55s var(--lng-e-out),color .4s ease;
}
.lng-products-widget .lng-card:hover .lng-card-name a{background-size:100% 1px}
.lng-products-widget .lng-card-brand{transition:color .4s ease,letter-spacing .5s var(--lng-e-out)}
.lng-products-widget .lng-card:hover .lng-card-brand{
  color:var(--lng-brass-deep);letter-spacing:.2em}
.lng-products-widget .lng-card-price{transition:transform .5s var(--lng-e-out)}
.lng-products-widget .lng-card:hover .lng-card-price{transform:translateX(3px)}

/* badge squadrato */
.lng-products-widget .lng-badge > span{
  border-radius:0;letter-spacing:.18em;
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
}

/* il cuore pulsa quando viene acceso */
.lng-products-widget .lng-fav.is-pop{animation:lng-p-pop .55s var(--lng-e-out)}

/* pulsante finale */
.lng-products-widget .lng-prod-foot .lng-btn .lng-arw{
  display:inline-block;transition:transform .45s var(--lng-e-out)}
.lng-products-widget .lng-prod-foot .lng-btn:hover .lng-arw{transform:translateX(6px)}

/* --- solo con JavaScript attivo --- */
.lng-products-widget.lng-fx .lng-card{
  transform:perspective(1000px) rotateX(var(--lng-rx,0deg)) rotateY(var(--lng-ry,0deg));
  transition:transform .6s var(--lng-e-out);
  will-change:transform;
}

@keyframes lng-p-draw{to{transform:scaleX(1)}}
@keyframes lng-p-pop{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes lng-p-breathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
@keyframes lng-p-grain{
  0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}
  40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,-2%)}
  80%{transform:translate(4%,2%)}100%{transform:translate(0,0)}
}

@media (prefers-reduced-motion:reduce){
  .lng-products-widget .lng-prod::before,
  .lng-products-widget .lng-prod::after,
  .lng-products-widget .lng-card,
  .lng-products-widget .lng-card-media::after{animation:none !important}
  .lng-products-widget .lng-card{transform:none !important;opacity:1;clip-path:none}
  .lng-products-widget .lng-eyebrow::before{transform:scaleX(1)}
  .lng-products-widget .lng-card-media::after{display:none}
}


/* ============================================================
   PANNELLO PREFERITI
   Stesso ritmo del mini-cart: miniatura in assoluto, corridoio a
   sinistra, riga con altezza minima propria.
   ============================================================ */
.lng-hf .lng-wish-list{display:block;margin:0;padding:0;list-style:none}
.lng-wish-list[hidden],.lng-wish-empty[hidden],.lng-drawer-foot[hidden]{display:none}

.lng-hf .lng-wish-item{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:16px;
  box-sizing:border-box;
  margin:0;padding:18px 34px 18px 0;
  border-bottom:1px solid rgba(198,165,103,.13);
  list-style:none;
  transition:background-color .4s ease;
}
.lng-hf .lng-wish-item:hover{background:rgba(198,165,103,.045)}
.lng-hf .lng-wish-item:last-child{border-bottom:none}
.lng-hf .lng-wish-item::before{content:none;display:none}

.lng-hf .lng-wish-thumb{
  position:static;
  flex:0 0 68px;
  display:block;width:68px;height:80px;
  overflow:hidden;margin:0;
  border:1px solid rgba(198,165,103,.28);
  background:var(--lng-tobacco);
  transition:border-color .4s ease;
}
.lng-hf .lng-wish-item:hover .lng-wish-thumb{
  border-color:rgba(198,165,103,.55);transform:scale(1.03)}
.lng-hf .lng-wish-thumb img{
  position:static;float:none;
  width:100%;height:100%;max-width:100%;
  object-fit:cover;margin:0;border:0;border-radius:0;box-shadow:none}
.lng-wish-noimg{display:block;width:100%;height:100%;
  background:radial-gradient(120% 90% at 25% 15%,#6A4E31,#4A3524 42%,#2B2119)}

.lng-hf .lng-wish-txt{flex:1 1 auto;min-width:0}
.lng-hf .lng-wish-txt > a{
  display:block;
  color:var(--lng-bone);
  font-family:var(--lng-display);
  font-size:var(--lng-t-body);
  font-weight:500;line-height:1.3;
  text-decoration:none;overflow-wrap:anywhere;
  transition:color .35s ease}
.lng-hf .lng-wish-txt > a:hover{color:var(--lng-brass-lt)}
.lng-hf .lng-wish-price{
  display:block;margin-top:10px;
  color:var(--lng-brass-lt);
  font-family:var(--lng-display);
  font-size:var(--lng-t-body)}
.lng-hf .lng-wish-price .amount,
.lng-hf .lng-wish-price bdi,
.lng-hf .lng-wish-price .woocommerce-Price-currencySymbol{color:var(--lng-brass-lt)}
.lng-hf .lng-wish-price del .amount,
.lng-hf .lng-wish-price del bdi,
.lng-hf .lng-wish-price del .woocommerce-Price-currencySymbol{color:var(--lng-ash)}
.lng-hf .lng-wish-price del,
.lng-hf .lng-wish-price del .amount{
  color:var(--lng-ash);font-size:.82em;margin-right:.55em;
  text-decoration-thickness:1px}
.lng-hf .lng-wish-price ins{text-decoration:none;color:var(--lng-brass-lt)}

.lng-hf .lng-wish-rm{
  position:absolute;top:18px;right:0;
  width:26px;height:26px;display:grid;place-items:center;
  border-radius:50%;border:1px solid transparent;background:none;cursor:pointer;
  color:#6E6A63;font-size:var(--lng-t-lead);line-height:1;
  transition:color .3s ease,border-color .3s ease,background-color .3s ease}
.lng-hf .lng-wish-item:hover .lng-wish-rm{
  color:var(--lng-ash-2);border-color:rgba(198,165,103,.28)}
.lng-hf .lng-wish-rm:hover{
  color:#D98A6A;border-color:rgba(217,138,106,.5);background:rgba(217,138,106,.12)}

.lng-hf .lng-wish-empty{
  display:grid;gap:16px;justify-items:center;text-align:center;
  padding-block:52px;color:var(--lng-ash-2)}
.lng-hf .lng-wish-empty svg{
  width:34px;height:34px;stroke:var(--lng-brass);stroke-width:1;fill:none}
.lng-hf .lng-wish-empty p{max-width:30ch;line-height:1.7;color:var(--lng-ash-2)}

/* ============================================================
   PAGINA SHOP
   ============================================================ */
.lng-shop-widget{--lng-aside-w:260px;--lng-shop-cols:3}

/* --- intestazione --- */
.lng-shop-hero{position:relative;background:var(--lng-ink);color:var(--lng-bone);
  padding-block:96px;overflow:hidden}
.lng-shop-year{
  position:absolute;right:-7vw;bottom:-12%;pointer-events:none;
  font-family:var(--lng-display);font-weight:700;font-size:clamp(9rem,24vw,22rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1.5px rgba(198,165,103,.10);letter-spacing:.02em;
}
@media (max-width:900px){.lng-shop-year{display:none}}
.lng-shop-hero-in{position:relative;z-index:2}
.lng-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;margin-bottom:26px;
  font:400 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.1em;color:var(--lng-ash)}
.lng-crumb a{color:var(--lng-ash);transition:color .3s ease}
.lng-crumb a:hover{color:var(--lng-brass-lt)}
.lng-crumb i{font-style:normal;color:rgba(198,165,103,.5)}
.lng-crumb span{color:var(--lng-bone)}
.lng-shop-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,5vw,72px);
  align-items:end}
.lng-shop-title{font-family:var(--lng-display);font-weight:400;line-height:1;
  font-size:clamp(2.4rem,6vw,5rem);letter-spacing:-.02em;text-transform:uppercase;
  margin:.35em 0 0;color:var(--lng-bone)}
.lng-shop-hero-side{display:grid;gap:20px;justify-items:start}
.lng-shop-intro{max-width:44ch;color:var(--lng-ash-2);line-height:1.75;
  font-size:var(--lng-t-lead)}
.lng-shop-hero-count{display:flex;align-items:baseline;gap:.6em;
  padding-top:16px;border-top:1px solid rgba(198,165,103,.25);width:100%}
.lng-shop-hero-count b{font-family:var(--lng-display);font-size:var(--lng-t-h);color:var(--lng-brass)}
.lng-shop-hero-count span{font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;
  text-transform:uppercase;color:var(--lng-ash)}

/* --- rail categorie --- */
.lng-rail-wrap{background:var(--lng-ink-3);border-block:1px solid rgba(198,165,103,.14);
  padding-block:22px}
.lng-rail{--lng-rail-w:208px;--lng-rail-h:132px;
  display:flex;gap:12px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.lng-rail::-webkit-scrollbar{display:none}
.lng-rail-card{position:relative;flex:0 0 var(--lng-rail-w);height:var(--lng-rail-h);
  overflow:hidden;display:flex;align-items:flex-end;isolation:isolate;
  border:1px solid rgba(198,165,103,.18);transition:border-color .4s ease,transform .5s var(--lng-e-out)}
.lng-rail-card:hover{transform:translateY(-3px);border-color:rgba(198,165,103,.5)}
.lng-rail-card.is-on{border-color:var(--lng-brass)}
.lng-rail-card.is-on::after{content:"";position:absolute;inset:0;z-index:4;
  box-shadow:inset 0 0 0 2px var(--lng-brass);pointer-events:none}
.lng-rail-fill{position:absolute;inset:0;z-index:0}
.lng-rail-fill img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.04);transition:transform 1.3s var(--lng-e-out)}
.lng-rail-card:hover .lng-rail-fill img{transform:scale(1.12)}
.lng-rail-fill.is-leather{background:radial-gradient(120% 90% at 25% 15%,#6A4E31,#4A3524 42%,#2B2119)}
.lng-rail-fill.is-brass{background:linear-gradient(140deg,#5F4B25,#C6A567 30%,#8A6C35 65%,#3A2C1F)}
.lng-rail-txt{position:relative;z-index:3;display:flex;align-items:baseline;gap:.6em;
  width:100%;padding:14px;
  background:linear-gradient(to top,rgba(8,11,13,.92) 20%,rgba(8,11,13,.4) 70%,transparent)}
.lng-rail-txt b{font-family:var(--lng-display);font-size:var(--lng-t-body);font-weight:500;
  line-height:1.2;color:var(--lng-bone)}
.lng-rail-txt i{font-style:normal;font-size:var(--lng-t-label);letter-spacing:.12em;color:var(--lng-brass)}

/* --- corpo --- */
.lng-shop-main{background:var(--lng-bone);color:var(--lng-tobacco);padding-block:56px}
.lng-shop-body{display:grid;gap:clamp(24px,3vw,52px);align-items:start}
.lng-aside-left .lng-shop-body{grid-template-columns:var(--lng-aside-w) minmax(0,1fr)}
.lng-aside-right .lng-shop-body{grid-template-columns:minmax(0,1fr) var(--lng-aside-w)}
.lng-aside-right .lng-shop-aside{order:2}
.lng-aside-none .lng-shop-body{grid-template-columns:minmax(0,1fr)}
.lng-shop-content{min-width:0}

/* --- filtri --- */
.lng-shop-mfilter{display:none}
.has-sticky-aside .lng-aside-in{position:sticky;top:96px}
.lng-aside-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:10px}
.lng-hf .lng-aside-hd h2{font:500 var(--lng-t-meta)/1 var(--lng-body);letter-spacing:.24em;
  text-transform:uppercase;color:var(--lng-tobacco)}
.lng-aside-close{display:none;width:38px;height:38px;place-items:center;color:var(--lng-tobacco)}
.lng-aside-close svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.3;fill:none;stroke-linecap:round}
.lng-fgroup{border-top:1px solid rgba(43,33,25,.14);padding-block:4px}
.lng-fgroup > summary{
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;
  list-style:none;padding:16px 0;
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  color:var(--lng-brass-deep,#8A6C35);
}
.lng-fgroup > summary::-webkit-details-marker{display:none}
.lng-fgroup > summary i{position:relative;width:10px;height:10px;flex:none}
.lng-fgroup > summary i::before,.lng-fgroup > summary i::after{
  content:"";position:absolute;background:currentColor;transition:transform .4s var(--lng-e-out)}
.lng-fgroup > summary i::before{left:0;top:4.5px;width:10px;height:1px}
.lng-fgroup > summary i::after{left:4.5px;top:0;width:1px;height:10px}
.lng-fgroup[open] > summary i::after{transform:scaleY(0)}
.lng-fbody{padding-bottom:16px;display:grid;gap:2px}
.lng-fopt{display:flex;align-items:center;gap:10px;padding:7px 0;
  font-size:var(--lng-t-body);color:#6C6355;transition:color .3s ease}
.lng-fopt:hover{color:var(--lng-tobacco)}
.lng-fopt i{margin-left:auto;font-style:normal;font-size:var(--lng-t-label);color:#A79E8D}
.lng-flabel{min-width:0;overflow-wrap:break-word}
.lng-fbox{flex:none;width:15px;height:15px;border:1px solid rgba(43,33,25,.32);
  position:relative;transition:background-color .3s ease,border-color .3s ease}
.lng-fopt.is-on{color:var(--lng-tobacco)}
.lng-fopt.is-on .lng-fbox{background:var(--lng-brass);border-color:var(--lng-brass)}
.lng-fopt.is-on .lng-fbox::after{content:"";position:absolute;left:4.5px;top:1px;
  width:4px;height:8px;border:solid var(--lng-ink);border-width:0 1.6px 1.6px 0;transform:rotate(42deg)}
.lng-fprice-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lng-fprice label{display:grid;gap:5px}
.lng-fprice label span{font:500 var(--lng-t-micro)/1 var(--lng-body);letter-spacing:.18em;
  text-transform:uppercase;color:#9A9081}
.lng-fprice input{width:100%;background:transparent;border:1px solid rgba(43,33,25,.22);
  padding:.7em .8em;font:300 var(--lng-t-body)/1 var(--lng-body);color:var(--lng-tobacco);
  transition:border-color .3s ease}
.lng-fprice input:focus{outline:none;border-color:var(--lng-brass)}
/* Il tema colora ogni submit con il proprio accento: qui serve una
   regola nostra con abbastanza peso, non solo il reset dei button. */
.lng-hf .lng-fapply{margin-top:12px;width:100%;padding:.85em 1em;
  background:transparent;
  border:1px solid rgba(138,108,53,.45);border-radius:0;
  color:var(--lng-tobacco);cursor:pointer;text-shadow:none;
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  transition:background-color .4s ease,color .4s ease,border-color .4s ease}
.lng-hf .lng-fapply:hover{background:var(--lng-brass);color:var(--lng-ink);border-color:var(--lng-brass)}
.lng-freset{display:inline-block;margin-top:20px;padding-bottom:3px;
  border-bottom:1px solid rgba(138,108,53,.45);
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  color:var(--lng-brass-deep,#8A6C35);transition:color .3s ease}
.lng-freset:hover{color:var(--lng-tobacco)}

/* --- barra strumenti --- */
.lng-shop-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:16px;padding-bottom:18px;margin-bottom:26px;border-bottom:1px solid rgba(43,33,25,.14)}
.lng-shop-count{font-size:var(--lng-t-body);color:#6C6355}
.lng-shop-count b{color:var(--lng-tobacco);font-weight:500}
.lng-shop-tools-r{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.lng-density{display:flex;gap:6px}
.lng-density-btn{display:flex;align-items:center;gap:2px;padding:8px;
  border:1px solid transparent;transition:border-color .3s ease}
.lng-density-btn i{width:3px;height:13px;background:#A79E8D;transition:background-color .3s ease}
.lng-density-btn:hover i,.lng-density-btn.is-on i{background:var(--lng-brass)}
.lng-density-btn.is-on{border-color:rgba(138,108,53,.4)}
.lng-sort{display:flex;align-items:center;gap:10px}
.lng-sort label{font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.18em;
  text-transform:uppercase;color:#9A9081}
.lng-sort select{
  appearance:none;background:transparent;border:0;border-bottom:1px solid rgba(43,33,25,.3);
  padding:.5em 1.6em .5em .2em;font:400 var(--lng-t-body)/1 var(--lng-body);color:var(--lng-tobacco);
  cursor:pointer;transition:border-color .3s ease;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238A6C35' stroke-width='1.4'/></svg>");
  background-repeat:no-repeat;background-position:right .1em center;
}
.lng-sort select:focus{outline:none;border-color:var(--lng-brass)}

/* --- pillole --- */
.lng-active{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.lng-pill{display:inline-flex;align-items:center;gap:.6em;padding:.55em .9em;
  border:1px solid rgba(43,33,25,.22);font-size:var(--lng-t-meta);color:#6C6355;
  transition:all .35s var(--lng-e-out)}
.lng-pill i{font-style:normal;color:var(--lng-brass-deep,#8A6C35)}
.lng-pill:hover{border-color:var(--lng-brass);color:var(--lng-tobacco)}
.lng-pill.is-reset{border-style:dashed;letter-spacing:.14em;text-transform:uppercase;font-size:var(--lng-t-label)}

/* --- griglia --- */
.lng-shop-grid{display:grid;grid-template-columns:repeat(var(--lng-shop-cols,3),minmax(0,1fr));
  gap:26px}
.lng-shop-grid.is-busy{opacity:.4;pointer-events:none;transition:opacity .3s ease}
.lng-shop-empty{display:grid;gap:14px;justify-items:center;text-align:center;padding-block:72px}
.lng-shop-empty h3{font-family:var(--lng-display);font-size:var(--lng-t-h);color:var(--lng-tobacco)}
.lng-shop-empty p{max-width:44ch;color:#6C6355}
.lng-shop-foot{display:flex;justify-content:center;margin-top:44px}

/* --- paginazione --- */
.lng-pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;
  margin-top:48px}
.lng-pager .page-numbers{min-width:44px;height:44px;display:inline-grid;place-items:center;
  padding-inline:.6em;border:1px solid transparent;
  font:400 var(--lng-t-body)/1 var(--lng-display);color:#6C6355;
  transition:all .35s var(--lng-e-out)}
.lng-pager a.page-numbers:hover{border-color:rgba(138,108,53,.45);color:var(--lng-tobacco)}
.lng-pager .page-numbers.current{background:var(--lng-tobacco);color:var(--lng-bone);
  border-color:var(--lng-tobacco)}
.lng-pager .page-numbers.dots{border:0;color:#A79E8D}
.lng-pager .prev,.lng-pager .next{color:var(--lng-brass-deep,#8A6C35)}

@media (max-width:1100px){
  .lng-shop-hero-grid{grid-template-columns:1fr}
  .lng-aside-left .lng-shop-body,.lng-aside-right .lng-shop-body{grid-template-columns:minmax(0,1fr)}
  /* i filtri diventano un pannello a scomparsa */
  .lng-shop-mfilter{display:inline-flex;align-items:center;gap:.6em;justify-self:start;
    padding:.9em 1.4em;border:1px solid rgba(43,33,25,.28);
    font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
    color:var(--lng-tobacco)}
  .lng-shop-mfilter .lng-fcount:not(:empty){display:inline-grid;place-items:center;
    min-width:20px;height:20px;border-radius:10px;background:var(--lng-brass);
    color:var(--lng-ink);font-size:var(--lng-t-label)}
  .lng-shop-aside{position:fixed;inset:0 auto 0 0;z-index:99;width:min(340px,88vw);
    background:var(--lng-bone);overflow-y:auto;
    transform:translateX(-101%);transition:transform .6s var(--lng-e-out);
    box-shadow:0 0 60px rgba(0,0,0,.35)}
  .lng-shop-aside.is-open{transform:none}
  .lng-aside-in{padding:24px}
  .has-sticky-aside .lng-aside-in{position:static}
  .lng-aside-close{display:grid}
}
@media (max-width:620px){
  .lng-shop-hero{padding-block:56px}
  .lng-shop-tools{gap:12px}
  .lng-shop-tools-r{width:100%;justify-content:space-between}
  .lng-density{display:none}
  .lng-shop-grid{--lng-shop-cols:2;gap:12px}
  .lng-rail{--lng-rail-w:150px;--lng-rail-h:104px}
}

/* ------------------------------------------------------------
   Colori dei componenti basati su <a>.
   Raccolti qui perché sono link: senza il reset a specificità
   zero erediterebbero il colore del contenitore.
   ------------------------------------------------------------ */
.lng-hf .lng-btn{color:var(--lng-bone)}
.lng-hf .lng-btn:hover{color:var(--lng-ink)}
.lng-hf .lng-btn--fill{color:var(--lng-ink)}
.lng-hf .lng-btn--dark{color:var(--lng-tobacco)}
.lng-hf .lng-btn--dark:hover{color:var(--lng-ink)}
.lng-hf .lng-chip{color:var(--lng-ash-2)}
.lng-hf .lng-chip:hover{color:var(--lng-ink)}
.lng-hf .lng-fopt{color:#6C6355}
.lng-hf .lng-fopt:hover,.lng-hf .lng-fopt.is-on{color:var(--lng-tobacco)}
.lng-hf .lng-pill{color:#6C6355}
.lng-hf .lng-pill:hover{color:var(--lng-tobacco)}
.lng-hf .lng-freset{color:var(--lng-brass-deep)}
.lng-hf .lng-freset:hover{color:var(--lng-tobacco)}
.lng-hf .lng-rail-card{color:var(--lng-bone)}
.lng-hf .lng-pager .page-numbers{color:#6C6355}
.lng-hf .lng-pager a.page-numbers:hover{color:var(--lng-tobacco)}
.lng-hf .lng-pager .page-numbers.current{color:var(--lng-bone)}
.lng-hf .lng-pager .prev,.lng-hf .lng-pager .next{color:var(--lng-brass-deep)}
.lng-hf .lng-shop-mfilter{color:var(--lng-tobacco)}
.lng-hf .lng-card-name a{color:inherit}

/* ============================================================
   PAGINA PREFERITI
   ============================================================ */
.lng-wishlist-widget{--lng-ink-txt:#2B2119}
.lng-wl-hero{position:relative;background:var(--lng-ink);color:var(--lng-bone);
  padding-block:96px;overflow:hidden}
.lng-wl-year{position:absolute;right:-6vw;bottom:-14%;pointer-events:none;
  font-family:var(--lng-display);font-weight:700;font-size:clamp(9rem,24vw,22rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1.5px rgba(198,165,103,.10);letter-spacing:.02em}
@media (max-width:900px){.lng-wl-year{display:none}}
.lng-wl-hero-in{position:relative;z-index:2}
.lng-wl-hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(24px,5vw,72px);align-items:end}
.lng-wl-title{font-family:var(--lng-display);font-weight:400;line-height:1;
  font-size:clamp(2.4rem,6vw,5rem);letter-spacing:-.02em;text-transform:uppercase;
  margin:.35em 0 0;color:var(--lng-bone)}
.lng-wl-intro{max-width:46ch;color:var(--lng-ash-2);line-height:1.75;font-size:var(--lng-t-lead)}
@media (max-width:1100px){.lng-wl-hero-grid{grid-template-columns:1fr}}

.lng-wl-main{background:var(--lng-bone);color:var(--lng-ink-txt);padding-block:64px}
.lng-wl-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:16px;padding-bottom:18px;margin-bottom:30px;border-bottom:1px solid rgba(43,33,25,.14)}
.lng-wl-tools[hidden]{display:none}
.lng-wl-count{font-size:var(--lng-t-meta);color:#6C6355;letter-spacing:.04em}
.lng-hf .lng-wl-clear{padding-bottom:3px;background:none;border:0;
  border-bottom:1px solid rgba(138,108,53,.45);cursor:pointer;
  font:500 var(--lng-t-label)/1 var(--lng-body);letter-spacing:.2em;text-transform:uppercase;
  color:var(--lng-brass-deep);transition:color .3s ease,border-color .3s ease}
.lng-hf .lng-wl-clear:hover{color:var(--lng-tobacco);border-color:var(--lng-tobacco)}

.lng-wl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}
.lng-wl-grid[hidden]{display:none}
/* Sulla pagina preferiti il cuore è sempre visibile: è il comando per
   togliere l'articolo, non un dettaglio che appare al passaggio. */
.lng-hf .lng-wishlist-widget .lng-fav,
.lng-wishlist-widget .lng-card .lng-fav{opacity:1;transform:none}
.lng-wl-noimg{display:block;width:100%;height:100%;
  background:radial-gradient(120% 90% at 25% 15%,#6A4E31,#4A3524 42%,#2B2119)}

.lng-wl-empty{display:grid;gap:18px;justify-items:center;text-align:center;padding-block:80px}
.lng-wl-empty[hidden]{display:none}
.lng-wl-empty-icon svg{width:40px;height:40px;stroke:var(--lng-brass-deep);stroke-width:1;fill:none}
.lng-wl-empty h2{font-family:var(--lng-display);font-size:clamp(1.5rem,3vw,2.1rem);
  color:var(--lng-ink-txt)}
.lng-wl-empty p{max-width:46ch;color:#6C6355;line-height:1.75}
.lng-wl-noscript{padding-block:60px;text-align:center;color:#6C6355}

@media (max-width:620px){
  .lng-wl-hero{padding-block:56px}
  .lng-wl-main{padding-block:40px}
  .lng-wl-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
