
/* ════════════════════════════════════
   VARIABLES
════════════════════════════════════ */
:root {
  --bianco:   #ffffff;
  --crema:    #faf8f3;
  --crema2:   #f2ebe0;
  --verde:    #1e4620;
  --verde2:   #2d6630;
  --verde3:   #4a8c42;
  --verde4:   #d4e8d0;
  --terra:    #8B2E0A;
  --terra2:   #c44520;
  --oro:      #c8a96e;
  --oro2:     #e8d5aa;
  --grigio:   #6b6760;
  --bordo:    #e4ddd1;
  --nero:     #1a1a1a;
  --testo:    #1c1c1c;
  /* legacy aliases for sections from old landing */
  --verde-chiaro: #4a8c42;
  --verde-pallido: #d4e8d0;
  --terra-chiaro: #c44520;
  --grigio-chiaro: #e4ddd1;
  --oro-chiaro: #e8d5aa;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; cursor:none !important; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { background:var(--bianco); color:var(--testo); font-family:'Montserrat',sans-serif; overflow-x:hidden; }

/* ════════════════════════════════════
   CURSOR
════════════════════════════════════ */
#cur { position:fixed; width:10px; height:10px; border-radius:50%; background:var(--verde); pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s,background .3s; mix-blend-mode:multiply; }
#cur-ring { position:fixed; width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(30,70,32,.3); pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .35s,height .35s; }

/* ════════════════════════════════════
   NAV
════════════════════════════════════ */
nav { position:fixed; top:0; left:0; right:0; z-index:900; padding:22px 64px; display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,.0); backdrop-filter:blur(0); transition:all .5s cubic-bezier(.16,1,.3,1); }
nav.scrolled { padding:14px 64px; background:rgba(255,255,255,.97); backdrop-filter:blur(16px); border-bottom:1px solid var(--bordo); box-shadow:0 2px 28px rgba(0,0,0,.06); }
.nav-logo { display:flex; align-items:center; gap:14px; text-decoration:none; }
.nav-logo img { height:44px; width:44px; object-fit:contain; }
.nav-logo-text .name { font-family:'Cormorant Garamond',serif; font-size:16px; font-weight:700; color:var(--nero); letter-spacing:1px; text-transform:uppercase; }
.nav-logo-text .sub { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); }
.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); text-decoration:none; transition:color .3s; position:relative; padding-bottom:3px; }
.nav-links a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--verde); transition:width .35s; }
.nav-links a:hover { color:var(--verde); }
.nav-links a:hover::after { width:100%; }
.nav-cta { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--bianco); background:var(--terra); padding:13px 28px; text-decoration:none; transition:background .3s,transform .2s; }
.nav-cta:hover { background:var(--terra2); transform:translateY(-1px); }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:4px; }
.hamburger span { width:22px; height:1px; background:var(--testo); display:block; }

/* ════════════════════════════════════
   HERO (ANIMATED)
════════════════════════════════════ */
#hero { min-height:100vh; display:grid; grid-template-columns:1fr 1fr; position:relative; overflow:hidden; background:var(--crema); }

.hero-blob { position:absolute; z-index:0; pointer-events:none; border-radius:60% 40% 70% 30%/40% 60% 30% 70%; animation:blobMorph 12s ease-in-out infinite; }
.hero-blob.b1 { width:600px; height:600px; top:-100px; right:-100px; background:radial-gradient(ellipse,rgba(45,102,48,.08) 0%,transparent 70%); }
.hero-blob.b2 { width:400px; height:400px; bottom:-60px; left:32%; background:radial-gradient(ellipse,rgba(200,169,110,.1) 0%,transparent 70%); animation-delay:-5s; }
.hero-blob.b3 { width:300px; height:300px; top:40%; left:-50px; background:radial-gradient(ellipse,rgba(139,46,10,.06) 0%,transparent 70%); animation-delay:-8s; }
@keyframes blobMorph { 0%,100%{border-radius:60% 40% 70% 30%/40% 60% 30% 70%;transform:scale(1) rotate(0deg)} 33%{border-radius:40% 60% 30% 70%/60% 30% 70% 40%;transform:scale(1.05) rotate(3deg)} 66%{border-radius:70% 30% 50% 50%/30% 70% 40% 60%;transform:scale(.97) rotate(-2deg)} }

.hero-left { display:flex; flex-direction:column; justify-content:center; padding:110px 60px 80px 64px; position:relative; z-index:2; }

.hero-eyebrow { font-size:9px; letter-spacing:5px; text-transform:uppercase; color:var(--verde3); margin-bottom:32px; display:flex; align-items:center; gap:14px; opacity:0; animation:slideInLeft .8s cubic-bezier(.16,1,.3,1) .3s forwards; }
.hero-eyebrow::before { content:''; width:28px; height:1px; background:var(--verde3); }

.hero-h1 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(54px,5.8vw,86px); line-height:.97; color:var(--testo); letter-spacing:-1px; margin-bottom:36px; }
.hero-h1 .line { display:block; overflow:hidden; }
.hero-h1 .line span { display:block; transform:translateY(110%); animation:lineUp .9s cubic-bezier(.16,1,.3,1) forwards; }
.hero-h1 .line:nth-child(1) span { animation-delay:.5s; }
.hero-h1 .line:nth-child(2) span { animation-delay:.65s; }
.hero-h1 .line:nth-child(3) span { animation-delay:.8s; }
.hero-h1 .line:nth-child(4) span { animation-delay:.95s; }
.hero-h1 em { font-style:italic; color:var(--verde2); }
.hero-h1 .accent { color:var(--terra); font-weight:600; }

.hero-body { font-size:15px; line-height:1.9; color:var(--grigio); max-width:420px; margin-bottom:48px; opacity:0; animation:fadeUp .8s cubic-bezier(.16,1,.3,1) 1.2s forwards; }

.hero-ctas { display:flex; align-items:center; gap:24px; opacity:0; animation:fadeUp .8s cubic-bezier(.16,1,.3,1) 1.4s forwards; }
.btn-primary { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--bianco); background:var(--verde); padding:16px 36px; text-decoration:none; transition:all .3s; position:relative; overflow:hidden; display:inline-block; }
.btn-primary::before { content:''; position:absolute; inset:0; background:var(--verde2); transform:translateX(-101%); transition:transform .35s cubic-bezier(.16,1,.3,1); }
.btn-primary:hover::before { transform:translateX(0); }
.btn-primary span, .btn-primary { position:relative; z-index:1; }
.btn-secondary { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--testo); text-decoration:none; border-bottom:1px solid var(--bordo); padding-bottom:3px; transition:all .3s; }
.btn-secondary:hover { color:var(--verde); border-color:var(--verde); }

.hero-stats { display:flex; gap:40px; margin-top:56px; padding-top:40px; border-top:1px solid var(--bordo); opacity:0; animation:fadeUp .8s cubic-bezier(.16,1,.3,1) 1.6s forwards; }
.h-stat .n { font-family:'Cormorant Garamond',serif; font-size:40px; font-weight:600; color:var(--verde); display:block; line-height:1; }
.h-stat .l { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); margin-top:4px; }

.scroll-hint { position:absolute; bottom:36px; left:64px; display:flex; align-items:center; gap:12px; opacity:0; animation:fadeIn 1s ease 2s forwards; }
.scroll-line { width:1px; height:48px; background:linear-gradient(to bottom,var(--verde2),transparent); animation:scrollAnim 2s ease-in-out infinite; }
.scroll-hint span { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--grigio); writing-mode:vertical-rl; }
@keyframes scrollAnim { 0%,100%{transform:scaleY(1);opacity:1} 50%{transform:scaleY(.5);opacity:.4} }

/* Hero right */
.hero-right { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; padding:80px 40px 80px 20px; opacity:0; animation:fadeIn .6s ease .4s forwards; }
.hero-scene { width:100%; max-width:580px; position:relative; }
.hero-scene svg { width:100%; height:auto; }

/* Hero SVG animations */
.sun-core   { animation:sunPulse 4s ease-in-out infinite; transform-origin:490px 120px; }
.sun-ray    { animation:rayRotate 20s linear infinite; transform-origin:490px 120px; }
.cloud1     { animation:cloudDrift 18s ease-in-out infinite; }
.cloud2     { animation:cloudDrift 24s ease-in-out infinite reverse; }
.leaf-l     { animation:leafSway 5s ease-in-out infinite; transform-origin:238px 380px; }
.leaf-r     { animation:leafSwayR 5.5s ease-in-out infinite; transform-origin:240px 360px; }
.water-drop { animation:dropFall 3s ease-in-out infinite; }
.water-drop.d2 { animation-delay:.8s; }
.water-drop.d3 { animation-delay:1.6s; }
.greenhouse { animation:gHouseGlow 4s ease-in-out infinite; }
.plant-row  { animation:plantGrow 6s ease-in-out infinite; transform-origin:50% 100%; }
.circuit-line { animation:circuitPulse 3s ease-in-out infinite; }
.circuit-line.c2 { animation-delay:1s; }
.circuit-line.c3 { animation-delay:2s; }
.ground-shine { animation:groundShine 6s ease-in-out infinite; }
.hill-l   { animation:hillBreath 8s ease-in-out infinite; transform-origin:50% 100%; }
.hill-r   { animation:hillBreath 10s ease-in-out infinite reverse; transform-origin:50% 100%; }
.bottle   { animation:bottleFloat 4s ease-in-out infinite; }
.bg-circle { animation:circlePulse 7s ease-in-out infinite; transform-origin:50% 50%; }
@keyframes sunPulse    { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
@keyframes rayRotate   { to{transform:rotate(360deg)} }
@keyframes cloudDrift  { 0%,100%{transform:translateX(0)} 50%{transform:translateX(30px)} }
@keyframes leafSway    { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(6deg)} }
@keyframes leafSwayR   { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(-7deg)} }
@keyframes dropFall    { 0%{transform:translateY(0);opacity:1} 80%{transform:translateY(14px);opacity:.2} 100%{transform:translateY(0);opacity:0} }
@keyframes gHouseGlow  { 0%,100%{opacity:.9} 50%{opacity:1} }
@keyframes plantGrow   { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(1.04)} }
@keyframes circuitPulse{ 0%,100%{opacity:.3} 50%{opacity:.9} }
@keyframes groundShine { 0%,100%{opacity:.2} 50%{opacity:.5} }
@keyframes hillBreath  { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(1.015)} }
@keyframes bottleFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes circlePulse { 0%,100%{transform:scale(1);opacity:.08} 50%{transform:scale(1.1);opacity:.14} }

.hero-chip { position:absolute; background:white; border-radius:8px; padding:12px 18px; box-shadow:0 8px 36px rgba(0,0,0,.10),0 1px 4px rgba(0,0,0,.06); display:flex; align-items:center; gap:10px; font-size:12px; font-weight:600; color:var(--testo); white-space:nowrap; animation:chipFloat 4s ease-in-out infinite; }
.hero-chip::before { content:''; width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.hero-chip.c1 { top:14%; right:2%; animation-delay:0s; }
.hero-chip.c2 { top:42%; right:-1%; animation-delay:1.4s; }
.hero-chip.c3 { bottom:22%; right:4%; animation-delay:2.8s; }
.hero-chip.c1::before { background:var(--verde3); }
.hero-chip.c2::before { background:var(--terra); }
.hero-chip.c3::before { background:var(--oro); }
@keyframes chipFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* anims shared */
@keyframes lineUp      { to{transform:translateY(0)} }
@keyframes slideInLeft { from{opacity:0;transform:translateX(-20px)} to{opacity:1;transform:translateX(0)} }
@keyframes fadeUp      { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn      { from{opacity:0} to{opacity:1} }

/* ════════════════════════════════════
   TICKER
════════════════════════════════════ */
.ticker { background:var(--verde); padding:14px 0; overflow:hidden; }
.ticker-track { display:flex; gap:56px; white-space:nowrap; animation:ticker 32s linear infinite; }
.ticker-item { font-size:10px; letter-spacing:4px; text-transform:uppercase; color:rgba(255,255,255,.8); flex-shrink:0; }
.ticker-sep { color:rgba(255,255,255,.3); }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ════════════════════════════════════
   CHI SIAMO
════════════════════════════════════ */
#chi-siamo { padding:140px 64px; background:var(--bianco); position:relative; overflow:hidden; }
#chi-siamo::before { content:'GISA'; font-family:'Cormorant Garamond',serif; font-size:28vw; font-weight:700; color:rgba(0,0,0,.025); position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none; white-space:nowrap; letter-spacing:-4px; user-select:none; }

.chi-inner { display:grid; grid-template-columns:1fr 1.1fr; gap:100px; align-items:start; position:relative; z-index:1; }

.section-eyebrow { font-size:9px; letter-spacing:5px; text-transform:uppercase; color:var(--verde3); display:flex; align-items:center; gap:14px; margin-bottom:28px; }
.section-eyebrow::after { content:''; flex:1; max-width:40px; height:1px; background:var(--verde3); }

.chi-title { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4vw,58px); font-weight:400; line-height:1.1; color:var(--testo); margin-bottom:36px; }
.chi-title em { font-style:italic; color:var(--verde2); }
.chi-title strong { font-weight:700; }

.chi-body { font-size:15px; line-height:1.95; color:var(--grigio); margin-bottom:26px; }

.chi-quote { border-left:3px solid var(--verde3); padding:20px 28px; margin:36px 0; background:var(--crema); }
.chi-quote p { font-family:'Cormorant Garamond',serif; font-size:22px; font-style:italic; font-weight:400; color:var(--verde); line-height:1.55; }
.chi-quote cite { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); margin-top:10px; display:block; }

.founders { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:48px; }
.founder-card { padding:24px; background:var(--crema); border:1px solid var(--bordo); transition:all .4s cubic-bezier(.16,1,.3,1); position:relative; overflow:hidden; }
.founder-card::before { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--verde); transform:scaleX(0); transition:transform .4s; }
.founder-card:hover { background:var(--verde4); border-color:var(--verde3); transform:translateY(-3px); }
.founder-card:hover::before { transform:scaleX(1); }
.fc-icon { font-size:26px; margin-bottom:10px; }
.fc-name { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:600; color:var(--testo); margin-bottom:4px; }
.fc-role { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); }

/* Chi siamo SVG animations */
.root-path { stroke-dasharray:300; stroke-dashoffset:300; animation:drawRoot 3s ease forwards; }
.root-path.r2 { animation-delay:.4s; }
.root-path.r3 { animation-delay:.7s; }
.stem-path { stroke-dasharray:400; stroke-dashoffset:400; animation:drawStem 2s cubic-bezier(.16,1,.3,1) forwards; }
.leaf-path { opacity:0; animation:leafAppear .8s ease forwards; }
.leaf-path.l2 { animation-delay:.6s; }
.leaf-path.l3 { animation-delay:1s; }
.leaf-path.l4 { animation-delay:1.3s; }
.sprout-path { opacity:0; animation:leafAppear .6s ease 1.8s forwards; }
.drop-anim { animation:dropFall 2.5s ease-in-out infinite; }
.drop-anim.d2 { animation-delay:1s; }
.drop-anim.d3 { animation-delay:2s; }
.ring-pulse { animation:ringPulse 3s ease-in-out infinite; transform-origin:center; }
@keyframes drawRoot    { to{stroke-dashoffset:0} }
@keyframes drawStem    { to{stroke-dashoffset:0} }
@keyframes leafAppear  { from{opacity:0;transform:scale(.5)} to{opacity:1;transform:scale(1)} }
@keyframes ringPulse   { 0%,100%{transform:scale(1);opacity:.08} 50%{transform:scale(1.15);opacity:.18} }

.chi-right { position:relative; }
.chi-datapoint { position:absolute; background:white; border:1px solid var(--bordo); padding:14px 18px; box-shadow:0 6px 24px rgba(0,0,0,.07); transition:transform .3s; }
.chi-datapoint:hover { transform:scale(1.04); }
.chi-datapoint .val { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:600; color:var(--verde); display:block; line-height:1; }
.chi-datapoint .lbl { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); margin-top:4px; }
.chi-datapoint.dp1 { bottom:-20px; right:-20px; border-left:3px solid var(--verde); }
.chi-datapoint.dp2 { top:24px; left:-16px; border-top:3px solid var(--oro); }

/* ════════════════════════════════════
   MISSION
════════════════════════════════════ */
#mission { background:var(--crema); padding:140px 64px; position:relative; overflow:hidden; }

.mission-top { display:grid; grid-template-columns:1fr 2fr; gap:80px; align-items:start; margin-bottom:100px; }
.mission-big-num { font-family:'Cormorant Garamond',serif; font-size:140px; font-weight:700; color:rgba(30,70,32,.07); line-height:1; pointer-events:none; }
.mission-statement { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,3.2vw,46px); font-weight:400; line-height:1.35; color:var(--testo); }
.mission-statement em { font-style:italic; color:var(--verde2); }
.mission-statement strong { font-weight:700; }

.mission-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-bottom:2px; }
.pillar-card { background:var(--bianco); padding:52px 40px; position:relative; overflow:hidden; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.pillar-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; transform:scaleX(0); transition:transform .5s cubic-bezier(.16,1,.3,1); }
.pillar-card.p1::after { background:var(--verde); }
.pillar-card.p2::after { background:var(--terra); }
.pillar-card.p3::after { background:var(--oro); }
.pillar-card:hover { transform:translateY(-6px); }
.pillar-card:hover::after { transform:scaleX(1); }
.pillar-number { font-family:'Cormorant Garamond',serif; font-size:88px; font-weight:700; position:absolute; top:16px; right:24px; line-height:1; pointer-events:none; transition:opacity .4s; }
.pillar-card.p1 .pillar-number { color:rgba(30,70,32,.05); }
.pillar-card.p2 .pillar-number { color:rgba(139,46,10,.05); }
.pillar-card.p3 .pillar-number { color:rgba(200,169,110,.08); }
.pillar-card:hover .pillar-number { opacity:.12; }
.pillar-svg-wrap { width:64px; height:64px; margin-bottom:28px; }
.pillar-svg-wrap svg { width:100%; height:100%; }
.pillar-icon-anim { animation:iconBreath 4s ease-in-out infinite; }
.pillar-card.p1 .pillar-icon-anim { animation-delay:0s; }
.pillar-card.p2 .pillar-icon-anim { animation-delay:1.3s; }
.pillar-card.p3 .pillar-icon-anim { animation-delay:2.6s; }
@keyframes iconBreath { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
.pillar-h { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--testo); margin-bottom:14px; line-height:1.15; }
.pillar-p { font-size:13px; line-height:1.85; color:var(--grigio); margin-bottom:20px; }
.pillar-tags { display:flex; gap:8px; flex-wrap:wrap; }
.pt { font-size:8px; letter-spacing:2px; text-transform:uppercase; padding:5px 10px; }
.pt.v { background:var(--verde4); color:var(--verde2); }
.pt.t { background:rgba(139,46,10,.08); color:var(--terra); }
.pt.o { background:rgba(200,169,110,.15); color:#7a5828; }

/* Mission animated landscape */
.mission-landscape { position:relative; overflow:hidden; height:220px; }
.mission-landscape svg { width:100%; height:100%; }
.m-hill1 { animation:mHill 8s ease-in-out infinite; transform-origin:50% 100%; }
.m-hill2 { animation:mHill 12s ease-in-out infinite reverse; transform-origin:50% 100%; }
.m-star1 { animation:starTwinkle 3s ease-in-out infinite; }
.m-star2 { animation:starTwinkle 4s ease-in-out infinite; animation-delay:1.2s; }
.m-star3 { animation:starTwinkle 2.5s ease-in-out infinite; animation-delay:2.1s; }
.m-bird  { animation:birdFly 12s linear infinite; }
.m-sun   { animation:mSunRise 10s ease-in-out infinite; }
@keyframes mHill       { 0%,100%{transform:scaleY(1) scaleX(1)} 50%{transform:scaleY(1.02) scaleX(1.01)} }
@keyframes starTwinkle { 0%,100%{opacity:.3;transform:scale(1)} 50%{opacity:1;transform:scale(1.4)} }
@keyframes birdFly     { 0%{transform:translateX(-80px)} 100%{transform:translateX(1300px)} }
@keyframes mSunRise    { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }

.values-row { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; margin-top:2px; }
.value-cell { background:var(--bianco); padding:36px 32px; display:flex; flex-direction:column; gap:10px; border-top:1px solid var(--bordo); transition:background .4s,border-color .4s; }
.value-cell:hover { background:var(--verde4); border-color:var(--verde3); }
.value-icon { font-size:24px; }
.value-name { font-family:'Cormorant Garamond',serif; font-size:20px; font-weight:600; color:var(--testo); }
.value-desc { font-size:12px; line-height:1.7; color:var(--grigio); }

/* ════════════════════════════════════
   COSA FACCIAMO
════════════════════════════════════ */
#cosa-facciamo { padding:120px 64px; background:var(--crema); }
.section-header { text-align:center; margin-bottom:80px; }
.section-header .s-label { font-size:10px; letter-spacing:5px; text-transform:uppercase; color:var(--terra); margin-bottom:20px; display:block; }
.section-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4vw,60px); font-weight:400; color:var(--nero); line-height:1.1; }
.section-header h2 em { font-style:italic; color:var(--verde2); }
.section-header p { font-size:15px; color:var(--grigio); line-height:1.8; max-width:520px; margin:20px auto 0; }

.cards-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:3px; }
.card { background:var(--bianco); padding:56px 48px; position:relative; overflow:hidden; transition:transform .4s; }
.card:hover { transform:translateY(-4px); }
.card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left; transition:transform .4s; }
.card.verde::before { background:var(--verde); }
.card.terra::before { background:var(--terra); }
.card.oro::before   { background:var(--oro); }
.card.notte::before { background:var(--nero); }
.card:hover::before { transform:scaleX(1); }
.card-num { font-family:'Cormorant Garamond',serif; font-size:80px; font-weight:700; color:rgba(0,0,0,.04); line-height:1; position:absolute; top:20px; right:28px; transition:color .4s; }
.card:hover .card-num { color:rgba(0,0,0,.07); }
.card-icon { width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:26px; margin-bottom:28px; }
.card.verde .card-icon { background:var(--verde4); }
.card.terra .card-icon { background:rgba(139,46,10,.08); }
.card.oro   .card-icon { background:rgba(200,169,110,.12); }
.card.notte .card-icon { background:rgba(26,26,26,.06); }
.card h3 { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:600; color:var(--nero); margin-bottom:16px; line-height:1.2; }
.card p  { font-size:14px; line-height:1.85; color:var(--grigio); margin-bottom:28px; }
.card-tags { display:flex; gap:8px; flex-wrap:wrap; }
.tag { font-size:9px; letter-spacing:2px; text-transform:uppercase; padding:6px 12px; }
.tag.verde { background:var(--verde4); color:var(--verde2); }
.tag.terra { background:rgba(139,46,10,.08); color:var(--terra); }
.tag.oro   { background:rgba(200,169,110,.15); color:#8a6930; }
.tag.grigio{ background:var(--grigio-chiaro); color:var(--grigio); }
.card-link { display:inline-flex; align-items:center; gap:8px; margin-top:24px; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); text-decoration:none; transition:color .3s; }
.card-link::after { content:'→'; transition:transform .3s; }
.card:hover .card-link { color:var(--testo); }
.card:hover .card-link::after { transform:translateX(4px); }

/* ════════════════════════════════════
   IDROPONICA
════════════════════════════════════ */
#idroponica { padding:140px 64px; background:var(--bianco); display:grid; grid-template-columns:1fr 1.1fr; gap:100px; align-items:center; }
.intro-label { font-size:10px; letter-spacing:5px; text-transform:uppercase; color:var(--terra); margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.intro-label::after { content:''; flex:1; height:1px; background:var(--grigio-chiaro); }
.intro-title { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,3.5vw,54px); font-weight:400; line-height:1.15; color:var(--nero); margin-bottom:28px; }
.intro-title em { font-style:italic; color:var(--verde2); }
.intro-body { font-size:15px; line-height:1.9; color:var(--grigio); margin-bottom:32px; }
.idro-features { display:grid; gap:24px; margin-top:40px; }
.idro-feat { display:flex; gap:20px; align-items:flex-start; padding:24px; border:1px solid var(--grigio-chiaro); transition:border-color .3s,background .3s; }
.idro-feat:hover { border-color:var(--verde); background:var(--verde4); }
.idro-feat-icon { width:44px; height:44px; border-radius:50%; background:var(--verde4); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
.idro-feat h4 { font-size:14px; font-weight:600; color:var(--testo); margin-bottom:6px; }
.idro-feat p  { font-size:13px; line-height:1.7; color:var(--grigio); }
.idro-visual svg { width:100%; }

/* Idroponica SVG anims */
.idro-plant { animation:plantGrow 6s ease-in-out infinite; transform-origin:50% 100%; }
.idro-drop  { animation:dropFall 2.8s ease-in-out infinite; }
.idro-drop.d2 { animation-delay:.9s; }
.idro-drop.d3 { animation-delay:1.8s; }
.idro-led   { animation:ledBlink 2s ease-in-out infinite; }
.idro-led.l2 { animation-delay:.4s; }
.idro-led.l3 { animation-delay:.8s; }
.idro-water  { animation:waterFlow 4s ease-in-out infinite; }
@keyframes ledBlink   { 0%,100%{opacity:.7} 50%{opacity:1} }
@keyframes waterFlow  { 0%,100%{transform:translateX(0)} 50%{transform:translateX(8px)} }

.idro-stat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; margin-top:32px; }
.idro-stat { background:var(--crema); padding:24px 16px; text-align:center; }
.idro-stat .n { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:600; color:var(--verde); display:block; }
.idro-stat .l { font-size:10px; letter-spacing:2px; color:var(--grigio); text-transform:uppercase; margin-top:4px; }

/* ════════════════════════════════════
   MANIFESTO STRIP
════════════════════════════════════ */
.manifesto { padding:100px 64px; background:var(--verde); text-align:center; position:relative; overflow:hidden; }
.manifesto::before { content:'GISA'; font-family:'Cormorant Garamond',serif; font-size:30vw; font-weight:700; color:rgba(255,255,255,.04); position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none; white-space:nowrap; line-height:1; }
.manifesto blockquote { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,4vw,54px); font-style:italic; font-weight:300; color:white; line-height:1.4; max-width:800px; margin:0 auto 36px; position:relative; z-index:2; }
.manifesto .author { font-size:11px; letter-spacing:4px; text-transform:uppercase; color:rgba(255,255,255,.55); position:relative; z-index:2; }

/* ════════════════════════════════════
   SMARTFARM
════════════════════════════════════ */
#smartfarm { padding:140px 64px; background:var(--crema); display:grid; grid-template-columns:1.1fr 1fr; gap:100px; align-items:center; }
.smartfarm-visual { position:relative; }
.smartfarm-visual svg { width:100%; }
.smartfarm-chip { position:absolute; top:20%; right:-30px; background:var(--bianco); padding:16px 20px; box-shadow:0 8px 32px rgba(0,0,0,.1); border-left:3px solid var(--oro); }
.smartfarm-chip .ch-val { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:600; color:var(--testo); display:block; }
.smartfarm-chip .ch-label { font-size:9px; letter-spacing:2px; color:var(--grigio); text-transform:uppercase; }
.smartfarm-tech { display:flex; gap:10px; flex-wrap:wrap; margin-top:32px; }
.tech-pill { font-size:10px; letter-spacing:1px; padding:8px 16px; border:1px solid var(--bordo); color:var(--grigio); border-radius:50px; transition:all .3s; }
.tech-pill:hover { border-color:var(--oro); color:var(--testo); background:rgba(200,169,110,.08); }

/* SmartFarm SVG anims */
.sf-node  { animation:sfNodePulse 3s ease-in-out infinite; }
.sf-node.n2 { animation-delay:.8s; }
.sf-node.n3 { animation-delay:1.6s; }
.sf-line  { animation:circuitPulse 3s ease-in-out infinite; }
.sf-screen { animation:screenFlicker 5s ease-in-out infinite; }
.sf-plant { animation:plantGrow 5s ease-in-out infinite; transform-origin:50% 100%; }
@keyframes sfNodePulse  { 0%,100%{transform:scale(1)} 50%{transform:scale(1.25)} }
@keyframes screenFlicker{ 0%,100%{opacity:1} 48%{opacity:1} 50%{opacity:.8} 52%{opacity:1} }

/* ════════════════════════════════════
   AMARO CTA
════════════════════════════════════ */
#amaro { padding:0 64px 120px; background:var(--crema); }
.amaro-inner { background:var(--nero); padding:80px; display:grid; grid-template-columns:1fr auto; gap:80px; align-items:center; position:relative; overflow:hidden; }
.amaro-inner::before { content:''; position:absolute; top:0; left:0; bottom:0; width:4px; background:var(--terra); }
.amaro-inner::after  { content:'🥃'; position:absolute; right:200px; top:50%; transform:translateY(-50%); font-size:120px; opacity:.08; pointer-events:none; }
.amaro-text h3 { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,3vw,44px); font-weight:400; color:white; margin-bottom:16px; line-height:1.2; }
.amaro-text h3 em { font-style:italic; color:var(--terra2); }
.amaro-text p  { font-size:15px; line-height:1.8; color:rgba(255,255,255,.55); }
.amaro-btn { display:inline-block; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--nero); background:var(--terra); padding:18px 40px; text-decoration:none; transition:background .3s,transform .2s; white-space:nowrap; flex-shrink:0; }
.amaro-btn:hover { background:var(--terra2); transform:translateY(-2px); }

/* ════════════════════════════════════
   BIRRA
════════════════════════════════════ */
#birra { padding:120px 64px; background:var(--bianco); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.birra-visual { position:relative; display:flex; align-items:center; justify-content:center; }
.birra-visual svg { width:80%; }
.coming-soon-stamp { position:absolute; width:120px; height:120px; border:2px solid var(--oro); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; top:10%; right:10%; animation:stampRotate 20s linear infinite; }
.coming-soon-stamp span { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--oro); font-weight:600; line-height:1.4; }
@keyframes stampRotate { to{transform:rotate(360deg)} }
/* Birra SVG anims */
.birra-foam   { animation:foamRise 3s ease-in-out infinite; transform-origin:50% 100%; }
.birra-bubble { animation:bubbleRise 2s ease-in-out infinite; }
.birra-bubble.b2 { animation-delay:.7s; }
.birra-bubble.b3 { animation-delay:1.4s; }
@keyframes foamRise   { 0%,100%{transform:scaleY(1)} 50%{transform:scaleY(1.06)} }
@keyframes bubbleRise { 0%{transform:translateY(0);opacity:.6} 100%{transform:translateY(-30px);opacity:0} }
.coming-badge { display:inline-block; font-size:9px; letter-spacing:3px; text-transform:uppercase; background:var(--oro2); color:#6b4c1a; padding:6px 14px; margin-bottom:20px; }
.birra-feats { display:grid; gap:20px; margin-top:36px; }
.birra-feat { display:flex; gap:16px; align-items:flex-start; padding-bottom:20px; border-bottom:1px solid var(--grigio-chiaro); }
.birra-feat:last-child { border-bottom:none; }
.birra-feat-icon { font-size:22px; flex-shrink:0; margin-top:2px; }
.birra-feat h4 { font-size:14px; font-weight:600; margin-bottom:4px; }
.birra-feat p  { font-size:13px; color:var(--grigio); line-height:1.6; }

/* ════════════════════════════════════
   CONTATTI
════════════════════════════════════ */
#contatti { padding:120px 64px 80px; background:var(--crema); display:grid; grid-template-columns:1.2fr 1fr; gap:100px; }
.contatti-left h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4vw,54px); font-weight:400; color:var(--nero); margin-bottom:24px; line-height:1.1; }
.contatti-left h2 em { font-style:italic; color:var(--verde2); }
.contatti-left p { font-size:15px; color:var(--grigio); line-height:1.8; margin-bottom:36px; }
.contatti-info { display:grid; gap:20px; }
.c-info { display:flex; gap:16px; align-items:flex-start; }
.c-info-icon { width:40px; height:40px; border-radius:50%; background:var(--verde4); display:flex; align-items:center; justify-content:center; font-size:16px; flex-shrink:0; }
.c-info-text .label { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--grigio); }
.c-info-text a, .c-info-text p { font-size:14px; color:var(--testo); text-decoration:none; }
.c-info-text a:hover { color:var(--verde); }
.contact-form { display:grid; gap:16px; }
.contact-form input, .contact-form textarea { width:100%; padding:16px 20px; background:var(--bianco); border:1px solid var(--grigio-chiaro); font-family:'Montserrat',sans-serif; font-size:14px; color:var(--testo); outline:none; transition:border-color .3s; }
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--verde); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color:var(--grigio); }
.contact-form textarea { height:120px; resize:vertical; }
.form-btn { background:var(--verde); color:white; border:none; padding:16px; font-family:'Montserrat',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; transition:background .3s; width:100%; }
.form-btn:hover { background:var(--verde2); }

/* ════════════════════════════════════
   FOOTER
════════════════════════════════════ */
footer { background:var(--nero); padding:48px 64px; display:flex; align-items:center; justify-content:space-between; }
.footer-left { display:flex; align-items:center; gap:16px; }
.footer-left img { height:36px; width:36px; object-fit:contain; filter:brightness(10); }
.footer-left .ft { font-family:'Cormorant Garamond',serif; font-size:14px; color:rgba(255,255,255,.7); }
.footer-center p { font-size:11px; color:rgba(255,255,255,.3); letter-spacing:1px; text-align:center; }
.footer-right { display:flex; gap:24px; }
.footer-right a { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.35); text-decoration:none; transition:color .3s; }
.footer-right a:hover { color:rgba(255,255,255,.8); }

/* ════════════════════════════════════
   SCROLL REVEAL
════════════════════════════════════ */
.sr   { opacity:1; transform:translateY(0); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1); }
.sr.hidden   { opacity:0; transform:translateY(36px); }
.sr-l { opacity:1; transform:translateX(0); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1); }
.sr-l.hidden { opacity:0; transform:translateX(-36px); }
.sr-r { opacity:1; transform:translateX(0); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1); }
.sr-r.hidden { opacity:0; transform:translateX(36px);  }
.sr.on,.sr-l.on,.sr-r.on { opacity:1; transform:translate(0,0); }
.sr.d1 { transition-delay:.1s; }
.sr.d2 { transition-delay:.2s; }
.sr.d3 { transition-delay:.3s; }
.sr.d4 { transition-delay:.4s; }

/* ════════════════════════════════════
   RESPONSIVE
════════════════════════════════════ */
@media(max-width:1024px){
  #hero { grid-template-columns:1fr; }
  .hero-right { padding:40px 24px 60px; }
  .chi-inner,.mission-top { grid-template-columns:1fr; gap:60px; }
  .mission-pillars,.values-row { grid-template-columns:1fr; }
  #idroponica,#smartfarm,#birra,#contatti { grid-template-columns:1fr; gap:60px; }
  .cards-grid { grid-template-columns:1fr; }
  .amaro-inner { grid-template-columns:1fr; }
  .smartfarm-chip { right:0; }
}
@media(max-width:768px){
  nav { padding:16px 24px; }
  nav.scrolled { padding:12px 24px; }
  .nav-links,.nav-cta { display:none; }
  .hamburger { display:flex; }
  .hero-left,#chi-siamo,#mission,#cosa-facciamo,#idroponica,#smartfarm,#amaro,#birra,#contatti,.manifesto { padding-left:24px; padding-right:24px; }
  #amaro { padding:0 24px 80px; }
  .amaro-inner { padding:48px 32px; }
  .amaro-inner::after { display:none; }
  footer { flex-direction:column; gap:24px; text-align:center; padding:40px 24px; }
  .founders { grid-template-columns:1fr; }
  .mission-big-num { font-size:80px; }
  .idro-stat-row { grid-template-columns:1fr; }
}

/* ── NEW: card-icon-illus replaces card-icon emoji ── */
.card-icon-illus { width:72px; height:72px; margin-bottom:28px; }
.card-icon-illus svg { width:100%; height:100%; }

/* ── NEW: value-illus ── */
.value-illus { width:56px; height:56px; margin-bottom:12px; }
.value-illus svg { width:100%; height:100%; }

/* ── NEW: fc-illus ── */
.fc-illus { width:48px; height:48px; margin-bottom:12px; }
.fc-illus svg { width:100%; height:100%; }

/* ── HIDE old value-icon if any remains ── */
.value-icon { display:none; }

/* ── hero chip svg ── */
.hero-chip svg { width:14px; height:auto; flex-shrink:0; }

/* ─────────────────────────────────────────
   IDROPONICA ANIMATA — sezione ciclo completo
───────────────────────────────────────── */
#ciclo-idro {
  background: #0d1a0d;
  padding: 120px 0 0;
  overflow: hidden;
  position: relative;
}
.ciclo-header {
  text-align:center; padding:0 64px 80px; position:relative; z-index:2;
}
.ciclo-header .s-label { font-size:10px; letter-spacing:5px; text-transform:uppercase; color:#4a8c42; display:block; margin-bottom:20px; }
.ciclo-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4vw,58px); font-weight:400; color:white; line-height:1.1; }
.ciclo-header h2 em { font-style:italic; color:#7ec870; }
.ciclo-header p { font-size:15px; color:rgba(255,255,255,.5); line-height:1.8; max-width:540px; margin:20px auto 0; }

/* Phase strip */
.ciclo-phases {
  display:flex; gap:0; overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
}
.phase {
  flex:1; padding:48px 32px 56px; border-right:1px solid rgba(255,255,255,.05);
  position:relative; text-align:center;
  transition:background .4s;
}
.phase:last-child { border-right:none; }
.phase:hover { background:rgba(255,255,255,.03); }
.phase-num {
  font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:3px;
  color:rgba(255,255,255,.2); text-transform:uppercase; margin-bottom:28px; display:block;
}
.phase-illus { margin:0 auto 24px; }
.phase-title { font-family:'Cormorant Garamond',serif; font-size:18px; font-weight:600; color:white; margin-bottom:8px; }
.phase-desc { font-size:11px; line-height:1.7; color:rgba(255,255,255,.4); letter-spacing:.3px; }
.phase-arrow {
  position:absolute; right:-16px; top:50%;
  transform:translateY(-50%);
  z-index:3; color:rgba(255,255,255,.15); font-size:20px; line-height:1;
}
.phase:last-child .phase-arrow { display:none; }

/* The big animated scene */
.ciclo-scene {
  width:100%; background:#0d1a0d;
  position:relative; overflow:hidden;
  border-top:1px solid rgba(255,255,255,.06);
}
.ciclo-scene svg { display:block; width:100%; }

/* Phase indicator dots */
.ciclo-dots {
  display:flex; justify-content:center; gap:10px;
  padding:28px 0 0; position:relative; z-index:5;
}
.ciclo-dot {
  width:6px; height:6px; border-radius:50%;
  background:rgba(255,255,255,.15); border:none;
  transition:background .3s,transform .3s;
  cursor:default;
}
.ciclo-dot.active { background:#4a8c42; transform:scale(1.4); }

/* progress bar */
.ciclo-progress {
  height:2px; background:rgba(255,255,255,.06);
  position:relative; overflow:hidden;
}
.ciclo-progress-bar {
  height:100%; background:linear-gradient(to right,#4a8c42,#7ec870);
  width:0; transition:width 0.6s cubic-bezier(.16,1,.3,1);
}

/* Bottom fact strip */
.ciclo-facts {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border-top:1px solid rgba(255,255,255,.06);
}
.ciclo-fact {
  padding:40px 32px; border-right:1px solid rgba(255,255,255,.06); text-align:center;
}
.ciclo-fact:last-child { border-right:none; }
.ciclo-fact .cf-n { font-family:'Cormorant Garamond',serif; font-size:44px; font-weight:600; color:#4a8c42; display:block; line-height:1; }
.ciclo-fact .cf-l { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.35); margin-top:8px; }

/* SVG animation keyframes for ciclo scene */
@keyframes seedPulse  { 0%,100%{transform:scale(1)} 50%{transform:scale(1.15)} }
@keyframes rootGrow   { from{stroke-dashoffset:200} to{stroke-dashoffset:0} }
@keyframes stemRise   { from{stroke-dashoffset:300} to{stroke-dashoffset:0} }
@keyframes leafOpen   { from{transform:scale(0) rotate(-20deg);opacity:0} to{transform:scale(1) rotate(0deg);opacity:1} }
@keyframes fruitSwell { 0%{r:0;opacity:0} 60%{opacity:1} 100%{r:var(--fr,12);opacity:1} }
@keyframes harvestBob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes nftFlow    { 0%{transform:translateX(0)} 100%{transform:translateX(40px)} }
@keyframes ledGlow    { 0%,100%{opacity:.5} 50%{opacity:1} }
@keyframes dropRise   { 0%{transform:translateY(0);opacity:.8} 100%{transform:translateY(-20px);opacity:0} }
@keyframes phaseGlow  { 0%,100%{filter:brightness(1)} 50%{filter:brightness(1.3)} }

.seed-pulse { animation:seedPulse 2s ease-in-out infinite; transform-origin:50% 50%; }
.nft-flow   { animation:nftFlow 3s linear infinite; }
.led-glow   { animation:ledGlow 1.8s ease-in-out infinite; }
.drop-rise  { animation:dropRise 2.2s ease-out infinite; }
.drop-rise.d2 { animation-delay:.7s; }
.drop-rise.d3 { animation-delay:1.4s; }
.harvest-bob { animation:harvestBob 3s ease-in-out infinite; }


/* Fallback: if animations don't run, content is still visible */
.hero-eyebrow { opacity: 1; }
.hero-h1 .line span { transform: translateY(0); }
.hero-body { opacity: 1; }
.hero-ctas { opacity: 1; }
.hero-stats { opacity: 1; }
.hero-right { opacity: 1; }
.scroll-hint { opacity: 1; }
/* Re-apply animations for capable browsers */
@supports (animation-fill-mode: forwards) {
  .hero-eyebrow { opacity: 0; animation: slideInLeft .8s cubic-bezier(.16,1,.3,1) .3s forwards; }
  .hero-h1 .line span { transform: translateY(110%); }
  .hero-h1 .line:nth-child(1) span { animation: lineUp .9s cubic-bezier(.16,1,.3,1) .5s forwards; }
  .hero-h1 .line:nth-child(2) span { animation: lineUp .9s cubic-bezier(.16,1,.3,1) .65s forwards; }
  .hero-h1 .line:nth-child(3) span { animation: lineUp .9s cubic-bezier(.16,1,.3,1) .8s forwards; }
  .hero-h1 .line:nth-child(4) span { animation: lineUp .9s cubic-bezier(.16,1,.3,1) .95s forwards; }
  .hero-body { opacity: 0; animation: fadeUp .8s cubic-bezier(.16,1,.3,1) 1.2s forwards; }
  .hero-ctas { opacity: 0; animation: fadeUp .8s cubic-bezier(.16,1,.3,1) 1.4s forwards; }
  .hero-stats { opacity: 0; animation: fadeUp .8s cubic-bezier(.16,1,.3,1) 1.6s forwards; }
  .hero-right { opacity: 0; animation: fadeIn .6s ease .4s forwards; }
  .scroll-hint { opacity: 0; animation: fadeIn 1s ease 2s forwards; }
}
