{"id":239,"date":"2026-09-09T08:28:19","date_gmt":"2026-09-09T06:28:19","guid":{"rendered":"https:\/\/www.lasogara.cybeartest.it\/?page_id=239"},"modified":"2026-10-16T17:22:30","modified_gmt":"2026-10-16T15:22:30","slug":"shop","status":"publish","type":"page","link":"https:\/\/www.lasogara.it\/en\/shop\/","title":{"rendered":"Shop"},"content":{"rendered":"\n<style id=\"ls-core\">\/* ============================================================\n   LA SOGARA \u2014 SISTEMA CONDIVISO  (ls-core)\n   Valori estratti dai mockup di Claude Design, non stimati.\n   Nessun opacity:0 qui dentro: la comparsa la governa ls-app.js,\n   cos\u00ec se il JavaScript non arriva il sito resta leggibile.\n   ============================================================ *\/\n\n:root{\n  --ls-ink:#34290E;        \/* testo principale, fondi scuri  \u2014 12,46:1 su crema *\/\n  --ls-brown:#57441A;      \/* testo secondario, link         \u2014  8,15:1 su crema *\/\n  --ls-rope:#AA8457;       \/* bordi e filetti. MAI per il testo: 2,98:1 su crema *\/\n  --ls-beige:#CFBB7C;      \/* accento, pulsanti su fondo scuro \u2014 7,52:1 su ink *\/\n  --ls-cream:#F4EFE4;      \/* fondo pagina, testo su fondo scuro *\/\n  --ls-cream-soft:#E4DCC9; \/* testo secondario su fondo scuro \u2014 10,47:1 su ink *\/\n\n  --ls-serif:'EB Garamond',Garamond,'Times New Roman',serif;\n  --ls-sans:'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif;\n\n  --ls-max:1440px;\n  --ls-pad:clamp(20px,4vw,56px);\n  --ls-section:clamp(88px,12vh,152px);\n  --ls-radius-img:18px;\n  --ls-radius-btn:10px;\n  --ls-ease:cubic-bezier(.2,.75,.2,1);\n\n  --ls-grana:url(\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/grana-texture.webp\");\n}\n\n\/* ---------- azzeramento mirato di Hello Elementor ----------\n   Il reset.css del tema colora link e pulsanti di #c36 e usa la stessa\n   dichiarazione per :hover e :focus, per cui su mobile il riquadro magenta\n   resta acceso dopo il tap. Qui si neutralizza in tutti gli stati.\n   a:visited ha specificit\u00e0 maggiore di a: va nominato esplicitamente. *\/\n\/* --- Regola strutturale sui link, dopo tre incidenti dello stesso tipo ---\n   `.ls a` vale (0,1,1) e batte qualunque classe di componente scritta come `.ls-btn--pieno`\n   o `.ls-head__logo` (0,1,0). \u00c8 gi\u00e0 costata tre difetti: pulsanti svuotati, link del footer a\n   1,53:1 e logo dell'header marrone invece che crema. La regola generica \u00e8 quindi avvolta in\n   :where(), che azzera il suo contributo di specificit\u00e0 e la porta a (0,1,0): qualunque\n   componente dichiarato pi\u00f9 in basso la batte, e non serve pi\u00f9 ricordarsi dei prefissi.\n   Fa eccezione la sola sottolineatura su :visited, che deve valere (0,1,1) per battere la\n   dichiarazione `a,a:visited{text-decoration:underline}` del tema. *\/\n.ls a:visited{text-decoration:none}\n.ls :where(a,a:visited){color:var(--ls-brown);text-decoration:none}\n.ls :where(a:hover,a:focus){color:var(--ls-ink)}\n.ls button,.ls [type=button],.ls [type=submit]{\n  background-color:transparent;border:0;border-radius:0;color:inherit;\n  font-family:inherit;padding:0;transition:none;-webkit-appearance:none;appearance:none}\n.ls button:hover,.ls button:focus,.ls [type=submit]:hover,.ls [type=submit]:focus{\n  background-color:transparent;color:inherit}\n.ls :focus-visible{outline:2px solid var(--ls-beige);outline-offset:3px;box-shadow:none}\n\n\/* ---------- base ---------- *\/\n.ls,.ls *{box-sizing:border-box}\n.ls{\n  background:var(--ls-cream);color:var(--ls-ink);\n  font-family:var(--ls-sans);font-size:17px;line-height:1.75;\n  -webkit-font-smoothing:antialiased}\n.ls img{display:block;max-width:100%}\n.ls p{text-wrap:pretty}\n.ls ::selection{background:var(--ls-beige);color:var(--ls-ink)}\nhtml:has(.ls){scroll-behavior:smooth;-webkit-text-size-adjust:100%}\nbody:has(.ls){margin:0;background:var(--ls-cream)}\n\n.ls-wrap{max-width:var(--ls-max);margin:0 auto;padding-inline:var(--ls-pad)}\n.ls-section{padding-block:var(--ls-section)}\n.ls-dark{background:var(--ls-ink) var(--ls-grana) repeat;background-size:300px;color:var(--ls-cream-soft)}\n.ls-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n.ls-sentinel{position:absolute;top:0;left:0;width:1px;height:64px;pointer-events:none}\n\n\/* ---------- tipografia ---------- *\/\n.ls h1,.ls h2,.ls h3{font-family:var(--ls-serif);font-weight:400;margin:0;text-wrap:balance}\n.ls h1{font-style:italic;font-size:clamp(46px,7.6vw,108px);line-height:.96;letter-spacing:-.015em}\n.ls h2{font-size:clamp(34px,4.6vw,62px);line-height:1.04;letter-spacing:-.01em}\n.ls-lead{font-family:var(--ls-serif);font-style:italic;font-size:clamp(20px,2vw,27px);line-height:1.4;color:var(--ls-brown);margin:28px 0 0}\n.ls-dark .ls-lead{color:var(--ls-beige)}\n.ls-occhiello{font-size:12px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;margin:0}\n.ls-rule{width:64px;height:1px;background:var(--ls-rope);margin:34px 0;transform-origin:left;\n  animation:lsGrow 1.4s var(--ls-ease) .5s both}\n\n\/* ---------- pulsanti: per ogni :hover esiste il :focus con lo sfondo DI RIPOSO ----------\n   Prefisso `.ls ` obbligatorio: senza, la regola generica sui link vince e svuota il pulsante. *\/\n.ls .ls-btn{display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:.16em;\n  text-transform:uppercase;padding:17px 34px;border-radius:var(--ls-radius-btn);\n  min-height:44px;cursor:pointer;\n  transition:background .25s ease,color .25s ease,transform .4s var(--ls-ease),box-shadow .4s ease}\n.ls .ls-btn--pieno,.ls .ls-btn--pieno:visited,.ls .ls-btn--pieno:focus{\n  background:var(--ls-beige);color:var(--ls-ink)}\n.ls .ls-btn--pieno:hover{background:var(--ls-cream-soft);color:var(--ls-ink);\n  transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.3)}\n.ls .ls-btn--contorno,.ls .ls-btn--contorno:visited,.ls .ls-btn--contorno:focus{\n  background:transparent;color:inherit;border:1px solid rgba(244,239,228,.55);padding:9px 20px}\n.ls .ls-btn--contorno:hover{background:rgba(244,239,228,.12);color:inherit}\n.ls .ls-btn--testo,.ls .ls-btn--testo:visited,.ls .ls-btn--testo:focus{\n  display:inline-flex;align-items:center;gap:14px;background:transparent;color:var(--ls-beige);\n  font-size:11.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;padding:10px 0;\n  transition:color .5s ease}\n.ls .ls-btn--testo:hover{color:var(--ls-cream)}\n\n\/* ---------- marchio ---------- *\/\n.ls-logo{display:block;background-color:currentColor;aspect-ratio:198.3\/225.36;\n  -webkit-mask:var(--ls-logo-src) no-repeat center\/contain;mask:var(--ls-logo-src) no-repeat center\/contain}\n.ls-albero{--ls-albero-src:url(\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/ls-albero-960.webp\");display:block;background-color:currentColor;\n  aspect-ratio:198.3\/148;pointer-events:none;\n  -webkit-mask:var(--ls-albero-src) no-repeat center\/contain;mask:var(--ls-albero-src) no-repeat center\/contain}\n\n\/* ---------- header ---------- *\/\n.ls-head{position:fixed;top:0;left:0;right:0;z-index:60;color:var(--ls-cream);\n  background:transparent;border-bottom:1px solid transparent;\n  transition:background .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease}\n.ls-head__inner{max-width:var(--ls-max);margin:0 auto;padding:16px var(--ls-pad);\n  display:flex;align-items:center;justify-content:space-between;gap:24px;transition:padding .4s ease}\n.ls-head.is-solid{background:var(--ls-cream);color:var(--ls-ink);\n  border-bottom-color:rgba(52,41,14,.14);box-shadow:0 2px 30px rgba(52,41,14,.08)}\n.ls-head.is-solid .ls-head__inner{padding-block:9px}\n.ls-head__logo{color:inherit;display:block;width:clamp(64px,6vw,82px);flex:0 0 auto}\n.ls-nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,36px)}\n.ls-nav a,.ls-nav a:visited{color:inherit;font-size:12.5px;font-weight:500;letter-spacing:.16em;\n  text-transform:uppercase;padding-bottom:4px;\n  background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;\n  background-position:0 100%;background-size:0% 1px;\n  transition:background-size .45s var(--ls-ease)}\n.ls-nav a:hover,.ls-nav a:focus,.ls-nav a[aria-current=page]{color:inherit;background-size:100% 1px}\n.ls-head.is-solid .ls .ls-btn--contorno,.ls-head.is-solid .ls-btn--contorno{border-color:rgba(52,41,14,.4)}\n.ls-head.is-solid .ls-btn--contorno:hover{background:rgba(52,41,14,.08)}\n.ls-burger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;\n  align-items:center;justify-content:center;color:inherit;cursor:pointer}\n.ls-burger span{display:block;width:22px;height:1.5px;background:currentColor;transition:none}\n.ls-panel{flex-direction:column;gap:4px;padding:8px var(--ls-pad) 26px;\n  background:var(--ls-cream);border-top:1px solid rgba(52,41,14,.12)}\n.ls-panel a,.ls-panel a:visited{color:var(--ls-ink);font-size:15px;letter-spacing:.12em;\n  text-transform:uppercase;padding:12px 0;border-bottom:1px solid rgba(52,41,14,.1)}\n.ls-panel a:last-child{border-bottom:0}\n.ls-head.is-open .ls-panel{display:flex}\n.ls-panel[hidden]{display:none}\n\n\/* ---------- footer ---------- *\/\n.ls-foot{position:relative;overflow:hidden;\n  padding:clamp(64px,9vh,104px) var(--ls-pad) 40px}\n.ls-foot__albero{position:absolute;right:-40px;bottom:0;width:min(34vw,380px);\n  color:var(--ls-cream);opacity:.07;transform-origin:50% 100%}\n.ls-foot__cols{display:flex;flex-wrap:wrap;gap:clamp(40px,6vw,110px);align-items:flex-start}\n.ls-foot__nav{flex:1 1 200px;display:flex;flex-direction:column;gap:12px}\n.ls-foot a,.ls-foot a:visited{color:var(--ls-cream-soft);font-size:15px;padding-bottom:4px;\n  background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;\n  background-position:0 100%;background-size:0% 1px;\n  transition:background-size .45s var(--ls-ease),color .3s ease}\n.ls-foot a:hover,.ls-foot a:focus{color:#fff;background-size:100% 1px}\n.ls-foot__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;\n  margin-top:clamp(48px,7vh,80px);padding-top:24px;border-top:1px solid rgba(207,187,124,.24)}\n\n\/* ---------- griglie e componenti ---------- *\/\n[data-bottle-grid]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}\n[data-card-grid]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}\n[data-triptych]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}\n[data-carousel-track]{-ms-overflow-style:none;scrollbar-width:none;cursor:grab}\n[data-carousel-track]::-webkit-scrollbar{display:none}\n[data-carousel-track].is-dragging{cursor:grabbing}\n[data-cslide]{flex:0 0 calc((100% - 60px) \/ 4)}\n[data-carousel-prev][disabled],[data-carousel-next][disabled]{opacity:.3;cursor:default}\n\n\/* ---------- animazioni ---------- *\/\n@keyframes lsUp{from{transform:translateY(26px)}to{transform:none}}\n@keyframes lsReveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}\n@keyframes lsKen{from{transform:scale(1.1)}to{transform:scale(1)}}\n@keyframes lsBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}\n@keyframes lsSway{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}\n@keyframes lsGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n[data-bob]{animation:lsBob 2.8s ease-in-out infinite}\n[data-ornament]{animation:lsSway 24s ease-in-out infinite;transform-origin:50% 92%}\n\n\/* ---------- responsive: mobile e desktop rigorosamente separati ---------- *\/\n@media (max-width:1080px){\n  [data-bottle-grid]{grid-template-columns:repeat(3,minmax(0,1fr))}\n  [data-card-grid]{grid-template-columns:repeat(2,minmax(0,1fr))}\n  [data-cslide]{flex:0 0 calc((100% - 40px) \/ 3)}\n}\n@media (max-width:1010px){[data-figcap]{padding-left:var(--ls-pad)}}\n@media (max-width:980px){\n  .ls-nav{display:none}\n  .ls-burger{display:flex}\n}\n@media (min-width:981px){.ls-panel{display:none}}\n@media (max-width:900px){[data-triptych]{grid-template-columns:1fr}}\n@media (max-width:760px){[data-cslide]{flex:0 0 calc((100% - 20px) \/ 2)}}\n@media (max-width:620px){\n  [data-bottle-grid]{grid-template-columns:repeat(2,minmax(0,1fr))}\n  [data-card-grid]{grid-template-columns:1fr}\n}\n@media (max-width:520px){[data-cslide]{flex:0 0 82%}}\n\n@media print{\n  [data-reveal],.ls-rule{opacity:1!important;animation:none!important;transform:none!important}\n}\n@media (prefers-reduced-motion:reduce){\n  html:has(.ls){scroll-behavior:auto}\n  .ls *,.ls *::before,.ls *::after{animation-duration:.001ms!important;transition-duration:.001ms!important}\n}\n\n\/* ---------- hero ---------- *\/\n.ls-hero{position:relative;min-height:min(100vh,1000px);display:flex;align-items:flex-end;overflow:hidden}\n.ls-hero__photo{position:absolute;top:0;left:0;height:100%;width:58%;min-width:58%;max-width:none;\n  object-fit:cover;object-position:50% 22%;transform-origin:0% 26%;\n  animation:lsKen 20s cubic-bezier(.16,.7,.2,1) both;\n  -webkit-mask-image:linear-gradient(270deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 15%,#000 44%);\n  mask-image:linear-gradient(270deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.5) 15%,#000 44%)}\n.ls-hero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(52,41,14,.58) 0%,\n  rgba(52,41,14,.08) 24%,rgba(52,41,14,0) 52%,rgba(52,41,14,.88) 100%)}\n.ls-hero__veil{position:absolute;inset:0;background:linear-gradient(270deg,#34290E 0%,\n  rgba(52,41,14,.97) 24%,rgba(52,41,14,.6) 46%,rgba(52,41,14,.14) 72%,rgba(52,41,14,0) 100%)}\n.ls-hero__orn{position:absolute;right:-3%;bottom:-10%;width:min(40vw,480px);color:var(--ls-cream);opacity:.12}\n.ls-hero__inner{position:relative;width:100%;max-width:var(--ls-max);margin:0 auto;\n  padding:200px var(--ls-pad) clamp(56px,7vh,96px);display:flex;justify-content:flex-end}\n.ls-hero__copy{width:min(100%,640px)}\n.ls-hero__copy>*{animation:lsUp 1s cubic-bezier(.2,.75,.2,1) both}\n.ls-hero__copy>*:nth-child(1){animation-delay:.06s}\n.ls-hero__copy>*:nth-child(2){animation-delay:.2s}\n.ls-hero__copy>*:nth-child(3){animation-delay:.34s}\n.ls-hero__copy>*:nth-child(4){animation-delay:.46s}\n.ls-hero__copy>*:nth-child(5){animation-delay:.56s}\n@media (max-width:760px){\n  .ls-hero__photo{right:0;width:100%;min-width:0;object-position:38% 18%;\n    -webkit-mask-image:none;mask-image:none}\n  .ls-hero__veil{background:linear-gradient(270deg,rgba(52,41,14,.82) 0%,\n    rgba(52,41,14,.5) 60%,rgba(52,41,14,.3) 100%)}\n}\n\n\/* ---------- sezione editoriale (testo + foto, speculare) ---------- *\/\n.ls-edit{display:flex;flex-wrap:wrap;gap:clamp(28px,3vw,44px);align-items:center}\n.ls-edit--rovescia{flex-wrap:wrap-reverse}\n.ls-edit__testo{flex:1 1 440px;min-width:min(100%,380px);display:grid;\n  grid-template-columns:minmax(0,1fr) clamp(96px,26%,260px);column-gap:clamp(16px,2.4vw,40px);\n  align-items:center;\n  padding:0 var(--ls-pad) 0 max(var(--ls-pad),calc((100vw - var(--ls-max)) \/ 2))}\n.ls-edit--rovescia .ls-edit__testo{\n  padding:0 max(var(--ls-pad),calc((100vw - var(--ls-max)) \/ 2)) 0 var(--ls-pad)}\n.ls-edit__foto{flex:1.25 1 520px;min-width:min(100%,300px);margin:0}\n.ls-edit__foto img{width:100%;height:clamp(420px,74vh,780px);object-fit:cover;border-radius:var(--ls-radius-img)}\n.ls-edit--rovescia .ls-edit__foto{flex:1.25 1 540px;min-width:min(100%,300px)}\n.ls-edit--rovescia .ls-edit__foto img{height:clamp(440px,78vh,820px)}\n.ls-filigrana{width:100%;height:auto;opacity:.075;pointer-events:none;color:var(--ls-ink)}\n@media (max-width:860px){.ls-edit__testo{display:block}}\n\n\/* ---------- carosello ---------- *\/\n.ls-carosello{margin:clamp(48px,7vh,88px) 0 0;border-top:1px solid rgba(207,187,124,.28);\n  padding-top:clamp(30px,4.5vh,52px)}\n.ls-carosello__frecce{display:flex;align-items:center;justify-content:flex-end;gap:12px;\n  margin:0 0 clamp(22px,3vh,32px)}\n.ls .ls-freccia{width:52px;height:52px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;\n  border-radius:var(--ls-radius-btn);border:1px solid rgba(207,187,124,.45);background:transparent;\n  color:var(--ls-beige);cursor:pointer;transition:background .6s ease,border-color .6s ease,opacity .5s ease}\n.ls .ls-freccia:focus{background:transparent;border-color:rgba(207,187,124,.45);color:var(--ls-beige)}\n.ls .ls-freccia:hover{background:rgba(207,187,124,.14);border-color:rgba(207,187,124,.8);color:var(--ls-beige)}\n.ls-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;\n  padding:18px 0 10px;margin:-18px 0 0;user-select:none;-webkit-user-select:none}\n.ls-slide{scroll-snap-align:start;position:relative;display:flex;flex-direction:column;align-items:center;\n  justify-content:flex-end;gap:20px;padding:clamp(26px,2.4vw,38px) 18px clamp(24px,2.4vw,32px);\n  border-radius:var(--ls-radius-img);border:1px solid rgba(207,187,124,.24);\n  background:linear-gradient(180deg,rgba(244,239,228,.09),rgba(244,239,228,.025));\n  transition:transform 1s cubic-bezier(.22,.61,.36,1),background .8s ease,border-color .8s ease}\n.ls-slide:hover{transform:translateY(-8px);border-color:rgba(207,187,124,.5);\n  background:linear-gradient(180deg,rgba(244,239,228,.15),rgba(244,239,228,.05))}\n.ls-slide img{height:clamp(250px,33vh,390px);width:auto;object-fit:contain}\n.ls-slide p{margin:0;text-align:center;color:var(--ls-cream);font-size:12.5px;font-weight:500;\n  letter-spacing:.16em;text-transform:uppercase}\n.ls-slide p span{color:var(--ls-beige);letter-spacing:.2em}\n.ls-divisore{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 0 clamp(46px,7vh,76px)}\n.ls-divisore i{height:1px;width:min(170px,20vw);display:block}\n\n\/* ---------- hero di pagina interna (Chi Siamo, Vini, Territorio, Shop, Contatti) ---------- *\/\n.ls-hero--pagina{position:relative;display:flex;align-items:flex-end;overflow:hidden;background:var(--ls-ink)}\n.ls-hero--pagina>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;\n  animation:lsKen 20s cubic-bezier(.16,.7,.2,1) both}\n.ls-hero--pagina .ls-hero__shade{background:linear-gradient(180deg,rgba(52,41,14,.78) 0%,\n  rgba(52,41,14,.5) 32%,rgba(52,41,14,.42) 58%,rgba(52,41,14,.9) 100%)}\n.ls-hero--pagina .ls-hero__veil{background:linear-gradient(90deg,rgba(52,41,14,.6) 0%,\n  rgba(52,41,14,.22) 52%,rgba(52,41,14,0) 74%)}\n.ls-hero--pagina .ls-hero__inner{justify-content:flex-start;padding:180px var(--ls-pad) clamp(56px,7vh,88px)}\n.ls-hero--pagina .ls-hero__copy{width:100%}\n.ls-occhiello--riga{display:flex;align-items:center;gap:14px;color:var(--ls-cream);margin:0 0 22px}\n.ls-occhiello--riga svg{width:20px;height:20px;flex:0 0 auto}\n\n\/* ---------- pulsante scuro (Territorio, invio del modulo) ---------- *\/\n.ls .ls-btn--scuro,.ls .ls-btn--scuro:visited,.ls .ls-btn--scuro:focus{\n  background:var(--ls-brown);color:var(--ls-cream)}\n.ls .ls-btn--scuro:hover{background:var(--ls-ink);color:var(--ls-cream);\n  transform:translateY(-3px);box-shadow:0 14px 30px rgba(52,41,14,.26)}\n\n\/* ---------- trittico Chi Siamo ---------- *\/\n.ls-tris{gap:clamp(16px,1.8vw,24px);margin:clamp(40px,6vh,66px) 0 0;text-align:left}\n.ls-tris>div{display:flex;flex-direction:column;gap:clamp(20px,2.2vw,30px);\n  padding:clamp(30px,3vw,44px) clamp(26px,2.6vw,38px) clamp(34px,3.4vw,48px);\n  border-radius:var(--ls-radius-img);border:1px solid rgba(207,187,124,.24);\n  background:linear-gradient(180deg,rgba(244,239,228,.09),rgba(244,239,228,.025));\n  transition:transform 1s cubic-bezier(.22,.61,.36,1),background .8s ease,border-color .8s ease}\n.ls-tris>div:hover{transform:translateY(-8px);border-color:rgba(207,187,124,.5);\n  background:linear-gradient(180deg,rgba(244,239,228,.15),rgba(244,239,228,.05))}\n.ls-tris svg{width:34px;height:auto;opacity:.55;color:var(--ls-beige)}\n.ls-tris p{margin:0;font-family:var(--ls-serif);font-style:italic;\n  font-size:clamp(24px,2.3vw,34px);line-height:1.24;color:var(--ls-beige);text-wrap:pretty}\n\n\/* ---------- chip di filtro ---------- *\/\n.ls-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:clamp(44px,6vh,72px) 0 0}\n.ls .ls-chip{background:transparent;color:var(--ls-brown);border:1px solid rgba(170,132,87,.55);\n  padding:11px 24px;border-radius:var(--ls-radius-btn);font-family:inherit;font-size:12px;\n  font-weight:500;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;min-height:44px;\n  transition:background .25s ease,color .25s ease,transform .35s var(--ls-ease)}\n.ls .ls-chip:focus{background:transparent;color:var(--ls-brown);border-color:rgba(170,132,87,.55)}\n.ls .ls-chip:hover{background:transparent;color:var(--ls-brown);transform:translateY(-2px)}\n.ls .ls-chip.is-active,.ls .ls-chip.is-active:focus,.ls .ls-chip.is-active:hover{\n  background:var(--ls-brown);color:var(--ls-cream);border-color:var(--ls-brown)}\n\n\/* ---------- scheda vino ---------- *\/\n.ls-card{display:flex;flex-direction:column;border:1px solid rgba(170,132,87,.4);\n  padding:clamp(26px,3vw,40px);\n  transition:border-color .8s ease,transform .95s cubic-bezier(.22,.61,.36,1),box-shadow .95s ease}\n.ls-card:hover{border-color:rgba(87,68,26,.8);transform:translateY(-4px);\n  box-shadow:0 16px 38px rgba(52,41,14,.09)}\n.ls-card>img{height:clamp(230px,30vh,320px);width:auto;margin:0 auto 28px;object-fit:contain}\n.ls-card h2{margin:0 0 14px;font-size:clamp(28px,2.6vw,36px);line-height:1.1}\n.ls-card__sub{margin:0 0 18px;font-family:var(--ls-serif);font-style:italic;font-size:20px;\n  line-height:1.4;color:var(--ls-brown)}\n.ls-card__desc{margin:0 0 24px;font-size:16px;color:var(--ls-brown)}\n.ls-card__abb{margin:auto 0 0;padding-top:22px;border-top:1px solid rgba(170,132,87,.35);\n  font-size:15px;color:var(--ls-brown)}\n.ls-card__abb span{font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}\n.ls .ls-scheda,.ls .ls-scheda:visited,.ls .ls-scheda:focus{display:inline-flex;align-items:center;\n  gap:10px;align-self:flex-start;margin-top:24px;color:var(--ls-brown);font-size:12px;font-weight:600;\n  letter-spacing:.16em;text-transform:uppercase;padding:13px 22px;min-height:44px;\n  border:1px solid rgba(170,132,87,.6);border-radius:var(--ls-radius-btn);background:transparent;\n  transition:background .6s ease,border-color .6s ease,color .6s ease}\n.ls .ls-scheda:hover{background:var(--ls-brown);border-color:var(--ls-brown);color:var(--ls-cream)}\n\n\/* ---------- griglia prodotti Shop ---------- *\/\n.ls-prodotti{gap:clamp(20px,2.6vw,36px);border-top:1px solid rgba(170,132,87,.4);\n  padding-top:clamp(40px,6vh,64px)}\n.ls-prodotto{display:flex;flex-direction:column;align-items:center;gap:18px;\n  transition:transform 1s cubic-bezier(.22,.61,.36,1)}\n.ls-prodotto:hover{transform:translateY(-8px)}\n.ls-prodotto img{height:clamp(220px,28vh,320px);width:auto;object-fit:contain}\n.ls-prodotto p{margin:0;text-align:center;color:var(--ls-ink);font-family:var(--ls-serif);\n  font-size:22px;line-height:1.25}\n.ls-prodotto p span{font-family:var(--ls-sans);font-size:11.5px;font-weight:500;\n  letter-spacing:.22em;color:var(--ls-brown)}\n\n\/* ---------- modulo di contatto ---------- *\/\n.ls-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}\n.ls-form label{display:flex;flex-direction:column;gap:8px}\n.ls-form label>span{color:var(--ls-brown);font-size:11.5px;font-weight:500;\n  letter-spacing:.2em;text-transform:uppercase}\n.ls-form input,.ls-form textarea{background:transparent;font-family:inherit;font-size:16px;\n  color:var(--ls-ink);border:0;border-bottom:1px solid rgba(170,132,87,.6);padding:12px 0;\n  transition:border-color .25s ease}\n.ls-form textarea{border:1px solid rgba(170,132,87,.6);border-radius:12px;padding:14px;\n  resize:vertical;line-height:1.6}\n.ls-form input:focus,.ls-form textarea:focus{outline:none;border-color:var(--ls-brown)}\n.ls-form ::placeholder{color:var(--ls-brown);opacity:1}\n.ls-form__lungo{grid-column:1 \/ -1}\n.ls-recapiti{flex:1 1 300px;min-width:min(100%,280px);display:flex;flex-direction:column;\n  gap:34px;padding-top:4px}\n.ls-recapiti>div{padding-bottom:30px;border-bottom:1px solid rgba(170,132,87,.4)}\n.ls-recapiti>div:last-child{padding-bottom:0;border-bottom:0}\n.ls-recapiti p:first-child{margin:0 0 10px;color:var(--ls-brown);font-size:11.5px;font-weight:500;\n  letter-spacing:.22em;text-transform:uppercase}\n.ls-recapiti p:last-child{margin:0;color:var(--ls-brown);line-height:1.8}\n\n\/* ============================================================\n   Correzioni del 9 settembre, tutte nate da difetti misurati\n   ============================================================ *\/\n\n\/* 1. FILTRI DEI VINI \u2014 l'attributo hidden non aveva alcun effetto perch\u00e9\n   `.ls-card{display:flex}` lo scavalcava: una classe batte il foglio dello\n   user agent. Il collaudo automatico non se n'era accorto perch\u00e9 controllava\n   la presenza dell'attributo invece della visibilit\u00e0 reale. *\/\n.ls [hidden]{display:none!important}\n\n\/* 2. LOGO DELL'HEADER IN HOVER \u2014 il tema dichiara `a:active,a:hover{color:#336}`,\n   un blu scuro, con specificit\u00e0 (0,1,1): batteva la regola generica avvolta in\n   :where() che vale (0,1,0), e il marchio virava al blu. Due correzioni:\n   la regola generica deve battere il tema, e il logo ha un suo hover esplicito che\n   invece di cambiare colore si schiarisce.\n   ERRORE CORRETTO IN v1.10: la regola era scritta `.ls a:hover`, che non vale (0,1,1)\n   come diceva questo commento ma (0,2,1) \u2014 esattamente come `.ls-foot a:hover` e\n   `.ls-nav a:hover`, scritte pi\u00f9 in alto, che quindi perdevano per ordine. Risultato\n   misurato sulla pagina pubblicata (audit_hover.py): al passaggio del mouse i sei link del\n   footer diventavano color inchiostro sul fondo inchiostro, 1:1, e il testo spariva; le voci\n   del menu in cima alla pagina, sopra l'hero, passavano da crema a inchiostro \u2014 scure sulla\n   foto, e sulla Home, dove sotto il menu c'\u00e8 la parte scura dell'hero, da 12,46:1 a 1:1.\n   Il collaudo misurava solo gli stati a riposo e non se n'era accorto. Con `a` dentro\n   :where() la regola vale (0,2,0): batte ancora il tema (0,1,1) e perde contro qualunque\n   componente (0,2,1) o superiore. *\/\n.ls :where(a):hover,.ls :where(a):focus{color:var(--ls-ink)}\n.ls-head__logo{transition:opacity .3s ease}\n.ls .ls-head__logo:hover,.ls .ls-head__logo:focus{color:inherit;opacity:.72}\n\n\/* 3. SELETTORE DI LINGUA \u2014 predisposto, non ancora collegato: l'inglese \u00e8 un\n   \u00abspan\u00bb e non un link, cos\u00ec non produce un collegamento rotto prima di WPML. *\/\n.ls-lang{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;\n  letter-spacing:.12em;color:inherit}\n.ls-lang i{width:1px;height:12px;background:currentColor;opacity:.4;display:block}\n.ls .ls-lang a,.ls .ls-lang a:visited,.ls .ls-lang span{color:inherit;padding:6px 2px;\n  background-image:none;transition:opacity .3s ease}\n.ls-lang [aria-current=true]{font-weight:600}\n.ls-lang [data-inattiva]{opacity:.45;cursor:default}\n.ls .ls-lang a:hover{color:inherit;opacity:.72}\n@media (max-width:980px){.ls-head__inner .ls-lang{display:none}}\n.ls-panel .ls-lang{margin-top:16px;padding-top:16px;\n  border-top:1px solid rgba(52,41,14,.1);color:var(--ls-ink)}\n\n\/* 4. MODULO CONTACT FORM 7 \u2014 CF7 avvolge ogni campo in .wpcf7-form-control-wrap,\n   quindi le regole del modulo vanno estese a quel contenitore. *\/\n.ls .wpcf7-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px}\n.ls .wpcf7-form p{margin:0;display:contents}\n.ls .wpcf7-form-control-wrap{display:block}\n.ls .wpcf7 input[type=text],.ls .wpcf7 input[type=email],.ls .wpcf7 input[type=tel],\n.ls .wpcf7 textarea{width:100%;background:transparent;font-family:inherit;font-size:16px;\n  color:var(--ls-ink);border:0;border-bottom:1px solid rgba(170,132,87,.6);padding:12px 0;\n  transition:border-color .25s ease}\n.ls .wpcf7 textarea{border:1px solid rgba(170,132,87,.6);border-radius:12px;padding:14px;\n  resize:vertical;line-height:1.6}\n.ls .wpcf7 input:focus,.ls .wpcf7 textarea:focus{outline:none;border-color:var(--ls-brown)}\n.ls-privacy{font-size:14px;line-height:1.75;color:var(--ls-brown)}\n.ls .ls-privacy a{text-decoration:underline}\n.ls-form__invio{display:flex;flex-wrap:wrap;align-items:center;gap:24px}\n.ls .wpcf7 .wpcf7-response-output{grid-column:1 \/ -1;margin:8px 0 0;padding:14px 18px;\n  border:1px solid rgba(170,132,87,.6);border-radius:12px;font-size:15px;color:var(--ls-brown)}\n.ls .wpcf7 .wpcf7-not-valid-tip{color:#8a2b1f;font-size:13px;margin-top:6px}\n.ls .wpcf7 .wpcf7-spinner{margin:0 0 0 12px}\n\n\/* 4-bis. Il pulsante di invio e la disposizione del modulo devono reggere anche con\n   la definizione predefinita di CF7, che non porta le nostre classi: si aggancia quindi\n   al tipo del controllo e alla struttura in \u00abp\u00bb generata dal plugin.\n\n   CORREZIONE (v1.4). Questa riga metteva il paragrafo in colonna, ed era sbagliata.\n   Contact Form 7 applica `wpautop` alla definizione del modulo: le \u00ablabel\u00bb, essendo\n   elementi in linea su righe consecutive, finiscono TUTTE dentro un unico \u00abp\u00bb\n   separate da \u00abbr\u00bb. Quel paragrafo diventa l'unico figlio della griglia, e metterlo\n   in colonna impilava i quattro campi corti a tutta larghezza invece di affiancarli\n   a due a due come nei mockup \u2014 la griglia era corretta (342,4 + 342,4 px misurati),\n   solo che non aveva niente da disporre. Rendendo il paragrafo trasparente alla\n   griglia, le label tornano a esserne figlie dirette e occupano le due colonne.\n   I \u00abbr\u00bb inseriti da `wpautop` diventerebbero a loro volta celle vuote: si tolgono\n   dal flusso. Vale per qualunque modulo CF7, anche con la definizione predefinita. *\/\n.ls .wpcf7-form>p{margin:0;display:contents}\n.ls .wpcf7-form>p>br{display:none}\n.ls .wpcf7-form label{display:flex;flex-direction:column;gap:8px;\n  color:var(--ls-brown);font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}\n.ls .wpcf7-form label br{display:none}\n.ls .wpcf7-form-control-wrap{display:block;text-transform:none;letter-spacing:normal}\n.ls .wpcf7-form>p:has(textarea),.ls .wpcf7-form>p:has([type=submit]),\n.ls .wpcf7-form .ls-form__lungo,.ls .wpcf7-form .ls-privacy,\n.ls .wpcf7-response-output{grid-column:1 \/ -1}\n.ls .wpcf7 [type=submit]{display:inline-block;align-self:flex-start;\n  background:var(--ls-brown);color:var(--ls-cream);border:0;\n  font-family:var(--ls-sans);font-size:12.5px;font-weight:600;letter-spacing:.16em;\n  text-transform:uppercase;padding:18px 36px;border-radius:var(--ls-radius-btn);\n  min-height:44px;cursor:pointer;-webkit-appearance:none;appearance:none;\n  transition:background .25s ease,transform .4s var(--ls-ease),box-shadow .4s ease}\n.ls .wpcf7 [type=submit]:focus{background:var(--ls-brown);color:var(--ls-cream)}\n.ls .wpcf7 [type=submit]:hover{background:var(--ls-ink);color:var(--ls-cream);\n  transform:translateY(-3px);box-shadow:0 14px 30px rgba(52,41,14,.26)}\n\n\/* 4-ter. CONSENSO PRIVACY \u2014 quinta manifestazione della trappola di specificit\u00e0.\n   La regola generica `.ls .wpcf7-form label` (0,2,1) del blocco 4-bis \u00e8 scritta per\n   le ETICHETTE DEI CAMPI \u2014 maiuscoletto spaziato da 11,5 px, in colonna sopra\n   l'input \u2014 e Contact Form 7 avvolge nella stessa `\u00ablabel\u00bb` anche la casella del\n   consenso. Risultato: la frase dell'informativa usciva tutta maiuscola, spaziata,\n   con l'interlinea pari al corpo (righe attaccate) e la casella sopra il testo\n   invece che accanto. `.ls-privacy` (0,1,0) non poteva vincere.\n   Qui la riga del consenso \u00e8 ridefinita per quello che \u00e8 \u2014 una frase da leggere \u2014\n   con specificit\u00e0 (0,3,1), superiore alla generica, senza `!important` e senza\n   toccare la regola delle etichette dei campi. Le propriet\u00e0 del testo sono\n   riscritte anche sullo \u00abspan\u00bb interno, perch\u00e9 `.ls-form label>span` lo colpisce\n   direttamente e l'ereditariet\u00e0 da sola non basterebbe. *\/\n.ls .ls-privacy .wpcf7-list-item{margin:0;display:block}\n.ls .ls-privacy .wpcf7-list-item label{display:flex;flex-direction:row;align-items:flex-start;\n  gap:12px;cursor:pointer;font-family:var(--ls-sans);font-size:14px;font-weight:400;\n  line-height:1.75;letter-spacing:normal;text-transform:none;color:var(--ls-brown)}\n\/* 2,25 px = (14 \u00d7 1,75 \u2212 20) \/ 2: centra la casella sulla PRIMA riga di testo,\n   non sull'intero blocco, cos\u00ec l'allineamento regge anche quando la frase va a capo. *\/\n.ls .ls-privacy .wpcf7-list-item input[type=checkbox]{width:20px;height:20px;flex:0 0 auto;\n  margin:2.25px 0 0;accent-color:var(--ls-brown)}\n.ls .ls-privacy .wpcf7-list-item-label{flex:1 1 auto;max-width:62ch;\n  font-family:var(--ls-sans);font-size:14px;font-weight:400;line-height:1.75;\n  letter-spacing:normal;text-transform:none;color:var(--ls-brown)}\n\n\/* 5. STACCO FRA CALL TO ACTION E FOOTER \u2014 quando la sezione finale \u00e8 scura\n   (Vini, Shop, Chi Siamo) i due blocchi si saldano in un'unica fascia marrone.\n   Un filetto alla larghezza del contenuto, dello stesso valore gi\u00e0 usato sopra\n   il copyright, li separa senza introdurre un elemento nuovo nel sistema. *\/\n.ls-foot{padding-top:0}\n.ls-foot__linea{height:1px;background:rgba(207,187,124,.28);\n  margin:0 0 clamp(56px,8vh,96px)}\n\n\/* 6. COLONNA DEI RECAPITI APPICCICATA \u2014 sulla pagina Contatti il modulo \u00e8 alto\n   733 px e i recapiti 377: scorrendo per compilare, i riferimenti sparivano.\n   Restano ora visibili accanto al modulo, con un offset che tiene conto\n   dell'header fisso. L'altezza dell'header \u00e8 ricavata dalla stessa formula che\n   la determina \u2014 larghezza del logo per il suo rapporto, pi\u00f9 il padding in stato\n   solido \u2014 invece di essere un numero copiato a mano che poi va fuori sincrono. *\/\n:root{--ls-head-h:calc(clamp(64px,6vw,82px) * 1.1365 + 18px)}\n@media (min-width:1000px){\n  .ls-recapiti{position:sticky;top:calc(var(--ls-head-h) + 28px);align-self:flex-start}\n}\n\n\/* 7. FILIGRANA DI FOGLIE (v1.8) \u2014 dodici foglie dell'albero. Quando la filigrana entra nello\n   schermo piovono TUTTE dall'alto, ciascuna dalla stessa altezza sopra il proprio posto, con la\n   stessa durata e lo stesso andamento, in un ordine sparso a intervalli regolari di 0,14 s; poi\n   ondeggiano tutte con lo stesso ritmo e la fase sfalsata, come mosse dalla stessa brezza.\n   Tre livelli per foglia: la posizione finale (attributo, mai animato), la caduta verticale\n   (.ls-foglia) e l'oscillazione laterale che si smorza fino a fermarsi (.ls-foglia__oscilla).\n   Separarle serve a due cose: la caduta resta verticale vera qualunque sia la rotazione della\n   foglia, e la decelerazione finale e il pendolo non si disturbano a vicenda.\n   Gli stati li mette il JavaScript (is-attesa, is-pioggia): senza script le foglie sono ferme e\n   visibili al loro posto, mai nascoste. Con \u00abriduci movimento\u00bb niente pioggia e niente brezza. *\/\n.ls-filigrana-foglie{display:block;overflow:visible}\n.ls-foglia,.ls-foglia__oscilla{transform-box:fill-box;transform-origin:50% 50%}\n.ls-filigrana-foglie.is-attesa .ls-foglia{opacity:0}\n.ls-filigrana-foglie.is-pioggia .ls-foglia{\n  animation:lsPioggia 3.4s cubic-bezier(.22,.55,.28,1) both;\n  animation-delay:calc(var(--i) * .14s)}\n.ls-filigrana-foglie.is-pioggia .ls-foglia__oscilla{\n  animation:lsOscilla 3.4s ease-in-out both,lsBrezza 6.4s linear infinite;\n  animation-delay:calc(var(--i) * .14s),calc(var(--i) * .14s + 3.4s)}\n@keyframes lsPioggia{\n  0%{opacity:0;transform:translateY(-72px)}\n  14%{opacity:1}\n  100%{opacity:1;transform:none}}\n@keyframes lsOscilla{\n  0%{transform:translateX(-5px) rotate(-26deg)}\n  25%{transform:translateX(5px) rotate(19deg)}\n  50%{transform:translateX(-3.5px) rotate(-12deg)}\n  75%{transform:translateX(1.5px) rotate(5deg)}\n  100%{transform:none}}\n\/* brezza: una sinusoide di \u00b15 gradi spezzata in otto tratti lineari, cos\u00ec non ci sono soste *\/\n@keyframes lsBrezza{\n  0%{transform:rotate(0)}12.5%{transform:rotate(3.5deg)}25%{transform:rotate(5deg)}\n  37.5%{transform:rotate(3.5deg)}50%{transform:rotate(0)}62.5%{transform:rotate(-3.5deg)}\n  75%{transform:rotate(-5deg)}87.5%{transform:rotate(-3.5deg)}100%{transform:rotate(0)}}\n\/* sotto gli 860 px la colonna del testo diventa un blocco unico e la filigrana finirebbe sotto\n   il testo, allungando la pagina: resta nascosta. La regola sta QUI, dopo il componente e con\n   specificit\u00e0 (0,2,0) \u2014 scritta prima, nel blocco responsive, perdeva (errore di v1.6). *\/\n@media (max-width:860px){.ls .ls-filigrana-foglie{display:none}}\n@media (prefers-reduced-motion:reduce){\n  .ls .ls-foglia,.ls .ls-foglia__oscilla{animation:none!important;opacity:1}}\n\n\/* 8. LEGGIBILIT\u00c0 DEI TESTI SULLE FOTO (v1.9) \u2014 con le foto nuove, pi\u00f9 luminose in alcuni punti\n   (etichette bianche, grappoli al sole), i testi piccoli degli hero delle pagine interne\n   scendevano sotto 4,5:1 nel caso peggiore, misurato sui pixel reali dietro le lettere.\n   Un alone scuro e morbido attorno alle lettere alza il contrasto locale senza toccare veli,\n   colori o geometria dell'hero. Il pulsante resta pulito: l'alone non va ereditato. *\/\n.ls-hero--pagina .ls-hero__copy p{text-shadow:0 0 14px rgba(52,41,14,.72),0 0 4px rgba(52,41,14,.55)}\n.ls-hero--pagina .ls-btn{text-shadow:none}\n\/* su mobile il blocco di testo \u00e8 alto e copre il soggetto della foto (bottiglie, grappoli):\n   alone un po' pi\u00f9 deciso e la fascia centrale dell'ombreggiatura meno chiara (.42 \u2192 .6) *\/\n@media (max-width:760px){.ls-hero--pagina .ls-hero__shade{background:linear-gradient(180deg,\n  rgba(52,41,14,.78) 0%,rgba(52,41,14,.56) 30%,rgba(52,41,14,.6) 55%,rgba(52,41,14,.9) 100%)}}\n@media (max-width:760px){.ls-hero--pagina .ls-hero__copy p{\n  text-shadow:0 0 18px rgba(52,41,14,.88),0 0 6px rgba(52,41,14,.72)}}\n\n\/* 9. RECAPITI CLICCABILI (v1.10) \u2014 telefono ed email, nel footer e nella colonna dei recapiti\n   di Contatti, sono link tel: e mailto:. A riposo sono identici al testo che li circonda\n   (colore e corpo ereditati, nessuna sottolineatura); al passaggio compare la stessa\n   sottolineatura che si allarga dei link del menu e del footer. Il numero non va mai a capo\n   a met\u00e0. Specificit\u00e0: `.ls .ls-recapito` vale (0,2,0) e batte `.ls-foot a` (0,1,1), che \u00e8\n   scritta per i link di navigazione del footer e imporrebbe 15 px e cream-soft; `:visited`\n   va nominato perch\u00e9 `.ls-foot a:visited` vale (0,2,1). *\/\n.ls .ls-recapito,.ls .ls-recapito:visited{color:inherit;font-size:inherit;white-space:nowrap;\n  padding-bottom:2px;background-image:linear-gradient(currentColor,currentColor);\n  background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;\n  transition:background-size .45s var(--ls-ease),color .3s ease}\n.ls .ls-recapito:hover,.ls .ls-recapito:focus-visible{background-size:100% 1px}\n.ls .ls-foot .ls-recapito:hover,.ls .ls-foot .ls-recapito:focus-visible{color:#fff}\n\/* su fondo crema il contorno di focus beige si vede appena (1,66:1): qui diventa marrone *\/\n.ls .ls-recapiti .ls-recapito:focus-visible{outline-color:var(--ls-brown)}\n\n\/* 10. ALBERO CON IL TRONCO INTERO (v1.13, ingombro deciso in v1.14) \u2014 la maschera ls-albero-960\n   viene dall'SVG del marchio, il cui viewBox 198.3\u00d7148 taglia il tronco a met\u00e0 (il disegno arriva a\n   y 174.7). Dove l'albero arriva al bordo della sezione \u2014 filigrane degli hero, footer \u2014 il bordo\n   nasconde il taglio; dove sta da solo \u2014 i quattro separatori e l'albero sopra \u00abLa Sogara\u00bb in\n   Territorio \u2014 si vedeva il tronco mozzo. L\u00ec si usa la stessa maschera estesa fino alla base del\n   tronco (chioma identica: zero pixel diversi oltre 24\/255 nelle 716 righe comuni).\n   v1.14, scelta di Nunzio fra le due opzioni (soluzione B): il riquadro resta quello di prima,\n   198.3\/148 ereditato da .ls-albero, e con mask-size:contain l'albero intero ci rientra\n   rimpicciolito all'84 % (148\/175.578). Le altezze delle pagine restano quelle della v1.12.\n   La soluzione A, scartata, portava qui aspect-ratio:198.3\/175.578: chioma alla scala di prima\n   e albero pi\u00f9 alto del 18,6 %. *\/\n.ls-albero.ls-albero--intero{--ls-albero-src:url(\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/ls-albero-tronco-960.webp\")}\n\n\/* 11. VINI DEL CAROSELLO CLICCABILI (v1.13) \u2014 ogni bottiglia porta alla sua scheda in I Vini\n   (#valpolicella\u2026). L'ancora non deve finire sotto l'header fisso. Durante il trascinamento con il\n   mouse il cursore resta la mano chiusa anche sopra i link; il clic dopo un trascinamento lo\n   annulla gi\u00e0 ls-app.js (moved > 6 px). *\/\n.ls-card{scroll-margin-top:calc(var(--ls-head-h) + 24px)}\n.ls-track.is-dragging .ls-slide{cursor:grabbing}\n\/* Il link della bottiglia porta il colore del suo testo. Le lettere stanno nel \u00abp\u00bb e nello \u00abspan\u00bb,\n   crema e beige; senza questa riga il link in s\u00e9 avrebbe il marrone generico dei link (inchiostro al\n   passaggio e al focus), che i collaudi misurano contro il fondo scuro: 1,53:1 e 1:1. Sullo schermo\n   non cambia nulla, perch\u00e9 nessuna lettera \u00e8 dipinta con quel colore (verificato al pixel a riposo,\n   al passaggio e al focus); la riga rende il componente coerente e i collaudi puliti. *\/\n.ls .ls-slide,.ls .ls-slide:visited,.ls .ls-slide:hover,.ls .ls-slide:focus{color:var(--ls-cream)}\n\n\/* 13. LINK ALLE INFORMATIVE NEL FOOTER (v1.16) \u2014 nella riga in basso, a destra del copyright: stesso\n   corpo e colore della riga (beige su inchiostro, 7,52:1), al passaggio diventano bianchi con la\n   sottolineatura che si allarga, come gli altri link del footer. *\/\n.ls .ls-foot__legali{margin:0;color:var(--ls-beige);font-size:13px}\n.ls .ls-foot__legali a,.ls .ls-foot__legali a:visited{color:var(--ls-beige);font-size:13px;padding-bottom:2px}\n.ls .ls-foot__legali a:hover,.ls .ls-foot__legali a:focus{color:#fff}\n\n.ls-logo{--ls-logo-src:url(\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/ls-logo-384.webp\")}\n<\/style>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin><link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=EB+Garamond:ital,wght@0,400;1,400&#038;family=Archivo:wght@400;500;600&#038;display=swap\">\n<div class=\"ls\"><header class=\"ls-head\" data-nav><div class=\"ls-head__inner\"><a class=\"ls-head__logo\" href=\"\/en\/\" aria-label=\"La Sogara, back to the home page\"><span class=\"ls-logo\"><\/span><\/a><nav class=\"ls-nav\" aria-label=\"Main navigation\"><a href=\"\/en\/\">Home<\/a><a href=\"https:\/\/www.lasogara.it\/en\/about-us\/\">About Us<\/a><a href=\"https:\/\/www.lasogara.it\/en\/wines\/\">Wines<\/a><a href=\"https:\/\/www.lasogara.it\/en\/terroir-tradition\/\">Terroir<\/a><a href=\"https:\/\/www.lasogara.it\/en\/contacts\/\">Contacts<\/a><a href=\"https:\/\/www.lasogara.it\/en\/shop\/\" class=\"ls-btn ls-btn--contorno\" aria-current=\"page\">Shop<\/a><div class=\"ls-lang\" role=\"group\" aria-label=\"Site language\"><a href=\"\/\" data-lingua=\"\/shop\/\" hreflang=\"it\" lang=\"it\" aria-label=\"Italiano\">IT<\/a><i aria-hidden=\"true\"><\/i><a href=\"https:\/\/www.lasogara.it\/en\/shop\/\" data-lingua=\"\/en\/shop\/\" hreflang=\"en\" lang=\"en\" aria-label=\"English\" aria-current=\"true\">EN<\/a><\/div><\/nav><button class=\"ls-burger\" type=\"button\" data-burger aria-label=\"Open menu\" aria-controls=\"ls-panel\"><span><\/span><span><\/span><\/button><\/div><div class=\"ls-panel\" id=\"ls-panel\" data-panel hidden><a href=\"\/en\/\">Home<\/a><a href=\"https:\/\/www.lasogara.it\/en\/about-us\/\">About Us<\/a><a href=\"https:\/\/www.lasogara.it\/en\/wines\/\">Wines<\/a><a href=\"https:\/\/www.lasogara.it\/en\/terroir-tradition\/\">Terroir<\/a><a href=\"https:\/\/www.lasogara.it\/en\/shop\/\" aria-current=\"page\">Shop<\/a><a href=\"https:\/\/www.lasogara.it\/en\/contacts\/\">Contacts<\/a><div class=\"ls-lang\" role=\"group\" aria-label=\"Site language\"><a href=\"\/\" data-lingua=\"\/shop\/\" hreflang=\"it\" lang=\"it\" aria-label=\"Italiano\">IT<\/a><i aria-hidden=\"true\"><\/i><a href=\"https:\/\/www.lasogara.it\/en\/shop\/\" data-lingua=\"\/en\/shop\/\" hreflang=\"en\" lang=\"en\" aria-label=\"English\" aria-current=\"true\">EN<\/a><\/div><\/div><\/header><main id=\"contenuto\"><section class=\"ls-hero ls-hero--pagina\" data-hero style=\"min-height:min(84vh,820px)\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/sogara-brindisi-shop-1536.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/sogara-brindisi-shop-480.webp 480w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/sogara-brindisi-shop-768.webp 768w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/sogara-brindisi-shop-1200.webp 1200w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/10\/sogara-brindisi-shop-1536.webp 1536w\" sizes=\"100vw\" width=\"1536\" height=\"1024\" alt=\"La Sogara Soave, Valpolicella and Chiaretto di Bardolino on a laden table, with friends raising a toast\" style=\"object-position:50% 30%;transform-origin:50% 30%\" loading=\"eager\" fetchpriority=\"high\"><div class=\"ls-hero__shade\"><\/div><div class=\"ls-hero__veil\"><\/div><span class=\"ls-albero ls-hero__orn\" aria-hidden=\"true\" data-ornament><\/span><div class=\"ls-hero__inner\"><div class=\"ls-hero__copy\"><p class=\"ls-occhiello ls-occhiello--riga\"><svg aria-hidden=\"true\" focusable=\"false\" fill=\"currentColor\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"35.09 31.84 11.84 11.84\"><path d=\"M41.37,41.46C44.36,40.59 47.55,37.54 46.3,34.06C46.11,34.09 45.98,34.17 45.82,34.22C45.75,34.24 45.69,34.26 45.63,34.28C43.58,35.08 43.42,37.78 42.12,39.33C42.12,39.34 42.1,39.35 42.1,39.36C41.99,39.49 41.83,39.59 41.7,39.71C41.59,39.79 41.5,39.88 41.38,39.95C41.65,38.21 40.98,37.2 40.39,36.53C39.52,35.56 36.65,34.08 35.58,34.52C35.55,34.52 35.51,34.53 35.48,34.54C35.48,34.54 35.48,34.54 35.48,34.55C35.48,34.55 35.46,34.55 35.44,34.55C37.36,36.91 38.75,39.8 41.36,41.46\"\/><\/svg><span>La Sogara \u2014 Shop<\/span><\/p><h1 style=\"max-width:16ch;color:var(--ls-cream);font-size:clamp(44px,7vw,100px)\">Bring Home the Authentic Taste of Verona<\/h1><p class=\"ls-lead\" style=\"max-width:44ch;color:var(--ls-cream);font-size:clamp(20px,2.1vw,28px);line-height:1.34\">Discover the complete collection of La Sogara wines and shop online.<\/p><div style=\"display:flex;flex-wrap:wrap;align-items:center;gap:clamp(28px,5vw,72px);margin-top:34px\"><p style=\"margin:0;max-width:48ch;font-size:16.5px;line-height:1.7;color:var(--ls-cream-soft)\">Honest, versatile and authentic wines for every occasion.<\/p><a class=\"ls-btn ls-btn--pieno\" style=\"flex:0 0 auto\" href=\"#\">Shop Online<\/a><\/div><\/div><\/div><\/section><section class=\"ls-section\" style=\"padding-inline:var(--ls-pad)\"><div style=\"max-width:var(--ls-max);margin:0 auto\"><div class=\"ls-divisore\" data-reveal><i style=\"background:linear-gradient(90deg,rgba(170,132,87,0),#AA8457)\"><\/i><span class=\"ls-albero ls-albero--intero\" aria-hidden=\"true\" data-ornament style=\"width:46px;color:var(--ls-rope)\"><\/span><i style=\"background:linear-gradient(90deg,#AA8457,rgba(170,132,87,0))\"><\/i><\/div><div class=\"ls-prodotti\" data-bottle-grid data-reveal data-stagger><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-valpolicella-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-valpolicella-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-valpolicella-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-valpolicella-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Valpolicella DOC\" loading=\"lazy\"><p>Valpolicella<br><span>DOC<\/span><\/p><\/div><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-bardolino-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-bardolino-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-bardolino-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-bardolino-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Bardolino DOC\" loading=\"lazy\"><p>Bardolino<br><span>DOC<\/span><\/p><\/div><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-chiaretto-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-chiaretto-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-chiaretto-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-chiaretto-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Chiaretto di Bardolino DOC\" loading=\"lazy\"><p>Chiaretto<br><span>DOC<\/span><\/p><\/div><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-soave-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-soave-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-soave-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-soave-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Soave DOC\" loading=\"lazy\"><p>Soave<br><span>DOC<\/span><\/p><\/div><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-pinot-grigio-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-pinot-grigio-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-pinot-grigio-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-pinot-grigio-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Pinot Grigio delle Venezie DOC\" loading=\"lazy\"><p>Pinot Grigio<br><span>DOC<\/span><\/p><\/div><div class=\"ls-prodotto\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-custoza-1200.webp\" srcset=\"https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-custoza-400.webp 400w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-custoza-800.webp 800w, https:\/\/www.lasogara.it\/wp-content\/uploads\/2026\/09\/bottiglia-custoza-1200.webp 1200w\" sizes=\"auto, (max-width:520px) 60vw, (max-width:760px) 40vw, 20vw\" width=\"1200\" height=\"1800\" alt=\"La Sogara Custoza DOC\" loading=\"lazy\"><p>Custoza<br><span>DOC<\/span><\/p><\/div><\/div><\/div><\/section><section class=\"ls-dark\" style=\"padding:clamp(80px,11vh,140px) var(--ls-pad);position:relative;overflow:hidden\"><div data-reveal style=\"max-width:var(--ls-max);margin:0 auto;display:flex;flex-wrap:wrap;gap:clamp(32px,5vw,80px);align-items:center;justify-content:space-between\"><div><h2 style=\"margin:0 0 14px;max-width:22ch;font-size:clamp(30px,3.6vw,48px);line-height:1.08;color:var(--ls-cream)\">Do you need information about La Sogara wines, your order or product availability?<\/h2><p style=\"margin:0;max-width:48ch\">Get in touch. We\u2019ll be happy to assist you.<\/p><\/div><a class=\"ls-btn ls-btn--pieno\" href=\"https:\/\/www.lasogara.it\/en\/contacts\/\" style=\"flex:0 0 auto\">Contact Us<\/a><\/div><\/section><\/main><footer class=\"ls-foot ls-dark\"><span class=\"ls-albero ls-foot__albero\" aria-hidden=\"true\"><\/span><div class=\"ls-wrap\" style=\"padding-inline:0\"><div class=\"ls-foot__linea\" aria-hidden=\"true\"><\/div><div class=\"ls-foot__cols\"><div style=\"flex:0 1 300px\"><span class=\"ls-logo\" style=\"width:96px;color:var(--ls-cream)\"><\/span><p style=\"margin:22px 0 0;color:var(--ls-beige);font-family:var(--ls-serif);font-style:italic;font-size:22px\">Authentically Veronese<\/p><\/div><nav class=\"ls-foot__nav\"><a href=\"\/en\/\">Home<\/a><a href=\"https:\/\/www.lasogara.it\/en\/about-us\/\">About Us<\/a><a href=\"https:\/\/www.lasogara.it\/en\/wines\/\">Wines<\/a><\/nav><nav class=\"ls-foot__nav\"><a href=\"https:\/\/www.lasogara.it\/en\/terroir-tradition\/\">Terroir &amp; Tradition<\/a><a href=\"https:\/\/www.lasogara.it\/en\/shop\/\">Shop<\/a><a href=\"https:\/\/www.lasogara.it\/en\/contacts\/\">Contacts<\/a><\/nav><div style=\"flex:1 1 240px\"><p class=\"ls-occhiello\" style=\"color:var(--ls-beige);margin-bottom:14px\">Contacts<\/p><p style=\"margin:0;color:var(--ls-beige);font-size:14.5px;line-height:1.9\">Cottini S.p.A.<br>San Pietro in Cariano, Verona<br><a class=\"ls-recapito\" href=\"tel:+390456280157\">+39 045 6280157<\/a>&nbsp;&middot; <a class=\"ls-recapito\" href=\"mailto:info@cottinivini.com\">info@cottinivini.com<\/a><\/p><\/div><\/div><div class=\"ls-foot__base\"><p style=\"margin:0;color:var(--ls-beige);font-size:13px\">&copy; 2026 La Sogara&nbsp;&middot; Cottini&nbsp;S.p.A.&nbsp;&middot; VAT&nbsp;No.&nbsp;02790400234<\/p><p class=\"ls-foot__legali\"><a href=\"https:\/\/www.lasogara.it\/privacy-policy\/\">Privacy Policy<\/a>&nbsp;&middot; <a href=\"https:\/\/www.lasogara.it\/cookie-policy-ue\/\">Cookie Policy<\/a>&nbsp;&middot; <a href=\"https:\/\/www.cybear.it\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Credits: Cybear (opens in a new tab)\">Credits<\/a><\/p><\/div><\/div><\/footer><\/div>\n<script id=\"ls-app\">\/* La Sogara \u2014 comportamenti condivisi.\n   Tradotto dai mockup di Claude Design: qui il JavaScript tocca solo classi e attributi,\n   ogni effetto visivo vive nel CSS. Nessuna dipendenza esterna.\n   Principio di degradazione: se questo file non arriva, il sito perde le animazioni\n   ma resta completamente leggibile \u2014 nessun elemento \u00e8 nascosto dal CSS. *\/\n(function () {\n  'use strict';\n\n  var doc = document;\n  var win = window;\n  var reduce = false;\n  if (win.matchMedia) {\n    if (win.matchMedia('(prefers-reduced-motion: reduce)').matches) { reduce = true; }\n  }\n\n  function each(list, fn) { Array.prototype.forEach.call(list, fn); }\n\n  \/* ---------- Header: trasparente sull'hero, crema dopo lo scroll ---------- *\/\n  function initHeader() {\n    var nav = doc.querySelector('[data-nav]');\n    if (!nav) { return; }\n    var panel = nav.querySelector('[data-panel]');\n    var burger = nav.querySelector('[data-burger]');\n    var solid = null;\n\n    function setSolid(next) {\n      if (next === solid) { return; }\n      solid = next;\n      nav.classList.toggle('is-solid', next);\n    }\n    function onScroll() {\n      var y = win.scrollY || doc.documentElement.scrollTop || 0;\n      setSolid(y > 40);\n    }\n\n    var open = false;\n    function setOpen(v) {\n      open = v;\n      nav.classList.toggle('is-open', v);\n      if (burger) {\n        burger.setAttribute('aria-expanded', v ? 'true' : 'false');\n      }\n      if (panel) {\n        if (v) { panel.removeAttribute('hidden'); } else { panel.setAttribute('hidden', ''); }\n      }\n      if (v) { setSolid(true); } else { solid = null; onScroll(); }\n    }\n\n    if (burger) {\n      burger.setAttribute('aria-expanded', 'false');\n      burger.addEventListener('click', function () { setOpen(!open); });\n    }\n    \/* chiusura con Esc e al ritorno sopra il breakpoint *\/\n    doc.addEventListener('keydown', function (e) {\n      if (e.key !== 'Escape') { return; }\n      if (!open) { return; }\n      setOpen(false);\n      if (burger) { burger.focus(); }\n    });\n    if (win.matchMedia) {\n      var mq = win.matchMedia('(min-width: 981px)');\n      var onMq = function (e) { if (e.matches) { setOpen(false); } };\n      if (mq.addEventListener) { mq.addEventListener('change', onMq); }\n    }\n\n    onScroll();\n    win.addEventListener('scroll', onScroll, { passive: true });\n\n    \/* sentinella nell'hero: pi\u00f9 affidabile del solo scrollY quando l'hero non parte da 0 *\/\n    var hero = doc.querySelector('[data-hero]');\n    if (hero) {\n      if ('IntersectionObserver' in win) {\n        var s = doc.createElement('div');\n        s.setAttribute('aria-hidden', 'true');\n        s.className = 'ls-sentinel';\n        hero.insertBefore(s, hero.firstChild);\n        new win.IntersectionObserver(function (entries) {\n          each(entries, function (en) { if (!open) { setSolid(!en.isIntersecting); } });\n        }, { threshold: 0 }).observe(s);\n      }\n    }\n  }\n\n  \/* ---------- Comparsa allo scroll ---------- *\/\n  function initReveal() {\n    var targets = doc.querySelectorAll('[data-reveal]');\n    if (!targets.length) { return; }\n    if (reduce) { return; }\n    if (!('IntersectionObserver' in win)) { return; }\n\n    \/* l'opacit\u00e0 iniziale la mette il JavaScript, mai il CSS: se questo file non arriva,\n       il contenuto resta visibile invece di sparire *\/\n    each(targets, function (el) { el.style.opacity = '0'; });\n    var safety = win.setTimeout(function () {\n      each(targets, function (el) { if (!el.style.animation) { el.style.opacity = '1'; } });\n    }, 1400);\n\n    function settle(el) {\n      function done(e) {\n        if (e.target !== el) { return; }\n        el.removeEventListener('animationend', done);\n        el.style.animation = 'none';\n        el.style.opacity = '1';\n        el.style.transform = '';\n      }\n      el.addEventListener('animationend', done);\n    }\n\n    var io = new win.IntersectionObserver(function (entries) {\n      each(entries, function (en) {\n        if (!en.isIntersecting) { return; }\n        win.clearTimeout(safety);\n        en.target.style.animation = 'lsReveal .9s cubic-bezier(.2,.7,.2,1) both';\n        settle(en.target);\n        if (en.target.hasAttribute('data-stagger')) {\n          each(en.target.children, function (ch, i) {\n            ch.style.animation = 'lsUp .85s cubic-bezier(.2,.75,.2,1) ' + (0.09 * i + 0.14).toFixed(2) + 's both';\n            settle(ch);\n          });\n        }\n        io.unobserve(en.target);\n      });\n    }, { rootMargin: '0px 0px 40% 0px', threshold: 0.08 });\n    each(targets, function (el) { io.observe(el); });\n  }\n\n  \/* ---------- Carosello delle bottiglie ---------- *\/\n  function initCarousel() {\n    var track = doc.querySelector('[data-carousel-track]');\n    if (!track) { return; }\n    var prev = doc.querySelector('[data-carousel-prev]');\n    var next = doc.querySelector('[data-carousel-next]');\n\n    function step() {\n      var first = track.querySelector('[data-cslide]');\n      if (first) { return first.getBoundingClientRect().width + 20; }\n      return track.clientWidth * 0.6;\n    }\n    function sync() {\n      var max = track.scrollWidth - track.clientWidth - 2;\n      if (prev) { prev.disabled = track.scrollLeft <= 2; }\n      if (next) { next.disabled = track.scrollLeft >= max; }\n    }\n    if (prev) { prev.addEventListener('click', function () { track.scrollBy({ left: -step(), behavior: 'smooth' }); }); }\n    if (next) { next.addEventListener('click', function () { track.scrollBy({ left: step(), behavior: 'smooth' }); }); }\n\n    \/* Trascinamento con il mouse (v1.13). La cattura del puntatore parte solo quando il mouse si \u00e8\n       mosso davvero (oltre 6 px): catturarlo gi\u00e0 alla pressione, come prima, faceva arrivare il clic\n       al carosello invece che al link, e le bottiglie non si aprivano. Touch e penna usano lo\n       scorrimento nativo del browser, che non intercetta i tocchi sui link. *\/\n    var dragging = false, pending = false, startX = 0, startLeft = 0, moved = 0, pid = null;\n    var snap = track.style.scrollSnapType;\n    track.addEventListener('pointerdown', function (e) {\n      moved = 0;\n      if (e.pointerType !== 'mouse') { return; }\n      if (e.button !== 0) { return; }\n      pending = true; pid = e.pointerId;\n      startX = e.clientX; startLeft = track.scrollLeft;\n    });\n    track.addEventListener('pointermove', function (e) {\n      if (!pending) { return; }\n      \/* tasto sinistro rilasciato fuori dal carosello prima di trascinare: niente da fare\n         (bit 0 di e.buttons letto con il modulo, perch\u00e9 nello script non deve esserci nessuna e commerciale) *\/\n      if (e.buttons % 2 === 0) { endDrag(); return; }\n      var dx = e.clientX - startX;\n      moved = Math.max(moved, Math.abs(dx));\n      if (!dragging) {\n        if (moved <= 6) { return; }\n        dragging = true;\n        track.style.scrollSnapType = 'none';\n        track.style.scrollBehavior = 'auto';\n        track.classList.add('is-dragging');\n        if (track.setPointerCapture) { track.setPointerCapture(pid); }\n      }\n      track.scrollLeft = startLeft - dx;\n    });\n    function endDrag() {\n      pending = false;\n      if (!dragging) { return; }\n      dragging = false;\n      track.classList.remove('is-dragging');\n      track.style.scrollBehavior = 'smooth';\n      track.style.scrollSnapType = snap || 'x mandatory';\n      sync();\n    }\n    track.addEventListener('pointerup', endDrag);\n    track.addEventListener('pointercancel', endDrag);\n    track.addEventListener('dragstart', function (e) { e.preventDefault(); });\n    track.addEventListener('click', function (e) {\n      if (moved > 6) { e.preventDefault(); e.stopPropagation(); }\n    }, true);\n    track.addEventListener('scroll', sync, { passive: true });\n    win.addEventListener('resize', sync);\n    if (win.ResizeObserver) { new win.ResizeObserver(sync).observe(track); }\n    each(track.querySelectorAll('img'), function (im) {\n      if (!im.complete) { im.addEventListener('load', sync, { once: true }); }\n    });\n    [60, 400, 1200].forEach(function (ms) { win.setTimeout(sync, ms); });\n  }\n\n  \/* ---------- Filtri della pagina I Vini ---------- *\/\n  function initFilters() {\n    var chips = doc.querySelectorAll('[data-filter]');\n    if (!chips.length) { return; }\n    var cards = doc.querySelectorAll('[data-cat]');\n    each(chips, function (chip) {\n      chip.addEventListener('click', function () {\n        var val = chip.getAttribute('data-filter');\n        each(chips, function (c) {\n          var on = c === chip;\n          c.classList.toggle('is-active', on);\n          c.setAttribute('aria-pressed', on ? 'true' : 'false');\n        });\n        each(cards, function (card) {\n          var show = true;\n          if (val !== 'tutti') { show = card.getAttribute('data-cat') === val; }\n          if (show) { card.removeAttribute('hidden'); } else { card.setAttribute('hidden', ''); }\n        });\n      });\n    });\n  }\n\n  \/* ---------- Pioggia di foglie nelle filigrane ----------\n     Le foglie le nasconde il JavaScript (is-attesa), mai il CSS: se lo script non arriva restano\n     visibili al loro posto. La pioggia parte quando un terzo della filigrana \u00e8 nello schermo. *\/\n  function initFoglie() {\n    var svgs = doc.querySelectorAll('[data-foglie]');\n    if (!svgs.length) { return; }\n    if (reduce) { return; }\n    if (!('IntersectionObserver' in win)) { return; }\n    var io = new win.IntersectionObserver(function (entries) {\n      each(entries, function (en) {\n        if (!en.isIntersecting) { return; }\n        en.target.classList.remove('is-attesa');\n        en.target.classList.add('is-pioggia');\n        io.unobserve(en.target);\n      });\n    }, { threshold: 0.3 });\n    each(svgs, function (s) {\n      if (!s.getClientRects().length) { return; }   \/* nascosta (mobile): niente da animare *\/\n      s.classList.add('is-attesa');\n      io.observe(s);\n    });\n  }\n\n  \/* ---------- Selettore IT | EN (v1.11) ----------\n     WPML riscrive i link interni delle pagine tradotte e li fa puntare tutti alla lingua della\n     pagina: il link \u00abIT\u00bb di una pagina inglese diventerebbe la pagina inglese stessa. Per questo\n     l'indirizzo esatto dell'altra lingua sta in data-lingua, che WPML non tocca (data-href invece\n     lo riscrive), e qui diventa href. Senza JavaScript il link porta alla home dell'altra lingua. *\/\n  function initLingue() {\n    each(doc.querySelectorAll('.ls-lang a[data-lingua]'), function (a) {\n      a.setAttribute('href', a.getAttribute('data-lingua'));\n    });\n  }\n\n  \/* ---------- Arrivo su un'ancora (v1.13) ----------\n     I vini del carosello portano a \/vini\/#nome-del-vino. Con lo scorrimento morbido il browser\n     calcola la destinazione prima che arrivino i font; quando arrivano, il testo sopra le schede si\n     accorcia (42 px su I Vini a 1440) e la scheda finiva in parte sotto l'header. Finch\u00e9 la pagina\n     non \u00e8 caricata lo scorrimento resta immediato; a font pronti e a caricamento finito la scheda\n     viene riallineata sotto l'header, misurando la posizione nel layout (offsetTop) e non sullo\n     schermo, cos\u00ec l'animazione di comparsa non sposta il calcolo. Se intanto chi legge ha gi\u00e0\n     scrollato o premuto un tasto, non si tocca niente. *\/\n  function initAncora() {\n    var id = win.location.hash.slice(1);\n    if (!id) { return; }\n    var el = doc.getElementById(id);\n    if (!el) { return; }\n    var html = doc.documentElement, fermo = false;\n    html.style.scrollBehavior = 'auto';\n    function utente() { fermo = true; }\n    each(['wheel', 'touchstart', 'keydown', 'mousedown'], function (t) {\n      win.addEventListener(t, utente, { passive: true, once: true });\n    });\n    function riallinea() {\n      if (fermo) { return; }\n      var y = 0, n = el;\n      while (n) { y += n.offsetTop; n = n.offsetParent; }\n      var margine = parseFloat(win.getComputedStyle(el).scrollMarginTop) || 0;\n      win.scrollTo(0, Math.max(0, y - margine));\n    }\n    function fine() {\n      riallinea();\n      win.setTimeout(function () { riallinea(); html.style.scrollBehavior = ''; }, 250);\n    }\n    if (doc.fonts) { doc.fonts.ready.then(riallinea); }\n    if (doc.readyState === 'complete') { fine(); } else { win.addEventListener('load', fine); }\n  }\n\n  function boot() {\n    initAncora();\n    initLingue();\n    initHeader();\n    initReveal();\n    initCarousel();\n    initFilters();\n    initFoglie();\n  }\n  if (doc.readyState === 'loading') {\n    doc.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n}());\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>HomeAbout UsWinesTerroirContactsShop ITEN HomeAbout UsWinesTerroirShopContacts ITEN La Sogara \u2014 Shop Bring Home the Authentic Taste of Verona Discover the complete collection of La Sogara wines and shop online. Honest, versatile and authentic wines for every occasion. Shop Online ValpolicellaDOC BardolinoDOC ChiarettoDOC SoaveDOC Pinot GrigioDOC CustozaDOC Do you need information about La Sogara wines, your order [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-239","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/pages\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":11,"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/pages\/239\/revisions"}],"predecessor-version":[{"id":385,"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/pages\/239\/revisions\/385"}],"wp:attachment":[{"href":"https:\/\/www.lasogara.it\/en\/wp-json\/wp\/v2\/media?parent=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}