/* ====== Palette & Typography ====== */
:root{
  --bg:#fffefb;
  --text:#1b1b1b;
  --muted:#5b5b5b;
  --primary:#f97316;    /* teal profondo */
  --primary-600:#ea580c;
  --accent:#e76f51;     /* corallo caldo */
  --soft:#fff3e8;       /* menta chiarissima */
  --card:#ffffff;
  --shadow:0 8px 24px rgba(0,0,0,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Montserrat', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
}
h1,h2,h3,h4{font-family:'Montserrat', sans-serif; margin:0 0 .5rem 0; color:#0f172a}
.container{width:min(1100px, 92%); margin-inline:auto}
img{max-width:100%; display:block}
.rounded{border-radius:var(--radius)}
.shadow{box-shadow:var(--shadow)}

/* ====== Header ====== */
.site-header{
  position:sticky; top:0; z-index:999; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.06)
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding: .7rem 0}
.brand{display:flex; align-items:center; gap:.7rem}
.logo{
  width:42px; height:42px; display:grid; place-items:center; border-radius:50%;
  background:var(--primary); color:#fff; font-weight:700
}
.brand-text small{display:block; color:var(--muted); margin-top:-2px; font-size:.8rem}
.nav a{margin-left:1rem; text-decoration:none; color:var(--text)}
.nav a:hover{color:var(--primary)}
.btn{border:2px solid var(--primary); padding:.6rem 1rem; border-radius:999px; text-decoration:none; display:inline-block}
.btn-small{padding:.4rem .8rem}
.btn-primary{background:var(--primary); color:#fff}
.btn-primary:hover{background:var(--primary-600)}
.btn-secondary{background:var(--soft); border-color:transparent; color:var(--primary)}
.btn-outline{background:#fff; color:var(--primary)}
.btn-big{font-size:1.1rem; padding:.9rem 1.4rem}
.hamburger{display:none; font-size:1.6rem; background:none; border:none}

/* ====== Hero ====== */
.hero{position:relative; min-height:78vh; display:grid; align-items:center; border-bottom:6px solid var(--soft)}
.hero-slider{position:absolute; inset:0; overflow:hidden}
.slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity .8s ease}
.slide.active{opacity:1}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(249,115,22,.25) 0%, rgba(15,23,42,.65) 70%);}
.hero-content{position:relative; z-index:2; color:#fff; padding:4rem 0}
.hero h1{font-size:clamp(2rem, 5vw, 3.2rem)}
.hero .subtitle{font-size:1.1rem; max-width:680px}

/* ====== Sections ====== */

/* ====== Section-specific backgrounds ====== */
.who{background:
  radial-gradient(1200px 400px at -10% 0%, rgba(249,115,22,.12), transparent 60%),
  linear-gradient(180deg,#ffffff, #fffaf5);
}
.services{background:
  linear-gradient(135deg, rgba(249,115,22,.08), rgba(255,243,232,.9)),
  url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><circle cx="2" cy="2" r="2" fill="%23ffd7ba" opacity=".35"/></svg>');
  background-size:auto, 28px 28px;
}
.method{background:
  radial-gradient(900px 300px at 110% 10%, rgba(234,88,12,.12), transparent 60%),
  linear-gradient(180deg,#fffdf8,#fff7ed);
}
.testimonials{background:
  linear-gradient(180deg,#fff7ed 0%, #fff 100%);
}
.cta-final{background:
  linear-gradient(135deg, #fff3e8, #ffd7ba);
}
.footer{background: #1f2937; color:#e5e7eb;}
.footer a{color:#ffd7ba}

.section{padding:4rem 0}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem}
.pillars{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; padding-left:1rem}
.pillars li{background:var(--soft); padding:.6rem .8rem; border-radius:12px}

.services h2,.method h2,.who h2,.testimonials h2{margin-bottom:1.2rem}
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem}
.card{background:var(--card); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column}
.card-body{padding:1rem 1.1rem; display:flex; flex-direction:column; gap:.6rem; flex:1}
.price{font-weight:700; color:var(--primary)}

.method .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:1rem}
.method .step{background:#fff; border-radius:16px; padding:1rem; box-shadow:var(--shadow); text-align:center}
.method .step h4{margin:.5rem 0 .2rem}

.testimonials{background:#f8fbfa}
.testi-slider{position:relative; overflow:hidden; min-height:160px}
.testi{opacity:0; transform:translateX(20px); transition:.5s; margin:0}
.testi.active{opacity:1; transform:none}
.dots{display:flex; gap:.4rem; justify-content:center; margin-top:1rem}
.dots button{width:10px; height:10px; border-radius:50%; border:none; background:#cfdedb}
.dots button.active{background:var(--primary)}

.cta-final{background:linear-gradient(135deg, var(--soft), #fff)}
.center{text-align:center}

.footer{background:#0d1f1c; color:#dfe9e7; padding-top:2.2rem}
.footer a{color:#c6fff2; text-decoration:none}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:1.5rem}
.footer-links{list-style:none; padding-left:0}
.footer-links li{margin:.4rem 0}
.copyright{border-top:1px solid rgba(255,255,255,.15); padding:1rem 0; margin-top:1.5rem; text-align:center}

.to-top{
  position:fixed; right:1rem; bottom:1rem; width:42px; height:42px;
  border-radius:50%; background:var(--primary); color:#fff; border:none; box-shadow:var(--shadow); display:none
}
.to-top.show{display:inline-grid; place-items:center}

/* ====== Responsive ====== */
@media (max-width: 960px){
  .grid-2{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .method .steps{grid-template-columns:1fr 1fr}
  .nav{display:none; position:absolute; right:1rem; top:60px; background:#fff; padding:1rem; border-radius:14px; box-shadow:var(--shadow)}
  .nav a{display:block; margin:.4rem 0}
  .hamburger{display:inline-block}
}
@media (max-width: 640px){
  .cards{grid-template-columns:1fr}
  .method .steps{grid-template-columns:1fr}
}
