﻿/* ===== PALETTE ===== */
:root{
  --beige:#f9f6e4;
  --beige-medio:#f4efcf;
  --beige-scuro:#f0e8ba;
  --beige-chiaro:#fdfbf4;
  --verde-chiaro:#a7d37e;
  --verde-medio:#247536;
  --verde-scuro:#0a4f30;
  --nero:#000000;
  --bianco:#ffffff;
  --header-h: 100px;
  --section-space: 3.2rem;
  --section-first-top-space: 2.25rem;
  --container-pad: 2rem;
  --safe-top: env(safe-area-inset-top, 0px);
}

html{scroll-behavior:smooth;overflow-x:hidden}
html.menu-open{overflow:hidden;overscroll-behavior:none}
body.gs-body{
  margin:0;
  background:var(--beige-chiaro);
  color:var(--nero);
  font-family:system-ui,-apple-system,"Segoe UI",Inter,Roboto,Arial,sans-serif;
  line-height:1.55;
  overflow-x:hidden;
}
body.gs-body.menu-open{overflow:hidden;overscroll-behavior:none}
main{background:var(--bianco)}
img{max-width:100%;height:auto}
.container{max-width:1200px;margin-inline:auto;padding-inline:var(--container-pad)}
section{scroll-margin-top: calc(var(--header-h) + var(--safe-top) + 10px);}
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip-link:focus{
  left:1rem;
  top:1rem;
  width:auto;
  height:auto;
  padding:.65rem 1rem;
  border-radius:10px;
  background:#0a4f30;
  color:#fff;
  z-index:1200;
  text-decoration:none;
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--verde-medio);
  outline-offset:2px;
}

/* ===== NAVBAR ===== */
.gs-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1100;
  padding-top:var(--safe-top);
  background:linear-gradient(180deg, rgba(249,246,228,.98) 0%, rgba(249,246,228,.94) 100%);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  transform:translateY(0);
  transition:transform .3s ease, box-shadow .28s ease, background .28s ease, border-color .28s ease;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  border-bottom:1px solid rgba(207,223,184,.88);
}
.gs-header.is-scrolled{
  box-shadow:0 16px 34px rgba(10,79,48,.08);
}
.gs-header.is-hidden{
  transform:translateY(calc(-100% - 18px));
}
.gs-header.menu-open{
  transform:translateY(0);
}
.nav-row{
  min-height:var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding-inline:var(--container-pad);
  background:transparent;
  box-shadow:none;
}
.brand{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:0;
  text-decoration:none;
}
.brand-logo{
  width:64px;
  height:64px;
  flex:0 0 64px;
  object-fit:contain;
  padding:0;
  border-radius:0;
  background:none;
  box-shadow:none;
}
.brand-name,
.nav-pill,
.btn-contatti,
.mobile-menu .mobile-link,
.gs-nav .dropdown-item{
  font-size:1rem;
  font-weight:800;
  letter-spacing:-.01em;
}
.brand-name{
  color:var(--verde-scuro);
  font-size:1.18rem;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}

.gs-nav .nav-list{
  display:flex;
  align-items:center;
  gap:.6rem;
  list-style:none;
  margin:0;
  padding:0;
}
.nav-pill{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 20px;
  border-radius:999px;
  border:1px solid transparent;
  color:var(--verde-scuro);
  text-decoration:none;
  font-weight:800;
  background:transparent;
  transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease, color .2s ease;
}
.nav-pill:hover{
  background:rgba(244,239,207,.84);
  border-color:rgba(210,223,188,.9);
  box-shadow:0 10px 22px rgba(10,79,48,.06);
}
.nav-pill.is-active{
  background:linear-gradient(180deg, #f7f0cb 0%, #efe4bb 100%);
  border-color:rgba(226,215,166,.95);
  box-shadow:0 10px 22px rgba(10,79,48,.08);
}

.btn-contatti{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 24px;
  border-radius:999px;
  background:linear-gradient(180deg, #2d8a42 0%, #247536 100%);
  color:var(--beige);
  text-decoration:none;
  box-shadow:0 16px 30px rgba(36,117,54,.22);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn-contatti:hover{
  transform:translateY(-1px);
  background:linear-gradient(180deg, #247536 0%, #0a4f30 100%);
  box-shadow:0 18px 34px rgba(10,79,48,.24);
  color:var(--beige);
}

.mobile-menu-btn{
  display:none;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  padding:0;
  border:1px solid rgba(210,223,188,.92);
  border-radius:18px;
  background:rgba(244,239,207,.72);
  color:var(--verde-scuro);
  font-size:1.8rem;
  line-height:1;
  box-shadow:0 12px 24px rgba(10,79,48,.08);
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.mobile-menu-btn:hover{
  background:rgba(244,239,207,.92);
  border-color:rgba(210,223,188,1);
}
.mobile-menu{
  display:none;
  position:fixed;
  top:calc(var(--header-h) + var(--safe-top));
  left:0;
  right:0;
  z-index:1090;
  padding:.45rem 0 calc(.85rem + env(safe-area-inset-bottom, 0px));
  max-height:calc(100dvh - var(--header-h) - var(--safe-top));
  overflow-y:auto;
  overscroll-behavior:contain;
  box-sizing:border-box;
  border-top:1px solid rgba(207,223,184,.88);
  border-radius:0;
  background:rgba(249,246,228,.98);
  box-shadow:0 22px 38px rgba(10,79,48,.12);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.mobile-menu .mobile-link{
  display:block;
  margin:0;
  padding:.95rem var(--container-pad);
  min-height:44px;
  border-radius:0;
  color:var(--verde-scuro);
  text-align:center;
  text-decoration:none;
  font-weight:800;
  overflow-wrap:anywhere;
  transition:background .2s ease, color .2s ease;
}
.mobile-menu .mobile-link:hover{background:rgba(244,239,207,.92)}
main{padding-top:calc(var(--header-h) + var(--safe-top));}
@media (max-width:1100px){
  .gs-nav{display:none}
  .mobile-menu-btn{display:flex}
  .mobile-menu .btn-contatti{
    display:flex;
    width:auto;
    margin:.45rem var(--container-pad) 0;
    box-sizing:border-box;
  }
}

/* ===== SEZIONI: spazi compatti ===== */
.section{padding-block:var(--section-space)}
.gs-header + main > :first-child{
  margin-top:calc(-1 * (var(--header-h) + var(--safe-top)));
  padding-top:calc(var(--header-h) + var(--safe-top) + var(--section-first-top-space));
}

/* Un po' più di aria solo tra le sezioni della home */
.hero-section + .about-section{
  margin-top:clamp(1rem, 2vw, 1.8rem);
}
.about-section + .services-section,
.services-section + .cta-section{
  margin-top:0;
}

/* Tutti gli hero iniziali condividono lo stesso distacco sotto la navbar */
.hero-section,
.page-hero,
.articles-hero,
.article-detail-hero{
  margin-top:calc(-1 * (var(--header-h) + var(--safe-top)));
  padding-top:calc(var(--header-h) + var(--safe-top) + var(--section-first-top-space));
}

/* ===== HERO (bianco) ===== */
.hero-section{background:var(--bianco)}
.hero-container{display:flex;align-items:center;justify-content:space-between;gap:3rem;flex-wrap:nowrap}
.hero-text{flex:1 1 560px;max-width:640px}
.hero-text,.intro-text,.intro-media,.cta-left,.cta-right{min-width:0}
.hero-badge{display:inline-block;background:#e5f0e0;color:#6b8c6b;padding:.65rem 1.2rem;border-radius:9999px;font-weight:900}
.hero-text > .hero-badge{display:block;width:max-content}
.hero-text h1{font-size:3.7rem;line-height:1.08;margin:.8rem 0 1rem;color:#2e2e2e}
.hero-text .accent{color:var(--verde-chiaro)}
.hero-desc{color:#4d4d4d;font-size:1.12rem;margin-bottom:.6rem}
.hero-highlights{display:flex;gap:1rem;margin-top:1.15rem;flex-wrap:wrap}
.hero-highlights .highlight{
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.82rem .95rem;
  border-radius:18px;
  border:1px solid #e4ead8;
  background:rgba(255,255,255,.84);
  box-shadow:0 14px 28px rgba(0,0,0,.04);
}
.hero-highlights .highlight .icon-circle{
  width:56px;
  height:56px;
  flex:0 0 56px;
  border-radius:22px;
  background:linear-gradient(180deg, #eef6e7 0%, #dcebc8 100%);
  box-shadow:none;
}
.hero-highlights .highlight small{
  font-size:1rem;
  font-weight:800;
  color:#365040;
}
.icon-circle{width:64px;height:64px;border-radius:9999px;background:var(--verde-chiaro);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(0,0,0,.06)}
.icon-circle .bi{font-size:28px;color:var(--verde-scuro);line-height:1}
.icon-circle svg{width:28px;height:28px;color:var(--verde-scuro)}
.hero-cta-under{
  display:block;
  width:max-content;
  margin:1.2rem auto 0;
}
.btn-outline-hero{display:inline-block;border:2px solid var(--verde-medio);color:var(--verde-medio);border-radius:9999px;padding:.9rem 1.7rem;font-weight:900;text-decoration:none;transition:all .2s}
.btn-outline-hero:hover{background:var(--verde-medio);color:var(--beige)}
.hero-image{flex:0 0 560px;max-width:560px}
.hero-image img{width:100%;border-radius:16px;box-shadow:0 18px 36px rgba(0,0,0,.12)}
@media (max-width:992px){.hero-container{flex-wrap:wrap}.hero-image{flex:1 1 100%;max-width:100%}}
@media (max-width:600px){.hero-text h1{font-size:clamp(2rem,9vw,2.8rem)}}

/* ===== CHI SIAMO - obliqui sottili, sezione ampia, contenuti non schiacciati ===== */
.about-section{
  position: relative;
  background:
    radial-gradient(circle at 14% 18%, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 24%),
    radial-gradient(circle at 86% 76%, rgba(167,211,126,.14) 0%, rgba(167,211,126,0) 24%),
    linear-gradient(180deg, #f6efcf 0%, #efe4bb 100%);
  padding-top: clamp(4rem, 8vw, 7rem);
  padding-bottom: clamp(4rem, 8vw, 6.5rem);
  isolation: isolate;
  overflow: hidden;
}

.about-section .container{ max-width: 1280px; }

.about-container{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 4.4rem;
  align-items: center;
}

/* taglio obliquo superiore (bianco) - sottile e interno */
.about-section::before{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;                 /* top, full width */
  height: clamp(2.2rem, 5vw, 3.8rem);/* spessore del taglio */
  background: var(--bianco);
  clip-path: polygon(0 0, 100% 0, 100% 55%, 0 100%);
  z-index: 0;
  pointer-events: none;
}

/* taglio obliquo inferiore (bianco) - sottile e interno */
.about-section::after{
  content: "";
  position: absolute;
  inset: auto 0 0 0;                 /* bottom, full width */
  height: clamp(2.2rem, 5vw, 3.8rem);
  background: linear-gradient(180deg, #f8fbf4 0%, #f2f8ec 100%);
  clip-path: polygon(0 70%, 100% 0, 100% 100%, 0 100%);
  z-index: 0;
  pointer-events: none;
}

.about-photo{
  position:relative;
  display:flex;
  justify-content:center;
}
.about-photo::before{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  left:20px;
  bottom:35px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 72%);
  pointer-events:none;
}
.photo-circle{
  position:relative;
  width: 520px;
  height: 520px;
  max-width: 100%;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbf4 100%);
  border:1px solid rgba(255,255,255,.92);
  display: grid; place-items: center;
  box-shadow: 0 22px 44px rgba(0,0,0,.1);
}
.photo-circle::after{
  content:"";
  position:absolute;
  inset:22px;
  border-radius:50%;
  border:1px dashed rgba(36,117,54,.14);
}
.photo-circle img{
  width: 88%;
  height: 88%;
  object-fit: cover;
  border-radius: 50%;
}

.about-badge{
  display: block;
  width:max-content;
  background: linear-gradient(135deg, var(--verde-medio) 0%, #2d8242 100%);
  color: var(--beige);
  padding: .75rem 1.2rem;
  border-radius: 9999px;
  font-weight: 900;
  margin:0 auto 1rem;
  box-shadow:0 12px 24px rgba(36,117,54,.14);
}
.about-text{
  padding:clamp(1.35rem, 2.6vw, 2rem);
  border-radius:30px;
  border:1px solid rgba(255,255,255,.58);
  background:rgba(255,255,255,.42);
  box-shadow:0 22px 42px rgba(0,0,0,.06);
  backdrop-filter:blur(4px);
}
.about-text .lead{
  font-size:1.16rem;
  line-height:1.82;
  margin-bottom:1rem;
  color:#344238;
}
.about-text .lead:first-of-type{
  font-size:clamp(1.14rem, 1.6vw, 1.24rem);
  line-height:1.78;
  color:#314539;
  font-weight:500;
}
.about-text .lead:last-of-type{
  margin-bottom:1.35rem;
}
.about-cta{
  display:flex;
  justify-content:center;
}

.btn-about{
  display: block;
  width:max-content;
  background: rgba(255,255,255,.94);
  color: var(--verde-medio);
  border: 2px solid var(--verde-medio);
  border-radius: 9999px;
  padding: .95rem 1.5rem;
  text-decoration: none;
  font-weight: 900;
  margin-inline:auto;
  box-shadow:0 14px 28px rgba(0,0,0,.08);
  transition: all .2s;
}
.btn-about:hover{ background: var(--verde-medio); color: var(--beige); }

@media (max-width:1100px){
  .about-container{ grid-template-columns: 1fr; text-align: center; }
  .photo-circle{ margin-inline: auto; width: 420px; height: 420px; }
  .about-text{ text-align:center; }
}
@media (max-width:520px){
  .photo-circle{
    width:min(88vw, 360px);
    height:min(88vw, 360px);
  }
  .about-text{
    padding:1.2rem;
  }
}

/* ===== SERVIZI ===== */
.services-section{background:var(--bianco)}
.services-wrap{max-width:1100px;margin-inline:auto}
.section-kicker{display:block;width:max-content;margin:0 auto;background:var(--beige-medio);color:var(--verde-scuro);padding:.65rem 1.1rem;border-radius:9999px;font-weight:900}
.section-sub{color:#555;max-width:820px;margin:.9rem auto 2rem;text-align:center;font-size:1.06rem}
.services-grid{display:grid;gap:1.6rem;grid-template-columns:repeat(3,1fr);align-items:stretch}
.service-card{background:var(--bianco);border-radius:14px;padding:1.8rem;box-shadow:0 14px 30px rgba(0,0,0,.07);text-align:center}
.service-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin:0 auto .8rem;
  color:var(--verde-medio);
}
.service-icon .bi{
  font-size:48px;
  line-height:1;
}
.service-icon svg{width:48px;height:48px;color:var(--verde-medio)}
.service-card h3{font-size:1.25rem;color:#2f2f2f;margin-bottom:.35rem;font-weight:900}
.service-card p{color:#666;font-size:1rem;margin:0}
.services-cta{text-align:center;margin-top:2rem}
@media (max-width:900px){.services-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.services-grid{grid-template-columns:1fr}}

.home-services{
  position:relative;
  overflow:hidden;
  padding-top:calc(var(--section-space) + clamp(1rem, 2vw, 1.8rem));
  padding-bottom:calc(var(--section-space) + clamp(1rem, 2vw, 1.8rem));
  background:
    radial-gradient(circle at 88% 18%, rgba(167,211,126,.12) 0%, rgba(167,211,126,0) 24%),
    radial-gradient(circle at 10% 84%, rgba(244,239,207,.32) 0%, rgba(244,239,207,0) 26%),
    linear-gradient(180deg, #f8fbf4 0%, #f3f8ee 100%);
}
.home-services__wrap{
  max-width:1180px;
}
.home-services__head{
  max-width:860px;
  margin:0 auto 2.2rem;
}
.home-services .section-sub{
  margin-bottom:0;
}
.home-services__grid{
  gap:1.85rem;
}
.home-service-card{
  position:relative;
  overflow:hidden;
  border:1px solid #e4ebd9;
  border-radius:26px;
  padding:2rem 1.45rem 1.6rem;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,250,240,.98) 100%);
  box-shadow:0 22px 42px rgba(0,0,0,.06);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.home-service-card::before{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  top:-74px;
  right:-52px;
  border-radius:9999px;
  background:radial-gradient(circle, rgba(167,211,126,.22) 0%, rgba(167,211,126,0) 72%);
  pointer-events:none;
}
.home-service-card > *{
  position:relative;
  z-index:1;
}
.home-service-card:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 50px rgba(0,0,0,.08);
  border-color:#d7e3c8;
}
.home-service-card__icon{
  width:72px;
  height:72px;
  margin:0 auto 1rem;
  border-radius:22px;
  background:linear-gradient(180deg, #eef6e7 0%, #dcebc8 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:none;
}
.home-service-card__icon i{
  font-size:1.6rem;
  color:var(--verde-scuro);
}
.home-service-card__icon svg{
  width:1.95rem;
  height:1.95rem;
  color:var(--verde-scuro);
}
.home-service-card h3{
  margin:0 0 .7rem;
  color:var(--verde-scuro);
  font-size:1.4rem;
}
.home-service-card p{
  max-width:34ch;
  margin:0 auto;
  color:#505850;
  line-height:1.76;
}
.home-service-card .services-cta{
  margin-top:1.5rem;
}
.home-service-card .btn-outline-hero{
  padding:.82rem 1.35rem;
}

@media (max-width:720px){
  .home-services__head{
    margin-bottom:1.6rem;
  }
  .home-service-card{
    padding:1.45rem 1.2rem;
  }
}

/* ===== CTA CONTATTI ===== */
.cta-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(167,211,126,.24) 0%, rgba(167,211,126,0) 26%),
    radial-gradient(circle at 88% 82%, rgba(244,239,207,.18) 0%, rgba(244,239,207,0) 28%),
    linear-gradient(135deg, #1b6331 0%, #247536 55%, #2d8040 100%);
  color:var(--beige);
}
.cta-grid{
  position:relative;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:2rem;
  align-items:start;
  padding:clamp(1.35rem, 2.4vw, 2rem);
  border-radius:32px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.04) 100%);
  box-shadow:0 26px 56px rgba(0,0,0,.18);
}
.cta-kicker{
  display:inline-block;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.16);
  padding:.65rem 1.1rem;
  border-radius:9999px;
  font-weight:900;
  letter-spacing:.02em;
  margin-bottom:.75rem;
}
.cta-left h2{
  font-size:clamp(1.55rem, 3.1vw, 2.15rem);
  line-height:1.08;
  margin:.2rem 0 .85rem;
  max-width:none;
  white-space:nowrap;
}
.cta-title-line{
  display:block;
}
.cta-left p{
  margin:0 0 .95rem;
  max-width:640px;
  font-size:1.04rem;
  line-height:1.72;
  color:rgba(249,246,228,.92);
}
.btn-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--bianco);
  color:var(--verde-medio);
  border-radius:9999px;
  padding:1rem 1.7rem;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 16px 30px rgba(0,0,0,.16);
  transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.btn-cta:hover{
  background:var(--beige-scuro);
  color:var(--verde-scuro);
  transform:translateY(-1px);
  box-shadow:0 20px 36px rgba(0,0,0,.18);
}
.cta-right{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  padding:1.25rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.cta-right h3{
  margin:.1rem 0 .7rem;
  font-size:1.18rem;
}
.cta-right p{
  margin:0 0 .75rem;
  line-height:1.62;
  color:rgba(249,246,228,.92);
}
.cta-right small{
  display:block;
  margin-top:.45rem;
  color:rgba(249,246,228,.84);
  line-height:1.6;
}
@media (max-width:1080px){
  .cta-grid{grid-template-columns:1fr}
  .cta-left h2{white-space:normal}
}

/* ===== FOOTER ===== */
.gs-footer{
  background:linear-gradient(180deg, #fbf8ea 0%, #f8f3de 100%);
  color:var(--verde-scuro);
  border-top:1px solid var(--beige-scuro);
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:2.4rem;
  padding-block:2.45rem 1.85rem;
  text-align:center;
  align-items:start;
}
.footer-col{display:flex;flex-direction:column;align-items:center}
.footer-col h5{
  margin:.15rem 0 1rem;
  font-size:1rem;
  font-weight:900;
  color:var(--verde-scuro);
}
.footer-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.75rem;
  text-decoration:none;
  color:inherit;
}
.footer-logo{width:74px;height:74px;object-fit:contain}
.footer-brand-text{text-align:center}
.footer-brand-text strong{
  font-size:1.1rem;
  letter-spacing:.03em;
}
.footer-brand-text small{
  display:block;
  margin-top:.15rem;
  color:#4a6353;
}
.footer-links,.footer-contacts{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.55rem;
}
.footer-links li + li,.footer-contacts li + li{margin-top:0}
.footer-links li a,
.footer-contact-link,
.footer-contact-text{
  color:var(--verde-scuro);
  text-decoration:none;
}
.footer-links li a:hover,
.footer-contact-link:hover{text-decoration:underline}
.footer-socials{display:flex;gap:.65rem;justify-content:center;align-items:center;margin-top:1.2rem}
.footer-social{
  width:42px;
  height:42px;
  border-radius:9999px;
  border:1px solid var(--verde-medio);
  color:var(--verde-medio);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:all .2s ease;
}
.footer-social:hover{
  background:var(--verde-medio);
  color:var(--beige);
}
.footer-social .bi{font-size:1.1rem;line-height:1}
.footer-social svg{
  width:1.1rem;
  height:1.1rem;
  color:currentColor;
  flex-shrink:0;
}
.footer-social--static{
  cursor:default;
  opacity:.88;
}
.footer-legal{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:.45rem 1rem;
  flex-wrap:wrap;
  padding:0 0 1.2rem;
  color:#4a6353;
  font-size:.94rem;
  text-align:center;
}
.footer-legal__item{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.footer-bottom{
  border-top:1px solid var(--beige-scuro);
  padding:1rem 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem 1.6rem;
  flex-wrap:wrap;
  text-align:center;
}
.footer-policies{display:flex;flex-wrap:wrap;gap:.4rem 1rem;justify-content:center}
.footer-policies a{color:var(--verde-scuro);text-decoration:none}
.footer-policies a:hover{text-decoration:underline}


/* =========================
   CONSIGLI / ARTICOLI
   ========================= */

.articles-hero,
.article-detail-hero{
  background: #ffffff;
  padding: var(--section-space) 0 1rem;
  margin-top:calc(-1 * (var(--header-h) + var(--safe-top)));
  padding-top:calc(var(--header-h) + var(--safe-top) + var(--section-first-top-space));
}

/* Uniforma il distacco iniziale sotto la navbar su tutte le pagine */
.gs-header + main > :first-child{
  margin-top:calc(-1 * (var(--header-h) + var(--safe-top)));
  padding-top:calc(var(--header-h) + var(--safe-top) + var(--section-first-top-space));
}

.page-title{
  text-align:center;
  font-weight:800;
  font-size: clamp(2rem, 3.6vw, 3.4rem);
  color:#0a4f30;
  margin: .25rem 0 1rem;
}

.page-subtitle{
  max-width: 980px;
  margin: 0 auto 1.25rem;
  text-align:center;
  color:#4b4b4b;
  line-height:1.6;
}

.section-badge{
  display:inline-block;
  margin: 0 auto 10px;
  padding: .45rem 1rem;
  border-radius: 9999px;
  background:#f4efcf;
  color:#247536;
  font-weight:700;
  font-size:.95rem;
}

.articles-list { padding: 10px 0 48px; background: var(--bianco); }
.article-grid{
  display:grid;
  gap: 28px;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 992px){
  .article-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 576px){
  .article-grid{ grid-template-columns: 1fr; }
}

.article-card{
  display:block;
  background:#f9f6e4;
  border:1px solid #f0e8ba;
  border-radius:18px;
  padding:16px;
  text-decoration:none;
  color:inherit;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
  transition:.2s ease;
}
.article-card:hover{
  transform: translateY(-6px) scale(1.01);
  box-shadow:0 16px 36px rgba(0,0,0,.09);
}

.article-img-wrap{ width:100%; }
.article-img{
  width:100%;
  height: 220px;
  object-fit: cover;
  border-radius:14px;
}

.article-title{
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  color:#0a4f30;
  margin: 12px 2px 6px;
  font-weight: 800;
}

.article-excerpt{
  margin:0 2px 10px;
  line-height:1.6;
  color:#333;
  /* forza l'andare a capo anche con parole lunghissime */
  overflow-wrap:anywhere;
  word-break:break-word;
}

.article-meta small{ color:#247536; font-weight:600; }

/* Paginazione semplice */
.pagination{
  display:flex; align-items:center; justify-content:center;
  gap:10px; margin-top: 26px;
}
.page-btn{
  border:1px solid #f0e8ba; background:#ffffff;
  padding:.45rem .75rem; border-radius:10px; text-decoration:none; color:#0a4f30;
}
.page-current{ color:#0a4f30; font-weight:700; }

/* ======= Dettaglio ======= */
.article-detail{ padding: 10px 0 56px; background: var(--bianco);}
.article-detail__grid{
  display:grid;
  grid-template-columns: 3fr 2fr;
  gap: 36px;
  align-items: start;
}
@media (max-width: 992px){
  .article-detail__grid{ grid-template-columns: 1fr; }
}

.article-detail__content .article-body{
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  line-height:1.85;
  color:#333;
  /* preserva caporiga giÃ  resi via linebreaksbr; forzo comunque il wrap */
  overflow-wrap:anywhere;
  word-break:break-word;
}

.article-detail__image img{
  width:100%;
  border-radius:18px;
  box-shadow: 0 12px 28px rgba(0,0,0,.08);
  display:block;
}

.article-date{
  text-align:center;
  margin-top: 26px;
  color:#0a4f30;
  font-weight:700;
  opacity:.9;
}

/* ====== Dropdown (desktop) ====== */
.gs-nav .dropdown {
  position: relative;
}

.gs-nav .dropdown .dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.gs-nav .dropdown .dropdown-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 240px;
  padding: .55rem;
  overflow: hidden;
  border-radius: 20px;
  background: rgba(255,252,244,.98);
  border: 1px solid rgba(207,223,184,.88);
  box-shadow: 0 20px 40px rgba(10,79,48,.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: none; /* default hidden */
  z-index: 999;
}

/* mostralo su hover/focus (desktop tastiera & mouse) */
.gs-nav .dropdown:hover .dropdown-menu,
.gs-nav .dropdown:focus-within .dropdown-menu,
.gs-nav .dropdown.open .dropdown-menu { /* mobile helper */
  display: block;
}

.gs-nav .dropdown-item {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: .72rem .9rem;
  border-radius: 14px;
  color: #0a4f30; /* verde scuro */
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.gs-nav .dropdown-item:hover,
.gs-nav .dropdown-item:focus {
  background: rgba(244,239,207,.9);
  color: #0a4f30;
  outline: none;
  transform: translateX(2px);
}

.gs-nav .dropdown-item.active,
.gs-nav .dropdown-item.is-active {
  background: linear-gradient(180deg, #f7f0cb 0%, #efe4bb 100%);
  color: #0a4f30;
}

/* ====== Indicatore pagina attiva per la voce macro "Servizi" ====== */
.gs-nav .dropdown.is-active > .nav-pill,
.gs-nav .dropdown.is-active > .dropdown-toggle {
  background: linear-gradient(180deg, #f7f0cb 0%, #efe4bb 100%);
  border-color:rgba(226,215,166,.95);
  color: #0a4f30;
  box-shadow:0 10px 22px rgba(10,79,48,.08);
}

/* ====== Mobile submenu ====== */
.mobile-dd-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: 0;
  padding: .8rem 0;
  font-weight: 600;
  color: #0a4f30;
}

.mobile-submenu {
  display: grid;
  gap: .5rem;
  padding-left: .5rem;
  margin-bottom: .5rem;
}

.mobile-submenu[hidden] { display: none; }

.mobile-sublink {
  display: block;
  padding: .5rem 0 .5rem .75rem;
  color: #0a4f30;
  text-decoration: none;
  border-left: 2px solid #a7d37e; /* verde chiaro */
}

.mobile-sublink:focus,
.mobile-sublink:hover {
  color: #0a4f30;
  background: #f4efcf; /* beige medio */
}

/* --- NAV: illumina il trigger come gli altri link --- */
.gs-nav .dropdown:not(.is-active) .dropdown-toggle.nav-pill:hover,
.gs-nav .dropdown:not(.is-active):hover > .dropdown-toggle.nav-pill {
  background-color: rgba(244,239,207,.84);
  border-color:rgba(210,223,188,.9);
  color: #0a4f30;
}

/* --- NAV: il menu resta aperto quando scendi col mouse --- */
/* elimina il "buco" tra trigger e menu e crea un ponte hover */
.gs-nav .dropdown {
  position: relative;
}
.gs-nav .dropdown .dropdown-menu {
  top: 100%;           /* attacca subito sotto al trigger */
  margin-top: 8px;     /* piccolo distacco visivo, senza creare gap di hover */
}

/* ponte invisibile per non perdere lo stato :hover quando scendi */
.gs-nav .dropdown::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  height: 10px;        /* area "ponte" tra bottone e menu */
  /* niente background: Ã¨ invisibile ma mantiene :hover sul parent */
}

/* mostra menu quando:
   - il parent Ã¨ in hover
   - ha focus (tastiera)
   - Ã¨ forzato aperto su mobile (.open) */
.gs-nav .dropdown:hover .dropdown-menu,
.gs-nav .dropdown:focus-within .dropdown-menu,
.gs-nav .dropdown.open .dropdown-menu {
  display: block;
}

/* voci nel menu: feedback coerente */
.gs-nav .dropdown-item:hover,
.gs-nav .dropdown-item:focus {
  background: #f4efcf;    /* beige medio */
  color: #0a4f30;
}
.gs-nav .dropdown-item.active,
.gs-nav .dropdown-item.is-active {
  background: #f0e8ba;    /* beige scuro */
  color: #0a4f30;
}

/* NAV: padding coerente per il trigger "Servizi" */
.gs-nav .dropdown .dropdown-toggle.nav-pill {
  padding-left: 1.25rem;   /* spazio a sinistra come gli altri */
  padding-right: 1.1rem;   /* leggermente piÃ¹ ampio per l'icona */
  display: inline-flex;    /* per allineare bene testo + icona */
  align-items: center;
  gap: .45rem;             /* spazio fra testo e chevron */
}

/* chevron del dropdown: allineamento e dimensione coerenti */
.gs-nav .dropdown .dropdown-toggle.nav-pill .bi {
  font-size: .9em;
  transform: translateY(-1px); /* leggero allineamento verticale */
}

/* ---------- Sezione titolo (coerente con il resto del sito) ---------- */
.section-pad-top { padding-top: 2.25rem; }
.section-badge {
  display:inline-block; background:#f4efcf; color:#247536;
  padding:.55rem 1.1rem; border-radius:9999px; font-weight:700;
}
.section-title { font-size: clamp(2rem, 4.5vw, 3rem); font-weight:800; color:#0a4f30; }
.section-subtitle { max-width: 820px; margin: .35rem auto 0; color:#6b6b6b; }

/* ---------- Slider orizzontale ---------- */
.slider-block {
  position: relative;
  margin-top: 1rem;
  padding-bottom: 1.25rem;
}

.gs-slider {
  --cards-per-view: 3;
  display:flex; gap: 1rem;
  overflow-x:auto; overflow-y:visible;
  scroll-snap-type: x mandatory;
  padding: .25rem .25rem 1rem;
  -webkit-overflow-scrolling:touch;
  box-sizing:border-box;
}
.gs-slider::-webkit-scrollbar { height: 8px; }
.gs-slider::-webkit-scrollbar-thumb { background: #e3e3e3; border-radius: 999px; }

/* Singola card */
.gs-card {
  flex: 0 0 calc((100% - (var(--cards-per-view) - 1) * 1rem) / var(--cards-per-view));
  min-width: 0;
  max-width: none;
  background:#fff; border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  padding: 1.5rem 1.25rem;
  scroll-snap-align: start;
  box-sizing:border-box;
}
@media (max-width: 1100px) {
  .gs-slider { --cards-per-view: 2; }
}
@media (max-width: 720px) {
  .gs-slider { --cards-per-view: 1; }
}

.gs-card-service { text-align:left; }
.gs-card-icon {
  width:64px; height:64px; border-radius:999px;
  background:#eaf3ea; color:#247536;
  display:flex; align-items:center; justify-content:center;
  margin: .1rem auto .35rem;
  font-size: 28px;
}
.gs-card-title {
  text-align:center; font-weight:700; color:#0a4f30;
  font-size: 1.25rem; margin:.2rem 0 .6rem;
}
.gs-card-list { padding-left:1.1rem; margin:0; }
.gs-card-list li { margin:.35rem 0; color:#2f2f2f; }

/* ---------- Frecce dello slider ---------- */
.gs-slider-btn {
  position:absolute; top: 50%; transform: translateY(-50%);
  width:64px; height:64px; border-radius:999px;
  background:#247536; color:#f9f6e4; border:none; outline:none;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 16px rgba(0,0,0,.1);
  transition: transform .15s ease;
  z-index: 5;
}
.gs-slider-btn .bi { font-size: 28px; }
.gs-slider-btn:hover { transform: translateY(-50%) scale(1.03); }

.gs-prev { left:-22px; }
.gs-next { right:-22px; }

.gs-slider-btn[disabled],
.gs-slider-btn[aria-disabled="true"]{
  opacity:.45;
  cursor:default;
}

@media (max-width: 720px) {
  .gs-slider-btn{ width:46px; height:46px; }
  .gs-slider-btn .bi{ font-size:22px; }
  .gs-prev{ left:-10px; }
  .gs-next{ right:-10px; }
}

/* ===== UTILITIES & PAGE BLOCKS ===== */
.text-center{ text-align:center; }
.container--1100{ max-width:1100px; }
.container--1200{ max-width:1200px; }

.page-hero{ background:var(--bianco); }
.page-hero .container{ text-align:center; max-width:1100px; }
.page-hero__badge{ margin:0 auto .6rem; display:block; width:max-content; }
.page-hero__title{
  color:var(--verde-medio);
  font-weight:800;
  font-size:clamp(2.2rem,4vw,3.2rem);
  margin:.2rem 0 .6rem;
}
.page-hero__subtitle{ margin:0 auto 2rem; color:#666; }
.page-hero__subtitle--720{ max-width:720px; }
.page-hero__subtitle--760{ max-width:760px; }
.page-hero__subtitle--820{ max-width:820px; }

.section-white{ background:var(--bianco); }
.section-beige{ background:var(--beige); }
.section-pad-top-sm{ padding-top:.5rem; }
.section-pad-tight{ padding-top:1.2rem; padding-bottom:2.4rem; }
.contact-methods{
  padding-bottom:clamp(5.5rem, 8vw, 8rem);
}

.service-panel{
  position:relative;
  overflow:hidden;
  padding:clamp(1.25rem, 2vw, 1.8rem);
  border-radius:24px;
  border:1px solid #e4ebda;
  background:linear-gradient(180deg,#fbfdf8 0%, #f5f9ef 100%);
  box-shadow:0 20px 44px rgba(0,0,0,.06);
}
.service-panel::before,
.service-panel::after{
  content:"";
  position:absolute;
  border-radius:9999px;
  pointer-events:none;
}
.service-panel::before{
  width:180px;
  height:180px;
  top:-70px;
  right:-50px;
  background:radial-gradient(circle, rgba(167,211,126,.26) 0%, rgba(167,211,126,0) 70%);
}
.service-panel::after{
  width:150px;
  height:150px;
  bottom:-60px;
  left:-40px;
  background:radial-gradient(circle, rgba(244,239,207,.75) 0%, rgba(244,239,207,0) 70%);
}
.service-panel > *{
  position:relative;
  z-index:1;
}

.intro-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:2rem;
  align-items:center;
}
@media (max-width: 992px){
  .intro-grid{ grid-template-columns:1fr; }
}
.intro-badge{ display:inline-block; margin-bottom:1rem; }
.intro-text p{ color:#333; line-height:1.6; margin:0; }
.intro-text p + p{ margin-top:1rem; }
.intro-media{ max-width:100%; position:relative; }
.service-showcase-media{
  padding:.85rem;
  border-radius:22px;
  border:1px solid #e2ead7;
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(244,249,237,.98) 100%);
  box-shadow:0 22px 48px rgba(0,0,0,.08);
}
.intro-media img{
  width:100%;
  border-radius:16px;
  box-shadow:0 20px 50px rgba(0,0,0,.12);
  display:block;
}
.service-showcase-media img{
  aspect-ratio:4 / 3;
  object-fit:cover;
  box-shadow:none;
  background:#eef4e7;
}

.about-story{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(167,211,126,.12) 0%, rgba(167,211,126,0) 26%),
    radial-gradient(circle at 85% 78%, rgba(244,239,207,.26) 0%, rgba(244,239,207,0) 28%),
    linear-gradient(180deg, #ffffff 0%, #fbfdf8 100%);
}
.about-story__head{
  max-width:980px;
  margin:0 auto 2.6rem;
}
.about-story__badge{
  margin:0 auto .9rem;
}
.about-story__title{
  margin:0 auto;
  max-width:none;
  width:fit-content;
  font-size:clamp(1.5rem, 3vw, 2.25rem);
  letter-spacing:-.02em;
  line-height:1.14;
}
.about-story__row{
  gap:2.2rem;
  align-items:stretch;
  margin-bottom:2rem;
}
.about-story__row:last-child{
  margin-bottom:0;
}
.about-story__panel{
  position:relative;
  overflow:hidden;
  padding:clamp(1.1rem, 2.2vw, 1.55rem);
  border-radius:30px;
  border:1px solid #e5ebda;
  background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(246,250,241,.98) 100%);
  box-shadow:0 24px 50px rgba(0,0,0,.06);
}
.about-story__panel::before,
.about-story__panel::after{
  content:"";
  position:absolute;
  border-radius:9999px;
  pointer-events:none;
}
.about-story__panel::before{
  width:180px;
  height:180px;
  top:-78px;
  right:-45px;
  background:radial-gradient(circle, rgba(167,211,126,.24) 0%, rgba(167,211,126,0) 70%);
}
.about-story__panel::after{
  width:150px;
  height:150px;
  bottom:-65px;
  left:-42px;
  background:radial-gradient(circle, rgba(244,239,207,.6) 0%, rgba(244,239,207,0) 70%);
}
.about-story__panel > *{
  position:relative;
  z-index:1;
}
.about-story__text{
  background:rgba(255,255,255,.84);
  border:1px solid #e8eedc;
  border-radius:24px;
  padding:clamp(1.35rem, 2.2vw, 2rem);
  box-shadow:0 18px 38px rgba(0,0,0,.05);
  backdrop-filter:blur(6px);
}
.about-story__text p{
  font-size:1.05rem;
  line-height:1.84;
  color:#324037;
}
.about-story__text p + p{
  margin-top:1.2rem;
}
.about-story__media-frame{
  padding:.95rem;
  border-radius:26px;
  border:1px solid #e4ebd8;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(243,248,236,.98) 100%);
  box-shadow:0 22px 44px rgba(0,0,0,.07);
}
.about-story__media img{
  height:100%;
  min-height:420px;
  object-fit:cover;
  border-radius:18px;
  box-shadow:none;
}

.distinguishing-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 16% 18%, rgba(167,211,126,.12) 0%, rgba(167,211,126,0) 26%),
    linear-gradient(180deg, #faf8ec 0%, #f5f0d9 100%);
}
.distinguishing-section .container{
  max-width:1200px;
}
.distinguishing-section__head{
  max-width:960px;
  margin:0 auto 2.2rem;
}
.distinguishing-section__desc{
  max-width:900px;
  margin:0 auto 2.2rem;
  color:#4f4f4f;
  font-size:clamp(1.05rem, 1.5vw, 1.24rem);
  line-height:1.82;
}
.distinguishing-section__grid{
  gap:1.9rem;
}
.distinguishing-section .service-card--soft{
  background:rgba(255,255,255,.82);
  border:1px solid #ece3c2;
  border-radius:24px;
  padding:2rem 1.55rem 1.85rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  box-shadow:0 22px 42px rgba(0,0,0,.06);
}
.about-feature-card__icon{
  width:72px;
  height:72px;
  margin-bottom:1rem;
  background:linear-gradient(180deg, #eef6e7 0%, #dcebc8 100%);
  box-shadow:none;
}
.about-feature-card__icon i{
  font-size:1.45rem;
}
.distinguishing-section .card-title{
  text-align:center;
  font-size:clamp(1.35rem,2vw,1.7rem);
  margin-bottom:.65rem;
}
.distinguishing-section .card-text{
  text-align:center;
  max-width:34ch;
  line-height:1.9;
  font-size:1.08rem;
  color:#4b4b4b;
}

.direction-section{
  position:relative;
  overflow:hidden;
  padding-top:3.4rem;
  background:
    radial-gradient(circle at 88% 16%, rgba(167,211,126,.1) 0%, rgba(167,211,126,0) 24%),
    linear-gradient(180deg, #ffffff 0%, #f7fbf4 100%);
}
.direction-section__head{
  max-width:980px;
  margin:0 auto 2.4rem;
}
.direction-section__badge{
  margin:0 auto .9rem;
}
.direction-section__title{
  margin:.1rem 0 1rem;
  color:var(--verde-scuro);
  font-size:clamp(1.9rem,7.2vw,2.6rem);
  line-height:1.2;
}
.direction-section__desc{
  max-width:760px;
  margin:0 auto;
  color:#5a5a5a;
  font-size:1.08rem;
  line-height:1.82;
}
.direction-section__grid{
  gap:2rem;
}
.direction-section .service-card--soft{
  background:linear-gradient(180deg,#ffffff 0%,#fbf9ef 100%);
  border:1px solid #e9efe2;
  border-radius:26px;
  padding:2.1rem 1.7rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  align-items:center;
  text-align:center;
  box-shadow:0 22px 42px rgba(0,0,0,.06);
}
.about-direction-card__icon{
  width:70px;
  height:70px;
  margin-inline:auto;
  margin-bottom:1rem;
  background:linear-gradient(180deg, #ecf5e4 0%, #d8e9c4 100%);
  box-shadow:none;
}
.about-direction-card__icon i{
  font-size:1.35rem;
}
.direction-section .card-title{
  text-align:center;
  font-size:clamp(1.4rem,2vw,1.78rem);
  margin-bottom:.8rem;
}
.direction-section .card-text{
  text-align:left;
  max-width:34ch;
  line-height:1.8;
  font-size:1.1rem;
  color:#4f4f4f;
}

.values-section{ background:var(--beige); }
.values-section .container{ max-width:1200px; text-align:center; }
.values-badge{ margin:0 auto 1rem; display:inline-block; }
.values-desc{ max-width:820px; margin:0 auto 1.8rem; color:#666; }
.values-grid{ grid-template-columns:repeat(3,minmax(260px,1fr)); gap:1.6rem; }
.values-grid--spaced{ margin-bottom:1.6rem; }

.service-detail-section .container{
  max-width:1200px;
}
.service-detail-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.6rem;
  align-items:stretch;
}
.service-detail-grid--five{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1.6rem;
  align-items:stretch;
}
.service-detail-grid--five > .service-detail-card{
  grid-column:span 2;
}
.service-detail-grid--five > .service-detail-card:nth-child(4),
.service-detail-grid--five > .service-detail-card:nth-child(5){
  grid-column:span 3;
}
.service-detail-card{
  text-align:left;
  padding:2rem 1.45rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.service-detail-card .icon-circle{
  margin-inline:auto;
}
.service-detail-card .bi{
  font-size:1.7rem;
  color:var(--verde-scuro);
}
.service-detail-card .card-title{
  text-align:left;
  font-size:clamp(1.35rem,1.8vw,1.65rem);
  margin-bottom:.55rem;
}
.service-detail-card .card-text{
  text-align:left;
  margin:.2rem 0 1rem;
  max-width:none;
  line-height:1.78;
  color:#4f4f4f;
}
.service-detail-list{
  padding-left:1.1rem;
  margin:0;
}
.service-detail-list li{
  margin:.42rem 0;
  color:#2f2f2f;
  line-height:1.65;
}

.service-card--soft{
  background:var(--beige-chiaro);
  box-shadow:0 24px 40px rgba(0,0,0,.08);
  border-radius:16px;
  padding:2rem 1.4rem;
}

.icon-circle--card{
  width:64px;
  height:64px;
  margin-inline:auto;
  margin-bottom:.75rem;
}
.icon-circle--card-lg{
  width:74px;
  height:74px;
  margin-inline:auto;
  margin-bottom:.9rem;
}

.card-title{ color:var(--verde-scuro); font-weight:700; margin:0; }
.card-text{ color:#555; margin:.5rem auto 0; max-width:320px; }
.mb-25{ margin-bottom:.25rem; }
.mb-5{ margin-bottom:.5rem; }
.mb-6{ margin-bottom:.6rem; }

.contact-grid{ grid-template-columns:repeat(2,minmax(280px,1fr)); gap:2.2rem; }
.contact-card{
  background:var(--beige-chiaro);
  box-shadow:0 24px 40px rgba(0,0,0,.08);
  border-radius:20px;
}
.contact-info-grid .contact-card{
  padding:2rem 1.4rem;
}
.contact-subtitle{ display:block; color:#666; margin-bottom:1rem; }
.contact-hours{ color:#333; margin:0 auto; text-align:left; max-width:360px; }
.contact-socials{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; }
.contact-showcase__panel{
  padding:clamp(1.5rem, 2.2vw, 2rem);
}
.contact-showcase__grid{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(280px, .8fr);
  gap:1.6rem;
  align-items:start;
}
.contact-showcase__title{
  margin:0 0 1rem;
  max-width:640px;
  font-size:clamp(1.55rem, 3vw, 2.25rem);
  line-height:1.16;
}
.contact-showcase__badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.contact-showcase__badge svg{
  width:1rem;
  height:1rem;
  color:currentColor;
  flex-shrink:0;
}
.contact-showcase__desc{
  margin:0;
  max-width:680px;
  color:#44524b;
  font-size:1.06rem;
  line-height:1.82;
}
.contact-showcase__actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin:1.5rem 0 1.2rem;
}
.contact-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
  text-decoration:none;
}
.contact-action--primary{
  padding:.98rem 1.45rem;
  border-radius:9999px;
  background:var(--verde-medio);
  color:var(--beige);
  font-weight:900;
  box-shadow:0 16px 32px rgba(36,117,54,.24);
  transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.contact-action--primary:hover{
  background:var(--verde-scuro);
  color:var(--beige);
  transform:translateY(-1px);
  box-shadow:0 18px 36px rgba(10,79,48,.24);
}
.contact-action--secondary{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.contact-action svg{
  width:1.05rem;
  height:1.05rem;
  color:currentColor;
  flex-shrink:0;
}
.contact-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}
.contact-chip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.72rem 1rem;
  border-radius:9999px;
  border:1px solid #dce7cf;
  background:rgba(255,255,255,.88);
  color:var(--verde-scuro);
  font-weight:700;
}
.contact-chip i{
  color:var(--verde-medio);
  font-size:1rem;
}
.contact-chip svg{
  width:1rem;
  height:1rem;
  color:var(--verde-medio);
  flex-shrink:0;
}
.contact-showcase__aside{
  display:grid;
  gap:.95rem;
}
.contact-quick-card{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.1rem 1rem;
  border-radius:20px;
  border:1px solid #e2ead7;
  background:rgba(255,255,255,.82);
  box-shadow:0 16px 34px rgba(0,0,0,.05);
}
.contact-quick-card__icon{
  flex:0 0 54px;
  width:54px;
  height:54px;
  box-shadow:none;
  background:linear-gradient(180deg, #edf5e6 0%, #e2efd4 100%);
}
.contact-quick-card__icon i{
  font-size:1.3rem;
}
.contact-quick-card__icon svg{
  width:1.3rem;
  height:1.3rem;
}
.contact-quick-card h3{
  margin:0 0 .3rem;
  color:var(--verde-scuro);
  font-size:1rem;
}
.contact-quick-card p{
  margin:0;
  color:#52615a;
  line-height:1.65;
}
.contact-methods__head{
  max-width:860px;
  margin:0 auto 2.4rem;
}
.contact-methods__title{
  margin:0;
  font-size:clamp(1.55rem, 3vw, 2.2rem);
  line-height:1.16;
}
.contact-methods__desc{
  margin:1rem auto 0;
  color:#586760;
  font-size:1.04rem;
  line-height:1.72;
}
.contact-methods__stack{
  display:grid;
  gap:6rem;
  margin-top:1.6rem;
  padding-bottom:2rem;
}
.contact-methods__row{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  align-items:start;
  column-gap:2.4rem;
}
.contact-method-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:100%;
  text-align:left;
  gap:.75rem;
  padding:clamp(1.5rem, 2.2vw, 2rem);
  border-radius:26px;
}
.contact-method-card__icon{
  margin-inline:auto;
  margin-bottom:.15rem;
}
.contact-method-card .card-title{
  text-align:left;
}
.contact-method-card .card-text{
  margin:0 0 1.1rem;
  max-width:none;
  text-align:left;
  line-height:1.72;
}
.contact-method-card__cta{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:.35rem;
  align-self:center;
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
  text-align:center;
}
.contact-method-card__cta svg{
  width:1rem;
  height:1rem;
  color:currentColor;
  flex-shrink:0;
}
.contact-hours-list{
  list-style:none;
  padding:0;
  margin:0;
  width:100%;
}
.contact-hours-list li{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem 0;
  border-bottom:1px solid #e2ead7;
  color:#46534d;
}
.contact-hours-list li:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.contact-hours-list strong{
  color:var(--verde-scuro);
}
.contact-socials--left{
  justify-content:center;
  align-self:center;
  width:100%;
  margin-top:.35rem;
}
.contact-socials--left .btn{
  margin-top:.2rem;
}
.contact-socials--left .btn svg{
  width:1rem;
  height:1rem;
  color:currentColor;
  flex-shrink:0;
}

.btn-pill-sm{ border-radius:9999px; padding:.75rem 1.25rem; font-weight:700; }
.btn-pill-xs{
  border-radius:9999px;
  padding:.65rem 1.1rem;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
}
.w-100{width:100%}
.mt-2{margin-top:.5rem}

.empty-msg{
  text-align:center;
  color:#666;
  font-size:1.1rem;
  opacity:.85;
  font-style:italic;
}

.legal-content{
  color:#333;
  line-height:1.7;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.legal-content h2{
  color:#0a4f30;
  margin-top:1.4rem;
  margin-bottom:.45rem;
  font-size:1.2rem;
}
.legal-content p{margin:0 0 .8rem}

/* =========================
   ADMIN / LOGIN
   ========================= */
.gs-admin .admin-wrap{max-width:900px;margin:2rem auto}
.gs-admin .admin-wrap--wide{max-width:1000px}
.gs-admin .admin-card{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 12px 35px rgba(0,0,0,.08)}
.gs-admin .admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.gs-admin .admin-grid a{display:block;text-decoration:none;background:#f5f9f3;border:2px solid #1e7137;color:#1e7137;border-radius:12px;padding:1rem;text-align:center;font-weight:700}
.gs-admin .logout{margin-top:1rem;text-align:right}
.gs-admin .logout button{color:#b00020;background:transparent;border:0;padding:0;font:inherit;cursor:pointer}
.gs-admin .topbar{display:flex;justify-content:space-between;margin-bottom:1rem;align-items:center}
.gs-admin .btn{display:inline-block;padding:.6rem 1rem;border-radius:10px;border:2px solid #1e7137;color:#1e7137;text-decoration:none;background:transparent;cursor:pointer;font:inherit}
.gs-admin .btn.primary{background:#1e7137;color:#fff}
.gs-admin .msg{margin:.75rem 0}
.gs-admin .msg--success{color:#0a4f30}
.gs-admin .msg--error{color:#b00020}
.gs-admin .inline-form{display:inline}
.gs-admin .mt-1{margin-top:1rem}
.gs-admin table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.08)}
.gs-admin th,.gs-admin td{padding:.8rem 1rem;border-bottom:1px solid #eee}
.gs-admin th{text-align:left;background:#f7fbf4}
.gs-admin .actions a,.gs-admin .actions form button{margin-right:.35rem}
.gs-admin .form-row{margin-bottom:.9rem}
.gs-admin .form-row label{display:block;font-weight:700;margin-bottom:.35rem}
.gs-admin .form-row input[type="text"], .gs-admin .form-row textarea{width:100%;padding:.7rem .9rem;border:1px solid #ddd;border-radius:10px}
.gs-admin .form-row textarea{min-height:220px}
.gs-admin .img-prev{max-width:260px;border-radius:10px;margin:.5rem 0}

.gs-login .login-wrap{max-width:420px;margin:6rem auto;padding:2rem;border-radius:16px;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.08);text-align:center}
.gs-login .login-wrap img{width:84px;height:auto;margin-bottom:1rem}
.gs-login .login-wrap h1{font-size:1.4rem;margin-bottom:1.2rem;color:#0a4f30}
.gs-login .login-wrap input{width:100%;padding:.75rem 1rem;border:1px solid #ddd;border-radius:10px;margin:.45rem 0}
.gs-login .login-wrap button{display:inline-block;width:100%;padding:.8rem 1rem;border-radius:12px;border:0;background:#1e7137;color:#fff;font-weight:700;cursor:pointer}
.gs-login .login-error{color:#b00020;margin:.5rem 0}

/* ===== Responsive tweaks (global + admin/login) ===== */
@media (max-width: 900px){
  :root{ --header-h: 88px; }
  .btn-contatti{ display:none; }
  .mobile-menu .btn-contatti{
    display:flex;
    width:calc(100% - .9rem);
    margin:.45rem .45rem 0;
    box-sizing:border-box;
    justify-content:center;
    text-align:center;
  }
  .values-grid{ grid-template-columns: repeat(2,minmax(220px,1fr)); }
  .service-detail-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .service-detail-grid--five{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .service-detail-grid--five > .service-detail-card,
  .service-detail-grid--five > .service-detail-card:nth-child(4),
  .service-detail-grid--five > .service-detail-card:nth-child(5){
    grid-column:span 1;
  }
  .about-story__panel{
    padding:1rem;
  }
  .about-story__media-frame{
    padding:.75rem;
  }
  .about-story__media img{ min-height:320px; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .contact-showcase__grid,
  .contact-methods__row{
    grid-template-columns:1fr;
  }
  .contact-methods__head{
    margin-bottom:2rem;
  }
  .contact-methods{
    padding-bottom:5rem;
  }
  .contact-methods__stack{
    gap:3rem;
  }
}

@media (max-width: 720px){
  :root{ --container-pad: 1.25rem; --header-h: 84px; }
  .nav-row{ flex-wrap:nowrap; gap:.75rem; }
  .brand{gap:.6rem}
  .brand-logo{width:56px;height:56px}
  .brand-name{ font-size:1.05rem; }

  .values-grid{ grid-template-columns: 1fr; }
  .service-detail-grid,
  .service-detail-grid--five{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .contact-showcase__actions{
    flex-direction:column;
  }
  .contact-showcase__actions > *{
    width:100%;
  }
  .contact-action--primary,
  .contact-action--secondary{
    width:100%;
    padding-inline:1rem;
  }
  .contact-methods__row{
    display:grid;
    grid-template-columns:1fr;
    column-gap:1.3rem;
    row-gap:1.1rem;
  }
  .contact-methods__stack{
    gap:1.8rem;
  }
  .contact-method-card{
    padding:1.35rem;
    min-height:auto;
  }
  .contact-method-card__cta{
    width:100%;
    justify-content:center;
  }
  .contact-hours-list li{
    flex-direction:column;
    gap:.25rem;
  }
  .about-story__panel{
    padding:.85rem;
  }
  .about-story__media-frame{
    padding:.65rem;
  }
  .about-story__head{ margin-bottom:1.5rem; }
  .about-story__row{ margin-bottom:1.25rem; }
  .about-story__text p{
    font-size:1.02rem;
    line-height:1.75;
  }
  .about-story__media img{ min-height:240px; }
  .about-feature-card__icon,
  .about-direction-card__icon{
    margin-inline:auto;
  }
  .direction-section .service-card--soft{
    align-items:center;
    text-align:center;
  }
  .direction-section .card-title,
  .direction-section .card-text{
    text-align:left;
  }
  .distinguishing-section .card-text,
  .direction-section .card-text{
    font-size:1.02rem;
  }
  .direction-section__desc{
    font-size:1rem;
    line-height:1.7;
  }
  .footer-grid{ grid-template-columns: 1fr; }
  .footer-bottom{ flex-direction:column; gap:.6rem; align-items:center; }

  .gs-admin .admin-wrap{ margin:1.5rem auto; padding-inline:1rem; }
  .gs-admin .admin-grid{ grid-template-columns:1fr; }
  .gs-admin .topbar{ flex-direction:column; align-items:flex-start; gap:.6rem; }
  .gs-admin table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .gs-admin table{ min-width:640px; }

  .gs-login .login-wrap{ margin:2.5rem 1rem; padding:1.5rem; }
}

@media (max-width: 520px){
  :root{ --header-h: 80px; }
  .brand-name{font-size:.95rem;letter-spacing:.35px}
  .footer-brand{ align-items:center; }
  .contact-showcase__panel{
    padding:1.2rem;
  }
  .contact-showcase__title,
  .contact-methods__title{
    overflow-wrap:anywhere;
  }
  .contact-chip{
    width:100%;
    justify-content:flex-start;
  }
  .contact-method-card{
    padding:1.2rem;
  }
}

@media (max-width: 380px){
  :root{ --container-pad: 1rem; --header-h: 78px; }
  .brand-logo{width:50px;height:50px}
  .mobile-menu .mobile-link{padding:.85rem var(--container-pad)}
}

@media (max-height: 520px) and (orientation: landscape){
  :root{ --header-h: 72px; }
  .brand-logo{width:44px;height:44px}
  .brand-name{font-size:.92rem}
  .mobile-menu .mobile-link{padding:.7rem var(--container-pad)}
}

