/**
 * gima-style.css – Stili globali G.I.Ma.
 * Contiene: reset, variabili, utility, navbar, nav-panel, footer.
 * Gli stili specifici di ogni template sono nei rispettivi file
 * template-parts style.css oppure inline nei template PHP.
 *
 * @package GDS-Fullcreative
 */

/* ═══════════════════════════════════════════════════════════════════
  RESET & BASE
═══════════════════════════════════════════════════════════════════ */

html {
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

h1, h2, h3, h4, h5, h6 { font: inherit; }

img, video, svg { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }
/* NON sovrascrivere i bottoni */
.btn, .btn-dark, .btn-white { text-decoration: none; }

/* ═══════════════════════════════════════════════════════════════════
   VARIABILI CSS
═══════════════════════════════════════════════════════════════════ */

:root {
  --yellow:  #FAB906;
  --dark:    #1D1D1B;
  --text:    #333333;
  --light:   #FFFFFF;

  --font-sans:  'Montserrat', sans-serif;
  --font-serif: 'Playfair Display', serif;

  --navbar-height: 73px;
  --container-max: 1400px;
  --hp-h-desktop: 530px;
  --hp-h-laptop: clamp(430px, 36vw, 530px);
  --hp-h-tablet: clamp(350px, 33vw, 430px);
}

/* ═══════════════════════════════════════════════════════════════════
   BODY & TIPOGRAFIA BASE
═══════════════════════════════════════════════════════════════════ */

body {
  font-family: var(--font-sans);
  color: var(--text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* Previene scrollbar orizzontale da overflow */
}

/* ── WordPress wrapper reset ── */
#page, #content, .site, .site-content,
#primary, .home-main {
  display: block;
  margin: 0;
  padding: 0;
}

/* ═══════════════════════════════════════════════════════════════════
   UTILITY
═══════════════════════════════════════════════════════════════════ */

.container {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 40px;
}

/* Offset per ancore quando la navbar fixed e visibile (allineato a gima-nav.js) */
[id] {
  scroll-margin-top: calc(var(--navbar-height) + 20px);
}

/* Reveal on scroll */
.gima-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.gima-reveal.gima-reveal-in {
  opacity: 1;
  transform: translateY(0);
}

/* Bottone outline */
.btn {
  display: inline-block;
  padding: 5px 16px;
  font-size: 16px;
  font-weight: 400;
  line-height: 27px;
  letter-spacing: -0.6px;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid var(--dark);
  color: var(--dark);
  background: transparent;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.btn:hover {
  background: var(--dark);
  color: #fff;
}
.btn-dark {
  background: var(--dark);
  color: #fff;
  border-color: var(--dark);
}
.btn-dark:hover {
  background: #fff;
  color: var(--dark);
}
.btn-white {
  border-color: #fff;
  color: #fff;
}
.btn-white:hover {
  background: #fff;
  color: var(--dark);
}

/* Skip link accessibilità */
.skip-link {
  position: absolute;
  top: -9999px;
  left: -9999px;
}
.skip-link:focus {
  top: 0;
  left: 0;
  z-index: 9999;
  padding: 8px 16px;
  background: var(--yellow);
  color: var(--dark);
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════════
   STICKY NAVBAR  (#gimaNavbar)
═══════════════════════════════════════════════════════════════════ */

.gima-navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 800;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 2px 16px rgba(0,0,0,.06);
  opacity: 0;
  transform: translateY(-100%);
  transition: opacity .3s ease, transform .3s ease;
  pointer-events: none;
  font-family: var(--font-sans);
}

.gima-navbar.gima-navbar--visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}

/* Quando un overlay è aperto, la navbar deve stare sopra. */
body.gima-overlay-open .gima-navbar {
  z-index: 1200;
}

.gima-navbar-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 40px);
  height: var(--navbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}

.gima-navbar-logo {
  line-height: 0;
  text-decoration: none;
}
.gima-navbar-logo img {
  height: 65px;
  width: auto;
}

.gima-navbar-right {
  display: flex;
  align-items: center;
  gap: 28px;
}

/* Switcher lingua */
.gima-navbar-lang {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 19px;
  font-weight: 400;
  letter-spacing: -0.5px;
}
.gima-navbar-lang a {
  color: var(--dark);
  text-decoration: none;
  opacity: .35;
  transition: opacity .2s;
}
.gima-navbar-lang a.gima-lang-active,
.gima-navbar-lang a.gima-lang-link.gima-lang-active { opacity: 1; }
.gima-navbar-lang a:hover { opacity: .7; }
.gima-navbar-lang span {
  color: var(--dark);
  opacity: .25;
}

/* Icone social */
.gima-navbar-icons {
  display: flex;
  align-items: center;
  gap: 14px;
}
.gima-navbar-icons a {
  display: flex;
  align-items: center;
  opacity: .85;
  transition: opacity .2s;
}
.gima-navbar-icons a:hover { opacity: 1; }
.gima-navbar-icon-facebook  { width: 18px; height: 18px; }
.gima-navbar-icon-instagram { width: 18px; height: 18px; }
.gima-navbar-icon-email     { width: 22px; height: 17px; }

/* Hamburger */
.gima-navbar-toggle {
  background: none;
  border: none;
  cursor: pointer;
  /* Allinea la glyph hamburger al bordo destro del contenitore. */
  padding: 4px 0 4px 4px;
  display: flex;
  align-items: center;
  line-height: 0;
}
.gima-navbar-toggle img {
  width: 22px;
  height: auto;
}

@media (min-width: 900px) and (max-width: 1199px) {
  .gima-navbar-inner { padding: 0 clamp(16px, 3vw, 28px); }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .gima-navbar-inner { padding: 0 clamp(16px, 2vw, 24px); }
}

@media (min-width: 1400px) {
  .gima-navbar-inner { padding: 0 40px; }
  body.home .gima-navbar-inner {
    max-width: 1320px;
    padding: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   NAV OVERLAY + PANNELLO SLIDE-IN
═══════════════════════════════════════════════════════════════════ */

.gima-nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
  z-index: 900;
}
body.gima-nav-open .gima-nav-overlay {
  opacity: 1;
  pointer-events: all;
}

.gima-nav-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 420px;
  max-width: 92vw;
  height: 100%;
  background: #fff;
  z-index: 901;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
  padding: 40px 48px 60px;
  font-family: var(--font-sans);
  scrollbar-width: none;
}
.gima-nav-panel::-webkit-scrollbar { display: none; }

body.gima-nav-open .gima-nav-panel {
  transform: translateX(0);
}

.gima-nav-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-bottom: 40px;
}

/* Desktop: solo menu primary; mobile: solo primary_mobile (o primary se non assegnato) */
.gima-nav-panel-menu--mobile {
  display: none;
}
@media (min-width: 1200px) and (max-width: 1399px) {
  .gima-nav-panel-menu--desktop {
    display: none;
  }
  .gima-nav-panel-menu--mobile {
    display: block;
  }
}

.gima-nav-section {
  margin-bottom: 28px;
}

.gima-nav-title {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.3px;
  text-transform: uppercase;
  color: var(--yellow);
  margin-bottom: 8px;
  text-decoration: none;
  display: block;
  line-height: 1.3;
}
.gima-nav-title:hover { opacity: .75; }

.gima-nav-sub {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gima-nav-sub li {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.gima-nav-sub li::before {
  content: '–';
  color: var(--dark);
  font-size: 13px;
  flex-shrink: 0;
}
.gima-nav-sub a {
  font-size: 13px;
  font-weight: 400;
  color: var(--dark);
  text-decoration: none;
  letter-spacing: -0.2px;
  line-height: 1.9;
}
.gima-nav-sub a:hover { color: var(--yellow); }

/* ═══════════════════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════════════════ */

.gima-footer {
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.08);
}

.gima-footer-inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 32px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.gima-footer-logo img {
  height: 48px;
  width: auto;
}

.footer-info {
  font-size: 13px;
  font-weight: 400;
  color: var(--dark);
  opacity: .6;
  letter-spacing: -0.2px;
  margin-top: 8px;
}
.footer-info a {
  color: inherit;
  text-decoration: none;
}
.footer-info a:hover { opacity: 1; text-decoration: underline; }

.footer-info--mobile  { display: none; }
.footer-info--desktop { display: block; }

.footer-links-col {
  display: none; /* visibile solo mobile */
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.footer-links-col a {
  font-size: 13px;
  font-weight: 400;
  color: var(--dark);
  text-decoration: none;
  opacity: .6;
  letter-spacing: -0.2px;
}
.footer-links-col a:hover { opacity: 1; text-decoration: underline; }

/* ─── Footer mobile ─────────────────────────────────────────────── */
@media (max-width: 899px) {
  .gima-footer-inner {
    padding: 24px 24px 32px;
    align-items: flex-start;
  }

  .footer-info--desktop { display: none; }
  .footer-info--mobile  { display: block; }

  .footer-links-col {
    display: flex;
    flex-shrink: 0;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   STORIA OVERLAY – stato mobile (body.storia-overlay-open)
   Usato in tpl-pagina-di-gruppo / page-il-gruppo
═══════════════════════════════════════════════════════════════════ */

@media (max-width: 899px) {

  body.storia-overlay-open #gimaNavbar {
    z-index: 970 !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }

  body.storia-overlay-open .gima-nav-overlay {
    z-index: 980 !important;
  }

  body.storia-overlay-open .gima-nav-panel {
    z-index: 981 !important;
  }

}

/* Hero hamburger (hero senza navbar sticky) */
.hamburger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
}

/* ═══════════════════════════════════════════════════════════════════
   HOMEPAGE
═══════════════════════════════════════════════════════════════════ */

.home-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 80px;
}
.home-hero-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}
.home-hero::before {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: var(--home-hero-overlay-warm);
}
.home-hero::after {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: var(--home-hero-overlay-dark);
}

.home-hero--overlay-b {
  /* B: più "cinematografica", giallo più morbido e dark meno invasivo. */
  --home-hero-overlay-warm: linear-gradient(
    180deg,
    rgba(250, 185, 5, 0.36) 0%,
    rgba(241, 169, 0, 0.30) 58%,
    rgba(233, 160, 0, 0.24) 100%
  );
  --home-hero-overlay-dark: linear-gradient(
    to right,
    rgba(29, 29, 27, 0.58) 0%,
    rgba(29, 29, 27, 0.26) 42%,
    rgba(29, 29, 27, 0) 74%
  );
}

/* ── Sections ─────────────────────────────────────────────────────── */
.home-section {
  margin-bottom: 160px;
}
.home-section:last-of-type { margin-bottom: 0; }

/* Il container centra a 1400px; .home-section-cols è la griglia 2 col.
   Misure da home.svg (export XD): area 1400px centrata su 1920; testo x=262;
   colonna copy 448px; fascia dx 951px = 628 (giallo) + 10 + 313 (foto); h=530. */
/* Foraggi usa .container senza .home-section: senza questa regola eredita padding 0 40px
   e il blocco risulta “più stretto” / scostato rispetto a Chi siamo · Cosa · Come */
.home-section .container,
.home-foraggi .container {
  padding: 0;
}

.home-section-cols {
  display: grid;
  align-items: stretch;
  justify-items: start;
}
.home-section-cols > * { min-width: 0; }

/* Copy: allineamento a sinistra come XD (tspan x=0); padding solo a destra */
.home-copy {
  padding: 0 30px 0 0;
  text-align: left;
  justify-self: start;
  width: 100%;
  max-width: 448px;
  box-sizing: border-box;
}

.label {
  display: block;
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 700;
  letter-spacing: -.15px;
  text-transform: uppercase;
  color: var(--yellow);
  margin-bottom: 15px;
}
.home-section-title {
  font-size: clamp(18px, 1.8vw, 25px);
  font-weight: 700;
  line-height: 1.3;
  max-width: 411px;
  margin: 0 0 27px;
  color: var(--dark);
}
.home-section-body {
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 30px;
  letter-spacing: -.5px;
  max-width: 406px;
  margin: 0 0 24px;
  color: var(--dark);
}

/* ── Chi siamo ────────────────────────────────────────────────────── */
.home-chi-right { display: flex; }
.home-stats-grid {
  display: grid;
  width: 100%;
  align-items: stretch;
}
.home-stats-list {
  display: flex; flex-direction: column;
  justify-content: center; gap: 18px;
  padding: 40px 60px;
  background: var(--yellow);
}
.stat-card { display: flex; align-items: center; gap: 16px; width: 100%; }
.stat-card.reverse { flex-direction: row-reverse; justify-content: flex-start; }
.stat-card img { width: 90px; height: 90px; flex-shrink: 0; }
.stat-card-text { min-width: 0; flex: 1; color: #fff; line-height: 1.15; font-weight: 700; }
.stat-card.reverse .stat-card-text { text-align: right; }
.stat-card-text strong {
  display: block;
  font-size: clamp(14px, 1.4vw, 22px);
  font-weight: 600; text-transform: uppercase;
  color: #fff; line-height: 1.12; margin-bottom: 1px;
}
.stat-card-text span {
  display: block;
  font-size: clamp(13px, 1.3vw, 20px);
  color: #fff; font-weight: 700;
}
.home-stat-photo { overflow: hidden; }
.home-stat-photo img { width: 100%; height: auto; object-fit: cover; display: block; }

/* Chi siamo: home.svg — 448 | 951 (628+10+313), h 530 */
.home-chi-siamo .container {
  max-width: 1320px;
}
/* ── Cosa facciamo ────────────────────────────────────────────────── */
.home-cosa-right {
  display: grid;
  min-width: 0;
  align-items: stretch;
}
.home-cosa-photo { overflow: hidden; }
.home-cosa-photo img { width: 100%; height: auto; object-fit: cover; display: block; }
.home-cosa-services {
  display: flex; flex-direction: column;
  justify-content: center; gap: 18px;
  padding: 40px;
  background: var(--yellow);
}
.service-card { display: flex; align-items: center; gap: 16px; width: 100%; }
.service-card.reverse { flex-direction: row-reverse; justify-content: flex-start; }
.service-card img { width: 90px; height: 90px; flex-shrink: 0; }
.service-card-text { min-width: 0; flex: 1; color: #fff; line-height: 1.15; }
.service-card.reverse .service-card-text { text-align: right; }

/* Cosa facciamo: stesso split 448 | 951 (immagine 313 + 10 + giallo 628) */
.home-cosa .container {
  max-width: 1320px;
}
.service-card-text strong {
  display: block;
  font-size: clamp(14px, 1.4vw, 22px);
  font-weight: 600; text-transform: uppercase;
  color: #fff; line-height: 1.12; margin-bottom: 1px;
}
.service-card-text span {
  display: block;
  font-size: clamp(13px, 1.3vw, 20px);
  color: #fff; font-weight: 700;
}

/* ── Come lavoriamo ─────────────────────────────────────────────────
   home.svg: foto 951×512 rx10 a translate(710 2496) → split 448 | 951 */
.home-come .container {
  max-width: 1320px;
}
.home-foraggi .container {
  max-width: 1320px;
}
.home-come .home-section-cols {
  grid-template-columns: 448px 951px;
  min-height: 512px;
  align-items: start;
}
.home-come-photo { min-width: 0; overflow: hidden; }
.home-come-photo img {
  width: 100%;
  height: 100%;
  min-height: 512px;
  object-fit: cover;
  display: block;
}

/* ── Foraggi ──────────────────────────────────────────────────────── */
.home-foraggi { padding: 30px 0 100px; }
.home-foraggi-top {
  display: grid;
  grid-template-columns: 397px 1fr;
  align-items: start; gap: 93px; margin-bottom: 44px;
}
.home-foraggi-copy .home-section-title { font-size: 25px; line-height: 30px; max-width: none; }
.home-animals-row {
  display: flex; gap: 0; flex-wrap: nowrap;
  justify-content: space-between; width: 100%;
}
.animal-item {
  display: flex; flex-direction: column;
  align-items: center; gap: 8px;
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 400; color: var(--dark);
}
.animal-icon { display: flex; align-items: center; justify-content: center; }
.home-stats-bar {
  display: flex; justify-content: space-between;
  margin: 10px 0 16px;
  position: relative; align-items: start;
}
.home-stats-bar::before {
  content: ''; position: absolute;
  left: 0; right: 0; top: 61px;
  border-top: 2px solid #8b8b8b; z-index: 0;
}
.stat-bar-item { padding: 0; position: relative; z-index: 1; min-width: 0; }
.stat-bar-item .percent {
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.05; font-weight: 700;
  color: var(--dark); display: block; margin-top: 18px;
}
.stat-bar-item .pct-label {
  font-size: clamp(18px, 1.8vw, 25px);
  line-height: 1.1; color: var(--dark); font-weight: 300;
}
.stat-bar-item .animal-icon-small { display: flex; align-items: center; justify-content: start; }
.stat-bar-item .animal-icon-small img { display: block; }
.stat-bar-item.rabbit .animal-icon-small img { transform: translateY(-7px); }

/* ── Footer homepage dark ─────────────────────────────────────────── */
.home-footer {
  background: var(--dark);
  color: rgba(255,255,255,.7);
  padding: 30px 40px;
}
.home-footer-inner {
  max-width: var(--container-max); margin: 0 auto;
  display: flex; justify-content: space-between;
  align-items: center; flex-wrap: wrap; gap: 12px;
}
.home-footer .footer-brand { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 4px; }
.home-footer-info { font-size: 11px; line-height: 1.8; color: rgba(255,255,255,.7); }
.home-footer-info a { color: rgba(255,255,255,.7); text-decoration: underline; }
.home-footer-info a:hover { color: #fff; }
.home-footer-bottom {
  max-width: var(--container-max); margin: 16px auto 0;
  display: flex; justify-content: space-between;
  font-size: 10px; color: rgba(255,255,255,.4);
  border-top: 1px solid rgba(255,255,255,.1);
  padding-top: 14px;
}

/* ── Homepage tablet (900px – 1399px) ──────────────────────────────
   Proporzioni XD (home.svg): 448fr : 951fr; padding container; griglia non full-1fr. */
@media (min-width: 1200px) and (max-width: 1399px) {
  .home-section { margin-bottom: 60px; }

  .home-section .container,
  .home-foraggi .container {
    padding-left: clamp(20px, 4vw, 40px);
    padding-right: clamp(20px, 4vw, 40px);
    box-sizing: border-box;
  }

  .home-hero-container {
    padding: clamp(24px, 3.5vw, 40px);
  }

  .home-copy {
    padding: clamp(22px, 3.5vw, 44px) 0;
    text-align: left;
    justify-self: start;
    max-width: min(448px, 100%);
  }

  .home-chi-siamo .home-copy .label,
  .home-cosa .home-copy .label,
  .home-come .home-copy .label {
    margin-bottom: 10px;
  }

  .home-chi-siamo .home-section-title,
  .home-cosa .home-section-title,
  .home-come .home-section-title {
    max-width: min(411px, 100%);
    margin-bottom: 14px;
    font-size: clamp(17px, 1.65vw, 24px);
  }

  .home-chi-siamo .home-section-body,
  .home-cosa .home-section-body,
  .home-come .home-section-body {
    max-width: min(406px, 100%);
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.45;
    margin-bottom: 16px;
  }

  .home-stats-list { padding: 32px 28px; }
  .home-cosa-services { padding: 32px 28px; }

  /* Chi siamo — proporzioni XD, max fascia 951px */
  .home-chi-siamo .home-section-cols {
    grid-template-columns: minmax(320px, 1fr) minmax(0, 2.12fr);
    justify-items: start;
    align-items: stretch;
    height: auto;
    min-height: clamp(430px, 34vw, 520px);
    overflow: visible;
    gap: clamp(8px, 1vw, 12px);
  }

  .home-chi-siamo .home-chi-right {
    width: 100%;
    max-width: none;
    min-width: 0;
    justify-self: stretch;
  }

  .home-chi-siamo .home-stats-grid {
    grid-template-columns: minmax(0, 1.65fr) minmax(150px, 0.85fr);
    width: 100%;
    height: var(--hp-h-laptop);
    gap: clamp(8px, 0.72vw, 10px);
    box-sizing: border-box;
  }

  .home-chi-siamo .home-stats-list,
  .home-chi-siamo .home-stat-photo {
    height: var(--hp-h-laptop);
    min-height: 0;
    box-sizing: border-box;
  }

  .home-chi-siamo .home-stat-photo img {
    width: 100%;
    height: var(--hp-h-laptop);
    object-fit: cover;
  }

  /* Cosa facciamo */
  .home-cosa .home-section-cols {
    grid-template-columns: minmax(320px, 1fr) minmax(0, 2.12fr);
    justify-items: start;
    align-items: stretch;
    height: auto;
    min-height: clamp(430px, 34vw, 520px);
    overflow: visible;
    gap: clamp(8px, 1vw, 12px);
  }

  .home-cosa .home-cosa-right {
    grid-template-columns: minmax(150px, 0.85fr) minmax(0, 1.65fr);
    width: 100%;
    max-width: none;
    min-width: 0;
    justify-self: stretch;
    height: var(--hp-h-laptop);
    gap: clamp(8px, 0.72vw, 10px);
    box-sizing: border-box;
  }

  .home-cosa .home-cosa-services,
  .home-cosa .home-cosa-photo {
    height: var(--hp-h-laptop);
    min-height: 0;
    box-sizing: border-box;
  }

  .home-cosa .home-cosa-photo img {
    width: 100%;
    height: var(--hp-h-laptop);
    object-fit: cover;
  }

  .home-come .home-section-cols {
    grid-template-columns: 1fr 1fr;
    justify-items: start;
    align-items: start;
    min-height: 0;
    gap: clamp(12px, 2vw, 24px);
  }

  .home-come-photo img {
    min-height: min(512px, 48vh);
  }

  .home-foraggi { margin-bottom: 0; }
  .home-foraggi-top { grid-template-columns: minmax(220px, 0.38fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 40px); }
}

/* ── Home proporzioni ridotte: 13" e tablet ──────────────────────── */
@media (min-width: 1200px) and (max-width: 1399px) {
  .home-hero-container { padding: 28px clamp(24px, 3vw, 34px) 30px; }
  .home-hero-logo { width: 126px; }

  .home-section { margin-bottom: 34px; }
  .home-copy { padding: clamp(18px, 2.2vw, 30px) 0; }
  .label { font-size: clamp(14px, 1.15vw, 16px); margin-bottom: 8px; }
  .home-section-title { font-size: clamp(17px, 1.35vw, 21px); line-height: 1.24; margin-bottom: 12px; max-width: 370px; }
  .home-section-body { font-size: clamp(14px, 1.12vw, 17px); line-height: 1.42; margin-bottom: 14px; max-width: 370px; }
  .home-copy .btn { font-size: 13px; line-height: 22px; padding: 4px 12px; }

  .home-stats-list,
  .home-cosa-services { padding: 24px 20px; gap: 12px; }
  .stat-card img,
  .service-card img { width: 86px; height: 86px; }
  .stat-card { gap: 14px; }
  .service-card { gap: 14px; }
  .stat-card-text strong,
  .service-card-text strong { font-size: clamp(13px, 1.15vw, 18px); }
  .stat-card-text span,
  .service-card-text span { font-size: clamp(11px, 0.92vw, 13px); }

  .home-come .home-section-cols {
    grid-template-columns: minmax(320px, 1fr) minmax(0, 2.12fr);
    align-items: stretch;
    min-height: var(--hp-h-laptop);
    gap: clamp(8px, 1vw, 12px);
  }
  .home-come-photo img {
    width: 100%;
    height: var(--hp-h-laptop);
    min-height: 0;
    object-fit: cover;
  }
  .home-foraggi { padding: 10px 0 52px; }
  .home-foraggi-copy .home-section-title { font-size: 22px; line-height: 1.2; }
  .home-animals-row { gap: 20px; }
  .animal-icon { width: 74px; height: 74px; }
  .animal-item { font-size: 13px; }
  .home-stats-bar { margin-bottom: 20px; }
  .percent { font-size: clamp(20px, 2vw, 30px); }
  .home-stats-bar .stat-bar-item .animal-icon-small img { transform: translateY(4px); }
}

@media (min-width: 900px) and (max-width: 1199px) {
  /* Griglia homepage: colonne fluide (le fisse da base 448px+951px
     overflow su questo viewport) */
  .home-section .container,
  .home-foraggi .container {
    padding-left: clamp(16px, 3vw, 28px);
    padding-right: clamp(16px, 3vw, 28px);
    box-sizing: border-box;
  }

  .home-chi-siamo .home-section-cols,
  .home-cosa .home-section-cols,
  .home-come .home-section-cols {
    grid-template-columns: minmax(220px, 1fr) minmax(0, 2.12fr);
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .home-chi-siamo .home-chi-right { width: 100%; min-width: 0; }

  .home-chi-siamo .home-stats-grid {
    grid-template-columns: minmax(0, 1.65fr) minmax(100px, 0.85fr);
    min-height: var(--hp-h-tablet);
  }

  .home-cosa .home-cosa-right {
    grid-template-columns: minmax(100px, 0.85fr) minmax(0, 1.65fr);
    width: 100%;
    min-width: 0;
    min-height: var(--hp-h-tablet);
  }

  .home-hero-container { padding: 24px clamp(20px, 3.2vw, 30px) 24px; }
  .home-hero-logo { width: 110px; }

  .home-section { margin-bottom: 60px; }
  .home-copy { padding: 14px 0; }
  .label { font-size: 13px; margin-bottom: 6px; }
  .home-section-title { font-size: clamp(18px, 1.45vw, 19px); line-height: 1.34; margin-bottom: 10px; max-width: 330px; }
  .home-section-body { font-size: clamp(15px, 1.1vw, 16px); line-height: 1.5; margin-bottom: 12px; max-width: 330px; }
  .home-copy .btn { font-size: 12px; line-height: 21px; padding: 4px 11px; }

  .home-chi-siamo .home-section-cols,
  .home-cosa .home-section-cols,
  .home-come .home-section-cols {
    gap: clamp(10px, 1.6vw, 18px);
  }
  .home-chi-siamo .home-stats-grid,
  .home-cosa .home-cosa-right,
  .home-chi-siamo .home-stats-list,
  .home-chi-siamo .home-stat-photo,
  .home-cosa .home-cosa-services,
  .home-cosa .home-cosa-photo {
    height: var(--hp-h-tablet);
  }
  .home-chi-siamo .home-stat-photo img,
  .home-cosa .home-cosa-photo img {
    height: var(--hp-h-tablet);
  }

  .home-stats-list,
  .home-cosa-services { padding: 20px 16px; gap: 10px; }
  .stat-card img,
  .service-card img { width: 62px; height: 62px; }
  .stat-card { gap: 10px; }
  .service-card { gap: 10px; }
  .stat-card-text strong,
  .service-card-text strong { font-size: clamp(15px, 1vw, 14px); }
  .stat-card-text span,
  .service-card-text span { font-size: clamp(13px, 0.82vw, 11px);font-weight: 600;}

  .home-come-photo img { min-height: min(300px, 32vh); }
  .home-foraggi { padding: 8px 0 42px; }
  .home-foraggi-top { gap: 20px; }
  .home-foraggi-copy .home-section-title { font-size: 20px; line-height: 1.2; }
  .home-animals-row { gap: 14px; }
  .animal-icon { width: 62px; height: 62px; }
  .animal-item { font-size: 12px; }
  .home-stats-bar { margin-bottom: 18px; }
  .percent { font-size: clamp(18px, 1.9vw, 26px); }
  .pct-label { font-size: clamp(10px, 0.88vw, 12px); }

}

@media (min-width: 1400px) {
  .home-chi-siamo .home-section-cols,
  .home-cosa .home-section-cols,
  .home-come .home-section-cols {
    grid-template-columns: minmax(320px, 1fr) minmax(0, 2.12fr);
    height: var(--hp-h-desktop);
    min-height: var(--hp-h-desktop);
    overflow: visible;
    gap: 10px;
  }

  .home-chi-siamo .home-chi-right {
    width: 100%;
    min-width: 0;
  }

  .home-cosa .home-cosa-right {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.65fr);
    width: 100%;
    min-width: 0;
    height: var(--hp-h-desktop);
    min-height: var(--hp-h-desktop);
    gap: 10px;
  }

  .home-chi-siamo .home-stats-grid {
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 0.85fr);
    width: 100%;
    height: var(--hp-h-desktop);
    min-height: var(--hp-h-desktop);
    gap: 10px;
  }

  .home-chi-siamo .home-stat-photo img,
  .home-cosa .home-cosa-photo img,
  .home-come .home-come-photo img {
    height: var(--hp-h-desktop);
    min-height: 0;
  }
}

/* ── Riduzione globale spacing: 13" e tablet (altre pagine) ─────── */
@media (min-width: 1200px) and (max-width: 1399px) {
  .gruppo-section,
  .man-section,
  .srv-section,
  .ric-section { padding: 60px 0; }
  .gruppo-grid { gap: 52px 32px; }
  .man-grid,
  .srv-grid,
  .ric-grid { gap: 40px 32px; }
  .man-intro { margin-bottom: 28px; }
  .zta-intro { padding: 52px 0; }
  .zta-content { padding: 0 0 48px; }
  .zta-intro-grid { gap: 34px; }
  .zta-content-grid { gap: 30px; }
  .stb-intro-section,
  .stb-gialla,
  .stb-cert-section,
  .stb-contatti { padding: 56px 0; }
  .stb-top-row { margin-bottom: 32px; }
  .stb-uffici-box { margin-top: 44px; }
  .gog-main { padding: 48px 0; }
  .gog-container { padding: 32px 40px; }
  .gog-grid { row-gap: 28px; }
  .art-header { padding: 34px 0 26px; }
  .art-content { padding-top: 40px; padding-bottom: 40px; }
  .art-related { padding: 44px 0 56px; margin-top: 22px; }
  .gruppo-cell .cell-heading { margin-bottom: 18px; min-height: auto; }
  .gruppo-cell .cell-img { margin-bottom: 18px; }
  .gruppo-cell .cell-body { margin-bottom: 18px; }
}

@media (min-width: 900px) and (max-width: 1199px) {
  .btn {
    font-size: 14px;
  }
  .gruppo-section,
  .man-section,
  .srv-section,
  .ric-section { padding: 44px 0; }
  .gruppo-grid { gap: 34px 20px; }
  .man-grid,
  .srv-grid,
  .ric-grid { gap: 34px 24px; }
  .man-intro { margin-bottom: 24px; }
  .man-wrap,
  .srv-wrap,
  .ric-wrap,
  .zta-wrap,
  .stb-wrap,
  .gog-container { padding-left: 28px; padding-right: 28px; }
  .zta-intro { padding: 36px 0; }
  .zta-content { padding: 0 0 36px; }
  .zta-intro-grid { gap: 22px; }
  .zta-content-grid { gap: 22px; }
  .stb-intro-section,
  .stb-gialla,
  .stb-cert-section,
  .stb-contatti { padding: 42px 0; }
  .stb-top-row { margin-bottom: 22px; }
  .stb-uffici-box { margin-top: 28px; }
  .gog-main { padding: 36px 0; }
  .gog-container { padding-top: 20px; padding-bottom: 20px; }
  .gog-grid { row-gap: 20px; }
  .art-header { padding: 26px 0 22px; }
  .art-content { padding-top: 30px; padding-bottom: 30px; }
  .art-related { padding: 36px 0 46px; margin-top: 18px; }
  .gruppo-cell .cell-heading { margin-bottom: 14px; min-height: auto; }
  .gruppo-cell .cell-img { margin-bottom: 14px; }
  .gruppo-cell .cell-body { margin-bottom: 14px; }
  .gruppo-cell .cell-subtitle { margin-bottom: 10px; }
}

/* ── Homepage mobile (base 430px) ────────────────────────────────── */
@media (max-width: 899px) {

  .btn {
    font-size: 13px;
  }

  /* Container padding laterale globale */
  .container { padding: 0 24px; }

  /* ── Hero ── */
  /* ── Sezioni generali ── */
  .home-section { margin-bottom: 36px; }
  /* Allinea al .container: margini laterali così testo e blocchi non “toccano” i bordi */
  .home-section .container,
  .home-foraggi .container {
    padding-left: clamp(16px, 5vw, 24px);
    padding-right: clamp(16px, 5vw, 24px);
    box-sizing: border-box;
  }
  .home-section-cols {
    display: block;  /* cancella grid → stack verticale su mobile */
    min-height: auto;
  }

  /* Reset misure fisse desktop su mobile (evita tagli di icone/immagini). */
  .home-chi-siamo .home-section-cols,
  .home-cosa .home-section-cols {
    height: auto;
    min-height: auto;
    overflow: visible;
  }
  .home-chi-siamo .home-stats-grid,
  .home-cosa .home-cosa-right {
    height: auto;
    min-height: auto;
  }
  .home-chi-siamo .home-stats-list,
  .home-chi-siamo .home-stat-photo,
  .home-chi-siamo .home-stat-photo img,
  .home-cosa .home-cosa-services,
  .home-cosa .home-cosa-photo,
  .home-cosa .home-cosa-photo img {
    height: auto;
    min-height: 0;
  }
  .home-section-title { max-width: none; font-size: 22px; line-height: 1.3; }
  .home-section-body  { max-width: none; font-size: 16px; line-height: 1.65; }

  .home-copy {
    padding: 28px 0 36px;
    text-align: left;
    max-width: none;
  }

  /* ── Chi siamo – stats ── */
  .home-chi-right { justify-content: flex-start; width: 100%; }
  .home-stats-grid { grid-template-columns: 1fr; width: 100%; gap: 0; }
  .home-chi-siamo .home-stats-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }
  .home-stats-list {
    padding: 32px 24px;
    gap: 20px;
    min-height: auto;
  }
  .stat-card img { width: 72px; height: 72px; flex-shrink: 0; }
  .stat-card-text strong { font-size: 17px; }
  .stat-card-text span   { font-size: 15px; }
  /* Mantieni le icone alternate ma full-width */
  .stat-card.reverse { flex-direction: row-reverse; }
  .stat-card.reverse .stat-card-text { text-align: right; }
  .home-stat-photo {
    min-height: 0;
    aspect-ratio: 430 / 230;
  }
  .home-stat-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover;
  }

  /* ── Cosa facciamo ── */
  .home-cosa-right { display: block; width: 100%; }
  .home-cosa .home-cosa-right {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    width: 100%;
  }
  .home-cosa-photo {
    min-height: 0;
    aspect-ratio: 430 / 230;
  }
  .home-cosa-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover;
  }
  .home-cosa-services {
    padding: 32px 24px;
    gap: 20px;
    min-height: auto;
  }
  .service-card img { width: 72px; height: 72px; flex-shrink: 0; }
  .service-card-text strong { font-size: 17px; }
  .service-card-text span   { font-size: 15px; }
  .service-card.reverse { flex-direction: row-reverse; }
  .service-card.reverse .service-card-text { text-align: right; }

  /* ── Come lavoriamo ── */
  .home-come-photo {
    width: 100%;
    min-height: 0;
    aspect-ratio: 430 / 230;
    border-radius: 0;
  }
  .home-come-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover;
    border-radius: 0;
  }

  /* ── Foraggi ── */
  .home-foraggi { padding: 40px 0; }
  .home-foraggi-top { grid-template-columns: 1fr; gap: 24px; margin-bottom: 24px; }
  .home-foraggi-copy .home-section-title { font-size: 22px; }
  .home-animals-row { flex-wrap: wrap; gap: 16px 8px; justify-content: flex-start; }
  .animal-item { width: calc(33.333% - 6px); font-size: 13px; }
  .home-stats-bar { flex-wrap: nowrap; justify-content: space-between; }
  .stat-bar-item .animal-icon-small { height: 54px; align-items: flex-end; }
  .stat-bar-item .animal-icon-small img { height: 100%; width: auto; max-width: 64px; }
  .home-stats-bar .stat-bar-item:nth-child(1) .animal-icon-small img,
  .home-stats-bar .stat-bar-item:nth-child(2) .animal-icon-small img {
    transform: translateY(7px);
  }
  .stat-bar-item.rabbit .animal-icon-small img { transform: none; }
  .home-stats-bar::before { top: 54px; }
  .stat-bar-item .percent   { font-size: 20px; margin-top: 10px; }
  .stat-bar-item .pct-label { font-size: 14px; }

  /* ── Footer dark ── */
  .home-footer { padding: 30px 0; }
  .home-footer-inner { flex-direction: column; align-items: flex-start; padding: 0 24px; }
  .home-footer-bottom { flex-direction: column; gap: 4px; padding: 14px 24px 0; }
}

/* ═══════════════════════════════════════════════════════════════════
   TEMPLATE: IL GRUPPO
═══════════════════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────────────────── */
.gruppo-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 0;
}
.gruppo-hero-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  z-index: 0;
}
.gruppo-hero::before {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: #fab905; opacity: 0.518; mix-blend-mode: color;
}
.gruppo-hero::after {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, #1d1d1b 0%, transparent 72%);
  opacity: 0.676; mix-blend-mode: multiply;
}

/* ── Sezione griglia ──────────────────────────────────────────────── */
.gruppo-section { padding: 80px 0; }

.gruppo-wrap {
  max-width: var(--container-max);
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.gruppo-grid {
  display: grid;
  width: 100%;
  grid-template-columns: calc((100% - 43px) / 2) calc((100% - 43px) / 2);
  gap: 88px 43px;
}

.gruppo-cell {
  display: block;
  width: 100%;
  min-width: 0;
}

.cell-heading {
  font-size: clamp(16px, 1.3vw, 25px);
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: -0.5px;
  color: var(--dark);
  text-transform: uppercase;
  margin-bottom: 30px;
  min-height: calc(clamp(12px, 1.8vw, 16px) * 1.32 * 2);
}

.cell-img {
  width: 100%;
  aspect-ratio: 678 / 398;
  object-fit: cover;
  display: block;
  margin-bottom: 28px;
  border-radius: 10px;
}


.cell-subtitle {
  font-size: clamp(18px, 1.6vw, 25px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.4px;
  color: var(--dark);
  margin-bottom: 16px;
}

.cell-body {
  font-size: clamp(14px, 1.4vw, 20px);
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--dark);
  margin-bottom: 28px;
}
.cell-body strong { font-weight: 700; }

.cell-list-label {
  display: block;
  font-size: clamp(14px, 1.5vw, 20px);
  font-weight: 700;
  color: var(--yellow);
  margin-bottom: 8px;
  letter-spacing: -0.2px;
}

.cell-list {
  list-style: none;
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.5;
  letter-spacing: -0.5px;
  color: var(--dark);
  margin-bottom: 28px;
}
.cell-list li::before { content: "- "; }

/* Dots (nascosti su desktop) */
.gruppo-dots { display: none; }

/* ── Storia overlay ───────────────────────────────────────────────── */
.storia-overlay {
  position: fixed; inset: 0; z-index: 960;
  background: #fff;
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
  overflow: hidden;
}
.storia-overlay.storia-open { opacity: 1; visibility: visible; }

.storia-close {
  position: absolute; top: 32px; right: 40px; z-index: 962;
  width: 40px; height: 40px;
  background: none; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}

.storia-slider { width: 100%; height: 100%; position: relative; overflow: hidden; }

.storia-slide {
  position: absolute; inset: 0;
  display: grid;
  grid-template-columns: minmax(320px, 62%) minmax(320px, 38%);
  grid-template-areas: "media content";
  opacity: 0; pointer-events: none;
  transition: opacity .4s ease;
}
.storia-slide.storia-active { opacity: 1; pointer-events: all; }

.storia-left { grid-area: media; height: 100vh; overflow: hidden; }
.storia-left img { width: 100%; height: 100%; object-fit: cover; display: block; }
.storia-img-mobile { display: none !important; }
.storia-img-desktop { display: block !important; }

.storia-right { grid-area: content; display: flex; height: 100vh; }
.storia-right-top {
  padding: clamp(40px,5vw,80px) clamp(40px,5vw,80px) 32px;
  display: flex; flex-direction: column; justify-content: center;
  width: 100%;
}
.storia-right-bottom { overflow: hidden; }
.storia-right-bottom img { width: 100%; height: 100%; object-fit: cover; display: block; }

.storia-slide-title {
  font-family: var(--font-serif);
  font-weight: 400; font-style: normal;
  font-size: clamp(40px, 5vw, 72px);
  color: var(--dark); line-height: 1.1; margin-bottom: 32px;
}
.storia-slide-year {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(60px, 7vw, 110px);
  line-height: 1; letter-spacing: -0.02em;
  color: var(--dark); margin-bottom: 28px;
}
.storia-slide-subtitle {
  font-weight: 600;
  font-size: clamp(16px, 1.8vw, 25px);
  letter-spacing: -0.01em; line-height: 2.2;
  color: var(--dark); margin-bottom: 8px;
}
.storia-slide-text {
  font-size: clamp(16px, 1.4vw, 20px);
  letter-spacing: -0.01em; line-height: 1.5;
  color: var(--dark);
}

/* Slide --reverse */
.storia-slide--reverse {
  grid-template-columns: minmax(320px, 38%) minmax(320px, 62%);
  grid-template-areas: "content media";
}

/* Slide --text-right */
.storia-slide--text-right .storia-right {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(40px,5vw,80px);
  height: 100vh;
}

/* Navigation bar */
.storia-nav {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 80px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px; z-index: 962;
}
.storia-nav-btn {
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 2px solid var(--dark);
  background: rgba(255,255,255,.85);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.storia-nav-btn:hover { background: var(--dark); }
.storia-nav-btn:hover svg { stroke: #fff; }
.storia-nav-btn svg { stroke: var(--dark); transition: stroke .2s; }
.storia-hidden { visibility: hidden; }
.storia-counter { font-size: 14px; color: var(--dark); letter-spacing: 0.05em; }

.storia-mobile-back-wrap { display: none; }

/* ── Processo overlay ─────────────────────────────────────────────── */
.processo-overlay {
  position: fixed; inset: 0; z-index: 1300;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .35s ease;
}
.processo-overlay.processo-open { opacity: 1; pointer-events: all; }

.processo-close {
  position: absolute; top: 32px; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: none; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 1301;
}
.processo-svg-wrap {
  width: 100%; height: 100%;
  padding: 80px 40px 40px;
  display: flex; align-items: center; justify-content: center;
  overflow: auto;
}
.processo-svg-wrap img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }

/* ── Il Gruppo – mobile ───────────────────────────────────────────── */
@media (max-width: 899px) {

  /* Hero */
  /* Sezione */
  .gruppo-section { padding: 20px 0; }
  .gruppo-wrap { padding: 0; overflow: hidden; }

  /* Grid → slider orizzontale */
  .gruppo-grid {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    height: var(--gima-mobile-slider-height, auto);
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0;
    align-items: flex-start;
  }
  .gruppo-grid::-webkit-scrollbar { display: none; }

  .gruppo-cell {
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: start;
    padding: 32px 24px;
    box-sizing: border-box;
  }
  .gruppo-cell .btn { width: 100%; text-align: center; display: block; }

  .cell-heading { font-size: 18px; min-height: auto; margin-bottom: 20px; }
  .cell-subtitle { font-size: 18px; }
  .cell-body, .cell-list { font-size: 16px; }

  /* Dots */
  .gruppo-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 12px 0 24px;
  }
  .gruppo-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #ccc;
    border: none; padding: 0; cursor: pointer;
    transition: background .2s;
  }
  .gruppo-dot.active { background: var(--yellow); }

  /* Storia overlay – mobile scroll verticale */
  .storia-overlay { overflow-y: auto; overflow-x: hidden; padding-top: 73px; }
  .storia-close { display: none; }
  .storia-nav   { display: none; }
  .storia-slider { height: auto; overflow: visible; position: static; }
  .storia-slide {
    position: static; opacity: 1 !important; pointer-events: auto !important;
    display: block; height: auto;
  }
  .storia-left { height: auto; }
  .storia-img-desktop { display: none !important; }
  .storia-img-mobile { display: block !important; width: 100%; height: auto; object-fit: cover; }
  .storia-right { display: block; height: auto; }
  .storia-right-top { padding: 20px 16px 18px; justify-content: flex-start; }
  .storia-right-bottom { display: none; height: auto; }
  .storia-slide--reverse .storia-left { height: auto; }
  .storia-slide--reverse .storia-right { display: block; }
  .storia-slide--text-right .storia-right { height: auto; padding: 20px 16px 18px; }
  .storia-slide-title {
    font-size: clamp(44px, 13vw, 58px);
    line-height: 1;
    margin-bottom: 10px;
  }
  .storia-slide-year  {
    font-size: clamp(52px, 15vw, 72px);
    line-height: 1;
    margin-bottom: 14px;
  }
  .storia-slide-subtitle {
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-bottom: 8px;
  }
  .storia-slide-text {
    font-size: 14px;
    line-height: 1.35;
  }

  /* Bottone "Torna al gruppo" */
  .storia-mobile-back-wrap {
    display: flex;
    padding: 40px 24px 24px;
  }
  .storia-back-btn {
    display: inline-block;
    padding: 5px 20px;
    font-size: 13px; font-weight: 600;
    letter-spacing: 0.04em; line-height: 27px;
    text-transform: uppercase;
    background: var(--dark); color: #fff;
    border: 2px solid var(--dark); cursor: pointer;
  }

  /* Processo overlay */
  .processo-close {
    top: 16px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: 40px;
    height: 40px;
    background: none;
    border-radius: 0;
    box-shadow: none;
  }
  .processo-svg-wrap { padding: 64px 0 24px; align-items: flex-start; justify-content: flex-start; }
  .processo-svg-wrap picture,
  .processo-svg-wrap img { width: 100%; max-height: none; height: auto; }
}

/* ── Il Gruppo – tablet large / 13" ───────────────────────────────── */
@media (min-width: 1200px) and (max-width: 1399px) {
  .gruppo-wrap {
    max-width: var(--container-max);
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  .gruppo-grid {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(20px, 2.3vw, 36px);
    row-gap: clamp(34px, 3.6vw, 56px);
    justify-content: stretch;
    margin: 0;
  }
  .gruppo-grid > .gruppo-cell { justify-self: stretch; }
  .gruppo-cell { width: 100%; min-width: 0; }
  .cell-img { width: 100%; display: block; }
}

/* ── Allineamento laterale uniforme pagine interne ───────────────── */
@media (min-width: 1400px) {
  .gruppo-wrap {
    max-width: var(--container-max);
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  .gruppo-grid {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(20px, 2.3vw, 36px);
    row-gap: clamp(40px, 3.6vw, 56px);
    justify-content: stretch;
    margin: 0;
  }
  .gruppo-grid > .gruppo-cell { justify-self: stretch; }
  .gruppo-cell { width: 100%; min-width: 0; }
  .cell-img { width: 100%; display: block; }

  .gruppo-wrap,
  .man-wrap,
  .srv-wrap,
  .ric-wrap,
  .zta-wrap,
  .stb-wrap,
  .gog-container {
    padding-left: 40px;
    padding-right: 40px;
  }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .gruppo-wrap,
  .man-wrap,
  .srv-wrap,
  .ric-wrap,
  .zta-wrap,
  .stb-wrap,
  .gog-container {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (min-width: 900px) and (max-width: 1199px) {
  .gruppo-grid {
    grid-template-columns: 1fr 1fr;
    column-gap: clamp(20px, 2.3vw, 36px);
    row-gap: clamp(34px, 3.6vw, 52px);
  }
  .cell-heading { min-height: auto; }

  .gruppo-wrap,
  .man-wrap,
  .srv-wrap,
  .ric-wrap,
  .zta-wrap,
  .stb-wrap,
  .gog-container {
    padding-left: 28px;
    padding-right: 28px;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   TEMPLATE: MANGIMI PER ALLEVAMENTI (e riuso per Rivendite)
═══════════════════════════════════════════════════════════════════ */

/* Hero – riusa stili .gruppo-hero, solo classe diversa */
.man-hero {
  position: relative;
  overflow: hidden;
}
.man-hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  z-index: 0;
}
.man-hero::before {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: #fab905; opacity: 0.518; mix-blend-mode: color;
}
.man-hero::after {
  content: ''; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, #1d1d1b 0%, transparent 72%);
  opacity: 0.676; mix-blend-mode: multiply;
}

/* Sezione */
.man-section { padding: 107px 0; }
.man-wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 40px; }

/* Intro */
.man-intro { margin-bottom: 40px; }
.man-intro-title {
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 700; letter-spacing: -0.5px;
  color: var(--dark); text-transform: uppercase;
  margin-bottom: 20px;
}
.man-intro-body {
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.55; letter-spacing: -0.5px;
  color: var(--dark);
}

/* Griglia celle – identica a .gruppo-grid */
.man-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px 43px;
}
.man-cell {
  display: flex; flex-direction: column; align-items: flex-start;
}
.man-cell-heading {
  font-size: clamp(18px, 1.8vw, 25px);
  font-weight: 700; line-height: 1.32;
  letter-spacing: -0.5px; color: var(--dark);
  text-transform: uppercase; margin-bottom: 24px;
  display: flex;
  align-items: flex-end;
  min-height: calc(clamp(18px, 1.8vw, 25px) * 1.32 * 2);
}
.man-cell-img {
  width: 100%; aspect-ratio: 678 / 398;
  object-fit: cover; display: block;
  margin-bottom: 28px; border-radius: 10px;
}
.man-cell-body {
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.5; letter-spacing: -0.5px;
  color: var(--dark); margin-bottom: 16px;
}
.man-cell-body:last-of-type { margin-bottom: 28px; }
.man-cell-body strong { font-weight: 700; }

/* Dots */
.man-dots { display: none; }

/* ── Mobile ────────────────────────────────────────────────────────── */
@media (max-width: 899px) {
  .man-section { padding: 32px 0 0; }
  .man-wrap { padding: 0; }
  .man-intro { padding: 0 24px 32px; margin-bottom: 0; }
  .man-intro-title { font-size: 18px; }
  .man-intro-body  { font-size: 16px; }

  .man-grid {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    height: var(--gima-mobile-slider-height, auto);
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 0;
    align-items: flex-start;
  }
  .man-grid::-webkit-scrollbar { display: none; }

  .man-cell {
    flex: 0 0 100%; width: 100%;
    scroll-snap-align: start;
    padding: 24px 24px 32px;
    box-sizing: border-box;
  }
  .man-cell .btn { width: 100%; text-align: center; display: block; }
  .man-cell-heading { font-size: 18px; margin-bottom: 16px; min-height: auto; }
  .man-cell-body { font-size: 16px; }

  .man-dots {
    display: flex; justify-content: center;
    gap: 8px; padding: 12px 0 24px;
  }
  .man-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #ccc; border: none; padding: 0;
    cursor: pointer; transition: background .2s;
  }
  .man-dot.active { background: var(--yellow); }
}

/* ════════════════════════════════════════════════════════════
   SERVIZI
════════════════════════════════════════════════════════════ */
.srv-section { padding: 80px 0; }
.srv-wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 40px; }
.srv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px 43px; }
.srv-cell { display: flex; flex-direction: column; align-items: flex-start; }
.srv-cell-heading {
  font-size: clamp(16px, 1.3vw, 25px); font-weight: 700; line-height: 1.32;
  letter-spacing: -0.5px; color: var(--dark); text-transform: uppercase;
  margin-bottom: 24px; min-height: calc(clamp(18px,1.8vw,25px) * 1.32 * 2);
}
.srv-cell-img { width: 100%; aspect-ratio: 678/398; object-fit: cover; display: block; margin-bottom: 28px; border-radius: 10px; }
.srv-cell-subtitle { font-size: clamp(18px,1.8vw,25px); font-weight: 700; line-height: 1.2; letter-spacing: -0.4px; color: var(--dark); margin-bottom: 16px; }
.srv-cell-body { font-size: clamp(16px,1.5vw,20px); line-height: 1.5; letter-spacing: -0.5px; color: var(--dark); margin-bottom: 28px; }
.srv-cell-body strong { font-weight: 700; }
.srv-cell-list-label { display: block; font-size: clamp(16px,1.5vw,20px); font-weight: 700; color: var(--yellow); letter-spacing: -0.5px; margin-bottom: 8px; }
.srv-cell-list { list-style: none; font-size: clamp(16px,1.5vw,20px); /* font-weight: 700; */ line-height: 1.5; letter-spacing: -0.5px; color: var(--dark); margin-bottom: 28px; }
.srv-cell-list li::before { content: "- "; }
.srv-dots { display: none; }

@media (max-width: 899px) {
  .srv-section { padding: 32px 0 0; }
  .srv-wrap { padding: 0; max-width: 100%; }
  .srv-grid { display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; align-items: flex-start; }
  .srv-grid::-webkit-scrollbar { display: none; }
  .srv-cell { flex: 0 0 100%; width: 100%; scroll-snap-align: start; padding: 32px 24px; box-sizing: border-box; }
  .srv-cell-heading { font-size: 18px; min-height: 0; margin-bottom: 20px; }
  .srv-cell-subtitle { font-size: 18px; }
  .srv-cell-body, .srv-cell-list { font-size: 16px; }
  .srv-cell .btn { width: 100%; text-align: center; display: block; }
  .srv-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .srv-dot { width: 8px; height: 8px; border-radius: 50%; background: #ccc; border: none; padding: 0; cursor: pointer; transition: background .2s; }
  .srv-dot.active { background: var(--yellow); }
}

/* ════════════════════════════════════════════════════════════
   NO-HERO PAGES
════════════════════════════════════════════════════════════ */
.gima-no-hero { padding-top: 73px; }
.gima-no-hero #gimaNavbar {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* ════════════════════════════════════════════════════════════
   RICERCA E INNOVAZIONE
════════════════════════════════════════════════════════════ */
.ric-section { padding: 107px 0; }
.ric-wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 40px; }
.ric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px 43px; }
.ric-cell { display: flex; flex-direction: column; align-items: flex-start; }
.ric-cell-heading {
  font-size: clamp(18px,1.8vw,25px); font-weight: 700; line-height: 1.32;
  letter-spacing: -0.5px; color: var(--dark); text-transform: uppercase;
  margin-bottom: 24px; min-height: calc(clamp(18px,1.8vw,25px) * 1.32 * 2);
}
.ric-cell-img { width: 100%; aspect-ratio: 678/398; object-fit: cover; display: block; margin-bottom: 28px; border-radius: 10px; }
.ric-cell-body { font-size: clamp(16px,1.5vw,20px); line-height: 1.5; letter-spacing: -0.5px; color: var(--dark); }
.ric-cell-body strong { font-weight: 700; }
.ric-dots { display: none; }

@media (max-width: 899px) {
  .ric-section { padding: 32px 0 0; }
  .ric-wrap { padding: 0; max-width: 100%; }
  .ric-grid { display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; align-items: flex-start; }
  .ric-grid::-webkit-scrollbar { display: none; }
  .ric-cell { flex: 0 0 100%; width: 100%; scroll-snap-align: start; padding: 0 24px 32px; box-sizing: border-box; }
  .ric-cell-heading { font-size: 18px; min-height: 0; margin-bottom: 16px; }
  .ric-cell-img { margin-bottom: 20px; }
  .ric-cell-body { font-size: 16px; }
  .ric-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .ric-dot { width: 8px; height: 8px; border-radius: 50%; background: #ccc; border: none; padding: 0; cursor: pointer; transition: background .2s; }
  .ric-dot.active { background: var(--yellow); }
}

/* ════════════════════════════════════════════════════════════
   ZETA+
════════════════════════════════════════════════════════════ */
.zta-wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 40px; }
.zta-intro { padding: 80px 0; }
.zta-intro-title { font-size: clamp(22px,2.5vw,35px); font-weight: 700; letter-spacing: -0.6px; line-height: 1; color: var(--dark); text-transform: uppercase; margin-bottom: 40px; }
.zta-intro-grid { display: grid; grid-template-columns: 220px 1fr; gap: 60px; align-items: start; }
.zta-intro-logo img { width: 100%; height: auto; display: block; }
.zta-intro-body { font-size: clamp(16px,1.5vw,20px); line-height: 1.5; letter-spacing: -0.3px; color: var(--dark); }
.zta-intro-body p { margin-bottom: 16px; }
.zta-intro-body p:last-child { margin-bottom: 0; }
.zta-intro-body strong { font-weight: 700; }
.zta-content { padding: 0 0 80px; }
.zta-content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 43px; align-items: start; }
.zta-col-title { font-size: clamp(18px,1.8vw,25px); font-weight: 700; letter-spacing: -0.6px; line-height: 1.32; color: var(--dark); text-transform: uppercase; margin-bottom: 24px; }
.zta-col-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; margin-bottom: 32px; border-radius: 10px; }
.zta-feature-list { display: flex; flex-direction: column; gap: 20px; }
.zta-feature-item h4 { font-size: clamp(16px,1.5vw,20px); font-weight: 700; color: var(--dark); letter-spacing: -0.3px; line-height: 1.5; margin-bottom: 4px; }
.zta-feature-item p { font-size: clamp(16px,1.5vw,20px); color: var(--dark); line-height: 1.5; letter-spacing: -0.3px; }
.zta-right-block { margin-bottom: 28px; }
.zta-right-block h4 { font-size: clamp(16px,1.5vw,20px); font-weight: 700; color: var(--dark); letter-spacing: -0.3px; line-height: 1.5; margin-bottom: 8px; }
.zta-right-block p { font-size: clamp(16px,1.5vw,20px); color: var(--dark); line-height: 1.5; letter-spacing: -0.3px; }
.zta-dash-list { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.zta-dash-list li { font-size: clamp(16px,1.5vw,20px); color: var(--dark); line-height: 1.5; letter-spacing: -0.3px; }
.zta-dash-list li::before { content: '- '; color: var(--dark); }
.zta-check-list { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.zta-check-list li { font-size: clamp(16px,1.5vw,20px); color: var(--dark); line-height: 1.5; letter-spacing: -0.3px; }
.zta-check-list li::before { content: '✓ '; color: var(--dark); font-weight: 700; }
.zta-hero-footer { font-size: clamp(18px,2vw,26px); font-weight: 700; color: #fff; letter-spacing: -0.5px; }
.zta-dots { display: none; }

@media (min-width: 900px) and (max-width: 1199px) {
  .zta-wrap { padding: 0 32px; }
  .zta-intro-grid { gap: 40px; }
  .zta-content-grid { gap: 48px; }
}
@media (max-width: 899px) {
  .zta-intro { padding: 40px 0; }
  .zta-intro .zta-wrap { padding: 0 24px; }
  .zta-intro-title { font-size: 20px; margin-bottom: 20px; }
  .zta-intro-grid { grid-template-columns: 1fr; gap: 20px; }
  .zta-intro-logo img { width: 140px; }
  .zta-intro-body { font-size: 16px; }
  .zta-hero-footer { font-size: 16px; }
  .zta-content { padding: 0; }
  .zta-content .zta-wrap { padding: 0; }
  .zta-content-grid { display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; align-items: flex-start; }
  .zta-content-grid::-webkit-scrollbar { display: none; }
  .zta-content-grid > div { flex: 0 0 100%; width: 100%; scroll-snap-align: start; padding: 0 24px 32px; box-sizing: border-box; }
  .zta-col-title { font-size: 18px; margin-bottom: 16px; }
  .zta-col-img { margin-bottom: 20px; }
  .zta-feature-item h4, .zta-feature-item p, .zta-right-block h4, .zta-dash-list li, .zta-check-list li, .zta-right-block p { font-size: 16px; }
  .zta-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .zta-dot { width: 8px; height: 8px; border-radius: 50%; background: #ccc; border: none; padding: 0; cursor: pointer; transition: background .2s; }
  .zta-dot.active { background: var(--yellow); }
}

/* ════════════════════════════════════════════════════════════
   STABILIMENTI E CONTATTI
════════════════════════════════════════════════════════════ */
.stb-wrap { max-width: var(--container-max); margin: 0 auto; padding: 0 40px; }
.stb-intro-section { padding: 80px 0; }
.stb-intro-title { font-size: clamp(20px,2vw,28px); font-weight: 700; letter-spacing: -0.5px; color: var(--dark); text-transform: uppercase; margin-bottom: 24px; }
.stb-intro-body { font-size: clamp(16px,1.5vw,20px); line-height: 1.6; letter-spacing: -0.5px; color: var(--dark); margin: 0; }
.stb-intro-body strong { font-weight: 700; }
.stb-gialla { background: var(--yellow); padding: 80px 0; }
.stb-top-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; margin-bottom: 60px; }
.stb-bottom-row { display: grid; grid-template-columns: 409fr 724fr; gap: 40px; align-items: start; }
.stb-bottom-left { display: flex; flex-direction: column; gap: 40px; }
.stb-mappa { width: 100%; }
.stb-mappa img { width: 100%; aspect-ratio: 724/808; object-fit: contain; display: block; }
.stb-stab-card { font-size: clamp(16px,1.5vw,20px); line-height: 1.6; color: var(--dark); }
.stb-stab-card h3 { font-size: clamp(18px,1.8vw,25px); font-weight: 700; letter-spacing: -0.3px; color: var(--dark); margin-bottom: 10px; }
.stb-stab-card strong { font-weight: 700; }
.stb-stab-card p { margin-bottom: 10px; }
.stb-stab-card address { font-style: normal; font-size: clamp(16px,1.5vw,20px); font-weight: 500; line-height: 1.5; letter-spacing: -0.3px; color: var(--dark); margin-top: 36px; }
.stb-stab-card address a { color: var(--dark); text-decoration: none; }
.stb-stab-card--mobile-only { display: none; }
.stb-uffici-box { background: #000; color: #fff; padding: 24px 28px; border-radius: 10px; border: 1px solid rgba(255,255,255,.25); line-height: 1.7; margin-top: 80px; }
.stb-uffici-box h3 { font-size: clamp(18px,1.8vw,25px); font-weight: 700; letter-spacing: -0.5px; margin-bottom: 12px; color: #fff; }
.stb-uffici-box address { font-style: normal; font-size: clamp(16px,1.5vw,20px); font-weight: 500; letter-spacing: -0.3px; line-height: 1.7; }
.stb-uffici-box a { color: #fff; text-decoration: none; }
.stb-cert-section { padding: 80px 0; }
.stb-cert-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.stb-cert-title { font-size: clamp(22px,2.5vw,35px); font-weight: 700; text-transform: uppercase; letter-spacing: -0.6px; color: var(--dark); margin-bottom: 32px; }
.stb-cert-item { margin-bottom: 28px; }
.stb-cert-item h4 { font-size: clamp(16px,1.5vw,20px); font-weight: 700; color: var(--dark); margin-bottom: 6px; line-height: 1.5; letter-spacing: -0.3px; }
.stb-cert-item p { font-size: clamp(16px,1.5vw,20px); line-height: 1.5; letter-spacing: -0.3px; color: var(--dark); }
.stb-lavora-item { margin-bottom: 32px; }
.stb-lavora-item h4 { font-size: clamp(14px,1.2vw,22px); font-weight: 700; text-transform: uppercase; letter-spacing: -0.3px; color: var(--dark); margin-bottom: 12px; }
.stb-lavora-item img { width: 100%; aspect-ratio: 16/7; object-fit: cover; display: block; border-radius: 10px; margin-top: 23px; }
.stb-lavora-item a{border-radius:3px;}
.stb-contatti { background: var(--yellow); padding: 80px 0; }
.stb-contatti-title { font-size: clamp(20px,2vw,28px); font-weight: 700; text-transform: uppercase; letter-spacing: -0.5px; color: var(--dark); margin-bottom: 40px; }
.gima-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.stb-form-feedback { margin-bottom: 20px; font-size: clamp(14px,1.2vw,16px); line-height: 1.5; }
.stb-form-feedback--success { color: var(--dark); font-weight: 600; }
.stb-form-feedback--error { color: #b00020; font-weight: 600; }
.stb-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.stb-form-left { display: flex; flex-direction: column; gap: 16px; }
.stb-form-input { border-radius: 8px; width: 100%; height: 45px; padding: 0 16px; font-family: 'Montserrat', sans-serif; font-size: clamp(13px,1.1vw,15px); color: var(--dark); background: #fff; border: none; outline: none; }
.stb-form-input::placeholder { color: #999; }
.stb-form-textarea {border-radius: 8px;width: 100%; height: 100%; min-height: 160px; padding: 12px 16px; font-family: 'Montserrat', sans-serif; font-size: clamp(13px,1.1vw,15px); color: var(--dark); background: #fff; border: none; outline: none; resize: none; }
.stb-form-textarea::placeholder { color: #999; }
.stb-form-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; flex-wrap: wrap; gap: 8px 16px; }
.stb-form-footer .stb-form-privacy { order: 1; flex: 1 1 auto; min-width: 0; }
.stb-form-footer .btn {border-radius: 4px; order: 2; }
.stb-form-footer .stb-privacy-error { order: 3; flex: 1 0 100%; color: #b00020; font-size: 0.875rem; line-height: 1.4; margin: 0; }
.stb-form-privacy { display: flex; align-items: center; gap: 10px; font-size: clamp(13px,1.1vw,15px); font-weight: 500; color: var(--dark); cursor: pointer; }
.stb-form-privacy a { color: var(--dark); text-decoration: underline; }
.stb-toggle-wrap { position: relative; width: 44px; height: 24px; flex-shrink: 0; }
.stb-toggle-wrap input { opacity: 0; width: 0; height: 0; position: absolute; }
.stb-toggle-slider { position: absolute; inset: 0; background: rgba(0,0,0,.25); border-radius: 24px; transition: background .2s; cursor: pointer; }
.stb-toggle-slider::before { content: ''; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: transform .2s; }
.stb-toggle-wrap input:checked + .stb-toggle-slider { background: var(--dark); }
.stb-toggle-wrap input:checked + .stb-toggle-slider::before { transform: translateX(20px); }
.stb-slider-dots { display: none; }

@media (min-width: 900px) and (max-width: 1199px) {
  .stb-wrap { padding: 0 32px; }
  .stb-top-row { gap: 28px; }
  .stb-bottom-row { gap: 28px; }
  .stb-cert-grid { gap: 48px; }
}
@media (max-width: 899px) {
  .stb-intro-section { padding: 40px 0; }
  .stb-intro-section .stb-wrap { padding: 0 24px; }
  .stb-intro-title { font-size: 18px; margin-bottom: 16px; }
  .stb-intro-body { font-size: 16px; }
  .stb-gialla { padding: 40px 0; }
  .stb-gialla .stb-wrap { padding: 0; }
  .stb-top-row { display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; margin-bottom: 0; align-items: flex-start; }
  .stb-top-row::-webkit-scrollbar { display: none; }
  .stb-top-row .stb-stab-card { flex: 0 0 100%; width: 100%; scroll-snap-align: start; padding: 24px 24px 32px; box-sizing: border-box; }
  .stb-stab-card--mobile-only { display: block; }
  .stb-stab-card--desktop-only { display: none; }
  .stb-stab-card h3 { font-size: 18px; }
  .stb-stab-card, .stb-stab-card address { font-size: 16px; }
  .stb-slider-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .stb-slider-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(0,0,0,.25); border: none; padding: 0; cursor: pointer; transition: background .2s; }
  .stb-slider-dot.active { background: var(--dark); }
  .stb-bottom-row { grid-template-columns: 1fr; gap: 24px; padding: 0 24px; }
  .stb-bottom-left { gap: 24px; }
  .stb-uffici-box { margin-top: 0; }
  .stb-uffici-box h3, .stb-uffici-box address { font-size: 16px; }
  .stb-cert-section { padding: 40px 0; }
  .stb-cert-section .stb-wrap { padding: 0 24px; }
  .stb-cert-grid { grid-template-columns: 1fr; gap: 40px; }
  .stb-cert-title { font-size: 20px; margin-bottom: 20px; }
  .stb-cert-item h4, .stb-cert-item p { font-size: 16px; }
  .stb-lavora-item h4 { font-size: 14px; }
  .stb-lavora-item img { aspect-ratio: 16/9; }
  .stb-contatti { padding: 40px 0; }
  .stb-contatti .stb-wrap { padding: 0 24px; }
  .stb-contatti-title { font-size: 20px; margin-bottom: 24px; }
  .stb-form-grid { grid-template-columns: 1fr; gap: 16px; }
  .stb-form-footer { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* ════════════════════════════════════════════════════════════
   GIMA OGNI GIORNO
════════════════════════════════════════════════════════════ */

/* Pagina template Gima ogni giorno: footer sempre in fondo al viewport con poco contenuto */
body.gima-page-archive-gog {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body.gima-page-archive-gog #page.site {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
body.gima-page-archive-gog #content.site-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
body.gima-page-archive-gog .gog-page-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
body.gima-page-archive-gog .gog-main {
  flex: 1;
}

.gog-filterbar { background: var(--yellow); padding: 24px 40px; position: sticky; top: 73px; z-index: 100; }
.gog-filterbar-title { text-align: center; font-size: clamp(16px,1.5vw,20px); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--dark); margin-bottom: 16px; }
.gog-filters { display: flex; align-items: center; justify-content: center; gap: clamp(20px,3vw,48px); flex-wrap: wrap; }
.gog-filter-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: clamp(12px,1.1vw,14px); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dark); user-select: none; }
.gog-filter-label input[type="checkbox"] { appearance: none; -webkit-appearance: none; width: 16px; height: 16px; border: 2px solid var(--dark); background: transparent; cursor: pointer; flex-shrink: 0; position: relative; transition: background .2s; }
.gog-filter-label input[type="checkbox"]:checked { background: var(--dark); }
.gog-filter-label input[type="checkbox"]:checked::after { content: ''; position: absolute; inset: 2px; background: #fff; clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 14%, 80% 0, 43% 62%); }
.gog-main { padding: 72px 0; }
.gog-container { max-width: var(--container-max); margin: 0 auto; padding: 48px 40px; }
.gog-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; row-gap: 48px; }
.gog-card { display: flex; flex-direction: column; text-decoration: none; }
.gog-card .btn {
  align-self: flex-start;
  width: auto;
  max-width: 100%;
  box-sizing: border-box;
}
.gog-card-date { font-size: clamp(11px,0.9vw,13px); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dark); margin-bottom: 10px; }
.gog-card-title { font-size: clamp(14px,1.2vw,17px); font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; color: var(--dark); line-height: 1.4; margin-bottom: 16px; }
.gog-card-img { width: 100%; aspect-ratio: 16/9; background: #E0DED8; border-radius: 8px; overflow: hidden; margin-bottom: 16px; flex-shrink: 0; }
.gog-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gog-card-text { font-size: clamp(14px,1.1vw,16px); line-height: 1.6; color: var(--dark); margin-bottom: 20px; flex: 1; }
.gog-pagination { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 32px 0 56px; font-size: clamp(13px,1vw,15px); font-weight: 700; letter-spacing: 0.06em; color: var(--dark); }
.gog-pagination-arrow { background: none; border: none; cursor: pointer; display: flex; align-items: center; padding: 4px; color: var(--dark); transition: opacity .2s; }
.gog-pagination-arrow:hover { opacity: .5; }
.gog-pagination-arrow svg { display: block; }
.gog-dots { display: none; }

@media (min-width: 900px) and (max-width: 1199px) {
  .gog-container { padding: 0 32px; }
  .gog-grid { column-gap: 32px; }
}
@media (max-width: 899px) {
  .gog-filterbar { padding: 20px 24px; }
  .gog-filterbar-title { font-size: 16px; margin-bottom: 12px; }
  .gog-filters { gap: 16px 28px; justify-content: flex-start; }
  .gog-main { padding: 40px 0; }
  .gog-container { padding: 0; max-width: 100%; }
  .gog-grid { display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; align-items: flex-start; }
  .gog-grid::-webkit-scrollbar { display: none; }
  .gog-card { flex: 0 0 100%; width: 100%; scroll-snap-align: start; padding: 24px 24px 32px; box-sizing: border-box; }
  .gog-card-date { font-size: 11px; }
  .gog-card-title { font-size: 16px; }
  .gog-card-text { font-size: 16px; }
  .gog-pagination { display: none; }
  .gog-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .gog-dot { width: 8px; height: 8px; border-radius: 50%; background: #ccc; border: none; padding: 0; cursor: pointer; transition: background .2s; }
  .gog-dot.active { background: var(--yellow); }
}

/* ════════════════════════════════════════════════════════════
   SINGOLO ARTICOLO (post)
════════════════════════════════════════════════════════════ */

/* Layout generale */
.art-main { flex: 1; padding-bottom: 80px; }

body.gima-single-article {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
body.gima-single-article #page.site {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
body.gima-single-article #content.site-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
body.gima-single-article .art-main {
  flex: 1;
}

/* ── Header articolo ───────────────────────────────────────── */
.art-header {
  padding: 48px 0 40px;

}
.art-category {
  display: inline-block; font-size: 11px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--yellow); margin-bottom: 16px;
}
.art-title {
  font-size: clamp(22px,2.4vw,36px); font-weight: 700;
  letter-spacing: 0.02em; text-transform: uppercase;
  color: var(--dark); line-height: 1.25; margin-bottom: 20px; max-width: 800px;
}
.art-date {
  font-size: 13px; font-weight: 600; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--dark); opacity: .55;
}

/* ── Hero: una immagine full width ─────────────────────────── */
.art-hero--single .art-featured-img { width: 100%; max-height: 520px; overflow: hidden; }
.art-hero--single .art-featured-img img { width: 100%; max-height: 520px; object-fit: cover; display: block; }

/* ── Hero: due immagini affiancate ──────────────────────────── */
.art-hero--dual .art-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: stretch;
}
.art-hero-cell {
  border-radius: 8px;
  overflow: hidden;
  background: #e8e8e8;
  aspect-ratio: 16 / 9;
}
.art-hero-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Fallback se .art-featured-img usato fuori da .art-hero--single */
.art-featured-img { width: 100%; max-height: 520px; overflow: hidden; }
.art-featured-img img { width: 100%; max-height: 520px; object-fit: cover; display: block; }

/* ── Corpo testo ──────────────────────────────────────────── */
.art-content {
  padding-top: 60px;
  padding-bottom: 60px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.art-body {
  max-width: var(--container-max);
  margin: 0 auto 40px;
  width: 100%;
}
/* Due colonne sul contenuto: Gutenberg avvolge in .wp-block-post-content */
.art-body > .wp-block-post-content,
.art-body > .entry-content {
  column-count: 2;
  column-gap: clamp(28px, 4vw, 56px);
  column-fill: balance;
}
/* Editor classico: paragrafi diretti sotto .art-body */
.art-body:not(:has(> .wp-block-post-content)):not(:has(> .entry-content)) {
  column-count: 2;
  column-gap: clamp(28px, 4vw, 56px);
  column-fill: balance;
}
.art-back-btn {
  display: inline-block;
  align-self: flex-start;
  width: auto;
  max-width: 100%;
}
.art-body p,
.art-body .wp-block-post-content p,
.art-body .entry-content p { font-size: clamp(16px,1.4vw,20px); line-height: 1.7; color: var(--dark); margin-bottom: 24px; }
.art-body p:last-child,
.art-body .wp-block-post-content p:last-child { margin-bottom: 0; }
.art-body h2,
.art-body h3,
.art-body h4,
.art-body .wp-block-post-content h2,
.art-body .wp-block-post-content h3,
.art-body .wp-block-post-content h4,
.art-body .entry-content h2,
.art-body .entry-content h3,
.art-body .entry-content h4 {
  font-size: clamp(18px,1.6vw,24px);
  font-weight: 700;
  color: var(--dark);
  margin: 32px 0 16px;
  column-span: all;
}
.art-body h3,
.art-body .wp-block-post-content h3,
.art-body .entry-content h3 { font-size: clamp(17px,1.5vw,22px); }
.art-body h4,
.art-body .wp-block-post-content h4,
.art-body .entry-content h4 { font-size: clamp(16px,1.4vw,20px); }
.art-body h2:first-child,
.art-body .wp-block-post-content h2:first-child { margin-top: 0; }
.art-body ul,
.art-body ol,
.art-body .wp-block-post-content ul,
.art-body .wp-block-post-content ol,
.art-body .entry-content ul,
.art-body .entry-content ol {
  padding-left: 24px;
  margin-bottom: 24px;
  column-span: all;
}
.art-body li,
.art-body .wp-block-post-content li,
.art-body .entry-content li { font-size: clamp(16px,1.4vw,20px); line-height: 1.7; color: var(--dark); margin-bottom: 8px; }
.art-body figure,
.art-body .wp-block-image,
.art-body .wp-block-gallery,
.art-body .wp-block-embed,
.art-body .wp-block-post-content figure,
.art-body .wp-block-post-content .wp-block-image,
.art-body .wp-block-post-content .wp-block-gallery,
.art-body .wp-block-post-content .wp-block-embed {
  column-span: all;
  max-width: 100%;
}

/* ── Galleria immagini (ACF) sotto al testo ───────────────── */
.art-gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 0; margin-bottom: 0; }
.art-gallery--extra { margin-top: 24px; }
.art-gallery-item { margin: 0; border-radius: 8px; overflow: hidden; aspect-ratio: 4/3; }
.art-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ── Articoli correlati ──────────────────────────────────── */
.art-related {
  background: #F5F3EE;
  padding: 60px 0 80px;
  margin-top: 40px;
  border-top: 1px solid rgba(29, 29, 27, 0.12);
}
.art-related-header { margin-bottom: 40px; }
.art-related-title {
  font-size: clamp(14px,1.2vw,17px); font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--dark);
}
.art-related-grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 24px;
  max-width: var(--container-max); margin: 0 auto; padding: 0 40px;
}
.art-related-card { display: flex; flex-direction: column; }
.art-related-img-wrap {
  display: block; width: 100%; aspect-ratio: 4/3;
  border-radius: 8px; overflow: hidden; margin-bottom: 16px;
  flex-shrink: 0; background: #E0DED8;
}
.art-related-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.art-related-img-wrap:hover img { transform: scale(1.04); }
.art-related-body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.art-related-cat {
  font-size: 11px; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--yellow);
}
.art-related-card-title {
  font-size: clamp(13px,1vw,15px); font-weight: 700;
  letter-spacing: 0.02em; color: var(--dark); line-height: 1.4;
}
.art-related-card-title a { color: inherit; text-decoration: none; }
.art-related-card-title a:hover { text-decoration: underline; }
.art-related-date {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--dark);
  opacity: 0.65;
  margin: 0;
  text-transform: lowercase;
}
.art-related-dots { display: none; }

/* ── Tablet 900–1200px ────────────────────────────────────── */
@media (min-width: 900px) and (max-width: 1199px) {
  .art-related-grid { grid-template-columns: repeat(3,1fr); }
  .art-gallery { grid-template-columns: repeat(2,1fr); }

  /* Normalizzazione card typography/spaziatura su tutti i template (no desktop) */
  .cell-heading,
  .man-cell-heading,
  .srv-cell-heading,
  .ric-cell-heading,
  .zta-col-title {
    font-size: clamp(17px, 1.65vw, 22px);
    margin-bottom: 20px;
    min-height: auto;
  }

  .cell-img,
  .man-cell-img,
  .srv-cell-img,
  .ric-cell-img,
  .zta-col-img,
  .gog-card-img,
  .art-related-img-wrap {
    margin-bottom: 22px;
  }

  .cell-list-label,
  .srv-cell-list-label,
  .gog-card-date,
  .art-related-cat {
    font-size: clamp(12px, 1.05vw, 14px);
  }

  .cell-subtitle,
  .cell-body,
  .cell-list,
  .man-cell-body,
  .srv-cell-subtitle,
  .srv-cell-body,
  .srv-cell-list,
  .ric-cell-body,
  .zta-feature-item h4,
  .zta-feature-item p,
  .zta-right-block h4,
  .zta-right-block p,
  .zta-dash-list li,
  .zta-check-list li,
  .stb-stab-card,
  .stb-stab-card address,
  .gog-card-text,
  .art-related-card-title {
    font-size: clamp(15px, 1.3vw, 18px);
  }

  .stb-stab-card h3,
  .gog-card-title {
    font-size: clamp(17px, 1.65vw, 22px);
    margin-bottom: 14px;
  }
}
/* ── Mobile ≤899px ────────────────────────────────────────── */
@media (max-width: 899px) {
  .art-main { padding-bottom: 0; }
  .art-header { padding: 28px 0 24px; }
  .art-title { font-size: 18px; margin-bottom: 16px; }
  .art-hero--single .art-featured-img { max-height: 260px; }
  .art-hero--single .art-featured-img img { max-height: 260px; }
  .art-hero--dual .art-hero-inner {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .art-featured-img { max-height: 260px; }
  .art-featured-img img { max-height: 260px; }
  .art-content { padding-top: 32px; padding-bottom: 40px; }
  .art-body > .wp-block-post-content,
  .art-body > .entry-content,
  .art-body:not(:has(> .wp-block-post-content)):not(:has(> .entry-content)) {
    column-count: 1;
    column-gap: 0;
  }
  .art-body { max-width: 100%; }
  .art-body h2,
  .art-body h3,
  .art-body h4,
  .art-body ul,
  .art-body ol,
  .art-body figure,
  .art-body .wp-block-image,
  .art-body .wp-block-gallery,
  .art-body .wp-block-embed,
  .art-body .wp-block-post-content h2,
  .art-body .wp-block-post-content h3,
  .art-body .wp-block-post-content h4,
  .art-body .wp-block-post-content ul,
  .art-body .wp-block-post-content ol,
  .art-body .wp-block-post-content figure,
  .art-body .wp-block-post-content .wp-block-image,
  .art-body .wp-block-post-content .wp-block-gallery,
  .art-body .wp-block-post-content .wp-block-embed {
    column-span: none;
  }
  .art-body p { font-size: 16px; }
  .art-body li { font-size: 16px; }
  .art-back-btn { margin-top: 8px; }
  .art-gallery { grid-template-columns: repeat(2,1fr); gap: 12px; }
  .art-related { padding: 40px 0 60px; }
  .art-related-grid {
    display: flex; overflow-x: auto; overflow-y: hidden; height: var(--gima-mobile-slider-height, auto); scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
    gap: 16px; padding: 0 24px; grid-template-columns: none; align-items: flex-start;
  }
  .art-related-grid::-webkit-scrollbar { display: none; }
  .art-related-card { flex: 0 0 calc(100% - 72px); scroll-snap-align: start; flex-shrink: 0; }
  .art-related-card-title { font-size: 13px; }
  .art-related-dots { display: flex; justify-content: center; gap: 8px; padding: 12px 0 24px; }
  .art-related-dot {
    width: 8px; height: 8px; border-radius: 50%; background: #ccc;
    border: none; padding: 0; cursor: pointer; transition: background .2s;
  }
  .art-related-dot.active { background: var(--yellow); }

  /* Normalizzazione card typography/spaziatura su tutti i template (no desktop) */
  .cell-heading,
  .man-cell-heading,
  .srv-cell-heading,
  .ric-cell-heading,
  .zta-col-title {
    font-size: 18px;
    margin-bottom: 16px;
    min-height: auto;
  }

  .cell-img,
  .man-cell-img,
  .srv-cell-img,
  .ric-cell-img,
  .zta-col-img,
  .gog-card-img,
  .art-related-img-wrap {
    margin-bottom: 18px;
  }

  .cell-list-label,
  .srv-cell-list-label,
  .gog-card-date,
  .art-related-cat {
    font-size: 12px;
  }

  .cell-subtitle,
  .cell-body,
  .cell-list,
  .man-cell-body,
  .srv-cell-subtitle,
  .srv-cell-body,
  .srv-cell-list,
  .ric-cell-body,
  .zta-feature-item h4,
  .zta-feature-item p,
  .zta-right-block h4,
  .zta-right-block p,
  .zta-dash-list li,
  .zta-check-list li,
  .stb-stab-card,
  .stb-stab-card address,
  .gog-card-text,
  .art-related-card-title {
    font-size: 16px;
  }

  .stb-stab-card h3,
  .gog-card-title {
    font-size: 18px;
    margin-bottom: 12px;
  }
}


/* ════════════════════════════════════════════════════════════
   PAGINE STATICHE STANDARD
════════════════════════════════════════════════════════════ */
.gima-static-main {
  min-height: calc(100vh - var(--navbar-height));
  padding: 0 0 clamp(64px, 8vw, 120px);
  background: #fff;
}

body.gima-static-page .gima-navbar {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}

.gima-static-content {
  width: min(100%, 980px);
  margin: 0 auto;
  padding-top: calc(var(--navbar-height) + clamp(36px, 5vw, 72px));
}

.gima-static-article {
  color: var(--dark);
}

.gima-static-thumbnail {
  margin-bottom: clamp(32px, 4vw, 56px);
  overflow: hidden;
  border-radius: 2px;
}

.gima-static-thumbnail img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.gima-static-header {
  margin-bottom: clamp(28px, 4vw, 48px);
}

.gima-static-title {
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.8px;
  color: var(--dark);
  text-transform: uppercase;
}

.gima-static-body {
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.75;
  letter-spacing: -0.2px;
  color: var(--text);
}

.gima-static-body > * {
  margin-bottom: 24px;
}

.gima-static-body > *:last-child {
  margin-bottom: 0;
}

.gima-static-body h2,
.gima-static-body h3,
.gima-static-body h4 {
  margin-top: clamp(36px, 5vw, 64px);
  margin-bottom: 18px;
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.6px;
  color: var(--dark);
}

.gima-static-body h2 { font-size: clamp(25px, 2.4vw, 36px); }
.gima-static-body h3 { font-size: clamp(22px, 2vw, 30px); }
.gima-static-body h4 { font-size: clamp(19px, 1.6vw, 24px); }

.gima-static-body a {
  color: var(--dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.gima-static-body ul,
.gima-static-body ol {
  padding-left: 1.4em;
}

.gima-static-body li {
  margin-bottom: 8px;
}

.gima-static-body .wp-block-image,
.gima-static-body figure {
  margin: clamp(32px, 5vw, 56px) 0;
}

.gima-static-body .wp-block-image img,
.gima-static-body figure img {
  width: 100%;
  height: auto;
}

.gima-static-footer {
  margin-top: 40px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.gima-static-footer a {
  color: var(--dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (min-width: 900px) and (max-width: 1199px) {
  .gima-static-main {
    padding-bottom: 80px;
  }

  .gima-static-content {
    width: min(100%, 860px);
    padding-top: calc(var(--navbar-height) + 64px);
  }
}

@media (max-width: 899px) {
  .gima-static-main {
    padding-bottom: 64px;
  }

  .gima-static-content {
    padding-top: calc(var(--navbar-height) + 32px);
  }

  .gima-static-title {
    font-size: clamp(25px, 7vw, 32px);
    letter-spacing: -0.6px;
  }

  .gima-static-body {
    font-size: 16px;
    line-height: 1.7;
  }
}


/* ════════════════════════════════════════════════════════════
   HERO SYSTEM CENTRALIZZATO (home + gruppo + man)
════════════════════════════════════════════════════════════ */
.gima-hero-container {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  padding: 40px;
}

.gima-hero-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.gima-hero-logo {
  width: 162px;
  max-width: 100%;
  height: auto;
}

.gima-hero-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.gima-hero-content h1 {
  font-size: clamp(31px, 3vw, 45px);
  font-weight: 600;
  line-height: calc(0.98em + 3px);
  letter-spacing: -0.6px;
  color: #fff;
  text-transform: uppercase;
  margin-bottom: 24px;
  text-shadow: 0 3px 10px rgba(0,0,0,.55);
}

.gima-hero-content p {
  font-size: clamp(16px, 1.25vw, 20px);
  font-weight: 500;
  line-height: calc(1.34em + 3px);
  letter-spacing: -0.6px;
  color: rgba(255,255,255,.85);
  margin-bottom: 22px;
  text-shadow: 0 3px 10px rgba(0,0,0,.55);
}

.gima-hero-content .btn {
  border: 1px solid #fff;
  border-radius: 3px;
}

/* Fino a laptop 13" compreso: evita a-capo forzati nelle hero. */
@media (max-width: 1399px) {
  .gima-hero-content h1 br,
  .gima-hero-content p br {
    display: none;
  }
}

@media (min-width: 1400px) {
  .gima-hero { height: 951px; }
  .home-hero .gima-hero-container {
    max-width: 1320px;
    width: 100%;
    margin: 0 auto;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 900px) and (max-width: 1400px) {
  .gima-hero-logo {
    transform: translateY(30px);
  }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .gima-hero { height: clamp(620px, 74vh, 760px); }

  .home-hero { margin-bottom: 56px; }

  .gima-hero-container { padding: 30px 28px; }

  .gima-hero-logo {
    width: 136px;
    transform: translateY(30px);
  }

  .gima-hero-content h1 {
    font-size: clamp(27px, 2.7vw, 39px);
    line-height: calc(1.04em + 4px);
    margin-bottom: 18px;
    max-width: 26ch;
  }

  .gima-hero-content p {
    font-size: clamp(17px, 1.65vw, 22px);
    line-height: calc(1.42em + 4px);
    margin-bottom: 18px;
    max-width: 46ch;
  }

  .gima-hero-content .btn { font-size: 14px; line-height: 24px; padding: 5px 14px; }
}

@media (min-width: 900px) and (max-width: 1199px) {
  .gima-hero { height: 620px; }

  .home-hero { margin-bottom: 44px; }

  .gima-hero-container { padding: 24px; }

  .gima-hero-logo {
    width: 118px;
    transform: translateY(30px);
  }

  .gima-hero-content h1 {
    font-size: clamp(24px, 2.6vw, 34px);
    line-height: calc(1.09em + 4px);
    margin-bottom: 14px;
    max-width: 30ch;
  }

  .gima-hero-content p {
    font-size: clamp(16px, 1.4vw, 19px);
    line-height: calc(1.4em + 4px);
    margin-bottom: 20px;
    max-width: 46ch;
  }

  .gima-hero-content .btn { font-size: 13px; line-height: 22px; padding: 4px 12px; }
}

@media (max-width: 899px) {
  .gima-hero {
    height: 100svh;
    max-height: none;
  }

  .home-hero { margin-bottom: 36px; }

  .gima-hero-container { padding: 24px; }

  .gima-hero-logo { width: 100px; }

  .gima-hero-content h1 {
    font-size: clamp(27px, 5.4vw, 31px);
    line-height: calc(1.02em + 2px);
    margin-bottom: 14px;
  }

  .gima-hero-content p {
    font-size: clamp(14px, 2.6vw, 16px);
    line-height: calc(1.32em + 2px);
    margin-bottom: 18px;
  }
}


