:root {
      --color-bg: #fbf7e8;
      --color-surface: #f4edcd;
      --color-surface-strong: #eadca2;
      --color-text: #1f2d22;
      --color-text-soft: #687168;
      --color-border: #dbd3b0;
      --color-logo-green: #badb9d;
      --color-green: #4f7d3b;
      --color-green-dark: #2f5a2b;
      --color-green-deep: #173b21;
      --color-green-soft: #e2ecd4;
      --color-cream: #f3e3a7;
      --color-cream-light: #fffaf0;
      --radius-sm: 12px;
      --radius-md: 22px;
      --radius-lg: 34px;
      --shadow-soft: 0 18px 60px rgba(53, 65, 41, .10);
      --shadow-card: 0 10px 28px rgba(53, 65, 41, .08);
    }

    body {
      background: var(--color-bg);
    }

    .site-header {
      border-bottom-color: rgba(111, 112, 85, .18);
      background: rgba(255,250,240,.90);
      backdrop-filter: blur(16px) saturate(1.1);
    }

    .header-inner {
      min-height: 82px;
    }

    .brand {
      gap: .55rem;
    }

    .brand-mark {
      width: 126px;
      height: 56px;
      object-fit: contain;
      object-position: left center;
      filter: saturate(.95) contrast(1.04);
    }

    .brand-copy {
      display: none;
    }

    .desktop-nav {
      gap: 1.15rem;
    }

    .desktop-nav a {
      position: relative;
      padding: .55rem .1rem;
      color: #364039;
      font-size: .88rem;
    }

    .desktop-nav a::after {
      content: "";
      position: absolute;
      left: .1rem;
      right: 100%;
      bottom: .2rem;
      height: 2px;
      background: var(--color-green);
      transition: right var(--transition);
    }

    .desktop-nav a:hover::after {
      right: .1rem;
    }

    .header-contact {
      box-shadow: 0 7px 18px rgba(47,90,43,.16);
    }

    .hero {
      position: relative;
      overflow: hidden;
      background:
        radial-gradient(circle at 18% 5%, rgba(186,219,157,.35), transparent 25rem),
        linear-gradient(180deg, #fff9e9 0%, #fbf7e8 78%);
    }

    .hero::after {
      content: "";
      position: absolute;
      right: -8rem;
      bottom: -10rem;
      width: 30rem;
      height: 30rem;
      border: 1px solid rgba(79,125,59,.12);
      border-radius: 50%;
      pointer-events: none;
    }

    .hero-copy {
      position: relative;
      z-index: 2;
    }

    .hero h1 {
      max-width: 760px;
      color: var(--color-green-deep);
    }

    .hero h1 .accent {
      position: relative;
      display: inline-block;
      color: var(--color-green);
    }

    .hero h1 .accent::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -.08em;
      height: .08em;
      border-radius: 999px;
      background: #dcc341;
      transform: rotate(-1.2deg);
    }

    .hero-lead {
      max-width: 610px;
      color: #59635a;
    }

    .hero-note {
      max-width: 590px;
      padding: .9rem 1rem;
      border: 1px solid rgba(79,125,59,.15);
      border-radius: 14px;
      background: rgba(255,255,255,.46);
    }

    .store-figure {
      isolation: isolate;
      border: 7px solid rgba(255,255,255,.74);
      border-radius: 42px 42px 42px 18px;
      box-shadow: 0 28px 74px rgba(47,62,40,.18);
      transform: rotate(.55deg);
    }

    .store-figure img {
      transition: transform 700ms ease;
    }

    .store-figure:hover img {
      transform: scale(1.018);
    }

    .store-caption {
      left: 1.25rem;
      right: 1.25rem;
      bottom: 1.15rem;
    }

    .store-caption-badge {
      background: rgba(47,90,43,.72);
    }

    .intro-strip-inner {
      border-color: rgba(126,122,84,.18);
      background: rgba(255,252,241,.94);
      box-shadow: 0 16px 42px rgba(56,66,43,.10);
    }

    .intro-item {
      position: relative;
    }

    .intro-item strong {
      color: var(--color-green-deep);
    }

    .section-heading h2,
    .service-copy h2,
    .about-copy h2,
    .contact-main h2 {
      color: var(--color-green-deep);
    }

    .eyebrow {
      color: var(--color-green-dark);
    }

    .eyebrow::before {
      width: 32px;
      background: #d8bd39;
    }

    .department-grid {
      align-items: stretch;
    }

    .department-card {
      position: relative;
      overflow: hidden;
      border-color: rgba(110,118,88,.20);
      background: rgba(255,253,246,.82);
      box-shadow: none;
    }

    .department-card::after {
      content: "";
      position: absolute;
      right: -38px;
      bottom: -42px;
      width: 110px;
      height: 110px;
      border: 1px solid rgba(79,125,59,.12);
      border-radius: 50%;
      transition: transform 260ms ease;
    }

    .department-card:hover::after {
      transform: scale(1.16);
    }

    .department-card:hover {
      border-color: rgba(79,125,59,.32);
      box-shadow: 0 14px 36px rgba(54,69,44,.09);
    }

    .department-card--feature {
      background:
        radial-gradient(circle at 90% 10%, rgba(186,219,157,.20), transparent 12rem),
        var(--color-green-deep);
    }

    .department-index {
      color: var(--color-green-deep);
      background: #f1e5a9;
    }

    .department-card h3 {
      font-size: 1.35rem;
    }

    .department-card p {
      max-width: 32rem;
    }

    .department-card--feature h3 {
      font-size: clamp(1.7rem, 4vw, 2.45rem);
    }

    .real-categories-note {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      margin-top: 1.2rem;
      color: var(--color-text-soft);
      font-size: .82rem;
    }

    .real-categories-note::before {
      content: "";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--color-green);
    }

    .service-panel {
      box-shadow: inset 0 0 0 1px rgba(79,125,59,.06);
    }

    .whatsapp-button {
      color: #fff;
      background: #247a3c;
      border-color: #247a3c;
    }

    .whatsapp-button:hover {
      color: #fff;
      background: #1c6632;
      border-color: #1c6632;
    }

    .brands-grid {
      gap: .75rem;
      padding: .8rem 0;
    }

    .brand-slot {
      min-height: 104px;
      border: 1px solid var(--color-border) !important;
      border-radius: 16px;
      background: rgba(255,255,255,.55);
    }

    .brand-slot--verified {
      color: var(--color-green-deep);
      background: #eef3df;
      font-size: .95rem;
    }

    .contact-shell {
      border-color: rgba(112,114,84,.22);
      background: #fffdf6;
    }

    .map-placeholder {
      background:
        linear-gradient(rgba(219,211,176,.42) 1px, transparent 1px),
        linear-gradient(90deg, rgba(219,211,176,.42) 1px, transparent 1px),
        #f3eccb;
      background-size: 34px 34px;
    }

    .mobile-actions {
      background: rgba(255,250,240,.95);
    }

    @media (min-width: 920px) {
      .brand-mark {
        width: 154px;
        height: 62px;
      }

      .hero-grid {
        grid-template-columns: minmax(0, .96fr) minmax(430px, 1.04fr);
      }

      .department-grid {
        grid-template-columns: 1.25fr repeat(3, .75fr);
        grid-auto-rows: minmax(205px, auto);
      }

      .department-card--feature {
        grid-row: span 2;
      }

      .department-card:nth-child(6),
      .department-card:nth-child(7),
      .department-card:nth-child(8) {
        grid-column: span 1;
      }
    }

    @media (max-width: 919px) {
      .header-inner {
        min-height: 74px;
      }

      .brand-mark {
        width: 112px;
        height: 50px;
      }

      .hero {
        padding-top: 1.35rem;
      }

      .store-figure {
        border-width: 5px;
        border-radius: 28px 28px 28px 14px;
        transform: none;
      }

      .hero-note {
        font-size: .85rem;
      }
    }


/* V23 — azioni social in testata e riduzione CTA ripetute */
.header-social-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: .48rem .72rem;
  border: 1px solid rgba(28, 76, 46, .22);
  border-radius: 999px;
  color: var(--color-green-deep, var(--color-text));
  background: rgba(255,255,255,.28);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 750;
  line-height: 1;
  white-space: nowrap;
}
.header-social-button:hover,
.header-social-button:focus-visible {
  border-color: currentColor;
  background: rgba(255,255,255,.52);
}
.mobile-social-links {
  display: flex;
  gap: .6rem;
  margin: .8rem 0 .2rem;
}
.mobile-social-links .header-social-button { flex: 1; }
.reparti-contact-cta {
  display: flex;
  justify-content: center;
  margin-top: 1.15rem;
}
@media (max-width: 919px) {
  .site-header .header-social-button { display: none; }
}


/* V27 — CTA Calcolatori nella sezione Reparti */
.reparti-contact-cta { gap: .72rem; flex-wrap: wrap; align-items: center; }
.calculator-home-button { font-weight: 780; }


/* V28 — telefono e indirizzo nella testata */
.header-utility{display:none;border-bottom:1px solid rgba(79,125,59,.11);background:rgba(255,255,255,.46)}
.header-utility-inner{min-height:29px;display:flex;align-items:center;justify-content:flex-end;gap:1rem;color:#4d5c50;font-size:.72rem;font-weight:680;line-height:1}
.header-utility-phone{color:#2f5a2b;font-weight:820;text-decoration:none}
.header-utility-phone:hover,.header-utility-phone:focus-visible{text-decoration:underline;text-underline-offset:3px}
.header-utility-address{white-space:nowrap}
.mobile-contact-summary{display:grid;gap:.25rem;margin:0 0 .8rem;padding:.72rem .8rem;border:1px solid rgba(79,125,59,.14);border-radius:12px;background:rgba(255,255,255,.54);color:#465249;font-size:.78rem;line-height:1.3}
.mobile-contact-summary a{color:#2f5a2b!important;font-weight:820}
@media(min-width:920px){.header-utility{display:block}}


/* V31 — recapiti completi nella fascia alta desktop */
.header-utility-inner{justify-content:center;flex-wrap:wrap;min-height:31px;gap:.45rem 1.1rem;padding-block:.25rem}
.header-utility-address,.header-utility-email,.header-utility-phone{white-space:nowrap}
.header-utility-email{color:#2f5a2b;font-weight:760;text-decoration:none}
.header-utility-email:hover,.header-utility-email:focus-visible{text-decoration:underline;text-underline-offset:3px}
.hero-eyebrow-name,.hero-eyebrow-address{display:block}
.hero-eyebrow-address{margin-top:.28rem;color:var(--color-text-soft);font-size:.78rem;font-weight:720;line-height:1.35;letter-spacing:0;text-transform:none}
.mobile-contact-email{overflow-wrap:anywhere}
@media(max-width:430px){.hero-eyebrow-address{font-size:.73rem}}
