{"id":336,"date":"2026-06-01T13:47:36","date_gmt":"2026-06-01T13:47:36","guid":{"rendered":"https:\/\/www.cottini1925.cybeartest.it\/trade-area\/"},"modified":"2026-09-11T08:23:18","modified_gmt":"2026-09-11T08:23:18","slug":"trade-area","status":"publish","type":"page","link":"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/","title":{"rendered":"Trade Area"},"content":{"rendered":"\n<style id=\"cot-hello-reset\">\nbody.elementor-template-canvas { padding:0 !important; margin:0 !important; }\nheader.site-header { max-width:none !important; width:100% !important; }\nfooter.site-footer { max-width:none !important; width:100% !important; }\nmain { max-width:none !important; width:100% !important; padding:0 !important; margin:0 !important; }\nhtml, body { margin:0 !important; padding:0 !important; }\nhtml { margin-top:0 !important; }\n\n\/* Button hover overrides (Claude design fidelity) *\/\n.btn-trade, a.btn-trade {\n  font-family:'Epilogue','Helvetica Neue',Arial,sans-serif !important;\n  font-size:11px !important; letter-spacing:.28em !important; text-transform:uppercase !important;\n  background:#BF863C !important; color:#F1E6DD !important;\n  padding:11px 22px !important; border:1px solid #BF863C !important; border-radius:999px !important;\n  transition: background .85s cubic-bezier(.22,1,.36,1), border-color .85s cubic-bezier(.22,1,.36,1), color .85s cubic-bezier(.22,1,.36,1), transform .85s cubic-bezier(.22,1,.36,1), box-shadow .85s cubic-bezier(.22,1,.36,1) !important;\n  text-decoration: none !important;\n  display: inline-block !important;\n}\n.btn-trade:hover, a.btn-trade:hover {\n  background:#A06E32 !important; border-color:#A06E32 !important;\n  color:#F1E6DD !important;\n  transform: translateY(-1px) !important;\n  box-shadow: 0 8px 18px -8px rgba(67,44,32,.4) !important;\n  text-decoration: none !important;\n}\n\n.btn-pill, a.btn-pill {\n  display:inline-flex !important; align-items:center !important; gap:14px !important;\n  font-family:'Epilogue','Helvetica Neue',Arial,sans-serif !important;\n  font-size:11.5px !important; letter-spacing:.3em !important; text-transform:uppercase !important;\n  background:#BF863C !important; color:#F1E6DD !important;\n  padding:14px 30px !important; border:none !important; border-radius:999px !important;\n  transition: background 1s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1), box-shadow 1s cubic-bezier(.22,1,.36,1) !important;\n  text-decoration: none !important;\n}\n.btn-pill:hover, a.btn-pill:hover {\n  background:#A06E32 !important;\n  color:#F1E6DD !important;\n  transform: translateY(-1px) !important;\n  box-shadow: 0 10px 22px -10px rgba(67,44,32,.45) !important;\n  text-decoration: none !important;\n}\n.btn-pill svg, a.btn-pill svg {\n  transition: transform 1.4s cubic-bezier(.6,.04,.2,1) !important;\n}\n.btn-pill:hover svg, a.btn-pill:hover svg {\n  transform: translateX(10px) !important;\n}\n\n\/* Disable any Hello Elementor button styling that interferes *\/\na.btn-trade:focus, a.btn-pill:focus {\n  outline: 2px solid #BF863C !important;\n  outline-offset: 3px !important;\n}\n\n.hero-h1 .w { margin-right: .28em !important; }\n.hero-h1 .w:last-child { margin-right: 0 !important; }\nh1.hero-h1 { max-width: 20ch !important; }\n<\/style>\n<style>\n\/* ---------------- TOKENS ---------------- *\/\n:root{\n  --cream:#F1E6DD;\n  --cream-2:#FAF4EC;\n  --cream-3:#E9DCCF;\n  --gold:#BF863C;\n  --gold-dark:#A06E32;\n  --gold-light:#D9A862;\n  --logo-gold:#654916;\n  --brand:#654916;\n  --bordeaux:#521419;\n  --brown:#432C20;\n  --brown-deep:#2E1E15;\n  --ink:#1A1209;\n  --ink-2:#3A2A1F;\n\n  --serif:\"Source Serif 4\",\"Minion Pro\",\"EB Garamond\",Georgia,serif;\n  --sans:\"Epilogue\",\"Helvetica Neue\",Arial,sans-serif;\n\n  --ease:cubic-bezier(.165,.84,.44,1);\n  --ease-soft:cubic-bezier(.22,1,.36,1); \/* expo-out: more languid for hovers *\/\n  --ease-graceful:cubic-bezier(.6,.04,.2,1); \/* soft S-curve, slow start + soft landing *\/\n}\n*{box-sizing:border-box}\nhtml{scroll-behavior:auto;scroll-padding-top:90px} \/* JS handles smooth scroll *\/\nhtml,body{margin:0;padding:0;background:var(--cream);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}\nbody{overflow-x:hidden}\nimg{max-width:100%;display:block}\na{color:inherit;text-decoration:none}\nbutton{font:inherit;cursor:pointer}\n\n\/* selection *\/\n::selection{background:var(--gold);color:var(--cream)}\n\n\/* ---------------- BRAND LOGO (real artwork via CSS mask) ---------------- *\/\n.brand-logo{\n  display:block;flex:none;\n  background-color:var(--brand);\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini.svg\");\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\n  -webkit-mask-position:center;mask-position:center;\n  -webkit-mask-size:contain;mask-size:contain;\n  transition:background-color .9s var(--ease-soft);\n}\n.brand-logo--mark{\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n}\n.brand-logo--light{background-color:var(--cream)}\n.brand-logo--gold{background-color:var(--gold)}\n.brand-logo--brand{background-color:var(--brand)}\n\n\/* sizes \u2014 preserve 190:155 aspect of the full logo *\/\n.brand-logo--xs{width:30px;height:30px}                 \/* mark *\/\n.brand-logo--sm{width:34px;height:34px}                 \/* mark in scroll disc *\/\n.brand-logo--md{width:69px;height:56px}                 \/* header full *\/\n.brand-logo--md.brand-logo--mark{width:42px;height:42px}\n.brand-logo--lg{width:122px;height:100px}               \/* footer full *\/\n\n\/* ---------------- LOGO (placeholder wordmark) ---------------- *\/\n.logo{display:inline-flex;align-items:center;gap:14px;color:var(--logo-gold)}\n.logo .quad{width:34px;height:34px;color:currentColor;flex:none}\n.logo .wm{font-family:var(--serif);font-style:italic;font-weight:500;line-height:1;letter-spacing:.02em}\n.logo .wm-top{font-size:22px;display:block}\n.logo .wm-bot{font-family:var(--sans);font-style:normal;font-weight:500;font-size:10px;letter-spacing:.42em;display:block;margin-top:4px;color:inherit}\n.logo--light{color:var(--cream)}\n.logo--footer{color:var(--cream)}\n.logo--footer .quad{width:42px;height:42px}\n.logo--footer .wm-top{font-size:26px}\n\n\/* ---------------- HEADER ---------------- *\/\n.site-header{\n  position:fixed;inset:0 0 auto 0;z-index:50;\n  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;\n  padding:18px 40px;\n  transition:background .6s var(--ease-soft), backdrop-filter .6s var(--ease-soft), border-color .6s var(--ease-soft), padding .6s var(--ease-soft);\n  border-bottom:1px solid transparent;\n}\n.site-header.scrolled{\n  background:rgba(241,230,221,.82);\n  backdrop-filter:blur(14px);\n  -webkit-backdrop-filter:blur(14px);\n  border-bottom-color:rgba(140,119,81,.18);\n  padding:12px 40px;\n}\n.site-header .logo--light{transition:opacity .3s var(--ease);}\n.site-header.scrolled .logo--light{opacity:0;pointer-events:none;position:absolute;left:40px;top:14px}\n.site-header .logo--dark{opacity:0;pointer-events:none;position:absolute;left:40px;top:14px;transition:opacity .3s var(--ease)}\n.site-header.scrolled .logo--dark{opacity:1;pointer-events:auto;position:static}\n\n.site-nav{justify-self:center;display:flex;gap:32px}\n.site-nav a{\n  font-family:var(--serif);font-size:15.5px;color:var(--cream);\n  position:relative;padding:6px 2px;letter-spacing:.005em;\n  transition:color .75s var(--ease-soft);\n}\n.site-nav a::after{content:\"\";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .85s var(--ease-soft);opacity:.6}\n.site-nav a:hover::after{transform:scaleX(1)}\n.site-header.scrolled .site-nav a{color:var(--ink)}\n\n.header-right{justify-self:end;display:flex;align-items:center;gap:22px}\n.lang{font-family:var(--sans);font-size:11px;letter-spacing:.32em;color:var(--cream);display:flex;gap:8px;align-items:center;transition:color .3s var(--ease)}\n.lang .sep{opacity:.45}\n.lang .active{font-weight:600;border-bottom:1px solid currentColor;padding-bottom:2px}\n.site-header.scrolled .lang{color:var(--ink)}\n\n.btn-trade{\n  font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;\n  background:var(--gold);color:var(--cream);\n  padding:11px 22px;border:1px solid var(--gold);border-radius:999px;\n  transition:background .85s var(--ease-soft), border-color .85s var(--ease-soft), color .85s var(--ease-soft), transform .85s var(--ease-soft), box-shadow .85s var(--ease-soft);\n}\n.btn-trade:hover{background:var(--gold-dark);border-color:var(--gold-dark);transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(67,44,32,.4)}\n\n\/* ---------------- HERO ---------------- *\/\n.hero{\n  position:relative;min-height:100vh;background:var(--cream);\n  overflow:visible;\n}\n.hero-photo{position:absolute;inset:0;overflow:hidden;z-index:1}\n.hero-photo img{width:100%;height:120%;object-fit:cover;transform:translate3d(0,0,0) scale(1.08);will-change:transform}\n\/* veil top-left for legibility + dedicated top veil so the header always reads *\/\n.hero-photo::before{\n  content:\"\";position:absolute;inset:0;\n  background:\n    linear-gradient(180deg, rgba(20,12,7,.58) 0%, rgba(20,12,7,.34) 16%, rgba(20,12,7,0) 34%),\n    linear-gradient(135deg, rgba(20,12,7,.62) 0%, rgba(20,12,7,.28) 38%, rgba(20,12,7,0) 64%);\n  z-index:2;\n}\n\/* cream crescent bottom *\/\n.hero-photo::after{\n  content:\"\";position:absolute;\n  left:-32%;right:-32%;bottom:-72%;\n  height:94%;width:164%;\n  background:var(--cream);\n  border-radius:50%;\n  filter:drop-shadow(0 -22px 36px rgba(46,30,21,.75)) drop-shadow(0 -6px 12px rgba(46,30,21,.4));\n  z-index:3;\n}\n\n.hero-text{\n  position:absolute;top:172px;left:5vw;right:5vw;max-width:880px;z-index:4;color:var(--cream);\n}\n.eyebrow{\n  font-family:var(--sans);font-size:11px;letter-spacing:.42em;text-transform:uppercase;\n  color:var(--gold-light);display:inline-flex;align-items:center;gap:14px;\n}\n.rule{display:inline-block;width:48px;height:1px;background:var(--gold-light);vertical-align:middle}\n.rule-h{display:block;width:48px;height:1px;background:var(--gold);margin-bottom:18px}\n\nh1.hero-h1{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(40px,4.6vw,72px);line-height:1.06;letter-spacing:-.008em;\n  text-wrap:balance;color:var(--cream);\n  margin:18px 0 22px;max-width:14ch;\n}\nh1.hero-h1 .w{display:inline-block;opacity:0;transform:translateY(28px);animation:rise 1.1s var(--ease) forwards}\n@keyframes rise{to{opacity:1;transform:translateY(0)}}\n\n.hero-sub{\n  font-family:var(--serif);font-size:18px;line-height:1.55;max-width:46ch;\n  color:rgba(241,230,221,.86);font-weight:400;margin:0 0 32px;\n}\n.hero-cta{\n  position:relative;\n  display:inline-flex;align-items:center;gap:14px;\n  font-family:var(--sans);font-size:12px;letter-spacing:.32em;text-transform:uppercase;\n  color:var(--cream);padding:14px 0;\n  transition:color 1s var(--ease-soft);\n}\n.hero-cta::after{\n  content:\"\";position:absolute;left:0;right:0;bottom:0;height:1px;\n  background:var(--gold-light);transform-origin:left center;transform:scaleX(1);\n  transition:transform 1.4s var(--ease-graceful), background-color 1s var(--ease-soft);\n}\n.hero-cta:hover{color:var(--gold-light)}\n.hero-cta:hover::after{transform:scaleX(1.14)}\n.hero-cta svg{transition:transform 1.4s var(--ease-graceful)}\n.hero-cta:hover svg{transform:translateX(14px)}\n\n\/* ---------------- SCORRI DISC ---------------- *\/\n.scroll-disc{\n  position:absolute;left:50%;bottom:calc(22% - 60px);transform:translateX(-50%);\n  width:120px;height:120px;border-radius:50%;background:var(--cream);\n  z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;\n  box-shadow:\n    0 28px 50px -14px rgba(67,44,32,.45),\n    0 6px 14px rgba(67,44,32,.18),\n    inset 0 0 0 1px rgba(140,119,81,.45);\n  color:var(--logo-gold);\n  transition:transform .85s var(--ease-soft), box-shadow .85s var(--ease-soft);\n  cursor:pointer;\n}\n.scroll-disc:hover{transform:translate(-50%,3px);box-shadow:0 18px 32px -12px rgba(67,44,32,.4),0 4px 10px rgba(67,44,32,.16),inset 0 0 0 1px rgba(140,119,81,.45)}\n.scroll-disc .quad{width:36px;height:36px;animation:bounce 2.4s var(--ease) infinite}\n.scroll-disc .label{font-family:var(--sans);font-size:12px;letter-spacing:.38em;color:var(--brand);font-weight:500;padding-left:.38em}\n.scroll-disc-mark{animation:bounce 2.4s var(--ease) infinite}\n@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}\n\n\/* ---------------- SECTION: VALORI ---------------- *\/\n.valori{padding:0 56px 30px;background:var(--cream);position:relative}\n.valori-inner{display:grid;grid-template-columns:38% 1fr;gap:80px;align-items:start;max-width:1320px;margin:0 auto;padding-top:40px}\n.valori-text h2{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(34px,3.2vw,52px);line-height:1.08;letter-spacing:-.008em;\n  color:var(--ink);margin:18px 0 22px;text-wrap:balance;max-width:14ch;\n}\n.valori-text p{font-size:17px;line-height:1.7;color:var(--ink-2);max-width:38ch;margin:0 0 28px}\n.valori-text .link-cta{\n  position:relative;\n  font-family:var(--sans);font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;\n  color:var(--gold-dark);padding-bottom:6px;\n  display:inline-flex;align-items:center;gap:10px;\n  transition:color 1s var(--ease-soft)\n}\n.valori-text .link-cta::after{\n  content:\"\";position:absolute;left:0;right:0;bottom:0;height:1px;\n  background:currentColor;transform-origin:left center;transform:scaleX(1);\n  transition:transform 1.4s var(--ease-graceful);\n}\n.valori-text .link-cta:hover{color:var(--gold)}\n.valori-text .link-cta:hover::after{transform:scaleX(1.18)}\n.valori-text .link-cta svg{transition:transform 1.4s var(--ease-graceful)}\n.valori-text .link-cta:hover svg{transform:translateX(14px)}\n\n.cards{display:grid;grid-template-columns:1fr 1fr;gap:48px 56px}\n.card{display:flex;flex-direction:column;align-items:flex-start;gap:18px}\n.card-icon{\n  position:relative;width:86px;height:86px;display:grid;place-items:center;\n  border-radius:50%;\n  transition:transform .9s var(--ease-soft);\n}\n.card-icon::before{\n  content:\"\";position:absolute;inset:0;border-radius:50%;\n  border:1px solid rgba(140,119,81,.4);\n  transition:transform .9s var(--ease-soft), border-color .9s var(--ease-soft);\n}\n.card-icon .ring{\n  position:absolute;inset:7px;border-radius:50%;\n  border:1px solid var(--gold);\n  display:grid;place-items:center;\n  background:var(--cream-2);\n  transition:transform .9s var(--ease-soft), background-color .9s var(--ease-soft);\n}\n.card-icon svg{width:32px;height:32px;color:var(--gold);transition:transform .9s var(--ease-soft)}\n.card:hover .card-icon::before{transform:scale(1.08)}\n.card:hover .card-icon .ring{transform:scale(1.04)}\n.card h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:24px;letter-spacing:-.005em;margin:0;color:var(--ink)}\n.card p{font-family:var(--serif);font-style:italic;font-weight:400;font-size:15.5px;line-height:1.55;color:var(--ink-2);margin:0;max-width:28ch}\n\n.valori-divider{\n  display:flex;align-items:center;justify-content:center;gap:18px;\n  margin:32px auto 0;max-width:520px;color:var(--gold);\n}\n.valori-divider .line{flex:1;height:1px;background:currentColor;opacity:.45}\n.valori-divider .quad{width:22px;height:22px}\n\n\/* ---------------- SECTION: NUMERI ---------------- *\/\n.numeri{\n  position:relative;padding:160px 56px 180px;\n  background:var(--brown-deep);color:var(--cream);overflow:hidden;\n}\n.numeri .bg{position:absolute;inset:0;overflow:hidden;z-index:0}\n.numeri .bg img{width:100%;height:120%;object-fit:cover;opacity:.55;will-change:transform}\n.numeri .veil{\n  position:absolute;inset:0;z-index:1;\n  background:linear-gradient(180deg, rgba(46,30,21,.55) 0%, rgba(46,30,21,.78) 50%, rgba(46,30,21,.55) 100%);\n}\n.numeri::before, .numeri::after{\n  content:\"\";position:absolute;left:-32%;right:-32%;width:164%;\n  background:var(--cream);border-radius:50%;\n  z-index:3;height:60%;\n  filter:drop-shadow(0 -22px 36px rgba(46,30,21,.6)) drop-shadow(0 -6px 12px rgba(46,30,21,.35));\n}\n.numeri::before{top:-46%}\n.numeri::after{bottom:-46%;filter:drop-shadow(0 22px 36px rgba(46,30,21,.6)) drop-shadow(0 6px 12px rgba(46,30,21,.35))}\n\n.numeri-inner{position:relative;z-index:4;max-width:1180px;margin:0 auto;text-align:center}\n.numeri .eyebrow{color:var(--gold-light)}\n.numeri h2{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(34px,3.4vw,54px);line-height:1.1;letter-spacing:-.008em;\n  margin:20px auto 12px;max-width:18ch;text-wrap:balance;color:var(--cream);\n}\n.numeri .lede{font-size:17px;line-height:1.65;max-width:54ch;margin:0 auto 80px;color:rgba(241,230,221,.78)}\n.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:48px}\n.stat{display:flex;flex-direction:column;align-items:center;gap:14px}\n.stat .num{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(48px,5.4vw,88px);line-height:1;letter-spacing:-.012em;\n  color:var(--cream);\n}\n.stat .div{width:32px;height:1px;background:var(--gold-light)}\n.stat .lab{font-family:var(--serif);font-style:italic;font-weight:400;font-size:14.5px;letter-spacing:.02em;color:rgba(241,230,221,.78);max-width:14ch;text-align:center;line-height:1.4}\n\n\/* ---------------- SECTION: CTA FINALE ---------------- *\/\n.cta-final{padding:60px 56px 0;background:var(--cream);position:relative;text-align:center}\n.cta-final .rule-h{margin:18px auto 28px}\n.cta-final h2{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(34px,3.4vw,56px);line-height:1.08;letter-spacing:-.008em;\n  color:var(--ink);margin:0 auto 22px;max-width:18ch;text-wrap:balance;\n}\n.cta-final p{font-size:17px;line-height:1.65;max-width:56ch;margin:0 auto 36px;color:var(--ink-2)}\n.btn-pill{\n  display:inline-flex;align-items:center;gap:14px;\n  font-family:var(--sans);font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;\n  background:var(--gold);color:var(--cream);padding:14px 30px;border:none;border-radius:999px;\n  transition:background 1s var(--ease-soft), transform 1s var(--ease-soft), box-shadow 1s var(--ease-soft);\n}\n.btn-pill:hover{background:var(--gold-dark);transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(67,44,32,.45)}\n.btn-pill svg{transition:transform 1.4s var(--ease-graceful)}\n.btn-pill:hover svg{transform:translateX(10px)}\n\n.family-crescent{\n  position:relative;width:min(960px,92vw);aspect-ratio:2\/1;margin:80px auto -1px;\n  background:var(--gold);\n  clip-path:ellipse(50% 100% at 50% 100%);\n  filter:drop-shadow(0 -8px 26px rgba(46,30,21,.4)) drop-shadow(0 -2px 8px rgba(46,30,21,.25));\n}\n.family-crescent::before{\n  content:\"\";position:absolute;inset:5px;background:var(--cream);\n  clip-path:ellipse(50% 100% at 50% 100%);\n}\n.family-crescent img{\n  position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 18px);object-fit:cover;\n  clip-path:ellipse(50% 100% at 50% 100%);\n}\n\n\/* ---------------- FOOTER ---------------- *\/\n.site-footer{background:var(--brown);color:var(--cream);padding:80px 56px 0;position:relative;z-index:2}\n.foot-grid{\n  display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:56px;\n  max-width:1320px;margin:0 auto;padding-bottom:60px;\n  border-bottom:1px solid rgba(217,168,98,.22);\n}\n.foot-grid h4{\n  font-family:var(--sans);font-size:11px;letter-spacing:.32em;text-transform:uppercase;\n  color:var(--gold-light);font-weight:500;margin:0 0 22px;\n}\n.foot-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}\n.foot-grid li a, .foot-grid p, .foot-grid address{font-family:var(--serif);font-size:16px;color:var(--cream);line-height:1.55;font-style:normal}\n.foot-grid li a{position:relative;display:inline-block}\n.foot-grid li a{transition:color .75s var(--ease-soft)}\n.foot-grid li a:hover{color:var(--gold-light)}\n.foot-grid li a::after{content:\"\";position:absolute;left:0;bottom:-3px;height:1px;width:0;background:var(--gold-light);transition:width .85s var(--ease-soft)}\n.foot-grid li a:hover::after{width:100%}\n.foot-grid address{font-style:normal}\n.foot-grid .col-logo{display:flex;flex-direction:column;gap:20px}\n.foot-grid .col-logo p{font-style:italic;color:rgba(241,230,221,.75);font-size:15px;max-width:30ch;margin:0}\n\n.foot-bottom{\n  max-width:1320px;margin:0 auto;padding:24px 0 28px;\n  display:flex;justify-content:space-between;align-items:center;gap:24px;\n  font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(241,230,221,.55);\n}\n.foot-bottom a{transition:color .75s var(--ease-soft)}\n.foot-bottom a:hover{color:var(--gold-light)}\n.foot-bottom .links{display:flex;gap:24px}\n\n\/* ---------------- SCROLL PROGRESS ---------------- *\/\n.scroll-prog{\n  position:fixed;left:0;top:0;bottom:0;width:3px;z-index:90;pointer-events:none;\n  background:rgba(140,119,81,.08);\n}\n.scroll-prog::before{\n  content:\"\";position:absolute;left:0;top:0;width:100%;height:var(--p, 0%);\n  background:linear-gradient(180deg, var(--gold-light), var(--gold));\n  transition:height .2s linear;\n}\n\n\/* ---------------- HERO SCROLL TRANSFORM ---------------- *\/\n.hero-text{will-change:transform,opacity}\n.hero-photo img{will-change:transform}\n\n\/* ---------------- CARD HORIZONTAL ENTRY ---------------- *\/\n[data-card]{will-change:transform,opacity}\n\n\/* ---------------- CHI SIAMO \u2014 HERO (editorial composition v2) ---------------- *\/\n.hero-about{\n  background:var(--cream);\n  padding:160px 56px 110px;\n  position:relative;\n  overflow:hidden;\n}\n.hero-about-inner{\n  max-width:1320px;margin:0 auto;\n  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr);\n  gap:80px;align-items:center;\n  position:relative;\n}\n\n\/* ---- text column ---- *\/\n.hero-about-text{padding-top:0;max-width:560px;position:relative;z-index:3}\n.hero-about-eyebrow{\n  display:inline-flex;align-items:center;gap:14px;\n  font-family:var(--sans);font-size:11px;letter-spacing:.42em;text-transform:uppercase;\n  color:var(--gold-dark);margin:0 0 24px;\n}\n.hero-about-eyebrow::before{\n  content:\"\";display:block;width:40px;height:1px;background:currentColor;\n}\n.hero-about-h1{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(48px,5.6vw,84px);line-height:1.02;letter-spacing:-.015em;\n  color:var(--brand);\n  margin:0 0 30px;\n}\n.hero-about-h1 .w{display:inline-block;opacity:0;transform:translateY(28px);animation:rise 1.1s var(--ease) forwards;margin-right:.22em}\n.hero-about-lede{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(20px,1.6vw,26px);line-height:1.3;color:var(--ink);\n  margin:0 0 24px;text-wrap:balance;max-width:24ch;\n}\n.hero-about-body{\n  font-family:var(--serif);font-size:16px;line-height:1.7;color:var(--ink-2);\n  margin:0;max-width:44ch;text-wrap:pretty;\n}\n\n\/* ---- photo column \u2014 height matches text, no excess ---- *\/\n.hero-about-photo{\n  position:relative;width:100%;\n  aspect-ratio:4\/5;\n  max-height:520px;\n  justify-self:end;\n  align-self:center;\n}\n\n\/* Soft gold square offset behind photo \u2014 peeks above and to the lower-left only *\/\n.hero-deco-square{\n  position:absolute;\n  inset:-8% 0 -6% -6%;\n  background:linear-gradient(135deg, rgba(217,168,98,.18), rgba(191,134,60,.10));\n  border:1px solid rgba(140,119,81,.32);\n  z-index:0;\n  pointer-events:none;\n  animation:hero-deco-drift 14s ease-in-out infinite;\n}\n@keyframes hero-deco-drift{\n  0%,100%{transform:translate(0,0)}\n  50%{transform:translate(-4px,-4px)}\n}\n\n\/* Brand mark (small) upper-right \u2014 peeks out from behind the photo *\/\n.hero-deco-ring{\n  position:absolute;\n  top:-14%;right:-16%;\n  width:34%;aspect-ratio:1;\n  z-index:0;pointer-events:none;\n  animation:hero-deco-spin 42s linear infinite;\n  opacity:.55;\n}\n.hero-deco-ring .brand-logo{\n  width:100%;height:100%;\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n  background-color:var(--gold);\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\n  -webkit-mask-position:center;mask-position:center;\n  -webkit-mask-size:contain;mask-size:contain;\n}\n\n\/* Brand mark (large) lower-left counter-rotating \u2014 sits in the open space below the text *\/\n.hero-deco-ring-2{\n  position:absolute;\n  bottom:-22%;left:-22%;\n  width:58%;aspect-ratio:1;\n  z-index:0;pointer-events:none;\n  animation:hero-deco-spin-rev 56s linear infinite;\n  opacity:.32;\n}\n.hero-deco-ring-2 .brand-logo{\n  width:100%;height:100%;\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n  background-color:var(--gold-dark);\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\n  -webkit-mask-position:center;mask-position:center;\n  -webkit-mask-size:contain;mask-size:contain;\n}\n\n\/* Solid gold quarter-arc that sweeps across the upper edge *\/\n.hero-deco-arc{\n  position:absolute;\n  top:-4%;left:-8%;\n  width:120%;aspect-ratio:2.4\/1;\n  z-index:0;pointer-events:none;\n}\n.hero-deco-arc svg{width:100%;height:100%;overflow:visible}\n.hero-deco-arc path{\n  fill:none;stroke:var(--gold);\n  stroke-width:.6;opacity:.45;\n  stroke-dasharray:240;stroke-dashoffset:240;\n  animation:hero-arc-draw 6s var(--ease-soft) 1s forwards, hero-arc-float 9s ease-in-out 7s infinite;\n}\n@keyframes hero-arc-draw{\n  to{stroke-dashoffset:0}\n}\n@keyframes hero-arc-float{\n  0%,100%{transform:translate(0,0)}\n  50%{transform:translate(0,-4px)}\n}\n\n\/* Floating gold sparkles *\/\n.hero-deco-sparkle{\n  position:absolute;\n  width:6px;height:6px;border-radius:50%;\n  background:var(--gold);\n  z-index:0;pointer-events:none;\n  box-shadow:0 0 0 4px rgba(191,134,60,.12);\n}\n.hero-deco-sparkle--1{top:18%;left:-4%;animation:sparkle-float-1 8s ease-in-out infinite}\n.hero-deco-sparkle--2{top:62%;right:-3%;animation:sparkle-float-2 11s ease-in-out infinite}\n.hero-deco-sparkle--3{bottom:24%;left:8%;width:4px;height:4px;background:var(--gold-light);animation:sparkle-float-3 9s ease-in-out infinite}\n@keyframes sparkle-float-1{\n  0%,100%{transform:translate(0,0);opacity:.7}\n  50%{transform:translate(8px,-12px);opacity:1}\n}\n@keyframes sparkle-float-2{\n  0%,100%{transform:translate(0,0);opacity:.6}\n  50%{transform:translate(-10px,8px);opacity:1}\n}\n@keyframes sparkle-float-3{\n  0%,100%{transform:translate(0,0);opacity:.5}\n  50%{transform:translate(6px,-8px);opacity:.9}\n}\n\n@keyframes hero-deco-spin{\n  to{transform:rotate(360deg)}\n}\n@keyframes hero-deco-spin-rev{\n  to{transform:rotate(-360deg)}\n}\n\n\/* Photo card *\/\n.hero-photo-card{\n  position:absolute;\n  inset:0;\n  border-radius:3px;\n  overflow:hidden;\n  z-index:1;\n}\n.hero-photo-card img{\n  position:absolute;inset:0;width:100%;height:100%;\n  object-fit:cover;object-position:50% 22%;\n  will-change:transform;\n}\n\n\/* Year stamp \u2014 small, integrated *\/\n.hero-photo-year{\n  position:absolute;\n  bottom:-18px;right:8%;\n  display:inline-flex;align-items:center;gap:12px;\n  background:var(--brand);color:var(--cream);\n  padding:10px 18px;\n  z-index:3;\n  box-shadow:0 14px 28px -14px rgba(46,30,21,.4);\n}\n.hero-photo-year .year-dot{\n  width:6px;height:6px;border-radius:50%;\n  background:var(--gold-light);\n  flex:none;\n  animation:year-pulse 3.2s ease-in-out infinite;\n}\n@keyframes year-pulse{\n  0%,100%{opacity:1;transform:scale(1)}\n  50%{opacity:.6;transform:scale(1.3)}\n}\n.hero-photo-year .year-text{\n  font-family:var(--sans);font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;\n  line-height:1;color:var(--cream);\n}\n.hero-photo-year .year-text em{font-style:normal;font-weight:600;color:var(--gold-light);letter-spacing:.04em}\n.hero-about-photo img{\n  position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;\n  will-change:transform;\n}\n\n\/* ---------------- THREE PILLARS \u2014 Vision \/ Mission \/ Storia ---------------- *\/\n.pillars{\n  background:var(--cream);\n  padding:80px 56px 60px;\n  position:relative;\n}\n.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.pillars-grid{\n  max-width:1320px;margin:0 auto;\n  display:grid;\n  grid-template-columns:1fr 1px 1fr 1px 1fr;\n  gap:48px 56px;align-items:start;\n}\n.pillar{display:flex;flex-direction:column;gap:18px;min-width:0}\n.pillar-kicker{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:14.5px;color:var(--gold-dark);letter-spacing:.01em;\n}\n.pillar-h{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(24px,2vw,30px);line-height:1.15;letter-spacing:-.005em;\n  color:var(--brand);margin:0 0 4px;text-wrap:balance;\n}\n.pillar-body{display:flex;flex-direction:column;gap:18px}\n.pillar-body p{\n  font-family:var(--serif);font-size:16px;line-height:1.6;color:var(--ink-2);\n  margin:0;max-width:36ch;\n}\n.pillar-body em{font-style:italic;color:var(--brand);font-weight:500}\n.drop{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  color:var(--brand);\n}\n\n\/* Vision pillar \u2014 decorative element filling the empty column space *\/\n.pillar-deco{\n  position:relative;\n  margin-top:48px;\n  min-height:240px;\n  display:flex;flex-direction:column;align-items:flex-start;gap:0;\n}\n.pillar-deco-mark{\n  display:block;width:96px;height:96px;\n  background-color:var(--gold);\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\n  -webkit-mask-position:center;mask-position:center;\n  -webkit-mask-size:contain;mask-size:contain;\n  opacity:.22;\n  animation:pillar-deco-spin 36s linear infinite;\n}\n.pillar-deco-rule{\n  display:block;width:1px;height:40px;\n  background:linear-gradient(180deg, var(--gold), transparent);\n  margin:18px 0 16px 48px;\n  opacity:.6;\n}\n.pillar-deco-line{\n  display:block;width:48px;height:1px;background:var(--gold);\n  opacity:.65;margin-bottom:18px;\n}\n.pillar-deco-quote{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:18px;line-height:1.55;color:var(--brand);\n  opacity:.78;letter-spacing:-.005em;\n}\n.pillar-deco-quote em{font-style:italic}\n\/* Two small orbiting dots that float in the empty space *\/\n.pillar-deco-orbit{\n  position:absolute;border-radius:50%;\n  background:var(--gold);\n  box-shadow:0 0 0 4px rgba(191,134,60,.14);\n  pointer-events:none;\n}\n.pillar-deco-orbit--1{\n  top:30px;right:0;width:6px;height:6px;\n  animation:pillar-orbit-1 9s ease-in-out infinite;\n}\n.pillar-deco-orbit--2{\n  bottom:6px;right:28%;width:4px;height:4px;background:var(--gold-light);\n  box-shadow:0 0 0 3px rgba(217,168,98,.16);\n  animation:pillar-orbit-2 12s ease-in-out infinite;\n}\n@keyframes pillar-deco-spin{\n  to{transform:rotate(360deg)}\n}\n@keyframes pillar-orbit-1{\n  0%,100%{transform:translate(0,0);opacity:.7}\n  50%{transform:translate(-14px,10px);opacity:1}\n}\n@keyframes pillar-orbit-2{\n  0%,100%{transform:translate(0,0);opacity:.55}\n  50%{transform:translate(10px,-8px);opacity:.95}\n}\n\n\/* Vertical divider with mark in the middle *\/\n.pillar-div{\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\n  gap:18px;width:1px;align-self:stretch;\n  padding-top:48px;\n}\n.pillar-div-line{\n  flex:1;width:1px;background:linear-gradient(180deg, transparent, rgba(140,119,81,.35) 12%, rgba(140,119,81,.35) 88%, transparent);\n  min-height:60px;\n}\n.pillar-div-mark{flex:none;width:22px;height:22px;opacity:.85}\n\n\/* ---------------- BROTHERS PORTRAIT + DECORATIVE CURVE ---------------- *\/\n.brothers-wrap{\n  position:relative;background:var(--cream);\n  padding:0 56px;\n  height:240px;\n  display:flex;align-items:flex-start;justify-content:center;\n  margin-top:-60px;\n}\n.brothers-curve{\n  position:absolute;left:50%;top:80px;transform:translateX(-50%);\n  width:min(1500px,96vw);height:520px;\n  border-radius:50%;\n  background:transparent;\n  border:1px solid rgba(140,119,81,.18);\n  border-bottom:none;\n  pointer-events:none;\n}\n.brothers-portrait{\n  position:relative;margin:0;\n  width:260px;height:260px;border-radius:50%;\n  overflow:hidden;\n  background:var(--brown-deep);\n  box-shadow:\n    0 30px 60px -22px rgba(46,30,21,.55),\n    0 6px 16px -8px rgba(46,30,21,.4),\n    inset 0 0 0 6px var(--cream),\n    inset 0 0 0 7px rgba(140,119,81,.4);\n  z-index:2;\n  transform-origin:center;\n}\n.brothers-portrait img{\n  position:absolute;inset:-4%;width:108%;height:108%;object-fit:cover;\n  will-change:transform;\n}\n\n\/* ---------------- TERRITORI ---------------- *\/\n.territori{\n  background:var(--cream);\n  padding:60px 56px 140px;\n  position:relative;\n}\n.territori-inner{\n  max-width:1320px;margin:0 auto;\n  display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;\n}\n.territori-text h2{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(30px,3vw,46px);line-height:1.08;letter-spacing:-.005em;\n  color:var(--brand);margin:14px 0 26px;text-wrap:balance;max-width:14ch;\n}\n.territori-text p{\n  font-family:var(--serif);font-size:16.5px;line-height:1.7;color:var(--ink-2);\n  margin:0 0 20px;max-width:40ch;\n}\n.territori-text p em{font-style:italic;font-weight:500;color:var(--brand)}\n.territori-text .link-cta{\n  margin-top:8px;\n  font-family:var(--sans);font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;\n  color:var(--gold-dark);padding-bottom:6px;\n  display:inline-flex;align-items:center;gap:10px;\n  position:relative;\n  transition:color 1s var(--ease-soft);\n}\n.territori-text .link-cta::after{\n  content:\"\";position:absolute;left:0;right:0;bottom:0;height:1px;\n  background:currentColor;transform-origin:left center;transform:scaleX(1);\n  transition:transform 1.4s var(--ease-graceful);\n}\n.territori-text .link-cta:hover{color:var(--gold)}\n.territori-text .link-cta:hover::after{transform:scaleX(1.18)}\n.territori-text .link-cta svg{transition:transform 1.4s var(--ease-graceful)}\n.territori-text .link-cta:hover svg{transform:translateX(14px)}\n\n.territori-map{\n  position:relative;width:100%;\n}\n.territori-map .territori-map-img,\n.territori-map svg.territori-map-svg{\n  display:block;width:100%;height:auto;\n  filter:drop-shadow(0 14px 40px rgba(46,30,21,.12)) drop-shadow(0 4px 12px rgba(46,30,21,.06));\n}\n\n\/* Map animations \u2014 start when parent .territori-map has .in (revealed via scroll) *\/\n\n\/* Pin pop-in: graceful arrival. Pins are visible by default \u2014 entrance is transform-only\n   so a missed\/late animation start never leaves them invisible. *\/\n.territori-map.in .territori-map-svg .map-pins{\n  transform-origin:50% 100%;\n  animation:\n    map-pin-pop 1.6s cubic-bezier(.22,1,.36,1) .3s backwards,\n    map-pin-float 7.5s ease-in-out 2s infinite;\n}\n@keyframes map-pin-pop{\n  0%{opacity:0;transform:translate(0,-18px) scale(.92)}\n  60%{opacity:1;transform:translate(0,3px) scale(1.02)}\n  100%{opacity:1;transform:translate(0,0) scale(1)}\n}\n\/* Combined gentle bob + sway in one keyframe so they don't fight over transform *\/\n@keyframes map-pin-float{\n  0%,100%{transform:translate(0,0) rotate(0)}\n  25%{transform:translate(0,-3px) rotate(.5deg)}\n  50%{transform:translate(0,-5px) rotate(0)}\n  75%{transform:translate(0,-3px) rotate(-.5deg)}\n}\n\n\/* Pin pulse rings \u2014 radiating outward from each dot continuously *\/\n.territori-map.in .territori-map-svg .pin-pulse{\n  transform-origin:center;transform-box:fill-box;\n  animation:map-pin-ring 3.6s ease-out infinite;\n  pointer-events:none;\n}\n.territori-map.in .territori-map-svg .pin-pulse-2{animation-delay:1.2s}\n.territori-map.in .territori-map-svg .pin-pulse-3{animation-delay:2.4s}\n@keyframes map-pin-ring{\n  0%{opacity:.65;stroke-width:1.4;r:4.84}\n  85%{opacity:0;stroke-width:.3;r:26}\n  100%{opacity:0;r:26}\n}\n\n\/* Water (lake + rivers) \u2014 entrance + perpetual subtle shimmer *\/\n.territori-map.in .territori-map-svg [fill=\"#5aacc3\"]{\n  animation:\n    map-water-in 2s cubic-bezier(.22,1,.36,1) .05s backwards,\n    map-water-shimmer 7s ease-in-out 2.2s infinite;\n}\n@keyframes map-water-in{\n  0%{opacity:0;transform:scale(1.015)}\n  100%{opacity:1;transform:scale(1)}\n}\n@keyframes map-water-shimmer{\n  0%,100%{opacity:1}\n  50%{opacity:.88}\n}\n\n\/* Land regions: drift up gently *\/\n.territori-map.in .territori-map-svg [fill=\"#c5b7ac\"],\n.territori-map.in .territori-map-svg [fill=\"#c4b5ab\"],\n.territori-map.in .territori-map-svg [fill=\"#a08e81\"],\n.territori-map.in .territori-map-svg [fill=\"#a18c80\"],\n.territori-map.in .territori-map-svg [fill=\"#a69184\"]{\n  animation:map-land-in 1.8s cubic-bezier(.22,1,.36,1) .15s backwards;\n}\n@keyframes map-land-in{\n  0%{opacity:0;transform:translateY(10px)}\n  100%{opacity:1;transform:translateY(0)}\n}\n\n\/* Highlighted San Pietro region \u2014 perpetual subtle glow *\/\n.territori-map.in .territori-map-svg [fill=\"#a18c80\"]{\n  animation:\n    map-land-in 1.8s cubic-bezier(.22,1,.36,1) .15s backwards,\n    map-region-glow 5.2s ease-in-out 2.5s infinite;\n}\n@keyframes map-region-glow{\n  0%,100%{filter:brightness(1)}\n  50%{filter:brightness(1.06)}\n}\n\n\/* Labels (dark brown text) fade up after land settles *\/\n.territori-map.in .territori-map-svg [fill=\"#63463b\"]{\n  animation:map-label-in 1.4s ease-out .45s backwards;\n}\n@keyframes map-label-in{\n  0%{opacity:0;transform:translateY(4px)}\n  100%{opacity:1;transform:translateY(0)}\n}\n\n\/* Lighter beige background frame *\/\n.territori-map.in .territori-map-svg [fill=\"#dfd6d1\"]{\n  animation:map-frame-in 1.3s ease-out backwards;\n}\n@keyframes map-frame-in{\n  0%{opacity:0}\n  100%{opacity:1}\n}\n\n\/* Hover: gentle lift + slow pause on bob *\/\n.territori-map-svg:hover .map-pins{\n  transform:translate(0,-5px) scale(1.01);\n  transition:transform 1.4s var(--ease-soft);\n  animation-play-state:paused !important;\n}\n\n\/* ---------------- PERCH\u00c9 SCEGLIERCI ---------------- *\/\n.perche{\n  background:var(--cream-2);\n  padding:100px 56px 130px;\n  position:relative;\n  border-top:1px solid rgba(140,119,81,.18);\n}\n.perche-inner{max-width:1320px;margin:0 auto}\n.perche-head{display:flex;flex-direction:column;align-items:center;gap:18px;margin-bottom:64px;text-align:center}\n.perche-head h2{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(32px,3.4vw,52px);line-height:1.08;letter-spacing:-.008em;\n  color:var(--brand);margin:0;\n}\n.perche-grid{\n  display:grid;grid-template-columns:repeat(3,1fr);gap:0;\n  align-items:stretch;\n  border-top:1px solid rgba(140,119,81,.22);\n  padding-top:140px;\n  position:relative;\n}\n\/* Vertical dividers between cards (only between, not on outside) *\/\n.perche-grid::before,\n.perche-grid::after{\n  content:\"\";position:absolute;top:140px;bottom:0;width:1px;\n  background:linear-gradient(180deg,\n    transparent 0%,\n    rgba(140,119,81,.22) 18%,\n    rgba(140,119,81,.22) 82%,\n    transparent 100%);\n}\n.perche-grid::before{left:33.333%}\n.perche-grid::after{left:66.666%}\n\n.perche-card{\n  position:relative;\n  display:flex;flex-direction:column;align-items:center;gap:18px;\n  text-align:center;padding:0 36px 24px;\n  transition:transform 1.1s var(--ease-soft);\n}\n.perche-card:hover{transform:translateY(-6px)}\n\n\/* Large faded italic numeral watermark \u2014 sits fully above the medallion, visible *\/\n.perche-num{\n  position:absolute;top:-104px;left:50%;transform:translateX(-50%);\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:104px;line-height:1;color:var(--brand);\n  opacity:.32;letter-spacing:-.02em;\n  pointer-events:none;user-select:none;\n  z-index:0;\n  transition:opacity 1.2s var(--ease-soft), transform 1.4s var(--ease-soft);\n}\n.perche-card:hover .perche-num{opacity:.55;transform:translateX(-50%) translateY(-4px)}\n\n\/* Medallion wrapping the icon *\/\n.perche-medallion{\n  position:relative;width:92px;height:92px;display:grid;place-items:center;\n  z-index:1;\n  transition:transform 1.1s var(--ease-soft);\n}\n.perche-medallion::before{\n  content:\"\";position:absolute;inset:0;border-radius:50%;\n  border:1px solid rgba(140,119,81,.35);\n  transition:transform 1.2s var(--ease-soft), border-color 1.2s var(--ease-soft);\n}\n.perche-medallion::after{\n  content:\"\";position:absolute;inset:9px;border-radius:50%;\n  border:1px solid var(--gold);\n  background:var(--cream-2);\n  transition:transform 1.2s var(--ease-soft), background-color 1.2s var(--ease-soft);\n}\n.perche-card:hover .perche-medallion::before{transform:scale(1.08);border-color:var(--gold)}\n.perche-card:hover .perche-medallion::after{transform:scale(1.04)}\n\n\/* Continuously rotating gold \"halo\" \u2014 slow, perpetual *\/\n.perche-halo{\n  position:absolute;inset:-6px;border-radius:50%;pointer-events:none;\n}\n.perche-halo svg{position:absolute;inset:0;width:100%;height:100%;animation:perche-halo-spin 24s linear infinite}\n.perche-halo circle{fill:none;stroke:var(--gold);stroke-width:.6;stroke-dasharray:2 8;opacity:.45}\n@keyframes perche-halo-spin{\n  to{transform:rotate(360deg)}\n}\n\n.perche-icon{\n  position:relative;width:42px;height:42px;display:grid;place-items:center;\n  color:var(--brand);z-index:1;\n  transition:transform 1.2s var(--ease-soft);\n}\n.perche-card:hover .perche-icon{transform:scale(1.06)}\n.perche-icon svg{width:100%;height:100%;overflow:visible}\n\n\/* Icon-specific perpetual micro-animations *\/\n.icon-shield .icon-check{\n  stroke-dasharray:22;stroke-dashoffset:22;\n  animation:icon-check-draw 3.6s ease-in-out 1s infinite;\n}\n@keyframes icon-check-draw{\n  0%,15%{stroke-dashoffset:22}\n  35%,75%{stroke-dashoffset:0}\n  95%,100%{stroke-dashoffset:22}\n}\n\n.icon-truck .truck-body,\n.icon-truck .truck-wheel-1,\n.icon-truck .truck-wheel-2{\n  animation:icon-truck-roll 4.5s ease-in-out infinite;\n  transform-origin:center;\n}\n.icon-truck .truck-wheel-1{transform-origin:13px 33px;animation:icon-wheel-spin 4.5s ease-in-out infinite}\n.icon-truck .truck-wheel-2{transform-origin:35px 33px;animation:icon-wheel-spin 4.5s ease-in-out infinite}\n@keyframes icon-truck-roll{\n  0%,100%{transform:translateX(-1.5px)}\n  50%{transform:translateX(1.5px)}\n}\n@keyframes icon-wheel-spin{\n  0%{transform:rotate(0)}\n  50%{transform:rotate(180deg)}\n  100%{transform:rotate(360deg)}\n}\n\n.icon-house .house-window{\n  transform-origin:24px 18px;\n  animation:icon-house-glow 4.2s ease-in-out infinite;\n}\n@keyframes icon-house-glow{\n  0%,100%{fill:var(--brand);transform:scale(1)}\n  50%{fill:var(--gold);transform:scale(1.5)}\n}\n\n.perche-card h3{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:22px;color:var(--brand);margin:8px 0 0;\n  position:relative;z-index:1;\n}\n\/* Slim gold underline that grows on hover *\/\n.perche-card h3::after{\n  content:\"\";display:block;width:28px;height:1px;\n  background:var(--gold);margin:14px auto 0;\n  transform-origin:center;transform:scaleX(.6);\n  transition:transform 1.2s var(--ease-soft), background-color 1.2s var(--ease-soft);\n}\n.perche-card:hover h3::after{transform:scaleX(1.4);background:var(--gold-dark)}\n\n.perche-list{\n  list-style:none;padding:0;margin:8px 0 0;\n  display:flex;flex-direction:column;gap:10px;\n  position:relative;z-index:1;\n}\n.perche-list li{\n  font-family:var(--serif);font-size:15.5px;line-height:1.55;color:var(--ink-2);\n  max-width:30ch;text-wrap:balance;\n}\n.perche-list em{font-style:italic;color:var(--brand);font-weight:500}\n.perche-cta{display:flex;justify-content:center;margin-top:80px}\n\n\/* Reveal stagger \u2014 already triggered by JS via .reveal -> .in *\/\n.perche-card{\n  opacity:0;transform:translateY(36px);\n}\n.perche-card.reveal.in,\n.perche-card.in{\n  opacity:1;transform:translateY(0);\n  transition:opacity 1.2s var(--ease-soft), transform 1.4s var(--ease-soft);\n}\n\/* Numeral and medallion get their own slight stagger on entrance *\/\n.perche-card .perche-num{transform:translateX(-50%) translateY(8px)}\n.perche-card.in .perche-num{\n  transform:translateX(-50%) translateY(0);\n  transition:opacity 1.6s var(--ease-soft) .25s, transform 1.6s var(--ease-soft) .25s;\n}\n.perche-card .perche-medallion{transform:scale(.86) rotate(-6deg)}\n.perche-card.in .perche-medallion{\n  transform:scale(1) rotate(0);\n  transition:transform 1.4s var(--ease-soft) .15s;\n}\n\n\/* ---------------- RESPONSIVE for Chi Siamo ---------------- *\/\n@media (max-width:1100px){\n  .pillars-grid{\n    grid-template-columns:1fr;\n    gap:48px;\n  }\n  .pillar-div{\n    width:100%;height:1px;flex-direction:row;padding-top:0;\n  }\n  .pillar-div-line{width:100%;height:1px;min-height:0;\n    background:linear-gradient(90deg, transparent, rgba(140,119,81,.35) 12%, rgba(140,119,81,.35) 88%, transparent);}\n  .hero-about-inner{grid-template-columns:1fr;gap:48px}\n  .hero-about-text{padding-top:0}\n  .territori-inner{grid-template-columns:1fr;gap:48px}\n}\n@media (max-width:680px){\n  .hero-about{padding:120px 24px 40px}\n  .pillars,.territori,.perche{padding-left:24px;padding-right:24px}\n  .perche-grid{grid-template-columns:1fr;gap:40px;padding-top:48px}\n  .brothers-portrait{width:200px;height:200px}\n  .brothers-wrap{height:200px}\n  .brothers-curve{height:380px;top:60px}\n}\n\n\/* ============================================================\n   SOSTENIBILIT\u00c0 \u2014 unique editorial layout\n   ============================================================ *\/\n\n\/* HERO \u2014 large title block, photo strip below *\/\n.sost-hero{\n  background:var(--cream);\n  padding:160px 56px 0;\n  position:relative;\n  overflow:hidden;\n}\n.sost-hero-inner{\n  max-width:1320px;margin:0 auto 56px;\n  display:grid;grid-template-columns:1.3fr 0.7fr;gap:60px;align-items:end;\n}\n.sost-eyebrow{\n  display:inline-flex;align-items:center;gap:14px;\n  font-family:var(--sans);font-size:11px;letter-spacing:.42em;text-transform:uppercase;\n  color:var(--gold-dark);margin:0 0 28px;\n}\n.sost-eyebrow::before{\n  content:\"\";display:block;width:40px;height:1px;background:currentColor;\n}\n.sost-title{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(56px,8vw,128px);line-height:.98;letter-spacing:-.018em;\n  color:var(--brand);margin:0;text-wrap:balance;\n}\n.sost-title .w{display:inline-block;opacity:0;transform:translateY(28px);animation:rise 1.1s var(--ease) forwards;margin-right:.16em}\n.sost-lede{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(17px,1.45vw,22px);line-height:1.45;color:var(--ink-2);\n  margin:0;max-width:32ch;text-wrap:pretty;padding-bottom:18px;\n}\n\n\/* Wide cinematic photo strip below the title *\/\n.sost-hero-photo{\n  position:relative;width:100%;\n  height:clamp(360px,46vw,620px);\n  overflow:hidden;\n}\n.sost-hero-photo img{\n  position:absolute;inset:0;width:100%;height:108%;\n  object-fit:cover;object-position:50% 60%;\n  will-change:transform;\n}\n\/* gold rule overlay top *\/\n.sost-hero-photo::before{\n  content:\"\";position:absolute;left:56px;right:56px;top:0;height:1px;\n  background:var(--gold);opacity:.5;z-index:2;\n  transform-origin:left;animation:rule-extend 1.6s var(--ease-soft) forwards;\n}\n@keyframes rule-extend{\n  from{transform:scaleX(0)}\n  to{transform:scaleX(1)}\n}\n\/* corner badge *\/\n.sost-hero-badge{\n  position:absolute;bottom:32px;right:32px;\n  display:inline-flex;align-items:center;gap:14px;\n  background:var(--cream);padding:14px 22px;\n  z-index:3;\n  box-shadow:0 16px 32px -14px rgba(46,30,21,.4);\n}\n.sost-hero-badge .brand-logo{\n  width:24px;height:24px;\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n          mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n  background-color:var(--brand);\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;\n  -webkit-mask-position:center;mask-position:center;\n  -webkit-mask-size:contain;mask-size:contain;\n  animation:hero-deco-spin 28s linear infinite;\n}\n.sost-hero-badge-text{\n  font-family:var(--sans);font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;\n  color:var(--brand);font-weight:600;line-height:1;\n}\n\n\/* ============================================================\n   IMPEGNI \u2014 vertical timeline\n   ============================================================ *\/\n.impegni{\n  background:var(--cream);\n  padding:140px 56px 140px;\n  position:relative;\n}\n.impegni-inner{\n  max-width:1080px;margin:0 auto;\n  display:grid;grid-template-columns:280px 1fr;gap:80px;align-items:start;\n}\n.impegni-intro{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(20px,1.7vw,26px);line-height:1.35;color:var(--brand);\n  margin:0;text-wrap:balance;\n  position:sticky;top:130px;\n}\n.impegni-intro::before{\n  content:\"\";display:block;width:48px;height:1px;background:var(--gold);margin-bottom:24px;\n}\n.impegni-list{\n  list-style:none;padding:0;margin:0;\n  position:relative;\n}\n\/* vertical rail *\/\n.impegni-list::before{\n  content:\"\";position:absolute;left:46px;top:6px;bottom:6px;width:1px;\n  background:linear-gradient(180deg,\n    transparent 0%,\n    rgba(140,119,81,.35) 8%,\n    rgba(140,119,81,.35) 92%,\n    transparent 100%);\n}\n.impegno{\n  position:relative;\n  display:grid;grid-template-columns:92px 1fr;gap:32px;align-items:center;\n  padding:36px 0;\n  border-bottom:1px solid rgba(140,119,81,.16);\n}\n.impegno:first-child{padding-top:0}\n.impegno:last-child{border-bottom:none;padding-bottom:0}\n.impegno-marker{\n  position:relative;width:92px;height:92px;\n  display:grid;place-items:center;\n  background:var(--cream);\n  z-index:1;\n}\n.impegno-marker::before{\n  content:\"\";position:absolute;inset:0;border-radius:50%;\n  border:1px solid var(--gold);background:var(--cream-2);\n  transition:transform 1s var(--ease-soft), border-color 1s var(--ease-soft);\n}\n.impegno:hover .impegno-marker::before{transform:scale(1.06);border-color:var(--gold-dark)}\n\/* Number stamp REMOVED \u2014 icons now stand alone *\/\n.impegno-icon{\n  position:relative;z-index:2;width:38px;height:44px;color:var(--brand);overflow:visible;\n}\n.impegno-icon.icon-renewable, .impegno-icon.icon-pv{height:38px}\n.impegno-name{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(24px,2.2vw,34px);line-height:1.12;letter-spacing:-.008em;\n  color:var(--brand);margin:0;text-wrap:balance;\n}\n\n\/* impegno icon perpetual animations *\/\n\n\/* 01 Water: cloud floats, 3 raindrops fall in sequence into the cistern, fill ripples *\/\n.impegno-icon.icon-water .icon-cloud{\n  transform-origin:24px 14px;\n  animation:cloud-drift 6s ease-in-out infinite;\n}\n@keyframes cloud-drift{\n  0%,100%{transform:translateX(-1px)}\n  50%{transform:translateX(1px)}\n}\n.impegno-icon.icon-water .drop{\n  transform-origin:center;\n}\n.impegno-icon.icon-water .drop-1{animation:drop-fall 2.4s ease-in infinite;animation-delay:0s}\n.impegno-icon.icon-water .drop-2{animation:drop-fall 2.4s ease-in infinite;animation-delay:.4s}\n.impegno-icon.icon-water .drop-3{animation:drop-fall 2.4s ease-in infinite;animation-delay:.8s}\n@keyframes drop-fall{\n  0%{transform:translateY(-5px);opacity:0}\n  20%{opacity:1}\n  70%{transform:translateY(8px);opacity:1}\n  85%{transform:translateY(8px);opacity:0}\n  100%{transform:translateY(-5px);opacity:0}\n}\n.impegno-icon.icon-water .icon-fill{\n  animation:water-fill 2.4s ease-in-out infinite;\n}\n@keyframes water-fill{\n  0%,100%{opacity:.18}\n  50%{opacity:.4}\n}\n\n\/* 02 Wind turbine: blades (3 properly spread at 120\u00b0 each) spin around the hub *\/\n.impegno-icon.icon-renewable .icon-blades{\n  transform-origin:24px 22px;\n  animation:blades-spin 4s linear infinite;\n}\n@keyframes blades-spin{\n  to{transform:rotate(360deg)}\n}\n.impegno-icon.icon-renewable .icon-breeze{\n  animation:breeze-flow 3.2s ease-in-out infinite;\n}\n.impegno-icon.icon-renewable .breeze-2{animation-delay:.5s}\n.impegno-icon.icon-renewable .breeze-3{animation-delay:1.2s}\n@keyframes breeze-flow{\n  0%{opacity:0;transform:translateX(-4px)}\n  35%{opacity:.7}\n  65%{opacity:.7}\n  100%{opacity:0;transform:translateX(4px)}\n}\n\n\/* 03 PV + biomass \u2014 richly animated: sun pulses, beam streams down, cells light up\n   in sequence, plant stem draws itself, leaves sway, energy sparks rise from biomass *\/\n.impegno-icon.icon-pv .icon-pv-sun{\n  transform-origin:24px 11px;\n  animation:pv-sun-pulse 3s ease-in-out infinite;\n}\n.impegno-icon.icon-pv .icon-pv-sun-grp line{\n  animation:rays-flicker 2.4s ease-in-out infinite;\n}\n.impegno-icon.icon-pv .icon-pv-sun-grp line:nth-child(2){animation-delay:.3s}\n.impegno-icon.icon-pv .icon-pv-sun-grp line:nth-child(3){animation-delay:.6s}\n@keyframes pv-sun-pulse{\n  0%,100%{transform:scale(1)}\n  50%{transform:scale(1.18)}\n}\n@keyframes rays-flicker{0%,100%{opacity:1}50%{opacity:.45}}\n\n\/* Beam streaming down from sun to panel *\/\n.impegno-icon.icon-pv .icon-pv-beam{\n  stroke-dasharray:2 2;\n  stroke-dashoffset:0;\n  animation:pv-beam-flow 1.6s linear infinite;\n  opacity:.55;\n}\n@keyframes pv-beam-flow{\n  from{stroke-dashoffset:0}\n  to{stroke-dashoffset:-12}\n}\n\n\/* Panel slowly tilts; cells light up one after another in a wave *\/\n.impegno-icon.icon-pv .icon-pv-panel{\n  transform-origin:15px 28px;\n  animation:pv-panel-tilt 5s ease-in-out infinite;\n}\n@keyframes pv-panel-tilt{\n  0%,100%{transform:rotate(-1deg) translateY(0)}\n  50%{transform:rotate(1deg) translateY(-.6px)}\n}\n.impegno-icon.icon-pv .icon-pv-cell{\n  animation:pv-cell-glow 3.2s ease-in-out infinite;\n}\n.impegno-icon.icon-pv .cell-1{animation-delay:0s}\n.impegno-icon.icon-pv .cell-2{animation-delay:.18s}\n.impegno-icon.icon-pv .cell-3{animation-delay:.36s}\n.impegno-icon.icon-pv .cell-4{animation-delay:.54s}\n.impegno-icon.icon-pv .cell-5{animation-delay:.72s}\n.impegno-icon.icon-pv .cell-6{animation-delay:.90s}\n@keyframes pv-cell-glow{\n  0%,80%,100%{opacity:0}\n  20%,40%{opacity:.35}\n}\n\n\/* Biomass plant: stem grows by stroke-dash; leaves alternate; sparks rise & fade *\/\n.impegno-icon.icon-pv .icon-pv-stem{\n  stroke-dasharray:22;stroke-dashoffset:22;\n  animation:pv-stem-grow 4.6s ease-in-out infinite;\n  transform-origin:36px 38px;\n}\n@keyframes pv-stem-grow{\n  0%{stroke-dashoffset:22;transform:rotate(-3deg)}\n  35%,75%{stroke-dashoffset:0;transform:rotate(0)}\n  95%,100%{stroke-dashoffset:22;transform:rotate(3deg)}\n}\n.impegno-icon.icon-pv .icon-pv-leaf--l{\n  transform-origin:36px 30px;\n  animation:pv-leaf-l 3.6s ease-in-out infinite;\n}\n.impegno-icon.icon-pv .icon-pv-leaf--r{\n  transform-origin:36px 24px;\n  animation:pv-leaf-r 4s ease-in-out infinite;\n}\n@keyframes pv-leaf-l{\n  0%,100%{transform:rotate(-8deg) scale(.96)}\n  50%{transform:rotate(8deg) scale(1.04)}\n}\n@keyframes pv-leaf-r{\n  0%,100%{transform:rotate(10deg) scale(.96)}\n  50%{transform:rotate(-10deg) scale(1.04)}\n}\n\n\/* ============================================================\n   CIFRE \u2014 horizontal numbers strip on a textured warm band\n   ============================================================ *\/\n.cifre{\n  background:\n    linear-gradient(180deg, var(--cream-3) 0%, var(--cream-2) 100%);\n  padding:120px 56px;\n  position:relative;\n  border-top:1px solid rgba(140,119,81,.2);\n  border-bottom:1px solid rgba(140,119,81,.2);\n}\n.cifre-inner{\n  max-width:1280px;margin:0 auto;\n  display:grid;grid-template-columns:repeat(3,1fr);gap:0;\n  position:relative;\n}\n.cifre-inner::before,\n.cifre-inner::after{\n  content:\"\";position:absolute;top:10%;bottom:10%;width:1px;\n  background:linear-gradient(180deg, transparent, rgba(140,119,81,.4), transparent);\n}\n.cifre-inner::before{left:33.333%}\n.cifre-inner::after{left:66.666%}\n.cifra{\n  display:flex;flex-direction:column;align-items:center;gap:18px;\n  padding:0 32px;text-align:center;\n}\n.cifra-num{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(54px,6vw,96px);line-height:.95;letter-spacing:-.018em;\n  color:var(--brand);\n}\n.cifra-rule{display:block;width:32px;height:1px;background:var(--gold)}\n.cifra-label{\n  font-family:var(--serif);font-style:italic;font-weight:400;\n  font-size:15px;line-height:1.5;color:var(--ink-2);\n  max-width:18ch;\n}\n\n\/* ============================================================\n   CERTIFICAZIONE \u2014 closing band\n   ============================================================ *\/\n.cert{\n  background:var(--cream);\n  padding:140px 56px 160px;\n  text-align:center;\n  position:relative;\n}\n.cert-inner{\n  max-width:780px;margin:0 auto;\n  display:flex;flex-direction:column;align-items:center;gap:36px;\n}\n.cert-eyebrow{\n  font-family:var(--sans);font-size:11px;letter-spacing:.42em;text-transform:uppercase;\n  color:var(--gold-dark);margin:0;\n}\n.cert-h{\n  font-family:var(--serif);font-style:italic;font-weight:500;\n  font-size:clamp(36px,4vw,60px);line-height:1.08;letter-spacing:-.008em;\n  color:var(--brand);margin:0;text-wrap:balance;\n}\n.cert-h em{font-style:italic;font-weight:600;color:var(--gold-dark);letter-spacing:.02em}\n.cert-body{\n  font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.55;\n  color:var(--ink-2);margin:0;max-width:38ch;text-wrap:balance;\n}\n\/* Equalitas certification mark (linked from official source) *\/\n.cert-equalitas{\n  position:relative;\n  display:inline-grid;place-items:center;\n  width:clamp(220px, 22vw, 280px);\n  aspect-ratio:1\/1;\n  padding:36px;\n  margin-bottom:8px;\n  transition:transform 1.2s var(--ease-soft);\n}\n.cert-equalitas img{\n  display:block;width:100%;height:auto;\n  position:relative;z-index:2;\n  filter:drop-shadow(0 6px 14px rgba(46,30,21,.08));\n  animation:cert-breathe 5.4s ease-in-out infinite;\n  transform-origin:center;\n}\n.cert-equalitas:hover{transform:translateY(-3px)}\n@keyframes cert-breathe{\n  0%,100%{transform:scale(1)}\n  50%{transform:scale(1.025)}\n}\n\n\/* Rotating dashed border around the logo *\/\n.cert-equalitas::before{\n  content:\"\";position:absolute;inset:0;\n  border-radius:50%;\n  border:1px dashed var(--gold);\n  opacity:.7;\n  animation:cert-ring-spin 28s linear infinite;\n}\n\/* Static inner hairline ring *\/\n.cert-equalitas::after{\n  content:\"\";position:absolute;inset:14px;\n  border-radius:50%;\n  border:1px solid rgba(140,119,81,.22);\n  pointer-events:none;\n}\n@keyframes cert-ring-spin{\n  to{transform:rotate(360deg)}\n}\n\n\/* SVG overlay with stroke-dash animation \u2014 adds an animated arc that \"draws\" around *\/\n.cert-equalitas-arc{\n  position:absolute;inset:0;width:100%;height:100%;\n  z-index:1;pointer-events:none;\n}\n.cert-equalitas-arc circle{\n  fill:none;stroke:var(--gold-dark);stroke-width:1.2;\n  stroke-dasharray:60 380;stroke-linecap:round;\n  animation:cert-arc-orbit 6s linear infinite;\n  transform-origin:center;\n}\n@keyframes cert-arc-orbit{\n  0%{stroke-dashoffset:0;opacity:.85}\n  50%{opacity:.4}\n  100%{stroke-dashoffset:-440;opacity:.85}\n}\n\n@media (max-width:900px){\n  .sost-hero{padding:120px 24px 0}\n  .sost-hero-inner{grid-template-columns:1fr;gap:24px}\n  .sost-hero-photo{margin:0 -24px}\n  .sost-hero-photo::before{left:24px;right:24px}\n  .impegni{padding:80px 24px}\n  .impegni-inner{grid-template-columns:1fr;gap:48px}\n  .impegni-intro{position:static}\n  .cifre{padding:80px 24px}\n  .cifre-inner{grid-template-columns:1fr;gap:48px}\n  .cifre-inner::before, .cifre-inner::after{display:none}\n  .cert{padding:80px 24px 100px}\n}\n\n\n\/* ============================================================\n   TRADE AREA\n   ============================================================ *\/\n.btn-ghost{\n  display:inline-flex;align-items:center;gap:10px;\n  font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;\n  padding:15px 26px;border-radius:999px;border:1px solid rgba(101,73,22,.4);color:var(--brand);background:transparent;\n  transition:background-color .8s var(--ease-soft), color .8s var(--ease-soft), border-color .8s var(--ease-soft);\n}\n.btn-ghost:hover{background:var(--brand);color:var(--cream);border-color:var(--brand)}\n.btn-ghost--light{color:var(--cream);border-color:rgba(241,230,221,.45)}\n.btn-ghost--light:hover{background:var(--cream);color:var(--brown-deep);border-color:var(--cream)}\n.btn-pill--gold{background:var(--gold);color:var(--cream)}\n.btn-pill--full{width:100%;justify-content:center;margin-top:6px}\n\n\/* HERO (gate) *\/\n.trade-hero{padding-bottom:0}\n.trade-hero-inner{\n  max-width:1320px;margin:0 auto;\n  display:grid;grid-template-columns:1.25fr 0.75fr;gap:60px;align-items:center;\n  padding-bottom:110px;\n}\n.trade-hero-text .sost-title{margin-bottom:30px}\n.trade-hero-cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:38px}\n.trade-hero-lock{position:relative;display:grid;place-items:center;height:300px}\n.lock-disc{\n  width:148px;height:148px;border-radius:50%;\n  background:radial-gradient(circle at 38% 32%, #fff8ef, var(--cream-3));\n  display:grid;place-items:center;position:relative;z-index:2;\n  box-shadow:0 30px 60px -28px rgba(101,73,22,.5), inset 0 0 0 1px rgba(191,134,60,.25);\n}\n.lock-disc .brand-logo{width:62px;height:62px;background-color:var(--brand);animation:hero-deco-spin 34s linear infinite}\n.lock-ring{\n  position:absolute;width:240px;height:240px;border-radius:50%;\n  border:1px solid rgba(191,134,60,.4);\n  animation:lock-ring-pulse 4s ease-in-out infinite;\n}\n.lock-ring::after{content:\"\";position:absolute;inset:26px;border-radius:50%;border:1px solid rgba(191,134,60,.25)}\n@keyframes lock-ring-pulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.06);opacity:.35}}\n\n\/* CONTENUTO + VALORE *\/\n.trade-cols{background:var(--cream);padding:30px 56px 110px}\n.trade-cols-inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:stretch}\n.tcard{\n  background:var(--cream-2);border:1px solid rgba(140,119,81,.18);\n  padding:48px 48px 44px;display:flex;flex-direction:column;gap:18px;\n}\n.tcard--value{background:var(--brand);color:var(--cream);border-color:transparent;position:relative;overflow:hidden}\n.tcard--value::after{\n  content:\"\";position:absolute;right:-80px;bottom:-80px;width:280px;height:280px;opacity:.07;\n  -webkit-mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");mask-image:url(\"https:\/\/www.cottini1925.cybeartest.it\/wp-content\/uploads\/2026\/05\/logo-cottini-mark.svg\");\n  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;\n  background-color:var(--cream);animation:hero-deco-spin 60s linear infinite;\n}\n.tcard-kicker{font-family:var(--sans);font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-dark);display:inline-flex;align-items:center;gap:14px}\n.tcard-kicker::before{content:\"\";width:34px;height:1px;background:currentColor;display:block}\n.tcard--value .tcard-kicker{color:var(--gold-light)}\n.tcard-title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,2.4vw,38px);line-height:1.08;letter-spacing:-.01em;color:var(--brand);margin:4px 0 6px}\n.tcard--value .tcard-title{color:var(--cream)}\n.tcard-title--lg{max-width:16ch}\n.tcard-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}\n.tcard-list li{display:flex;align-items:center;gap:18px;padding:18px 0;border-top:1px solid rgba(140,119,81,.18);font-family:var(--serif);font-size:18px;color:var(--ink-2)}\n.tcard-list li:first-child{border-top:none}\n.tl-mark{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(191,134,60,.4);color:var(--gold-dark)}\n.tl-mark .dl-ico{width:18px;height:18px}\n.tcard-p{font-family:var(--serif);font-size:17px;line-height:1.7;color:rgba(241,230,221,.85);margin:0;max-width:42ch;position:relative;z-index:2}\n.tcard-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:30px;position:relative;z-index:2}\n.tcard--value .btn-pill{background:var(--gold);color:var(--cream)}\n.tcard--value .btn-ghost{color:var(--cream);border-color:rgba(241,230,221,.4)}\n.tcard--value .btn-ghost:hover{background:var(--cream);color:var(--brand);border-color:var(--cream)}\n\n\/* DARK CTA BAND *\/\n.trade-band{position:relative;background:var(--brown-deep);color:var(--cream);overflow:hidden;min-height:340px;display:flex;align-items:center}\n.trade-band-photo{position:absolute;inset:0 0 0 auto;width:48%;overflow:hidden}\n.trade-band-photo::before{content:\"\";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,var(--brown-deep) 0%, rgba(46,30,21,.6) 30%, rgba(46,30,21,.15) 100%)}\n.trade-band-photo img{position:absolute;inset:0;width:100%;height:114%;object-fit:cover}\n.trade-band-inner{position:relative;z-index:3;max-width:1240px;margin:0 auto;width:100%;padding:64px 56px;display:flex;align-items:center;justify-content:space-between;gap:40px}\n.trade-band-text{max-width:540px}\n.trade-band-text h2{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(30px,3.2vw,48px);line-height:1.05;color:var(--cream);margin:0 0 16px}\n.trade-band-text p{font-family:var(--serif);font-size:17px;line-height:1.6;color:rgba(241,230,221,.8);margin:0 0 28px;max-width:46ch}\n.trade-band-cta{display:flex;gap:16px;flex-wrap:wrap}\n.trade-band-mark{flex:none}\n.trade-band-mark .brand-logo{width:120px;height:98px}\n\n\/* ============================================================\n   PRODOTTI (post-login)\n   ============================================================ *\/\n.acct-bar{background:var(--brand);color:var(--cream);padding-top:96px}\n.acct-bar-inner{max-width:1320px;margin:0 auto;padding:12px 56px;display:flex;align-items:center;justify-content:space-between;gap:16px}\n.acct-status{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:12px}\n.acct-status strong{font-weight:600;letter-spacing:.14em}\n.acct-dot{width:8px;height:8px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 0 0 rgba(217,168,98,.6);animation:acct-pulse 2.4s ease-in-out infinite}\n@keyframes acct-pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,168,98,.5)}50%{box-shadow:0 0 0 6px rgba(217,168,98,0)}}\n.acct-logout{font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);background:transparent;border:1px solid rgba(241,230,221,.4);border-radius:999px;padding:8px 18px;display:inline-flex;align-items:center;gap:9px;transition:background-color .6s var(--ease-soft),color .6s var(--ease-soft),gap .8s var(--ease-graceful)}\n.acct-logout:hover{background:var(--cream);color:var(--brand);gap:13px}\n\n\/* HERO prodotti *\/\n.prod-hero{position:relative;background:var(--cream);padding:90px 56px 70px;max-width:1432px;margin:0 auto;display:grid;grid-template-columns:1fr 0.92fr;gap:40px;align-items:start;overflow:hidden}\n.prod-hero-text{padding-top:24px}\n.prod-hero-title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(44px,5.2vw,80px);line-height:1;letter-spacing:-.02em;color:var(--gold-dark);margin:22px 0 28px}\n.prod-hero-title .w{display:inline-block;opacity:0;transform:translateY(26px);animation:rise 1.1s var(--ease) forwards;margin-right:.18em}\n.prod-hero-sub{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2vw,30px);line-height:1.18;color:var(--brand);margin:0 0 22px}\n.prod-hero-p{font-family:var(--serif);font-size:17px;line-height:1.7;color:var(--ink-2);margin:0;max-width:44ch}\n.prod-hero-photo{position:relative;height:clamp(360px,34vw,500px);border-radius:0 0 0 220px;overflow:hidden;background:var(--brown-deep)}\n.prod-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}\n\n\/* TOOLBAR *\/\n.prod-toolbar{background:var(--cream);padding:8px 56px 0}\n.prod-toolbar-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid rgba(140,119,81,.22)}\n.filters{display:flex;gap:6px;flex-wrap:wrap}\n.filter{font-family:var(--sans);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);background:transparent;border:none;padding:10px 16px;border-radius:999px;position:relative;transition:color .6s var(--ease-soft),background-color .6s var(--ease-soft)}\n.filter::after{content:\"\";position:absolute;left:16px;right:16px;bottom:4px;height:1px;background:var(--gold-dark);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-soft)}\n.filter:hover{color:var(--brand)}\n.filter.is-active{color:var(--gold-dark);font-weight:600}\n.filter.is-active::after{transform:scaleX(1)}\n.prod-search{display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(140,119,81,.4);padding:8px 4px;min-width:240px}\n.prod-search input{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--brand);background:transparent;border:none;outline:none;width:100%}\n.prod-search input::placeholder{color:rgba(58,42,31,.5)}\n.prod-search svg{width:18px;height:18px;color:var(--gold-dark);flex:none}\n\n\/* TABLE *\/\n.prod-table-wrap{background:var(--cream);padding:0 56px 30px}\n.prod-table{max-width:1320px;margin:0 auto;width:100%;border-collapse:collapse}\n.prod-table th{font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-dark);font-weight:600;text-align:left;padding:26px 18px;border-bottom:1px solid rgba(140,119,81,.3)}\n.prod-table td{font-family:var(--serif);font-size:16px;color:var(--ink-2);padding:20px 18px;border-bottom:1px solid rgba(140,119,81,.16);vertical-align:middle}\n.prow{transition:background-color .5s var(--ease-soft)}\n.prow:hover{background:var(--cream-2)}\n.c-prod{width:26%}\n.c-alc,.c-fmt{white-space:nowrap}\n.c-dl{text-align:center;width:120px}\n.prod-cell{display:flex;align-items:center;gap:16px}\n.prod-name{font-weight:500;color:var(--brand);line-height:1.3}\n.vbottle{flex:none;width:26px;height:60px;display:block}\n.vbottle svg{width:100%;height:100%}\n.vb-cap{fill:#2a2018}\n.vb-label{fill:rgba(241,230,221,.92);stroke:rgba(140,119,81,.4);stroke-width:.4}\n.vbottle--red .vb-body{fill:#5a1f22}\n.vbottle--white .vb-body{fill:#c9b46a}\n.vbottle--rose .vb-body{fill:#d99a8e}\n.vbottle--sparkling .vb-body{fill:#3c4a30}\n.brand-chip{font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:999px;white-space:nowrap;display:inline-block}\n.brand-chip--annaberta{background:rgba(38,59,47,.12);color:#263b2f}\n.brand-chip--la-sogara{background:rgba(44,46,53,.1);color:#2c2e35}\n.brand-chip--stile-naturale{background:rgba(79,125,67,.16);color:#3f6536}\n.c-ean{font-feature-settings:\"tnum\";letter-spacing:.02em;color:var(--ink-2)}\n.dl-link{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid rgba(191,134,60,.35);color:var(--gold-dark);transition:background-color .6s var(--ease-soft),color .6s var(--ease-soft),transform .6s var(--ease-soft)}\n.dl-link:hover{background:var(--gold);color:var(--cream);border-color:var(--gold);transform:translateY(-2px)}\n.dl-ico{width:20px;height:20px}\n.prod-empty{max-width:1320px;margin:0 auto;text-align:center;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink-2);padding:60px 0}\n\n\/* FEATURE ICONS *\/\n.prod-feats{background:var(--cream);padding:40px 56px 110px;position:relative}\n.prod-feats::before{content:\"\";display:block;max-width:1320px;margin:0 auto 70px;height:1px;background:rgba(140,119,81,.22)}\n.prod-feats-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}\n.feat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}\n.feat-ico{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(191,134,60,.4);color:var(--gold-dark)}\n.feat-ico svg{width:34px;height:34px}\n.feat-t{font-family:var(--serif);font-size:15.5px;line-height:1.45;color:var(--ink-2);margin:0;max-width:18ch}\n\n\/* ============================================================\n   MODALS\n   ============================================================ *\/\n.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:24px}\n.modal[hidden]{display:none}\n.modal-backdrop{position:absolute;inset:0;background:rgba(26,18,9,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:mb-in .5s var(--ease) both}\n@keyframes mb-in{from{opacity:0}to{opacity:1}}\n.modal-card{position:relative;z-index:2;background:var(--cream-2);width:min(560px,100%);max-height:90vh;overflow-y:auto;padding:52px 52px 48px;box-shadow:0 50px 100px -30px rgba(26,18,9,.6);animation:mc-in .65s var(--ease-graceful) both}\n@keyframes mc-in{from{opacity:0;transform:translateY(30px) scale(.98)}to{opacity:1;transform:none}}\n.modal-x{position:absolute;top:20px;right:24px;font-size:26px;line-height:1;color:var(--ink-2);background:none;border:none;width:36px;height:36px;border-radius:50%;transition:background-color .5s var(--ease-soft)}\n.modal-x:hover{background:var(--cream-3)}\n.modal-kicker{font-family:var(--sans);font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-dark);display:inline-flex;align-items:center;gap:14px}\n.modal-kicker::before{content:\"\";width:32px;height:1px;background:currentColor;display:block}\n.modal-title{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(28px,3vw,40px);line-height:1.05;color:var(--brand);margin:16px 0 10px}\n.modal-sub{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-2);margin:0 0 30px;max-width:44ch}\n.modal-form{display:flex;flex-direction:column;gap:24px}\n.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}\n.mfield{display:flex;flex-direction:column;gap:8px}\n.mfield--full{grid-column:1\/-1}\n.mfield-label{font-family:var(--sans);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--brand);font-weight:600}\n.mfield-opt{font-weight:400;color:var(--ink-2);letter-spacing:.16em;text-transform:none;font-size:10px}\n.mfield input,.mfield select,.mfield textarea{font-family:var(--serif);font-size:17px;color:var(--brand);background:transparent;border:none;border-bottom:1px solid rgba(140,119,81,.4);padding:10px 0;width:100%;outline:none;appearance:none;transition:border-color .5s var(--ease-soft)}\n.mfield input::placeholder,.mfield textarea::placeholder{color:rgba(58,42,31,.45);font-style:italic}\n.mfield select{cursor:pointer;color:rgba(58,42,31,.55)}\n.mfield select:valid{color:var(--brand)}\n.mfield textarea{resize:vertical}\n.mfield input:focus,.mfield select:focus,.mfield textarea:focus{border-bottom-color:var(--gold-dark)}\n.mfield-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}\n.mcheck{display:flex;align-items:flex-start;gap:12px;font-family:var(--serif);font-size:14.5px;color:var(--ink-2);cursor:pointer}\n.mcheck--full{grid-column:1\/-1}\n.mcheck input{width:18px;height:18px;border:1px solid rgba(140,119,81,.5);appearance:none;-webkit-appearance:none;position:relative;cursor:pointer;flex:none;margin-top:1px;transition:background-color .4s var(--ease-soft),border-color .4s var(--ease-soft)}\n.mcheck input:checked{background:var(--brand);border-color:var(--brand)}\n.mcheck input:checked::after{content:\"\";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--cream);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}\n.mcheck a{color:var(--gold-dark);border-bottom:1px solid currentColor}\n.mlink{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark);border-bottom:1px solid transparent;transition:border-color .5s var(--ease-soft)}\n.mlink:hover{border-bottom-color:currentColor}\n.mlink--btn{background:none;border:none;padding:0;cursor:pointer}\n.modal-alt{font-family:var(--serif);font-size:14.5px;color:var(--ink-2);text-align:center;margin:4px 0 0}\n.modal-alt .mlink{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:14.5px;border-bottom:1px solid var(--gold-dark)}\n.modal-success{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px;padding:20px 0}\n.modal-success .ms-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--brand)}\n.modal-success .ms-mark .brand-logo{width:34px;height:34px;background-color:var(--gold-light);animation:hero-deco-spin 24s linear infinite}\n.modal-success h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:30px;color:var(--brand);margin:6px 0 0}\n.modal-success p{font-family:var(--serif);font-size:16px;line-height:1.6;color:var(--ink-2);margin:0;max-width:38ch}\n\n@media (max-width:980px){\n  .trade-hero-inner{grid-template-columns:1fr;gap:30px;padding-bottom:80px}\n  .trade-hero-lock{display:none}\n  .trade-cols{padding:20px 24px 80px}\n  .trade-cols-inner{grid-template-columns:1fr}\n  .trade-band-photo{width:100%;opacity:.5}\n  .trade-band-photo::before{background:linear-gradient(180deg,rgba(46,30,21,.6),var(--brown-deep))}\n  .trade-band-inner{flex-direction:column;align-items:flex-start;padding:48px 24px}\n  .trade-band-mark{display:none}\n  .prod-hero{grid-template-columns:1fr;padding:64px 24px 40px}\n  .prod-hero-photo{border-radius:0 0 0 120px;height:300px;order:-1}\n  .prod-toolbar,.prod-table-wrap,.prod-feats{padding-left:24px;padding-right:24px}\n  .acct-bar{padding-top:84px}\n  .acct-bar-inner{padding:12px 24px}\n  .prod-feats-inner{grid-template-columns:1fr 1fr;gap:36px}\n  .prod-table{font-size:14px}\n  .prod-table thead{display:none}\n  .prod-table tbody,.prod-table tr,.prod-table td{display:block;width:auto}\n  .prow{padding:18px 0;border-bottom:1px solid rgba(140,119,81,.2)}\n  .prod-table td{border:none;padding:4px 0}\n  .c-den::before{content:\"Denominazione \u00b7 \";color:var(--gold-dark);font-size:11px;letter-spacing:.1em;text-transform:uppercase}\n  .c-fmt::before{content:\"Formato \u00b7 \";color:var(--gold-dark);font-size:11px;letter-spacing:.1em;text-transform:uppercase}\n  .c-alc::before{content:\"Alc. \u00b7 \";color:var(--gold-dark);font-size:11px;letter-spacing:.1em;text-transform:uppercase}\n  .c-ean::before{content:\"EAN \u00b7 \";color:var(--gold-dark);font-size:11px;letter-spacing:.1em;text-transform:uppercase}\n  .c-dl{text-align:left}\n  .mgrid{grid-template-columns:1fr}\n  .modal-card{padding:40px 28px 36px}\n}\n\n\/* ---------------- GRAIN ---------------- *\/\n.grain{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.07;mix-blend-mode:multiply;\n  background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'\/><feColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.08 0 0 0 0 0.05 0 0 0 1 0'\/><\/filter><rect width='100%' height='100%' filter='url(#n)'\/><\/svg>\");\n}\n\n\/* ---------------- REVEALS ---------------- *\/\n.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease), transform 1.2s var(--ease)}\n.reveal.in{opacity:1;transform:translateY(0)}\n.anim-fade{opacity:0;transition:opacity 1.2s var(--ease)}\n.anim-fade.in{opacity:1}\n.anim-zoom{opacity:0;transform:scale(1.08);transition:opacity 1.2s var(--ease), transform 1.4s var(--ease)}\n.anim-zoom.in{opacity:1;transform:scale(1)}\n\n\/* focus *\/\na:focus-visible, button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}\n\n\/* ---------------- RESPONSIVE ---------------- *\/\n@media (max-width:1180px){\n  .valori-inner{grid-template-columns:1fr;gap:48px}\n  .valori-text p, .valori-text h2{max-width:none}\n  .cards{gap:40px 40px}\n}\n@media (max-width:960px){\n  .site-nav{display:none}\n  .site-header{grid-template-columns:1fr auto;padding:14px 24px}\n  .site-header.scrolled{padding:10px 24px}\n  .hero{min-height:88vh}\n  .hero-text{top:130px;left:24px;right:24px}\n  .scroll-disc{width:96px;height:96px}\n  .scroll-disc .quad{width:30px;height:30px}\n  .scroll-disc .label{font-size:10.5px}\n  .valori,.numeri,.cta-final,.site-footer{padding-left:24px;padding-right:24px}\n  .stats{grid-template-columns:1fr 1fr;gap:48px 32px}\n  .foot-grid{grid-template-columns:1fr;gap:40px}\n}\n@media (max-width:560px){\n  .cards{grid-template-columns:1fr;gap:32px}\n  .hero-photo::after{height:84%;bottom:-66%}\n  .numeri{padding:120px 24px 140px}\n  .numeri::before, .numeri::after{height:50%}\n}\n\n@media (prefers-reduced-motion:reduce){\n  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}\n  h1.hero-h1 .w, h1.hero-about-h1 .w{opacity:1;transform:none}\n}\n<\/style>\n<style id=\"cot-trade-fix\">.modal-form[hidden],.modal-success[hidden]{display:none !important}.prod-toolbar .filter.is-active,.prod-toolbar .filter[aria-selected=\"true\"]{background:var(--gold) !important;color:var(--cream) !important;font-weight:600 !important;box-shadow:0 6px 14px -8px rgba(67,44,32,.5)}.prod-toolbar .filter.is-active::after{display:none !important}.prod-toolbar .filter:hover:not(.is-active){background:var(--cream-3) !important;color:var(--brand) !important}.modal .modal-x{background:transparent !important;color:var(--brand) !important}.modal .modal-x:hover{background:var(--cream-3) !important;color:var(--brown) !important}<\/style>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400;1,8..60,500&amp;family=Epilogue:wght@400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<svg width=\"0\" height=\"0\" style=\"position:absolute\" aria-hidden=\"true\">\n  <defs>\n    <!-- Crescent (mezzaluna) clip \u2014 bite from the LEFT side (facing the text column).\n         Photo fills the right + top + bottom edges; cream curve dips in from the left. -->\n    <clipPath id=\"petalClip\" clipPathUnits=\"objectBoundingBox\">\n      <path d=\"M 0.02 0, C 0.5 0.22, 0.5 0.78, 0.02 1, L 1 1, L 1 0, Z\"><\/path>\n    <\/clipPath>\n  <\/defs>\n  <symbol id=\"quad\" viewBox=\"0 0 100 100\" fill=\"currentColor\" fill-rule=\"evenodd\">\n    <!-- four teardrop petals meeting at center, with center void -->\n    <path d=\"M50 6 C 62 6 70 18 70 32 C 70 42 62 46 50 50 C 38 46 30 42 30 32 C 30 18 38 6 50 6 Z\"><\/path>\n    <path d=\"M94 50 C 94 62 82 70 68 70 C 58 70 54 62 50 50 C 54 38 58 30 68 30 C 82 30 94 38 94 50 Z\"><\/path>\n    <path d=\"M50 94 C 38 94 30 82 30 68 C 30 58 38 54 50 50 C 62 54 70 58 70 68 C 70 82 62 94 50 94 Z\"><\/path>\n    <path d=\"M6 50 C 6 38 18 30 32 30 C 42 30 46 38 50 50 C 46 62 42 70 32 70 C 18 70 6 62 6 50 Z\"><\/path>\n    <circle cx=\"50\" cy=\"50\" r=\"4\" fill=\"var(--cream,#F1E6DD)\"><\/circle>\n  <\/symbol>\n  <symbol id=\"ic-quality\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <path d=\"M16 8 H32 C32 18 29 26 24 26 C 19 26 16 18 16 8 Z\"><\/path>\n    <line x1=\"24\" y1=\"26\" x2=\"24\" y2=\"40\"><\/line>\n    <line x1=\"17\" y1=\"41\" x2=\"31\" y2=\"41\"><\/line>\n  <\/symbol>\n  <symbol id=\"ic-respect\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <path d=\"M24 7 C 27 11 31 10 34 12 C 37 15 37 19 34 21 C 38 24 36 28 32 29 C 31 33 27 35 24 39 C 21 35 17 33 16 29 C 12 28 10 24 14 21 C 11 19 11 15 14 12 C 17 10 21 11 24 7 Z\"><\/path>\n    <line x1=\"24\" y1=\"22\" x2=\"24\" y2=\"42\"><\/line>\n    <line x1=\"24\" y1=\"26\" x2=\"18\" y2=\"22\" opacity=\".55\"><\/line>\n    <line x1=\"24\" y1=\"26\" x2=\"30\" y2=\"22\" opacity=\".55\"><\/line>\n    <line x1=\"24\" y1=\"33\" x2=\"17\" y2=\"31\" opacity=\".55\"><\/line>\n    <line x1=\"24\" y1=\"33\" x2=\"31\" y2=\"31\" opacity=\".55\"><\/line>\n  <\/symbol>\n  <symbol id=\"ic-tradition\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <path d=\"M14 11 C 17 8 21 7 24 7 C 27 7 31 8 34 11 L34 37 C 31 40 27 41 24 41 C 21 41 17 40 14 37 Z\"><\/path>\n    <path d=\"M14 18 C 17 16 21 15 24 15 C 27 15 31 16 34 18\"><\/path>\n    <path d=\"M14 30 C 17 32 21 33 24 33 C 27 33 31 32 34 30\"><\/path>\n    <line x1=\"24\" y1=\"7\" x2=\"24\" y2=\"41\" opacity=\".4\"><\/line>\n  <\/symbol>\n  <symbol id=\"ic-people\" viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <circle cx=\"14\" cy=\"18\" r=\"3.6\"><\/circle>\n    <circle cx=\"24\" cy=\"13\" r=\"3.6\"><\/circle>\n    <circle cx=\"34\" cy=\"18\" r=\"3.6\"><\/circle>\n    <path d=\"M7 39 C 7 31 10 27 14 27 C 18 27 21 31 21 39\"><\/path>\n    <path d=\"M17 39 C 17 29 20 25 24 25 C 28 25 31 29 31 39\"><\/path>\n    <path d=\"M27 39 C 27 31 30 27 34 27 C 38 27 41 31 41 39\"><\/path>\n  <\/symbol>\n  <symbol id=\"arrow\" viewBox=\"0 0 24 12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n    <path d=\"M0 6 L22 6 M16 1 L22 6 L16 11\"><\/path>\n  <\/symbol>\n<\/svg>\n<header class=\"site-header\" role=\"banner\">\n    <a href=\"\/en\/\" class=\"logo logo--light\" aria-label=\"Cottini 1925 \u2014 Home\">\n    <span class=\"brand-logo brand-logo--md brand-logo--light\"><\/span>\n  <\/a>\n  <a href=\"\/en\/\" class=\"logo logo--dark\" aria-label=\"Cottini 1925 \u2014 Home\">\n    <span class=\"brand-logo brand-logo--md brand-logo--brand\"><\/span>\n  <\/a>\n\n  <nav class=\"site-nav\" aria-label=\"Main navigation\">\n    <a href=\"\/en\/\">Home<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/about-us\/\">About us<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/our-brands\/\">Our brands<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/sustainability\/\">Sustainability<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/\" aria-current=\"page\">Trade Area<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/press-area\/\">Press Area<\/a>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/contacts\/\">Contacts<\/a>\n  <\/nav>\n\n  <div class=\"header-right\">\n    <div class=\"lang\" aria-label=\"Language\">\n      <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/\" data-it=\"\/trade-area\/\">IT<\/a><span class=\"sep\">\u00b7<\/span><a class=\"active\" href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/\">EN<\/a>\n    <\/div>\n    <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/\" class=\"btn-trade\">Trade Login<\/a>\n  <\/div>\n<\/header>\n<style id=\"cot-trade-fix\">\n\/* TRADE AREA \u2014 gate rimodulato sul formato Press *\/\n.press-hero .trade-hero-inner{grid-template-columns:1.15fr 0.85fr;align-items:center}\n.press-index{border-left:1px solid rgba(140,119,81,.28);padding-left:0}\n.press-index-head{font-family:var(--sans);font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold-dark);display:flex;align-items:center;gap:14px;padding:0 0 22px 36px}\n.press-index-head::before{content:\"\";width:28px;height:1px;background:currentColor;display:block}\n.press-index ol{list-style:none;margin:0;padding:0}\n.press-index li{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;padding:20px 0 20px 36px;border-top:1px solid rgba(140,119,81,.18);position:relative}\n.press-index li:first-child{border-top:none}\n.press-index li::before{content:\"\";position:absolute;left:-1px;top:-1px;bottom:-1px;width:1px;background:var(--bordeaux);transform:scaleY(0);transform-origin:top;transition:transform .9s var(--ease-soft)}\n.press-index li:hover::before{transform:scaleY(1)}\n.pidx-num{font-family:var(--serif);font-style:italic;font-weight:500;font-size:18px;color:var(--bordeaux);line-height:1;min-width:2ch}\n.pidx-label{font-family:var(--serif);font-size:18px;line-height:1.3;color:var(--brand)}\n.pidx-label small{display:block;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-top:6px;opacity:.7}\n.press-cats{background:var(--cream);padding:30px 56px 100px}\n.press-cats-inner{max-width:1320px;margin:0 auto}\n.press-cats-rule{display:flex;align-items:center;gap:20px;color:var(--gold-dark);margin-bottom:48px}\n.press-cats-rule .pcr-kicker{font-family:var(--sans);font-size:11px;letter-spacing:.4em;text-transform:uppercase;white-space:nowrap}\n.press-cats-rule .pcr-line{flex:1;height:1px;background:rgba(140,119,81,.3)}\n.pcat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(140,119,81,.22)}\n.pcat{display:flex;flex-direction:column;gap:18px;padding:40px 32px 36px;border-right:1px solid rgba(140,119,81,.16);position:relative;transition:background-color .7s var(--ease-soft)}\n.pcat:last-child{border-right:none}\n.pcat:hover{background:var(--cream-2)}\n.pcat-ico{width:56px;height:56px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(191,134,60,.4);color:var(--gold-dark);transition:transform .8s var(--ease-soft),border-color .8s var(--ease-soft),color .8s var(--ease-soft)}\n.pcat:hover .pcat-ico{transform:translateY(-3px);border-color:var(--gold);color:var(--gold)}\n.pcat-ico svg{width:26px;height:26px}\n.pcat-num{font-family:var(--sans);font-size:10.5px;letter-spacing:.3em;color:var(--bordeaux)}\n.pcat h3{font-family:var(--serif);font-style:italic;font-weight:500;font-size:23px;line-height:1.12;color:var(--brand);margin:0}\n.pcat p{font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink-2);margin:0}\n@media (max-width:980px){\n.press-hero .trade-hero-inner{grid-template-columns:1fr;gap:36px}\n.press-index{border-left:none;border-top:1px solid rgba(140,119,81,.28);padding-top:8px}\n.press-index-head{padding-left:0}\n.press-index li{padding-left:0}\n.press-index li::before{display:none}\n.press-cats{padding:20px 24px 70px}\n.pcat-grid{grid-template-columns:1fr 1fr}\n.pcat{border-bottom:1px solid rgba(140,119,81,.16)}\n.pcat:nth-child(2n){border-right:none}\n}\n<\/style>\n\n<style id=\"cot-typo-fix\">\n\/* Fine tuning 27\/08\/2026 - colonna sinistra del gate: titolo allineato alle altre pagine\n   (84px max, come Chi Siamo e I Nostri Marchi; prima era 128px\/8vw) *\/\n.press-hero .trade-hero-text h1.sost-title{font-size:clamp(48px,5.6vw,84px);line-height:1.02;letter-spacing:-.015em}\n<\/style>\n<style id=\"cot-icone-fix\">\n\/* Icone definitive fornite dal cliente (27\/08\/2026).\n   I file sono dischi oro pieni con tratto bianco: l icona SOSTITUISCE anello e cerchio\n   decorativo invece di starci dentro, altrimenti si otterrebbe un doppio cerchio.\n   Il fill usa var(--gold) del design system al posto del #bf873c del file: differenza\n   impercettibile, ma tiene la palette allineata al resto del sito. *\/\n.ci-disc{fill:var(--gold)}\n.ci-line{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:.6px}\n\/* Gate riservato - card risorse: via il bordo del cerchio, il disco riempie i 56px. *\/\n.pcat-ico{border-color:transparent}\n.pcat-ico svg{width:56px;height:56px}\n<\/style>\n<style id=\"cot-lang-fix\">\n\/* Selettore di lingua reso funzionante (WPML, 27\/08\/2026): erano <span> inerti. *\/\n.lang a{color:inherit;text-decoration:none;transition:opacity .3s var(--ease)}\n.lang a:not(.active){opacity:.62}\n.lang a:hover{opacity:1}\n<\/style>\n<style id=\"cot-mobile-fix\">\n\/* ============================================================\n   SOLO MOBILE - 27\/08\/2026\n   Ogni regola di questo blocco vive dentro una media query:\n   sopra i 960px il rendering desktop resta identico a prima.\n   ============================================================ *\/\n\n\/* Gli elementi del menu mobile sono creati dal bootstrap JS.\n   Questa guardia garantisce che su desktop non compaiano mai. *\/\n@media (min-width:961px){\n  .cot-burger,.cot-mnav{display:none !important}\n}\n\n@media (max-width:960px){\n\n  \/* --- pulsante hamburger --- *\/\n  .cot-burger{\n    display:inline-flex;align-items:center;justify-content:center;\n    width:44px;height:44px;flex:0 0 44px;margin:0 -10px 0 -2px;\n    background:none;border:0;padding:0;color:inherit;cursor:pointer;\n    -webkit-tap-highlight-color:transparent;\n  }\n  .cot-burger i{display:block;position:relative;width:22px;height:1px;background:currentColor}\n  .cot-burger i::before,.cot-burger i::after{\n    content:\"\";position:absolute;left:0;width:22px;height:1px;background:currentColor;\n  }\n  .cot-burger i::before{top:-7px}\n  .cot-burger i::after{top:7px}\n\n  \/* --- pannello di navigazione --- *\/\n  .cot-mnav{\n    position:fixed;inset:0;z-index:60;background:var(--cream);\n    display:flex;flex-direction:column;padding:18px 24px 34px;\n    opacity:0;visibility:hidden;transform:translateY(-10px);\n    transition:opacity .4s var(--ease-soft),transform .4s var(--ease-soft),visibility .4s;\n    overflow-y:auto;-webkit-overflow-scrolling:touch;\n  }\n  .cot-mnav.is-open{opacity:1;visibility:visible;transform:none}\n  body.cot-menu-open{overflow:hidden}\n\n  .cot-mnav-top{display:flex;align-items:center;justify-content:space-between;min-height:44px}\n  .cot-mnav-top .brand-logo{width:104px;height:38px}\n  .cot-mnav-x{\n    width:44px;height:44px;margin-right:-10px;\n    background:none;border:0;padding:0;color:var(--brand);cursor:pointer;\n    display:grid;place-items:center;-webkit-tap-highlight-color:transparent;\n  }\n  .cot-mnav-x i{display:block;position:relative;width:20px;height:1px;background:transparent}\n  .cot-mnav-x i::before,.cot-mnav-x i::after{\n    content:\"\";position:absolute;left:0;top:0;width:20px;height:1px;background:var(--brand);\n  }\n  .cot-mnav-x i::before{transform:rotate(45deg)}\n  .cot-mnav-x i::after{transform:rotate(-45deg)}\n\n  .cot-mnav-links{display:flex;flex-direction:column;margin:26px 0 0}\n  .cot-mnav-links a{\n    font-family:var(--serif);font-style:italic;font-weight:500;\n    font-size:clamp(24px,7vw,32px);line-height:1.2;color:var(--ink);\n    text-decoration:none;padding:14px 0;\n    border-bottom:1px solid rgba(140,119,81,.18);\n  }\n  .cot-mnav-links a:first-child{border-top:1px solid rgba(140,119,81,.18)}\n  .cot-mnav-links a[aria-current]{color:var(--gold-dark)}\n\n  .cot-mnav-foot{\n    margin-top:auto;padding-top:30px;\n    display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;\n  }\n  .cot-mnav-foot .lang{color:var(--ink-2)}\n  .cot-mnav-foot .btn-trade{white-space:nowrap}\n\n  \/* --- aree di tocco del selettore lingua ---\n     erano 16x20px: sotto la soglia utilizzabile con il pollice --- *\/\n  .lang{gap:2px}\n  .lang a{padding:12px 8px}\n\n  \/* ---------- 2\u00b0 giro mobile, 27\/08\/2026 ---------- *\/\n\n  \/* Trade Login fuori dall'header: su 390px occupava 114px e andava a capo\n     su due righe. Resta nel menu a tutto schermo, dove ha spazio. *\/\n  \/* il reset del tema impone display:inline-block !important sul bottone:\n     serve la stessa forza per toglierlo dall'header su mobile *\/\n  .site-header .btn-trade{display:none !important}\n\n  \/* Selettore lingua: la voce attiva era piu bassa dell'altra perche il\n     design le toglie padding sotto per fare spazio al filetto. Pareggio\n     le due scatole, cosi le basi del testo coincidono. *\/\n  .lang a{padding:12px 8px}\n  .lang a.active{padding-bottom:11px;border-bottom-width:1px}\n\n  \/* Hamburger: seguiva il colore del testo dell'header, che resta scuro\n     anche sopra le foto. Ora e' chiaro sull'immagine e scuro sul crema,\n     come fanno gia' menu e selettore lingua. Tratti ispessiti a 2px. *\/\n  .cot-burger{color:var(--cream)}\n  .site-header.scrolled .cot-burger{color:var(--ink)}\n  .cot-burger i,.cot-burger i::before,.cot-burger i::after{height:2px;border-radius:2px}\n  .cot-burger i{box-shadow:0 1px 5px rgba(46,30,21,.45)}\n  .cot-burger i::before,.cot-burger i::after{box-shadow:0 1px 5px rgba(46,30,21,.45)}\n  .site-header.scrolled .cot-burger i,\n  .site-header.scrolled .cot-burger i::before,\n  .site-header.scrolled .cot-burger i::after{box-shadow:none}\n\n  \/* Lampo viola al tocco: e' l'evidenziazione predefinita del browser.\n     Sostituita con un oro trasparente della palette. *\/\n  a,button,[role=\"button\"],input[type=\"submit\"],summary{\n    -webkit-tap-highlight-color:rgba(191,134,60,.20);\n  }\n\n  \/* Home, sezione Valori: le quattro schede erano una sotto l'altra.\n     Due colonne. *\/\n  .cards{grid-template-columns:1fr 1fr;gap:34px 16px}\n  .card-icon{width:74px;height:74px}\n  .card-icon svg{width:74px;height:74px}\n  .card h3{font-size:20px}\n\n  \/* Chi siamo, \"Perche scegliere i nostri vini\": i numeri 01\/02\/03 sono\n     posizionati 104px sopra la scheda. In colonna singola con 40px di\n     distanza finivano sopra il testo della scheda precedente, e il primo\n     sconfinava sul filetto della sezione. *\/\n  .perche-grid{gap:132px;padding-top:124px}\n  \/* i due filetti verticali separano le colonne: in colonna singola\n     tagliavano il contenuto a meta *\/\n  .perche-grid::before,.perche-grid::after{display:none}\n\n  \/* Chi siamo, blocco decorativo dei pillar: allineato a sinistra e alto\n     240px fissi, su mobile lasciava un vuoto con marchio, filetto e frase\n     sparpagliati. Composizione centrata e compattata. *\/\n  .pillar-deco{min-height:0;margin-top:34px;align-items:center;text-align:center}\n  .pillar-deco-mark{width:64px;height:64px}\n  .pillar-deco-rule{margin:16px auto 14px}\n  .pillar-deco-line{margin:0 auto 16px}\n\n  \/* ---------- 3o giro, 27\/08\/2026 ----------\n     Il lampo viola al tocco del burger non era la tap-highlight del\n     browser (gia' neutralizzata) ma il reset del tema:\n     button:hover,button:focus{background-color:#c36;color:#fff}\n     con specificita' 0-1-1, superiore a .cot-burger. Neutralizzato qui\n     per il burger e per la X del pannello, gli unici due <button>\n     introdotti dal menu mobile. *\/\n  .cot-burger:hover,.cot-burger:focus,.cot-burger:active{\n    background:none;background-color:transparent;color:var(--cream);\n    text-decoration:none;\n  }\n  .site-header.scrolled .cot-burger:hover,\n  .site-header.scrolled .cot-burger:focus,\n  .site-header.scrolled .cot-burger:active{color:var(--ink)}\n  .cot-mnav-x:hover,.cot-mnav-x:focus,.cot-mnav-x:active{\n    background:none;background-color:transparent;color:var(--brand);\n    text-decoration:none;\n  }\n}\n\n\/* --- schede risorse a colonna singola sui telefoni ---\n   a 390px la griglia 2x2 lasciava colonne da ~150px, con testi\n   spezzati su sette righe --- *\/\n@media (max-width:560px){\n  .pcat-grid{grid-template-columns:1fr}\n  .pcat{border-right:none}\n  .pcat:nth-child(2n){border-right:none}\n}\n<\/style>\n<main id=\"main\">\n\n<div id=\"gate\" class=\"gate\">\n\n  <!-- HERO -->\n  <section class=\"sost-hero trade-hero press-hero\" aria-label=\"Opening\">\n    <div class=\"trade-hero-inner\">\n      <div class=\"trade-hero-text\">\n        <span class=\"sost-eyebrow\">Products &amp; Trade Area<\/span>\n        <h1 class=\"sost-title\" data-split=\"\">Trade area \u2013\nreserved for professionals.<\/h1>\n        <p class=\"sost-lede anim-fade\" data-delay=\"500\">\n          A dedicated space for distributors, importers, and wine industry professionals, with tools and materials designed to support business growth.\n        <\/p>\n        <div class=\"trade-hero-cta anim-fade\" data-delay=\"640\">\n          <button type=\"button\" class=\"btn-pill\" data-open=\"login\">Log in <svg width=\"22\" height=\"11\" aria-hidden=\"true\"><use href=\"#arrow\"><\/use><\/svg><\/button>\n          <button type=\"button\" class=\"btn-ghost\" data-open=\"request\">Request access<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"press-index anim-fade\" data-delay=\"700\">\n        <span class=\"press-index-head\">What you&#8217;ll find inside<\/span>\n        <ol>\n          <li><span class=\"pidx-num\">01<\/span><span class=\"pidx-label\">Technical data sheets<small>Complete data sheets for every wine<\/small><\/span><\/li>\n          <li><span class=\"pidx-num\">02<\/span><span class=\"pidx-label\">Marketing and POS materials<small>Promotional and point-of-sale resources<\/small><\/span><\/li>\n          <li><span class=\"pidx-num\">03<\/span><span class=\"pidx-label\">Catalogues and price lists<small>Updated and dedicated to professionals<\/small><\/span><\/li>\n          <li><span class=\"pidx-num\">04<\/span><span class=\"pidx-label\">Logistics information<small>Formats, EAN codes and availability<\/small><\/span><\/li>\n        <\/ol>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- CONTENUTO + VALORE -->\n  <section class=\"press-cats\" aria-labelledby=\"trade-cats-title\">\n    <div class=\"press-cats-inner\">\n      <h2 id=\"trade-cats-title\" class=\"visually-hidden\">What the reserved area offers<\/h2>\n      <div class=\"press-cats-rule\">\n        <span class=\"pcr-kicker\">The resources<\/span>\n        <span class=\"pcr-line\"><\/span>\n      <\/div>\n      <div class=\"pcat-grid\">\n\n        <div class=\"pcat reveal\">\n          <span class=\"pcat-ico\"><svg viewBox=\"0 0 70.87 70.87\" aria-hidden=\"true\"><g> <path class=\"ci-disc\" d=\"M70.87,35.43c0,19.57-15.86,35.43-35.43,35.43S0,55,0,35.43,15.86,0,35.43,0s35.43,15.86,35.43,35.43\"\/> <path class=\"ci-line\" d=\"M50.01,22.84v32.84h-29.15V15.93h22.22M43.1,22.83h6.9s-6.9-6.9-6.9-6.9v6.9ZM38.18,33.26h8.4M38.18,36.86h8.4M38.18,40.46h5.31M38.18,44.06h5.31M38.18,47.66h5.31M33.6,51.11c.7,0,1.16-.57,1.16-1.56,0-.32,0-14.58,0-15.66s0-2.14-2.01-4.16c-1.16-1.16-.98-1.09-.98-2.96v-6.27s-3.28,0-3.28,0v6.27c0,1.87.18,1.8-.98,2.96-2.02,2.02-2.01,3.08-2.01,4.16v15.66c0,.99.46,1.56,1.16,1.56s6.25,0,6.94,0ZM28.49,22.23h3.28M25.5,35.44h9.26M25.5,44.18h9.26\"\/> <\/g><\/svg><\/span>\n          <span class=\"pcat-num\">01<\/span>\n          <h3>Technical data sheets<\/h3>\n          <p>Complete data sheets for every wine: grape varieties, ageing, and analytical data.<\/p>\n        <\/div>\n\n        <div class=\"pcat reveal\" data-delay=\"80\">\n          <span class=\"pcat-ico\"><svg viewBox=\"0 0 70.87 70.87\" aria-hidden=\"true\"><g> <path class=\"ci-disc\" d=\"M70.87,35.43c0,19.57-15.86,35.43-35.43,35.43S0,55,0,35.43,15.86,0,35.43,0s35.43,15.86,35.43,35.43\"\/> <path class=\"ci-line\" d=\"M29.53,54.16l-11.81-4.36V17.09l11.81,4.36v32.71ZM27.04,30.87l-7.32-2.7v19.32l7.32,2.7v-19.32ZM27.04,24.57l-7.32-2.7M53.15,21.45l-11.81-4.36v32.71l11.81,4.36V21.45ZM29.53,54.16l11.81-4.36V17.09s-11.81,4.36-11.81,4.36v32.71ZM19.72,25.08l7.32,2.7\"\/> <\/g><\/svg><\/span>\n          <span class=\"pcat-num\">02<\/span>\n          <h3>Marketing and POS materials<\/h3>\n          <p>Promotional resources and point-of-sale materials, ready to use.<\/p>\n        <\/div>\n\n        <div class=\"pcat reveal\" data-delay=\"160\">\n          <span class=\"pcat-ico\"><svg viewBox=\"0 0 70.87 70.87\" aria-hidden=\"true\"><g> <path class=\"ci-disc\" d=\"M70.87,35.43c0,19.57-15.86,35.43-35.43,35.43S0,55,0,35.43,15.86,0,35.43,0s35.43,15.86,35.43,35.43\"\/> <path class=\"ci-line\" d=\"M36.19,47.71s4.55-1.07,6.9,1.51M45.99,48.63c-4.24-5.4-9.81-3.15-9.81-3.15M48.47,48.12c-4.5-7.85-12.39-5.06-12.39-5.06M53.71,44.11c-4.04.54-6.08,2.72-6.08,2.72M53.71,41.8c-4.41.15-7.59,3.34-7.59,3.34M53.71,39.39c-5.34.32-9.53,4.38-9.53,4.38M53.98,37.05c-7.1.47-11.91,5.88-11.91,5.88M35.54,21.96l-18.44-3.67v29l18.44,3.67M35.54,50.96v-29M35.54,50.96l18.44-3.67v-29s-18.44,3.67-18.44,3.67M17.1,21.94h-2.89v30.05h18.11s.79,1.71,3.21,1.71,3.21-1.71,3.21-1.71h18.11s0-30.05,0-30.05h-2.89M21.16,25.81l11.22,2.1M32.38,31.49l-11.22-2.1M32.38,35.36l-11.22-2.1\"\/> <\/g><\/svg><\/span>\n          <span class=\"pcat-num\">03<\/span>\n          <h3>Catalogues and price lists<\/h3>\n          <p>Updated catalogues and price lists dedicated to industry professionals.<\/p>\n        <\/div>\n\n        <div class=\"pcat reveal\" data-delay=\"240\">\n          <span class=\"pcat-ico\"><svg viewBox=\"0 0 70.87 70.87\" aria-hidden=\"true\"><g> <path class=\"ci-disc\" d=\"M70.87,35.43c0,19.57-15.86,35.43-35.43,35.43S0,55,0,35.43,15.86,0,35.43,0s35.43,15.86,35.43,35.43\"\/> <path class=\"ci-line\" d=\"M41.02,49.15l-13.1-6.37v-15.79l13.1,6.37v15.79ZM54.12,27l-13.1,6.37v15.79s13.1-6.37,13.1-6.37v-15.79ZM54.12,27l-13.1-6.59-13.1,6.59M9.13,42.31h5.84M17.18,42.31h7.72M11.5,46.31h17.43M12.01,38.08h12.83\"\/> <\/g><\/svg><\/span>\n          <span class=\"pcat-num\">04<\/span>\n          <h3>Logistics information<\/h3>\n          <p>Formats, EAN codes, shipping data, and stock availability.<\/p>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- DARK CTA BAND -->\n  <section class=\"trade-band\" aria-labelledby=\"trade-band-title\">\n    <div class=\"trade-band-photo\" aria-hidden=\"true\">\n      <img decoding=\"async\" src=\"https:\/\/images.unsplash.com\/photo-1506377247377-2a5b3b417ebb?w=1400&amp;q=80&amp;auto=format&amp;fit=crop\" alt=\"\" data-parallax=\"bb\">\n    <\/div>\n    <div class=\"trade-band-inner\">\n      <div class=\"trade-band-text\">\n        <h2 id=\"trade-band-title\">Access the reserved area<\/h2>\n        <p>Exclusive content, dedicated price lists, and tools for industry professionals.<\/p>\n        <div class=\"trade-band-cta\">\n          <button type=\"button\" class=\"btn-pill btn-pill--gold\" data-open=\"login\">Log in<\/button>\n          <button type=\"button\" class=\"btn-ghost btn-ghost--light\" data-open=\"request\">Request access<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<\/div>\n\n\n<\/main>\n\n<div class=\"modal\" id=\"modal-login\" hidden=\"\">\n  <div class=\"modal-backdrop\" data-close=\"\"><\/div>\n  <div class=\"modal-card\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"login-title\">\n    <button type=\"button\" class=\"modal-x\" data-close=\"\" aria-label=\"Close\">\u00d7<\/button>\n    <span class=\"modal-kicker\">Reserved area<\/span>\n    <h3 id=\"login-title\" class=\"modal-title\">Log in to your account<\/h3>\n    <p class=\"modal-sub\">Enter the credentials provided by your Cottini sales contact.<\/p>\n    <form class=\"modal-form\" id=\"login-form\" novalidate=\"\">\n      <label class=\"mfield\">\n        <span class=\"mfield-label\">Email<\/span>\n        <input type=\"email\" name=\"email\" required=\"\" autocomplete=\"email\" placeholder=\"nome@azienda.com\">\n      <\/label>\n      <label class=\"mfield\">\n        <span class=\"mfield-label\">Password<\/span>\n        <input type=\"password\" name=\"password\" required=\"\" autocomplete=\"current-password\" placeholder=\"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\">\n      <\/label>\n      <div class=\"mfield-row\">\n        <label class=\"mcheck\"><input type=\"checkbox\" name=\"remember\" checked=\"\"><span>Remember me<\/span><\/label>\n        <a href=\"#\" class=\"mlink\">Forgot your password?<\/a>\n      <\/div>\n      <button type=\"submit\" class=\"btn-pill btn-pill--full\">Log in <svg width=\"22\" height=\"11\" aria-hidden=\"true\"><use href=\"#arrow\"><\/use><\/svg><\/button>\n      <p class=\"modal-alt\">Don&#8217;t have an account yet? <button type=\"button\" class=\"mlink mlink--btn\" data-open=\"request\">Request access<\/button><\/p>\n    <\/form>\n  <\/div>\n<\/div>\n<div class=\"modal\" id=\"modal-request\" hidden=\"\">\n  <div class=\"modal-backdrop\" data-close=\"\"><\/div>\n  <div class=\"modal-card\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"request-title\">\n    <button type=\"button\" class=\"modal-x\" data-close=\"\" aria-label=\"Close\">\u00d7<\/button>\n    <span class=\"modal-kicker\">Become a partner<\/span>\n    <h3 id=\"request-title\" class=\"modal-title\">Request access<\/h3>\n    <p class=\"modal-sub\">Fill out the form: our sales team will review your request and get in touch.<\/p>\n    <form class=\"modal-form\" id=\"request-form\" novalidate=\"\">\n      <div class=\"mgrid\">\n        <label class=\"mfield\"><span class=\"mfield-label\">Full name<\/span><input type=\"text\" name=\"nome\" required=\"\" placeholder=\"Your name\"><\/label>\n        <label class=\"mfield\"><span class=\"mfield-label\">Company<\/span><input type=\"text\" name=\"azienda\" required=\"\" placeholder=\"Company name\"><\/label>\n        <label class=\"mfield\"><span class=\"mfield-label\">Email<\/span><input type=\"email\" name=\"email\" required=\"\" placeholder=\"nome@azienda.com\"><\/label>\n        <label class=\"mfield\"><span class=\"mfield-label\">P. IVA<\/span><input type=\"text\" name=\"piva\" placeholder=\"IT00000000000\"><\/label>\n        <label class=\"mfield mfield--full\"><span class=\"mfield-label\">Role \/ Type of business<\/span>\n          <select name=\"ruolo\" required=\"\">\n            <option value=\"\" disabled=\"\" selected=\"\">Select<\/option>\n            <option>Distributor<\/option>\n            <option>Importer<\/option>\n            <option>Ho.Re.Ca.<\/option>\n            <option>Wine shop \/ Retail<\/option>\n            <option>Other<\/option>\n          <\/select>\n        <\/label>\n        <label class=\"mfield mfield--full\"><span class=\"mfield-label\">Message <span class=\"mfield-opt\">(optional)<\/span><\/span><textarea name=\"messaggio\" rows=\"3\" placeholder=\"Tell us about your business\u2026\"><\/textarea><\/label>\n        <label class=\"mcheck mcheck--full\"><input type=\"checkbox\" name=\"privacy\" required=\"\"><span>I have read and accept the <a href=\"#\">privacy policy<\/a>.<\/span><\/label>\n      <\/div>\n      <button type=\"submit\" class=\"btn-pill btn-pill--full\">Send request <svg width=\"22\" height=\"11\" aria-hidden=\"true\"><use href=\"#arrow\"><\/use><\/svg><\/button>\n    <\/form>\n    <div class=\"modal-success\" hidden=\"\">\n      <span class=\"ms-mark\"><span class=\"brand-logo brand-logo--mark\"><\/span><\/span>\n      <h3>Request sent<\/h3>\n      <p>Thank you. Our sales team will contact you shortly at the address you provided.<\/p>\n      <button type=\"button\" class=\"btn-pill\" data-close=\"\">Close<\/button>\n    <\/div>\n  <\/div>\n<\/div>\n\n<footer class=\"site-footer\" role=\"contentinfo\">\n  <div class=\"foot-grid\">\n    <div class=\"col-logo\">\n      <a href=\"\/en\/\" class=\"logo logo--footer\" aria-label=\"Cottini 1925\">\n        <span class=\"brand-logo brand-logo--lg brand-logo--light\"><\/span>\n      <\/a>\n      \n    <\/div>\n    <div>\n      <h4>Private areas<\/h4>\n      <ul>\n        <li><a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/trade-area\/\">Trade Area<\/a><\/li>\n        <li><a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/press-area\/\">Press Area<\/a><\/li>\n      <\/ul>\n    <\/div>\n    <div>\n      <h4>Where we are<\/h4>\n      <address>San Pietro in Cariano, Verona, Italy<\/address>\n      \n    <\/div>\n    <div>\n      <h4>Get in touch<\/h4>\n      <ul>\n        <li><a href=\"mailto:info@cottinivini.com\">info@cottinivini.com<\/a><\/li>\n        <li><a href=\"tel:+390456280157\">+39 045 6280157<\/a><\/li>\n      <\/ul>\n    <\/div>\n  <\/div>\n  <div class=\"foot-bottom\">\n    <span>\u00a9 1925\u20132026 COTTINI S.P.A. \u00b7 P.IVA 02790400234<\/span>\n    <div class=\"links\">\n      <a href=\"https:\/\/www.cottini1925.cybeartest.it\/en\/?page_id=3\">Privacy<\/a>\n      <a href=\"#\">Cookies<\/a>\n      <a href=\"#\">Credits<\/a>\n    <\/div>\n  <\/div>\n<\/footer>\n<div class=\"grain\" aria-hidden=\"true\"><\/div>\n<div class=\"scroll-prog\" aria-hidden=\"true\"><\/div>\n<script>(function(){var b=\"CihmdW5jdGlvbigpewogIGNvbnN0IHJlZHVjZWQgPSBtYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7CgogIC8qIDEpIEhlYWRlciBzY3JvbGxlZCBzdGF0ZSDigJQgcGFnZXMgd2l0aG91dCBhIGRhcmsgZnVsbC1ibGVlZCBoZXJvIGFsd2F5cyB1c2UgdGhlIGRhcmsgaGVhZGVyICovCiAgY29uc3QgaGRyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNpdGUtaGVhZGVyJyk7CiAgY29uc3QgaGFzRGFya0hlcm8gPSAhIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZXJvIC5oZXJvLXBob3RvJyk7CiAgY29uc3Qgc2V0U2Nyb2xsZWQgPSAoKSA9PiBoZHIuY2xhc3NMaXN0LnRvZ2dsZSgnc2Nyb2xsZWQnLCBoYXNEYXJrSGVybyA\/IHdpbmRvdy5zY3JvbGxZID4gNDAgOiB0cnVlKTsKICBzZXRTY3JvbGxlZCgpOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzZXRTY3JvbGxlZCwge3Bhc3NpdmU6dHJ1ZX0pOwoKICAvKiAyKSBTcGxpdCBIMSBpbnRvIDxzcGFuIGNsYXNzPSJ3Ij4gKi8KICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1zcGxpdF0nKS5mb3JFYWNoKGVsPT57CiAgICBjb25zdCByYXcgPSBlbC50ZXh0Q29udGVudDsKICAgIGVsLnRleHRDb250ZW50PScnOwogICAgbGV0IGk9MDsKICAgIHJhdy5zcGxpdCgnXG4nKS5mb3JFYWNoKChsaW5lLGxpLGFycik9PnsKICAgICAgbGluZS50cmltKCkuc3BsaXQoL1xzKy8pLmZvckVhY2god29yZD0+ewogICAgICAgIGNvbnN0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogICAgICAgIHMuY2xhc3NOYW1lPSd3JzsKICAgICAgICBzLnRleHRDb250ZW50PXdvcmQrJyAnOwogICAgICAgIHMuc3R5bGUuYW5pbWF0aW9uRGVsYXk9KDgwICsgaSoxMTApKydtcyc7CiAgICAgICAgaWYocmVkdWNlZCl7cy5zdHlsZS5hbmltYXRpb249J25vbmUnO3Muc3R5bGUub3BhY2l0eT0xO3Muc3R5bGUudHJhbnNmb3JtPSdub25lJ30KICAgICAgICBlbC5hcHBlbmRDaGlsZChzKTsKICAgICAgICBpKys7CiAgICAgIH0pOwogICAgICBpZihsaTxhcnIubGVuZ3RoLTEpIGVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOwogICAgfSk7CiAgfSk7CgogIC8qIDMpIFJldmVhbCDigJQgSU8gd2l0aCBzY3JvbGwgZmFsbGJhY2sgKi8KICBjb25zdCByZXZlYWxFbHMgPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnJldmVhbCwgLmFuaW0tZmFkZSwgLmFuaW0tem9vbScpXTsKICBjb25zdCBjYXJkRWxzID0gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWNhcmRdJyldOwogIGNhcmRFbHMuZm9yRWFjaChlbD0+eyBlbC5zdHlsZS5vcGFjaXR5PScwJzsgZWwuc3R5bGUudHJhbnNmb3JtPSd0cmFuc2xhdGVZKDI4cHgpJzsKICAgIGVsLnN0eWxlLnRyYW5zaXRpb249J29wYWNpdHkgMS4xcyB2YXIoLS1lYXNlKSwgdHJhbnNmb3JtIDEuMnMgdmFyKC0tZWFzZSknOyB9KTsKCiAgY29uc3QgdHJpZ2dlclJldmVhbCA9IChlbCk9PnsKICAgIGlmKGVsLmRhdGFzZXQucmV2ZWFsZWQpIHJldHVybjsKICAgIGVsLmRhdGFzZXQucmV2ZWFsZWQgPSAnMSc7CiAgICBjb25zdCBkID0gcGFyc2VJbnQoZWwuZGF0YXNldC5kZWxheXx8JzAnLDEwKTsKICAgIHNldFRpbWVvdXQoKCk9PnsKICAgICAgaWYoZWwuaGFzQXR0cmlidXRlKCdkYXRhLWNhcmQnKSl7CiAgICAgICAgZWwuc3R5bGUub3BhY2l0eT0nMSc7IGVsLnN0eWxlLnRyYW5zZm9ybT0ndHJhbnNsYXRlWSgwKSc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCgnaW4nKTsKICAgICAgfQogICAgfSwgcmVkdWNlZD8wOmQpOwogIH07CgogIGNvbnN0IGlzVmlzaWJsZSA9IChlbCwgbWFyZ2luQm90dG9tPTAuMDgpPT57CiAgICBjb25zdCByID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICBjb25zdCB2aCA9IHdpbmRvdy5pbm5lckhlaWdodDsKICAgIGlmKHIuYm90dG9tIDwgMCB8fCByLnRvcCA+IHZoKSByZXR1cm4gZmFsc2U7CiAgICBjb25zdCB2aXNpYmxlID0gTWF0aC5taW4oci5ib3R0b20sIHZoKSAtIE1hdGgubWF4KHIudG9wLCAwKTsKICAgIHJldHVybiB2aXNpYmxlIC8gTWF0aC5taW4oci5oZWlnaHQsIHZoKSA+PSAwLjE1ICYmIHIudG9wIDwgdmggKiAoMSAtIG1hcmdpbkJvdHRvbSk7CiAgfTsKCiAgY29uc3QgY2hlY2tBbGwgPSAoKT0+ewogICAgWy4uLnJldmVhbEVscywgLi4uY2FyZEVsc10uZm9yRWFjaChlbD0+eyBpZihpc1Zpc2libGUoZWwpKSB0cmlnZ2VyUmV2ZWFsKGVsKTsgfSk7CiAgfTsKCiAgdHJ5ewogICAgY29uc3QgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpPT57CiAgICAgIGVudHJpZXMuZm9yRWFjaChlPT57IGlmKGUuaXNJbnRlcnNlY3RpbmcpIHRyaWdnZXJSZXZlYWwoZS50YXJnZXQpOyB9KTsKICAgIH0se3RocmVzaG9sZDowLjE1LHJvb3RNYXJnaW46JzBweCAwcHggLTglIDBweCd9KTsKICAgIFsuLi5yZXZlYWxFbHMsIC4uLmNhcmRFbHNdLmZvckVhY2goZWw9PmlvLm9ic2VydmUoZWwpKTsKICB9Y2F0Y2goZSl7fQoKICAvLyBTY3JvbGwvbG9hZCBmYWxsYmFjayBlbnN1cmVzIGNvbnRlbnQgcmV2ZWFscyBldmVuIGlmIElPIG1pc2ZpcmVzCiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrQWxsLCB7cGFzc2l2ZTp0cnVlfSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjaGVja0FsbCk7CiAgc2V0VGltZW91dChjaGVja0FsbCwgMjAwKTsKICBzZXRUaW1lb3V0KGNoZWNrQWxsLCAxMjAwKTsKCiAgLyogM2IpIE1hcCDigJQgZmV0Y2ggU1ZHIGFuZCBpbmxpbmUgaXQgQVNBUCBzbyBhbmltYXRpb25zIGFyZSByZWFkeSB3aGVuIHNjcm9sbGVkIGludG8gdmlldy4gKi8KICBjb25zdCBtYXBDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGVycml0b3JpLW1hcCcpOwogIGlmKG1hcENvbnRhaW5lcil7CiAgICBjb25zdCBtYXBJbWcgPSBtYXBDb250YWluZXIucXVlcnlTZWxlY3RvcignLnRlcnJpdG9yaS1tYXAtaW1nJyk7CiAgICBpZihtYXBJbWcpewogICAgICBjb25zdCBpbmxpbmVOb3cgPSBhc3luYyAoKT0+ewogICAgICAgIGlmKG1hcENvbnRhaW5lci5kYXRhc2V0LnN2Z0lubGluZWQpIHJldHVybjsKICAgICAgICBtYXBDb250YWluZXIuZGF0YXNldC5zdmdJbmxpbmVkID0gJzEnOwogICAgICAgIHRyeXsKICAgICAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaChtYXBJbWcuc3JjKTsKICAgICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByLnRleHQoKTsKICAgICAgICAgIG1hcENvbnRhaW5lci5pbm5lckhUTUwgPSB0ZXh0OwogICAgICAgICAgY29uc3Qgc3ZnRWwgPSBtYXBDb250YWluZXIucXVlcnlTZWxlY3Rvcignc3ZnJyk7CiAgICAgICAgICBpZighc3ZnRWwpIHJldHVybjsKICAgICAgICAgIHN2Z0VsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCd0ZXJyaXRvcmktbWFwLXN2ZycpOwogICAgICAgICAgLy8gSW5qZWN0IHBlcnBldHVhbCBwdWxzZSByaW5ncyBJTlNJREUgZWFjaCBkb3QncyBvd24gZ3JvdXAgc28gdGhleSBzaGFyZQogICAgICAgICAgLy8gZXhhY3RseSB0aGUgc2FtZSBwYXJlbnQgdHJhbnNmb3JtcyAodHJhbnNsYXRlICsgWS1mbGlwIG1hdHJpeCkg4oCUIG5vCiAgICAgICAgICAvLyBmbG9hdGluZy1wb2ludCBkcmlmdCwgbm8gYXNwZWN0LXJhdGlvIG1pc21hdGNoLgogICAgICAgICAgY29uc3QgbnMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnOwogICAgICAgICAgY29uc3QgYnVyZ3VuZHlFbHMgPSBzdmdFbC5xdWVyeVNlbGVjdG9yQWxsKCdbZmlsbD0iIzRhMGYxZCJdJyk7CiAgICAgICAgICBsZXQgZG90SWR4ID0gMDsKICAgICAgICAgIGJ1cmd1bmR5RWxzLmZvckVhY2goZWw9PnsKICAgICAgICAgICAgY29uc3QgYmIgPSBlbC5nZXRCQm94KCk7CiAgICAgICAgICAgIC8vIERvdHMgaGF2ZSBhIHNtYWxsIGJib3ggKH4xMHgxMCk7IGZsYWdzIGFyZSBtdWNoIGxhcmdlcgogICAgICAgICAgICBpZihiYi53aWR0aCA+IDIwIHx8IGJiLmhlaWdodCA+IDIwKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGVsLnBhcmVudE5vZGU7CiAgICAgICAgICAgIGlmKCFwYXJlbnQpIHJldHVybjsKICAgICAgICAgICAgZG90SWR4Kys7CiAgICAgICAgICAgIGNvbnN0IHJpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobnMsJ2NpcmNsZScpOwogICAgICAgICAgICAvLyBMb2NhbCBjaXJjbGUgY2VudGVyIG1hdGNoZXMgdGhlIGRvdCdzIHBhdGg6IHN0YXJ0cyBhdCAoMCwwKSwgY3VydmVzIHRvCiAgICAgICAgICAgIC8vICgtOS42ODUsIDApIGFuZCBiYWNrLCBzbyB0aGUgdmlzdWFsIGNlbnRlciBpcyBhdCAoLTQuODQzLCAwKS4KICAgICAgICAgICAgcmluZy5zZXRBdHRyaWJ1dGUoJ2N4JywnLTQuODQzJyk7CiAgICAgICAgICAgIHJpbmcuc2V0QXR0cmlidXRlKCdjeScsJzAnKTsKICAgICAgICAgICAgcmluZy5zZXRBdHRyaWJ1dGUoJ3InLCc0Ljg0Jyk7CiAgICAgICAgICAgIHJpbmcuc2V0QXR0cmlidXRlKCdmaWxsJywnbm9uZScpOwogICAgICAgICAgICByaW5nLnNldEF0dHJpYnV0ZSgnc3Ryb2tlJywnIzRhMGYxZCcpOwogICAgICAgICAgICByaW5nLnNldEF0dHJpYnV0ZSgnc3Ryb2tlLXdpZHRoJywnMS40Jyk7CiAgICAgICAgICAgIHJpbmcuc2V0QXR0cmlidXRlKCdjbGFzcycsJ3Bpbi1wdWxzZSBwaW4tcHVsc2UtJyArIGRvdElkeCk7CiAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChyaW5nKTsKICAgICAgICAgIH0pOwogICAgICAgIH1jYXRjaChlKXsgLyoga2VlcCA8aW1nPiBmYWxsYmFjayAqLyB9CiAgICAgIH07CiAgICAgIC8vIElubGluZSBhcyBzb29uIGFzIHBvc3NpYmxlCiAgICAgIGlmKCdyZXF1ZXN0SWRsZUNhbGxiYWNrJyBpbiB3aW5kb3cpewogICAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soaW5saW5lTm93LCB7dGltZW91dDoxNTAwfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc2V0VGltZW91dChpbmxpbmVOb3csIDIwMCk7CiAgICAgIH0KICAgICAgLy8gQmFja3VwOiBpZiBub3QgaW5saW5lZCB3aXRoaW4gMi41cywgZm9yY2UgaXQKICAgICAgc2V0VGltZW91dChpbmxpbmVOb3csIDI1MDApOwogICAgfQogIH0KCiAgLy8gRmluYWwgc2FmZXR5OiBhbnl0aGluZyBzdGlsbCBoaWRkZW4gNHMgYWZ0ZXIgbG9hZCBnZXRzIGhhcmQtc2hvd24uCiAgLy8gKEJlbHQtYW5kLWJyYWNlcyBhZ2FpbnN0IGVudmlyb25tZW50cyB3aGVyZSB0cmFuc2l0aW9ucyBzaWxlbnRseSBzdGFsbC4pCiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKT0+ewogICAgc2V0VGltZW91dCgoKT0+ewogICAgICBbLi4ucmV2ZWFsRWxzLCAuLi5jYXJkRWxzXS5mb3JFYWNoKGVsPT57CiAgICAgICAgY29uc3Qgb3AgPSBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUoZWwpLm9wYWNpdHkpOwogICAgICAgIGlmKG9wIDwgMC45OSl7CiAgICAgICAgICBlbC5zdHlsZS50cmFuc2l0aW9uID0gJ25vbmUnOwogICAgICAgICAgZWwuc3R5bGUub3BhY2l0eSA9ICcxJzsKICAgICAgICAgIGVsLnN0eWxlLnRyYW5zZm9ybSA9ICdub25lJzsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwgNDAwMCk7CiAgfSk7CgogIC8qIDUpIENvdW50ZXIgYW5pbWF0aW9uIOKAlCBJTyArIHNjcm9sbCBmYWxsYmFjayAqLwogIGNvbnN0IGZtdCA9ICh2YWwsIHR5cGUpPT57CiAgICBpZih0eXBlPT09J20nKSByZXR1cm4gdmFsLnRvRml4ZWQoMSkucmVwbGFjZSgnLicsJywnKSsnTSc7CiAgICBpZih0eXBlPT09J3BsdXMnKSByZXR1cm4gTWF0aC5yb3VuZCh2YWwpKycrJzsKICAgIGlmKHR5cGU9PT0ndGhvdXNhbmRzJykgcmV0dXJuIE1hdGgucm91bmQodmFsKS50b0xvY2FsZVN0cmluZygnaXQtSVQnKTsKICAgIGlmKHR5cGU9PT0ncGVyY2VudCcpIHJldHVybiBNYXRoLnJvdW5kKHZhbCkrJyUnOwogICAgcmV0dXJuIFN0cmluZyhNYXRoLnJvdW5kKHZhbCkpOwogIH07CiAgY29uc3QgY291bnRlckVscyA9IFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1jb3VudGVyXScpXTsKICBjb25zdCBydW5Db3VudGVyID0gKGVsKT0+ewogICAgaWYoZWwuZGF0YXNldC5jb3VudGVkKSByZXR1cm47CiAgICBlbC5kYXRhc2V0LmNvdW50ZWQgPSAnMSc7CiAgICBjb25zdCB0YXJnZXQgPSBwYXJzZUZsb2F0KGVsLmRhdGFzZXQudGFyZ2V0KTsKICAgIGNvbnN0IGZyb20gPSBwYXJzZUZsb2F0KGVsLmRhdGFzZXQuZnJvbXx8JzAnKTsKICAgIGNvbnN0IHN0ZXAgPSBwYXJzZUZsb2F0KGVsLmRhdGFzZXQuc3RlcHx8JzEnKTsKICAgIGNvbnN0IGludGVydmFsID0gcGFyc2VJbnQoZWwuZGF0YXNldC5pbnRlcnZhbHx8JzMwJywxMCk7CiAgICBjb25zdCB0eXBlID0gZWwuZGF0YXNldC5mb3JtYXR8fCdpbnQnOwogICAgaWYocmVkdWNlZCl7IGVsLnRleHRDb250ZW50ID0gZm10KHRhcmdldCx0eXBlKTsgcmV0dXJuOyB9CiAgICBsZXQgdiA9IGZyb207IGVsLnRleHRDb250ZW50ID0gZm10KHYsdHlwZSk7CiAgICBjb25zdCB0ID0gc2V0SW50ZXJ2YWwoKCk9PnsKICAgICAgdiArPSBzdGVwOwogICAgICBpZigoc3RlcD4wICYmIHY+PXRhcmdldCkgfHwgKHN0ZXA8MCAmJiB2PD10YXJnZXQpKXsKICAgICAgICB2ID0gdGFyZ2V0OyBlbC50ZXh0Q29udGVudCA9IGZtdCh2LHR5cGUpOyBjbGVhckludGVydmFsKHQpOwogICAgICB9IGVsc2UgewogICAgICAgIGVsLnRleHRDb250ZW50ID0gZm10KHYsdHlwZSk7CiAgICAgIH0KICAgIH0sIGludGVydmFsKTsKICB9OwogIGNvbnN0IGNvdW50ZXJWaXNpYmxlID0gKGVsKT0+ewogICAgY29uc3QgciA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgY29uc3QgdmggPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAgICBpZihyLmJvdHRvbSA8IDAgfHwgci50b3AgPiB2aCkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHIudG9wIDwgdmggKiAwLjY1OwogIH07CiAgY29uc3QgY2hlY2tDb3VudGVycyA9ICgpPT57IGNvdW50ZXJFbHMuZm9yRWFjaChlbD0+eyBpZihjb3VudGVyVmlzaWJsZShlbCkpIHJ1bkNvdW50ZXIoZWwpOyB9KTsgfTsKICB0cnl7CiAgICBjb25zdCBjb3VudElPID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKT0+ewogICAgICBlbnRyaWVzLmZvckVhY2goZT0+eyBpZihlLmlzSW50ZXJzZWN0aW5nKSBydW5Db3VudGVyKGUudGFyZ2V0KTsgfSk7CiAgICB9LHt0aHJlc2hvbGQ6MC4zNX0pOwogICAgY291bnRlckVscy5mb3JFYWNoKGVsPT5jb3VudElPLm9ic2VydmUoZWwpKTsKICB9Y2F0Y2goZSl7fQogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBjaGVja0NvdW50ZXJzLCB7cGFzc2l2ZTp0cnVlfSk7CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjaGVja0NvdW50ZXJzKTsKICBzZXRUaW1lb3V0KGNoZWNrQ291bnRlcnMsIDQwMCk7CgogIC8qIDYpIFBhcmFsbGF4ICsgc2Nyb2xsLWRyaXZlbiBzZWN0aW9uICJkZXB0aCIgKyBoZXJvIGZhZGUgKyBwcm9ncmVzcyBiYXIgKi8KICBjb25zdCBwcm9nQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjcm9sbC1wcm9nJyk7CiAgY29uc3QgaGVyb1RleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVyby10ZXh0Jyk7CiAgY29uc3QgaGVyb1NlYyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZXJvJyk7CiAgaWYoIXJlZHVjZWQpewogICAgY29uc3QgcGFyYWxsYXhOb2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXBhcmFsbGF4XScpOwogICAgLy8gSW5uZXIgY29udGVudCBibG9ja3MgdGhhdCBzaG91bGQgc3VidGx5IGxpZnQgb24gdmlld3BvcnQgY2VudGVyIHBhc3MKICAgIGNvbnN0IGxpZnRFbHMgPSBbCiAgICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy52YWxvcmktaW5uZXIsIC5udW1lcmktaW5uZXInKQogICAgXTsKICAgIGxpZnRFbHMuZm9yRWFjaChlbCA9PiB7IGVsLnN0eWxlLndpbGxDaGFuZ2UgPSAndHJhbnNmb3JtJzsgfSk7CiAgICBsZXQgdGlja2luZyA9IGZhbHNlOwogICAgbGV0IGxhc3RTY3JvbGwgPSB3aW5kb3cuc2Nyb2xsWTsKICAgIGxldCB2ZWxvY2l0eSA9IDA7CiAgICBjb25zdCBtYXAgPSAodmFsLCBpbk1pbiwgaW5NYXgsIG91dE1pbiwgb3V0TWF4KSA9PgogICAgICBvdXRNaW4gKyAoKHZhbCAtIGluTWluKSAqIChvdXRNYXggLSBvdXRNaW4pKSAvIChpbk1heCAtIGluTWluKTsKICAgIGNvbnN0IHVwZGF0ZSA9ICgpPT57CiAgICAgIGNvbnN0IHZoID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICBjb25zdCBzeSA9IHdpbmRvdy5zY3JvbGxZOwogICAgICB2ZWxvY2l0eSA9IHZlbG9jaXR5ICogMC44NSArIChzeSAtIGxhc3RTY3JvbGwpICogMC4xNTsKICAgICAgbGFzdFNjcm9sbCA9IHN5OwogICAgICBjb25zdCB2ZWxCb29zdCA9IE1hdGgubWluKDEsIE1hdGguYWJzKHZlbG9jaXR5KSAvIDYwKTsKCiAgICAgIC8vIFByb2dyZXNzIGJhcgogICAgICBjb25zdCBkb2NIID0gTWF0aC5tYXgoMSwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIHZoKTsKICAgICAgY29uc3QgcCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHN5IC8gZG9jSCkpOwogICAgICBpZihwcm9nQmFyKSBwcm9nQmFyLnN0eWxlLnNldFByb3BlcnR5KCctLXAnLCAocCoxMDApLnRvRml4ZWQoMikrJyUnKTsKCiAgICAgIC8vIEhlcm8gdGV4dCBmYWRlICsgbGlmdCBhcyB5b3Ugc2Nyb2xsIGludG8gVmFsb3JpCiAgICAgIGlmKGhlcm9UZXh0ICYmIGhlcm9TZWMpewogICAgICAgIGNvbnN0IGhlcm9IID0gaGVyb1NlYy5vZmZzZXRIZWlnaHQ7CiAgICAgICAgY29uc3QgdCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHN5IC8gKGhlcm9IICogMC43KSkpOwogICAgICAgIGNvbnN0IGVhc2VkID0gdCAqIHQ7CiAgICAgICAgaGVyb1RleHQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsICR7LXN5KjAuMzJ9cHgsIDApIHNjYWxlKCR7MSAtIGVhc2VkKjAuMDZ9KWA7CiAgICAgICAgaGVyb1RleHQuc3R5bGUub3BhY2l0eSA9ICgxIC0gZWFzZWQgKiAxLjE1KS50b0ZpeGVkKDMpOwogICAgICB9CgogICAgICBwYXJhbGxheE5vZGVzLmZvckVhY2gobm9kZT0+ewogICAgICAgIGNvbnN0IGtpbmQgPSBub2RlLmRhdGFzZXQucGFyYWxsYXg7CiAgICAgICAgaWYoa2luZD09PSdoZXJvJyl7CiAgICAgICAgICBjb25zdCB5ID0gc3kgKiAwLjI4OwogICAgICAgICAgbm9kZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoMCwgJHt5fXB4LCAwKSBzY2FsZSgkezEuMDggKyBNYXRoLm1pbiguMDYsIHN5LzgwMDApfSlgOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCByZWN0ID0gbm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgIGlmKHJlY3QuYm90dG9tIDwgLTIwMCB8fCByZWN0LnRvcCA+IHZoKzIwMCkgcmV0dXJuOwogICAgICAgICAgY29uc3QgcHAgPSAxIC0gKHJlY3QudG9wIC8gdmgpOwogICAgICAgICAgY29uc3QgcmFuZ2UgPSBraW5kPT09J251bWVyaScgPyBbLTUwLDQ1XSA6IFstMzAsMjhdOwogICAgICAgICAgY29uc3QgeSA9IG1hcChNYXRoLm1heCgwLE1hdGgubWluKDEuNSxwcCkpLCAwLCAxLjUsIHJhbmdlWzBdLCByYW5nZVsxXSk7CiAgICAgICAgICBub2RlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwLCAke3l9cHgsIDApYDsKICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgLy8gU2VjdGlvbiBkZXB0aCBsaWZ0IOKAlCBpbm5lciBjb250ZW50IHJpc2VzIGFzIGl0IHBhc3NlcyB2aWV3cG9ydCBjZW50ZXIKICAgICAgbGlmdEVscy5mb3JFYWNoKGVsPT57CiAgICAgICAgY29uc3QgcmVjdCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgIGlmKHJlY3QuYm90dG9tIDwgLTIwMCB8fCByZWN0LnRvcCA+IHZoKzIwMCkgcmV0dXJuOwogICAgICAgIGNvbnN0IGNlbnRlciA9IHJlY3QudG9wICsgcmVjdC5oZWlnaHQvMjsKICAgICAgICBjb25zdCBkaXN0ID0gKGNlbnRlciAtIHZoLzIpIC8gdmg7CiAgICAgICAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWF4KC0xLCBNYXRoLm1pbigxLCBkaXN0KSk7CiAgICAgICAgY29uc3QgbGlmdCA9IGNsYW1wZWQgKiAtMjggKiAoMSArIHZlbEJvb3N0KjAuNik7CiAgICAgICAgZWwuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKDAsICR7bGlmdH1weCwgMClgOwogICAgICB9KTsKCiAgICAgIC8vIENhcmQgaG9yaXpvbnRhbC1zdGFnZ2VyIGVudHJ5IChhbHRlcm5hdGluZyBsZWZ0L3JpZ2h0KQogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1jYXJkXScpLmZvckVhY2goKGNhcmQsIGkpPT57CiAgICAgICAgY29uc3QgcmVjdCA9IGNhcmQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgY29uc3QgZW50ZXIgPSAxIC0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgKHJlY3QudG9wIC0gdmgqMC4yKSAvICh2aCowLjY1KSkpOwogICAgICAgIGlmKGNhcmQuZGF0YXNldC5yZXZlYWxlZCAhPT0gJzEnICYmIGVudGVyID4gMC4wNSl7CiAgICAgICAgICAvLyBpbml0aWFsIGRyYW1hdGljIG9mZnNldCAob25seSBiZWZvcmUgcmV2ZWFsKQogICAgICAgICAgY29uc3QgZGlyID0gKGkgJSAyID09PSAwKSA\/IC0xIDogMTsKICAgICAgICAgIGNvbnN0IGsgPSAxIC0gZW50ZXI7CiAgICAgICAgICBjYXJkLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgke2RpciAqIGsgKiAzNn1weCwgJHtrKjQwfXB4LCAwKWA7CiAgICAgICAgICBjYXJkLnN0eWxlLm9wYWNpdHkgPSBlbnRlci50b0ZpeGVkKDMpOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICB0aWNraW5nID0gZmFsc2U7CiAgICB9OwogICAgY29uc3QgcmVxdWVzdFVwZGF0ZSA9ICgpPT57IGlmKCF0aWNraW5nKXsgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHVwZGF0ZSk7IHRpY2tpbmcgPSB0cnVlOyB9IH07CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgcmVxdWVzdFVwZGF0ZSwge3Bhc3NpdmU6dHJ1ZX0pOwogICAgdXBkYXRlKCk7CgogICAgLyogNmIpIExFTklTLUxJS0UgSU5FUlRJQUwgU01PT1RIIFNDUk9MTAogICAgICAgTGlzdGVuIHRvIHdoZWVsICsgdG91Y2gsIGFkdmFuY2UgdGhlIGFjdHVhbCB3aW5kb3cuc2Nyb2xsWSB0b3dhcmQgYSB0YXJnZXQgd2l0aCBlYXNpbmcuICovCiAgICBsZXQgdGFyZ2V0ID0gd2luZG93LnNjcm9sbFk7CiAgICBsZXQgY3VycmVudCA9IHdpbmRvdy5zY3JvbGxZOwogICAgbGV0IHJhZklkID0gbnVsbDsKICAgIGNvbnN0IGVhc2UgPSAwLjA4NTsKICAgIGNvbnN0IG1pbkRlbHRhID0gMC41OwogICAgY29uc3QgaXNGb3JtRmllbGQgPSAoZWwpPT57CiAgICAgIGlmKCFlbCkgcmV0dXJuIGZhbHNlOwogICAgICBjb25zdCB0ID0gZWwudGFnTmFtZTsKICAgICAgcmV0dXJuIHQ9PT0nSU5QVVQnIHx8IHQ9PT0nVEVYVEFSRUEnIHx8IHQ9PT0nU0VMRUNUJyB8fCBlbC5pc0NvbnRlbnRFZGl0YWJsZTsKICAgIH07CiAgICBjb25zdCBsb29wID0gKCk9PnsKICAgICAgY29uc3QgZCA9IHRhcmdldCAtIGN1cnJlbnQ7CiAgICAgIGlmKE1hdGguYWJzKGQpIDwgbWluRGVsdGEpewogICAgICAgIGN1cnJlbnQgPSB0YXJnZXQ7CiAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIGN1cnJlbnQpOwogICAgICAgIHJhZklkID0gbnVsbDsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY3VycmVudCArPSBkICogZWFzZTsKICAgICAgd2luZG93LnNjcm9sbFRvKDAsIGN1cnJlbnQpOwogICAgICByYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKTsKICAgIH07CiAgICBjb25zdCBraWNrID0gKCk9PnsgaWYocmFmSWQgPT09IG51bGwpIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGxvb3ApOyB9OwogICAgY29uc3QgbWF4U2Nyb2xsID0gKCk9PiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0OwogICAgbGV0IHVzZXJJbnRlcnJ1cHRpbmcgPSBmYWxzZTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChlKT0+ewogICAgICBpZihpc0Zvcm1GaWVsZChlLnRhcmdldCkpIHJldHVybjsKICAgICAgLy8gaG9ub3IgbW9kaWZpZXJzICh6b29tLCBob3Jpem9udGFsKQogICAgICBpZihlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSByZXR1cm47CiAgICAgIC8vIHByZXZlbnQgdGhlIG5hdGl2ZSBpbnN0YW50IGp1bXAKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAvLyBzeW5jIGN1cnJlbnQgaWYgdXNlciBqdXN0IHNjcm9sbGVkIHdpdGggYXJyb3cga2V5cyAvIHNjcm9sbGJhcgogICAgICBpZihNYXRoLmFicyh3aW5kb3cuc2Nyb2xsWSAtIGN1cnJlbnQpID4gNCl7IGN1cnJlbnQgPSB3aW5kb3cuc2Nyb2xsWTsgdGFyZ2V0ID0gY3VycmVudDsgfQogICAgICAvLyBhY2NlbGVyYXRlIHBlciBkZWx0YTsgbGluZS1tb2RlIGRlbHRhcyAoZS5kZWx0YU1vZGU9PT0xKSBuZWVkIHNjYWxpbmcKICAgICAgY29uc3Qgc2NhbGUgPSBlLmRlbHRhTW9kZSA9PT0gMSA\/IDE4IDogKGUuZGVsdGFNb2RlID09PSAyID8gd2luZG93LmlubmVySGVpZ2h0IDogMSk7CiAgICAgIHRhcmdldCArPSBlLmRlbHRhWSAqIHNjYWxlICogMC45OwogICAgICB0YXJnZXQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihtYXhTY3JvbGwoKSwgdGFyZ2V0KSk7CiAgICAgIGtpY2soKTsKICAgIH0sIHtwYXNzaXZlOmZhbHNlfSk7CiAgICAvLyBUb3VjaCDigJQga2VlcCBuYXRpdmUgbW9tZW50dW0gKG1vYmlsZSkKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgKCk9PnsgdXNlckludGVycnVwdGluZyA9IHRydWU7IHRhcmdldCA9IHdpbmRvdy5zY3JvbGxZOyBjdXJyZW50ID0gd2luZG93LnNjcm9sbFk7IH0sIHtwYXNzaXZlOnRydWV9KTsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsICAgKCk9PnsgdXNlckludGVycnVwdGluZyA9IGZhbHNlOyB9KTsKICAgIC8vIEtleWJvYXJkIChzcGFjZSwgcGFnZSB1cC9kb3duLCBhcnJvd3MsIGhvbWUvZW5kKQogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZSk9PnsKICAgICAgaWYoaXNGb3JtRmllbGQoZS50YXJnZXQpKSByZXR1cm47CiAgICAgIGNvbnN0IHZoID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICBsZXQgZGVsdGEgPSAwOwogICAgICBzd2l0Y2goZS5rZXkpewogICAgICAgIGNhc2UgJ0Fycm93RG93bic6IGRlbHRhID0gODA7IGJyZWFrOwogICAgICAgIGNhc2UgJ0Fycm93VXAnOiAgIGRlbHRhID0gLTgwOyBicmVhazsKICAgICAgICBjYXNlICdQYWdlRG93bic6ICBkZWx0YSA9IHZoICogMC44NTsgYnJlYWs7CiAgICAgICAgY2FzZSAnUGFnZVVwJzogICAgZGVsdGEgPSAtdmggKiAwLjg1OyBicmVhazsKICAgICAgICBjYXNlICcgJzogICAgICAgICBkZWx0YSA9IGUuc2hpZnRLZXkgPyAtdmgqMC44NSA6IHZoKjAuODU7IGJyZWFrOwogICAgICAgIGNhc2UgJ0hvbWUnOiAgICAgIHRhcmdldCA9IDA7IGN1cnJlbnQgPSB3aW5kb3cuc2Nyb2xsWTsga2ljaygpOyBlLnByZXZlbnREZWZhdWx0KCk7IHJldHVybjsKICAgICAgICBjYXNlICdFbmQnOiAgICAgICB0YXJnZXQgPSBtYXhTY3JvbGwoKTsgY3VycmVudCA9IHdpbmRvdy5zY3JvbGxZOyBraWNrKCk7IGUucHJldmVudERlZmF1bHQoKTsgcmV0dXJuOwogICAgICAgIGRlZmF1bHQ6IHJldHVybjsKICAgICAgfQogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmKE1hdGguYWJzKHdpbmRvdy5zY3JvbGxZIC0gY3VycmVudCkgPiA0KXsgY3VycmVudCA9IHdpbmRvdy5zY3JvbGxZOyB0YXJnZXQgPSBjdXJyZW50OyB9CiAgICAgIHRhcmdldCA9IE1hdGgubWF4KDAsIE1hdGgubWluKG1heFNjcm9sbCgpLCB0YXJnZXQgKyBkZWx0YSkpOwogICAgICBraWNrKCk7CiAgICB9KTsKICB9CgogIC8qIDcpIEN1c3RvbSBzbW9vdGgtc2Nyb2xsIGZvciBpbi1wYWdlIGFuY2hvcnMgKHNsb3dlciwgZ3JhY2VmdWwpICovCiAgY29uc3QgZWFzZU91dFF1aW50ID0gdCA9PiAxIC0gTWF0aC5wb3coMSAtIHQsIDUpOwogIGNvbnN0IHNtb290aFNjcm9sbFRvID0gKHRhcmdldFksIGR1cmF0aW9uPTEzMDApPT57CiAgICBjb25zdCBzdGFydFkgPSB3aW5kb3cuc2Nyb2xsWTsKICAgIGNvbnN0IGRpc3QgPSB0YXJnZXRZIC0gc3RhcnRZOwogICAgaWYoTWF0aC5hYnMoZGlzdCkgPCA0KSByZXR1cm47CiAgICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOwogICAgY29uc3Qgc3RlcCA9IChub3cpPT57CiAgICAgIGNvbnN0IHAgPSBNYXRoLm1pbigxLCAobm93IC0gdDApIC8gZHVyYXRpb24pOwogICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgc3RhcnRZICsgZGlzdCAqIGVhc2VPdXRRdWludChwKSk7CiAgICAgIGlmKHAgPCAxKSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoc3RlcCk7CiAgICB9OwogICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHN0ZXApOwogIH07CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYVtocmVmXj0iIyJdJykuZm9yRWFjaChhPT57CiAgICBhLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpPT57CiAgICAgIGNvbnN0IGhyZWYgPSBhLmdldEF0dHJpYnV0ZSgnaHJlZicpOwogICAgICBpZighaHJlZiB8fCBocmVmID09PSAnIycpIHJldHVybjsKICAgICAgY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihocmVmKTsKICAgICAgaWYoIXRhcmdldCkgcmV0dXJuOwogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGNvbnN0IGhlYWRlck9mZnNldCA9IDcwOwogICAgICBjb25zdCB5ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZIC0gaGVhZGVyT2Zmc2V0OwogICAgICBpZihyZWR1Y2VkKSB3aW5kb3cuc2Nyb2xsVG8oMCwgeSk7CiAgICAgIGVsc2Ugc21vb3RoU2Nyb2xsVG8oeSwgMTQwMCk7CiAgICB9KTsKICB9KTsKfSkoKTsKCgoKLyogPT09PT0gVFJBREUgQVJFQSAtIHJlYWwgV29yZFByZXNzIGF1dGgsIHNlcnZlci1zaWRlIGdhdGVkIGNvbnRlbnQgPT09PT0gKi8KKGZ1bmN0aW9uKCl7CiAgdmFyIHByb2R1Y3RzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2R1Y3RzJyk7CiAgdmFyIGdhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2F0ZScpOwogIHZhciBhdXRoZWQgPSAhIXByb2R1Y3RzOyAgICAgICAgICAgICAgICAgLyogc2VydmVyIHJlbmRlcnMgI3Byb2R1Y3RzIG9ubHkgZm9yIHRyYWRlIG1lbWJlcnMgKi8KICB2YXIgYnRuVHJhZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYnRuLXRyYWRlJyk7CgogIGZ1bmN0aW9uIHNwbGl0VGl0bGUoKXsKICAgIHZhciBlbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXNwbGl0LTJdJyk7IGlmKCFlbCkgcmV0dXJuOwogICAgdmFyIHJlZHVjZWQgPSBtYXRjaE1lZGlhKCcocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKScpLm1hdGNoZXM7CiAgICB2YXIgcmF3ID0gZWwudGV4dENvbnRlbnQudHJpbSgpOyBlbC50ZXh0Q29udGVudD0nJzsKICAgIHJhdy5zcGxpdCgvXHMrLykuZm9yRWFjaChmdW5jdGlvbih3b3JkLGkpewogICAgICB2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7IHMuY2xhc3NOYW1lPSd3Jzsgcy50ZXh0Q29udGVudD13b3JkKycgJzsKICAgICAgcy5zdHlsZS5hbmltYXRpb25EZWxheT0oODAraSoxMTApKydtcyc7CiAgICAgIGlmKHJlZHVjZWQpe3Muc3R5bGUuYW5pbWF0aW9uPSdub25lJztzLnN0eWxlLm9wYWNpdHk9MTtzLnN0eWxlLnRyYW5zZm9ybT0nbm9uZSc7fQogICAgICBlbC5hcHBlbmRDaGlsZChzKTsKICAgIH0pOwogIH0KCiAgaWYoYXV0aGVkKXsKICAgIGlmKGdhdGUpIGdhdGUuaGlkZGVuID0gdHJ1ZTsKICAgIHByb2R1Y3RzLmhpZGRlbiA9IGZhbHNlOwogICAgaWYoYnRuVHJhZGUpIGJ0blRyYWRlLnRleHRDb250ZW50PSdBcmVhIHJpc2VydmF0YSc7CiAgICBzcGxpdFRpdGxlKCk7CiAgICB0cnl7CiAgICAgIGZldGNoKCcvd3AtanNvbi93cC92Mi91c2Vycy9tZScse2NyZWRlbnRpYWxzOidpbmNsdWRlJ30pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocil7cmV0dXJuIHIub2s\/ci5qc29uKCk6bnVsbDt9KQogICAgICAgIC50aGVuKGZ1bmN0aW9uKHUpeyBpZih1JiZ1Lm5hbWUpeyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1hY2N0LW5hbWVdJykuZm9yRWFjaChmdW5jdGlvbihlbCl7ZWwudGV4dENvbnRlbnQ9dS5uYW1lO30pOyB9IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKCl7fSk7CiAgICB9Y2F0Y2goZSl7fQogIH0KCiAgLyogbW9kYWxzICovCiAgZnVuY3Rpb24gY2xvc2VNb2RhbHMoKXsgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vZGFsJykuZm9yRWFjaChmdW5jdGlvbihtKXttLmhpZGRlbj10cnVlO30pOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PScnOyB9CiAgZnVuY3Rpb24gb3Blbk1vZGFsKGlkKXsKICAgIGNsb3NlTW9kYWxzKCk7IHZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RhbC0nK2lkKTsgaWYoIW0pIHJldHVybjsKICAgIG0uaGlkZGVuPWZhbHNlOyBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nOwogICAgdmFyIGZpcnN0PW0ucXVlcnlTZWxlY3RvcignaW5wdXQsc2VsZWN0LHRleHRhcmVhLGJ1dHRvbicpOyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoZmlyc3QpZmlyc3QuZm9jdXMoKTt9LDgwKTsKICB9CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgIHZhciBvcGVuZXI9ZS50YXJnZXQuY2xvc2VzdCgnW2RhdGEtb3Blbl0nKTsKICAgIGlmKG9wZW5lcil7IGUucHJldmVudERlZmF1bHQoKTsgb3Blbk1vZGFsKG9wZW5lci5kYXRhc2V0Lm9wZW4pOyByZXR1cm47IH0KICAgIGlmKGUudGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWNsb3NlXScpKXsgZS5wcmV2ZW50RGVmYXVsdCgpOyBjbG9zZU1vZGFscygpOyB9CiAgfSk7CiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGZ1bmN0aW9uKGUpeyBpZihlLmtleT09PSdFc2NhcGUnKSBjbG9zZU1vZGFscygpOyB9KTsKCiAgaWYoYnRuVHJhZGUpewogICAgYnRuVHJhZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKXsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBpZihhdXRoZWQpeyB3aW5kb3cuc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOidzbW9vdGgnfSk7IH0gZWxzZSB7IG9wZW5Nb2RhbCgnbG9naW4nKTsgfQogICAgfSk7CiAgfQoKICAvKiByZWFsIFdvcmRQcmVzcyBsb2dpbiAqLwogIHZhciBsb2dpbkZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9naW4tZm9ybScpOwogIGlmKGxvZ2luRm9ybSl7CiAgICB2YXIgZXJyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsgZXJyLmhpZGRlbj10cnVlOwogICAgZXJyLnN0eWxlLmNzc1RleHQ9J2NvbG9yOiM5YTJhMmE7Zm9udC1mYW1pbHk6dmFyKC0tc2Fucyksc2Fucy1zZXJpZjtmb250LXNpemU6MTNweDtsZXR0ZXItc3BhY2luZzouMDFlbTttYXJnaW46MTBweCAwIDA7dGV4dC1hbGlnbjpjZW50ZXInOwogICAgbG9naW5Gb3JtLmFwcGVuZENoaWxkKGVycik7CiAgICB2YXIgc3VibWl0QnRuPWxvZ2luRm9ybS5xdWVyeVNlbGVjdG9yKCdidXR0b25bdHlwZT0ic3VibWl0Il0nKTsKICAgIHZhciBvbGRIVE1MPXN1Ym1pdEJ0bj9zdWJtaXRCdG4uaW5uZXJIVE1MOicnOwogICAgbG9naW5Gb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGZ1bmN0aW9uKGUpewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIGlmKCFsb2dpbkZvcm0uY2hlY2tWYWxpZGl0eSgpKXsgbG9naW5Gb3JtLnJlcG9ydFZhbGlkaXR5KCk7IHJldHVybjsgfQogICAgICB2YXIgZW1haWw9KGxvZ2luRm9ybS5lbWFpbC52YWx1ZXx8JycpLnRyaW0oKTsKICAgICAgdmFyIHB3ZD1sb2dpbkZvcm0ucGFzc3dvcmQudmFsdWV8fCcnOwogICAgICB2YXIgcmVtZW1iZXI9bG9naW5Gb3JtLnJlbWVtYmVyICYmIGxvZ2luRm9ybS5yZW1lbWJlci5jaGVja2VkOwogICAgICBlcnIuaGlkZGVuPXRydWU7CiAgICAgIGlmKHN1Ym1pdEJ0bil7IHN1Ym1pdEJ0bi5kaXNhYmxlZD10cnVlOyBzdWJtaXRCdG4udGV4dENvbnRlbnQ9J1NpZ25pbmcgaW7igKYnOyB9CiAgICAgIGZldGNoKCcvd3AtbG9naW4ucGhwJyx7Y3JlZGVudGlhbHM6J2luY2x1ZGUnfSkuY2F0Y2goZnVuY3Rpb24oKXt9KS50aGVuKGZ1bmN0aW9uKCl7CiAgICAgICAgdmFyIGJvZHk9bmV3IFVSTFNlYXJjaFBhcmFtcygpOwogICAgICAgIGJvZHkuc2V0KCdsb2cnLGVtYWlsKTsgYm9keS5zZXQoJ3B3ZCcscHdkKTsKICAgICAgICBpZihyZW1lbWJlcikgYm9keS5zZXQoJ3JlbWVtYmVybWUnLCdmb3JldmVyJyk7CiAgICAgICAgYm9keS5zZXQoJ3JlZGlyZWN0X3RvJywgbG9jYXRpb24ucGF0aG5hbWUpOwogICAgICAgIGJvZHkuc2V0KCd0ZXN0Y29va2llJywnMScpOwogICAgICAgIHJldHVybiBmZXRjaCgnL3dwLWxvZ2luLnBocCcse21ldGhvZDonUE9TVCcsYm9keTpib2R5LGNyZWRlbnRpYWxzOidpbmNsdWRlJ30pOwogICAgICB9KS50aGVuKGZ1bmN0aW9uKHIpewogICAgICAgIGlmKHIucmVkaXJlY3RlZCAmJiAhL3dwLWxvZ2luXC5waHAvLnRlc3Qoci51cmwpKXsgbG9jYXRpb24ucmVsb2FkKCk7IHJldHVybjsgfQogICAgICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkJyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKCl7CiAgICAgICAgaWYoc3VibWl0QnRuKXsgc3VibWl0QnRuLmRpc2FibGVkPWZhbHNlOyBzdWJtaXRCdG4uaW5uZXJIVE1MPW9sZEhUTUw7IH0KICAgICAgICBlcnIudGV4dENvbnRlbnQ9J0luY29ycmVjdCBlbWFpbCBvciBwYXNzd29yZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciByZXF1ZXN0IGFjY2Vzcy4nOwogICAgICAgIGVyci5oaWRkZW49ZmFsc2U7CiAgICAgIH0pOwogICAgfSk7CiAgfQoKICAvKiBsb2dvdXQgKi8KICB2YXIgbG9nb3V0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dvdXQnKTsKICBpZihsb2dvdXQpewogICAgbG9nb3V0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgdmFyIGRlc3Q9bG9jYXRpb24ub3JpZ2luKycvdHJhZGUtYXJlYS8nOwogICAgICB2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd3AtYWRtaW4tYmFyLWxvZ291dCBhJyk7CiAgICAgIGlmKGEmJmEuaHJlZil7IHZhciB1PW5ldyBVUkwoYS5ocmVmLCBsb2NhdGlvbi5vcmlnaW4pOyB1LnNlYXJjaFBhcmFtcy5zZXQoJ3JlZGlyZWN0X3RvJywgZGVzdCk7IGxvY2F0aW9uLmhyZWY9dS50b1N0cmluZygpOyByZXR1cm47IH0KICAgICAgbG9jYXRpb24uaHJlZj1sb2NhdGlvbi5vcmlnaW4rJy8\/dHJhZGVfbG9nb3V0PTEnOwogICAgfSk7CiAgfQoKICAvKiByZXF1ZXN0IGFjY2VzcyAtPiBDb250YWN0IEZvcm0gNyAoc3Rlc3NvIG1vdG9yZSBkZWxsYSBwYWdpbmEgQ29udGF0dGkpICovCiAgdmFyIHJlcUZvcm09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcXVlc3QtZm9ybScpOwogIGlmKHJlcUZvcm0pewogICAgdmFyIENGN19JRD0nMzU1JzsKICAgIHZhciByZXJyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTsgcmVyci5oaWRkZW49dHJ1ZTsKICAgIHJlcnIuc3R5bGUuY3NzVGV4dD0nY29sb3I6IzlhMmEyYTtmb250LWZhbWlseTp2YXIoLS1zYW5zKSxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxM3B4O21hcmdpbjoxMHB4IDAgMDt0ZXh0LWFsaWduOmNlbnRlcic7CiAgICByZXFGb3JtLmFwcGVuZENoaWxkKHJlcnIpOwogICAgcmVxRm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBmdW5jdGlvbihlKXsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBpZighcmVxRm9ybS5jaGVja1ZhbGlkaXR5KCkpeyByZXFGb3JtLnJlcG9ydFZhbGlkaXR5KCk7IHJldHVybjsgfQogICAgICB2YXIgYnRuPXJlcUZvcm0ucXVlcnlTZWxlY3RvcignYnV0dG9uW3R5cGU9InN1Ym1pdCJdJyk7IHZhciBvbGQ9YnRuP2J0bi5pbm5lckhUTUw6Jyc7CiAgICAgIGlmKGJ0bil7IGJ0bi5kaXNhYmxlZD10cnVlOyBidG4udGV4dENvbnRlbnQ9J1NlbmRpbmfigKYnOyB9CiAgICAgIHJlcnIuaGlkZGVuPXRydWU7CiAgICAgIHZhciBnPWZ1bmN0aW9uKG4peyByZXR1cm4gcmVxRm9ybVtuXT8ocmVxRm9ybVtuXS52YWx1ZXx8JycpOicnOyB9OwogICAgICB2YXIgZmQ9bmV3IEZvcm1EYXRhKCk7CiAgICAgIGZkLmFwcGVuZCgnX3dwY2Y3JyxDRjdfSUQpOyBmZC5hcHBlbmQoJ193cGNmN192ZXJzaW9uJywnNi4xLjYnKTsgZmQuYXBwZW5kKCdfd3BjZjdfbG9jYWxlJywnZW5fVVMnKTsKICAgICAgZmQuYXBwZW5kKCdfd3BjZjdfdW5pdF90YWcnLCd3cGNmNy1mJytDRjdfSUQrJy1vMScpOyBmZC5hcHBlbmQoJ193cGNmN19jb250YWluZXJfcG9zdCcsJzAnKTsgZmQuYXBwZW5kKCdfd3BjZjdfcG9zdGVkX2RhdGFfaGFzaCcsJycpOwogICAgICBmZC5hcHBlbmQoJ25vbWUnLGcoJ25vbWUnKSk7IGZkLmFwcGVuZCgnYXppZW5kYScsZygnYXppZW5kYScpKTsgZmQuYXBwZW5kKCdlbWFpbCcsZygnZW1haWwnKSk7CiAgICAgIGZkLmFwcGVuZCgncGl2YScsZygncGl2YScpKTsgZmQuYXBwZW5kKCdydW9sbycsZygncnVvbG8nKSk7IGZkLmFwcGVuZCgnbWVzc2FnZ2lvJyxnKCdtZXNzYWdnaW8nKSk7CiAgICAgIGZkLmFwcGVuZCgncHJpdmFjeScsIChyZXFGb3JtLnByaXZhY3kgJiYgcmVxRm9ybS5wcml2YWN5LmNoZWNrZWQpPycxJzonJyk7CiAgICAgIGZldGNoKCcvd3AtanNvbi9jb250YWN0LWZvcm0tNy92MS9jb250YWN0LWZvcm1zLycrQ0Y3X0lEKycvZmVlZGJhY2snLHttZXRob2Q6J1BPU1QnLGJvZHk6ZmR9KQogICAgICAgIC50aGVuKGZ1bmN0aW9uKHIpeyByZXR1cm4gci5qc29uKCk7IH0pCiAgICAgICAgLnRoZW4oZnVuY3Rpb24oZCl7CiAgICAgICAgICBpZihkICYmIGQuc3RhdHVzPT09J21haWxfc2VudCcpewogICAgICAgICAgICByZXFGb3JtLmhpZGRlbj10cnVlOwogICAgICAgICAgICB2YXIgb2s9cmVxRm9ybS5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1zdWNjZXNzJyk7IGlmKG9rKSBvay5oaWRkZW49ZmFsc2U7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZihidG4peyBidG4uZGlzYWJsZWQ9ZmFsc2U7IGJ0bi5pbm5lckhUTUw9b2xkOyB9CiAgICAgICAgICAgIHJlcnIudGV4dENvbnRlbnQ9KGQgJiYgZC5tZXNzYWdlKSB8fCAnU3VibWlzc2lvbiBmYWlsZWQuIFBsZWFzZSB0cnkgYWdhaW4uJzsgcmVyci5oaWRkZW49ZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oKXsKICAgICAgICAgIGlmKGJ0bil7IGJ0bi5kaXNhYmxlZD1mYWxzZTsgYnRuLmlubmVySFRNTD1vbGQ7IH0KICAgICAgICAgIHJlcnIudGV4dENvbnRlbnQ9J1N1Ym1pc3Npb24gZmFpbGVkLiBQbGVhc2UgY2hlY2sgeW91ciBjb25uZWN0aW9uIGFuZCB0cnkgYWdhaW4uJzsgcmVyci5oaWRkZW49ZmFsc2U7CiAgICAgICAgfSk7CiAgICB9KTsKICB9CgogIC8qIHByb2R1Y3QgZmlsdGVyaW5nICsgc2VhcmNoICovCiAgdmFyIHJvd3M9W10uc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucHJvdycpKTsKICB2YXIgZmlsdGVycz1bXS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXInKSk7CiAgdmFyIHNlYXJjaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZC1zZWFyY2gnKTsKICB2YXIgZW1wdHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2QtZW1wdHknKTsKICB2YXIgYWN0aXZlRmlsdGVyPSdhbGwnOwogIGZ1bmN0aW9uIGFwcGx5KCl7CiAgICB2YXIgcT0oc2VhcmNoJiZzZWFyY2gudmFsdWV8fCcnKS50cmltKCkudG9Mb3dlckNhc2UoKTsgdmFyIHNob3duPTA7CiAgICByb3dzLmZvckVhY2goZnVuY3Rpb24ocil7CiAgICAgIHZhciBjYXRzPXIuZGF0YXNldC5jYXRzfHwnJzsKICAgICAgdmFyIG1mPWFjdGl2ZUZpbHRlcj09PSdhbGwnfHxjYXRzLnNwbGl0KC9ccysvKS5pbmRleE9mKGFjdGl2ZUZpbHRlcik+LTE7CiAgICAgIHZhciBtcz0hcXx8KHIuZGF0YXNldC5uYW1lfHwnJykuaW5kZXhPZihxKT4tMTsKICAgICAgdmFyIHZpcz1tZiYmbXM7IHIuc3R5bGUuZGlzcGxheT12aXM\/Jyc6J25vbmUnOyBpZih2aXMpc2hvd24rKzsKICAgIH0pOwogICAgaWYoZW1wdHkpIGVtcHR5LmhpZGRlbj1zaG93bj4wOwogIH0KICBmaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24oZil7CiAgICBmLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICAgICAgZmlsdGVycy5mb3JFYWNoKGZ1bmN0aW9uKHgpe3guY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7eC5zZXRBdHRyaWJ1dGUoJ2FyaWEtc2VsZWN0ZWQnLCdmYWxzZScpO30pOwogICAgICBmLmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpOyBmLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsJ3RydWUnKTsKICAgICAgYWN0aXZlRmlsdGVyPWYuZGF0YXNldC5maWx0ZXI7IGFwcGx5KCk7CiAgICB9KTsKICB9KTsKICBpZihzZWFyY2gpIHNlYXJjaC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFwcGx5KTsKfSkoKTsKCi8qIElsIGxpbmsgSVQgZGVsIHNlbGV0dG9yZSB2YSByaXNjcml0dG8gbGF0byBjbGllbnQ6IFdQTUwgcmlzY3JpdmUgZ2xpIGhyZWYgaW50ZXJuaQogICBpbiBmYXNlIGRpIHNhbHZhdGFnZ2lvIGUgbG8gcmltYXBwZXJlYmJlIHN1bGxhIHZlcnNpb25lIGluZ2xlc2UuICovCihmdW5jdGlvbigpe3ZhciBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5nIGFbZGF0YS1pdF0nKTtpZihsKXtsLnNldEF0dHJpYnV0ZSgnaHJlZicsIGwuZ2V0QXR0cmlidXRlKCdkYXRhLWl0JykpO319KSgpOwoKLyogLS0tLSBNZW51IG1vYmlsZSAoMjcvMDgvMjAyNikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQ29zdHJ1aXRvIGludGVyYW1lbnRlIHF1aSwgYSBydW50aW1lOiBpbCBtYXJrdXAgZGVsbGUgcGFnaW5lIG5vbiBjYW1iaWEsCiAgIGUgaWwgQ1NTIGxvIG1vc3RyYSBzb2xvIHNvdHRvIGkgOTYwcHguIElsIGRlc2t0b3AgcmVzdGEgaW50b2NjYXRvLiAgICAgICAqLwooZnVuY3Rpb24oKXsKICBpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY290LWJ1cmdlcicpKSByZXR1cm47CiAgdmFyIGhlYWRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2l0ZS1oZWFkZXInKTsgaWYoIWhlYWRlcikgcmV0dXJuOwogIHZhciByaWdodD1oZWFkZXIucXVlcnlTZWxlY3RvcignLmhlYWRlci1yaWdodCcpOwogIHZhciBuYXY9aGVhZGVyLnF1ZXJ5U2VsZWN0b3IoJy5zaXRlLW5hdicpOwogIGlmKCFyaWdodHx8IW5hdikgcmV0dXJuOwogIHZhciBFTj0oZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEF0dHJpYnV0ZSgnbGFuZycpfHwnJykudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdlbicpPT09MDsKICB2YXIgTD17YXByaTpFTj8nT3BlbiBtZW51JzonQXByaSBpbCBtZW51JywgY2hpdWRpOkVOPydDbG9zZSBtZW51JzonQ2hpdWRpIGlsIG1lbnUnfTsKCiAgdmFyIGJ0bj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICBidG4udHlwZT0nYnV0dG9uJzsgYnRuLmNsYXNzTmFtZT0nY290LWJ1cmdlcic7CiAgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsTC5hcHJpKTsKICBidG4uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywnZmFsc2UnKTsKICBidG4uc2V0QXR0cmlidXRlKCdhcmlhLWNvbnRyb2xzJywnY290LW1uYXYnKTsKICBidG4uaW5uZXJIVE1MPSc8aT48L2k+JzsKICByaWdodC5hcHBlbmRDaGlsZChidG4pOwoKICB2YXIgcGFuZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbmF2Jyk7CiAgcGFuZWwuY2xhc3NOYW1lPSdjb3QtbW5hdic7IHBhbmVsLmlkPSdjb3QtbW5hdic7CiAgcGFuZWwuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgbmF2LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcpfHwnJyk7CgogIHZhciB0b3A9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IHRvcC5jbGFzc05hbWU9J2NvdC1tbmF2LXRvcCc7CiAgdmFyIGRhcms9aGVhZGVyLnF1ZXJ5U2VsZWN0b3IoJy5sb2dvLS1kYXJrJyk7CiAgaWYoZGFyaykgdG9wLmFwcGVuZENoaWxkKGRhcmsuY2xvbmVOb2RlKHRydWUpKTsKICB2YXIgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTsKICB4LnR5cGU9J2J1dHRvbic7IHguY2xhc3NOYW1lPSdjb3QtbW5hdi14JzsgeC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnLEwuY2hpdWRpKTsKICB4LmlubmVySFRNTD0nPGk+PC9pPic7CiAgdG9wLmFwcGVuZENoaWxkKHgpOwogIHBhbmVsLmFwcGVuZENoaWxkKHRvcCk7CgogIHZhciBsaW5rcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsgbGlua3MuY2xhc3NOYW1lPSdjb3QtbW5hdi1saW5rcyc7CiAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChuYXYucXVlcnlTZWxlY3RvckFsbCgnYScpLCBmdW5jdGlvbihhKXsgbGlua3MuYXBwZW5kQ2hpbGQoYS5jbG9uZU5vZGUodHJ1ZSkpOyB9KTsKICBwYW5lbC5hcHBlbmRDaGlsZChsaW5rcyk7CgogIHZhciBmb290PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBmb290LmNsYXNzTmFtZT0nY290LW1uYXYtZm9vdCc7CiAgdmFyIGxhbmc9aGVhZGVyLnF1ZXJ5U2VsZWN0b3IoJy5sYW5nJyk7IGlmKGxhbmcpIGZvb3QuYXBwZW5kQ2hpbGQobGFuZy5jbG9uZU5vZGUodHJ1ZSkpOwogIHZhciB0cmFkZT1oZWFkZXIucXVlcnlTZWxlY3RvcignLmJ0bi10cmFkZScpOyBpZih0cmFkZSkgZm9vdC5hcHBlbmRDaGlsZCh0cmFkZS5jbG9uZU5vZGUodHJ1ZSkpOwogIHBhbmVsLmFwcGVuZENoaWxkKGZvb3QpOwogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFuZWwpOwoKICBmdW5jdGlvbiBhcHJpKCl7CiAgICBwYW5lbC5jbGFzc0xpc3QuYWRkKCdpcy1vcGVuJyk7IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnY290LW1lbnUtb3BlbicpOwogICAgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1leHBhbmRlZCcsJ3RydWUnKTsgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsTC5jaGl1ZGkpOwogIH0KICBmdW5jdGlvbiBjaGl1ZGkoKXsKICAgIHBhbmVsLmNsYXNzTGlzdC5yZW1vdmUoJ2lzLW9wZW4nKTsgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdjb3QtbWVudS1vcGVuJyk7CiAgICBidG4uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywnZmFsc2UnKTsgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsTC5hcHJpKTsKICB9CiAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsgcGFuZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1vcGVuJyk\/Y2hpdWRpKCk6YXByaSgpOyB9KTsKICB4LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2hpdWRpKTsKICBwYW5lbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKGUpeyBpZihlLnRhcmdldC5jbG9zZXN0ICYmIGUudGFyZ2V0LmNsb3Nlc3QoJ2EnKSkgY2hpdWRpKCk7IH0pOwogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKXsgaWYoZS5rZXk9PT0nRXNjYXBlJykgY2hpdWRpKCk7IH0pOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBmdW5jdGlvbigpeyBpZih3aW5kb3cuaW5uZXJXaWR0aD45NjApIGNoaXVkaSgpOyB9KTsKfSkoKTsK\";var d=atob(b);var u=new Uint8Array(d.length);for(var i=0;i<d.length;i++)u[i]=d.charCodeAt(i);var t=new TextDecoder(\"utf-8\").decode(u);var s=document.createElement(\"script\");s.text=t;document.body.appendChild(s);})();<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Home About us Our brands Sustainability Trade Area Press Area Contacts IT\u00b7EN Trade Login Products &amp; Trade Area Trade area \u2013 reserved for professionals. A dedicated space for distributors, importers, and wine industry professionals, with tools and materials designed to support business growth. Log in Request access What you&#8217;ll find inside 01Technical data sheetsComplete data [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-336","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/pages\/336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/comments?post=336"}],"version-history":[{"count":11,"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/pages\/336\/revisions"}],"predecessor-version":[{"id":471,"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/pages\/336\/revisions\/471"}],"wp:attachment":[{"href":"https:\/\/www.cottini1925.cybeartest.it\/en\/wp-json\/wp\/v2\/media?parent=336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}