{"id":27325,"date":"2026-08-14T07:57:55","date_gmt":"2026-08-14T05:57:55","guid":{"rendered":"https:\/\/www.radiorurale.it\/radio\/?p=27325"},"modified":"2026-08-14T08:02:04","modified_gmt":"2026-08-14T06:02:04","slug":"stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati","status":"publish","type":"post","link":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/","title":{"rendered":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati"},"content":{"rendered":"<div id=\"pl-27325\"  class=\"panel-layout\" ><div id=\"pg-27325-0\"  class=\"panel-grid panel-no-style\" ><div id=\"pgc-27325-0-0\"  class=\"panel-grid-cell\" ><div id=\"panel-27325-0-0-0\" class=\"widget_text so-panel widget widget_custom_html panel-first-child panel-last-child\" data-index=\"0\" ><div class=\"textwidget custom-html-widget\"><style>\nbody.single-post .entry-image,body.single-post .post-thumbnail,body.single-post .featured-image,body.single-post .entry-featured,body.single-post .featured-media,body.single-post .post-featured-image,body.single-post .single-featured-image,body.single-post .entry-header img.wp-post-image,body.single-post .entry-header img.attachment-post-thumbnail{display:none!important}\n.rvb-shell,.rvb-shell *{box-sizing:border-box}\n.rvb-shell{--ink:#2b241e;--soft:#6e6256;--night:#171310;--wine:#8c2027;--deep:#611319;--brass:#c2a477;--paper:#f3ecdf;--light:#fffaf1;--line:#ccb995;width:100%;max-width:1180px;margin:0 auto;overflow:hidden;color:var(--ink);border:1px solid rgba(92,70,46,.24);background:var(--paper);box-shadow:0 30px 80px rgba(42,31,21,.16);font-family:Georgia,\"Times New Roman\",serif}\n.rvb-shell img{display:block;width:100%;max-width:100%}\n.rvb-shell a{color:inherit}\n.rvb-reveal{opacity:1;transform:none}\n.rvb-shell.rvb-js .rvb-reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);transition-delay:var(--rvb-delay,0ms);will-change:opacity,transform}\n.rvb-shell.rvb-js .rvb-reveal.rvb-visible{opacity:1;transform:translateY(0)}\n\n.rvb-home-nav{display:flex;align-items:center;min-height:62px;padding:10px clamp(16px,4vw,42px);border-bottom:1px solid rgba(234,216,183,.2);background:linear-gradient(90deg,rgba(140,32,39,.16),transparent 45%),var(--night)}\n.rvb-home-return{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:5px 16px 5px 5px;color:var(--light)!important;border:1px solid rgba(234,216,183,.46);border-radius:999px;background:rgba(255,250,241,.055);font-family:Arial,Helvetica,sans-serif;line-height:1;text-decoration:none!important;transition:transform .24s ease,border-color .24s ease,background-color .24s ease,box-shadow .24s ease}\n.rvb-home-return:hover,.rvb-home-return:focus-visible{color:#fff!important;border-color:rgba(234,216,183,.8);background:rgba(255,250,241,.1);box-shadow:0 10px 22px rgba(0,0,0,.22);outline:none;transform:translateY(-2px)}\n.rvb-home-return:focus-visible{outline:3px solid rgba(194,164,119,.3);outline-offset:3px}\n.rvb-home-return-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;color:var(--night);border-radius:50%;background:#ead8b7;font-size:18px;transition:transform .28s ease,background-color .28s ease}\n.rvb-home-return:hover .rvb-home-return-icon,.rvb-home-return:focus-visible .rvb-home-return-icon{background:#fff1d8;transform:translateX(-3px)}\n.rvb-home-return-copy small,.rvb-home-return-copy strong{display:block}\n.rvb-home-return-copy small{margin-bottom:3px;color:#ead8b7;font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase}\n.rvb-home-return-copy strong{font-size:12px}\n\n.rvb-hero{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(320px,.94fr);align-items:start;background:var(--light)}\n.rvb-gv{min-width:0;padding:clamp(9px,1.5vw,15px);background:radial-gradient(circle at 50% 40%,rgba(193,58,53,.14),transparent 46%),var(--night)}\n.rvb-gv-stage{position:relative;overflow:hidden;border:1px solid rgba(234,216,183,.24);background:#0f0c0a}\n.rvb-gv,.rvb-gv *,.rvb-lightbox,.rvb-lightbox *{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}\n.rvb-gv img,.rvb-lightbox img{-webkit-user-drag:none;pointer-events:none}\n.rvb-gv-main{display:block;position:relative;aspect-ratio:4\/3;color:inherit;text-decoration:none!important;cursor:zoom-in;touch-action:pan-y}\n.rvb-gv-main img{height:100%;object-fit:contain;background:#0f0c0a}\n.rvb-gv-main:focus-visible{outline:3px solid rgba(194,164,119,.6);outline-offset:-3px}\n.rvb-gv-arrow{position:absolute;top:50%;z-index:2;touch-action:manipulation;display:grid;place-items:center;width:44px;height:44px;margin-top:-22px;padding:0;color:#fff;border:1px solid rgba(234,216,183,.48);border-radius:50%;background:rgba(15,12,10,.66);font-family:Arial,Helvetica,sans-serif;font-size:20px;line-height:1;cursor:pointer;transition:background-color .22s ease,border-color .22s ease,transform .22s ease}\n.rvb-gv-prev{left:9px}\n.rvb-gv-next{right:9px}\n.rvb-gv-arrow:hover,.rvb-gv-arrow:focus-visible{border-color:#ead8b7;background:rgba(140,32,39,.92);outline:none;transform:scale(1.06)}\n.rvb-gv-arrow:focus-visible{outline:3px solid rgba(194,164,119,.45);outline-offset:2px}\n.rvb-gv-counter,.rvb-gv-hint{position:absolute;z-index:2;bottom:9px;padding:6px 9px;color:#f6ead4;border:1px solid rgba(234,216,183,.32);background:rgba(15,12,10,.8);font-family:Arial,Helvetica,sans-serif;font-weight:800;line-height:1;letter-spacing:1px;text-transform:uppercase}\n.rvb-gv-counter{left:9px;font-size:9px}\n.rvb-gv-counter:empty{display:none}\n.rvb-gv-hint{right:9px;font-size:8px}\n.rvb-gv-thumbs[hidden]{display:none!important}\n.rvb-gv-thumbs{display:flex;gap:6px;margin-top:7px;padding-bottom:5px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(234,216,183,.5) rgba(255,255,255,.07);-webkit-overflow-scrolling:touch}\n.rvb-gv-thumbs::-webkit-scrollbar{height:5px}\n.rvb-gv-thumbs::-webkit-scrollbar-track{background:rgba(255,255,255,.07)}\n.rvb-gv-thumbs::-webkit-scrollbar-thumb{background:rgba(234,216,183,.45)}\n.rvb-gv-thumb{flex:0 0 auto;width:80px;touch-action:manipulation;overflow:hidden;scroll-snap-align:start;border:1px solid rgba(234,216,183,.2);background:#0f0c0a;text-decoration:none!important;opacity:.6;transition:opacity .22s ease,border-color .22s ease,transform .22s ease}\n.rvb-gv-thumb img{aspect-ratio:4\/3;height:auto;object-fit:contain;background:#0f0c0a}\n.rvb-gv-thumb:hover,.rvb-gv-thumb:focus-visible{border-color:rgba(234,216,183,.62);outline:none;opacity:1;transform:translateY(-2px)}\n.rvb-gv-thumb:focus-visible{outline:2px solid var(--brass);outline-offset:2px}\n.rvb-gv-thumb.rvb-gv-active{border-color:var(--wine);box-shadow:inset 0 0 0 2px var(--wine);opacity:1}\n\n.rvb-hero-copy{display:flex;flex-direction:column;min-width:0;padding:clamp(22px,3vw,36px) clamp(20px,3.2vw,38px) clamp(24px,3.4vw,40px);border-left:1px solid rgba(92,70,46,.17)}\n.rvb-kicker{margin:0 0 9px;color:var(--wine);font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:800;line-height:1.4;letter-spacing:1.5px;text-transform:uppercase}\n.rvb-hero h2{margin:0;color:var(--ink);font-size:clamp(26px,3.3vw,39px);font-weight:400;line-height:1.07;letter-spacing:-1.05px;overflow-wrap:anywhere}\n.rvb-price{display:grid;gap:11px;margin:15px 0 0;padding:14px 16px;border:1px solid rgba(140,32,39,.24);background:linear-gradient(118deg,rgba(140,32,39,.085),rgba(194,164,119,.13))}\n.rvb-price-label{display:block;color:var(--soft);font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;line-height:1;letter-spacing:1.25px;text-transform:uppercase}\n.rvb-price-value{display:block;margin-top:7px;color:var(--deep);font-size:clamp(29px,3.9vw,38px);font-weight:400;line-height:1;letter-spacing:-1px}\n.rvb-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}\n.rvb-badges li[hidden],.rvb-badge[hidden]{display:none!important}\n.rvb-badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 10px;color:var(--deep);border:1px solid rgba(140,32,39,.28);border-radius:999px;background:rgba(255,253,249,.85);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;font-weight:800;line-height:1.2;letter-spacing:.85px;text-transform:uppercase}\n.rvb-badge-status{color:#fff;border-color:var(--wine);background:var(--wine)}\n.rvb-badge-sold{color:#fff;border-color:#4a4038;background:#4a4038}\n.rvb-badge-warn{color:#3a2a10;border-color:#c2a477;background:#e6cfa4}\n.rvb-shell[data-rvb-state=\"venduta\"] .rvb-price{border-color:rgba(74,64,56,.38);background:linear-gradient(118deg,rgba(74,64,56,.09),rgba(194,164,119,.11))}\n.rvb-shell[data-rvb-state=\"venduta\"] .rvb-price-value{color:#7a6d61;text-decoration:line-through;text-decoration-thickness:1px}\n.rvb-shell[data-rvb-state=\"venduta\"] .rvb-price-label::after{content:\" - articolo non piu disponibile\"}\n.rvb-mini-wa{display:inline-flex;align-items:center;gap:11px;align-self:flex-start;min-height:50px;margin:11px 0 0;padding:7px 17px 7px 7px;color:#fff!important;border:1px solid rgba(112,238,168,.4);border-radius:14px;background:linear-gradient(135deg,#249b60 0%,#187d4c 55%,#10643d 100%);box-shadow:0 10px 22px rgba(16,60,38,.2);font-family:Arial,Helvetica,sans-serif;line-height:1.25;text-decoration:none!important;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}\n.rvb-mini-wa:hover,.rvb-mini-wa:focus-visible{box-shadow:0 14px 28px rgba(16,60,38,.27);filter:saturate(1.08);outline:none;transform:translateY(-2px)}\n.rvb-mini-wa:focus-visible{outline:3px solid rgba(47,104,79,.35);outline-offset:3px}\n.rvb-mini-wa-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(255,255,255,.14)}\n.rvb-mini-wa-icon svg{width:20px;height:20px;fill:currentColor}\n.rvb-mini-wa-copy small,.rvb-mini-wa-copy strong{display:block}\n.rvb-mini-wa-copy small{margin-bottom:2px;color:#d8ffe9;font-size:8px;font-weight:800;letter-spacing:1.05px;text-transform:uppercase}\n.rvb-mini-wa-copy strong{color:#fff;font-size:13px;font-weight:800;letter-spacing:.4px}\n.rvb-subtitle{margin:14px 0 0;padding-left:13px;color:var(--soft);border-left:2px solid var(--wine);font-size:15px;line-height:1.55}\n.rvb-quick-data{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:15px 0 0;padding:1px;background:rgba(92,70,46,.16)}\n.rvb-quick-item{min-width:0;padding:10px 12px;background:#fffdf9}\n.rvb-quick-item span,.rvb-quick-item strong{display:block}\n.rvb-quick-item span{margin-bottom:3px;color:var(--soft);font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;letter-spacing:1px;text-transform:uppercase}\n.rvb-quick-item strong{font-size:14px;font-weight:400;line-height:1.3}\n\n.rvb-tests{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:1px;padding:1px;border-top:1px solid rgba(92,70,46,.15);background:radial-gradient(circle at 88% -25%,rgba(193,58,53,.22),transparent 42%),var(--night)}\n.rvb-test{min-width:0;padding:13px clamp(14px,2.2vw,22px);background:rgba(255,255,255,.045)}\n.rvb-test span,.rvb-test strong{display:block}\n.rvb-test span{margin-bottom:5px;color:var(--brass);font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;line-height:1.35;letter-spacing:1.1px;text-transform:uppercase}\n.rvb-test strong{color:var(--light);font-size:clamp(16px,1.9vw,20px);font-weight:400;line-height:1.2}\n\n.rvb-section{padding:clamp(26px,3.8vw,44px) clamp(20px,5vw,54px);border-top:1px solid rgba(92,70,46,.15)}\n.rvb-section-light{background:rgba(255,250,241,.82)}\n.rvb-block-head{margin-bottom:15px}\n.rvb-block-head h2{margin:0;color:var(--ink);font-size:clamp(23px,2.9vw,31px);font-weight:400;line-height:1.1;letter-spacing:-.8px}\n.rvb-description p{margin:0 0 13px;color:var(--soft);font-size:16px;line-height:1.7}\n.rvb-description p:last-child{margin-bottom:0}\n.rvb-fold{padding:15px 16px;border-top:1px solid rgba(92,70,46,.2)}\n.rvb-fold-block+.rvb-fold-block{margin-top:15px;padding-top:14px;border-top:1px solid rgba(92,70,46,.14)}\n.rvb-fold-title{margin:0 0 8px;color:var(--wine);font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;line-height:1.35;letter-spacing:1.1px;text-transform:uppercase}\n.rvb-fold-text{margin:0;color:var(--soft);font-family:Arial,Helvetica,sans-serif;font-size:12.5px;line-height:1.62}\n.rvb-fold-note{margin:15px 0 0;padding:10px 13px;color:var(--soft);border-left:3px solid var(--brass);background:rgba(194,164,119,.13);font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:1.55}\n.rvb-block-title{margin:22px 0 0;color:var(--ink);font-size:clamp(18px,2.1vw,22px);font-weight:400;line-height:1.15;letter-spacing:-.5px}\n.rvb-dl{display:grid;gap:1px;margin:13px 0 0;padding:1px;background:rgba(92,70,46,.18);font-family:Arial,Helvetica,sans-serif}\n.rvb-dl-row{display:grid;grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);gap:10px;min-width:0;padding:8px 13px;background:var(--light)}\n.rvb-dl dt{margin:0;color:var(--soft);font-size:8.5px;font-weight:800;line-height:1.45;letter-spacing:.8px;text-transform:uppercase}\n.rvb-dl dd{margin:0;min-width:0;color:var(--ink);font-family:Georgia,\"Times New Roman\",serif;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}\n.rvb-dl dd b{color:var(--deep);font-weight:700}\n.rvb-dl-test{background:#fff5e8}\n.rvb-accordion{margin-top:16px;border:1px solid rgba(92,70,46,.28);background:rgba(255,255,255,.55)}\n.rvb-accordion-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:50px;padding:12px 16px;color:var(--wine);cursor:pointer;list-style:none;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;transition:background-color .2s ease}\n.rvb-accordion-summary::-webkit-details-marker{display:none}\n.rvb-accordion-summary:hover,.rvb-accordion-summary:focus-visible{background:rgba(140,32,39,.06);outline:none}\n.rvb-accordion-summary-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;color:#fff;border-radius:50%;background:var(--wine);font-size:16px;font-weight:400;line-height:1;transition:transform .25s ease}\n.rvb-accordion[open] .rvb-accordion-summary-icon{transform:rotate(45deg)}\n.rvb-note{margin:0;padding:14px 16px;color:var(--soft);border-top:1px solid rgba(92,70,46,.2);font-family:Arial,Helvetica,sans-serif;font-size:12.5px;line-height:1.68}\n.rvb-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}\n.rvb-chips li{padding:6px 10px;color:var(--ink);border:1px solid rgba(92,70,46,.24);background:#fffdf9;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.3}\n\n.rvb-contact{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:clamp(26px,4vw,42px) clamp(20px,5vw,54px);color:var(--light);background:linear-gradient(115deg,rgba(140,32,39,.23),transparent 48%),var(--night)}\n.rvb-contact::before{content:\"\";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--wine),var(--brass) 52%,transparent 92%)}\n.rvb-contact-copy strong,.rvb-contact-copy small{display:block}\n.rvb-contact-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;padding:0;list-style:none}\n.rvb-contact-tags li[hidden]{display:none!important}\n.rvb-contact-tags li{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;color:#f6ead4;border:1px solid rgba(234,216,183,.38);border-radius:999px;background:rgba(255,250,241,.07);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;font-weight:800;line-height:1.2;letter-spacing:.9px;text-transform:uppercase}\n.rvb-contact-tags .rvb-contact-tag-price{color:var(--night);border-color:#ead8b7;background:#ead8b7}\n.rvb-contact-copy strong{font-size:clamp(21px,2.8vw,31px);font-weight:400;line-height:1.14}\n.rvb-contact-copy small{max-width:640px;margin-top:9px;color:#d8ccbb;font-family:Arial,Helvetica,sans-serif;font-size:12.5px;line-height:1.55}\n.rvb-button{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-width:min(100%,330px);min-height:68px;padding:10px 14px 10px 10px;overflow:hidden;color:#fff!important;border:1px solid rgba(112,238,168,.4);border-radius:17px;background:linear-gradient(135deg,#249b60 0%,#187d4c 52%,#10643d 100%);box-shadow:0 13px 30px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.16);font-family:Arial,Helvetica,sans-serif;line-height:1.3;text-align:left;text-decoration:none!important;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,border-color .25s ease,filter .25s ease}\n.rvb-button::before{content:\"\";position:absolute;inset:0;background:linear-gradient(105deg,transparent 18%,rgba(255,255,255,.2),transparent 72%);transform:translateX(-120%);transition:transform .65s ease}\n.rvb-button::after{content:\"\";position:absolute;right:-28px;bottom:-42px;width:115px;height:115px;border-radius:50%;background:rgba(255,255,255,.08);transition:transform .4s ease}\n.rvb-button:hover,.rvb-button:focus-visible{border-color:rgba(151,255,197,.72);box-shadow:0 18px 38px rgba(0,0,0,.3),0 0 0 4px rgba(46,191,111,.1),inset 0 1px 0 rgba(255,255,255,.2);filter:saturate(1.08);outline:none;transform:translateY(-4px)}\n.rvb-button:hover::before,.rvb-button:focus-visible::before{transform:translateX(120%)}\n.rvb-button:hover::after,.rvb-button:focus-visible::after{transform:scale(1.14)}\n.rvb-button:focus-visible{outline:3px solid rgba(47,104,79,.35);outline-offset:3px}\n.rvb-whatsapp-icon{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 47px;width:47px;height:47px;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.14);transition:transform .3s cubic-bezier(.22,1,.36,1),background-color .3s ease}\n.rvb-whatsapp-icon svg{width:25px;height:25px;fill:currentColor}\n.rvb-button:hover .rvb-whatsapp-icon,.rvb-button:focus-visible .rvb-whatsapp-icon{background:rgba(255,255,255,.19);transform:rotate(-4deg) scale(1.04)}\n.rvb-whatsapp-copy{position:relative;z-index:1;display:block;flex:1;min-width:0}\n.rvb-whatsapp-copy small,.rvb-whatsapp-copy strong{display:block}\n.rvb-whatsapp-copy small{margin-bottom:3px;color:#d8ffe9;font-size:8px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase}\n.rvb-whatsapp-copy strong{display:block;color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.45px;text-transform:uppercase}\n.rvb-wa-number{display:block;margin-top:4px;color:#d8ffe9;font-size:14px;font-weight:800;letter-spacing:.7px}\n.rvb-button-arrow{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;color:currentColor;transition:transform .28s ease}\n.rvb-button-arrow::before{content:\"\";display:block;width:13px;height:8px;background:currentColor;clip-path:polygon(0 43%,66% 43%,66% 0,100% 50%,66% 100%,66% 57%,0 57%)}\n.rvb-button:hover .rvb-button-arrow,.rvb-button:focus-visible .rvb-button-arrow{transform:translateX(4px)}\n\n.rvb-seo{padding:22px clamp(20px,5vw,54px) 24px;border-top:1px solid rgba(92,70,46,.12);background:#f7f1e7;color:var(--soft)}\n.rvb-seo-inner{max-width:980px}\n.rvb-seo-kicker{margin:0 0 6px;color:var(--wine);font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;line-height:1.35;letter-spacing:1.15px;text-transform:uppercase;opacity:.78}\n.rvb-seo h2{margin:0 0 8px;color:var(--ink);font-size:clamp(17px,2vw,21px);font-weight:400;line-height:1.25;letter-spacing:-.2px}\n.rvb-seo-copy{margin:0;color:#776b60;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:1.65}\n.rvb-seo-copy strong{color:#5f544a;font-weight:700}\n.rvb-seo-copy-secondary{margin-top:7px}\n.rvb-seo-queries{display:flex;flex-wrap:wrap;gap:4px 9px;margin:11px 0 0;padding:0;list-style:none;font-family:Arial,Helvetica,sans-serif;font-size:9px;line-height:1.45;color:#8a7c6f}\n.rvb-seo-queries li{position:relative;padding-left:10px}\n.rvb-seo-queries li::before{content:\"\";position:absolute;left:0;top:.55em;width:4px;height:4px;border-radius:50%;background:var(--wine);opacity:.7}\n.rvb-related-all{display:flex;justify-content:center;margin-top:4px}\n.rvb-related-all-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:min(100%,440px);min-height:58px;padding:12px 22px;color:#fff!important;border:1px solid var(--deep);background:linear-gradient(120deg,var(--wine),var(--deep));box-shadow:0 12px 26px rgba(58,43,29,.2);font-family:Arial,Helvetica,sans-serif;font-size:11.5px;font-weight:800;line-height:1.3;letter-spacing:1px;text-align:center;text-decoration:none!important;text-transform:uppercase;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}\n.rvb-related-all-link:hover,.rvb-related-all-link:focus-visible{box-shadow:0 17px 34px rgba(58,43,29,.26);filter:saturate(1.1);outline:none;transform:translateY(-2px)}\n.rvb-related-all-link:focus-visible{outline:3px solid rgba(140,32,39,.35);outline-offset:3px}\n.rvb-related-all-link b{flex:0 0 auto;font-size:16px;line-height:1;transition:transform .24s ease}\n.rvb-related-all-link:hover b,.rvb-related-all-link:focus-visible b{transform:translateX(4px)}\n.rvb-bottom-link{display:flex;justify-content:center;padding:19px;border-top:1px solid rgba(92,70,46,.16);background:var(--light)}\n.rvb-bottom-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:10px 16px;overflow:hidden;color:var(--wine)!important;border:1px solid rgba(140,32,39,.28);background:rgba(140,32,39,.045);font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:800;letter-spacing:.8px;text-decoration:none!important;text-transform:uppercase;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,box-shadow .22s ease}\n.rvb-bottom-button:hover,.rvb-bottom-button:focus-visible{color:#fff!important;border-color:var(--wine);background:var(--wine);box-shadow:0 10px 22px rgba(58,43,29,.16);outline:none;transform:translateY(-2px)}\n.rvb-bottom-button b{font-size:16px;line-height:1;transition:transform .28s ease}\n.rvb-bottom-button:hover b,.rvb-bottom-button:focus-visible b{transform:translateX(-3px)}\n\nbody.rvb-lightbox-open{overflow:hidden}\n.rvb-lightbox[hidden]{display:none!important}\n.rvb-lightbox{position:fixed;inset:0;z-index:999999;display:grid;grid-template-rows:auto minmax(0,1fr);padding:clamp(12px,2.4vw,24px);color:#fff;background:rgba(12,9,7,.96);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);opacity:0;transition:opacity .25s ease}\n.rvb-lightbox.rvb-lightbox-open{opacity:1}\n.rvb-lightbox-bar{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:14px}\n.rvb-lightbox-back{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 15px;color:#fff;border:1px solid rgba(234,216,183,.55);border-radius:999px;background:rgba(255,250,241,.08);font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:800;letter-spacing:.75px;text-transform:uppercase;cursor:pointer;transition:transform .22s ease,background-color .22s ease,border-color .22s ease}\n.rvb-lightbox-back:hover,.rvb-lightbox-back:focus-visible{border-color:#ead8b7;background:rgba(255,250,241,.15);outline:none;transform:translateX(-3px)}\n.rvb-lightbox-tools{display:flex;align-items:center;justify-content:flex-end;gap:11px;min-width:0}\n.rvb-lightbox-counter{color:#d7c6aa;font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase}\n.rvb-lightbox-zoom{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 13px;color:#fff;border:1px solid rgba(234,216,183,.55);border-radius:999px;background:rgba(255,250,241,.08);font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;line-height:1;letter-spacing:.75px;text-transform:uppercase;cursor:pointer;transition:transform .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease}\n.rvb-lightbox-zoom svg{display:block;width:21px;height:21px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}\n.rvb-lightbox-zoom .rvb-zoom-minus{opacity:0}\n.rvb-lightbox-zoom[aria-pressed=\"true\"]{color:#1b1511;border-color:#ead8b7;background:#ead8b7;box-shadow:0 8px 22px rgba(0,0,0,.24)}\n.rvb-lightbox-zoom[aria-pressed=\"true\"] .rvb-zoom-plus{opacity:0}\n.rvb-lightbox-zoom[aria-pressed=\"true\"] .rvb-zoom-minus{opacity:1}\n.rvb-lightbox-zoom:hover,.rvb-lightbox-zoom:focus-visible{border-color:#ead8b7;background:rgba(255,250,241,.15);outline:none;transform:translateY(-2px)}\n.rvb-lightbox-zoom[aria-pressed=\"true\"]:hover,.rvb-lightbox-zoom[aria-pressed=\"true\"]:focus-visible{background:#fff1d8}\n.rvb-lightbox-nav{position:absolute;top:50%;z-index:3;touch-action:manipulation;display:grid;place-items:center;width:48px;height:48px;margin-top:-24px;padding:0;color:#fff;border:1px solid rgba(234,216,183,.5);border-radius:50%;background:rgba(30,23,18,.72);font-family:Arial,Helvetica,sans-serif;font-size:22px;line-height:1;cursor:pointer;transition:background-color .22s ease,border-color .22s ease,transform .22s ease}\n.rvb-lightbox-nav-prev{left:clamp(6px,1.6vw,18px)}\n.rvb-lightbox-nav-next{right:clamp(6px,1.6vw,18px)}\n.rvb-lightbox-nav:hover,.rvb-lightbox-nav:focus-visible{border-color:#ead8b7;background:rgba(140,32,39,.92);outline:none;transform:scale(1.06)}\n.rvb-lightbox-zoomed-on .rvb-lightbox-nav{display:none}\n.rvb-lightbox-stage{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;scroll-behavior:smooth}\n.rvb-lightbox-stage.rvb-lightbox-zoomed{display:block;overflow:auto;overscroll-behavior:contain;scrollbar-color:#c2a477 rgba(255,255,255,.08);scrollbar-width:thin}\n.rvb-lightbox-figure{display:grid;grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:11px;width:100%;height:100%;margin:0;min-width:0;min-height:0}\n.rvb-lightbox-stage.rvb-lightbox-zoomed .rvb-lightbox-figure{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:max-content;min-width:100%;height:max-content;min-height:100%;padding:18px}\n.rvb-lightbox-image{width:auto!important;max-width:100%;height:auto;max-height:calc(100vh - 128px);object-fit:contain;touch-action:pan-y;box-shadow:0 25px 70px rgba(0,0,0,.45);opacity:0;transform:translateY(10px) scale(.985);transform-origin:center center;transition:opacity .32s ease,transform .42s cubic-bezier(.22,1,.36,1)}\n.rvb-lightbox-open .rvb-lightbox-image{opacity:1;transform:translateY(0) scale(1)}\n.rvb-lightbox-stage.rvb-lightbox-zoomed .rvb-lightbox-image{max-width:none;max-height:none;cursor:zoom-out;touch-action:auto}\n.rvb-lightbox-caption{max-width:760px;min-height:16px;color:#ded2c0;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:700;line-height:1.45;letter-spacing:.6px;text-align:center;text-transform:uppercase}\n\n@media(max-width:960px){\n.rvb-hero,.rvb-contact{grid-template-columns:1fr}\n.rvb-hero-copy{border-top:1px solid rgba(92,70,46,.17);border-left:0}\n.rvb-tests{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}\n}\n@media(max-width:680px){\n.rvb-home-nav{min-height:58px;padding:8px 11px}\n.rvb-gv{padding:7px}\n.rvb-gv-arrow{width:40px;height:40px;margin-top:-20px;font-size:18px}\n.rvb-gv-thumb{width:64px}\n.rvb-gv-hint{display:none}\n.rvb-hero-copy{padding:20px 18px 24px}\n.rvb-hero h2{font-size:clamp(24px,6.6vw,30px);letter-spacing:-.8px}\n.rvb-price{padding:11px 13px}\n.rvb-mini-wa{align-self:stretch;justify-content:flex-start}\n.rvb-quick-data{gap:1px}\n.rvb-quick-item{padding:9px 11px}\n.rvb-section{padding:24px 18px}\n.rvb-dl-row{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:8px;padding:7px 10px}\n.rvb-dl dt{font-size:8px;letter-spacing:.6px}\n.rvb-dl dd{font-size:12.5px;line-height:1.42}\n.rvb-tests{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}\n.rvb-contact{gap:16px;padding:24px 18px}\n.rvb-contact-copy strong{font-size:21px}\n.rvb-contact-copy small{font-size:12px}\n.rvb-button{width:100%;min-width:0;min-height:64px}\n.rvb-whatsapp-icon{flex:0 0 42px;width:42px;height:42px}\n.rvb-whatsapp-icon svg{width:22px;height:22px}\n.rvb-bottom-button{width:100%}\n.rvb-seo{padding:19px 18px 21px}\n.rvb-seo h2{font-size:17px}\n.rvb-seo-copy{font-size:10.5px}\n.rvb-seo-queries{font-size:8.7px}\n.rvb-lightbox{padding:10px}\n.rvb-lightbox-bar{padding-bottom:10px}\n.rvb-lightbox-back{padding:9px 12px;font-size:9px}\n.rvb-lightbox-counter,.rvb-lightbox-zoom-text{display:none}\n.rvb-lightbox-zoom{flex:0 0 44px;width:44px;padding:9px}\n.rvb-lightbox-nav{width:42px;height:42px;margin-top:-21px;font-size:19px}\n.rvb-lightbox-image{max-height:calc(100vh - 116px)}\n.rvb-lightbox-stage.rvb-lightbox-zoomed .rvb-lightbox-figure{padding:10px}\n}\n@media(prefers-reduced-motion:reduce){\n.rvb-shell.rvb-js .rvb-reveal{opacity:1;transform:none;transition:none}\n.rvb-home-return,.rvb-home-return-icon,.rvb-gv-thumb,.rvb-gv-arrow,.rvb-related-all-link,.rvb-related-all-link b,.rvb-button,.rvb-button::before,.rvb-button::after,.rvb-whatsapp-icon,.rvb-mini-wa,.rvb-button-arrow,.rvb-bottom-button,.rvb-bottom-button b,.rvb-lightbox,.rvb-lightbox-image,.rvb-lightbox-back,.rvb-lightbox-zoom,.rvb-lightbox-nav{transition:none!important}\n.rvb-gv-thumbs,.rvb-lightbox-stage{scroll-behavior:auto}\n}\n.rvb-related,.rvb-related *{box-sizing:border-box}.rvb-related{position:relative;isolation:isolate;padding:clamp(38px,5.5vw,62px) clamp(22px,6vw,70px);overflow:hidden;border-top:1px solid rgba(92,70,46,.15);background:radial-gradient(circle at 100% 0,rgba(140,32,39,.09),transparent 34%),linear-gradient(180deg,#fffaf1 0%,#f2e8d8 100%)}.rvb-related::before{content:\"\";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--wine),var(--brass) 58%,transparent 94%)}.rvb-related-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:25px}.rvb-related-kicker{margin:0 0 9px;color:var(--wine);font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;line-height:1.35;letter-spacing:1.45px;text-transform:uppercase}.rvb-related h2{margin:0;color:var(--ink);font-size:clamp(31px,4.2vw,49px);font-weight:400;line-height:1;letter-spacing:-1.25px}.rvb-related-intro{max-width:690px;margin:12px 0 0;color:var(--soft);font-size:15px;line-height:1.62}.rvb-related-controls{display:flex;align-items:center;gap:8px}.rvb-related-controls[hidden]{display:none!important}.rvb-related-button{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(52,41,31,.34);border-radius:50%;background:rgba(255,250,241,.9);color:var(--ink);cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:20px;line-height:1;transition:transform .24s ease,border-color .24s ease,background-color .24s ease,color .24s ease,opacity .24s ease}.rvb-related-button:hover,.rvb-related-button:focus-visible{color:#fff;border-color:var(--wine);background:var(--wine);outline:none;transform:translateY(-2px)}.rvb-related-button:focus-visible{outline:2px solid rgba(140,32,39,.3);outline-offset:3px}.rvb-related-button:disabled{opacity:.28;cursor:default;transform:none}.rvb-related-window{position:relative;overflow:hidden}.rvb-related-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 24px) \/ 3);gap:12px;padding:3px 2px 16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.rvb-related-track::-webkit-scrollbar{display:none}.rvb-related[data-count=\"2\"] .rvb-related-track{grid-auto-columns:calc((100% - 12px) \/ 2)}.rvb-related[data-count=\"1\"] .rvb-related-track{grid-auto-columns:min(370px,100%)}.rvb-related-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:350px;overflow:hidden;scroll-snap-align:start;color:var(--ink)!important;border:1px solid rgba(94,72,47,.27);background:var(--light);box-shadow:0 14px 30px rgba(53,39,25,.08);text-decoration:none!important;transform:translateZ(0);transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease,border-color .3s ease}.rvb-related-card:visited{color:var(--ink)!important}.rvb-related-card:hover,.rvb-related-card:focus-visible{color:var(--ink)!important;border-color:rgba(140,32,39,.55);box-shadow:0 21px 42px rgba(53,39,25,.15);text-decoration:none!important;transform:translateY(-5px)}.rvb-related-card:focus-visible{outline:2px solid var(--wine);outline-offset:-3px}.rvb-related-media{position:relative;aspect-ratio:4\/3;overflow:hidden;background:radial-gradient(circle at 50% 38%,rgba(194,164,119,.3),transparent 27%),linear-gradient(145deg,#36291f,#171310)}.rvb-related-media::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:38%;pointer-events:none;background:linear-gradient(transparent,rgba(17,13,10,.55))}.rvb-related-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease}.rvb-related-card:hover .rvb-related-media img{filter:saturate(1.04) contrast(1.03);transform:scale(1.045)}.rvb-related-fallback{position:absolute;inset:0;display:grid;place-items:center;padding:25px;color:#d8c7aa;font-family:Arial,Helvetica,sans-serif;font-size:10px;font-weight:800;line-height:1.45;letter-spacing:1px;text-align:center;text-transform:uppercase}.rvb-related-statuses{position:absolute;z-index:3;left:11px;bottom:11px;display:flex;flex-wrap:wrap;gap:5px;max-width:calc(100% - 22px)}.rvb-related-status{display:inline-flex;align-items:center;min-height:25px;padding:5px 8px;color:#fff8eb;border:1px solid rgba(255,255,255,.34);background:rgba(23,19,16,.84);font-family:Arial,Helvetica,sans-serif;font-size:8px;font-weight:800;line-height:1.2;letter-spacing:.8px;text-transform:uppercase}.rvb-related-body{display:flex;flex:1;flex-direction:column;padding:17px 17px 16px}.rvb-related-category{margin:0 0 8px;color:var(--wine);font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;line-height:1.35;letter-spacing:1px;text-transform:uppercase}.rvb-related-card h3{margin:0;color:var(--ink);font-size:clamp(18px,1.8vw,22px);font-weight:400;line-height:1.17}.rvb-related-open{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:15px;color:var(--soft);border-top:1px solid rgba(94,72,47,.17);font-family:Arial,Helvetica,sans-serif;font-size:9px;font-weight:800;line-height:1.25;letter-spacing:.75px;text-transform:uppercase}.rvb-related-open b{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(140,32,39,.35);border-radius:50%;color:var(--wine);font-size:13px;transition:transform .28s ease,background-color .28s ease,color .28s ease}.rvb-related-card:hover .rvb-related-open b{color:#fff;background:var(--wine);transform:translateX(3px)}.rvb-related-loading{pointer-events:none}.rvb-related-loading .rvb-related-media,.rvb-related-loading .rvb-related-category,.rvb-related-loading h3,.rvb-related-loading .rvb-related-open{color:transparent!important;border-color:transparent!important;background:linear-gradient(100deg,rgba(52,41,31,.07) 25%,rgba(255,255,255,.72) 42%,rgba(52,41,31,.07) 60%);background-size:220% 100%;animation:rvb-related-loading 1.5s ease-in-out infinite}@keyframes rvb-related-loading{from{background-position:100% 0}to{background-position:-100% 0}}.rvb-related-empty{grid-column:1\/-1;width:min(760px,90vw);padding:30px 32px;border:1px solid rgba(94,72,47,.24);background:rgba(255,250,241,.75);color:var(--soft);font-size:15px;line-height:1.6}.rvb-related-empty strong{display:block;margin-bottom:7px;color:var(--ink);font-size:22px;font-weight:400}@media(max-width:900px){.rvb-related-track,.rvb-related[data-count=\"2\"] .rvb-related-track{grid-auto-columns:calc((100% - 12px) \/ 2)}.rvb-related[data-count=\"1\"] .rvb-related-track{grid-auto-columns:min(370px,100%)}}@media(max-width:620px){.rvb-related{padding:38px 21px}.rvb-related-head{grid-template-columns:1fr;gap:15px}.rvb-related-track,.rvb-related[data-count=\"2\"] .rvb-related-track,.rvb-related[data-count=\"1\"] .rvb-related-track{grid-auto-columns:100%;gap:14px}.rvb-related-card{min-height:0;scroll-snap-stop:always}.rvb-related-body{min-height:175px}}@media(prefers-reduced-motion:reduce){.rvb-related-track{scroll-behavior:auto}.rvb-related-card,.rvb-related-media img,.rvb-related-button,.rvb-related-open b{transition:none!important}.rvb-related-loading .rvb-related-media,.rvb-related-loading .rvb-related-category,.rvb-related-loading h3,.rvb-related-loading .rvb-related-open{animation:none}}\n<\/style>\n<!-- RADIO RURALE = TEMPLATE ARTICOLO VALVOLA = versione v1 = si sostituisce solo il testo fra doppie graffe = istruzioni complete nel file ISTRUZIONI.md -->\n<article class=\"rvb-shell\" data-rvb-state=\"disponibile\" data-rvb-template=\"radiorurale-valvole-v1\">\n\n<nav class=\"rvb-home-nav\" aria-label=\"Navigazione categoria\">\n<a class=\"rvb-home-return\" href=\"https:\/\/www.radiorurale.it\/radio\/valvole-audio-vintage-nos-testate-in-vendita-2\/\" aria-label=\"Torna a Home Valvole\">\n<span class=\"rvb-home-return-icon\" aria-hidden=\"true\">&#8592;<\/span><span class=\"rvb-home-return-copy\"><small>Torna alla<\/small><strong>Home Valvole<\/strong><\/span>\n<\/a>\n<\/nav>\n\n<!-- SEZIONE 1 = TESTATA CON GALLERIA -->\n<section class=\"rvb-hero\" aria-labelledby=\"rvb-title\">\n<div class=\"rvb-gv\" data-rvb-gallery>\n<div class=\"rvb-gv-stage\">\n<a class=\"rvb-gv-main\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp\" data-rvb-gv-open aria-label=\"Apri la fotografia a schermo intero\">\n<img data-rvb-gv-image src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp\" alt=\"Stabilovolt STV 280\/40 NOS con scatola originale\" loading=\"eager\" fetchpriority=\"high\" decoding=\"async\">\n<\/a>\n<button class=\"rvb-gv-arrow rvb-gv-prev\" type=\"button\" data-rvb-gv-prev aria-label=\"Fotografia precedente\">&#8592;<\/button>\n<button class=\"rvb-gv-arrow rvb-gv-next\" type=\"button\" data-rvb-gv-next aria-label=\"Fotografia successiva\">&#8594;<\/button>\n<span class=\"rvb-gv-counter\" data-rvb-gv-counter><\/span>\n<span class=\"rvb-gv-hint\">Clicca per ingrandire<\/span>\n<\/div>\n\n<!-- MINIATURE = una riga per foto, tutte identiche = URL ripetuto due volte nella stessa riga = la prima riga deve avere lo stesso URL della foto grande qui sopra = il contatore si scrive da solo = funziona da 1 a 60 foto -->\n<div class=\"rvb-gv-thumbs\" data-rvb-gv-thumbs role=\"group\" aria-label=\"Miniature delle fotografie\">\n<a class=\"rvb-gv-thumb\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp\"><img src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp\" alt=\"Stabilovolt STV 280\/40 NOS con scatola originale\" loading=\"lazy\" decoding=\"async\"><\/a>\n<a class=\"rvb-gv-thumb\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/2-Stabilovolt-STV-28040-NOS-.webp\"><img src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/2-Stabilovolt-STV-28040-NOS-.webp\" alt=\"Stabilovolt STV 280\/40 NOS con confezione originale\" loading=\"lazy\" decoding=\"async\"><\/a>\n<a class=\"rvb-gv-thumb\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/3-Stabilovolt-STV-28040-NOS.webp\"><img src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/3-Stabilovolt-STV-28040-NOS.webp\" alt=\"Stabilovolt STV 280\/40 NOS con foglio dati originale\" loading=\"lazy\" decoding=\"async\"><\/a>\n<a class=\"rvb-gv-thumb\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/4-Stabilovolt-STV-28040-NOS.webp\"><img src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/4-Stabilovolt-STV-28040-NOS.webp\" alt=\"Stabilovolt STV 280\/40 voltage stabilizer tube vintage\" loading=\"lazy\" decoding=\"async\"><\/a>\n<a class=\"rvb-gv-thumb\" href=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/5-Stabilovolt-STV-28040-NOS.webp\"><img src=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/5-Stabilovolt-STV-28040-NOS.webp\" alt=\"Stabilovolt STV 280\/40 scatola e documentazione originale\" loading=\"lazy\" decoding=\"async\"><\/a>\n<\/div>\n<\/div>\n\n<div class=\"rvb-hero-copy\">\n<p class=\"rvb-kicker\">Valvola stabilizzatrice di tensione vintage<\/p>\n<h2 id=\"rvb-title\">Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati<\/h2>\n\n<!-- PREZZO = si scrive una volta sola in tutta la pagina = in fondo si copia da solo -->\n<div class=\"rvb-price\">\n<div>\n<span class=\"rvb-price-label\">Prezzo<\/span>\n<strong class=\"rvb-price-value\">30 &euro;<\/strong>\n<\/div>\n\n<!-- BADGE = ordine fisso = 1 stato, 2 condizione, 3 prova, 4 quantita, 5 corredo = la prima riga non si tocca mai, si comanda con data rvb state in cima -->\n<ul class=\"rvb-badges\" aria-label=\"Stato e caratteristiche\">\n<li class=\"rvb-badge rvb-badge-status\" data-rvb-state-badge>Disponibile<\/li>\n<li class=\"rvb-badge\">NOS<\/li>\n<li class=\"rvb-badge\">Documentata<\/li>\n<li class=\"rvb-badge\">Singola<\/li>\n<li class=\"rvb-badge\">Scatola + foglio dati<\/li>\n<\/ul>\n<\/div>\n\n<a class=\"rvb-mini-wa\" href=\"https:\/\/wa.me\/393382508144\" data-rvb-wa target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Scrivi a Gleb su WhatsApp\">\n<span class=\"rvb-mini-wa-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 32 32\"><path d=\"M16.03 3.2c-6.93 0-12.57 5.61-12.57 12.51 0 2.2.58 4.35 1.68 6.24L3.36 28.8l7.04-1.84a12.59 12.59 0 0 0 5.62 1.34h.01c6.93 0 12.57-5.61 12.57-12.51S22.96 3.2 16.03 3.2Zm0 22.99h-.01a10.45 10.45 0 0 1-5.32-1.45l-.38-.23-4.18 1.1 1.12-4.06-.25-.42a10.35 10.35 0 0 1-1.6-5.51c0-5.73 4.69-10.39 10.46-10.39 2.79 0 5.42 1.08 7.39 3.04a10.3 10.3 0 0 1 3.07 7.35c0 5.73-4.69 10.39-10.46 10.39Zm5.74-7.78c-.31-.16-1.86-.91-2.15-1.02-.29-.1-.5-.16-.71.16-.21.31-.81 1.02-1 1.23-.18.21-.37.23-.68.08-.31-.16-1.33-.49-2.53-1.56a9.44 9.44 0 0 1-1.75-2.17c-.18-.31-.02-.48.14-.64.14-.14.31-.36.47-.55.16-.18.21-.31.31-.52.1-.21.05-.39-.03-.55-.08-.16-.71-1.71-.97-2.34-.26-.61-.52-.53-.71-.54h-.6c-.21 0-.55.08-.84.39-.29.31-1.1 1.07-1.1 2.62s1.13 3.04 1.29 3.25c.16.21 2.23 3.39 5.4 4.75.75.32 1.34.52 1.8.66.76.24 1.45.2 1.99.12.61-.09 1.86-.76 2.12-1.49.26-.73.26-1.36.18-1.49-.08-.13-.29-.21-.6-.36Z\"\/><\/svg><\/span>\n<span class=\"rvb-mini-wa-copy\"><small>Gleb - Radio Rurale<\/small><strong>WhatsApp 338 250 8144<\/strong><\/span>\n<\/a>\n\n<p class=\"rvb-subtitle\">Valvola stabilizzatrice Stabilovolt STV 280\/40 conservata come NOS, completa di scatola originale d&rsquo;epoca e foglio dati originale.<\/p>\n\n<!-- DATI RAPIDI = usare 2, 4 oppure 6 riquadri = i primi due devono restare Marca e Modello perche li legge la vetrina correlata -->\n<div class=\"rvb-quick-data\" aria-label=\"Dati principali\">\n<div class=\"rvb-quick-item\"><span>Marca<\/span><strong>Stabilovolt<\/strong><\/div>\n<div class=\"rvb-quick-item\"><span>Modello<\/span><strong>STV 280\/40<\/strong><\/div>\n<div class=\"rvb-quick-item\"><span>Tipologia<\/span><strong>Voltage stabilizer tube<\/strong><\/div>\n<div class=\"rvb-quick-item\"><span>Corredo<\/span><strong>Scatola originale + foglio dati<\/strong><\/div>\n<\/div>\n<\/div>\n<\/section>\n\n\n<!-- SEZIONE 3 = DESCRIZIONE E SCHEDA -->\n<section class=\"rvb-section rvb-section-light\" aria-labelledby=\"rvb-description-title\">\n<div class=\"rvb-block-head\">\n<p class=\"rvb-kicker\">Descrizione<\/p>\n<h2 id=\"rvb-description-title\">Stabilovolt STV 280\/40 NOS con scatola e foglio dati originali<\/h2>\n<\/div>\n\n<!-- DESCRIZIONE = massimo 2 paragrafi, massimo 60 parole ciascuno = non ripetere dati gia presenti nella scheda -->\n<div class=\"rvb-description\">\n<p>La Stabilovolt STV 280\/40 \u00e8 una valvola stabilizzatrice di tensione vintage, proposta in condizione NOS. Si tratta di un esemplare conservato con scatola originale d&rsquo;epoca, particolarmente interessante per collezionismo, restauro e apparecchiature elettroniche storiche.<\/p>\n<p>Il lotto comprende anche il foglio dati originale, elemento utile sia come documentazione tecnica sia come completamento collezionistico. Valvola, confezione e documentazione vengono offerte insieme esattamente come mostrate nelle fotografie.<\/p>\n<\/div>\n\n<details class=\"rvb-accordion\">\n<summary class=\"rvb-accordion-summary\"><span>Equivalenze, sostituzione e apparecchiature compatibili<\/span><span class=\"rvb-accordion-summary-icon\" aria-hidden=\"true\">+<\/span><\/summary>\n<div class=\"rvb-fold\">\n<div class=\"rvb-fold-block\">\n<p class=\"rvb-fold-title\">Equivalenze e sostituzione<\/p>\n<p class=\"rvb-fold-text\">Per una sostituzione corretta utilizzare un altro esemplare STV 280\/40 e verificare sempre piedinatura, limiti elettrici e compatibilit&agrave; previsti dal costruttore dell&rsquo;apparecchiatura.<\/p>\n<\/div>\n<p class=\"rvb-fold-note\">Le fotografie ritraggono le valvole effettivamente in vendita.<\/p>\n<\/div>\n<\/details>\n\n<h3 class=\"rvb-block-title\">Dettagli del prodotto<\/h3>\n\n<!-- SCHEDA = una riga per dato = righe cancellabili tutte tranne Marca, Modello, Tipologia, Condizioni = le etichette Marca, Modello, Tipologia e Costruzione vanno lasciate scritte cosi perche le legge la vetrina correlata -->\n<dl class=\"rvb-dl\">\n<div class=\"rvb-dl-row\"><dt>Marca \/ Manifattura \/ Stabilimento<\/dt><dd>Stabilovolt \/ Non specificato<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Modello<\/dt><dd>STV 280\/40<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Tipologia<\/dt><dd>Valvola stabilizzatrice di tensione<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Condizioni<\/dt><dd>NOS - New Old Stock - scatola originale d&rsquo;epoca e foglio dati originale<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Caratteristiche fisiche \/ Rilevanze<\/dt><dd>Scatola originale d&rsquo;epoca; foglio dati tecnico originale; stato estetico documentato in fotografia<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Utilizzo<\/dt><dd>Stabilizzazione della tensione in apparecchiature elettroniche vintage<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Raccomandate per<\/dt><dd>Collezionismo, restauro elettronica vintage, ricambi per apparecchiature storiche<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Scatole originali<\/dt><dd>Presente - scatola originale d&rsquo;epoca + foglio dati originale<\/dd><\/div>\n<div class=\"rvb-dl-row\"><dt>Note<\/dt><dd>Ritiro a mano possibile a Milano, zona 20154<\/dd><\/div>\n<\/dl>\n\n<\/section>\n\n<!-- SEZIONE 4 = VETRINA CORRELATA = BLOCCO FISSO, non si modifica mai in nessun articolo -->\n<section\nclass=\"rvb-related\"\ndata-rvb-related\ndata-rvb-version=\"20260808-category-tree-v7\"\ndata-parent-category=\"750\"\ndata-max-pages=\"5\"\ndata-max-results=\"18\"\ndata-autoplay-ms=\"5200\"\ndata-endpoint=\"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/posts?per_page=100&amp;_embed=wp%3Afeaturedmedia%2Cwp%3Aterm&amp;categories=750&amp;orderby=date&amp;order=desc&amp;_fields=id%2Clink%2Cslug%2Cdate%2Ctitle%2Cexcerpt%2Ccategories%2Cyoast_head_json%2C_embedded%2C_links\"\naria-labelledby=\"rvb-related-title\"\n>\n<div class=\"rvb-related-head\">\n<div>\n<p class=\"rvb-related-kicker\">Selezione correlata<\/p>\n<h2 id=\"rvb-related-title\">Valvole che potrebbero interessarti<\/h2>\n<p class=\"rvb-related-intro\">Prima le valvole pi&ugrave; simili per tipologia e caratteristiche, poi le altre della stessa famiglia e infine le alternative disponibili.<\/p>\n<\/div>\n<div class=\"rvb-related-controls\" data-rvb-related-controls hidden>\n<button class=\"rvb-related-button\" type=\"button\" data-rvb-related-prev aria-label=\"Valvole precedenti\">&#8592;<\/button>\n<button class=\"rvb-related-button\" type=\"button\" data-rvb-related-next aria-label=\"Valvole successive\">&#8594;<\/button>\n<\/div>\n<\/div>\n<div class=\"rvb-related-window\">\n<div class=\"rvb-related-track\" data-rvb-related-track aria-live=\"polite\" aria-busy=\"true\">\n<div class=\"rvb-related-card rvb-related-loading\" aria-hidden=\"true\">\n<div class=\"rvb-related-media\"><\/div>\n<div class=\"rvb-related-body\">\n<p class=\"rvb-related-category\">Caricamento<\/p>\n<h3>Valvola correlata<\/h3>\n<span class=\"rvb-related-open\">Apri articolo<\/span>\n<\/div>\n<\/div>\n<div class=\"rvb-related-card rvb-related-loading\" aria-hidden=\"true\">\n<div class=\"rvb-related-media\"><\/div>\n<div class=\"rvb-related-body\">\n<p class=\"rvb-related-category\">Caricamento<\/p>\n<h3>Valvola correlata<\/h3>\n<span class=\"rvb-related-open\">Apri articolo<\/span>\n<\/div>\n<\/div>\n<div class=\"rvb-related-card rvb-related-loading\" aria-hidden=\"true\">\n<div class=\"rvb-related-media\"><\/div>\n<div class=\"rvb-related-body\">\n<p class=\"rvb-related-category\">Caricamento<\/p>\n<h3>Valvola correlata<\/h3>\n<span class=\"rvb-related-open\">Apri articolo<\/span>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"rvb-related-all\">\n<a class=\"rvb-related-all-link\" href=\"https:\/\/www.radiorurale.it\/radio\/category\/valvole-vintage-nos-usate-testate\/\">\n<span>Scopri tutte le valvole disponibili<\/span><b aria-hidden=\"true\">&#8594;<\/b>\n<\/a>\n<\/div>\n<\/section>\n\n<!-- SEZIONE 5 = CONTATTO WHATSAPP = le prime due pillole si compilano da sole con prezzo e stato = il messaggio WhatsApp si scrive da solo dal titolo -->\n<section class=\"rvb-contact\" aria-label=\"Disponibilit&agrave; e contatti\">\n<div class=\"rvb-contact-copy\">\n<ul class=\"rvb-contact-tags\" aria-label=\"Riepilogo\">\n<li class=\"rvb-contact-tag-price\" data-rvb-price-echo><\/li>\n<li data-rvb-state-echo><\/li>\n<li>Spedizione assicurata<\/li>\n<li>Ritiro a Milano<\/li>\n<\/ul>\n<strong>Richiedi informazioni sulla Stabilovolt STV 280\/40.<\/strong>\n<small>Per fotografie aggiuntive, dettagli sulla documentazione o informazioni sulla disponibilit&agrave;, contatta Gleb direttamente su WhatsApp.<\/small>\n<\/div>\n<a class=\"rvb-button\" href=\"https:\/\/wa.me\/393382508144\" data-rvb-wa target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Scrivi su WhatsApp a Radio Rurale\">\n<span class=\"rvb-whatsapp-icon\" aria-hidden=\"true\"><svg viewBox=\"0 0 32 32\"><path d=\"M16.03 3.2c-6.93 0-12.57 5.61-12.57 12.51 0 2.2.58 4.35 1.68 6.24L3.36 28.8l7.04-1.84a12.59 12.59 0 0 0 5.62 1.34h.01c6.93 0 12.57-5.61 12.57-12.51S22.96 3.2 16.03 3.2Zm0 22.99h-.01a10.45 10.45 0 0 1-5.32-1.45l-.38-.23-4.18 1.1 1.12-4.06-.25-.42a10.35 10.35 0 0 1-1.6-5.51c0-5.73 4.69-10.39 10.46-10.39 2.79 0 5.42 1.08 7.39 3.04a10.3 10.3 0 0 1 3.07 7.35c0 5.73-4.69 10.39-10.46 10.39Zm5.74-7.78c-.31-.16-1.86-.91-2.15-1.02-.29-.1-.5-.16-.71.16-.21.31-.81 1.02-1 1.23-.18.21-.37.23-.68.08-.31-.16-1.33-.49-2.53-1.56a9.44 9.44 0 0 1-1.75-2.17c-.18-.31-.02-.48.14-.64.14-.14.31-.36.47-.55.16-.18.21-.31.31-.52.1-.21.05-.39-.03-.55-.08-.16-.71-1.71-.97-2.34-.26-.61-.52-.53-.71-.54h-.6c-.21 0-.55.08-.84.39-.29.31-1.1 1.07-1.1 2.62s1.13 3.04 1.29 3.25c.16.21 2.23 3.39 5.4 4.75.75.32 1.34.52 1.8.66.76.24 1.45.2 1.99.12.61-.09 1.86-.76 2.12-1.49.26-.73.26-1.36.18-1.49-.08-.13-.29-.21-.6-.36Z\"\/><\/svg><\/span>\n<span class=\"rvb-whatsapp-copy\"><small>Risposta diretta di Gleb<\/small><strong>Contatta su WhatsApp<\/strong><span class=\"rvb-wa-number\">338 250 8144<\/span><\/span>\n<b class=\"rvb-button-arrow\" aria-hidden=\"true\"><\/b>\n<\/a>\n<\/section>\n\n<!-- SEZIONE 6 = BLOCCO SEO -->\n<section class=\"rvb-seo\" aria-labelledby=\"rvb-seo-title\">\n<div class=\"rvb-seo-inner\">\n<p class=\"rvb-seo-kicker\">Valutazione e acquisto valvole vintage<\/p>\n<h2 id=\"rvb-seo-title\">Valutazione Stabilovolt STV 280\/40 NOS<\/h2>\n<p class=\"rvb-seo-copy\"><strong>Stabilovolt STV 280\/40<\/strong> conservata come <strong>NOS<\/strong>, completa di <strong>scatola originale d&rsquo;epoca<\/strong> e <strong>foglio dati originale<\/strong>. Valvola stabilizzatrice di tensione vintage proposta con documentazione fotografica completa.<\/p>\n<p class=\"rvb-seo-copy rvb-seo-copy-secondary\">Radio Rurale valuta e acquista Stabilovolt STV 280\/40, valvole NOS, valvole testate, coppie selezionate e collezioni di tubi audio e radio. Le valutazioni possono essere richieste da <strong>Milano e da tutta Italia<\/strong> inviando fotografie, marcature, scatole originali e, quando disponibili, misurazioni o dati di prova.<\/p>\n<ul class=\"rvb-seo-queries\" aria-label=\"Ricerche correlate\">\n<li>Stabilovolt STV 280 40 NOS<\/li>\n<li>STV 280 40 voltage stabilizer tube<\/li>\n<li>Stabilovolt STV 280 40 scatola originale<\/li>\n<li>valvola stabilizzatrice STV 280 40<\/li>\n<li>Stabilovolt STV 280 40 foglio dati<\/li>\n<li>quanto vale Stabilovolt STV 280 40<\/li>\n<\/ul>\n<\/div>\n<\/section>\n\n<div class=\"rvb-bottom-link\"><a class=\"rvb-bottom-button\" href=\"https:\/\/www.radiorurale.it\/radio\/valvole-audio-vintage-nos-testate-in-vendita-2\/\"><b aria-hidden=\"true\">&#8592;<\/b><span>Torna a Home Valvole<\/span><\/a><\/div>\n<\/article>\n<div class=\"rvb-lightbox\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Fotografia a schermo intero\" aria-hidden=\"true\" hidden>\n<div class=\"rvb-lightbox-bar\">\n<button class=\"rvb-lightbox-back\" type=\"button\"><span aria-hidden=\"true\">&#8592;<\/span><span>Torna all&rsquo;articolo<\/span><\/button>\n<div class=\"rvb-lightbox-tools\">\n<span class=\"rvb-lightbox-counter\" aria-live=\"polite\"><\/span>\n<button class=\"rvb-lightbox-zoom\" type=\"button\" aria-label=\"Ingrandisci fotografia\" aria-pressed=\"false\" title=\"Ingrandisci fotografia\">\n<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n<circle cx=\"10.5\" cy=\"10.5\" r=\"6.5\"><\/circle>\n<path d=\"M15.5 15.5 21 21\"><\/path>\n<path class=\"rvb-zoom-plus\" d=\"M10.5 7.5v6M7.5 10.5h6\"><\/path>\n<path class=\"rvb-zoom-minus\" d=\"M7.5 10.5h6\"><\/path>\n<\/svg>\n<span class=\"rvb-lightbox-zoom-text\">Ingrandisci<\/span>\n<\/button>\n<\/div>\n<\/div>\n<button class=\"rvb-lightbox-nav rvb-lightbox-nav-prev\" type=\"button\" aria-label=\"Fotografia precedente\">&#8592;<\/button>\n<button class=\"rvb-lightbox-nav rvb-lightbox-nav-next\" type=\"button\" aria-label=\"Fotografia successiva\">&#8594;<\/button>\n<div class=\"rvb-lightbox-stage\">\n<figure class=\"rvb-lightbox-figure\">\n<img decoding=\"async\" class=\"rvb-lightbox-image\" src=\"\" alt=\"\">\n<figcaption class=\"rvb-lightbox-caption\"><\/figcaption>\n<\/figure>\n<\/div>\n<\/div>\n<script>\n(function () {\n\"use strict\";\n\nfunction safeRun(task, label) {\ntry { return task(); }\ncatch (error) {\nif (window.console && window.console.warn) window.console.warn(\"[RVB] \" + (label || \"modulo\") + \":\", error);\nreturn null;\n}\n}\n\nvar RVB_STATES = {\n\"disponibile\": { label: \"Disponibile\", css: \"rvb-badge-status\" },\n\"prenotata\": { label: \"Prenotata\", css: \"rvb-badge-warn\" },\n\"venduta\": { label: \"Venduta\", css: \"rvb-badge-sold\" }\n};\n\nfunction initRvbState() {\nvar shell = document.querySelector(\".rvb-shell\");\nif (!shell) return;\nvar raw = String(shell.getAttribute(\"data-rvb-state\") || \"disponibile\").toLowerCase().trim();\nvar key = RVB_STATES[raw] ? raw : \"disponibile\";\nvar state = RVB_STATES[key];\nshell.setAttribute(\"data-rvb-state\", key);\nshell.querySelectorAll(\"[data-rvb-state-badge]\").forEach(function (node) {\nnode.textContent = state.label;\nnode.classList.remove(\"rvb-badge-status\", \"rvb-badge-warn\", \"rvb-badge-sold\");\nnode.classList.add(\"rvb-badge\", state.css);\n});\nshell.querySelectorAll(\"[data-rvb-state-echo]\").forEach(function (node) {\nnode.textContent = state.label;\nnode.hidden = false;\n});\n}\n\nfunction initRvbEchoes() {\nvar shell = document.querySelector(\".rvb-shell\");\nif (!shell) return;\nvar source = shell.querySelector(\".rvb-price-value\");\nvar price = source ? String(source.textContent || \"\").replace(\/\\s+\/g, \" \").trim() : \"\";\nshell.querySelectorAll(\"[data-rvb-price-echo]\").forEach(function (node) {\nif (price) { node.textContent = price; node.hidden = false; }\nelse { node.textContent = \"\"; node.hidden = true; }\n});\n}\n\nfunction initRvbWhatsapp() {\nvar shell = document.querySelector(\".rvb-shell\");\nif (!shell) return;\nvar links = document.querySelectorAll(\"[data-rvb-wa]\");\nif (!links.length) return;\nvar titleNode = shell.querySelector(\"#rvb-title\");\nvar title = titleNode ? String(titleNode.textContent || \"\").replace(\/\\s+\/g, \" \").trim() : \"\";\nvar canonical = document.querySelector('link[rel=\"canonical\"]');\nvar pageUrl = \"\";\nif (canonical && canonical.href) {\npageUrl = canonical.href;\n} else {\ntry {\nvar current = new URL(window.location.href);\npageUrl = current.origin + current.pathname;\n} catch (error) {\npageUrl = String(window.location.href || \"\").split(\"?\")[0].split(\"#\")[0];\n}\n}\nvar message = \"Buongiorno, vorrei informazioni su: \" + (title || \"una valvola del sito Radio Rurale\");\nif (pageUrl) message += \"\\n\" + pageUrl;\nvar encoded = encodeURIComponent(message);\nlinks.forEach(function (link) {\nvar href = String(link.getAttribute(\"href\") || \"\");\nvar base = href.split(\"?\")[0];\nif (!\/^https:\\\/\\\/wa\\.me\\\/\\d{6,}$\/.test(base)) return;\nlink.setAttribute(\"href\", base + \"?text=\" + encoded);\n});\n}\n\nfunction initRvbReveals() {\nvar shell = document.querySelector(\".rvb-shell\");\nif (!shell || shell.getAttribute(\"data-rvb-reveal-ready\") === \"true\") return;\nshell.setAttribute(\"data-rvb-reveal-ready\", \"true\");\nvar reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nvar selectors = [\n\".rvb-home-return\",\n\".rvb-test\",\n\".rvb-block-head\",\n\".rvb-description\",\n\".rvb-block-title\",\n\".rvb-dl\",\n\".rvb-related-head\",\n\".rvb-related-all\",\n\".rvb-contact-copy\",\n\".rvb-contact-tags\",\n\".rvb-contact .rvb-button\",\n\".rvb-bottom-button\"\n];\nvar items = shell.querySelectorAll(selectors.join(\",\"));\nfunction showEverything() {\nitems.forEach(function (item) { item.classList.add(\"rvb-visible\"); });\n}\ntry {\nitems.forEach(function (item, index) {\nitem.classList.add(\"rvb-reveal\");\nitem.style.setProperty(\"--rvb-delay\", ((index % 3) * 60) + \"ms\");\n});\nshell.classList.add(\"rvb-js\");\nif (reduceMotion || !(\"IntersectionObserver\" in window)) {\nshowEverything();\nreturn;\n}\nvar observer = new IntersectionObserver(function (entries, currentObserver) {\nentries.forEach(function (entry) {\nif (!entry.isIntersecting) return;\nentry.target.classList.add(\"rvb-visible\");\ncurrentObserver.unobserve(entry.target);\n});\n}, { threshold: 0.1, rootMargin: \"0px 0px -6% 0px\" });\nitems.forEach(function (item) { observer.observe(item); });\nwindow.setTimeout(showEverything, 4000);\n} catch (error) {\nshowEverything();\n}\n}\n\nfunction blockTouchCallout(node) {\nif (!node) return;\nvar coarsePointer = window.matchMedia && window.matchMedia(\"(pointer: coarse)\").matches;\nnode.addEventListener(\"dragstart\", function (event) { event.preventDefault(); });\nif (!coarsePointer) return;\nnode.addEventListener(\"contextmenu\", function (event) { event.preventDefault(); });\nnode.addEventListener(\"selectstart\", function (event) { event.preventDefault(); });\n}\n\nfunction initRvbGallery() {\nvar root = document.querySelector(\"[data-rvb-gallery]\");\nif (!root || root.getAttribute(\"data-rvb-gallery-ready\") === \"true\") return null;\nvar image = root.querySelector(\"[data-rvb-gv-image]\");\nvar opener = root.querySelector(\"[data-rvb-gv-open]\");\nvar strip = root.querySelector(\"[data-rvb-gv-thumbs]\");\nvar thumbs = strip ? Array.prototype.slice.call(strip.querySelectorAll(\"a[href]\")) : [];\nif (!image || !opener || !strip || !thumbs.length) return null;\nroot.setAttribute(\"data-rvb-gallery-ready\", \"true\");\nblockTouchCallout(root);\nvar previous = root.querySelector(\"[data-rvb-gv-prev]\");\nvar next = root.querySelector(\"[data-rvb-gv-next]\");\nvar counter = root.querySelector(\"[data-rvb-gv-counter]\");\nvar total = thumbs.length;\nvar index = 0;\n\nthumbs.forEach(function (thumb, position) {\nthumb.setAttribute(\"aria-label\", \"Foto \" + (position + 1) + \" di \" + total);\nthumb.classList.remove(\"rvb-gv-active\");\n});\n\nif (total < 2) {\nif (previous) previous.hidden = true;\nif (next) next.hidden = true;\nstrip.hidden = true;\nif (counter) counter.textContent = \"\";\n}\n\nfunction photoAt(position) {\nvar thumb = thumbs[position];\nvar thumbImage = thumb.querySelector(\"img\");\nreturn {\nhref: thumb.getAttribute(\"href\"),\nalt: thumbImage ? (thumbImage.getAttribute(\"alt\") || \"Fotografia del prodotto\") : \"Fotografia del prodotto\",\nwidth: thumbImage ? thumbImage.getAttribute(\"width\") : null,\nheight: thumbImage ? thumbImage.getAttribute(\"height\") : null\n};\n}\n\nfunction preload(position) {\nif (position < 0 || position >= total || position === index) return;\nvar preloader = new Image();\npreloader.decoding = \"async\";\npreloader.src = photoAt(position).href;\n}\n\nfunction centerThumb(position) {\nvar thumb = thumbs[position];\nvar stripBox = strip.getBoundingClientRect();\nvar thumbBox = thumb.getBoundingClientRect();\nstrip.scrollLeft += (thumbBox.left - stripBox.left) - ((stripBox.width - thumbBox.width) \/ 2);\n}\n\nfunction show(position, scrollStrip, firstRun) {\nif (position < 0) position = total - 1;\nif (position >= total) position = 0;\nindex = position;\nvar photo = photoAt(position);\nimage.setAttribute(\"src\", photo.href);\nimage.setAttribute(\"alt\", photo.alt);\nif (photo.width) { image.setAttribute(\"width\", photo.width); } else { image.removeAttribute(\"width\"); }\nif (photo.height) { image.setAttribute(\"height\", photo.height); } else { image.removeAttribute(\"height\"); }\nopener.setAttribute(\"href\", photo.href);\nthumbs.forEach(function (thumb, position2) {\nvar active = position2 === index;\nthumb.classList.toggle(\"rvb-gv-active\", active);\nif (active) { thumb.setAttribute(\"aria-current\", \"true\"); } else { thumb.removeAttribute(\"aria-current\"); }\n});\nif (counter && total > 1) counter.textContent = (index + 1) + \" \/ \" + total;\nif (scrollStrip !== false) centerThumb(index);\npreload(index + 1 >= total ? 0 : index + 1);\nif (firstRun !== true) preload(index - 1 < 0 ? total - 1 : index - 1);\n}\n\nthumbs.forEach(function (thumb, position) {\nthumb.addEventListener(\"click\", function (event) {\nevent.preventDefault();\nshow(position);\n});\n});\nif (previous) previous.addEventListener(\"click\", function () { show(index - 1); });\nif (next) next.addEventListener(\"click\", function () { show(index + 1); });\nroot.addEventListener(\"keydown\", function (event) {\nif (event.key === \"ArrowLeft\") { event.preventDefault(); show(index - 1); }\nif (event.key === \"ArrowRight\") { event.preventDefault(); show(index + 1); }\n});\n\nvar startX = 0;\nvar startY = 0;\nvar moved = false;\nvar longPress = false;\nvar pressTimer = null;\nfunction clearPress() {\nif (pressTimer) { window.clearTimeout(pressTimer); pressTimer = null; }\n}\nopener.addEventListener(\"touchstart\", function (event) {\nif (!event.touches || event.touches.length !== 1) {\nclearPress();\nlongPress = true;\nreturn;\n}\nstartX = event.touches[0].clientX;\nstartY = event.touches[0].clientY;\nmoved = false;\nlongPress = false;\nclearPress();\npressTimer = window.setTimeout(function () { longPress = true; }, 420);\n}, { passive: true });\nopener.addEventListener(\"touchcancel\", function () {\nclearPress();\nlongPress = true;\nwindow.setTimeout(function () { longPress = false; moved = false; }, 400);\n}, { passive: true });\nopener.addEventListener(\"touchmove\", function (event) {\nif (!event.touches || event.touches.length !== 1) return;\nvar deltaX = event.touches[0].clientX - startX;\nvar deltaY = event.touches[0].clientY - startY;\nif (Math.abs(deltaX) > 34 && Math.abs(deltaX) > Math.abs(deltaY)) moved = true;\n}, { passive: true });\nopener.addEventListener(\"touchend\", function (event) {\nclearPress();\nif (!moved) {\nif (longPress) window.setTimeout(function () { longPress = false; }, 400);\nreturn;\n}\nvar endX = event.changedTouches && event.changedTouches[0] ? event.changedTouches[0].clientX : startX;\nshow(endX < startX ? index + 1 : index - 1);\nwindow.setTimeout(function () { moved = false; }, 400);\n}, { passive: true });\n\nshow(0, false, true);\n\nreturn {\ncount: total,\nphoto: photoAt,\ncurrent: function () { return index; },\nselect: show,\nswiping: function () { return moved || longPress; },\nopener: opener\n};\n}\n\nfunction initRvbLightbox(gallery) {\nvar lightbox = document.querySelector(\".rvb-lightbox\");\nif (!gallery || !lightbox || lightbox.getAttribute(\"data-rvb-lightbox-ready\") === \"true\") return;\nlightbox.setAttribute(\"data-rvb-lightbox-ready\", \"true\");\nblockTouchCallout(lightbox);\nvar image = lightbox.querySelector(\".rvb-lightbox-image\");\nvar caption = lightbox.querySelector(\".rvb-lightbox-caption\");\nvar counter = lightbox.querySelector(\".rvb-lightbox-counter\");\nvar backButton = lightbox.querySelector(\".rvb-lightbox-back\");\nvar zoomButton = lightbox.querySelector(\".rvb-lightbox-zoom\");\nvar zoomText = lightbox.querySelector(\".rvb-lightbox-zoom-text\");\nvar previous = lightbox.querySelector(\".rvb-lightbox-nav-prev\");\nvar next = lightbox.querySelector(\".rvb-lightbox-nav-next\");\nvar stage = lightbox.querySelector(\".rvb-lightbox-stage\");\nvar total = gallery.count;\nvar index = 0;\n\nif (total < 2) {\nif (previous) previous.hidden = true;\nif (next) next.hidden = true;\n}\n\nfunction setZoom(zoomed) {\nif (!zoomButton || !stage || !image) return;\nif (!zoomed) {\nstage.classList.remove(\"rvb-lightbox-zoomed\");\nlightbox.classList.remove(\"rvb-lightbox-zoomed-on\");\nimage.style.removeProperty(\"width\");\nimage.style.removeProperty(\"max-width\");\nimage.style.removeProperty(\"max-height\");\nzoomButton.setAttribute(\"aria-pressed\", \"false\");\nzoomButton.setAttribute(\"aria-label\", \"Ingrandisci fotografia\");\nzoomButton.setAttribute(\"title\", \"Ingrandisci fotografia\");\nif (zoomText) zoomText.textContent = \"Ingrandisci\";\nstage.scrollLeft = 0;\nstage.scrollTop = 0;\nreturn;\n}\nvar imageRect = image.getBoundingClientRect();\nif (!imageRect.width || !imageRect.height) return;\nvar naturalLimit = image.naturalWidth || (imageRect.width * 2);\nvar zoomWidth = Math.min(imageRect.width * 2, naturalLimit);\nif (zoomWidth <= imageRect.width + 8) zoomWidth = imageRect.width * 2;\nstage.classList.add(\"rvb-lightbox-zoomed\");\nlightbox.classList.add(\"rvb-lightbox-zoomed-on\");\nimage.style.setProperty(\"width\", zoomWidth + \"px\", \"important\");\nimage.style.setProperty(\"max-width\", \"none\");\nimage.style.setProperty(\"max-height\", \"none\");\nzoomButton.setAttribute(\"aria-pressed\", \"true\");\nzoomButton.setAttribute(\"aria-label\", \"Riduci fotografia\");\nzoomButton.setAttribute(\"title\", \"Riduci fotografia\");\nif (zoomText) zoomText.textContent = \"Riduci\";\nwindow.requestAnimationFrame(function () {\nstage.scrollLeft = Math.max(0, (stage.scrollWidth - stage.clientWidth) \/ 2);\nstage.scrollTop = Math.max(0, (stage.scrollHeight - stage.clientHeight) \/ 2);\n});\n}\n\nfunction render(position) {\nif (position < 0) position = total - 1;\nif (position >= total) position = 0;\nindex = position;\nvar photo = gallery.photo(index);\nsetZoom(false);\nimage.setAttribute(\"src\", photo.href);\nimage.setAttribute(\"alt\", photo.alt);\ncaption.textContent = photo.alt;\ncounter.textContent = \"Foto \" + (index + 1) + \" di \" + total;\n}\n\nfunction openLightbox(position) {\nrender(position);\nlightbox.hidden = false;\nlightbox.setAttribute(\"aria-hidden\", \"false\");\ndocument.body.classList.add(\"rvb-lightbox-open\");\nwindow.requestAnimationFrame(function () {\nlightbox.classList.add(\"rvb-lightbox-open\");\nbackButton.focus({ preventScroll: true });\n});\n}\n\nfunction closeLightbox() {\nif (lightbox.hidden) return;\nlightbox.classList.remove(\"rvb-lightbox-open\");\nlightbox.setAttribute(\"aria-hidden\", \"true\");\ndocument.body.classList.remove(\"rvb-lightbox-open\");\ngallery.select(index);\nwindow.setTimeout(function () {\nlightbox.hidden = true;\nsetZoom(false);\nimage.setAttribute(\"src\", \"\");\nif (gallery.opener) gallery.opener.focus({ preventScroll: true });\n}, 250);\n}\n\ngallery.opener.addEventListener(\"click\", function (event) {\nevent.preventDefault();\nif (gallery.swiping && gallery.swiping()) return;\nopenLightbox(gallery.current());\n});\nbackButton.addEventListener(\"click\", closeLightbox);\nif (previous) previous.addEventListener(\"click\", function () { render(index - 1); });\nif (next) next.addEventListener(\"click\", function () { render(index + 1); });\nif (zoomButton) {\nzoomButton.addEventListener(\"click\", function () {\nsetZoom(zoomButton.getAttribute(\"aria-pressed\") !== \"true\");\n});\n}\nlightbox.addEventListener(\"click\", function (event) {\nif (event.target === lightbox || event.target.classList.contains(\"rvb-lightbox-stage\")) closeLightbox();\n});\ndocument.addEventListener(\"keydown\", function (event) {\nif (lightbox.hidden) return;\nif (event.key === \"Escape\") { closeLightbox(); return; }\nif (stage.classList.contains(\"rvb-lightbox-zoomed\")) return;\nif (event.key === \"ArrowLeft\") { event.preventDefault(); render(index - 1); }\nif (event.key === \"ArrowRight\") { event.preventDefault(); render(index + 1); }\n});\n\nvar startX = 0;\nvar startY = 0;\nvar moved = false;\nstage.addEventListener(\"touchstart\", function (event) {\nif (!event.touches || event.touches.length !== 1) return;\nstartX = event.touches[0].clientX;\nstartY = event.touches[0].clientY;\nmoved = false;\n}, { passive: true });\nstage.addEventListener(\"touchmove\", function (event) {\nif (!event.touches || event.touches.length !== 1) return;\nvar deltaX = event.touches[0].clientX - startX;\nvar deltaY = event.touches[0].clientY - startY;\nif (Math.abs(deltaX) > 40 && Math.abs(deltaX) > Math.abs(deltaY)) moved = true;\n}, { passive: true });\nstage.addEventListener(\"touchend\", function (event) {\nif (!moved || stage.classList.contains(\"rvb-lightbox-zoomed\")) return;\nvar endX = event.changedTouches && event.changedTouches[0] ? event.changedTouches[0].clientX : startX;\nrender(endX < startX ? index + 1 : index - 1);\nmoved = false;\n}, { passive: true });\n}\n\nfunction initRvbAccordions() {\nvar accordions = document.querySelectorAll(\".rvb-accordion\");\nif (!accordions.length) return;\nvar isMobile = window.matchMedia && window.matchMedia(\"(max-width: 680px)\").matches;\naccordions.forEach(function (accordion) {\nif (accordion.getAttribute(\"data-rvb-accordion-ready\") === \"true\") return;\naccordion.setAttribute(\"data-rvb-accordion-ready\", \"true\");\nif (isMobile) { accordion.removeAttribute(\"open\"); } else { accordion.setAttribute(\"open\", \"\"); }\n});\n}\n\nfunction initRvbArticle() {\nsafeRun(initRvbState, \"stato\");\nsafeRun(initRvbEchoes, \"riepiloghi\");\nsafeRun(initRvbWhatsapp, \"whatsapp\");\nvar gallery = safeRun(initRvbGallery, \"galleria\");\nsafeRun(function () { initRvbLightbox(gallery); }, \"lightbox\");\nsafeRun(initRvbAccordions, \"tendine\");\nsafeRun(initRvbReveals, \"animazioni\");\n}\n\nif (document.readyState === \"loading\") {\ndocument.addEventListener(\"DOMContentLoaded\", initRvbArticle, { once: true });\n} else {\ninitRvbArticle();\n}\n}());\n<\/script>\n<script>(function () {\n\"use strict\";\nfunction startRelatedValves() {\nvar root = document.querySelector(\"[data-rvb-related]\");\nif (!root || root.getAttribute(\"data-rvb-related-ready\") === \"true\") return;\nvar track = root.querySelector(\"[data-rvb-related-track]\");\nvar controls = root.querySelector(\"[data-rvb-related-controls]\");\nvar previous = root.querySelector(\"[data-rvb-related-prev]\");\nvar next = root.querySelector(\"[data-rvb-related-next]\");\nif (!track || !controls || !previous || !next) return;\nroot.setAttribute(\"data-rvb-related-ready\", \"true\");\nvar reduceMotion =\nwindow.matchMedia &&\nwindow.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\nvar maxPages = Math.max(\n1,\nMath.min(10, parseInt(root.getAttribute(\"data-max-pages\"), 10) || 5)\n);\nvar maxResults = Math.max(\n1,\nMath.min(30, parseInt(root.getAttribute(\"data-max-results\"), 10) || 18)\n);\nvar autoplayMs = Math.max(\n3500,\nparseInt(root.getAttribute(\"data-autoplay-ms\"), 10) || 5200\n);\nfunction normalize(value) {\nvalue = String(value || \"\").toLowerCase();\ntry {\nvalue = value.normalize(\"NFD\").replace(\/[\\u0300-\\u036f]\/g, \"\");\n} catch (e) {}\nreturn value\n.replace(\/[\u2019']\/g, \"\")\n.replace(\/\\s+\/g, \" \")\n.trim();\n}\nfunction compact(value) {\nreturn normalize(value).replace(\/[^a-z0-9]+\/g, \"\");\n}\nfunction decodeHtml(value) {\nvar node = document.createElement(\"textarea\");\nnode.innerHTML = value || \"\";\nreturn node.value.trim();\n}\nfunction stripHtml(value) {\nvar node = document.createElement(\"div\");\nnode.innerHTML = value || \"\";\nreturn (node.textContent || node.innerText || \"\").trim();\n}\nfunction cleanPageUrl(value) {\ntry {\nvar url = new URL(String(value || \"\"), window.location.origin);\nreturn (url.origin + url.pathname)\n.replace(\/\\\/+$\/, \"\")\n.toLowerCase();\n} catch (e) {\nreturn String(value || \"\")\n.split(\"#\")[0]\n.split(\"?\")[0]\n.replace(\/\\\/+$\/, \"\")\n.toLowerCase();\n}\n}\nfunction cleanAssetUrl(value) {\nvar path = \"\";\ntry {\nvar url = new URL(String(value || \"\"), window.location.origin);\npath = url.pathname;\n} catch (e) {\npath = String(value || \"\").split(\"#\")[0].split(\"?\")[0];\n}\nreturn path\n.replace(\/-\\d+x\\d+(?=\\.[a-z0-9]+$)\/i, \"\")\n.replace(\/\\\/+$\/, \"\")\n.toLowerCase();\n}\nfunction slugFromUrl(value) {\ntry {\nvar url = new URL(String(value || \"\"), window.location.origin);\nvar parts = url.pathname.split(\"\/\").filter(Boolean);\nreturn parts.length ? String(parts[parts.length - 1]).toLowerCase() : \"\";\n} catch (e) {\nreturn \"\";\n}\n}\nfunction safeNumber(value, fallback) {\nvar number = parseInt(value, 10);\nreturn isFinite(number) ? number : fallback;\n}\nfunction normalizeIdentityText(value) {\nreturn normalize(value)\n.replace(\/(\\d),(\\d)\/g, \"$1.$2\")\n.replace(\/\\s*%\\s*\/g, \"%\");\n}\nfunction uniqueValues(values) {\nvar output=[];\n(values||[]).forEach(function(value){\nif(value&&output.indexOf(value)===-1) output.push(value);\n});\nreturn output;\n}\nfunction getTerms(post) {\nvar groups =\npost &&\npost._embedded &&\npost._embedded[\"wp:term\"];\nif (!Array.isArray(groups)) return [];\nvar output = [];\ngroups.forEach(function (group) {\nif (!Array.isArray(group)) return;\ngroup.forEach(function (term) {\nif (term && term.taxonomy === \"category\") {\noutput.push(term);\n}\n});\n});\nreturn output;\n}\nfunction isGeneralSlug(slug) {\nreturn String(slug || \"\").toLowerCase() ===\n\"valvole-vintage-nos-usate-testate\";\n}\nfunction isSoldText(value) {\nvar text = normalize(value);\nreturn (\n\/\\bvendut[aoei]?\\b\/.test(text) ||\n\/\\bsold\\b\/.test(text)\n);\n}\nfunction isSoldTerm(term) {\nif (!term) return false;\nreturn isSoldText(\n(term.name || \"\") + \" \" + (term.slug || \"\")\n);\n}\nfunction isAttributeSlug(slug) {\nslug = String(slug || \"\").toLowerCase();\nreturn (\nslug.indexOf(\"coppi\") !== -1 ||\n\/(^|-)nos($|-)\/.test(slug) ||\nslug.indexOf(\"testat\") !== -1 ||\nslug.indexOf(\"matched\") !== -1 ||\nslug.indexOf(\"selezionat\") !== -1\n);\n}\nfunction getSpecificTerms(post) {\nreturn getTerms(post).filter(function (term) {\nif (!term) return false;\nvar slug = String(term.slug || \"\").toLowerCase();\nif (isGeneralSlug(slug)) return false;\nif (isSoldTerm(term)) return false;\nreturn true;\n});\n}\nfunction extractCategorySlug(href) {\ntry {\nvar url = new URL(href, window.location.origin);\nvar parts = url.pathname.split(\"\/\").filter(Boolean);\nvar categoryIndex = parts.indexOf(\"category\");\nif (categoryIndex === -1) return \"\";\nif (parts.length <= categoryIndex + 1) return \"\";\nreturn String(parts[parts.length - 1]).toLowerCase();\n} catch (e) {\nreturn \"\";\n}\n}\nfunction detectCurrentCategorySlugs() {\nvar found = [];\ndocument\n.querySelectorAll(\n'a[href*=\"\/category\/valvole-vintage-nos-usate-testate\/\"],' +\n'.post-categories a[href*=\"\/category\/\"],' +\n'.cat-links a[href*=\"\/category\/\"],' +\n'a[rel=\"category tag\"][href*=\"\/category\/\"]'\n)\n.forEach(function (link) {\nvar slug = extractCategorySlug(link.getAttribute(\"href\") || \"\");\nif (!slug) return;\nif (isGeneralSlug(slug)) return;\nif (slug.indexOf(\"vendut\") !== -1) return;\nif (found.indexOf(slug) === -1) {\nfound.push(slug);\n}\n});\nreturn found;\n}\nfunction getQuickValue(labelNames) {\nvar result = \"\";\nvar wanted = labelNames.map(normalize);\ndocument.querySelectorAll(\".rvb-quick-item\").forEach(function (item) {\nif (result) return;\nvar label = item.querySelector(\"span\");\nvar value = item.querySelector(\"strong\");\nif (!label || !value) return;\nvar normalizedLabel = normalize(label.textContent || \"\");\nif (wanted.indexOf(normalizedLabel) !== -1) {\nresult = value.textContent.trim();\n}\n});\nreturn result;\n}\nfunction getSpecValue(labelNames) {\nvar result = \"\";\nvar wanted = labelNames.map(normalize);\ndocument.querySelectorAll(\".rvb-spec, .rvb-dl-row\").forEach(function (item) {\nif (result) return;\nvar label = item.querySelector(\"span, dt\");\nvar value = item.querySelector(\"strong, dd\");\nif (!label || !value) return;\nvar normalizedLabel = normalize(label.textContent || \"\");\nif (wanted.indexOf(normalizedLabel) !== -1) {\nresult = value.textContent.trim();\n}\n});\nreturn result;\n}\nfunction currentArticleText() {\nvar parts = [];\n[\n\"#rvb-title\",\n\".rvb-kicker\",\n\".rvb-subtitle\",\n\".rvb-badges\",\n\".rvb-quick-data\"\n].forEach(function (selector) {\nvar node = document.querySelector(selector);\nif (node && node.textContent) parts.push(node.textContent);\n});\nvar typeValue = getSpecValue([\"tipologia\", \"tipo\"]);\nvar constructionValue = getSpecValue([\"costruzione\"]);\nif (typeValue) parts.push(typeValue);\nif (constructionValue) parts.push(constructionValue);\nreturn normalize(parts.join(\" \"));\n}\nfunction modelVariants(value) {\nvar raw = String(value || \"\");\nvar parts = raw.split(\/[\\\/\u00b7,;|]+\/);\nvar output = [];\nfunction pushVariant(rawValue) {\nrawValue = String(rawValue || \"\").trim();\nif (!rawValue) return;\nvar normalized = normalize(rawValue);\nvar compacted = compact(rawValue);\nif (!compacted) return;\nif (\ncompacted === \"type\" ||\ncompacted === \"modello\" ||\ncompacted === \"valvola\"\n) {\nreturn;\n}\nvar numericOnly = \/^\\d+$\/.test(compacted);\nif (numericOnly && compacted.length < 2) return;\nif (!numericOnly && compacted.length < 3) return;\nvar key = (numericOnly ? \"n:\" : \"a:\") + compacted;\nif (!output.some(function (item) { return item.key === key; })) {\noutput.push({\nkey: key,\nraw: rawValue,\nnormalized: normalized,\ncompact: compacted,\nnumericOnly: numericOnly\n});\n}\n}\nparts.forEach(function (part) {\npushVariant(part);\nvar tokens = String(part || \"\").match(\/[A-Za-z]*\\d+[A-Za-z0-9-]*\/g) || [];\ntokens.forEach(function (token) {\npushVariant(token);\n});\n});\noutput.sort(function (a, b) {\nif (a.numericOnly !== b.numericOnly) return a.numericOnly ? 1 : -1;\nreturn b.compact.length - a.compact.length;\n});\nreturn output;\n}\nfunction titleHasModel(title, variants) {\nvar normalizedTitle = normalize(title);\nvar compactTitle = compact(title);\nvar matched = null;\nvariants.some(function (variant) {\nif (!variant || !variant.compact) return false;\nif (variant.numericOnly) {\nvar escaped = variant.compact.replace(\/[.*+?^${}()|[\\]\\\\]\/g, \"\\\\$&\");\nvar expression = new RegExp(\n\"(^|[^0-9])\" + escaped + \"(?![0-9]|\\\\s*%)\",\n\"i\"\n);\nif (expression.test(normalizedTitle)) {\nmatched = variant;\nreturn true;\n}\nreturn false;\n}\nif (compactTitle.indexOf(variant.compact) !== -1) {\nmatched = variant;\nreturn true;\n}\nreturn false;\n});\nreturn matched;\n}\nvar familyRules = [\n{ key: \"triode\", patterns: [\"triod\"] },\n{ key: \"pentode\", patterns: [\"pentod\"] },\n{ key: \"tetrode\", patterns: [\"tetrod\"] },\n{ key: \"rectifier\", patterns: [\"raddrizz\", \"rettific\", \"rectifier\"] },\n{ key: \"diode\", patterns: [\"diod\"] },\n{ key: \"stabilizer\", patterns: [\"stabilizz\", \"regolatric\", \"voltage regulator\"] },\n{ key: \"indicator\", patterns: [\"occhio magico\", \"magic eye\", \"indicatore\"] },\n{ key: \"thyratron\", patterns: [\"thyratron\", \"tiratron\"] }\n];\nfunction detectFamilies(value) {\nvar text = normalize(value);\nvar output = [];\nfamilyRules.forEach(function (rule) {\nvar matched = rule.patterns.some(function (pattern) {\nreturn text.indexOf(pattern) !== -1;\n});\nif (matched && output.indexOf(rule.key) === -1) {\noutput.push(rule.key);\n}\n});\nreturn output;\n}\nfunction familyTextFromTerms(terms) {\nreturn terms\n.map(function (term) {\nreturn (term.name || \"\") + \" \" + (term.slug || \"\");\n})\n.join(\" \");\n}\nfunction overlapCount(first, second) {\nvar count = 0;\nfirst.forEach(function (value) {\nif (second.indexOf(value) !== -1) count += 1;\n});\nreturn count;\n}\nfunction getPostText(post, specificTerms) {\nvar title = decodeHtml(post && post.title && post.title.rendered);\nvar excerpt = stripHtml(post && post.excerpt && post.excerpt.rendered);\nvar yoast = post && post.yoast_head_json ? post.yoast_head_json : {};\nreturn normalize(\n[\ntitle,\npost && post.slug,\nexcerpt,\nyoast.title,\nyoast.description,\nfamilyTextFromTerms(specificTerms || [])\n].filter(Boolean).join(\" \")\n);\n}\nfunction getImage(post) {\nvar media =\npost &&\npost._embedded &&\npost._embedded[\"wp:featuredmedia\"] &&\npost._embedded[\"wp:featuredmedia\"][0];\nvar sizes =\nmedia &&\nmedia.media_details &&\nmedia.media_details.sizes;\nif (sizes) {\nif (sizes.large && sizes.large.source_url) {\nreturn sizes.large.source_url;\n}\nif (sizes.medium_large && sizes.medium_large.source_url) {\nreturn sizes.medium_large.source_url;\n}\nif (sizes.medium && sizes.medium.source_url) {\nreturn sizes.medium.source_url;\n}\n}\nif (media && media.source_url) return media.source_url;\nvar yoastImages =\npost &&\npost.yoast_head_json &&\npost.yoast_head_json.og_image;\nif (\nArray.isArray(yoastImages) &&\nyoastImages[0] &&\nyoastImages[0].url\n) {\nreturn yoastImages[0].url;\n}\nreturn \"\";\n}\nfunction termText(terms) {\nreturn normalize(\n(terms || [])\n.map(function (term) {\nreturn (term.name || \"\") + \" \" + (term.slug || \"\");\n})\n.join(\" \")\n);\n}\nfunction detectAttributesFromCurrent() {\nvar text = currentArticleText();\nreturn {\npair:\n\/\\bcoppia\\b\/.test(text) ||\n\/\\b2 valvole\\b\/.test(text),\nnos:\n\/\\bnos\\b\/.test(text),\ntested:\ntext.indexOf(\"testat\") !== -1 ||\ntext.indexOf(\"matching\") !== -1\n};\n}\nfunction detectAttributesFromPost(post, specificTerms) {\nvar title = normalize(\ndecodeHtml(post && post.title && post.title.rendered)\n);\nreturn {\npair:\n\/\\bcoppia\\b\/.test(title) ||\n\/\\bpair\\b\/.test(title),\nnos:\n\/\\bnos\\b\/.test(title),\ntested:\n\/\\btestat[aoei]?\\b\/.test(title) ||\n\/\\btested\\b\/.test(title) ||\n\/\\bmatching\\b\/.test(title) ||\n\/\\bmatched\\b\/.test(title)\n};\n}\nfunction detectRankingAttributesFromTerms(terms) {\nvar text = termText(terms || []);\nreturn {\npair:\ntext.indexOf(\"coppi\") !== -1 ||\ntext.indexOf(\" pair \") !== -1,\nnos:\n\/\\bnos\\b\/.test(text),\ntested:\ntext.indexOf(\"testat\") !== -1 ||\ntext.indexOf(\"tested\") !== -1 ||\ntext.indexOf(\"matched\") !== -1 ||\ntext.indexOf(\"matching\") !== -1 ||\ntext.indexOf(\"selezionat\") !== -1\n};\n}\n\nfunction detectRankingAttributesFromPost(post, specificTerms) {\nvar display = detectAttributesFromPost(post, specificTerms);\nvar taxonomy = detectRankingAttributesFromTerms(specificTerms || []);\nreturn {\npair: display.pair || taxonomy.pair,\nnos: display.nos || taxonomy.nos,\ntested: display.tested || taxonomy.tested\n};\n}\n\nfunction detectRankingAttributesFromCurrent() {\nvar base = detectAttributesFromCurrent();\nvar slugText = normalize(currentCategorySlugs.join(\" \"));\nreturn {\npair:\nbase.pair ||\nslugText.indexOf(\"coppi\") !== -1,\nnos:\nbase.nos ||\n\/(^|[\\s-])nos([\\s-]|$)\/.test(slugText),\ntested:\nbase.tested ||\nslugText.indexOf(\"testat\") !== -1 ||\nslugText.indexOf(\"selezionat\") !== -1 ||\nslugText.indexOf(\"matched\") !== -1\n};\n}\n\nfunction attributeSimilarity(current,candidate){\nvar wanted=0,matched=0,missing=0,extra=0;\n[\"pair\",\"nos\",\"tested\"].forEach(function(key){\nif(current[key]){\nwanted+=1;\nif(candidate[key]) matched+=1;\nelse missing+=1;\n}else if(candidate[key]){\nextra+=1;\n}\n});\nreturn{\nwanted:wanted,\nmatched:matched,\nmissing:missing,\nextra:extra,\nexact:wanted>0&&missing===0&&extra===0,\ncomplete:wanted>0&&missing===0,\nscore:(matched*45)-(missing*18)-(extra*4)\n};\n}\nfunction brandScore(title, brand) {\nvar normalizedTitle = normalize(title);\nvar words = normalize(brand)\n.split(\/[^a-z0-9]+\/)\n.filter(function (word) {\nreturn word.length >= 3;\n});\nif (!words.length) return 0;\nvar matchedWords = 0;\nwords.forEach(function (word) {\nif (normalizedTitle.indexOf(word) !== -1) {\nmatchedWords += 1;\n}\n});\nif (!matchedWords) return 0;\nreturn Math.min(18, matchedWords * 6);\n}\nvar currentCategorySlugs = detectCurrentCategorySlugs();\nvar currentModel =\ngetQuickValue([\"modello\"]) ||\ngetSpecValue([\"modello\"]) ||\n\"\";\nvar currentBrand =\ngetQuickValue([\"marca\", \"produttore\", \"marca \/ sigla\"]) ||\ngetSpecValue([\"marca\", \"produttore\", \"marca \/ sigla\"]) ||\n\"\";\nvar currentModelVariants = modelVariants(currentModel);\nvar currentAttributes = detectAttributesFromCurrent();\nvar currentRankingAttributes = detectRankingAttributesFromCurrent();\nvar currentIsSoldPage = isSoldText(currentArticleText());\nvar currentFamilies = detectFamilies(\ncurrentArticleText() + \" \" + currentCategorySlugs.join(\" \")\n);\nvar currentUrl = cleanPageUrl(window.location.href || \"\");\nvar canonicalNode = document.querySelector('link[rel=\"canonical\"]');\nvar currentCanonicalUrl =\ncanonicalNode && canonicalNode.href\n? cleanPageUrl(canonicalNode.href)\n: \"\";\nvar currentSlug =\nslugFromUrl(currentCanonicalUrl) ||\nslugFromUrl(currentUrl);\nvar currentId = null;\nvar bodyClass = document.body ? document.body.className : \"\";\nvar idMatch = bodyClass.match(\/\\bpostid-(\\d+)\\b\/);\n\nif (idMatch && idMatch[1]) {\ncurrentId = Number(idMatch[1]);\n}\n\nif (!currentId) {\nvar postNode =\ndocument.querySelector('article[id^=\"post-\"]') ||\ndocument.querySelector('.post[id^=\"post-\"]');\nif (postNode && postNode.id) {\nvar nodeMatch = postNode.id.match(\/^post-(\\d+)$\/);\nif (nodeMatch && nodeMatch[1]) currentId = Number(nodeMatch[1]);\n}\n}\n\nif (!currentId && typeof URLSearchParams !== \"undefined\") {\ntry {\nvar currentParams = new URLSearchParams(window.location.search || \"\");\nvar queryId =\ncurrentParams.get(\"preview_id\") ||\ncurrentParams.get(\"p\") ||\ncurrentParams.get(\"post\");\nif (queryId && \/^\\d+$\/.test(queryId)) currentId = Number(queryId);\n} catch (e) {}\n}\nvar entryTitleNode =\ndocument.querySelector(\".entry-title\") ||\ndocument.querySelector(\"body.single-post h1\");\nvar currentEntryTitle =\nentryTitleNode\n? normalize(entryTitleNode.textContent || \"\")\n: \"\";\n\nvar currentPageTitles = [];\n\nfunction addCurrentPageTitle(value) {\nvar normalizedValue = normalizeIdentityText(value || \"\");\nif (!normalizedValue) return;\nif (currentPageTitles.indexOf(normalizedValue) === -1) {\ncurrentPageTitles.push(normalizedValue);\n}\n}\n\naddCurrentPageTitle(currentEntryTitle);\n\nvar ogTitleNode = document.querySelector('meta[property=\"og:title\"]');\nif (ogTitleNode) addCurrentPageTitle(ogTitleNode.getAttribute(\"content\"));\n\nvar twitterTitleNode = document.querySelector('meta[name=\"twitter:title\"]');\nif (twitterTitleNode) addCurrentPageTitle(twitterTitleNode.getAttribute(\"content\"));\n\naddCurrentPageTitle(document.title || \"\");\nvar browserTitle = String(document.title || \"\")\n.replace(\/\\s*[|\u2013\u2014-]\\s*(Radio\\s*Rurale|radiorurale\\.it).*$\/i, \"\")\n.trim();\naddCurrentPageTitle(browserTitle);\n\nvar currentInnerTitleNode = document.querySelector(\"#rvb-title\");\nvar currentInnerTitle = currentInnerTitleNode\n? normalizeIdentityText(currentInnerTitleNode.textContent || \"\")\n: \"\";\n\nvar currentIdentityText = normalizeIdentityText(currentArticleText());\nvar currentPercentTokens = uniqueValues(\ncurrentIdentityText.match(\/\\b\\d+(?:\\.\\d+)?%\/g) || []\n);\n\nfunction pageTitleMatchesCandidate(candidateTitle) {\nvar candidate = normalizeIdentityText(candidateTitle || \"\");\nif (!candidate || candidate.length < 10) return false;\n\nreturn currentPageTitles.some(function(pageTitle){\nreturn !!pageTitle && pageTitle === candidate;\n});\n}\nvar currentHeroImage = document.querySelector(\"[data-rvb-gv-image], .rvb-main-media img\");\nvar currentHeroImageUrl =\ncurrentHeroImage\n? cleanAssetUrl(\ncurrentHeroImage.currentSrc ||\ncurrentHeroImage.src ||\ncurrentHeroImage.getAttribute(\"src\") ||\n\"\"\n)\n: \"\";\nvar hasStrongCurrentIdentity =\n!!currentId ||\n!!currentSlug ||\n!!currentCanonicalUrl;\n\nvar resolvedCurrentPostId = 0;\nvar resolvedCurrentPostUrl = \"\";\nvar resolvedCurrentPostSlug = \"\";\n\nfunction selfIdentityScore(post) {\nif (!post) return -1;\n\nvar rawTitle = decodeHtml(post.title && post.title.rendered);\nvar candidateTitle = normalizeIdentityText(rawTitle);\nvar postUrl = cleanPageUrl(post.link || \"\");\nvar candidateSlug = String(post.slug || \"\").toLowerCase();\n\nif (currentId && Number(post.id) === currentId) return 10000;\nif (postUrl && currentUrl && postUrl === currentUrl) return 9800;\nif (postUrl && currentCanonicalUrl && postUrl === currentCanonicalUrl) return 9700;\nif (currentSlug && candidateSlug && currentSlug === candidateSlug) return 9600;\nif (pageTitleMatchesCandidate(rawTitle)) return 9400;\n\nvar specificTerms = getSpecificTerms(post);\nvar candidateText = normalizeIdentityText(\ngetPostText(post, specificTerms)\n);\nvar score = 0;\n\ncurrentPercentTokens.forEach(function(token){\nif (candidateText.indexOf(token) !== -1) score += 700;\n});\n\nif (currentHeroImageUrl) {\nvar candidateImageUrl = cleanAssetUrl(getImage(post));\nif (candidateImageUrl && candidateImageUrl === currentHeroImageUrl) score += 450;\n}\n\nif (titleHasModel(rawTitle, currentModelVariants)) score += 150;\nscore += Math.min(60, brandScore(rawTitle, currentBrand) * 3);\n\nvar candidateAttributes = detectAttributesFromPost(post, specificTerms);\nvar identityAttributes = attributeSimilarity(currentAttributes, candidateAttributes);\nscore += identityAttributes.matched * 20;\nscore -= identityAttributes.missing * 8;\n\nif (currentInnerTitle && candidateTitle.indexOf(currentInnerTitle) !== -1) {\nscore += 90;\n}\n\nreturn score;\n}\n\nfunction resolveCurrentPost(posts) {\nvar scored = (posts || []).map(function(post){\nreturn {post:post, score:selfIdentityScore(post)};\n}).sort(function(a,b){\nreturn b.score-a.score;\n});\n\nif (!scored.length) return;\n\nvar best = scored[0];\nvar second = scored.length > 1 ? scored[1] : null;\nvar margin = second ? best.score-second.score : best.score;\n\nvar confident = currentIsSoldPage\n? best.score >= 9000\n: (\nbest.score >= 9000 ||\nbest.score >= 1200 ||\n(best.score >= 650 && margin >= 180)\n);\n\nif (!confident || !best.post) return;\n\nresolvedCurrentPostId = Number(best.post.id) || 0;\nresolvedCurrentPostUrl = cleanPageUrl(best.post.link || \"\");\nresolvedCurrentPostSlug = String(best.post.slug || \"\").toLowerCase();\n\nroot.setAttribute(\"data-rvb-self-resolved\", \"true\");\nif (resolvedCurrentPostId) {\nroot.setAttribute(\"data-rvb-current-post-id\", String(resolvedCurrentPostId));\n}\nif (resolvedCurrentPostSlug) {\nroot.setAttribute(\"data-rvb-current-post-slug\", resolvedCurrentPostSlug);\n}\n}\n\nfunction isCurrentProduct(post) {\nif (!post) return false;\n\nif (resolvedCurrentPostId && Number(post.id) === resolvedCurrentPostId) {\nreturn true;\n}\nif (\nresolvedCurrentPostUrl &&\ncleanPageUrl(post.link || \"\") === resolvedCurrentPostUrl\n) {\nreturn true;\n}\nif (\nresolvedCurrentPostSlug &&\nString(post.slug || \"\").toLowerCase() === resolvedCurrentPostSlug\n) {\nreturn true;\n}\n\nif (currentId && Number(post.id) === currentId) {\nreturn true;\n}\n\nvar postUrl = cleanPageUrl(post.link || \"\");\nvar candidateSlug = String(post.slug || \"\").toLowerCase();\n\nif (postUrl && currentUrl && postUrl === currentUrl) {\nreturn true;\n}\n\nif (\npostUrl &&\ncurrentCanonicalUrl &&\npostUrl === currentCanonicalUrl\n) {\nreturn true;\n}\n\nif (\ncurrentSlug &&\ncandidateSlug &&\ncurrentSlug === candidateSlug\n) {\nreturn true;\n}\n\nvar candidateTitle = normalize(\ndecodeHtml(post.title && post.title.rendered)\n);\n\nif (candidateTitle && pageTitleMatchesCandidate(candidateTitle)) {\nreturn true;\n}\n\nif (!hasStrongCurrentIdentity && currentHeroImageUrl) {\nvar candidateImageUrl = cleanAssetUrl(getImage(post));\n\nif (\ncandidateImageUrl &&\ncandidateImageUrl === currentHeroImageUrl\n) {\nreturn true;\n}\n}\n\nreturn false;\n}\nfunction setPageInUrl(urlValue, pageNumber) {\ntry {\nvar url = new URL(urlValue, window.location.origin);\nurl.searchParams.set(\"page\", String(pageNumber));\nurl.searchParams.set(\"per_page\", \"100\");\nreturn url.toString();\n} catch (e) {\nvar separator = String(urlValue).indexOf(\"?\") === -1 ? \"?\" : \"&\";\nreturn String(urlValue) + separator + \"page=\" + pageNumber;\n}\n}\n\nfunction setCategoriesInUrl(urlValue, categoryIds) {\ntry {\nvar url = new URL(urlValue, window.location.origin);\nurl.searchParams.delete(\"categories\");\nurl.searchParams.set(\n\"categories\",\n(categoryIds || []).join(\",\")\n);\nurl.searchParams.set(\"per_page\", \"100\");\nurl.searchParams.set(\"page\", \"1\");\nreturn url.toString();\n} catch (e) {\nreturn String(urlValue);\n}\n}\n\nfunction categoryEndpointForParent(parentId) {\ntry {\nvar postUrl = new URL(\nroot.getAttribute(\"data-endpoint\"),\nwindow.location.origin\n);\nreturn (\npostUrl.origin +\n\"\/radio\/wp-json\/wp\/v2\/categories\" +\n\"?per_page=100\" +\n\"&parent=\" + encodeURIComponent(String(parentId)) +\n\"&hide_empty=false\" +\n\"&_fields=id,name,slug,parent\"\n);\n} catch (e) {\nreturn (\nwindow.location.origin +\n\"\/radio\/wp-json\/wp\/v2\/categories\" +\n\"?per_page=100\" +\n\"&parent=\" + encodeURIComponent(String(parentId)) +\n\"&hide_empty=false\" +\n\"&_fields=id,name,slug,parent\"\n);\n}\n}\n\nfunction fetchJson(urlValue, timeoutMs) {\nvar controller =\ntypeof AbortController !== \"undefined\"\n? new AbortController()\n: null;\n\nvar timeout = null;\n\nif (controller) {\ntimeout = window.setTimeout(function () {\ncontroller.abort();\n}, timeoutMs || 9000);\n}\n\nvar options = {\ncredentials: \"same-origin\",\nheaders: {\n\"Accept\": \"application\/json\"\n}\n};\n\nif (controller) {\noptions.signal = controller.signal;\n}\n\nreturn fetch(urlValue, options)\n.then(function (response) {\nif (timeout) window.clearTimeout(timeout);\n\nif (!response.ok) {\nthrow new Error(\"HTTP \" + response.status);\n}\n\nreturn {\nresponse: response,\njson: response.json()\n};\n})\n.catch(function (error) {\nif (timeout) window.clearTimeout(timeout);\nthrow error;\n});\n}\n\nfunction fetchValveCategoryIds() {\nvar parentId = Math.max(\n1,\nsafeNumber(\nroot.getAttribute(\"data-parent-category\"),\n750\n)\n);\n\nreturn fetchJson(\ncategoryEndpointForParent(parentId),\n9000\n).then(function (result) {\nreturn result.json.then(function (categories) {\nvar ids = [parentId];\n\nif (Array.isArray(categories)) {\ncategories.forEach(function (category) {\nvar id = safeNumber(\ncategory && category.id,\n0\n);\n\nif (\nid &&\nids.indexOf(id) === -1\n) {\nids.push(id);\n}\n});\n}\n\nroot.setAttribute(\n\"data-rvb-category-tree-count\",\nString(ids.length)\n);\n\nroot.setAttribute(\n\"data-rvb-category-tree\",\nids.join(\",\")\n);\n\nreturn ids;\n});\n});\n}\n\nfunction fetchPageFromUrl(baseUrl, pageNumber) {\nvar url = setPageInUrl(\nbaseUrl,\npageNumber\n);\n\nreturn fetchJson(\nurl,\n9000\n).then(function (result) {\nvar totalPages = safeNumber(\nresult.response.headers.get(\"X-WP-TotalPages\"),\n1\n);\n\nreturn result.json.then(function (posts) {\nreturn {\nposts: Array.isArray(posts) ? posts : [],\ntotalPages: Math.max(1, totalPages)\n};\n});\n});\n}\n\nfunction dedupePosts(posts) {\nvar seen = {};\nvar output = [];\n\n(posts || []).forEach(function (post) {\nif (!post) return;\n\nvar key =\npost.id\n? \"id:\" + post.id\n: \"url:\" + cleanPageUrl(post.link || \"\");\n\nif (!key || seen[key]) return;\n\nseen[key] = true;\noutput.push(post);\n});\n\nreturn output;\n}\n\nfunction fetchCatalogFromUrl(baseUrl) {\nreturn fetchPageFromUrl(\nbaseUrl,\n1\n).then(function (firstPage) {\nvar collected = firstPage.posts.slice();\n\nvar pagesToLoad = Math.min(\nmaxPages,\nMath.max(1, firstPage.totalPages)\n);\n\nvar chain = Promise.resolve();\n\nfor (\nvar page = 2;\npage <= pagesToLoad;\npage += 1\n) {\n(function (pageNumber) {\nchain = chain.then(function () {\nreturn fetchPageFromUrl(\nbaseUrl,\npageNumber\n)\n.then(function (pageData) {\ncollected = collected.concat(\npageData.posts\n);\n})\n.catch(function () {\nreturn null;\n});\n});\n}(page));\n}\n\nreturn chain.then(function () {\nreturn dedupePosts(collected);\n});\n});\n}\n\nfunction fetchCatalog() {\nvar originalEndpoint =\nroot.getAttribute(\"data-endpoint\");\n\nreturn fetchValveCategoryIds()\n.then(function (categoryIds) {\nvar treeEndpoint = setCategoriesInUrl(\noriginalEndpoint,\ncategoryIds\n);\n\nroot.setAttribute(\n\"data-rvb-catalog-source\",\n\"category-tree\"\n);\n\nreturn fetchCatalogFromUrl(\ntreeEndpoint\n);\n})\n.catch(function () {\nroot.setAttribute(\n\"data-rvb-catalog-source\",\n\"parent-fallback\"\n);\n\nreturn fetchCatalogFromUrl(\noriginalEndpoint\n);\n});\n}\nfunction meaningfulSharedCategories(candidateTerms) {\nvar matched = [];\ncandidateTerms.forEach(function (term) {\nvar slug = String(term.slug || \"\").toLowerCase();\nif (!slug) return;\nif (isGeneralSlug(slug)) return;\nif (isAttributeSlug(slug)) return;\nif (\ncurrentCategorySlugs.indexOf(slug) !== -1 &&\nmatched.indexOf(slug) === -1\n) {\nmatched.push(slug);\n}\n});\nreturn matched;\n}\nfunction displayTermsForCandidate(candidateTerms, sharedSlugs, familyOverlap) {\nvar output = [];\ncandidateTerms.forEach(function (term) {\nif (output.length >= 2 || !term) return;\nvar slug = String(term.slug || \"\").toLowerCase();\nif (\nsharedSlugs.indexOf(slug) !== -1 &&\noutput.indexOf(term) === -1\n) {\noutput.push(term);\n}\n});\nif (output.length < 2 && familyOverlap > 0) {\ncandidateTerms.forEach(function (term) {\nif (output.length >= 2 || !term) return;\nvar termFamilies = detectFamilies(\n(term.name || \"\") + \" \" + (term.slug || \"\")\n);\nif (\noverlapCount(currentFamilies, termFamilies) > 0 &&\noutput.indexOf(term) === -1\n) {\noutput.push(term);\n}\n});\n}\nif (!output.length) {\ncandidateTerms.forEach(function (term) {\nif (output.length >= 2 || !term) return;\nif (isAttributeSlug(term.slug)) return;\noutput.push(term);\n});\n}\nreturn output;\n}\nfunction rankPosts(posts) {\nvar candidates = [];\n\nposts.forEach(function (post) {\nif (!post) return;\nif (isCurrentProduct(post)) return;\n\nvar rawTitle = decodeHtml(\npost.title && post.title.rendered\n);\nvar title = normalize(rawTitle);\nvar specificTerms = getSpecificTerms(post);\nvar postText = getPostText(post, specificTerms);\n\nif (isSoldText(title)) return;\nif (isSoldText(post && post.slug)) return;\nif (specificTerms.some(isSoldTerm)) return;\n\nvar yoast =\npost && post.yoast_head_json\n? post.yoast_head_json\n: {};\n\nvar availabilityText = normalize(\n[\nyoast.title,\nyoast.description,\nstripHtml(post && post.excerpt && post.excerpt.rendered)\n].filter(Boolean).join(\" \")\n);\n\nif (isSoldText(availabilityText)) return;\n\nvar candidateFamilies = detectFamilies(postText);\nvar familyOverlap = overlapCount(\ncurrentFamilies,\ncandidateFamilies\n);\nvar sameFamily = familyOverlap > 0;\n\nvar sharedSlugs = meaningfulSharedCategories(\nspecificTerms\n);\n\nvar matchedModel = titleHasModel(\nrawTitle,\ncurrentModelVariants\n);\n\nvar candidateAttributes =\ndetectAttributesFromPost(post, specificTerms);\n\nvar candidateRankingAttributes =\ndetectRankingAttributesFromPost(post, specificTerms);\n\nvar attributeMatch =\nattributeSimilarity(\ncurrentRankingAttributes,\ncandidateRankingAttributes\n);\n\nvar wantedCount = attributeMatch.wanted;\nvar tier = 10;\n\nif (\nmatchedModel &&\nattributeMatch.complete\n) {\ntier = 0;\n} else if (\nmatchedModel &&\nwantedCount > 1 &&\nattributeMatch.matched >= wantedCount - 1\n) {\ntier = 1;\n} else if (matchedModel) {\ntier = 2;\n} else if (\nsameFamily &&\nattributeMatch.complete\n) {\ntier = 3;\n} else if (\nsameFamily &&\nwantedCount > 1 &&\nattributeMatch.matched >= wantedCount - 1\n) {\ntier = 4;\n} else if (\nsameFamily &&\nattributeMatch.matched > 0\n) {\ntier = 5;\n} else if (sameFamily) {\ntier = 6;\n} else if (\nattributeMatch.complete &&\nattributeMatch.wanted > 0\n) {\ntier = 7;\n} else if (\nattributeMatch.matched >= 2\n) {\ntier = 8;\n} else if (\nattributeMatch.matched > 0\n) {\ntier = 9;\n}\n\nvar score = 0;\n\nif (matchedModel) {\nscore += matchedModel.numericOnly ? 260 : 285;\n}\n\nscore += Math.min(\n200,\nfamilyOverlap * 145\n);\n\nscore += attributeMatch.matched * 95;\nscore -= attributeMatch.missing * 42;\nscore -= attributeMatch.extra * 5;\n\nif (sharedSlugs.length) {\nscore += Math.min(\n110,\nsharedSlugs.length * 65\n);\n}\n\nscore += brandScore(\nrawTitle,\ncurrentBrand\n);\n\nif (candidateFamilies.length) {\nscore += 8;\n}\n\ncandidates.push({\npost: post,\ntier: tier,\nscore: score,\nmodelMatch: !!matchedModel,\nsameFamily: sameFamily,\nfamilyOverlap: familyOverlap,\nsharedSlugs: sharedSlugs,\nattributeWanted: attributeMatch.wanted,\nattributeMatched: attributeMatch.matched,\nattributeMissing: attributeMatch.missing,\nattributeExtra: attributeMatch.extra,\nattributeComplete: attributeMatch.complete,\nattributeExact: attributeMatch.exact,\nattributes: candidateAttributes,\nrankingAttributes: candidateRankingAttributes,\ncandidateFamilies: candidateFamilies,\ndisplayTerms: displayTermsForCandidate(\nspecificTerms,\nsharedSlugs,\nfamilyOverlap\n)\n});\n});\n\ncandidates.sort(function (a, b) {\nif (a.tier !== b.tier) {\nreturn a.tier - b.tier;\n}\n\nif (a.attributeComplete !== b.attributeComplete) {\nreturn a.attributeComplete ? -1 : 1;\n}\n\nif (a.attributeMatched !== b.attributeMatched) {\nreturn b.attributeMatched - a.attributeMatched;\n}\n\nif (a.attributeMissing !== b.attributeMissing) {\nreturn a.attributeMissing - b.attributeMissing;\n}\n\nif (a.familyOverlap !== b.familyOverlap) {\nreturn b.familyOverlap - a.familyOverlap;\n}\n\nif (a.sharedSlugs.length !== b.sharedSlugs.length) {\nreturn b.sharedSlugs.length - a.sharedSlugs.length;\n}\n\nif (b.score !== a.score) {\nreturn b.score - a.score;\n}\n\nreturn (\nnew Date(b.post.date).getTime() -\nnew Date(a.post.date).getTime()\n);\n});\n\nroot.setAttribute(\n\"data-rvb-ranking-mode\",\n\"model-first-full-catalog\"\n);\n\nroot.setAttribute(\n\"data-rvb-current-profile\",\n[\ncurrentModel || \"model-unknown\",\ncurrentFamilies.join(\"+\") || \"family-unknown\",\ncurrentRankingAttributes.pair ? \"pair\" : \"single\",\ncurrentRankingAttributes.nos ? \"nos\" : \"not-nos\",\ncurrentRankingAttributes.tested ? \"tested\" : \"not-tested\"\n].join(\"|\")\n);\n\nvar sameModelCount = candidates.filter(function (item) {\nreturn item.modelMatch;\n}).length;\n\nvar sameFamilyCount = candidates.filter(function (item) {\nreturn item.sameFamily;\n}).length;\n\nroot.setAttribute(\n\"data-rvb-same-model-count\",\nString(sameModelCount)\n);\n\nroot.setAttribute(\n\"data-rvb-same-family-count\",\nString(sameFamilyCount)\n);\n\nreturn candidates.slice(0, maxResults);\n}\nfunction addImageFallback(media, image) {\nif (image && image.parentNode === media) {\nimage.remove();\n}\nif (media.querySelector(\".rvb-related-fallback\")) return;\nvar fallback = document.createElement(\"span\");\nfallback.className = \"rvb-related-fallback\";\nfallback.textContent = \"Immagine non disponibile\";\nmedia.insertBefore(fallback, media.firstChild);\n}\nfunction replaceContent(node, content) {\nwhile (node.firstChild) {\nnode.removeChild(node.firstChild);\n}\nif (content) node.appendChild(content);\n}\nfunction buildCard(item) {\nvar post = item.post;\nvar title = decodeHtml(\npost && post.title && post.title.rendered\n);\nvar imageUrl = getImage(post);\nvar card = document.createElement(\"a\");\ncard.className = \"rvb-related-card\";\ncard.href = post.link;\ncard.setAttribute(\n\"aria-label\",\n\"Apri l'articolo: \" + title\n);\nvar media = document.createElement(\"div\");\nmedia.className = \"rvb-related-media\";\nif (imageUrl) {\nvar image = document.createElement(\"img\");\nimage.src = imageUrl;\nimage.alt = title + \" - valvola vintage\";\nimage.loading = \"lazy\";\nimage.decoding = \"async\";\nimage.addEventListener(\n\"error\",\nfunction () {\naddImageFallback(media, image);\n},\n{ once: true }\n);\nmedia.appendChild(image);\n} else {\naddImageFallback(media, null);\n}\nvar statuses = [];\nif (item.attributes.pair) statuses.push(\"Coppia\");\nif (item.attributes.nos) statuses.push(\"NOS\");\nif (item.attributes.tested) statuses.push(\"Testata\");\nif (!statuses.length) {\nstatuses.push(\"Disponibile\");\n}\nstatuses = statuses.slice(0, 2);\nvar badges = document.createElement(\"div\");\nbadges.className = \"rvb-related-statuses\";\nstatuses.forEach(function (status) {\nvar badge = document.createElement(\"span\");\nbadge.className = \"rvb-related-status\";\nbadge.textContent = status;\nbadges.appendChild(badge);\n});\nmedia.appendChild(badges);\nvar body = document.createElement(\"div\");\nbody.className = \"rvb-related-body\";\nvar category = document.createElement(\"p\");\ncategory.className = \"rvb-related-category\";\nvar labels = [];\n(item.displayTerms || []).forEach(function (term) {\nif (\nlabels.length >= 2 ||\n!term ||\n!term.name ||\nlabels.indexOf(term.name) !== -1\n) {\nreturn;\n}\nlabels.push(term.name);\n});\ncategory.textContent =\nlabels.length\n? labels.join(\" - \")\n: \"Valvole vintage\";\nvar heading = document.createElement(\"h3\");\nheading.textContent =\ntitle || \"Valvola vintage\";\nvar open = document.createElement(\"span\");\nopen.className = \"rvb-related-open\";\nopen.appendChild(\ndocument.createTextNode(\"Apri articolo\")\n);\nvar arrow = document.createElement(\"b\");\narrow.setAttribute(\"aria-hidden\", \"true\");\narrow.textContent = \"\\u2192\";\nopen.appendChild(arrow);\nbody.appendChild(category);\nbody.appendChild(heading);\nbody.appendChild(open);\ncard.appendChild(media);\ncard.appendChild(body);\nreturn card;\n}\nfunction showEmpty(message) {\nvar empty = document.createElement(\"div\");\nempty.className = \"rvb-related-empty\";\nvar strong = document.createElement(\"strong\");\nstrong.textContent =\n\"Nessun'altra valvola correlata disponibile al momento.\";\nempty.appendChild(strong);\nempty.appendChild(\ndocument.createTextNode(\nmessage ||\n\"La sezione si aggiorna automaticamente quando vengono pubblicati nuovi articoli compatibili.\"\n)\n);\nreplaceContent(track, empty);\ntrack.setAttribute(\"aria-busy\", \"false\");\ncontrols.hidden = true;\nroot.setAttribute(\"data-count\", \"0\");\n}\nfunction setupCarousel(count) {\nvar infinite = count > 3;\nvar timer = null;\nvar visible = true;\nvar paused = false;\nvar raf = null;\nfunction cardStep() {\nvar card = track.querySelector(\".rvb-related-card\");\nif (!card) return track.clientWidth;\nvar style = window.getComputedStyle(track);\nvar gap =\nparseFloat(style.columnGap || style.gap) ||\n12;\nreturn (\ncard.getBoundingClientRect().width +\ngap\n);\n}\nfunction maximumScroll() {\nreturn Math.max(\n0,\ntrack.scrollWidth - track.clientWidth\n);\n}\nfunction updateControls() {\nvar maximum = maximumScroll();\nvar canScroll = maximum > 5;\ncontrols.hidden = !canScroll;\nif (!canScroll) {\nprevious.disabled = true;\nnext.disabled = true;\nreturn;\n}\nif (infinite) {\nprevious.disabled = false;\nnext.disabled = false;\nreturn;\n}\nprevious.disabled = track.scrollLeft <= 5;\nnext.disabled =\ntrack.scrollLeft >= maximum - 5;\n}\nfunction move(direction) {\nvar step = cardStep();\nvar maximum = maximumScroll();\nif (maximum <= 5) return;\nif (infinite) {\nif (\ndirection > 0 &&\ntrack.scrollLeft >= maximum - step * 0.30\n) {\ntrack.scrollTo({\nleft: 0,\nbehavior: reduceMotion ? \"auto\" : \"smooth\"\n});\nreturn;\n}\nif (\ndirection < 0 &&\ntrack.scrollLeft <= step * 0.30\n) {\ntrack.scrollTo({\nleft: maximum,\nbehavior: reduceMotion ? \"auto\" : \"smooth\"\n});\nreturn;\n}\n}\ntrack.scrollBy({\nleft: direction * step,\nbehavior: reduceMotion ? \"auto\" : \"smooth\"\n});\n}\nfunction stopAuto() {\nif (timer) {\nwindow.clearInterval(timer);\ntimer = null;\n}\n}\nfunction startAuto() {\nstopAuto();\nif (\n!infinite ||\nreduceMotion ||\npaused ||\n!visible ||\ndocument.hidden ||\nmaximumScroll() <= 5\n) {\nreturn;\n}\ntimer = window.setInterval(function () {\nmove(1);\n}, autoplayMs);\n}\nprevious.addEventListener(\"click\", function () {\nmove(-1);\nstartAuto();\n});\nnext.addEventListener(\"click\", function () {\nmove(1);\nstartAuto();\n});\ntrack.addEventListener(\n\"scroll\",\nfunction () {\nif (raf) return;\nraf = window.requestAnimationFrame(function () {\nraf = null;\nupdateControls();\n});\n},\n{ passive: true }\n);\nroot.addEventListener(\"mouseenter\", function () {\npaused = true;\nstopAuto();\n});\nroot.addEventListener(\"mouseleave\", function () {\npaused = false;\nstartAuto();\n});\nroot.addEventListener(\"focusin\", function () {\npaused = true;\nstopAuto();\n});\nroot.addEventListener(\"focusout\", function () {\nwindow.setTimeout(function () {\nif (!root.contains(document.activeElement)) {\npaused = false;\nstartAuto();\n}\n}, 0);\n});\ntrack.addEventListener(\n\"pointerdown\",\nfunction () {\npaused = true;\nstopAuto();\n},\n{ passive: true }\n);\nfunction resumeAfterPointer() {\npaused = false;\nstartAuto();\n}\ntrack.addEventListener(\n\"pointerup\",\nresumeAfterPointer,\n{ passive: true }\n);\ntrack.addEventListener(\n\"pointercancel\",\nresumeAfterPointer,\n{ passive: true }\n);\nwindow.addEventListener(\n\"resize\",\nfunction () {\nupdateControls();\nstartAuto();\n},\n{ passive: true }\n);\ndocument.addEventListener(\n\"visibilitychange\",\nfunction () {\nif (document.hidden) stopAuto();\nelse startAuto();\n}\n);\nif (\"IntersectionObserver\" in window) {\nvar observer = new IntersectionObserver(\nfunction (entries) {\nentries.forEach(function (entry) {\nvisible = entry.isIntersecting;\nif (visible) startAuto();\nelse stopAuto();\n});\n},\n{ threshold: 0.15 }\n);\nobserver.observe(root);\n}\nwindow.requestAnimationFrame(function () {\nupdateControls();\nstartAuto();\n});\n}\nfetchCatalog()\n.then(function (posts) {\nroot.setAttribute(\n\"data-rvb-fetched-post-count\",\nString((posts || []).length)\n);\nresolveCurrentPost(posts);\nvar candidates = rankPosts(posts);\nif (!candidates.length) {\nshowEmpty();\nreturn;\n}\nvar fragment = document.createDocumentFragment();\ncandidates.forEach(function (item) {\nfragment.appendChild(buildCard(item));\n});\nreplaceContent(track, fragment);\ntrack.setAttribute(\"aria-busy\", \"false\");\ntrack.scrollLeft = 0;\nroot.setAttribute(\n\"data-count\",\nString(candidates.length)\n);\nsetupCarousel(candidates.length);\n})\n.catch(function () {\nshowEmpty(\n\"La vetrina non \u00e8 disponibile in questo momento; il resto dell'articolo continua a funzionare normalmente.\"\n);\n});\n}\nif (document.readyState === \"loading\") {\ndocument.addEventListener(\n\"DOMContentLoaded\",\nstartRelatedValves,\n{ once: true }\n);\n} else {\nstartRelatedValves();\n}\n}());\n<\/script><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&#8592;Torna allaHome Valvole &#8592; &#8594; Clicca per ingrandire Valvola stabilizzatrice di tensione vintage Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati Prezzo&#8230;<\/p>\n","protected":false},"author":1,"featured_media":27326,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"cybocfi_hide_featured_image":"yes","footnotes":""},"categories":[757,754],"tags":[66],"class_list":["post-27325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coppie-valvole-selezionate-testate","category-valvole-vintage-audio-nos","tag-valvole"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati - radiorurale.it<\/title>\n<meta name=\"description\" content=\"Stabilovolt STV 280\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati - radiorurale.it\" \/>\n<meta property=\"og:description\" content=\"Stabilovolt STV 280\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/\" \/>\n<meta property=\"og:site_name\" content=\"radiorurale.it\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/groups\/891602147542887\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-14T05:57:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-14T06:02:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Gabriele Gogna\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gabriele Gogna\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/\"},\"author\":{\"name\":\"Gabriele Gogna\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/#\\\/schema\\\/person\\\/1a311c650fd0e395a8d63833254ec215\"},\"headline\":\"Stabilovolt STV 280\\\/40 NOS con scatola originale e foglio dati\",\"datePublished\":\"2026-08-14T05:57:55+00:00\",\"dateModified\":\"2026-08-14T06:02:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/\"},\"wordCount\":18,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/1-Stabilovolt-STV-28040-NOS.webp\",\"keywords\":[\"valvole\"],\"articleSection\":[\"Coppie Valvole Selezionate e Testate\",\"Valvole NOS\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/\",\"url\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/\",\"name\":\"Stabilovolt STV 280\\\/40 NOS con scatola originale e foglio dati - radiorurale.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/1-Stabilovolt-STV-28040-NOS.webp\",\"datePublished\":\"2026-08-14T05:57:55+00:00\",\"dateModified\":\"2026-08-14T06:02:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/#\\\/schema\\\/person\\\/1a311c650fd0e395a8d63833254ec215\"},\"description\":\"Stabilovolt STV 280\\\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stabilovolt STV 280\\\/40 NOS con scatola originale e foglio dati\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/#website\",\"url\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/\",\"name\":\"radiorurale.it\",\"description\":\"Valutazione radio Perizia  gratuita on-line, prezzi radio d&#039;epoca compro vendo\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/#\\\/schema\\\/person\\\/1a311c650fd0e395a8d63833254ec215\",\"name\":\"Gabriele Gogna\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/wp-content\\\/uploads\\\/2015\\\/01\\\/01famiglia-Gogna-150x150.jpg\",\"url\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/wp-content\\\/uploads\\\/2015\\\/01\\\/01famiglia-Gogna-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/wp-content\\\/uploads\\\/2015\\\/01\\\/01famiglia-Gogna-150x150.jpg\",\"caption\":\"Gabriele Gogna\"},\"description\":\"Amministratore di GognaBros.it leader in Italia nel commercio elettronico di antiquariato. Colleziona radio d'epoca di prestigio dal 1995. Inaugura radiorurale.it nel 2007.\",\"sameAs\":[\"http:\\\/\\\/www.radiorurale.it\"],\"url\":\"https:\\\/\\\/www.radiorurale.it\\\/radio\\\/author\\\/radiorurale\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati - radiorurale.it","description":"Stabilovolt STV 280\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/","og_locale":"it_IT","og_type":"article","og_title":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati - radiorurale.it","og_description":"Stabilovolt STV 280\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.","og_url":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/","og_site_name":"radiorurale.it","article_publisher":"https:\/\/www.facebook.com\/groups\/891602147542887","article_published_time":"2026-08-14T05:57:55+00:00","article_modified_time":"2026-08-14T06:02:04+00:00","og_image":[{"width":1600,"height":1200,"url":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp","type":"image\/webp"}],"author":"Gabriele Gogna","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Gabriele Gogna","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#article","isPartOf":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/"},"author":{"name":"Gabriele Gogna","@id":"https:\/\/www.radiorurale.it\/radio\/#\/schema\/person\/1a311c650fd0e395a8d63833254ec215"},"headline":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati","datePublished":"2026-08-14T05:57:55+00:00","dateModified":"2026-08-14T06:02:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/"},"wordCount":18,"commentCount":0,"image":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#primaryimage"},"thumbnailUrl":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp","keywords":["valvole"],"articleSection":["Coppie Valvole Selezionate e Testate","Valvole NOS"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/","url":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/","name":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati - radiorurale.it","isPartOf":{"@id":"https:\/\/www.radiorurale.it\/radio\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#primaryimage"},"image":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#primaryimage"},"thumbnailUrl":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2026\/08\/1-Stabilovolt-STV-28040-NOS.webp","datePublished":"2026-08-14T05:57:55+00:00","dateModified":"2026-08-14T06:02:04+00:00","author":{"@id":"https:\/\/www.radiorurale.it\/radio\/#\/schema\/person\/1a311c650fd0e395a8d63833254ec215"},"description":"Stabilovolt STV 280\/40 NOS, valvola stabilizzatrice di tensione vintage completa di scatola originale d\u2019epoca e foglio dati tecnico originale.","breadcrumb":{"@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.radiorurale.it\/radio\/stabilovolt-stv-280-40-nos-con-scatola-originale-e-foglio-dati\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.radiorurale.it\/radio\/"},{"@type":"ListItem","position":2,"name":"Stabilovolt STV 280\/40 NOS con scatola originale e foglio dati"}]},{"@type":"WebSite","@id":"https:\/\/www.radiorurale.it\/radio\/#website","url":"https:\/\/www.radiorurale.it\/radio\/","name":"radiorurale.it","description":"Valutazione radio Perizia  gratuita on-line, prezzi radio d&#039;epoca compro vendo","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.radiorurale.it\/radio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.radiorurale.it\/radio\/#\/schema\/person\/1a311c650fd0e395a8d63833254ec215","name":"Gabriele Gogna","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2015\/01\/01famiglia-Gogna-150x150.jpg","url":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2015\/01\/01famiglia-Gogna-150x150.jpg","contentUrl":"https:\/\/www.radiorurale.it\/radio\/wp-content\/uploads\/2015\/01\/01famiglia-Gogna-150x150.jpg","caption":"Gabriele Gogna"},"description":"Amministratore di GognaBros.it leader in Italia nel commercio elettronico di antiquariato. Colleziona radio d'epoca di prestigio dal 1995. Inaugura radiorurale.it nel 2007.","sameAs":["http:\/\/www.radiorurale.it"],"url":"https:\/\/www.radiorurale.it\/radio\/author\/radiorurale\/"}]}},"views":63,"_links":{"self":[{"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/posts\/27325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/comments?post=27325"}],"version-history":[{"count":6,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/posts\/27325\/revisions"}],"predecessor-version":[{"id":27336,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/posts\/27325\/revisions\/27336"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/media\/27326"}],"wp:attachment":[{"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/media?parent=27325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/categories?post=27325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.radiorurale.it\/radio\/wp-json\/wp\/v2\/tags?post=27325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}