:root{
  --tk-green:#539F20;--tk-green-ui:#3E7A16;--tk-green-ui-hover:#2F6311;--tk-green-soft:#E4F0D8;--tk-lime:#90C225;
  --tk-ink:#1B1D1A;--tk-muted:#5E625B;--tk-paper:#F5F2EC;--tk-paper-2:#EDE8DF;--tk-card:#FFFFFF;--tk-line:#E2DDD3;
  --tk-night:#131512;--tk-night-2:#1D201B;--tk-night-muted:#A9AEA4;
  --tk-radius:14px;--tk-radius-lg:24px;
  --tk-shadow:0 1px 2px rgba(27,29,26,.04),0 8px 24px rgba(27,29,26,.06);
  --tk-shadow-hover:0 2px 4px rgba(27,29,26,.05),0 16px 40px rgba(27,29,26,.10);
  --tk-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --tk-sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --tk-ease:cubic-bezier(.2,.7,.2,1);
  --verde:var(--tk-green);--verde-dark:var(--tk-green-ui);--verde-light:var(--tk-lime);
  --antracite:var(--tk-ink);--off-white:var(--tk-paper);--white:#FFFFFF;--text:var(--tk-ink);--text-light:var(--tk-muted);
}

/* ---------- tipografia Denis: Fraunces titoli, Manrope testo ---------- */
body{font-family:var(--tk-sans)!important;background:var(--tk-paper)!important;-webkit-font-smoothing:antialiased}
.badge-num,
.card-title,
.cookie-title,
.cta-title,
.form-intro h2,
.hero-stat-num,
.hero-title,
.intro-title,
.metodo-step-num,
.nav-logo,
.nav-logo-text,
.numero-val,
.page-hero-title,
.quote-mark,
.quote-text,
.realizzazione-modal-content h3,
.risorse-col h3,
.section-cta h2,
.section-title,
.servizio-content h2,
.servizio-num,
.settore-name,
.settore-subtitle,
.settore-title,
.tech-content h2,
.telegram-strip h3,
.tk-telegram h3,
.valore-num{font-family:var(--tk-serif)!important;letter-spacing:-.01em}
.cookie-btn,
.cookie-links a,
.cookie-manage,
.form-group input,
.form-group select,
.form-group textarea,
.form-submit{font-family:var(--tk-sans)!important}

h1,h2,h3,.section-title{font-family:var(--tk-serif)!important}
h1,.section-title,.hero h1{font-weight:600!important;letter-spacing:-.015em}
.section-title strong,.hero h1 em,.hero h1 strong,h1 em,h2 em{font-style:italic;font-weight:500!important;color:var(--tk-green)!important}
p,li{line-height:1.7}
:focus-visible{outline:3px solid var(--tk-green-ui)!important;outline-offset:3px!important;border-radius:6px}

/* ---------- menu ---------- */
#main-nav{background:rgba(245,242,236,.92)!important;border-bottom:1px solid var(--tk-line)!important}
.nav-links a,.dropdown-menu-home a{text-transform:none!important;letter-spacing:0!important;font-size:15px!important;font-weight:600!important}
.nav-cta{border-radius:999px!important;background:var(--tk-green-ui)!important;padding:11px 22px!important}
.nav-cta:hover{background:var(--tk-green-ui-hover)!important}
.dropdown-menu-home{border-radius:var(--tk-radius)!important;border:1px solid var(--tk-line)!important;box-shadow:var(--tk-shadow-hover)!important;padding:8px!important}
.dropdown-menu-home a{border-radius:10px}

/* ---------- etichette piccole: meno maiuscolo tecnico ---------- */
.hero-eyebrow,.section-eyebrow,.page-eyebrow{letter-spacing:.14em!important;font-weight:700!important}
.section-eyebrow{color:var(--tk-green-ui)!important}

/* ---------- bottoni a pillola ---------- */
.btn-primary,.btn-secondary,.btn-white,.btn-outline,.form-submit,.btn{border-radius:999px!important;text-transform:none!important;letter-spacing:0!important;font-size:15.5px!important;font-weight:700!important;padding:15px 28px!important;font-family:var(--tk-sans)!important}
.btn-primary,.form-submit{background:var(--tk-green-ui)!important;color:#fff!important}
.btn-primary:hover,.form-submit:hover{background:var(--tk-green-ui-hover)!important}
.btn-white{color:var(--tk-ink)!important}

/* ---------- card e immagini con angoli ---------- */
.settore-card,.portfolio-card,.perche-card,.metodo-step,.valore-card,.contact-form,.servizio-img,.servizi-image img,.settore-img img,.hero-grid-img,.tech-image img,.storia-images img,.page-hero-image img,.risorse-col,.contact-card,.prodotto-card{border-radius:var(--tk-radius)!important;overflow:hidden}
.metodo-steps{gap:16px!important}
.perche-card{background:var(--tk-night-2)!important;border-color:rgba(255,255,255,.06)!important}
.section-perche,.hero-left,.page-hero,.section-tech{background-color:var(--tk-night)!important}
.section-quote{background:var(--tk-paper-2)!important}
.quote-text{font-family:var(--tk-serif)!important;font-style:italic}
.section-cta{background:var(--tk-green-ui)!important}
.btn-white:hover{background:var(--tk-paper)!important}
input[type=text],input[type=email],input[type=tel],select,textarea{border-radius:10px!important;border:1.5px solid var(--tk-line)!important;font-family:var(--tk-sans)!important;font-size:16px!important}
input:focus,select:focus,textarea:focus{border-color:var(--tk-green-ui)!important;box-shadow:0 0 0 4px rgba(83,159,32,.15)!important;outline:none!important}
#main-footer{background:var(--tk-night)!important}
#footer-bottom{background:#0D0F0C!important}
.tk-contact{background:var(--tk-night)!important}
.tk-contact-card{border-radius:var(--tk-radius)!important;background:var(--tk-night-2)!important}
.tk-telegram{background:var(--tk-green-ui)!important}
.tk-tg-card{border-radius:var(--tk-radius)!important}
.cookie-box{border-radius:20px!important}
.cookie-btn{border-radius:999px!important;text-transform:none!important;letter-spacing:0!important}
.cookie-btn.primary,.cookie-btn.reject{background:var(--tk-green-ui)!important;border-color:var(--tk-green-ui)!important}

/* ---------- sezione: il banco che si scompone ---------- */
.xp{position:relative;overflow-x:clip;background:var(--tk-paper)}
.xp-sticky{display:grid;grid-template-columns:minmax(300px,440px) 1fr;align-items:center;gap:56px;padding:96px max(24px,calc((100vw - 1240px)/2 + 24px))}
.xp-text{position:relative}
.xp-eyebrow{display:inline-block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--tk-green-ui)}
.xp-intro h2{font-family:var(--tk-serif)!important;font-weight:600;font-size:clamp(32px,3.6vw,48px);line-height:1.08;color:var(--tk-ink);margin:12px 0 16px}
.xp-intro h2 em{font-style:italic;font-weight:500;color:var(--tk-green)}
.xp-intro p{font-size:17px;color:var(--tk-muted);max-width:38ch;margin:0}
.xp-steps{list-style:none;margin:26px 0 0;padding:0}
.xp-steps li{padding:12px 0 12px 18px;border-left:2px solid var(--tk-line);color:var(--tk-muted);transition:color .3s,border-color .3s}
.xp-steps b{display:block;font-family:var(--tk-serif);font-size:19px;font-weight:600;color:inherit;line-height:1.3}
.xp-steps small{display:block;font-size:14.5px;line-height:1.5;margin-top:2px}
.xp-steps li.on{color:var(--tk-ink);border-color:var(--tk-green)}
.xp-stage{position:relative;width:100%;aspect-ratio:840/532}
.xp-stage .xp-base,.xp-part img{position:absolute;inset:0;width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}
.xp-base{border-radius:var(--tk-radius-lg);box-shadow:var(--tk-shadow)}
.xp-part{position:absolute;inset:0;pointer-events:none;will-change:transform;filter:drop-shadow(0 16px 22px rgba(27,29,26,.20))}
.xp-note{margin-top:14px;font-size:12.5px;color:var(--tk-muted);display:flex;gap:8px;align-items:center}
.xp-note::before{content:"";width:8px;height:8px;border-radius:50%;background:#D98E04;flex:none}
.xp-hint{display:none}
.xp.xp-on{height:300vh}
.xp.xp-on .xp-sticky{position:sticky;top:80px;height:calc(100vh - 80px);padding-top:0;padding-bottom:0;overflow:hidden}
.xp.xp-on .xp-text{min-height:460px;display:flex;align-items:center}
.xp.xp-on .xp-intro{transition:opacity .35s,transform .35s}
.xp.xp-on .xp-steps{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0;opacity:0;pointer-events:none}
.xp.xp-on .xp-steps small{max-height:0;opacity:0;overflow:hidden;transition:max-height .35s var(--tk-ease),opacity .35s}
.xp.xp-on .xp-steps li.on small{max-height:5em;opacity:1}
.xp.xp-on .xp-hint{display:block;position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tk-muted);font-weight:700;transition:opacity .3s;text-align:center}
.xp.xp-on .xp-hint::after{content:"";display:block;width:1px;height:32px;background:var(--tk-muted);margin:8px auto 0;animation:xphint 1.6s infinite}
.xp.xp-on .xp-note{position:absolute;right:max(24px,calc((100vw - 1240px)/2 + 24px));bottom:18px;max-width:380px;margin:0}
@keyframes xphint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:900px){
  .xp-sticky{display:flex;flex-direction:column;gap:22px;padding-top:64px;padding-bottom:64px}
  .xp-text{display:contents}
  .xp-intro{order:1}
  .xp-visual{order:2;margin-top:64px}
  .xp-note{margin-top:40px}
  .xp-steps{order:3;margin-top:4px}
  .xp-steps li{padding:10px 0 10px 16px}
  .xp-steps b{font-size:17px}
}
@media (prefers-reduced-motion:reduce){.xp-part{display:none}}

/* menu: dimensioni graduate, niente a capo */
.nav-links a,.nav-cta,.nav-logo,.nav-logo span{white-space:nowrap}
@media(max-width:1279px){.nav-links{gap:18px!important}.nav-links a{font-size:14px!important}.nav-cta{padding:10px 16px!important}}
@media(max-width:1100px) and (min-width:769px){.nav-links{gap:12px!important}.nav-links a{font-size:13px!important}.nav-logo .brand-rs,.nav-logo em{display:none!important}}
.nav-logo em{font-family:var(--tk-sans)!important;font-style:normal!important;font-size:12px!important;font-weight:500!important;letter-spacing:.02em!important}

/* fondi verdi con testo bianco: verde scuro leggibile (5,25:1) */
.section-numeri,.section-intro,.btn-verde,.servizi-image-badge,.telegram-strip,.filtro-btn.active,.card-tag,.settore-tag,.dato-icon,.info-icon,.perche-icon,.prodotto-icon,.tk-contact-icon{background-color:var(--tk-green-ui)!important}
.btn-verde,.filtro-btn{border-radius:999px!important}
.settore-tag,.card-tag{border-radius:999px!important}

/* parole in corsivo nei titoli su fondo verde o scuro */
.section-cta .section-title strong,.section-cta h2 strong,.section-cta h2 em,.section-intro .section-title strong,.section-intro h2 strong{color:#E4F5D6!important}
.section-perche .section-title strong,.section-tech .section-title strong,.page-hero .section-title strong,.page-hero h1 strong,.page-hero h1 em,.page-hero h1 span{color:var(--tk-lime)!important}
@media(max-width:1100px){.servizi-image-badge{right:16px!important}}

/* ---------- banco bar: scomposizione + finiture (sostituisce la versione catalogo Basic) ---------- */
.xp-stage{aspect-ratio:1600/1066!important}
.xp-base{position:absolute;inset:0;border-radius:var(--tk-radius-lg);overflow:hidden;box-shadow:var(--tk-shadow)}
.xp-stage .fimg{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .7s var(--tk-ease);user-select:none;-webkit-user-drag:none}
.xp-stage .fimg.fixed,.xp-stage.fin-0 .f0,.xp-stage.fin-1 .f1,.xp-stage.fin-2 .f2{opacity:1}
.xp-finishes{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.xp-chip{font-family:var(--tk-sans);font-size:14.5px;font-weight:700;padding:10px 16px;min-height:44px;border-radius:999px;border:1.5px solid var(--tk-line);background:#fff;color:var(--tk-ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.xp-chip:hover{border-color:var(--tk-ink)}
.xp-chip[aria-pressed="true"]{background:var(--tk-ink);border-color:var(--tk-ink);color:#fff}
.xp-note::before{background:var(--tk-green)!important}
.xp.xp-on{height:380vh!important}
.xp.xp-on .xp-note{position:static!important;margin-top:10px!important;max-width:none!important}
.xp.xp-on .xp-finishes{margin-top:56px}
@media(max-width:900px){.xp-visual{margin-top:72px!important}.xp-finishes{margin-top:40px}}

.xp-finishes{align-items:center}
.xp-fin-label{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tk-muted);margin-right:4px}
@media(max-width:600px){.xp-fin-label{flex-basis:100%;margin:0 0 2px}}
