/* Contardi Fratelli — Verde · Legna · Pellet */
:root{
  --forest:#14261a; --forest-2:#1d3524; --moss:#2e4a2f;
  --leaf:#3fa93b; --leaf-2:#5cc456; --leaf-soft:#dcefd3;
  --bark:#9a6434; --bark-soft:#efe1cf;
  --ember:#e0702a; --ember-2:#f39a4c; --ember-soft:#fbe3cf;
  --cream:#f5f1e7; --paper:#fbf9f3; --ink:#18201a; --ink-2:#4b564d; --line:#dcd6c6;
  --r:22px; --r-sm:14px;
  --wrap:1280px; --gut:clamp(16px,4vw,48px);
  --serif:"Fraunces",Georgia,serif; --sans:"Manrope",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:400 17px/1.65 var(--sans);overflow-x:hidden}
img,video{max-width:100%;display:block}
img{height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.04;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(44px,7.4vw,112px)}
h2{font-size:clamp(34px,4.8vw,72px)}
h3{font-size:clamp(22px,2vw,30px)}
em{font-style:italic;font-weight:400}
p{margin:0 0 1em}
.sr-only{position:absolute;left:-9999px}
.sr-only:focus{left:12px;top:12px;z-index:999;background:#fff;padding:8px 14px;border-radius:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
[data-lucide]{width:1.1em;height:1.1em;stroke-width:1.8}
.lucide{width:1.1em;height:1.1em;stroke-width:1.8;flex:none}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.55em;padding:.78em 1.25em;border-radius:999px;font:600 15px/1 var(--sans);border:1.5px solid transparent;transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s;white-space:nowrap;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn--leaf{background:var(--leaf);color:#fff}
.btn--leaf:hover{background:var(--leaf-2)}
.btn--ember{background:var(--ember);color:#fff}
.btn--ember:hover{background:var(--ember-2)}
.btn--ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);color:#fff}
.btn--line{border-color:currentColor}
.btn--dark{background:var(--forest);color:#fff}
.btn--lg{padding:1em 1.6em;font-size:16px}
.tag{display:inline-flex;align-items:center;gap:.5em;font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.tag::before{content:"";width:22px;height:1.5px;background:currentColor}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto;z-index:50;padding:14px 0;transition:background .4s,padding .4s,box-shadow .4s;color:#fff}
.header .wrap{display:flex;align-items:center;gap:28px;max-width:1440px}
.header.is-solid{background:rgba(20,38,26,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:8px 0;box-shadow:0 10px 30px -18px rgba(0,0,0,.5)}
.logo{display:flex;align-items:center;gap:10px}
.logo img{width:46px;height:auto;background:#fff;border-radius:12px;padding:3px 4px}
.logo b{display:block;font:600 21px/1 var(--serif);letter-spacing:-.01em}
.logo small{display:block;font:600 10.5px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.nav{display:flex;gap:4px;margin-left:auto}
.nav>a,.dd>a{display:flex;align-items:center;gap:4px;padding:10px 13px;border-radius:999px;font:600 14.5px/1 var(--sans);opacity:.88;transition:background .25s,opacity .25s}
.nav>a:hover,.dd>a:hover,.nav .is-active{opacity:1;background:rgba(255,255,255,.1)}
.dd{position:relative}
.dd>a .lucide{width:14px;height:14px}
.dd-menu{position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 6px;min-width:300px;background:var(--paper);color:var(--ink);border-radius:18px;padding:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:.3s var(--ease)}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;translate:-50% 0}
.dd-menu a{display:block;padding:11px 14px 11px 58px;border-radius:12px;transition:background .2s}
.dd-menu a:hover{background:var(--cream)}
.dd-menu b{display:block;font-weight:700;font-size:15px}
.dd-menu small{color:var(--ink-2);font-size:13px}
.dd-ic{position:absolute;left:20px;top:20px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--leaf)}
.dd-pellet .dd-ic{background:var(--ember)}
.h-right{display:flex;gap:8px;align-items:center;margin-left:auto}
.nav+.h-right{margin-left:0}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.12);position:relative;cursor:pointer}
.burger span{position:absolute;left:14px;right:14px;height:2px;background:#fff;transition:.35s var(--ease)}
.burger span:first-child{top:19px}.burger span:last-child{top:26px}
.menu-open .burger span:first-child{top:22px;rotate:45deg}
.menu-open .burger span:last-child{top:22px;rotate:-45deg}
.mmenu{position:fixed;inset:0;z-index:40;background:var(--forest);color:#fff;padding:96px var(--gut) 28px;display:flex;flex-direction:column;justify-content:space-between;clip-path:circle(0 at calc(100% - 40px) 40px);transition:clip-path .7s var(--ease);overflow:auto}
.menu-open .mmenu{clip-path:circle(150% at calc(100% - 40px) 40px)}
.mmenu nav a{display:flex;align-items:baseline;gap:14px;font:500 clamp(30px,8vw,44px)/1.25 var(--serif)}
.mmenu nav a span{font:600 12px var(--sans);opacity:.5}
.mmenu nav a.sub{font:500 17px/2 var(--sans);opacity:.75;padding-left:34px}
.m-foot{display:grid;gap:10px;margin-top:30px;font-size:14px;opacity:.95}
.m-foot .btn{justify-content:center}

/* ---------- Hero (home) ---------- */
.hero{position:relative;min-height:100svh;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:var(--forest)}
.hero-media{position:absolute;inset:0}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,26,18,.55) 0%,rgba(14,26,18,.15) 35%,rgba(14,26,18,.75) 78%,rgba(14,26,18,.95) 100%)}
.hero-inner{position:relative;padding-top:140px;padding-bottom:34px}
.hero .season{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);font:600 13.5px/1.2 var(--sans);margin-bottom:26px}
.season b{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ember)}
.season[data-s="verde"] b{background:var(--leaf)}
.hero h1{max-width:13ch}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.hero h1 .w>span{display:inline-block}
.hero h1 em{color:var(--leaf-2)}
.hero h1 em.warm{color:var(--ember-2)}
.hero-sub{max-width:560px;font-size:clamp(16px,1.4vw,19px);opacity:.9;margin:22px 0 0}
.pillars{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:44px}
.pillar{position:relative;display:flex;gap:16px;align-items:center;padding:16px 18px;border-radius:var(--r);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .35s,transform .45s var(--ease)}
.pillar:hover{background:rgba(255,255,255,.18);transform:translateY(-4px)}
.pillar .n{font:500 13px var(--sans);opacity:.6}
.pillar .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:none;font-size:22px}
.pillar--verde .ic{background:var(--leaf)}
.pillar--legna .ic{background:var(--bark)}
.pillar--pellet .ic{background:var(--ember)}
.pillar b{display:block;font:500 22px/1.1 var(--serif)}
.pillar small{opacity:.75;font-size:13.5px}
.pillar .go{margin-left:auto;opacity:.6;transition:.3s}
.pillar:hover .go{opacity:1;translate:3px -3px}
.scroll-hint{position:absolute;right:var(--gut);bottom:40%;writing-mode:vertical-rl;font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;opacity:.6}

/* ---------- Page hero (inner) ---------- */
.phero{position:relative;color:#fff;min-height:78svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--forest)}
.phero-media{position:absolute;inset:-6% 0 0}
.phero-media img,.phero-media video{width:100%;height:100%;object-fit:cover}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,26,18,.5),rgba(14,26,18,.1) 40%,rgba(14,26,18,.88))}
.phero .wrap{position:relative;z-index:2;padding-top:150px;padding-bottom:56px;width:100%}
.phero h1{font-size:clamp(42px,6.4vw,96px);max-width:16ch}
.phero p{max-width:600px;font-size:18px;opacity:.9;margin-top:18px}
.crumbs{font:600 12.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;opacity:.75;margin-bottom:20px;display:flex;gap:8px;align-items:center}
.phero--short{min-height:52svh}
.phero--pellet h1 em{color:var(--ember-2)}
.phero--verde h1 em{color:var(--leaf-2)}
.phero--legna h1 em{color:#e9b57a}

/* ---------- Sections ---------- */
.sec{padding:clamp(80px,11vw,150px) 0}
.sec--tight{padding:clamp(56px,7vw,96px) 0}
.sec--dark{background:var(--forest);color:#f1efe6}
.sec--paper{background:var(--paper)}
.sec--ember{background:#2a1a10;color:#f8ece0}
.sec-head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:clamp(40px,5vw,70px)}
.sec-head .tag{margin-bottom:18px}
.sec-head p{color:var(--ink-2);font-size:18px;margin:0}
.sec--dark .sec-head p,.sec--ember .sec-head p{color:rgba(241,239,230,.75)}
.t-leaf{color:var(--leaf)} .t-ember{color:var(--ember)} .t-bark{color:var(--bark)}
.sec--dark .t-leaf{color:var(--leaf-2)}

/* Intro manifesto */
.manifesto{font:400 clamp(28px,3.6vw,54px)/1.18 var(--serif);letter-spacing:-.015em;max-width:22ch}
.manifesto .wd{opacity:.18;transition:opacity .2s}
.intro-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(30px,6vw,90px);align-items:start}
.intro-aside{display:grid;gap:18px;padding-top:12px}
.intro-aside p{color:var(--ink-2)}
.brothers{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line)}
.brothers img{width:66px;height:66px;border-radius:50%;object-fit:cover}
.brothers b{display:block;font:500 19px var(--serif)}
.brothers small{color:var(--ink-2)}

/* Ciclo (orizzontale) */
.cycle{background:var(--forest);color:#fff;overflow:hidden}
.cycle-pin{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:110px 0 60px}
.cycle-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}
.cycle-head p{max-width:420px;opacity:.75;margin:0}
.cycle-track{display:flex;gap:22px;padding-left:var(--gut);will-change:transform}
.cstep{flex:0 0 clamp(290px,34vw,470px);border-radius:var(--r);overflow:hidden;background:var(--forest-2);position:relative}
.cstep figure{margin:0;aspect-ratio:4/5;overflow:hidden}
.cstep figure img,.cstep figure video{width:100%;height:100%;object-fit:cover}
.cstep .cap{position:absolute;inset:auto 0 0;padding:26px;background:linear-gradient(transparent,rgba(10,20,12,.92) 45%)}
.cstep .num{font:500 64px/1 var(--serif);opacity:.25;position:absolute;top:16px;left:22px;color:#fff}
.cstep h3{margin-bottom:8px}
.cstep p{margin:0;opacity:.8;font-size:15px}
.cstep .chip{display:inline-block;margin-bottom:12px;font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:999px;background:var(--leaf)}
.cstep--legna .chip{background:var(--bark)}
.cstep--pellet .chip{background:var(--ember)}
.cstep--end{display:flex;flex-direction:column;justify-content:center;padding:40px;background:var(--leaf);color:#0d1f10}
.cstep--end h3{font-size:clamp(30px,3vw,46px);margin-bottom:22px}
.cycle-bar{height:2px;background:rgba(255,255,255,.15);margin:34px var(--gut) 0;position:relative}
.cycle-bar i{position:absolute;inset:0 auto 0 0;width:0;background:var(--leaf-2)}

/* Servizi verde */
.svc-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.svc{position:relative;border-radius:var(--r);overflow:hidden;background:var(--forest);color:#fff;min-height:340px;display:flex;align-items:flex-end;isolation:isolate}
.svc>img,.svc>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.svc::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 30%,rgba(10,22,12,.9))}
.svc:hover>img,.svc:hover>video{transform:scale(1.06)}
.svc .in{padding:24px;width:100%}
.svc h3{margin-bottom:6px}
.svc p{margin:0;opacity:.82;font-size:15px;max-width:44ch}
.svc .k{position:absolute;top:18px;left:18px;font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);padding:7px 11px;border-radius:999px}
.svc--xl{grid-column:span 7;min-height:520px}
.svc--l{grid-column:span 5;min-height:520px}
.svc--m{grid-column:span 4}
.svc--h{grid-column:span 6}
.svc .play{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);backdrop-filter:blur(6px)}

/* Lista servizi testuale */
.svc-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.svc-list li{list-style:none;padding:26px 24px 26px 0;border-bottom:1px solid var(--line);display:flex;gap:16px}
.svc-list ul{margin:0;padding:0;display:contents}
.svc-list .ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--leaf-soft);color:var(--moss);font-size:20px}
.svc-list b{display:block;font:500 20px/1.2 var(--serif);margin-bottom:4px}
.svc-list span{color:var(--ink-2);font-size:15px}
.sec--dark .svc-list{border-color:rgba(255,255,255,.14)}
.sec--dark .svc-list li{border-color:rgba(255,255,255,.14)}
.sec--dark .svc-list span{color:rgba(241,239,230,.7)}
.sec--dark .svc-list .ic{background:rgba(92,196,86,.15);color:var(--leaf-2)}

/* Mezzi */
.fleet{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fleet-i{padding:26px;border-radius:var(--r);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.03)}
.fleet-i .ic{font-size:26px;color:var(--leaf-2);margin-bottom:40px}
.fleet-i b{display:block;font:500 22px/1.15 var(--serif);margin-bottom:8px}
.fleet-i span{font-size:14.5px;opacity:.7}

/* Calore: legna + pellet */
.heat{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.heat-card{position:relative;border-radius:28px;overflow:hidden;min-height:620px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate}
.heat-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.4s var(--ease)}
.heat-card:hover>img{transform:scale(1.05)}
.heat-card::before{content:"";position:absolute;inset:0;z-index:-1}
.heat-card--legna::before{background:linear-gradient(180deg,rgba(40,22,8,.1),rgba(40,22,8,.92) 70%)}
.heat-card--pellet::before{background:linear-gradient(180deg,rgba(42,20,6,.1),rgba(42,20,6,.92) 70%)}
.heat-card .in{padding:clamp(26px,3.4vw,44px)}
.heat-card h3{font-size:clamp(34px,3.6vw,54px);margin:14px 0 14px}
.heat-card p{opacity:.85;max-width:46ch}
.heat-card .specs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.heat-card .specs span{padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font:600 13px var(--sans)}
.heat-card .links{display:flex;flex-wrap:wrap;gap:10px}

/* Gallery */
.gal{columns:4 260px;column-gap:14px}
.gal a{display:block;margin-bottom:14px;border-radius:var(--r-sm);overflow:hidden;break-inside:avoid;position:relative}
.gal img{width:100%;transition:transform 1s var(--ease)}
.gal a:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:10px;bottom:10px;background:rgba(14,26,18,.75);color:#fff;font:600 12.5px var(--sans);padding:6px 10px;border-radius:999px;opacity:0;translate:0 6px;transition:.35s}
.gal a:hover figcaption{opacity:1;translate:0 0}
.lb{position:fixed;inset:0;z-index:100;background:rgba(8,14,10,.94);display:none;place-items:center;padding:30px}
.lb.on{display:grid}
.lb img,.lb video{max-height:86vh;max-width:92vw;border-radius:12px}
.lb button{position:absolute;top:18px;right:18px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;cursor:pointer;font-size:20px}
.lb p{color:#fff;position:absolute;bottom:18px;left:0;right:0;text-align:center;opacity:.8;margin:0}

/* Video reel */
.reel{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:16px;align-items:stretch}
.reel button{all:unset;cursor:pointer;position:relative;border-radius:var(--r);overflow:hidden;background:#000;min-height:300px;display:block}
.reel video{width:100%;height:100%;object-fit:cover;opacity:.9}
.reel .lab{position:absolute;inset:auto 0 0;padding:18px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;font:600 15px var(--sans);display:flex;justify-content:space-between;align-items:center}
.reel .lab i{width:38px;height:38px}
.reel .tall{grid-row:span 2}

/* Clienti / enti */
.clients{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.client{padding:32px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line)}
.client .ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:var(--forest);color:var(--leaf-2);font-size:24px;margin-bottom:46px}
.client h3{margin-bottom:10px}
.client p{color:var(--ink-2);margin:0}

/* Zone */
.zones{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.zones span{padding:12px 20px;border-radius:999px;border:1.5px solid var(--line);font:600 15px var(--sans);background:var(--paper)}
.zones span.home{background:var(--forest);color:#fff;border-color:var(--forest)}

/* Marquee */
.marq{overflow:hidden;padding:26px 0;background:var(--leaf);color:#0d200f;white-space:nowrap}
.marq-in{display:inline-flex;gap:40px;font:500 clamp(28px,3.4vw,48px)/1 var(--serif);animation:marq 38s linear infinite}
.marq-in span{display:inline-flex;align-items:center;gap:40px}
.marq-in span::after{content:"✦";font-size:.5em;opacity:.6}
@keyframes marq{to{transform:translateX(-50%)}}

/* Split content */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}
.split--rev>:first-child{order:2}
.split figure{margin:0;border-radius:28px;overflow:hidden;position:relative}
.split figure img{width:100%;aspect-ratio:4/5;object-fit:cover}
.split .badge{position:absolute;left:18px;bottom:18px;background:var(--paper);color:var(--ink);padding:12px 16px;border-radius:14px;font:600 14px var(--sans);display:flex;gap:10px;align-items:center}
.prose p{color:var(--ink-2);font-size:17.5px}
.sec--dark .prose p{color:rgba(241,239,230,.78)}
.prose h2{margin:16px 0 26px}
.checks{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start}
.checks li .lucide{color:var(--leaf);margin-top:4px}
.t-ember-list .checks li .lucide,.checks.ember li .lucide{color:var(--ember)}

/* Spec table */
.spec{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.spec div{background:var(--paper);padding:26px 22px}
.spec small{display:block;font:700 11.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
.spec b{font:500 clamp(22px,2.2vw,32px)/1.1 var(--serif)}
.spec--ember b{color:#a4471a}

/* Advantages */
.adv{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.adv-i{padding:30px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line)}
.adv-i .ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:var(--ember-soft);color:#b3501c;font-size:22px;margin-bottom:28px}
.adv-i h3{font-size:24px;margin-bottom:10px}
.adv-i p{color:var(--ink-2);margin:0;font-size:15.5px}
.adv--leaf .adv-i .ic{background:var(--leaf-soft);color:var(--moss)}
.adv--bark .adv-i .ic{background:var(--bark-soft);color:var(--bark)}

/* Calcolatore */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:28px;overflow:hidden;background:#2a1a10;color:#f8ece0}
.calc-in{padding:clamp(28px,4vw,54px)}
.calc label{display:block;font:600 14px var(--sans);margin:22px 0 10px;opacity:.85}
.calc input[type=range]{width:100%;accent-color:var(--ember)}
.calc .val{float:right;font:500 18px var(--serif);color:var(--ember-2)}
.calc-out{background:var(--ember);color:#24130a;padding:clamp(28px,4vw,54px);display:flex;flex-direction:column;justify-content:center}
.calc-out .big{font:500 clamp(70px,9vw,140px)/.9 var(--serif);letter-spacing:-.04em}
.calc-out p{margin:12px 0 22px;font-size:17px}
.calc small{opacity:.7;font-size:13px}

/* Product switch */
.pswitch{display:inline-flex;padding:5px;border-radius:999px;background:rgba(255,255,255,.12);margin-top:26px;gap:4px;backdrop-filter:blur(8px)}
.pswitch a{padding:10px 16px;border-radius:999px;font:600 14px var(--sans)}
.pswitch a.on{background:#fff;color:var(--ink)}

/* Timeline chi siamo */
.vals{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.val-i{border-top:2px solid var(--forest);padding-top:22px}
.val-i b{display:block;font:500 26px/1.1 var(--serif);margin-bottom:10px}
.val-i p{color:var(--ink-2);margin:0;font-size:15.5px}

/* Blog */
.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.post{display:block;border-radius:28px;overflow:hidden;background:var(--paper);border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s}
.post:hover{transform:translateY(-6px);box-shadow:0 30px 60px -30px rgba(20,38,26,.4)}
.post figure{margin:0;aspect-ratio:16/10;overflow:hidden}
.post figure img{width:100%;height:100%;object-fit:cover}
.post .in{padding:28px 30px 34px}
.post .meta{display:flex;gap:12px;font:600 13px var(--sans);color:var(--ink-2);margin-bottom:14px}
.post .meta .cat{color:var(--leaf)}
.post--pellet .meta .cat{color:var(--ember)}
.post h3{font-size:clamp(26px,2.4vw,36px);margin-bottom:12px}
.post p{color:var(--ink-2);margin:0}
.article{max-width:760px;margin:0 auto}
.article p,.article li{font-size:18.5px;line-height:1.75;color:#2f3a31}
.article h2{font-size:clamp(28px,3vw,40px);margin:52px 0 18px}
.article ul,.article ol{padding-left:1.2em;display:grid;gap:10px;margin:0 0 1.2em}
.article figure{margin:40px -60px;border-radius:24px;overflow:hidden}
.article .lead{font:400 clamp(22px,2.2vw,28px)/1.45 var(--serif);color:var(--ink)}
.article-cta{margin-top:60px;padding:36px;border-radius:28px;background:var(--forest);color:#fff;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;align-items:center}
.article-cta h3{max-width:22ch}

/* Contatti */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,70px)}
.people{display:grid;gap:14px}
.person{display:flex;align-items:center;gap:18px;padding:22px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line);transition:border-color .3s,transform .4s var(--ease)}
.person:hover{border-color:var(--leaf);transform:translateX(4px)}
.person .av{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;font:500 24px var(--serif);flex:none}
.person b{display:block;font:500 22px var(--serif)}
.person small{color:var(--ink-2);font-size:14px}
.person .go{margin-left:auto;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--leaf);color:#fff}
.form{padding:clamp(26px,3.5vw,46px);border-radius:28px;background:var(--forest);color:#fff}
.form h3{margin-bottom:8px}
.form>p{opacity:.75}
.topics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 8px}
.topics label{cursor:pointer}
.topics input{position:absolute;opacity:0}
.topics span{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;border:1.5px solid rgba(255,255,255,.18);font:600 14.5px/1.2 var(--sans);transition:.25s}
.topics span .lucide{width:22px;height:22px}
.topics input:checked+span{background:#fff;color:var(--ink);border-color:#fff}
.topics input:focus-visible+span{outline:2px solid var(--leaf-2);outline-offset:2px}
.field{display:block;margin-top:16px}
.field span{display:block;font:600 13px var(--sans);opacity:.75;margin-bottom:8px}
.field input,.field textarea,.field select{width:100%;padding:14px 16px;border-radius:14px;border:1.5px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff;font:500 16px var(--sans)}
.field select option{color:#000}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--leaf-2)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.form .note{font-size:13px;opacity:.6;margin-top:14px}
.map{margin-top:18px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:var(--paper)}
.map iframe{width:100%;height:100%;border:0}

/* CTA band */
.band{border-radius:32px;padding:clamp(34px,5vw,70px);background:var(--leaf);color:#0b1d0d;display:grid;grid-template-columns:1.3fr .7fr;gap:30px;align-items:end;position:relative;overflow:hidden}
.band h2{font-size:clamp(34px,4.4vw,64px)}
.band .acts{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.band--ember{background:var(--ember);color:#24130a}
.band--bark{background:#c9935b;color:#24130a}

/* ---------- Footer ---------- */
.footer{background:#0e1b12;color:#e7e6dc;padding:90px 0 30px}
.f-cta{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:end;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.12)}
.f-claim{font:400 clamp(44px,7vw,110px)/.95 var(--serif);letter-spacing:-.03em;margin:0}
.f-claim em{color:var(--ember-2)}
.f-cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding:56px 0 40px}
.f-brand img{width:110px;margin-bottom:18px}
.f-brand p{opacity:.65;font-size:15px;max-width:34ch}
.footer h5{font:700 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;opacity:.5;margin:0 0 16px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:15px}
.footer ul a:hover{color:var(--leaf-2)}
.f-zones{padding:20px 0;border-top:1px solid rgba(255,255,255,.12);font-size:14px;opacity:.7}
.f-zones span{font-weight:700;margin-right:8px;color:var(--leaf-2)}
.f-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;opacity:.55;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.fab-wa{position:fixed;right:18px;bottom:18px;z-index:45;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.45);font-size:26px;transition:transform .3s}
.fab-wa:hover{transform:scale(1.08)}

/* Reveal */
.rv{opacity:0;transform:translateY(34px)}
.no-anim .rv,.reduced .rv{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .nav,.h-wa{display:none}
  .nav+.h-right{margin-left:auto}
  .burger{display:block}
  .fleet{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  body{font-size:16px}
  .sec-head,.intro-grid,.split,.contact,.band,.calc,.heat{grid-template-columns:1fr}
  .split--rev>:first-child{order:0}
  .pillars{grid-template-columns:1fr;gap:10px;margin-top:30px}
  .pillar{padding:12px 14px}
  .pillar .ic{width:44px;height:44px}
  .svc-grid{grid-template-columns:1fr}
  .svc--xl,.svc--l,.svc--m,.svc--h{grid-column:auto;min-height:360px}
  .svc-list{grid-template-columns:1fr}
  .clients,.adv,.posts{grid-template-columns:1fr}
  .vals,.spec{grid-template-columns:repeat(2,1fr)}
  .reel{grid-template-columns:1fr 1fr}
  .reel .wide{grid-column:span 2}
  .reel .tall{grid-row:auto}
  .heat-card{min-height:520px}
  .f-grid{grid-template-columns:1fr 1fr}
  .article figure{margin:30px 0}
  .scroll-hint{display:none}
  .cycle-pin{min-height:auto;padding:90px 0 70px}
  .cycle-head{flex-direction:column;align-items:flex-start}
  .cycle-track{overflow-x:auto;scroll-snap-type:x mandatory;padding-right:var(--gut);scrollbar-width:none}
  .cycle-track::-webkit-scrollbar{display:none}
  .cstep{flex-basis:82vw;scroll-snap-align:start}
  .cycle-bar{display:none}
}
@media (max-width:560px){
  .header .btn--leaf span{display:none}
  .header .btn--leaf{padding:.8em}
  .logo small{display:none}

  .f-row{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr 1fr}
  .vals{grid-template-columns:1fr}
  .reel{grid-template-columns:1fr}
  .reel .wide{grid-column:auto}
  .fab-wa{width:52px;height:52px}
}
@media (prefers-reduced-motion:reduce){
  .marq-in{animation:none}
  *{transition-duration:.01ms!important}
}
.no-anim .cycle-track{overflow-x:auto;padding-right:var(--gut);scrollbar-width:thin}
.contact>*{min-width:0}
.person>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.topics{grid-template-columns:repeat(3,1fr)}.topics span{padding:12px 10px;font-size:13px}}
.fleet>*{min-width:0}
@media (max-width:560px){.fleet{grid-template-columns:1fr}.fleet-i .ic{margin-bottom:18px}.crumbs{flex-wrap:wrap}}
.map-btn{all:unset;box-sizing:border-box;cursor:pointer;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;background:linear-gradient(135deg,var(--leaf-soft),var(--paper))}
.map-btn .lucide{width:34px;height:34px;color:var(--leaf)}
.map-btn b{font:500 22px var(--serif)}
.map-btn small{color:var(--ink-2);font-size:13px}
.map-btn a{text-decoration:underline}
.article a{text-decoration:underline;text-decoration-color:var(--leaf)}
