/* Therra Botanic — main.css */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --moss:#0A3D2E;
  --sage:#1A6B4A;
  --sage-light:#3DBA7E;
  --earth:#1A5F9E;
  --earth-light:#3B9FD4;
  --linen:#F2F2F0;
  --cream:#FAFAFA;
  --charcoal:#0A0F1A;
  --mist:#E8F5EE;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--body);
  background:var(--charcoal);
  color:var(--linen);
  overflow-x:hidden;
}



/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3.5rem;
  transition:background 0.5s ease, border-color 0.5s ease;
}
nav.scrolled{
  background:rgba(26,26,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-logo{
  font-family:var(--display);
  font-size:1.2rem;font-weight:600;
  color:var(--linen);letter-spacing:0.1em;
  text-decoration:none;text-transform:uppercase;
}
.nav-logo span{font-weight:300;color:var(--sage-light);}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,239,230,0.6);
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--linen);}
.nav-cta{
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  text-decoration:none;color:var(--charcoal);
  background:var(--linen);
  padding:0.55rem 1.3rem;border-radius:2px;
  transition:background 0.2s,color 0.2s;
}
.nav-cta:hover{background:var(--sage-light);color:var(--charcoal);}

/* ── HERO: FULL-SCREEN CINEMATIC ── */
.hero{
  position:relative;
  height:100vh;min-height:700px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-bg-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
}
.hero-content{
  position:relative;z-index:10;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-eyebrow{
  font-size:0.68rem;font-weight:400;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s 0.5s ease forwards;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:300;line-height:0.95;
  color:var(--linen);
  opacity:0;animation:fadeUp 1.1s 0.8s ease forwards;
}
.hero-title em{
  font-style:italic;
  background:linear-gradient(135deg,#3DBA7E 0%,#3B9FD4 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  font-size:clamp(0.9rem,1.5vw,1.1rem);
  color:rgba(244,239,230,0.55);
  line-height:1.8;margin-top:2rem;max-width:500px;
  opacity:0;animation:fadeUp 1s 1.2s ease forwards;
}
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  opacity:0;animation:fadeUp 1s 2s ease forwards;
}
.hero-scroll span{
  font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.35);
}
.scroll-line{
  width:1px;height:50px;background:rgba(92,127,101,0.4);
  animation:scrollPulse 2s infinite;
}
@keyframes scrollPulse{
  0%{transform:scaleY(0);transform-origin:top;opacity:0;}
  50%{opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── MANIFESTO SECTION ── */
.manifesto{
  background:var(--linen);
  color:var(--charcoal);
  padding:12rem 4rem;
  display:flex;align-items:center;justify-content:center;
}
.manifesto-inner{max-width:900px;text-align:center;}
.manifesto-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;display:block;
}
.manifesto-text{
  font-family:var(--display);
  font-size:clamp(2.2rem,5vw,4.5rem);
  font-weight:300;line-height:1.15;
  color:var(--moss);
}
.manifesto-text em{font-style:italic;color:var(--earth);}
.manifesto-small{
  margin-top:2.5rem;
  font-size:1rem;color:var(--charcoal);
  opacity:0.6;line-height:1.85;max-width:560px;margin-left:auto;margin-right:auto;
}

/* ── SCROLL REVEAL ── */
.reveal{
  opacity:0;transform:translateY(50px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.15s;}
.reveal-delay-2{transition-delay:0.3s;}
.reveal-delay-3{transition-delay:0.45s;}

/* ── HORIZONTAL SERVICES SCROLL ── */
.services-section{
  background:var(--charcoal);
  padding:8rem 0;
  overflow:hidden;
}
.services-header{
  padding:0 4rem;
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:4rem;
}
.services-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--linen);line-height:1.05;
}
.services-title em{font-style:italic;color:var(--sage-light);}
.services-hint{
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);display:flex;align-items:center;gap:0.5rem;
}
.services-hint::before{content:'';width:30px;height:1px;background:currentColor;}

.services-track-wrap{
  overflow-x:auto;
  padding:0 4rem 2rem;
  scrollbar-width:none;
  cursor:grab;
  user-select:none;
}
.services-track-wrap:active{cursor:grabbing;}
.services-track-wrap::-webkit-scrollbar{display:none;}
.services-track{
  display:flex;gap:1.5rem;
  width:max-content;
}

.service-card{
  width:360px;flex-shrink:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.2rem;
  transition:background 0.3s, border-color 0.3s, transform 0.3s;
  cursor:pointer;
}
.service-card:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(92,127,101,0.3);
  transform:translateY(-4px);
}
.service-num{
  font-size:0.68rem;letter-spacing:0.2em;
  color:rgba(244,239,230,0.2);
}
.service-icon-wrap{
  width:48px;height:48px;
  border:1px solid rgba(92,127,101,0.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-light);
}
.service-name{
  font-family:var(--display);
  font-size:1.8rem;font-weight:300;
  color:var(--linen);line-height:1.1;
}
.service-desc{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  line-height:1.75;flex:1;
}
.service-arrow{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage-light);display:flex;align-items:center;gap:0.4rem;
  text-decoration:none;transition:gap 0.2s;
}
.service-card:hover .service-arrow{gap:0.8rem;}

/* ── WORKSHOP FEATURE: STICKY SCROLL ── */
.sticky-section{
  position:relative;
  background:var(--cream);
  color:var(--charcoal);
}
.sticky-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}
.sticky-left{
  position:sticky;top:0;
  height:100vh;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:6rem 5rem;
  background:linear-gradient(160deg,#0A3D2E 0%,#0E2A4A 100%);
  color:var(--linen);
}
.sticky-label{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:1.5rem;display:block;
}
.sticky-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,4vw,4rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.sticky-title em{font-style:italic;color:var(--earth-light);}
.sticky-desc{
  font-size:0.92rem;
  color:rgba(244,239,230,0.65);
  line-height:1.85;margin-bottom:2rem;max-width:400px;
}
.sticky-cta{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:0.75rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:var(--linen);
  border-bottom:1px solid rgba(244,239,230,0.3);
  padding-bottom:3px;
  transition:border-color 0.2s,gap 0.2s;
}
.sticky-cta:hover{border-color:var(--linen);gap:1rem;}

.sticky-right{padding:6rem 4rem;display:flex;flex-direction:column;gap:4rem;}

.workshop-item{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(26,26,24,0.1);
}
.workshop-item:last-child{border-bottom:none;}

.workshop-tag{
  display:inline-block;
  font-size:0.65rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--earth-light);
  background:rgba(59,159,212,0.1);
  padding:0.35rem 0.8rem;border-radius:2px;
  margin-bottom:1rem;
}
.workshop-title{
  font-family:var(--display);
  font-size:2rem;font-weight:400;
  color:var(--moss);margin-bottom:0.8rem;
}
.workshop-desc{
  font-size:0.88rem;color:var(--charcoal);
  opacity:0.65;line-height:1.8;margin-bottom:1.2rem;
}
.workshop-meta{
  display:flex;gap:2rem;flex-wrap:wrap;
}
.workshop-meta-item{
  font-size:0.78rem;color:var(--sage);
  display:flex;align-items:center;gap:0.4rem;
}
.workshop-meta-item::before{
  content:'';width:16px;height:1px;background:currentColor;
}

/* ── BRAND PROMISE ── */
.brand-promise{
  background:#0E2A4A;
  padding:10rem 4rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.brand-promise::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(26,95,158,0.35) 0%,transparent 70%);
}
.promise-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(244,239,230,0.5);margin-bottom:2rem;display:block;position:relative;
}
.promise-quote{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:300;font-style:italic;
  color:var(--linen);line-height:1.2;
  max-width:800px;margin:0 auto 2rem;position:relative;
}
.promise-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.6);
  position:relative;
}

/* ── NUMBERS ── */
.numbers-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,0.05);
}
.number-item{
  padding:2rem;
  border-right:1px solid rgba(255,255,255,0.05);
  text-align:center;
}
.number-item:last-child{border-right:none;}
.number-val{
  font-family:var(--display);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:300;color:var(--linen);
  display:block;line-height:1;margin-bottom:0.5rem;
}
.number-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);
}

/* ── WARM SECTION ── */
.warm-section{
  background:var(--linen);
  color:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
  max-width:1400px;margin:0 auto;
}
.warm-text {}
.warm-eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.2rem;display:block;
}
.warm-title{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.8rem);
  font-weight:300;color:var(--moss);
  line-height:1.1;margin-bottom:1.5rem;
}
.warm-title em{font-style:italic;color:var(--earth);}
.warm-body{
  font-size:0.95rem;opacity:0.65;
  line-height:1.9;margin-bottom:2rem;
}
.warm-cards{display:flex;flex-direction:column;gap:1rem;}
.warm-card{
  background:var(--cream);
  padding:1.5rem 1.8rem;border-radius:3px;
  border-left:2px solid var(--sage-light);
}
.warm-card-title{
  font-family:var(--display);font-size:1.1rem;font-weight:400;
  color:var(--moss);margin-bottom:0.4rem;
}
.warm-card-text{font-size:0.82rem;opacity:0.6;line-height:1.7;}

/* ── LOCATION ── */
.location-section{
  background:var(--moss);
  color:var(--linen);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
}
.location-text{}
.location-address{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.location-address em{font-style:italic;color:var(--earth-light);}
.location-hours{
  display:flex;flex-direction:column;gap:0.8rem;
  margin-bottom:2.5rem;
}
.location-hours-row{
  display:flex;justify-content:space-between;
  font-size:0.88rem;
  border-bottom:1px solid rgba(244,239,230,0.08);
  padding-bottom:0.8rem;
}
.location-hours-day{color:rgba(244,239,230,0.5);}
.location-hours-time{color:var(--linen);}
.location-map{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  height:320px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.map-placeholder{
  font-family:var(--display);font-size:1rem;
  color:rgba(244,239,230,0.2);font-style:italic;
}
.map-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.map-pin{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;
  background:var(--earth-light);border-radius:50%;
  box-shadow:0 0 0 8px rgba(26,95,158,0.2),0 0 0 16px rgba(26,95,158,0.08);
}

/* ── NEWSLETTER ── */
.newsletter-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.05);
}
.newsletter-title{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,4rem);
  font-weight:300;color:var(--linen);
  margin-bottom:0.8rem;
}
.newsletter-title em{font-style:italic;color:var(--sage-light);}
.newsletter-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.45);
  margin-bottom:3rem;
}
.newsletter-form{
  display:flex;justify-content:center;gap:0;max-width:480px;margin:0 auto;
}
.nl-input{
  flex:1;padding:1rem 1.4rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-right:none;
  color:var(--linen);outline:none;
  border-radius:2px 0 0 2px;
}
.nl-input::placeholder{color:rgba(244,239,230,0.25);}
.nl-btn{
  padding:1rem 1.8rem;
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  background:var(--sage);color:var(--linen);
  border:none;cursor:pointer;
  border-radius:0 2px 2px 0;
  transition:background 0.2s;
}
.nl-btn:hover{background:var(--sage-light);}

/* ── PARTNERS ── */
.partners-section{
  background:var(--charcoal);
  padding:4rem 4rem 6rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.04);
}
.partners-label{
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,239,230,0.2);margin-bottom:2.5rem;display:block;
}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  gap:4rem;flex-wrap:wrap;
}
.partner{
  font-family:var(--display);font-size:1.3rem;font-weight:300;
  color:rgba(244,239,230,0.15);letter-spacing:0.06em;
  transition:color 0.3s;cursor:default;
}
.partner:hover{color:rgba(244,239,230,0.4);}

/* ── FOOTER ── */
footer{
  background:#141412;
  color:var(--linen);
  padding:4rem 4rem 2.5rem;
  border-top:1px solid rgba(255,255,255,0.04);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-wrap:wrap;gap:2rem;
}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;}
.footer-brand span{font-weight:300;color:var(--sage-light);}
.footer-tagline{
  font-size:0.8rem;opacity:0.3;margin-top:0.5rem;
  font-style:italic;font-family:var(--display);
}
.footer-links-row{
  display:flex;gap:4rem;flex-wrap:wrap;
}
.footer-col-title{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.25);margin-bottom:1rem;display:block;
}
.footer-link-list{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer-link-list a{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  text-decoration:none;transition:color 0.2s;
}
.footer-link-list a:hover{color:var(--linen);}
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:0.72rem;color:rgba(244,239,230,0.2);
  flex-wrap:wrap;gap:0.5rem;
}

/* ── FLOATING BOTANICAL LINES (canvas hero) ── */
/* ── CHI SIAMO + ESPERIENZE ── */
.chi-siamo-full{background:var(--linen);color:var(--charcoal);padding:7rem 4rem;}
.chi-siamo-intro{max-width:700px;margin:0 auto 4rem;text-align:center;}
.chi-siamo-label{font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem;}
.chi-siamo-title{font-family:var(--display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.1;color:var(--moss);margin-bottom:1.5rem;}
.chi-siamo-title em{font-style:italic;color:var(--earth);}
.chi-siamo-text{font-size:1rem;line-height:1.85;color:var(--charcoal);opacity:0.65;}
.chi-siamo-divider{width:60px;height:2px;background:linear-gradient(to right,var(--sage-light),var(--earth-light));margin:0 auto 4rem;border-radius:2px;}
.chi-siamo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1100px;margin:0 auto;}
.chi-siamo-grid .cse-card:last-child:nth-child(3n+1){grid-column:2;}
.cse-card{background:var(--cream);border:1px solid rgba(10,61,46,0.08);border-radius:6px;padding:1.8rem;display:flex;flex-direction:column;gap:0.8rem;transition:background 0.2s,border-color 0.2s,transform 0.2s,box-shadow 0.2s;text-decoration:none;}
.cse-card:hover{background:#fff;border-color:rgba(61,186,126,0.35);transform:translateY(-3px);box-shadow:0 8px 30px rgba(10,61,46,0.08);}
.cse-tag{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);}
.cse-name{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--moss);line-height:1.1;}
.cse-desc{font-size:0.82rem;color:var(--charcoal);opacity:0.55;line-height:1.7;flex:1;}
.cse-link{font-size:0.7rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);display:flex;align-items:center;gap:0.4rem;transition:gap 0.2s,color 0.2s;margin-top:auto;}
.cse-card:hover .cse-link{gap:0.8rem;color:var(--moss);}
.cse-soon{opacity:0.45;}

/* ── TEAM BUILDING: layout cinematico ── */
.team-building {
  position: relative;
  overflow: hidden;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* foto a tutta pagina come sfondo */
.tb-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
/* overlay gradiente */
.tb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,61,46,0.85) 0%,
    rgba(10,15,26,0.6) 60%,
    rgba(26,95,158,0.75) 100%
  );
  z-index: 1;
}
.tb-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
/* testo principale — grande e diretto */
.tb-headline {
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1.0;
  color: var(--linen);
}
.tb-headline em {
  font-style: italic;
  background: linear-gradient(135deg, #3DBA7E, #3B9FD4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tb-label {
  font-size: 0.68rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: block;
  margin-bottom: 1.5rem;
}
.tb-text {
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242,242,240,0.65);
  margin: 1.8rem 0 2.5rem;
  max-width: 480px;
}
.tb-cta {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--charcoal);
  background: var(--sage-light);
  padding: 0.9rem 2.2rem;
  border-radius: 3px;
  transition: background 0.2s;
}
.tb-cta:hover { background: var(--earth-light); }
/* destra: 4 punti come stat-line */
.tb-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tb-stat {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tb-stat:last-child { border-bottom: none; }
.tb-stat-num {
  font-family: var(--display);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--sage-light);
  flex-shrink: 0;
  width: 80px;
}
.tb-stat-body {}
.tb-stat-title {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.tb-stat-desc {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.6;
}

@media (max-width: 768px) {
  .tb-content { grid-template-columns: 1fr; gap: 3rem; padding: 5rem 1.5rem; }
  .tb-stat-num { font-size: 2.5rem; width: 60px; }
}


/* ── WORKSHOP: layout a scorrimento cinematico ── */
.workshops-v2 {
  background: var(--charcoal);
  padding: 6rem 0;
  overflow: hidden;
}
.workshops-v2-header {
  padding: 0 4rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.workshops-v2-title {
  font-family: var(--display);
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
}
.workshops-v2-title em { font-style:italic; color:var(--sage-light); }
.workshops-v2-sub {
  font-size: 0.8rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.06em;
  text-align: right;
  max-width: 200px;
  line-height: 1.6;
}

/* Stack verticale: ogni workshop occupa tutta la larghezza, alternando foto sx/dx */
.ws-stack { display: flex; flex-direction: column; gap: 0; }

.ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.ws-item:nth-child(even) { direction: rtl; }
.ws-item:nth-child(even) > * { direction: ltr; }

.ws-item-photo {
  position: relative;
  overflow: hidden;
}
.ws-item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.7s ease;
  filter: brightness(0.85) saturate(0.85);
}
.ws-item:hover .ws-item-photo img {
  transform: scale(1.04);
  filter: brightness(0.95) saturate(1);
}

/* numero grande sovrapposto alla foto */
.ws-item-num {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  font-family: var(--display);
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,0.12);
  pointer-events: none;
  z-index: 2;
}

.ws-item-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
  background: var(--charcoal);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
/* accent line colorata sul bordo */
.ws-item-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-item:nth-child(even) .ws-item-body::before {
  left: auto; right: 0;
}

.ws-item-tag {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-light);
  margin-bottom: 1rem;
}
.ws-item-name {
  font-family: var(--display);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
  margin-bottom: 1.2rem;
}
.ws-item-desc {
  font-size: 0.9rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.8;
  margin-bottom: 2rem;
  max-width: 380px;
}
.ws-item-meta {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  font-size: 0.82rem;
  color: rgba(242,242,240,0.4);
}
.ws-item-meta strong {
  display: block;
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--linen);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ws-item-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--linen);
  border-bottom: 1px solid rgba(242,242,240,0.2);
  padding-bottom: 3px;
  width: fit-content;
  transition: border-color 0.2s, gap 0.2s;
}
.ws-item:hover .ws-item-cta {
  border-color: var(--sage-light);
  color: var(--sage-light);
  gap: 0.9rem;
}

@media (max-width: 768px) {
  .workshops-v2-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .ws-item { grid-template-columns: 1fr; min-height: auto; }
  .ws-item:nth-child(even) { direction: ltr; }
  .ws-item-photo { aspect-ratio: 4/3; }
  .ws-item-body { padding: 2.5rem 1.5rem; }
  .ws-item-body::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }
  .ws-item:nth-child(even) .ws-item-body::before { left: 0; right: 0; }
  .ws-item-num { font-size: 4rem; }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --moss:#0A3D2E;
  --sage:#1A6B4A;
  --sage-light:#3DBA7E;
  --earth:#1A5F9E;
  --earth-light:#3B9FD4;
  --linen:#F2F2F0;
  --cream:#FAFAFA;
  --charcoal:#0A0F1A;
  --mist:#E8F5EE;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--body);
  background:var(--charcoal);
  color:var(--linen);
  overflow-x:hidden;
}

/* CUSTOM CURSOR */
.cursor{
  position:fixed;
  width:10px;height:10px;
  background:var(--sage-light);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s ease;
  mix-blend-mode:normal;
}
.cursor-ring{
  position:fixed;
  width:36px;height:36px;
  border:1px solid rgba(61,186,126,0.4);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:transform 0.18s ease, width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
}
body:has(a:hover) .cursor,.cursor.hover{width:6px;height:6px;background:var(--earth-light);}
body:has(a:hover) .cursor-ring,.cursor-ring.hover{width:52px;height:52px;border-color:rgba(59,159,212,0.5);}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3.5rem;
  transition:background 0.5s ease, border-color 0.5s ease;
}
nav.scrolled{
  background:rgba(26,26,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-logo{
  font-family:var(--display);
  font-size:1.2rem;font-weight:600;
  color:var(--linen);letter-spacing:0.1em;
  text-decoration:none;text-transform:uppercase;
}
.nav-logo span{font-weight:300;color:var(--sage-light);}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,239,230,0.6);
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--linen);}
.nav-cta{
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  text-decoration:none;color:var(--charcoal);
  background:var(--linen);
  padding:0.55rem 1.3rem;border-radius:2px;
  transition:background 0.2s,color 0.2s;
}
.nav-cta:hover{background:var(--sage-light);color:var(--charcoal);}

/* ── HERO: FULL-SCREEN CINEMATIC ── */
.hero{
  position:relative;
  height:100vh;min-height:700px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-bg-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
}
.hero-content{
  position:relative;z-index:10;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-eyebrow{
  font-size:0.68rem;font-weight:400;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s 0.5s ease forwards;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:300;line-height:0.95;
  color:var(--linen);
  opacity:0;animation:fadeUp 1.1s 0.8s ease forwards;
}
.hero-title em{
  font-style:italic;
  background:linear-gradient(135deg,#3DBA7E 0%,#3B9FD4 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  font-size:clamp(0.9rem,1.5vw,1.1rem);
  color:rgba(244,239,230,0.55);
  line-height:1.8;margin-top:2rem;max-width:500px;
  opacity:0;animation:fadeUp 1s 1.2s ease forwards;
}
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  opacity:0;animation:fadeUp 1s 2s ease forwards;
}
.hero-scroll span{
  font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.35);
}
.scroll-line{
  width:1px;height:50px;background:rgba(92,127,101,0.4);
  animation:scrollPulse 2s infinite;
}
@keyframes scrollPulse{
  0%{transform:scaleY(0);transform-origin:top;opacity:0;}
  50%{opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── MANIFESTO SECTION ── */
.manifesto{
  background:var(--linen);
  color:var(--charcoal);
  padding:12rem 4rem;
  display:flex;align-items:center;justify-content:center;
}
.manifesto-inner{max-width:900px;text-align:center;}
.manifesto-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;display:block;
}
.manifesto-text{
  font-family:var(--display);
  font-size:clamp(2.2rem,5vw,4.5rem);
  font-weight:300;line-height:1.15;
  color:var(--moss);
}
.manifesto-text em{font-style:italic;color:var(--earth);}
.manifesto-small{
  margin-top:2.5rem;
  font-size:1rem;color:var(--charcoal);
  opacity:0.6;line-height:1.85;max-width:560px;margin-left:auto;margin-right:auto;
}

/* ── SCROLL REVEAL ── */
.reveal{
  opacity:0;transform:translateY(50px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.15s;}
.reveal-delay-2{transition-delay:0.3s;}
.reveal-delay-3{transition-delay:0.45s;}

/* ── HORIZONTAL SERVICES SCROLL ── */
.services-section{
  background:var(--charcoal);
  padding:8rem 0;
  overflow:hidden;
}
.services-header{
  padding:0 4rem;
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:4rem;
}
.services-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--linen);line-height:1.05;
}
.services-title em{font-style:italic;color:var(--sage-light);}
.services-hint{
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);display:flex;align-items:center;gap:0.5rem;
}
.services-hint::before{content:'';width:30px;height:1px;background:currentColor;}

.services-track-wrap{
  overflow-x:auto;
  padding:0 4rem 2rem;
  scrollbar-width:none;
  cursor:grab;
  user-select:none;
}
.services-track-wrap:active{cursor:grabbing;}
.services-track-wrap::-webkit-scrollbar{display:none;}
.services-track{
  display:flex;gap:1.5rem;
  width:max-content;
}

.service-card{
  width:360px;flex-shrink:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.2rem;
  transition:background 0.3s, border-color 0.3s, transform 0.3s;
  cursor:pointer;
}
.service-card:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(92,127,101,0.3);
  transform:translateY(-4px);
}
.service-num{
  font-size:0.68rem;letter-spacing:0.2em;
  color:rgba(244,239,230,0.2);
}
.service-icon-wrap{
  width:48px;height:48px;
  border:1px solid rgba(92,127,101,0.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-light);
}
.service-name{
  font-family:var(--display);
  font-size:1.8rem;font-weight:300;
  color:var(--linen);line-height:1.1;
}
.service-desc{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  line-height:1.75;flex:1;
}
.service-arrow{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage-light);display:flex;align-items:center;gap:0.4rem;
  text-decoration:none;transition:gap 0.2s;
}
.service-card:hover .service-arrow{gap:0.8rem;}

/* ── WORKSHOP FEATURE: STICKY SCROLL ── */
.sticky-section{
  position:relative;
  background:var(--cream);
  color:var(--charcoal);
}
.sticky-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}
.sticky-left{
  position:sticky;top:0;
  height:100vh;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:6rem 5rem;
  background:linear-gradient(160deg,#0A3D2E 0%,#0E2A4A 100%);
  color:var(--linen);
}
.sticky-label{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:1.5rem;display:block;
}
.sticky-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,4vw,4rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.sticky-title em{font-style:italic;color:var(--earth-light);}
.sticky-desc{
  font-size:0.92rem;
  color:rgba(244,239,230,0.65);
  line-height:1.85;margin-bottom:2rem;max-width:400px;
}
.sticky-cta{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:0.75rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:var(--linen);
  border-bottom:1px solid rgba(244,239,230,0.3);
  padding-bottom:3px;
  transition:border-color 0.2s,gap 0.2s;
}
.sticky-cta:hover{border-color:var(--linen);gap:1rem;}

.sticky-right{padding:6rem 4rem;display:flex;flex-direction:column;gap:4rem;}

.workshop-item{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(26,26,24,0.1);
}
.workshop-item:last-child{border-bottom:none;}

.workshop-tag{
  display:inline-block;
  font-size:0.65rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--earth-light);
  background:rgba(59,159,212,0.1);
  padding:0.35rem 0.8rem;border-radius:2px;
  margin-bottom:1rem;
}
.workshop-title{
  font-family:var(--display);
  font-size:2rem;font-weight:400;
  color:var(--moss);margin-bottom:0.8rem;
}
.workshop-desc{
  font-size:0.88rem;color:var(--charcoal);
  opacity:0.65;line-height:1.8;margin-bottom:1.2rem;
}
.workshop-meta{
  display:flex;gap:2rem;flex-wrap:wrap;
}
.workshop-meta-item{
  font-size:0.78rem;color:var(--sage);
  display:flex;align-items:center;gap:0.4rem;
}
.workshop-meta-item::before{
  content:'';width:16px;height:1px;background:currentColor;
}

/* ── BRAND PROMISE ── */
.brand-promise{
  background:#0E2A4A;
  padding:10rem 4rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.brand-promise::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(26,95,158,0.35) 0%,transparent 70%);
}
.promise-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(244,239,230,0.5);margin-bottom:2rem;display:block;position:relative;
}
.promise-quote{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:300;font-style:italic;
  color:var(--linen);line-height:1.2;
  max-width:800px;margin:0 auto 2rem;position:relative;
}
.promise-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.6);
  position:relative;
}

/* ── NUMBERS ── */
.numbers-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,0.05);
}
.number-item{
  padding:2rem;
  border-right:1px solid rgba(255,255,255,0.05);
  text-align:center;
}
.number-item:last-child{border-right:none;}
.number-val{
  font-family:var(--display);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:300;color:var(--linen);
  display:block;line-height:1;margin-bottom:0.5rem;
}
.number-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);
}

/* ── WARM SECTION ── */
.warm-section{
  background:var(--linen);
  color:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
  max-width:1400px;margin:0 auto;
}
.warm-text {}
.warm-eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.2rem;display:block;
}
.warm-title{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.8rem);
  font-weight:300;color:var(--moss);
  line-height:1.1;margin-bottom:1.5rem;
}
.warm-title em{font-style:italic;color:var(--earth);}
.warm-body{
  font-size:0.95rem;opacity:0.65;
  line-height:1.9;margin-bottom:2rem;
}
.warm-cards{display:flex;flex-direction:column;gap:1rem;}
.warm-card{
  background:var(--cream);
  padding:1.5rem 1.8rem;border-radius:3px;
  border-left:2px solid var(--sage-light);
}
.warm-card-title{
  font-family:var(--display);font-size:1.1rem;font-weight:400;
  color:var(--moss);margin-bottom:0.4rem;
}
.warm-card-text{font-size:0.82rem;opacity:0.6;line-height:1.7;}

/* ── LOCATION ── */
.location-section{
  background:var(--moss);
  color:var(--linen);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
}
.location-text{}
.location-address{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.location-address em{font-style:italic;color:var(--earth-light);}
.location-hours{
  display:flex;flex-direction:column;gap:0.8rem;
  margin-bottom:2.5rem;
}
.location-hours-row{
  display:flex;justify-content:space-between;
  font-size:0.88rem;
  border-bottom:1px solid rgba(244,239,230,0.08);
  padding-bottom:0.8rem;
}
.location-hours-day{color:rgba(244,239,230,0.5);}
.location-hours-time{color:var(--linen);}
.location-map{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  height:320px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.map-placeholder{
  font-family:var(--display);font-size:1rem;
  color:rgba(244,239,230,0.2);font-style:italic;
}
.map-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.map-pin{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;
  background:var(--earth-light);border-radius:50%;
  box-shadow:0 0 0 8px rgba(26,95,158,0.2),0 0 0 16px rgba(26,95,158,0.08);
}

/* ── NEWSLETTER ── */
.newsletter-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.05);
}
.newsletter-title{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,4rem);
  font-weight:300;color:var(--linen);
  margin-bottom:0.8rem;
}
.newsletter-title em{font-style:italic;color:var(--sage-light);}
.newsletter-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.45);
  margin-bottom:3rem;
}
.newsletter-form{
  display:flex;justify-content:center;gap:0;max-width:480px;margin:0 auto;
}
.nl-input{
  flex:1;padding:1rem 1.4rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-right:none;
  color:var(--linen);outline:none;
  border-radius:2px 0 0 2px;
}
.nl-input::placeholder{color:rgba(244,239,230,0.25);}
.nl-btn{
  padding:1rem 1.8rem;
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  background:var(--sage);color:var(--linen);
  border:none;cursor:pointer;
  border-radius:0 2px 2px 0;
  transition:background 0.2s;
}
.nl-btn:hover{background:var(--sage-light);}

/* ── PARTNERS ── */
.partners-section{
  background:var(--charcoal);
  padding:4rem 4rem 6rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.04);
}
.partners-label{
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,239,230,0.2);margin-bottom:2.5rem;display:block;
}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  gap:4rem;flex-wrap:wrap;
}
.partner{
  font-family:var(--display);font-size:1.3rem;font-weight:300;
  color:rgba(244,239,230,0.15);letter-spacing:0.06em;
  transition:color 0.3s;cursor:default;
}
.partner:hover{color:rgba(244,239,230,0.4);}

/* ── FOOTER ── */
footer{
  background:#141412;
  color:var(--linen);
  padding:4rem 4rem 2.5rem;
  border-top:1px solid rgba(255,255,255,0.04);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-wrap:wrap;gap:2rem;
}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;}
.footer-brand span{font-weight:300;color:var(--sage-light);}
.footer-tagline{
  font-size:0.8rem;opacity:0.3;margin-top:0.5rem;
  font-style:italic;font-family:var(--display);
}
.footer-links-row{
  display:flex;gap:4rem;flex-wrap:wrap;
}
.footer-col-title{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.25);margin-bottom:1rem;display:block;
}
.footer-link-list{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer-link-list a{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  text-decoration:none;transition:color 0.2s;
}
.footer-link-list a:hover{color:var(--linen);}
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:0.72rem;color:rgba(244,239,230,0.2);
  flex-wrap:wrap;gap:0.5rem;
}

/* ── FLOATING BOTANICAL LINES (canvas hero) ── */
/* ── CHI SIAMO + ESPERIENZE ── */
.chi-siamo-full{background:var(--linen);color:var(--charcoal);padding:7rem 4rem;}
.chi-siamo-intro{max-width:700px;margin:0 auto 4rem;text-align:center;}
.chi-siamo-label{font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem;}
.chi-siamo-title{font-family:var(--display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.1;color:var(--moss);margin-bottom:1.5rem;}
.chi-siamo-title em{font-style:italic;color:var(--earth);}
.chi-siamo-text{font-size:1rem;line-height:1.85;color:var(--charcoal);opacity:0.65;}
.chi-siamo-divider{width:60px;height:2px;background:linear-gradient(to right,var(--sage-light),var(--earth-light));margin:0 auto 4rem;border-radius:2px;}
.chi-siamo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1100px;margin:0 auto;}
.chi-siamo-grid .cse-card:last-child:nth-child(3n+1){grid-column:2;}
.cse-card{background:var(--cream);border:1px solid rgba(10,61,46,0.08);border-radius:6px;padding:1.8rem;display:flex;flex-direction:column;gap:0.8rem;transition:background 0.2s,border-color 0.2s,transform 0.2s,box-shadow 0.2s;text-decoration:none;}
.cse-card:hover{background:#fff;border-color:rgba(61,186,126,0.35);transform:translateY(-3px);box-shadow:0 8px 30px rgba(10,61,46,0.08);}
.cse-tag{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);}
.cse-name{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--moss);line-height:1.1;}
.cse-desc{font-size:0.82rem;color:var(--charcoal);opacity:0.55;line-height:1.7;flex:1;}
.cse-link{font-size:0.7rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);display:flex;align-items:center;gap:0.4rem;transition:gap 0.2s,color 0.2s;margin-top:auto;}
.cse-card:hover .cse-link{gap:0.8rem;color:var(--moss);}
.cse-soon{opacity:0.45;}

/* ── TEAM BUILDING: layout cinematico ── */
.team-building {
  position: relative;
  overflow: hidden;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* foto a tutta pagina come sfondo */
.tb-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
/* overlay gradiente */
.tb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,61,46,0.85) 0%,
    rgba(10,15,26,0.6) 60%,
    rgba(26,95,158,0.75) 100%
  );
  z-index: 1;
}
.tb-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
/* testo principale — grande e diretto */
.tb-headline {
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1.0;
  color: var(--linen);
}
.tb-headline em {
  font-style: italic;
  background: linear-gradient(135deg, #3DBA7E, #3B9FD4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tb-label {
  font-size: 0.68rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: block;
  margin-bottom: 1.5rem;
}
.tb-text {
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242,242,240,0.65);
  margin: 1.8rem 0 2.5rem;
  max-width: 480px;
}
.tb-cta {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--charcoal);
  background: var(--sage-light);
  padding: 0.9rem 2.2rem;
  border-radius: 3px;
  transition: background 0.2s;
}
.tb-cta:hover { background: var(--earth-light); }
/* destra: 4 punti come stat-line */
.tb-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tb-stat {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tb-stat:last-child { border-bottom: none; }
.tb-stat-num {
  font-family: var(--display);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--sage-light);
  flex-shrink: 0;
  width: 80px;
}
.tb-stat-body {}
.tb-stat-title {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.tb-stat-desc {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.6;
}

@media (max-width: 768px) {
  .tb-content { grid-template-columns: 1fr; gap: 3rem; padding: 5rem 1.5rem; }
  .tb-stat-num { font-size: 2.5rem; width: 60px; }
}


/* ── WORKSHOP: layout a scorrimento cinematico ── */
.workshops-v2 {
  background: var(--charcoal);
  padding: 6rem 0;
  overflow: hidden;
}
.workshops-v2-header {
  padding: 0 4rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.workshops-v2-title {
  font-family: var(--display);
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
}
.workshops-v2-title em { font-style:italic; color:var(--sage-light); }
.workshops-v2-sub {
  font-size: 0.8rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.06em;
  text-align: right;
  max-width: 200px;
  line-height: 1.6;
}

/* Stack verticale: ogni workshop occupa tutta la larghezza, alternando foto sx/dx */
.ws-stack { display: flex; flex-direction: column; gap: 0; }

.ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.ws-item:nth-child(even) { direction: rtl; }
.ws-item:nth-child(even) > * { direction: ltr; }

.ws-item-photo {
  position: relative;
  overflow: hidden;
}
.ws-item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.7s ease;
  filter: brightness(0.85) saturate(0.85);
}
.ws-item:hover .ws-item-photo img {
  transform: scale(1.04);
  filter: brightness(0.95) saturate(1);
}

/* numero grande sovrapposto alla foto */
.ws-item-num {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  font-family: var(--display);
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,0.12);
  pointer-events: none;
  z-index: 2;
}

.ws-item-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
  background: var(--charcoal);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
/* accent line colorata sul bordo */
.ws-item-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-item:nth-child(even) .ws-item-body::before {
  left: auto; right: 0;
}

.ws-item-tag {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-light);
  margin-bottom: 1rem;
}
.ws-item-name {
  font-family: var(--display);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
  margin-bottom: 1.2rem;
}
.ws-item-desc {
  font-size: 0.9rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.8;
  margin-bottom: 2rem;
  max-width: 380px;
}
.ws-item-meta {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  font-size: 0.82rem;
  color: rgba(242,242,240,0.4);
}
.ws-item-meta strong {
  display: block;
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--linen);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ws-item-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--linen);
  border-bottom: 1px solid rgba(242,242,240,0.2);
  padding-bottom: 3px;
  width: fit-content;
  transition: border-color 0.2s, gap 0.2s;
}
.ws-item:hover .ws-item-cta {
  border-color: var(--sage-light);
  color: var(--sage-light);
  gap: 0.9rem;
}

@media (max-width: 768px) {
  .workshops-v2-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .ws-item { grid-template-columns: 1fr; min-height: auto; }
  .ws-item:nth-child(even) { direction: ltr; }
  .ws-item-photo { aspect-ratio: 4/3; }
  .ws-item-body { padding: 2.5rem 1.5rem; }
  .ws-item-body::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }
  .ws-item:nth-child(even) .ws-item-body::before { left: 0; right: 0; }
  .ws-item-num { font-size: 4rem; }
}
/* INFO BOXES */
.ws-info-boxes { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:3rem 0; }
.ws-info-box { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:6px;padding:2rem;text-align:center; }
.ws-info-box-icon { font-size:2rem;margin-bottom:0.8rem; }
.ws-info-box-title { font-family:var(--display);font-size:1.3rem;font-weight:600;color:var(--linen);margin-bottom:0.5rem; }
.ws-info-box-desc { font-size:0.82rem;color:rgba(242,242,240,0.5);line-height:1.65; }
.ws-info-box-link { display:inline-block;margin-top:1rem;font-size:0.72rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;color:var(--sage-light);border-bottom:1px solid rgba(61,186,126,0.3);padding-bottom:2px; }

/* WORKSHOP DETAIL */
.ws-detail { display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:5rem 4rem;max-width:1100px;margin:0 auto;align-items:center; }
.ws-detail.reverse { direction:rtl; }
.ws-detail.reverse > * { direction:ltr; }
.ws-detail-photo { border-radius:6px;overflow:hidden;aspect-ratio:4/3; }
.ws-detail-photo img { width:100%;height:100%;object-fit:cover;display:block;filter:brightness(0.9) saturate(0.88); }
.ws-detail-label { font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--sage-light);margin-bottom:1rem;display:block; }
.ws-detail-label.new { color:var(--earth-light); }
.ws-detail-title { font-family:var(--display);font-size:clamp(2.5rem,4vw,3.5rem);font-weight:600;color:var(--linen);line-height:1.05;margin-bottom:0.5rem; }
.ws-detail-subtitle { font-family:var(--display);font-style:italic;font-size:1.1rem;color:rgba(242,242,240,0.5);margin-bottom:1.5rem; }
.ws-detail-desc { font-size:0.9rem;color:rgba(242,242,240,0.6);line-height:1.85;margin-bottom:1.5rem; }
.ws-fact { display:flex;align-items:center;gap:1rem;padding:0.7rem 0;border-bottom:1px solid rgba(255,255,255,0.06);font-size:0.85rem;color:rgba(242,242,240,0.65); }
.ws-fact:last-child { border-bottom:none; }
.ws-fact::before { content:'';width:18px;height:1px;background:var(--sage-light);flex-shrink:0;display:block; }
.ws-detail-cta { display:inline-block;background:var(--sage-light);color:var(--charcoal);font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:0.9rem 2.2rem;border-radius:3px;margin-top:2rem;transition:background 0.2s; }
.ws-detail-cta:hover { background:#4dd494; }
.ws-divider { height:1px;background:rgba(255,255,255,0.07);margin:0 4rem; }

/* STEPS */
.ws-steps-section { background:rgba(255,255,255,0.02);padding:5rem 4rem;border-top:1px solid rgba(255,255,255,0.06);border-bottom:1px solid rgba(255,255,255,0.06); }
.ws-steps-title { font-family:var(--display);font-size:clamp(2rem,3.5vw,3rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.ws-steps-title em { font-style:italic;color:var(--sage-light); }
.ws-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1100px;margin:0 auto; }
.ws-step-num { font-family:var(--display);font-size:4rem;font-weight:300;color:rgba(61,186,126,0.15);line-height:1;margin-bottom:0.5rem; }
.ws-step-title { font-family:var(--display);font-size:1.2rem;font-weight:600;color:var(--linen);margin-bottom:0.5rem; }
.ws-step-desc { font-size:0.82rem;color:rgba(242,242,240,0.5);line-height:1.65; }

/* GROUPS */
.ws-groups { padding:5rem 4rem;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:2rem; }
.ws-group-card { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:6px;padding:2.5rem; }
.ws-group-card.featured { background:linear-gradient(135deg,rgba(10,61,46,0.4),rgba(26,95,158,0.25));border-color:rgba(61,186,126,0.2); }
.ws-group-title { font-family:var(--display);font-size:1.8rem;font-weight:600;color:var(--linen);margin-bottom:0.8rem; }
.ws-group-desc { font-size:0.85rem;color:rgba(242,242,240,0.55);line-height:1.75;margin-bottom:1.5rem; }
.ws-group-link { font-size:0.75rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;color:var(--sage-light);border-bottom:1px solid rgba(61,186,126,0.3);padding-bottom:2px; }

/* CTA FINALE */
.ws-cta-final { background:var(--moss);padding:5rem 4rem;text-align:center; }
.ws-cta-final-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--linen);margin-bottom:1rem; }
.ws-cta-final-title em { font-style:italic;color:var(--sage-light); }
.ws-cta-final-sub { font-size:0.9rem;color:rgba(242,242,240,0.6);margin-bottom:2rem; }
.ws-cta-final-btns { display:flex;gap:1rem;justify-content:center;flex-wrap:wrap; }
.ws-cta-btn-mail { display:inline-block;font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;color:var(--linen);border:1px solid rgba(242,242,240,0.3);padding:0.85rem 2rem;border-radius:3px;transition:all 0.2s; }
.ws-cta-btn-mail:hover { border-color:var(--linen); }

@media(max-width:768px){
  .page-hero { padding:7rem 1.5rem 4rem; }
  .ws-info-boxes { grid-template-columns:1fr; }
  .ws-detail,.ws-steps-section,.ws-groups,.ws-cta-final { padding:3rem 1.5rem; }
  .ws-detail { grid-template-columns:1fr; }
  .ws-detail.reverse { direction:ltr; }
  .ws-steps { grid-template-columns:1fr; }
  .ws-groups { grid-template-columns:1fr; }
  .ws-divider { margin:0 1.5rem; }
}

@media(max-width:768px){
  .hero-cards { grid-template-columns: 1fr; }
  .hero-card { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .hero-card:last-child { border-bottom: none; }
}


@media(max-width:768px){
  .ws-intro-section { padding: 4rem 1.5rem; }
  .ws-intro-inner { grid-template-columns:1fr; gap:3rem; }
}


/* ── HERO WORKSHOP: menu grafico a 5 sezioni ── */
.page-hero {
  padding: 10rem 4rem 6rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.page-hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url('');
  background-size: cover;
  background-position: center 35%;
  filter: brightness(0.2) saturate(0.6);
  z-index: 0;
}
.page-hero::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(10,15,26,0.5) 0%, rgba(10,15,26,0.9) 100%);
  z-index: 1;
}

/* titolo in alto */
.hero-top {
  position: relative; z-index: 2;
  padding: 4rem 4rem 3rem;
  text-align: center;
}
.page-hero-label, .page-hero-title, .page-hero-sub { position: relative; z-index: 2; }
.page-hero-label {
  font-size: 0.68rem; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--sage-light); display: block; margin-bottom: 1rem;
}
.page-hero-title {
  font-family: var(--display);
  font-size: clamp(3rem,7vw,7rem);
  font-weight: 600; color: var(--linen); line-height: 1.0;
}
.page-hero-title em {
  font-style: italic;
  background: linear-gradient(135deg,#3DBA7E,#3B9FD4);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* griglia 5 sezioni — occupa il resto della pagina */
.hero-nav-grid {
  position: relative; z-index: 2;
  flex: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr 1fr;
  border-top: 1px solid rgba(255,255,255,0.08);
}

/* prima riga: 3 celle */
/* seconda riga: 2 celle centrate */
.hero-nav-item {
  border-right: 1px solid rgba(255,255,255,0.08);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  transition: background 0.3s;
  position: relative;
  overflow: hidden;
  min-height: 180px;
}
.hero-nav-item:nth-child(3) { border-right: none; }
.hero-nav-item:nth-child(4) { border-bottom: none; grid-column: 1; }
.hero-nav-item:nth-child(5) { border-bottom: none; border-right: none; grid-column: 2; }

.hero-nav-item:hover { background: rgba(255,255,255,0.05); }
.hero-nav-item.accent {
  background: rgba(61,186,126,0.1);
  border-color: rgba(61,186,126,0.2);
}
.hero-nav-item.accent:hover { background: rgba(61,186,126,0.18); }

/* numero di sfondo decorativo */
.hero-nav-num {
  position: absolute;
  top: 1rem; right: 1.5rem;
  font-family: var(--display);
  font-size: 4rem;
  font-weight: 600;
  color: rgba(255,255,255,0.04);
  line-height: 1;
  pointer-events: none;
}
.hero-nav-title {
  font-family: var(--display);
  font-size: clamp(1.2rem, 2vw, 1.8rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.1;
  position: relative; z-index: 1;
}
.hero-nav-item.accent .hero-nav-title { color: var(--linen); }
.hero-nav-desc {
  font-size: 0.78rem;
  color: rgba(242,242,240,0.45);
  line-height: 1.5;
  max-width: 280px;
  position: relative; z-index: 1;
}
.hero-nav-arrow {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: flex; align-items: center; gap: 0.4rem;
  position: relative; z-index: 1;
  transition: gap 0.2s;
}
.hero-nav-item:hover .hero-nav-arrow { gap: 0.7rem; }

@media(max-width:768px){
  .hero-top { padding: 2rem 1.5rem; }
  .hero-nav-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .hero-nav-item { border-right: none; min-height: 120px; }
  .hero-nav-item:nth-child(3) { border-right: none; }
  .hero-nav-item:nth-child(4),
  .hero-nav-item:nth-child(5) { grid-column: 1; border-bottom: 1px solid rgba(255,255,255,0.08); }
  .hero-nav-item:nth-child(5) { border-bottom: none; }
}


/* ── HERO NAV CON IMMAGINI ── */
.hero-nav-grid {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr 1fr;
}
.hero-nav-item {
  padding: 0;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 220px;
}
.hero-nav-item:nth-child(3) { border-right: none; }
.hero-nav-item:nth-child(4) { border-bottom: none; grid-column: auto; }
.hero-nav-item:nth-child(5) { border-bottom: none; border-right: none; grid-column: auto; }
.hero-nav-item:nth-child(6) { border-bottom: none; border-right: none; }

/* foto/illustrazione in cima */
.hero-nav-photo {
  width: 100%;
  height: 130px;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: brightness(0.75) saturate(0.8);
  flex-shrink: 0;
  transition: filter 0.3s;
}
.hero-nav-item:hover .hero-nav-photo { filter: brightness(0.9) saturate(1); }
.hero-nav-svg {
  width: 100%;
  height: 130px;
  display: block;
  flex-shrink: 0;
}

/* testo in basso */
.hero-nav-body {
  padding: 1.2rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
  justify-content: space-between;
}
.hero-nav-title {
  font-size: clamp(1rem, 1.6vw, 1.4rem);
}
.hero-nav-desc { font-size: 0.75rem; }

@media(max-width:768px){
  .hero-nav-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
  .hero-nav-item { min-height: auto; }
  .hero-nav-item:nth-child(3) { border-right: 1px solid rgba(255,255,255,0.08); }
  .hero-nav-item:nth-child(4),
  .hero-nav-item:nth-child(5),
  .hero-nav-item:nth-child(6) { border-bottom: 1px solid rgba(255,255,255,0.08); }
  .hero-nav-item:nth-child(5),
  .hero-nav-item:nth-child(6) { border-right: none; }
}


/* ── SEZIONI ALTERNATE ── */
.ws-alt-section {
  padding: 0;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.ws-alt-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 500px;
}
.ws-alt-inner.reverse { direction: rtl; }
.ws-alt-inner.reverse > * { direction: ltr; }

.ws-alt-photo {
  overflow: hidden;
  position: relative;
}
.ws-alt-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  filter: brightness(0.85) saturate(0.85);
  transition: filter 0.4s, transform 0.5s;
}
.ws-alt-section:hover .ws-alt-photo img {
  filter: brightness(0.95) saturate(1);
  transform: scale(1.02);
}
.ws-alt-photo-svg {
  width: 100%; height: 100%;
  min-height: 400px;
  background: var(--moss);
  display: flex; align-items: center; justify-content: center;
}

.ws-alt-body {
  padding: 4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--charcoal);
  position: relative;
}
.ws-alt-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-alt-inner.reverse .ws-alt-body::before {
  left: auto; right: 0;
}

.ws-alt-num {
  font-family: var(--display);
  font-size: 5rem; font-weight: 300;
  color: rgba(255,255,255,0.04);
  line-height: 1;
  position: absolute;
  top: 2rem; right: 2rem;
}
.ws-alt-label {
  font-size: 0.65rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--sage-light);
  margin-bottom: 1rem; display: block;
}
.ws-alt-title {
  font-family: var(--display);
  font-size: clamp(2rem,3.5vw,3rem);
  font-weight: 600; color: var(--linen);
  line-height: 1.05; margin-bottom: 0.8rem;
}
.ws-alt-desc {
  font-size: 0.9rem; color: rgba(242,242,240,0.55);
  line-height: 1.85; margin-bottom: 2rem;
  max-width: 420px;
}
.ws-alt-cta {
  display: inline-block;
  background: var(--sage-light); color: var(--charcoal);
  font-size: 0.75rem; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none; padding: 0.85rem 2rem;
  border-radius: 3px; width: fit-content;
  transition: background 0.2s;
}
.ws-alt-cta:hover { background: #4dd494; }
.ws-alt-cta-ghost {
  display: inline-block;
  border: 1px solid rgba(255,255,255,0.2); color: var(--linen);
  font-size: 0.75rem; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none; padding: 0.85rem 2rem;
  border-radius: 3px; width: fit-content;
  transition: border-color 0.2s;
}
.ws-alt-cta-ghost:hover { border-color: var(--sage-light); color: var(--sage-light); }
.ws-alt-btns { display: flex; gap: 0.8rem; flex-wrap: wrap; }

@media(max-width:768px){{
  .ws-alt-inner, .ws-alt-inner.reverse {{ grid-template-columns: 1fr; direction: ltr; }}
  .ws-alt-photo {{ min-height: 280px; }}
  .ws-alt-body {{ padding: 2.5rem 1.5rem; }}
  .ws-alt-body::before {{ top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }}
  .ws-alt-inner.reverse .ws-alt-body::before {{ left: 0; right: 0; }}
}}


/* ── HERO ── */
.hero-main-cta {
  display: inline-block;
  background: var(--sage-light);
  color: var(--charcoal);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 1.1rem 3rem;
  border-radius: 3px;
  position: relative; z-index: 2;
  margin-top: 1rem;
  transition: background 0.2s, transform 0.15s;
}
.hero-main-cta:hover { background: #4dd494; transform: translateY(-2px); }

.hero-sub-links {
  position: relative; z-index: 2;
  margin-top: 3.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  width: 100%;
  max-width: 800px;
  text-align: center;
}
.hero-sub-label {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(242,242,240,0.3);
  margin-bottom: 1rem;
}
.hero-sub-items {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.hero-sub-item {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.55);
  text-decoration: none;
  transition: color 0.2s;
}
.hero-sub-item:hover { color: var(--sage-light); }
.hero-sub-dot {
  color: rgba(242,242,240,0.2);
  font-size: 0.7rem;
}

@media(max-width:768px){
  .hero-sub-dot { display: none; }
  .hero-sub-items { flex-direction: column; gap: 0.6rem; }
}


/* ── SEZIONE OPZIONI ── */
.ws-options {
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  padding: 2.5rem 4rem;
  display: flex;
  align-items: center;
  gap: 3rem;
}
.ws-options-label {
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(242,242,240,0.3);
  white-space: nowrap;
  flex-shrink: 0;
}
.ws-options-list {
  display: flex;
  gap: 0;
  flex: 1;
  border-left: 1px solid rgba(255,255,255,0.08);
}
.ws-option-item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.9rem 1.5rem;
  text-decoration: none;
  border-right: 1px solid rgba(255,255,255,0.08);
  transition: background 0.2s;
}
.ws-option-item:hover { background: rgba(255,255,255,0.05); }
.ws-option-item:hover .ws-option-title { color: var(--sage-light); }
.ws-option-item:hover .ws-option-arrow { color: var(--sage-light); transform: translateX(3px); }
.ws-option-title {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.6);
  transition: color 0.2s;
}
.ws-option-arrow {
  font-size: 0.75rem;
  color: rgba(242,242,240,0.25);
  transition: color 0.2s, transform 0.2s;
}

@media(max-width:768px){
  .ws-options { flex-direction: column; gap: 1.5rem; padding: 2rem 1.5rem; }
  .ws-options-list { flex-direction: column; border-left: none; border-top: 1px solid rgba(255,255,255,0.08); }
  .ws-option-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }
}


/* ── SCROLL HINT ── */
.hero-scroll-hint {
  position: relative; z-index: 2;
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
}
.hero-scroll-text {
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(242,242,240,0.4);
}
.hero-scroll-arrow {
  animation: bounceDown 2s infinite ease-in-out;
}
@keyframes bounceDown {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(6px); }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --moss:#0A3D2E;
  --sage:#1A6B4A;
  --sage-light:#3DBA7E;
  --earth:#1A5F9E;
  --earth-light:#3B9FD4;
  --linen:#F2F2F0;
  --cream:#FAFAFA;
  --charcoal:#0A0F1A;
  --mist:#E8F5EE;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--body);
  background:var(--charcoal);
  color:var(--linen);
  overflow-x:hidden;
}

/* CUSTOM CURSOR */
.cursor{
  position:fixed;
  width:10px;height:10px;
  background:var(--sage-light);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s ease;
  mix-blend-mode:normal;
}
.cursor-ring{
  position:fixed;
  width:36px;height:36px;
  border:1px solid rgba(61,186,126,0.4);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:transform 0.18s ease, width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
}
body:has(a:hover) .cursor,.cursor.hover{width:6px;height:6px;background:var(--earth-light);}
body:has(a:hover) .cursor-ring,.cursor-ring.hover{width:52px;height:52px;border-color:rgba(59,159,212,0.5);}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3.5rem;
  transition:background 0.5s ease, border-color 0.5s ease;
}
nav.scrolled{
  background:rgba(26,26,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-logo{
  font-family:var(--display);
  font-size:1.2rem;font-weight:600;
  color:var(--linen);letter-spacing:0.1em;
  text-decoration:none;text-transform:uppercase;
}
.nav-logo span{font-weight:300;color:var(--sage-light);}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,239,230,0.6);
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--linen);}
.nav-cta{
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  text-decoration:none;color:var(--charcoal);
  background:var(--linen);
  padding:0.55rem 1.3rem;border-radius:2px;
  transition:background 0.2s,color 0.2s;
}
.nav-cta:hover{background:var(--sage-light);color:var(--charcoal);}

/* ── HERO: FULL-SCREEN CINEMATIC ── */
.hero{
  position:relative;
  height:100vh;min-height:700px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-bg-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
}
.hero-content{
  position:relative;z-index:10;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-eyebrow{
  font-size:0.68rem;font-weight:400;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s 0.5s ease forwards;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:300;line-height:0.95;
  color:var(--linen);
  opacity:0;animation:fadeUp 1.1s 0.8s ease forwards;
}
.hero-title em{
  font-style:italic;
  background:linear-gradient(135deg,#3DBA7E 0%,#3B9FD4 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  font-size:clamp(0.9rem,1.5vw,1.1rem);
  color:rgba(244,239,230,0.55);
  line-height:1.8;margin-top:2rem;max-width:500px;
  opacity:0;animation:fadeUp 1s 1.2s ease forwards;
}
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  opacity:0;animation:fadeUp 1s 2s ease forwards;
}
.hero-scroll span{
  font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.35);
}
.scroll-line{
  width:1px;height:50px;background:rgba(92,127,101,0.4);
  animation:scrollPulse 2s infinite;
}
@keyframes scrollPulse{
  0%{transform:scaleY(0);transform-origin:top;opacity:0;}
  50%{opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── MANIFESTO SECTION ── */
.manifesto{
  background:var(--linen);
  color:var(--charcoal);
  padding:12rem 4rem;
  display:flex;align-items:center;justify-content:center;
}
.manifesto-inner{max-width:900px;text-align:center;}
.manifesto-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;display:block;
}
.manifesto-text{
  font-family:var(--display);
  font-size:clamp(2.2rem,5vw,4.5rem);
  font-weight:300;line-height:1.15;
  color:var(--moss);
}
.manifesto-text em{font-style:italic;color:var(--earth);}
.manifesto-small{
  margin-top:2.5rem;
  font-size:1rem;color:var(--charcoal);
  opacity:0.6;line-height:1.85;max-width:560px;margin-left:auto;margin-right:auto;
}

/* ── SCROLL REVEAL ── */
.reveal{
  opacity:0;transform:translateY(50px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.15s;}
.reveal-delay-2{transition-delay:0.3s;}
.reveal-delay-3{transition-delay:0.45s;}

/* ── HORIZONTAL SERVICES SCROLL ── */
.services-section{
  background:var(--charcoal);
  padding:8rem 0;
  overflow:hidden;
}
.services-header{
  padding:0 4rem;
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:4rem;
}
.services-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--linen);line-height:1.05;
}
.services-title em{font-style:italic;color:var(--sage-light);}
.services-hint{
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);display:flex;align-items:center;gap:0.5rem;
}
.services-hint::before{content:'';width:30px;height:1px;background:currentColor;}

.services-track-wrap{
  overflow-x:auto;
  padding:0 4rem 2rem;
  scrollbar-width:none;
  cursor:grab;
  user-select:none;
}
.services-track-wrap:active{cursor:grabbing;}
.services-track-wrap::-webkit-scrollbar{display:none;}
.services-track{
  display:flex;gap:1.5rem;
  width:max-content;
}

.service-card{
  width:360px;flex-shrink:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.2rem;
  transition:background 0.3s, border-color 0.3s, transform 0.3s;
  cursor:pointer;
}
.service-card:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(92,127,101,0.3);
  transform:translateY(-4px);
}
.service-num{
  font-size:0.68rem;letter-spacing:0.2em;
  color:rgba(244,239,230,0.2);
}
.service-icon-wrap{
  width:48px;height:48px;
  border:1px solid rgba(92,127,101,0.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-light);
}
.service-name{
  font-family:var(--display);
  font-size:1.8rem;font-weight:300;
  color:var(--linen);line-height:1.1;
}
.service-desc{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  line-height:1.75;flex:1;
}
.service-arrow{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage-light);display:flex;align-items:center;gap:0.4rem;
  text-decoration:none;transition:gap 0.2s;
}
.service-card:hover .service-arrow{gap:0.8rem;}

/* ── WORKSHOP FEATURE: STICKY SCROLL ── */
.sticky-section{
  position:relative;
  background:var(--cream);
  color:var(--charcoal);
}
.sticky-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}
.sticky-left{
  position:sticky;top:0;
  height:100vh;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:6rem 5rem;
  background:linear-gradient(160deg,#0A3D2E 0%,#0E2A4A 100%);
  color:var(--linen);
}
.sticky-label{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:1.5rem;display:block;
}
.sticky-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,4vw,4rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.sticky-title em{font-style:italic;color:var(--earth-light);}
.sticky-desc{
  font-size:0.92rem;
  color:rgba(244,239,230,0.65);
  line-height:1.85;margin-bottom:2rem;max-width:400px;
}
.sticky-cta{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:0.75rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:var(--linen);
  border-bottom:1px solid rgba(244,239,230,0.3);
  padding-bottom:3px;
  transition:border-color 0.2s,gap 0.2s;
}
.sticky-cta:hover{border-color:var(--linen);gap:1rem;}

.sticky-right{padding:6rem 4rem;display:flex;flex-direction:column;gap:4rem;}

.workshop-item{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(26,26,24,0.1);
}
.workshop-item:last-child{border-bottom:none;}

.workshop-tag{
  display:inline-block;
  font-size:0.65rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--earth-light);
  background:rgba(59,159,212,0.1);
  padding:0.35rem 0.8rem;border-radius:2px;
  margin-bottom:1rem;
}
.workshop-title{
  font-family:var(--display);
  font-size:2rem;font-weight:400;
  color:var(--moss);margin-bottom:0.8rem;
}
.workshop-desc{
  font-size:0.88rem;color:var(--charcoal);
  opacity:0.65;line-height:1.8;margin-bottom:1.2rem;
}
.workshop-meta{
  display:flex;gap:2rem;flex-wrap:wrap;
}
.workshop-meta-item{
  font-size:0.78rem;color:var(--sage);
  display:flex;align-items:center;gap:0.4rem;
}
.workshop-meta-item::before{
  content:'';width:16px;height:1px;background:currentColor;
}

/* ── BRAND PROMISE ── */
.brand-promise{
  background:#0E2A4A;
  padding:10rem 4rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.brand-promise::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(26,95,158,0.35) 0%,transparent 70%);
}
.promise-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(244,239,230,0.5);margin-bottom:2rem;display:block;position:relative;
}
.promise-quote{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:300;font-style:italic;
  color:var(--linen);line-height:1.2;
  max-width:800px;margin:0 auto 2rem;position:relative;
}
.promise-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.6);
  position:relative;
}

/* ── NUMBERS ── */
.numbers-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,0.05);
}
.number-item{
  padding:2rem;
  border-right:1px solid rgba(255,255,255,0.05);
  text-align:center;
}
.number-item:last-child{border-right:none;}
.number-val{
  font-family:var(--display);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:300;color:var(--linen);
  display:block;line-height:1;margin-bottom:0.5rem;
}
.number-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);
}

/* ── WARM SECTION ── */
.warm-section{
  background:var(--linen);
  color:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
  max-width:1400px;margin:0 auto;
}
.warm-text {}
.warm-eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.2rem;display:block;
}
.warm-title{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.8rem);
  font-weight:300;color:var(--moss);
  line-height:1.1;margin-bottom:1.5rem;
}
.warm-title em{font-style:italic;color:var(--earth);}
.warm-body{
  font-size:0.95rem;opacity:0.65;
  line-height:1.9;margin-bottom:2rem;
}
.warm-cards{display:flex;flex-direction:column;gap:1rem;}
.warm-card{
  background:var(--cream);
  padding:1.5rem 1.8rem;border-radius:3px;
  border-left:2px solid var(--sage-light);
}
.warm-card-title{
  font-family:var(--display);font-size:1.1rem;font-weight:400;
  color:var(--moss);margin-bottom:0.4rem;
}
.warm-card-text{font-size:0.82rem;opacity:0.6;line-height:1.7;}

/* ── LOCATION ── */
.location-section{
  background:var(--moss);
  color:var(--linen);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
}
.location-text{}
.location-address{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.location-address em{font-style:italic;color:var(--earth-light);}
.location-hours{
  display:flex;flex-direction:column;gap:0.8rem;
  margin-bottom:2.5rem;
}
.location-hours-row{
  display:flex;justify-content:space-between;
  font-size:0.88rem;
  border-bottom:1px solid rgba(244,239,230,0.08);
  padding-bottom:0.8rem;
}
.location-hours-day{color:rgba(244,239,230,0.5);}
.location-hours-time{color:var(--linen);}
.location-map{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  height:320px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.map-placeholder{
  font-family:var(--display);font-size:1rem;
  color:rgba(244,239,230,0.2);font-style:italic;
}
.map-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.map-pin{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;
  background:var(--earth-light);border-radius:50%;
  box-shadow:0 0 0 8px rgba(26,95,158,0.2),0 0 0 16px rgba(26,95,158,0.08);
}

/* ── NEWSLETTER ── */
.newsletter-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.05);
}
.newsletter-title{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,4rem);
  font-weight:300;color:var(--linen);
  margin-bottom:0.8rem;
}
.newsletter-title em{font-style:italic;color:var(--sage-light);}
.newsletter-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.45);
  margin-bottom:3rem;
}
.newsletter-form{
  display:flex;justify-content:center;gap:0;max-width:480px;margin:0 auto;
}
.nl-input{
  flex:1;padding:1rem 1.4rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-right:none;
  color:var(--linen);outline:none;
  border-radius:2px 0 0 2px;
}
.nl-input::placeholder{color:rgba(244,239,230,0.25);}
.nl-btn{
  padding:1rem 1.8rem;
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  background:var(--sage);color:var(--linen);
  border:none;cursor:pointer;
  border-radius:0 2px 2px 0;
  transition:background 0.2s;
}
.nl-btn:hover{background:var(--sage-light);}

/* ── PARTNERS ── */
.partners-section{
  background:var(--charcoal);
  padding:4rem 4rem 6rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.04);
}
.partners-label{
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,239,230,0.2);margin-bottom:2.5rem;display:block;
}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  gap:4rem;flex-wrap:wrap;
}
.partner{
  font-family:var(--display);font-size:1.3rem;font-weight:300;
  color:rgba(244,239,230,0.15);letter-spacing:0.06em;
  transition:color 0.3s;cursor:default;
}
.partner:hover{color:rgba(244,239,230,0.4);}

/* ── FOOTER ── */
footer{
  background:#141412;
  color:var(--linen);
  padding:4rem 4rem 2.5rem;
  border-top:1px solid rgba(255,255,255,0.04);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-wrap:wrap;gap:2rem;
}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;}
.footer-brand span{font-weight:300;color:var(--sage-light);}
.footer-tagline{
  font-size:0.8rem;opacity:0.3;margin-top:0.5rem;
  font-style:italic;font-family:var(--display);
}
.footer-links-row{
  display:flex;gap:4rem;flex-wrap:wrap;
}
.footer-col-title{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.25);margin-bottom:1rem;display:block;
}
.footer-link-list{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer-link-list a{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  text-decoration:none;transition:color 0.2s;
}
.footer-link-list a:hover{color:var(--linen);}
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:0.72rem;color:rgba(244,239,230,0.2);
  flex-wrap:wrap;gap:0.5rem;
}

/* ── FLOATING BOTANICAL LINES (canvas hero) ── */
/* ── CHI SIAMO + ESPERIENZE ── */
.chi-siamo-full{background:var(--linen);color:var(--charcoal);padding:7rem 4rem;}
.chi-siamo-intro{max-width:700px;margin:0 auto 4rem;text-align:center;}
.chi-siamo-label{font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem;}
.chi-siamo-title{font-family:var(--display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.1;color:var(--moss);margin-bottom:1.5rem;}
.chi-siamo-title em{font-style:italic;color:var(--earth);}
.chi-siamo-text{font-size:1rem;line-height:1.85;color:var(--charcoal);opacity:0.65;}
.chi-siamo-divider{width:60px;height:2px;background:linear-gradient(to right,var(--sage-light),var(--earth-light));margin:0 auto 4rem;border-radius:2px;}
.chi-siamo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1100px;margin:0 auto;}
.chi-siamo-grid .cse-card:last-child:nth-child(3n+1){grid-column:2;}
.cse-card{background:var(--cream);border:1px solid rgba(10,61,46,0.08);border-radius:6px;padding:1.8rem;display:flex;flex-direction:column;gap:0.8rem;transition:background 0.2s,border-color 0.2s,transform 0.2s,box-shadow 0.2s;text-decoration:none;}
.cse-card:hover{background:#fff;border-color:rgba(61,186,126,0.35);transform:translateY(-3px);box-shadow:0 8px 30px rgba(10,61,46,0.08);}
.cse-tag{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);}
.cse-name{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--moss);line-height:1.1;}
.cse-desc{font-size:0.82rem;color:var(--charcoal);opacity:0.55;line-height:1.7;flex:1;}
.cse-link{font-size:0.7rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);display:flex;align-items:center;gap:0.4rem;transition:gap 0.2s,color 0.2s;margin-top:auto;}
.cse-card:hover .cse-link{gap:0.8rem;color:var(--moss);}
.cse-soon{opacity:0.45;}

/* ── TEAM BUILDING: layout cinematico ── */
.team-building {
  position: relative;
  overflow: hidden;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* foto a tutta pagina come sfondo */
.tb-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
/* overlay gradiente */
.tb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,61,46,0.85) 0%,
    rgba(10,15,26,0.6) 60%,
    rgba(26,95,158,0.75) 100%
  );
  z-index: 1;
}
.tb-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
/* testo principale — grande e diretto */
.tb-headline {
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1.0;
  color: var(--linen);
}
.tb-headline em {
  font-style: italic;
  background: linear-gradient(135deg, #3DBA7E, #3B9FD4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tb-label {
  font-size: 0.68rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: block;
  margin-bottom: 1.5rem;
}
.tb-text {
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242,242,240,0.65);
  margin: 1.8rem 0 2.5rem;
  max-width: 480px;
}
.tb-cta {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--charcoal);
  background: var(--sage-light);
  padding: 0.9rem 2.2rem;
  border-radius: 3px;
  transition: background 0.2s;
}
.tb-cta:hover { background: var(--earth-light); }
/* destra: 4 punti come stat-line */
.tb-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tb-stat {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tb-stat:last-child { border-bottom: none; }
.tb-stat-num {
  font-family: var(--display);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--sage-light);
  flex-shrink: 0;
  width: 80px;
}
.tb-stat-body {}
.tb-stat-title {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.tb-stat-desc {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.6;
}

@media (max-width: 768px) {
  .tb-content { grid-template-columns: 1fr; gap: 3rem; padding: 5rem 1.5rem; }
  .tb-stat-num { font-size: 2.5rem; width: 60px; }
}


/* ── WORKSHOP: layout a scorrimento cinematico ── */
.workshops-v2 {
  background: var(--charcoal);
  padding: 6rem 0;
  overflow: hidden;
}
.workshops-v2-header {
  padding: 0 4rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.workshops-v2-title {
  font-family: var(--display);
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
}
.workshops-v2-title em { font-style:italic; color:var(--sage-light); }
.workshops-v2-sub {
  font-size: 0.8rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.06em;
  text-align: right;
  max-width: 200px;
  line-height: 1.6;
}

/* Stack verticale: ogni workshop occupa tutta la larghezza, alternando foto sx/dx */
.ws-stack { display: flex; flex-direction: column; gap: 0; }

.ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.ws-item:nth-child(even) { direction: rtl; }
.ws-item:nth-child(even) > * { direction: ltr; }

.ws-item-photo {
  position: relative;
  overflow: hidden;
}
.ws-item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.7s ease;
  filter: brightness(0.85) saturate(0.85);
}
.ws-item:hover .ws-item-photo img {
  transform: scale(1.04);
  filter: brightness(0.95) saturate(1);
}

/* numero grande sovrapposto alla foto */
.ws-item-num {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  font-family: var(--display);
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,0.12);
  pointer-events: none;
  z-index: 2;
}

.ws-item-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
  background: var(--charcoal);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
/* accent line colorata sul bordo */
.ws-item-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-item:nth-child(even) .ws-item-body::before {
  left: auto; right: 0;
}

.ws-item-tag {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-light);
  margin-bottom: 1rem;
}
.ws-item-name {
  font-family: var(--display);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
  margin-bottom: 1.2rem;
}
.ws-item-desc {
  font-size: 0.9rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.8;
  margin-bottom: 2rem;
  max-width: 380px;
}
.ws-item-meta {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  font-size: 0.82rem;
  color: rgba(242,242,240,0.4);
}
.ws-item-meta strong {
  display: block;
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--linen);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ws-item-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--linen);
  border-bottom: 1px solid rgba(242,242,240,0.2);
  padding-bottom: 3px;
  width: fit-content;
  transition: border-color 0.2s, gap 0.2s;
}
.ws-item:hover .ws-item-cta {
  border-color: var(--sage-light);
  color: var(--sage-light);
  gap: 0.9rem;
}

@media (max-width: 768px) {
  .workshops-v2-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .ws-item { grid-template-columns: 1fr; min-height: auto; }
  .ws-item:nth-child(even) { direction: ltr; }
  .ws-item-photo { aspect-ratio: 4/3; }
  .ws-item-body { padding: 2.5rem 1.5rem; }
  .ws-item-body::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }
  .ws-item:nth-child(even) .ws-item-body::before { left: 0; right: 0; }
  .ws-item-num { font-size: 4rem; }
}
/* ── PAGINA TEAM BUILDING ── */
.page-hero {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
}
.page-hero-bg {
  position: absolute; inset: 0;
  background-image: url('');
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
.page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,15,26,0.95) 0%, rgba(10,15,26,0.3) 60%, transparent 100%);
  z-index: 1;
}
.page-hero-content {
  position: relative; z-index: 2;
  padding: 0 4rem 5rem;
  max-width: 800px;
}
.page-hero-label { font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage-light);display:block;margin-bottom:1.5rem; }
.page-hero-title { font-family:var(--display);font-size:clamp(3.5rem,7vw,7rem);font-weight:600;color:var(--linen);line-height:1.0;margin-bottom:1.2rem; }
.page-hero-title em { font-style:italic;background:linear-gradient(135deg,#3DBA7E,#3B9FD4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.page-hero-sub { font-size:1.05rem;color:rgba(242,242,240,0.6);max-width:560px;line-height:1.75;margin-bottom:2.5rem; }
.hero-main-cta {
  display: inline-block;
  background: var(--sage-light); color: var(--charcoal);
  font-size: 0.88rem; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none; padding: 1.1rem 3rem;
  border-radius: 3px; transition: background 0.2s;
}
.hero-main-cta:hover { background: #4dd494; }

/* SEZIONE PERCHÉ — foto a tutta larghezza sopra */
.tb-fullphoto {
  width: 100%; height: 60vh;
  overflow: hidden; position: relative;
}
.tb-fullphoto img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  filter: brightness(0.75) saturate(0.85);
}
.tb-fullphoto-caption {
  position: absolute; bottom: 2rem; left: 4rem;
  font-family: var(--display); font-style: italic;
  font-size: 1.5rem; color: var(--linen); opacity: 0.8;
  z-index: 2;
}

/* PERCHÉ */
.tb-perche { background: var(--linen); color: var(--charcoal); padding: 5rem 4rem; }
.tb-perche-inner { max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start; }
.tb-perche-label { font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem; }
.tb-perche-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--moss);line-height:1.1;margin-bottom:1.5rem; }
.tb-perche-title em { font-style:italic;color:var(--earth); }
.tb-perche-text { font-size:0.95rem;color:var(--charcoal);opacity:0.65;line-height:1.9;margin-bottom:2rem; }
.tb-punti { display:flex;flex-direction:column;gap:0; }
.tb-punto { display:flex;gap:1.5rem;align-items:flex-start;padding:1.2rem 0;border-bottom:1px solid rgba(10,61,46,0.08); }
.tb-punto:last-child { border-bottom:none; }
.tb-punto-num { font-family:var(--display);font-size:1.6rem;font-weight:300;color:var(--sage-light);line-height:1;flex-shrink:0;width:36px; }
.tb-punto-title { font-family:var(--display);font-size:1rem;font-weight:600;color:var(--moss);margin-bottom:0.2rem; }
.tb-punto-desc { font-size:0.8rem;color:var(--charcoal);opacity:0.55;line-height:1.6; }

/* ATTIVITÀ — 3 foto grandi alternate */
.tb-att-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 500px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.tb-att-item.reverse { direction: rtl; }
.tb-att-item.reverse > * { direction: ltr; }
.tb-att-photo { overflow: hidden; }
.tb-att-photo img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  display: block;
  filter: brightness(0.88) saturate(0.85);
  transition: filter 0.4s, transform 0.5s;
}
.tb-att-item:hover .tb-att-photo img {
  filter: brightness(0.98) saturate(1);
  transform: scale(1.03);
}
.tb-att-body {
  background: var(--charcoal);
  padding: 4rem;
  display: flex; flex-direction: column; justify-content: center;
  position: relative;
}
.tb-att-body::before {
  content: '';
  position: absolute; top: 0; bottom: 0; left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.tb-att-item.reverse .tb-att-body::before { left: auto; right: 0; }
.tb-att-num { font-family:var(--display);font-size:5rem;font-weight:300;color:rgba(255,255,255,0.04);line-height:1;position:absolute;top:1.5rem;right:1.5rem; }
.tb-att-label { font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--sage-light);margin-bottom:1rem;display:block; }
.tb-att-title { font-family:var(--display);font-size:clamp(2.5rem,4vw,4rem);font-weight:600;color:var(--linen);line-height:1.0;margin-bottom:1rem; }
.tb-att-desc { font-size:0.9rem;color:rgba(242,242,240,0.55);line-height:1.85;max-width:400px; }

/* STEP */
.tb-steps { background:rgba(255,255,255,0.02);padding:5rem 4rem;border-top:1px solid rgba(255,255,255,0.06); }
.tb-steps-title { font-family:var(--display);font-size:clamp(2rem,3.5vw,3rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.tb-steps-title em { font-style:italic;color:var(--sage-light); }
.tb-steps-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1100px;margin:0 auto; }
.tb-step-num { font-family:var(--display);font-size:4rem;font-weight:300;color:rgba(61,186,126,0.15);line-height:1;margin-bottom:0.5rem; }
.tb-step-title { font-family:var(--display);font-size:1.2rem;font-weight:600;color:var(--linen);margin-bottom:0.5rem; }
.tb-step-desc { font-size:0.82rem;color:rgba(242,242,240,0.5);line-height:1.65; }

/* LOCATION — foto + testo a griglia */
.tb-location { background:var(--charcoal);padding:5rem 4rem; }
.tb-location-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.tb-location-title em { font-style:italic;color:var(--sage-light); }
.tb-loc-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1100px;margin:0 auto; }
.tb-loc-card {
  border-radius:6px; overflow:hidden;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  display:flex; flex-direction:column;
  transition: transform 0.25s, border-color 0.25s;
}
.tb-loc-card:hover { transform:translateY(-4px); border-color:rgba(61,186,126,0.3); }
.tb-loc-card.featured { background:linear-gradient(135deg,rgba(10,61,46,0.5),rgba(26,95,158,0.3));border-color:rgba(61,186,126,0.2); }
.tb-loc-photo { aspect-ratio:3/2;overflow:hidden; }
.tb-loc-photo img { width:100%;height:100%;object-fit:cover;filter:brightness(0.8) saturate(0.8);transition:filter 0.3s; }
.tb-loc-card:hover .tb-loc-photo img { filter:brightness(0.95) saturate(1); }
.tb-loc-body { padding:1.8rem;flex:1;display:flex;flex-direction:column;gap:0.8rem; }
.tb-loc-num { font-family:var(--display);font-size:2rem;font-weight:300;color:rgba(61,186,126,0.3);line-height:1; }
.tb-loc-name { font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--linen);line-height:1.1; }
.tb-loc-desc { font-size:0.82rem;color:rgba(242,242,240,0.5);line-height:1.7;flex:1; }
.tb-loc-facts { display:flex;flex-direction:column;gap:0.4rem; }
.tb-loc-fact { font-size:0.78rem;color:rgba(242,242,240,0.4);display:flex;align-items:center;gap:0.5rem; }
.tb-loc-fact::before { content:'—';color:var(--sage-light);flex-shrink:0; }
.tb-loc-link { font-size:0.72rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;text-decoration:none;color:var(--sage-light);border-bottom:1px solid rgba(61,186,126,0.3);padding-bottom:2px;width:fit-content; }

/* FORM */
.tb-form-section { background:rgba(255,255,255,0.02);padding:5rem 4rem;border-top:1px solid rgba(255,255,255,0.07); }
.tb-form-inner { max-width:700px;margin:0 auto;text-align:center; }
.tb-form-title { font-family:var(--display);font-size:clamp(2rem,4vw,3rem);font-weight:600;color:var(--linen);margin-bottom:0.8rem; }
.tb-form-title em { font-style:italic;color:var(--sage-light); }
.tb-form-sub { font-size:0.9rem;color:rgba(242,242,240,0.5);margin-bottom:3rem;line-height:1.75; }
.tb-form { display:flex;flex-direction:column;gap:1rem;text-align:left; }
.tb-form-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.tb-form input, .tb-form select, .tb-form textarea {
  width:100%;padding:0.9rem 1.2rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.12);
  color:var(--linen);border-radius:4px;outline:none;
  transition:border-color 0.2s;box-sizing:border-box;
}
.tb-form input::placeholder, .tb-form textarea::placeholder { color:rgba(242,242,240,0.3); }
.tb-form input:focus, .tb-form select:focus, .tb-form textarea:focus { border-color:var(--sage-light); }
.tb-form select option { background:var(--charcoal); }
.tb-form textarea { min-height:120px;resize:vertical; }
.tb-form-submit {
  background:var(--sage-light);color:var(--charcoal);
  font-size:0.82rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;
  border:none;padding:1rem 2.5rem;border-radius:4px;
  cursor:pointer;transition:background 0.2s;align-self:flex-start;
}
.tb-form-submit:hover { background:#4dd494; }
.tb-form-note { font-size:0.78rem;color:rgba(242,242,240,0.3);margin-top:0.5rem; }

@media(max-width:768px){
  .page-hero-content { padding:0 1.5rem 3rem; }
  .tb-fullphoto { height:40vh; }
  .tb-fullphoto-caption { left:1.5rem;font-size:1.1rem; }
  .tb-perche,.tb-steps,.tb-location,.tb-form-section { padding:3rem 1.5rem; }
  .tb-perche-inner { grid-template-columns:1fr;gap:3rem; }
  .tb-att-item,.tb-att-item.reverse { grid-template-columns:1fr;direction:ltr; }
  .tb-att-photo { aspect-ratio:4/3; }
  .tb-att-body { padding:2.5rem 1.5rem; }
  .tb-att-body::before { top:0;bottom:auto;left:0;right:0;width:auto;height:3px; }
  .tb-att-item.reverse .tb-att-body::before { left:0;right:0; }
  .tb-steps-grid,.tb-loc-grid { grid-template-columns:1fr; }
  .tb-form-row { grid-template-columns:1fr; }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --moss:#0A3D2E;
  --sage:#1A6B4A;
  --sage-light:#3DBA7E;
  --earth:#1A5F9E;
  --earth-light:#3B9FD4;
  --linen:#F2F2F0;
  --cream:#FAFAFA;
  --charcoal:#0A0F1A;
  --mist:#E8F5EE;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--body);
  background:var(--charcoal);
  color:var(--linen);
  overflow-x:hidden;
}

/* CUSTOM CURSOR */
.cursor{
  position:fixed;
  width:10px;height:10px;
  background:var(--sage-light);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s ease;
  mix-blend-mode:normal;
}
.cursor-ring{
  position:fixed;
  width:36px;height:36px;
  border:1px solid rgba(61,186,126,0.4);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:transform 0.18s ease, width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
}
body:has(a:hover) .cursor,.cursor.hover{width:6px;height:6px;background:var(--earth-light);}
body:has(a:hover) .cursor-ring,.cursor-ring.hover{width:52px;height:52px;border-color:rgba(59,159,212,0.5);}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3.5rem;
  transition:background 0.5s ease, border-color 0.5s ease;
}
nav.scrolled{
  background:rgba(26,26,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-logo{
  font-family:var(--display);
  font-size:1.2rem;font-weight:600;
  color:var(--linen);letter-spacing:0.1em;
  text-decoration:none;text-transform:uppercase;
}
.nav-logo span{font-weight:300;color:var(--sage-light);}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,239,230,0.6);
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--linen);}
.nav-cta{
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  text-decoration:none;color:var(--charcoal);
  background:var(--linen);
  padding:0.55rem 1.3rem;border-radius:2px;
  transition:background 0.2s,color 0.2s;
}
.nav-cta:hover{background:var(--sage-light);color:var(--charcoal);}

/* ── HERO: FULL-SCREEN CINEMATIC ── */
.hero{
  position:relative;
  height:100vh;min-height:700px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-bg-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
}
.hero-content{
  position:relative;z-index:10;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-eyebrow{
  font-size:0.68rem;font-weight:400;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s 0.5s ease forwards;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:300;line-height:0.95;
  color:var(--linen);
  opacity:0;animation:fadeUp 1.1s 0.8s ease forwards;
}
.hero-title em{
  font-style:italic;
  background:linear-gradient(135deg,#3DBA7E 0%,#3B9FD4 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  font-size:clamp(0.9rem,1.5vw,1.1rem);
  color:rgba(244,239,230,0.55);
  line-height:1.8;margin-top:2rem;max-width:500px;
  opacity:0;animation:fadeUp 1s 1.2s ease forwards;
}
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  opacity:0;animation:fadeUp 1s 2s ease forwards;
}
.hero-scroll span{
  font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.35);
}
.scroll-line{
  width:1px;height:50px;background:rgba(92,127,101,0.4);
  animation:scrollPulse 2s infinite;
}
@keyframes scrollPulse{
  0%{transform:scaleY(0);transform-origin:top;opacity:0;}
  50%{opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── MANIFESTO SECTION ── */
.manifesto{
  background:var(--linen);
  color:var(--charcoal);
  padding:12rem 4rem;
  display:flex;align-items:center;justify-content:center;
}
.manifesto-inner{max-width:900px;text-align:center;}
.manifesto-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;display:block;
}
.manifesto-text{
  font-family:var(--display);
  font-size:clamp(2.2rem,5vw,4.5rem);
  font-weight:300;line-height:1.15;
  color:var(--moss);
}
.manifesto-text em{font-style:italic;color:var(--earth);}
.manifesto-small{
  margin-top:2.5rem;
  font-size:1rem;color:var(--charcoal);
  opacity:0.6;line-height:1.85;max-width:560px;margin-left:auto;margin-right:auto;
}

/* ── SCROLL REVEAL ── */
.reveal{
  opacity:0;transform:translateY(50px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.15s;}
.reveal-delay-2{transition-delay:0.3s;}
.reveal-delay-3{transition-delay:0.45s;}

/* ── HORIZONTAL SERVICES SCROLL ── */
.services-section{
  background:var(--charcoal);
  padding:8rem 0;
  overflow:hidden;
}
.services-header{
  padding:0 4rem;
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:4rem;
}
.services-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--linen);line-height:1.05;
}
.services-title em{font-style:italic;color:var(--sage-light);}
.services-hint{
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);display:flex;align-items:center;gap:0.5rem;
}
.services-hint::before{content:'';width:30px;height:1px;background:currentColor;}

.services-track-wrap{
  overflow-x:auto;
  padding:0 4rem 2rem;
  scrollbar-width:none;
  cursor:grab;
  user-select:none;
}
.services-track-wrap:active{cursor:grabbing;}
.services-track-wrap::-webkit-scrollbar{display:none;}
.services-track{
  display:flex;gap:1.5rem;
  width:max-content;
}

.service-card{
  width:360px;flex-shrink:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.2rem;
  transition:background 0.3s, border-color 0.3s, transform 0.3s;
  cursor:pointer;
}
.service-card:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(92,127,101,0.3);
  transform:translateY(-4px);
}
.service-num{
  font-size:0.68rem;letter-spacing:0.2em;
  color:rgba(244,239,230,0.2);
}
.service-icon-wrap{
  width:48px;height:48px;
  border:1px solid rgba(92,127,101,0.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-light);
}
.service-name{
  font-family:var(--display);
  font-size:1.8rem;font-weight:300;
  color:var(--linen);line-height:1.1;
}
.service-desc{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  line-height:1.75;flex:1;
}
.service-arrow{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage-light);display:flex;align-items:center;gap:0.4rem;
  text-decoration:none;transition:gap 0.2s;
}
.service-card:hover .service-arrow{gap:0.8rem;}

/* ── WORKSHOP FEATURE: STICKY SCROLL ── */
.sticky-section{
  position:relative;
  background:var(--cream);
  color:var(--charcoal);
}
.sticky-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}
.sticky-left{
  position:sticky;top:0;
  height:100vh;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:6rem 5rem;
  background:linear-gradient(160deg,#0A3D2E 0%,#0E2A4A 100%);
  color:var(--linen);
}
.sticky-label{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:1.5rem;display:block;
}
.sticky-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,4vw,4rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.sticky-title em{font-style:italic;color:var(--earth-light);}
.sticky-desc{
  font-size:0.92rem;
  color:rgba(244,239,230,0.65);
  line-height:1.85;margin-bottom:2rem;max-width:400px;
}
.sticky-cta{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:0.75rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:var(--linen);
  border-bottom:1px solid rgba(244,239,230,0.3);
  padding-bottom:3px;
  transition:border-color 0.2s,gap 0.2s;
}
.sticky-cta:hover{border-color:var(--linen);gap:1rem;}

.sticky-right{padding:6rem 4rem;display:flex;flex-direction:column;gap:4rem;}

.workshop-item{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(26,26,24,0.1);
}
.workshop-item:last-child{border-bottom:none;}

.workshop-tag{
  display:inline-block;
  font-size:0.65rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--earth-light);
  background:rgba(59,159,212,0.1);
  padding:0.35rem 0.8rem;border-radius:2px;
  margin-bottom:1rem;
}
.workshop-title{
  font-family:var(--display);
  font-size:2rem;font-weight:400;
  color:var(--moss);margin-bottom:0.8rem;
}
.workshop-desc{
  font-size:0.88rem;color:var(--charcoal);
  opacity:0.65;line-height:1.8;margin-bottom:1.2rem;
}
.workshop-meta{
  display:flex;gap:2rem;flex-wrap:wrap;
}
.workshop-meta-item{
  font-size:0.78rem;color:var(--sage);
  display:flex;align-items:center;gap:0.4rem;
}
.workshop-meta-item::before{
  content:'';width:16px;height:1px;background:currentColor;
}

/* ── BRAND PROMISE ── */
.brand-promise{
  background:#0E2A4A;
  padding:10rem 4rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.brand-promise::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(26,95,158,0.35) 0%,transparent 70%);
}
.promise-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(244,239,230,0.5);margin-bottom:2rem;display:block;position:relative;
}
.promise-quote{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:300;font-style:italic;
  color:var(--linen);line-height:1.2;
  max-width:800px;margin:0 auto 2rem;position:relative;
}
.promise-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.6);
  position:relative;
}

/* ── NUMBERS ── */
.numbers-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,0.05);
}
.number-item{
  padding:2rem;
  border-right:1px solid rgba(255,255,255,0.05);
  text-align:center;
}
.number-item:last-child{border-right:none;}
.number-val{
  font-family:var(--display);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:300;color:var(--linen);
  display:block;line-height:1;margin-bottom:0.5rem;
}
.number-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);
}

/* ── WARM SECTION ── */
.warm-section{
  background:var(--linen);
  color:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
  max-width:1400px;margin:0 auto;
}
.warm-text {}
.warm-eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.2rem;display:block;
}
.warm-title{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.8rem);
  font-weight:300;color:var(--moss);
  line-height:1.1;margin-bottom:1.5rem;
}
.warm-title em{font-style:italic;color:var(--earth);}
.warm-body{
  font-size:0.95rem;opacity:0.65;
  line-height:1.9;margin-bottom:2rem;
}
.warm-cards{display:flex;flex-direction:column;gap:1rem;}
.warm-card{
  background:var(--cream);
  padding:1.5rem 1.8rem;border-radius:3px;
  border-left:2px solid var(--sage-light);
}
.warm-card-title{
  font-family:var(--display);font-size:1.1rem;font-weight:400;
  color:var(--moss);margin-bottom:0.4rem;
}
.warm-card-text{font-size:0.82rem;opacity:0.6;line-height:1.7;}

/* ── LOCATION ── */
.location-section{
  background:var(--moss);
  color:var(--linen);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
}
.location-text{}
.location-address{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.location-address em{font-style:italic;color:var(--earth-light);}
.location-hours{
  display:flex;flex-direction:column;gap:0.8rem;
  margin-bottom:2.5rem;
}
.location-hours-row{
  display:flex;justify-content:space-between;
  font-size:0.88rem;
  border-bottom:1px solid rgba(244,239,230,0.08);
  padding-bottom:0.8rem;
}
.location-hours-day{color:rgba(244,239,230,0.5);}
.location-hours-time{color:var(--linen);}
.location-map{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  height:320px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.map-placeholder{
  font-family:var(--display);font-size:1rem;
  color:rgba(244,239,230,0.2);font-style:italic;
}
.map-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.map-pin{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;
  background:var(--earth-light);border-radius:50%;
  box-shadow:0 0 0 8px rgba(26,95,158,0.2),0 0 0 16px rgba(26,95,158,0.08);
}

/* ── NEWSLETTER ── */
.newsletter-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.05);
}
.newsletter-title{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,4rem);
  font-weight:300;color:var(--linen);
  margin-bottom:0.8rem;
}
.newsletter-title em{font-style:italic;color:var(--sage-light);}
.newsletter-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.45);
  margin-bottom:3rem;
}
.newsletter-form{
  display:flex;justify-content:center;gap:0;max-width:480px;margin:0 auto;
}
.nl-input{
  flex:1;padding:1rem 1.4rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-right:none;
  color:var(--linen);outline:none;
  border-radius:2px 0 0 2px;
}
.nl-input::placeholder{color:rgba(244,239,230,0.25);}
.nl-btn{
  padding:1rem 1.8rem;
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  background:var(--sage);color:var(--linen);
  border:none;cursor:pointer;
  border-radius:0 2px 2px 0;
  transition:background 0.2s;
}
.nl-btn:hover{background:var(--sage-light);}

/* ── PARTNERS ── */
.partners-section{
  background:var(--charcoal);
  padding:4rem 4rem 6rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.04);
}
.partners-label{
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,239,230,0.2);margin-bottom:2.5rem;display:block;
}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  gap:4rem;flex-wrap:wrap;
}
.partner{
  font-family:var(--display);font-size:1.3rem;font-weight:300;
  color:rgba(244,239,230,0.15);letter-spacing:0.06em;
  transition:color 0.3s;cursor:default;
}
.partner:hover{color:rgba(244,239,230,0.4);}

/* ── FOOTER ── */
footer{
  background:#141412;
  color:var(--linen);
  padding:4rem 4rem 2.5rem;
  border-top:1px solid rgba(255,255,255,0.04);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-wrap:wrap;gap:2rem;
}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;}
.footer-brand span{font-weight:300;color:var(--sage-light);}
.footer-tagline{
  font-size:0.8rem;opacity:0.3;margin-top:0.5rem;
  font-style:italic;font-family:var(--display);
}
.footer-links-row{
  display:flex;gap:4rem;flex-wrap:wrap;
}
.footer-col-title{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.25);margin-bottom:1rem;display:block;
}
.footer-link-list{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer-link-list a{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  text-decoration:none;transition:color 0.2s;
}
.footer-link-list a:hover{color:var(--linen);}
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:0.72rem;color:rgba(244,239,230,0.2);
  flex-wrap:wrap;gap:0.5rem;
}

/* ── FLOATING BOTANICAL LINES (canvas hero) ── */
/* ── CHI SIAMO + ESPERIENZE ── */
.chi-siamo-full{background:var(--linen);color:var(--charcoal);padding:7rem 4rem;}
.chi-siamo-intro{max-width:700px;margin:0 auto 4rem;text-align:center;}
.chi-siamo-label{font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem;}
.chi-siamo-title{font-family:var(--display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.1;color:var(--moss);margin-bottom:1.5rem;}
.chi-siamo-title em{font-style:italic;color:var(--earth);}
.chi-siamo-text{font-size:1rem;line-height:1.85;color:var(--charcoal);opacity:0.65;}
.chi-siamo-divider{width:60px;height:2px;background:linear-gradient(to right,var(--sage-light),var(--earth-light));margin:0 auto 4rem;border-radius:2px;}
.chi-siamo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1100px;margin:0 auto;}
.chi-siamo-grid .cse-card:last-child:nth-child(3n+1){grid-column:2;}
.cse-card{background:var(--cream);border:1px solid rgba(10,61,46,0.08);border-radius:6px;padding:1.8rem;display:flex;flex-direction:column;gap:0.8rem;transition:background 0.2s,border-color 0.2s,transform 0.2s,box-shadow 0.2s;text-decoration:none;}
.cse-card:hover{background:#fff;border-color:rgba(61,186,126,0.35);transform:translateY(-3px);box-shadow:0 8px 30px rgba(10,61,46,0.08);}
.cse-tag{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);}
.cse-name{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--moss);line-height:1.1;}
.cse-desc{font-size:0.82rem;color:var(--charcoal);opacity:0.55;line-height:1.7;flex:1;}
.cse-link{font-size:0.7rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);display:flex;align-items:center;gap:0.4rem;transition:gap 0.2s,color 0.2s;margin-top:auto;}
.cse-card:hover .cse-link{gap:0.8rem;color:var(--moss);}
.cse-soon{opacity:0.45;}

/* ── TEAM BUILDING: layout cinematico ── */
.team-building {
  position: relative;
  overflow: hidden;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* foto a tutta pagina come sfondo */
.tb-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
/* overlay gradiente */
.tb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,61,46,0.85) 0%,
    rgba(10,15,26,0.6) 60%,
    rgba(26,95,158,0.75) 100%
  );
  z-index: 1;
}
.tb-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
/* testo principale — grande e diretto */
.tb-headline {
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1.0;
  color: var(--linen);
}
.tb-headline em {
  font-style: italic;
  background: linear-gradient(135deg, #3DBA7E, #3B9FD4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tb-label {
  font-size: 0.68rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: block;
  margin-bottom: 1.5rem;
}
.tb-text {
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242,242,240,0.65);
  margin: 1.8rem 0 2.5rem;
  max-width: 480px;
}
.tb-cta {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--charcoal);
  background: var(--sage-light);
  padding: 0.9rem 2.2rem;
  border-radius: 3px;
  transition: background 0.2s;
}
.tb-cta:hover { background: var(--earth-light); }
/* destra: 4 punti come stat-line */
.tb-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tb-stat {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tb-stat:last-child { border-bottom: none; }
.tb-stat-num {
  font-family: var(--display);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--sage-light);
  flex-shrink: 0;
  width: 80px;
}
.tb-stat-body {}
.tb-stat-title {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.tb-stat-desc {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.6;
}

@media (max-width: 768px) {
  .tb-content { grid-template-columns: 1fr; gap: 3rem; padding: 5rem 1.5rem; }
  .tb-stat-num { font-size: 2.5rem; width: 60px; }
}


/* ── WORKSHOP: layout a scorrimento cinematico ── */
.workshops-v2 {
  background: var(--charcoal);
  padding: 6rem 0;
  overflow: hidden;
}
.workshops-v2-header {
  padding: 0 4rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.workshops-v2-title {
  font-family: var(--display);
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
}
.workshops-v2-title em { font-style:italic; color:var(--sage-light); }
.workshops-v2-sub {
  font-size: 0.8rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.06em;
  text-align: right;
  max-width: 200px;
  line-height: 1.6;
}

/* Stack verticale: ogni workshop occupa tutta la larghezza, alternando foto sx/dx */
.ws-stack { display: flex; flex-direction: column; gap: 0; }

.ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.ws-item:nth-child(even) { direction: rtl; }
.ws-item:nth-child(even) > * { direction: ltr; }

.ws-item-photo {
  position: relative;
  overflow: hidden;
}
.ws-item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.7s ease;
  filter: brightness(0.85) saturate(0.85);
}
.ws-item:hover .ws-item-photo img {
  transform: scale(1.04);
  filter: brightness(0.95) saturate(1);
}

/* numero grande sovrapposto alla foto */
.ws-item-num {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  font-family: var(--display);
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,0.12);
  pointer-events: none;
  z-index: 2;
}

.ws-item-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
  background: var(--charcoal);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
/* accent line colorata sul bordo */
.ws-item-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-item:nth-child(even) .ws-item-body::before {
  left: auto; right: 0;
}

.ws-item-tag {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-light);
  margin-bottom: 1rem;
}
.ws-item-name {
  font-family: var(--display);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
  margin-bottom: 1.2rem;
}
.ws-item-desc {
  font-size: 0.9rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.8;
  margin-bottom: 2rem;
  max-width: 380px;
}
.ws-item-meta {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  font-size: 0.82rem;
  color: rgba(242,242,240,0.4);
}
.ws-item-meta strong {
  display: block;
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--linen);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ws-item-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--linen);
  border-bottom: 1px solid rgba(242,242,240,0.2);
  padding-bottom: 3px;
  width: fit-content;
  transition: border-color 0.2s, gap 0.2s;
}
.ws-item:hover .ws-item-cta {
  border-color: var(--sage-light);
  color: var(--sage-light);
  gap: 0.9rem;
}

@media (max-width: 768px) {
  .workshops-v2-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .ws-item { grid-template-columns: 1fr; min-height: auto; }
  .ws-item:nth-child(even) { direction: ltr; }
  .ws-item-photo { aspect-ratio: 4/3; }
  .ws-item-body { padding: 2.5rem 1.5rem; }
  .ws-item-body::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }
  .ws-item:nth-child(even) .ws-item-body::before { left: 0; right: 0; }
  .ws-item-num { font-size: 4rem; }
}
/* ── PAGINA BOMBONIERE ── */
.page-hero {
  min-height: 85vh;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
}
.page-hero-bg {
  position: absolute; inset: 0;
  background-image: url('');
  background-size: cover;
  background-position: center 40%;
  filter: brightness(0.3) saturate(0.6);
  z-index: 0;
}
.page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,15,26,0.98) 0%, rgba(10,15,26,0.2) 70%, transparent 100%);
  z-index: 1;
}
.page-hero-content {
  position: relative; z-index: 2;
  padding: 0 4rem 5rem;
  max-width: 850px;
}
.page-hero-label { font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage-light);display:block;margin-bottom:1.5rem; }
.page-hero-title { font-family:var(--display);font-size:clamp(3rem,7vw,7rem);font-weight:600;color:var(--linen);line-height:1.0;margin-bottom:1.2rem; }
.page-hero-title em { font-style:italic;background:linear-gradient(135deg,#3DBA7E,#3B9FD4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.page-hero-sub { font-size:1.05rem;color:rgba(242,242,240,0.6);max-width:600px;line-height:1.75;margin-bottom:2.5rem; }
.hero-main-cta {
  display: inline-block;
  background: var(--sage-light); color: var(--charcoal);
  font-size: 0.88rem; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  text-decoration: none; padding: 1.1rem 3rem;
  border-radius: 3px; transition: background 0.2s;
}
.hero-main-cta:hover { background: #4dd494; }

/* INTRO CONCEPT */
.bomb-intro {
  background: var(--linen); color: var(--charcoal);
  padding: 6rem 4rem;
}
.bomb-intro-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 6rem; align-items: center;
}
.bomb-intro-label { font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem; }
.bomb-intro-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--moss);line-height:1.1;margin-bottom:1.5rem; }
.bomb-intro-title em { font-style:italic;color:var(--earth); }
.bomb-intro-text { font-size:0.95rem;color:var(--charcoal);opacity:0.65;line-height:1.9;margin-bottom:2rem; }
.bomb-intro-cta { display:inline-block;background:var(--moss);color:#fff;font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:0.85rem 2rem;border-radius:3px; }

/* CARATTERISTICHE */
.bomb-features {
  display: flex; flex-direction: column; gap: 0;
}
.bomb-feature {
  display: flex; gap: 1.5rem; align-items: flex-start;
  padding: 1.2rem 0; border-bottom: 1px solid rgba(10,61,46,0.08);
}
.bomb-feature:last-child { border-bottom: none; }
.bomb-feature-num { font-family:var(--display);font-size:1.6rem;font-weight:300;color:var(--sage-light);line-height:1;flex-shrink:0;width:36px; }
.bomb-feature-title { font-family:var(--display);font-size:1rem;font-weight:600;color:var(--moss);margin-bottom:0.2rem; }
.bomb-feature-desc { font-size:0.8rem;color:var(--charcoal);opacity:0.55;line-height:1.6; }

/* EVENTI */
.bomb-eventi {
  background: var(--charcoal);
  padding: 5rem 4rem;
}
.bomb-eventi-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.bomb-eventi-title em { font-style:italic;color:var(--sage-light); }
.bomb-eventi-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 1rem; max-width: 1100px; margin: 0 auto;
}
.bomb-evento-card {
  border-radius: 6px; overflow: hidden;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  transition: transform 0.25s, border-color 0.25s;
}
.bomb-evento-card:hover { transform:translateY(-4px);border-color:rgba(61,186,126,0.3); }
.bomb-evento-photo { aspect-ratio:1/1;overflow:hidden; }
.bomb-evento-photo img { width:100%;height:100%;object-fit:cover;filter:brightness(0.8) saturate(0.8);transition:filter 0.3s; }
.bomb-evento-card:hover .bomb-evento-photo img { filter:brightness(0.95) saturate(1); }
.bomb-evento-body { padding:1.5rem; }
.bomb-evento-title { font-family:var(--display);font-size:1.3rem;font-weight:600;color:var(--linen);margin-bottom:0.4rem; }
.bomb-evento-desc { font-size:0.78rem;color:rgba(242,242,240,0.45);line-height:1.6; }

/* GALLERIA CREAZIONI */
.bomb-gallery {
  background: var(--charcoal);
  padding: 0 4rem 5rem;
}
.bomb-gallery-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.bomb-gallery-title em { font-style:italic;color:var(--sage-light); }
.bomb-gallery-note { text-align:center;font-size:0.85rem;color:rgba(242,242,240,0.4);margin-bottom:2.5rem; }
.bomb-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  grid-auto-rows: 220px;
  gap: 0.5rem;
  max-width: 1100px; margin: 0 auto;
}
.bomb-gal-item { overflow:hidden;border-radius:3px;position:relative; }
.bomb-gal-item.large { grid-column: span 2; grid-row: span 2; }
.bomb-gal-item img {
  width:100%;height:100%;object-fit:cover;
  filter:brightness(0.85) saturate(0.8);
  transition:filter 0.4s, transform 0.5s;
}
.bomb-gal-item:hover img { filter:brightness(1) saturate(1);transform:scale(1.05); }

/* COME FUNZIONA */
.bomb-steps {
  background: rgba(255,255,255,0.02);
  padding: 5rem 4rem;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.bomb-steps-title { font-family:var(--display);font-size:clamp(2rem,3.5vw,3rem);font-weight:600;color:var(--linen);text-align:center;margin-bottom:3rem; }
.bomb-steps-title em { font-style:italic;color:var(--sage-light); }
.bomb-steps-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;max-width:1100px;margin:0 auto; }
.bomb-step-num { font-family:var(--display);font-size:3.5rem;font-weight:300;color:rgba(61,186,126,0.15);line-height:1;margin-bottom:0.5rem; }
.bomb-step-title { font-family:var(--display);font-size:1.1rem;font-weight:600;color:var(--linen);margin-bottom:0.4rem; }
.bomb-step-desc { font-size:0.8rem;color:rgba(242,242,240,0.5);line-height:1.65; }

/* CTA FINALE */
.bomb-cta {
  background: var(--moss); padding: 6rem 4rem; text-align: center;
  position: relative; overflow: hidden;
}
.bomb-cta::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(10,61,46,0.9),rgba(14,42,74,0.85));
}
.bomb-cta-inner { position:relative;z-index:2;max-width:600px;margin:0 auto; }
.bomb-cta-title { font-family:var(--display);font-size:clamp(2rem,4vw,3.5rem);font-weight:600;color:var(--linen);margin-bottom:1rem;line-height:1.1; }
.bomb-cta-title em { font-style:italic;color:var(--sage-light); }
.bomb-cta-sub { font-size:0.95rem;color:rgba(242,242,240,0.6);line-height:1.85;margin-bottom:2.5rem; }
.bomb-cta-btns { display:flex;gap:1rem;justify-content:center;flex-wrap:wrap; }
.bomb-cta-btn { display:inline-block;background:var(--sage-light);color:var(--charcoal);font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:0.9rem 2.2rem;border-radius:3px;transition:background 0.2s; }
.bomb-cta-btn:hover { background:#4dd494; }
.bomb-cta-btn-ghost { display:inline-block;border:1px solid rgba(242,242,240,0.25);color:var(--linen);font-size:0.78rem;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:0.9rem 2.2rem;border-radius:3px;transition:border-color 0.2s; }
.bomb-cta-btn-ghost:hover { border-color:var(--linen); }

@media(max-width:768px){
  .page-hero-content { padding:0 1.5rem 3rem; }
  .bomb-intro,.bomb-eventi,.bomb-gallery,.bomb-steps,.bomb-cta { padding:3rem 1.5rem; }
  .bomb-intro-inner { grid-template-columns:1fr;gap:3rem; }
  .bomb-eventi-grid { grid-template-columns:1fr 1fr; }
  .bomb-gallery-grid { grid-template-columns:1fr 1fr;grid-auto-rows:160px; }
  .bomb-gal-item.large { grid-column:span 2; }
  .bomb-steps-grid { grid-template-columns:1fr 1fr; }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --moss:#0A3D2E;
  --sage:#1A6B4A;
  --sage-light:#3DBA7E;
  --earth:#1A5F9E;
  --earth-light:#3B9FD4;
  --linen:#F2F2F0;
  --cream:#FAFAFA;
  --charcoal:#0A0F1A;
  --mist:#E8F5EE;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:var(--body);
  background:var(--charcoal);
  color:var(--linen);
  overflow-x:hidden;
}

/* CUSTOM CURSOR */
.cursor{
  position:fixed;
  width:10px;height:10px;
  background:var(--sage-light);
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform 0.1s ease, width 0.3s ease, height 0.3s ease, background 0.3s ease;
  mix-blend-mode:normal;
}
.cursor-ring{
  position:fixed;
  width:36px;height:36px;
  border:1px solid rgba(61,186,126,0.4);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  transform:translate(-50%,-50%);
  transition:transform 0.18s ease, width 0.3s ease, height 0.3s ease, opacity 0.3s ease;
}
body:has(a:hover) .cursor,.cursor.hover{width:6px;height:6px;background:var(--earth-light);}
body:has(a:hover) .cursor-ring,.cursor-ring.hover{width:52px;height:52px;border-color:rgba(59,159,212,0.5);}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem 3.5rem;
  transition:background 0.5s ease, border-color 0.5s ease;
}
nav.scrolled{
  background:rgba(26,26,24,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-logo{
  font-family:var(--display);
  font-size:1.2rem;font-weight:600;
  color:var(--linen);letter-spacing:0.1em;
  text-decoration:none;text-transform:uppercase;
}
.nav-logo span{font-weight:300;color:var(--sage-light);}
.nav-links{display:flex;gap:2.5rem;list-style:none;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:rgba(244,239,230,0.6);
  transition:color 0.2s;
}
.nav-links a:hover{color:var(--linen);}
.nav-cta{
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.12em;text-transform:uppercase;
  text-decoration:none;color:var(--charcoal);
  background:var(--linen);
  padding:0.55rem 1.3rem;border-radius:2px;
  transition:background 0.2s,color 0.2s;
}
.nav-cta:hover{background:var(--sage-light);color:var(--charcoal);}

/* ── HERO: FULL-SCREEN CINEMATIC ── */
.hero{
  position:relative;
  height:100vh;min-height:700px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  background:var(--charcoal);
}
.hero-bg-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
}
.hero-content{
  position:relative;z-index:10;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;
}
.hero-eyebrow{
  font-size:0.68rem;font-weight:400;
  letter-spacing:0.3em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:2rem;
  opacity:0;animation:fadeUp 1s 0.5s ease forwards;
}
.hero-title{
  font-family:var(--display);
  font-size:clamp(4rem,10vw,10rem);
  font-weight:300;line-height:0.95;
  color:var(--linen);
  opacity:0;animation:fadeUp 1.1s 0.8s ease forwards;
}
.hero-title em{
  font-style:italic;
  background:linear-gradient(135deg,#3DBA7E 0%,#3B9FD4 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  font-size:clamp(0.9rem,1.5vw,1.1rem);
  color:rgba(244,239,230,0.55);
  line-height:1.8;margin-top:2rem;max-width:500px;
  opacity:0;animation:fadeUp 1s 1.2s ease forwards;
}
.hero-scroll{
  position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  opacity:0;animation:fadeUp 1s 2s ease forwards;
}
.hero-scroll span{
  font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.35);
}
.scroll-line{
  width:1px;height:50px;background:rgba(92,127,101,0.4);
  animation:scrollPulse 2s infinite;
}
@keyframes scrollPulse{
  0%{transform:scaleY(0);transform-origin:top;opacity:0;}
  50%{opacity:1;}
  100%{transform:scaleY(1);transform-origin:top;opacity:0;}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── MANIFESTO SECTION ── */
.manifesto{
  background:var(--linen);
  color:var(--charcoal);
  padding:12rem 4rem;
  display:flex;align-items:center;justify-content:center;
}
.manifesto-inner{max-width:900px;text-align:center;}
.manifesto-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:var(--sage);margin-bottom:2rem;display:block;
}
.manifesto-text{
  font-family:var(--display);
  font-size:clamp(2.2rem,5vw,4.5rem);
  font-weight:300;line-height:1.15;
  color:var(--moss);
}
.manifesto-text em{font-style:italic;color:var(--earth);}
.manifesto-small{
  margin-top:2.5rem;
  font-size:1rem;color:var(--charcoal);
  opacity:0.6;line-height:1.85;max-width:560px;margin-left:auto;margin-right:auto;
}

/* ── SCROLL REVEAL ── */
.reveal{
  opacity:0;transform:translateY(50px);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.15s;}
.reveal-delay-2{transition-delay:0.3s;}
.reveal-delay-3{transition-delay:0.45s;}

/* ── HORIZONTAL SERVICES SCROLL ── */
.services-section{
  background:var(--charcoal);
  padding:8rem 0;
  overflow:hidden;
}
.services-header{
  padding:0 4rem;
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-bottom:4rem;
}
.services-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,5vw,5rem);
  font-weight:300;color:var(--linen);line-height:1.05;
}
.services-title em{font-style:italic;color:var(--sage-light);}
.services-hint{
  font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);display:flex;align-items:center;gap:0.5rem;
}
.services-hint::before{content:'';width:30px;height:1px;background:currentColor;}

.services-track-wrap{
  overflow-x:auto;
  padding:0 4rem 2rem;
  scrollbar-width:none;
  cursor:grab;
  user-select:none;
}
.services-track-wrap:active{cursor:grabbing;}
.services-track-wrap::-webkit-scrollbar{display:none;}
.services-track{
  display:flex;gap:1.5rem;
  width:max-content;
}

.service-card{
  width:360px;flex-shrink:0;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.2rem;
  transition:background 0.3s, border-color 0.3s, transform 0.3s;
  cursor:pointer;
}
.service-card:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(92,127,101,0.3);
  transform:translateY(-4px);
}
.service-num{
  font-size:0.68rem;letter-spacing:0.2em;
  color:rgba(244,239,230,0.2);
}
.service-icon-wrap{
  width:48px;height:48px;
  border:1px solid rgba(92,127,101,0.3);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--sage-light);
}
.service-name{
  font-family:var(--display);
  font-size:1.8rem;font-weight:300;
  color:var(--linen);line-height:1.1;
}
.service-desc{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  line-height:1.75;flex:1;
}
.service-arrow{
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--sage-light);display:flex;align-items:center;gap:0.4rem;
  text-decoration:none;transition:gap 0.2s;
}
.service-card:hover .service-arrow{gap:0.8rem;}

/* ── WORKSHOP FEATURE: STICKY SCROLL ── */
.sticky-section{
  position:relative;
  background:var(--cream);
  color:var(--charcoal);
}
.sticky-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:100vh;
}
.sticky-left{
  position:sticky;top:0;
  height:100vh;
  display:flex;flex-direction:column;
  justify-content:center;
  padding:6rem 5rem;
  background:linear-gradient(160deg,#0A3D2E 0%,#0E2A4A 100%);
  color:var(--linen);
}
.sticky-label{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-light);margin-bottom:1.5rem;display:block;
}
.sticky-title{
  font-family:var(--display);
  font-size:clamp(2.5rem,4vw,4rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.sticky-title em{font-style:italic;color:var(--earth-light);}
.sticky-desc{
  font-size:0.92rem;
  color:rgba(244,239,230,0.65);
  line-height:1.85;margin-bottom:2rem;max-width:400px;
}
.sticky-cta{
  display:inline-flex;align-items:center;gap:0.6rem;
  font-size:0.75rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  text-decoration:none;color:var(--linen);
  border-bottom:1px solid rgba(244,239,230,0.3);
  padding-bottom:3px;
  transition:border-color 0.2s,gap 0.2s;
}
.sticky-cta:hover{border-color:var(--linen);gap:1rem;}

.sticky-right{padding:6rem 4rem;display:flex;flex-direction:column;gap:4rem;}

.workshop-item{
  padding-bottom:4rem;
  border-bottom:1px solid rgba(26,26,24,0.1);
}
.workshop-item:last-child{border-bottom:none;}

.workshop-tag{
  display:inline-block;
  font-size:0.65rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--earth-light);
  background:rgba(59,159,212,0.1);
  padding:0.35rem 0.8rem;border-radius:2px;
  margin-bottom:1rem;
}
.workshop-title{
  font-family:var(--display);
  font-size:2rem;font-weight:400;
  color:var(--moss);margin-bottom:0.8rem;
}
.workshop-desc{
  font-size:0.88rem;color:var(--charcoal);
  opacity:0.65;line-height:1.8;margin-bottom:1.2rem;
}
.workshop-meta{
  display:flex;gap:2rem;flex-wrap:wrap;
}
.workshop-meta-item{
  font-size:0.78rem;color:var(--sage);
  display:flex;align-items:center;gap:0.4rem;
}
.workshop-meta-item::before{
  content:'';width:16px;height:1px;background:currentColor;
}

/* ── BRAND PROMISE ── */
.brand-promise{
  background:#0E2A4A;
  padding:10rem 4rem;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.brand-promise::before{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 50%,rgba(26,95,158,0.35) 0%,transparent 70%);
}
.promise-label{
  font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;
  color:rgba(244,239,230,0.5);margin-bottom:2rem;display:block;position:relative;
}
.promise-quote{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,5rem);
  font-weight:300;font-style:italic;
  color:var(--linen);line-height:1.2;
  max-width:800px;margin:0 auto 2rem;position:relative;
}
.promise-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.6);
  position:relative;
}

/* ── NUMBERS ── */
.numbers-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(255,255,255,0.05);
}
.number-item{
  padding:2rem;
  border-right:1px solid rgba(255,255,255,0.05);
  text-align:center;
}
.number-item:last-child{border-right:none;}
.number-val{
  font-family:var(--display);
  font-size:clamp(3rem,6vw,6rem);
  font-weight:300;color:var(--linen);
  display:block;line-height:1;margin-bottom:0.5rem;
}
.number-label{
  font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
  color:rgba(244,239,230,0.3);
}

/* ── WARM SECTION ── */
.warm-section{
  background:var(--linen);
  color:var(--charcoal);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
  max-width:1400px;margin:0 auto;
}
.warm-text {}
.warm-eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:1.2rem;display:block;
}
.warm-title{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.8rem);
  font-weight:300;color:var(--moss);
  line-height:1.1;margin-bottom:1.5rem;
}
.warm-title em{font-style:italic;color:var(--earth);}
.warm-body{
  font-size:0.95rem;opacity:0.65;
  line-height:1.9;margin-bottom:2rem;
}
.warm-cards{display:flex;flex-direction:column;gap:1rem;}
.warm-card{
  background:var(--cream);
  padding:1.5rem 1.8rem;border-radius:3px;
  border-left:2px solid var(--sage-light);
}
.warm-card-title{
  font-family:var(--display);font-size:1.1rem;font-weight:400;
  color:var(--moss);margin-bottom:0.4rem;
}
.warm-card-text{font-size:0.82rem;opacity:0.6;line-height:1.7;}

/* ── LOCATION ── */
.location-section{
  background:var(--moss);
  color:var(--linen);
  padding:8rem 4rem;
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:center;
}
.location-text{}
.location-address{
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300;line-height:1.1;
  margin-bottom:1.5rem;
}
.location-address em{font-style:italic;color:var(--earth-light);}
.location-hours{
  display:flex;flex-direction:column;gap:0.8rem;
  margin-bottom:2.5rem;
}
.location-hours-row{
  display:flex;justify-content:space-between;
  font-size:0.88rem;
  border-bottom:1px solid rgba(244,239,230,0.08);
  padding-bottom:0.8rem;
}
.location-hours-day{color:rgba(244,239,230,0.5);}
.location-hours-time{color:var(--linen);}
.location-map{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:4px;
  height:320px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.map-placeholder{
  font-family:var(--display);font-size:1rem;
  color:rgba(244,239,230,0.2);font-style:italic;
}
.map-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);
  background-size:40px 40px;
}
.map-pin{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:12px;height:12px;
  background:var(--earth-light);border-radius:50%;
  box-shadow:0 0 0 8px rgba(26,95,158,0.2),0 0 0 16px rgba(26,95,158,0.08);
}

/* ── NEWSLETTER ── */
.newsletter-section{
  background:var(--charcoal);
  padding:8rem 4rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.05);
}
.newsletter-title{
  font-family:var(--display);
  font-size:clamp(2rem,5vw,4rem);
  font-weight:300;color:var(--linen);
  margin-bottom:0.8rem;
}
.newsletter-title em{font-style:italic;color:var(--sage-light);}
.newsletter-sub{
  font-size:0.88rem;color:rgba(244,239,230,0.45);
  margin-bottom:3rem;
}
.newsletter-form{
  display:flex;justify-content:center;gap:0;max-width:480px;margin:0 auto;
}
.nl-input{
  flex:1;padding:1rem 1.4rem;
  font-family:var(--body);font-size:0.88rem;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-right:none;
  color:var(--linen);outline:none;
  border-radius:2px 0 0 2px;
}
.nl-input::placeholder{color:rgba(244,239,230,0.25);}
.nl-btn{
  padding:1rem 1.8rem;
  font-size:0.72rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  background:var(--sage);color:var(--linen);
  border:none;cursor:pointer;
  border-radius:0 2px 2px 0;
  transition:background 0.2s;
}
.nl-btn:hover{background:var(--sage-light);}

/* ── PARTNERS ── */
.partners-section{
  background:var(--charcoal);
  padding:4rem 4rem 6rem;
  text-align:center;
  border-top:1px solid rgba(255,255,255,0.04);
}
.partners-label{
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(244,239,230,0.2);margin-bottom:2.5rem;display:block;
}
.partners-row{
  display:flex;justify-content:center;align-items:center;
  gap:4rem;flex-wrap:wrap;
}
.partner{
  font-family:var(--display);font-size:1.3rem;font-weight:300;
  color:rgba(244,239,230,0.15);letter-spacing:0.06em;
  transition:color 0.3s;cursor:default;
}
.partner:hover{color:rgba(244,239,230,0.4);}

/* ── FOOTER ── */
footer{
  background:#141412;
  color:var(--linen);
  padding:4rem 4rem 2.5rem;
  border-top:1px solid rgba(255,255,255,0.04);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  margin-bottom:3rem;padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-wrap:wrap;gap:2rem;
}
.footer-brand{font-family:var(--display);font-size:1.3rem;font-weight:600;
  letter-spacing:0.1em;text-transform:uppercase;}
.footer-brand span{font-weight:300;color:var(--sage-light);}
.footer-tagline{
  font-size:0.8rem;opacity:0.3;margin-top:0.5rem;
  font-style:italic;font-family:var(--display);
}
.footer-links-row{
  display:flex;gap:4rem;flex-wrap:wrap;
}
.footer-col-title{
  font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;
  color:rgba(244,239,230,0.25);margin-bottom:1rem;display:block;
}
.footer-link-list{list-style:none;display:flex;flex-direction:column;gap:0.6rem;}
.footer-link-list a{
  font-size:0.85rem;color:rgba(244,239,230,0.5);
  text-decoration:none;transition:color 0.2s;
}
.footer-link-list a:hover{color:var(--linen);}
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:0.72rem;color:rgba(244,239,230,0.2);
  flex-wrap:wrap;gap:0.5rem;
}

/* ── FLOATING BOTANICAL LINES (canvas hero) ── */
/* ── CHI SIAMO + ESPERIENZE ── */
.chi-siamo-full{background:var(--linen);color:var(--charcoal);padding:7rem 4rem;}
.chi-siamo-intro{max-width:700px;margin:0 auto 4rem;text-align:center;}
.chi-siamo-label{font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:1.2rem;}
.chi-siamo-title{font-family:var(--display);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:600;line-height:1.1;color:var(--moss);margin-bottom:1.5rem;}
.chi-siamo-title em{font-style:italic;color:var(--earth);}
.chi-siamo-text{font-size:1rem;line-height:1.85;color:var(--charcoal);opacity:0.65;}
.chi-siamo-divider{width:60px;height:2px;background:linear-gradient(to right,var(--sage-light),var(--earth-light));margin:0 auto 4rem;border-radius:2px;}
.chi-siamo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1100px;margin:0 auto;}
.chi-siamo-grid .cse-card:last-child:nth-child(3n+1){grid-column:2;}
.cse-card{background:var(--cream);border:1px solid rgba(10,61,46,0.08);border-radius:6px;padding:1.8rem;display:flex;flex-direction:column;gap:0.8rem;transition:background 0.2s,border-color 0.2s,transform 0.2s,box-shadow 0.2s;text-decoration:none;}
.cse-card:hover{background:#fff;border-color:rgba(61,186,126,0.35);transform:translateY(-3px);box-shadow:0 8px 30px rgba(10,61,46,0.08);}
.cse-tag{font-size:0.62rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--sage);}
.cse-name{font-family:var(--display);font-size:1.4rem;font-weight:600;color:var(--moss);line-height:1.1;}
.cse-desc{font-size:0.82rem;color:var(--charcoal);opacity:0.55;line-height:1.7;flex:1;}
.cse-link{font-size:0.7rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);display:flex;align-items:center;gap:0.4rem;transition:gap 0.2s,color 0.2s;margin-top:auto;}
.cse-card:hover .cse-link{gap:0.8rem;color:var(--moss);}
.cse-soon{opacity:0.45;}

/* ── TEAM BUILDING: layout cinematico ── */
.team-building {
  position: relative;
  overflow: hidden;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
/* foto a tutta pagina come sfondo */
.tb-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.35) saturate(0.7);
  z-index: 0;
}
/* overlay gradiente */
.tb-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(10,61,46,0.85) 0%,
    rgba(10,15,26,0.6) 60%,
    rgba(26,95,158,0.75) 100%
  );
  z-index: 1;
}
.tb-content {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8rem 4rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}
/* testo principale — grande e diretto */
.tb-headline {
  font-family: var(--display);
  font-size: clamp(3rem, 6vw, 6rem);
  font-weight: 600;
  line-height: 1.0;
  color: var(--linen);
}
.tb-headline em {
  font-style: italic;
  background: linear-gradient(135deg, #3DBA7E, #3B9FD4);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tb-label {
  font-size: 0.68rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--sage-light);
  display: block;
  margin-bottom: 1.5rem;
}
.tb-text {
  font-size: 1rem;
  line-height: 1.85;
  color: rgba(242,242,240,0.65);
  margin: 1.8rem 0 2.5rem;
  max-width: 480px;
}
.tb-cta {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--charcoal);
  background: var(--sage-light);
  padding: 0.9rem 2.2rem;
  border-radius: 3px;
  transition: background 0.2s;
}
.tb-cta:hover { background: var(--earth-light); }
/* destra: 4 punti come stat-line */
.tb-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tb-stat {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  padding: 2rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.tb-stat:last-child { border-bottom: none; }
.tb-stat-num {
  font-family: var(--display);
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--sage-light);
  flex-shrink: 0;
  width: 80px;
}
.tb-stat-body {}
.tb-stat-title {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
  margin-bottom: 0.3rem;
}
.tb-stat-desc {
  font-size: 0.82rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.6;
}

@media (max-width: 768px) {
  .tb-content { grid-template-columns: 1fr; gap: 3rem; padding: 5rem 1.5rem; }
  .tb-stat-num { font-size: 2.5rem; width: 60px; }
}


/* ── WORKSHOP: layout a scorrimento cinematico ── */
.workshops-v2 {
  background: var(--charcoal);
  padding: 6rem 0;
  overflow: hidden;
}
.workshops-v2-header {
  padding: 0 4rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}
.workshops-v2-title {
  font-family: var(--display);
  font-size: clamp(2.5rem,5vw,5rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
}
.workshops-v2-title em { font-style:italic; color:var(--sage-light); }
.workshops-v2-sub {
  font-size: 0.8rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.06em;
  text-align: right;
  max-width: 200px;
  line-height: 1.6;
}

/* Stack verticale: ogni workshop occupa tutta la larghezza, alternando foto sx/dx */
.ws-stack { display: flex; flex-direction: column; gap: 0; }

.ws-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 480px;
  position: relative;
  overflow: hidden;
}
.ws-item:nth-child(even) { direction: rtl; }
.ws-item:nth-child(even) > * { direction: ltr; }

.ws-item-photo {
  position: relative;
  overflow: hidden;
}
.ws-item-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.7s ease;
  filter: brightness(0.85) saturate(0.85);
}
.ws-item:hover .ws-item-photo img {
  transform: scale(1.04);
  filter: brightness(0.95) saturate(1);
}

/* numero grande sovrapposto alla foto */
.ws-item-num {
  position: absolute;
  top: 1.5rem;
  left: 1.8rem;
  font-family: var(--display);
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,0.12);
  pointer-events: none;
  z-index: 2;
}

.ws-item-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem;
  background: var(--charcoal);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  position: relative;
}
/* accent line colorata sul bordo */
.ws-item-body::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 0;
  width: 3px;
  background: linear-gradient(to bottom, var(--sage-light), var(--earth-light));
}
.ws-item:nth-child(even) .ws-item-body::before {
  left: auto; right: 0;
}

.ws-item-tag {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--sage-light);
  margin-bottom: 1rem;
}
.ws-item-name {
  font-family: var(--display);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  color: var(--linen);
  line-height: 1.0;
  margin-bottom: 1.2rem;
}
.ws-item-desc {
  font-size: 0.9rem;
  color: rgba(242,242,240,0.5);
  line-height: 1.8;
  margin-bottom: 2rem;
  max-width: 380px;
}
.ws-item-meta {
  display: flex;
  gap: 2rem;
  margin-bottom: 2rem;
  font-size: 0.82rem;
  color: rgba(242,242,240,0.4);
}
.ws-item-meta strong {
  display: block;
  font-family: var(--display);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--linen);
  line-height: 1;
  margin-bottom: 0.2rem;
}
.ws-item-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--linen);
  border-bottom: 1px solid rgba(242,242,240,0.2);
  padding-bottom: 3px;
  width: fit-content;
  transition: border-color 0.2s, gap 0.2s;
}
.ws-item:hover .ws-item-cta {
  border-color: var(--sage-light);
  color: var(--sage-light);
  gap: 0.9rem;
}

@media (max-width: 768px) {
  .workshops-v2-header { padding: 0 1.5rem; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .ws-item { grid-template-columns: 1fr; min-height: auto; }
  .ws-item:nth-child(even) { direction: ltr; }
  .ws-item-photo { aspect-ratio: 4/3; }
  .ws-item-body { padding: 2.5rem 1.5rem; }
  .ws-item-body::before { top: 0; bottom: auto; left: 0; right: 0; width: auto; height: 3px; }
  .ws-item:nth-child(even) .ws-item-body::before { left: 0; right: 0; }
  .ws-item-num { font-size: 4rem; }
}
/* ── PAGINA CONTATTI ── */
.page-hero {
  min-height: 55vh;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 0;
}
.page-hero-bg {
  position: absolute; inset: 0;
  background-image: url('');
  background-size: cover;
  background-position: center 30%;
  filter: brightness(0.25) saturate(0.6);
  z-index: 0;
}
.page-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,15,26,0.98) 0%, rgba(10,15,26,0.2) 70%, transparent 100%);
  z-index: 1;
}
.page-hero-content {
  position: relative; z-index: 2;
  padding: 0 4rem 4rem;
}
.page-hero-label { font-size:0.68rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--sage-light);display:block;margin-bottom:1rem; }
.page-hero-title { font-family:var(--display);font-size:clamp(3rem,7vw,7rem);font-weight:600;color:var(--linen);line-height:1.0; }
.page-hero-title em { font-style:italic;background:linear-gradient(135deg,#3DBA7E,#3B9FD4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }

/* CONTATTI MAIN */
.contact-main {
  background: var(--charcoal);
  padding: 6rem 4rem;
}
.contact-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 6rem; align-items: start;
}

/* SINISTRA: info contatto */
.contact-info { display: flex; flex-direction: column; gap: 3rem; }
.contact-block-label {
  font-size: 0.65rem; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--sage-light);
  display: block; margin-bottom: 0.8rem;
}
.contact-block-title {
  font-family: var(--display);
  font-size: 1.6rem; font-weight: 600;
  color: var(--linen); line-height: 1.1;
  margin-bottom: 0.5rem;
}
.contact-block-desc {
  font-size: 0.85rem; color: rgba(242,242,240,0.5);
  line-height: 1.7; margin-bottom: 1.2rem;
}
.contact-link {
  display: inline-flex; align-items: center; gap: 0.7rem;
  text-decoration: none; font-size: 1rem;
  font-weight: 400; color: var(--linen);
  transition: color 0.2s;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding-bottom: 4px;
}
.contact-link:hover { color: var(--sage-light); border-color: var(--sage-light); }
.contact-link-icon { font-size: 1.2rem; }

/* Orari */
.contact-orari { display: flex; flex-direction: column; gap: 0; }
.contact-orario {
  display: flex; justify-content: space-between;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-size: 0.85rem;
}
.contact-orario:last-child { border-bottom: none; }
.contact-orario-giorno { color: rgba(242,242,240,0.5); }
.contact-orario-ora { color: var(--linen); }

/* Socials */
.contact-socials { display: flex; gap: 1rem; }
.contact-social {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.7rem 1.3rem;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 3px; text-decoration: none;
  font-size: 0.78rem; font-weight: 500;
  letter-spacing: 0.08em; color: rgba(242,242,240,0.7);
  transition: all 0.2s;
}
.contact-social:hover {
  border-color: var(--sage-light);
  color: var(--sage-light);
}

/* DESTRA: mappa */
.contact-map-wrap {
  border-radius: 6px; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  display: flex; flex-direction: column;
}
.contact-map-frame {
  width: 100%; height: 400px;
  filter: grayscale(30%) brightness(0.9) contrast(1.1);
}
.contact-map-info {
  background: rgba(255,255,255,0.04);
  padding: 1.5rem;
  display: flex; flex-direction: column; gap: 0.4rem;
}
.contact-map-name {
  font-family: var(--display);
  font-size: 1.2rem; font-weight: 600; color: var(--linen);
}
.contact-map-address {
  font-size: 0.85rem; color: rgba(242,242,240,0.5);
}
.contact-map-cta {
  display: inline-block; margin-top: 0.5rem;
  font-size: 0.72rem; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none; color: var(--sage-light);
  border-bottom: 1px solid rgba(61,186,126,0.3);
  padding-bottom: 2px; width: fit-content;
}

/* STRIP FINALE */
.contact-strip {
  background: var(--moss);
  padding: 4rem;
  text-align: center;
  position: relative; overflow: hidden;
}
.contact-strip::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(10,61,46,0.9), rgba(14,42,74,0.7));
}
.contact-strip-inner { position: relative; z-index: 2; }
.contact-strip-title {
  font-family: var(--display);
  font-size: clamp(1.8rem,3.5vw,3rem);
  font-weight: 600; color: var(--linen);
  margin-bottom: 0.8rem;
}
.contact-strip-title em { font-style: italic; color: var(--sage-light); }
.contact-strip-sub {
  font-size: 0.9rem; color: rgba(242,242,240,0.55);
  margin-bottom: 2rem;
}

@media(max-width:768px){
  .page-hero-content { padding: 0 1.5rem 3rem; }
  .contact-main { padding: 4rem 1.5rem; }
  .contact-inner { grid-template-columns: 1fr; gap: 3rem; }
  .contact-map-frame { height: 280px; }
  .contact-strip { padding: 3rem 1.5rem; }
}
/* ── FALLBACK REVEAL ── */
.reveal { opacity: 1 !important; transform: translateY(0) !important; }
/* ── FIX WORDPRESS ── */
.page-title, .wp-block-post-title { display: none !important; }
.entry-content, .post-content, .page-content { padding: 0 !important; margin: 0 !important; }
body { padding: 0 !important; margin: 0 auto !important; max-width: 1440px; overflow-x: hidden; }
.elementor-section-stretched { width: 100% !important; }

/* ── WOOCOMMERCE — stile Therra Botanic ── */
.therra-woo-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3rem 2rem 5rem;
}

/* Titolo pagina shop */
.woocommerce-products-header__title,
.woocommerce h1.page-title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(2.5rem, 5vw, 4rem) !important;
  font-weight: 600 !important;
  color: var(--linen) !important;
  margin-bottom: 2rem !important;
}

/* Griglia prodotti */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.5rem !important;
}

/* Card prodotto */
.woocommerce ul.products li.product {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  transition: transform 0.25s, border-color 0.25s !important;
  padding: 0 !important;
}
.woocommerce ul.products li.product:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(61,186,126,0.3) !important;
}

/* Immagine prodotto */
.woocommerce ul.products li.product img {
  width: 100% !important;
  aspect-ratio: 4/3 !important;
  object-fit: cover !important;
  display: block !important;
}

/* Nome prodotto */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--linen) !important;
  padding: 1rem 1.2rem 0.3rem !important;
}

/* Prezzo */
.woocommerce ul.products li.product .price {
  color: var(--sage-light) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 1rem !important;
  padding: 0 1.2rem 0.8rem !important;
  display: block !important;
}

/* Bottone aggiungi al carrello */
.woocommerce ul.products li.product .button,
.woocommerce a.button,
.woocommerce button.button {
  background: var(--sage-light) !important;
  color: var(--charcoal) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 3px !important;
  padding: 0.75rem 1.5rem !important;
  margin: 0 1.2rem 1.2rem !important;
  display: block !important;
  text-align: center !important;
  transition: background 0.2s !important;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: #4dd494 !important;
  color: var(--charcoal) !important;
}

/* Pagina prodotto singolo */
.woocommerce div.product .product_title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  color: var(--linen) !important;
}
.woocommerce div.product p.price {
  color: var(--sage-light) !important;
  font-size: 1.5rem !important;
}

/* Carrello e checkout */
.woocommerce table.shop_table th {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.75rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--sage-light) !important;
  border-color: rgba(255,255,255,0.08) !important;
}
.woocommerce table.shop_table td {
  color: var(--linen) !important;
  border-color: rgba(255,255,255,0.08) !important;
}

/* Mobile */
@media (max-width: 768px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr 1fr !important;
  }
  .therra-woo-wrap { padding: 2rem 1rem 3rem; }
}
@media (max-width: 480px) {
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
  }
}



/* ══════════════════════════════════════
   PAGINA PRODOTTO SINGOLO — WooCommerce
   ══════════════════════════════════════ */

.therra-product-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3rem 2rem 5rem;
}

/* Layout prodotto — immagine sx, dettagli dx */
.woocommerce div.product {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 4rem !important;
  align-items: start !important;
}

/* Immagine prodotto */
.woocommerce div.product div.images {
  position: sticky !important;
  top: 90px !important;
}
.woocommerce div.product div.images img {
  width: 100% !important;
  border-radius: 6px !important;
  display: block !important;
}
.woocommerce div.product div.images .flex-control-thumbs {
  display: flex !important;
  gap: 0.5rem !important;
  margin-top: 0.75rem !important;
}
.woocommerce div.product div.images .flex-control-thumbs li {
  flex: 1 !important;
  list-style: none !important;
}
.woocommerce div.product div.images .flex-control-thumbs img {
  border-radius: 3px !important;
  opacity: 0.6 !important;
  cursor: pointer !important;
  transition: opacity 0.2s !important;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs .flex-active {
  opacity: 1 !important;
  border: 1px solid #3DBA7E !important;
}

/* Dettagli prodotto */
.woocommerce div.product div.summary {
  padding: 0 !important;
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.75rem !important;
  color: rgba(242,242,240,0.4) !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-bottom: 1.5rem !important;
  grid-column: 1 / -1 !important;
}
.woocommerce .woocommerce-breadcrumb a {
  color: #3DBA7E !important;
  text-decoration: none !important;
}

/* Titolo prodotto */
.woocommerce div.product .product_title {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 600 !important;
  color: #F2F2F0 !important;
  line-height: 1.1 !important;
  margin-bottom: 0.5rem !important;
}

/* Prezzo */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 1.8rem !important;
  font-weight: 600 !important;
  color: #3DBA7E !important;
  margin-bottom: 1.5rem !important;
  display: block !important;
}

/* Descrizione breve */
.woocommerce div.product .woocommerce-product-details__short-description {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.92rem !important;
  color: rgba(242,242,240,0.6) !important;
  line-height: 1.8 !important;
  margin-bottom: 2rem !important;
  padding-bottom: 2rem !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* Quantità */
.woocommerce div.product .quantity input {
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 3px !important;
  color: #F2F2F0 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 1rem !important;
  padding: 0.75rem 1rem !important;
  width: 80px !important;
  text-align: center !important;
}

/* Bottone aggiungi al carrello */
.woocommerce div.product .single_add_to_cart_button {
  background: #3DBA7E !important;
  color: #0A0F1A !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 0.9rem 2.5rem !important;
  border: none !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  margin-left: 1rem !important;
}
.woocommerce div.product .single_add_to_cart_button:hover {
  background: #4dd494 !important;
}

/* Tab descrizione */
.woocommerce div.product .woocommerce-tabs {
  grid-column: 1 / -1 !important;
  margin-top: 3rem !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  padding-top: 2rem !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex !important;
  gap: 2rem !important;
  list-style: none !important;
  padding: 0 !important;
  margin-bottom: 2rem !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.78rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: rgba(242,242,240,0.4) !important;
  text-decoration: none !important;
  padding-bottom: 1rem !important;
  display: block !important;
  border-bottom: 2px solid transparent !important;
  transition: color 0.2s !important;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: #3DBA7E !important;
  border-bottom-color: #3DBA7E !important;
}
.woocommerce div.product .woocommerce-tabs .panel {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.92rem !important;
  color: rgba(242,242,240,0.6) !important;
  line-height: 1.8 !important;
}

/* Prodotti correlati */
.woocommerce .related.products {
  grid-column: 1 / -1 !important;
  margin-top: 4rem !important;
  padding-top: 3rem !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
}
.woocommerce .related.products h2 {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: 2rem !important;
  font-weight: 600 !important;
  color: #F2F2F0 !important;
  margin-bottom: 2rem !important;
}

/* Mobile */
@media (max-width: 768px) {
  .woocommerce div.product {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }
  .woocommerce div.product div.images {
    position: static !important;
  }
  .therra-product-wrap {
    padding: 2rem 1rem 3rem !important;
  }
}

/* ══════════════════════════════════════
   PAGINA PRODOTTO SINGOLO — Therra Botanic
   ══════════════════════════════════════ */

.therra-product-page {
  max-width: 1100px;
  margin: 0 auto;
  padding: 3rem 2rem 6rem;
  box-sizing: border-box;
}

/* Breadcrumb */
.therra-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--body);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(242,242,240,0.35);
  margin-bottom: 2.5rem;
}
.therra-breadcrumb a {
  color: rgba(242,242,240,0.35);
  text-decoration: none;
  transition: color 0.2s;
}
.therra-breadcrumb a:hover { color: var(--sage-light); }
.therra-breadcrumb span { color: rgba(242,242,240,0.2); }

/* Grid prodotto */
.therra-product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: start;
  margin-bottom: 4rem;
}

/* Galleria */
.therra-gallery-main {
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.therra-main-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: opacity 0.2s;
}
.therra-gallery-thumbs {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.therra-thumb {
  width: 72px;
  height: 72px;
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color 0.2s, opacity 0.2s;
  opacity: 0.55;
}
.therra-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.therra-thumb:hover,
.therra-thumb.active {
  border-color: var(--sage-light);
  opacity: 1;
}

/* Dettagli prodotto */
.therra-product-title {
  font-family: var(--display) !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 600 !important;
  color: var(--linen) !important;
  line-height: 1.1 !important;
  margin-bottom: 0.75rem !important;
  display: block !important;
}

.therra-product-price {
  font-family: var(--display);
  font-size: 1.8rem;
  color: var(--sage-light);
  margin-bottom: 1.5rem;
}
.therra-product-price .woocommerce-Price-amount {
  color: var(--sage-light) !important;
  font-family: var(--display) !important;
  font-size: 1.8rem !important;
}

.therra-product-short-desc {
  font-family: var(--body);
  font-size: 0.92rem;
  color: rgba(242,242,240,0.6);
  line-height: 1.8;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

/* Bottone carrello */
.therra-product-cart .single_add_to_cart_button,
.therra-product-cart button[type="submit"] {
  background: var(--sage-light) !important;
  color: var(--charcoal) !important;
  font-family: var(--body) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 0.9rem 2.5rem !important;
  border: none !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  margin-top: 1.5rem !important;
  display: inline-block !important;
}
.therra-product-cart .single_add_to_cart_button:hover {
  background: #4dd494 !important;
}
/* Nascondi il testo HTML dentro il bottone */
.therra-product-cart .single_add_to_cart_button span {
  display: none !important;
}
.therra-product-cart .single_add_to_cart_button::after {
  content: 'Aggiungi al carrello';
}

/* Categorie */
.therra-product-cats {
  margin-top: 1.5rem;
  font-family: var(--body);
  font-size: 0.75rem;
  color: rgba(242,242,240,0.35);
  letter-spacing: 0.08em;
}
.therra-product-cats a {
  color: var(--sage-light);
  text-decoration: none;
  margin-left: 0.3rem;
}

/* Descrizione completa */
.therra-product-desc {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 3rem;
  margin-bottom: 4rem;
}
.therra-section-label {
  font-family: var(--body) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--sage-light) !important;
  margin-bottom: 1.5rem !important;
}
.therra-product-desc-inner p,
.therra-product-desc-inner li {
  font-family: var(--body);
  font-size: 0.92rem;
  color: rgba(242,242,240,0.6);
  line-height: 1.8;
}
.therra-product-desc-inner strong {
  color: var(--linen);
  font-weight: 500;
}

/* Prodotti correlati */
.therra-related {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 3rem;
}
.therra-related-title {
  font-family: var(--display) !important;
  font-size: 2rem !important;
  font-weight: 600 !important;
  color: var(--linen) !important;
  margin-bottom: 2rem !important;
}
.therra-related-title em {
  font-style: italic;
  color: var(--sage-light);
}
.therra-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.therra-related-card {
  text-decoration: none;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 6px;
  overflow: hidden;
  transition: transform 0.25s, border-color 0.25s;
}
.therra-related-card:hover {
  transform: translateY(-4px);
  border-color: rgba(61,186,126,0.3);
}
.therra-related-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
}
.therra-related-info {
  padding: 1rem 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.therra-related-name {
  font-family: var(--display);
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--linen);
}
.therra-related-price {
  font-family: var(--display);
  font-size: 1rem;
  color: var(--sage-light);
}

/* Mobile */
@media (max-width: 768px) {
  .therra-product-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .therra-related-grid {
    grid-template-columns: 1fr 1fr;
  }
  .therra-product-page {
    padding: 2rem 1rem 4rem;
  }
}
