/* =========================================================================
   Metzger a Terra Madre — tema della pagina evento.
   Richiama l'identità di Terra Madre Salone del Gusto 2026: il mosaico di
   tessere, i verdi, la terra e il giallo, i titoli larghi e pesanti. Solo
   colori e ritmo: nessun logo di Slow Food o di Terra Madre, che si usano
   solo con il kit ufficiale degli eventi OFF.
   Si applica sopra styles.css con <body class="tema-tm">.
   ========================================================================= */

.tema-tm {
  --tm-verde-scuro: #005529;
  --tm-verde: #007f3a;
  --tm-verde-chiaro: #d0e2aa;
  --tm-crema: #fffaee;
  --tm-giallo: #fff4cc;
  --tm-terra: #e99264;
  --tm-terra-scuro: #b4502a;
  --tm-bruno: #3f3127;
  --tm-rosso: #e42312;
  --tm-largo: 'Archivo', 'Arial Black', system-ui, sans-serif;

  background: var(--tm-crema);
}

.tema-tm .topbar {
  background: var(--tm-verde-scuro);
  color: var(--tm-crema);
}

.tema-tm .topbar b {
  color: var(--tm-giallo);
}

.tema-tm .testa {
  background: rgba(255, 250, 238, 0.94);
}

.tema-tm .kicker {
  color: var(--tm-verde);
}

/* Titoli larghi e pesanti, come la testata di Terra Madre. */
.tema-tm .sezione__testa h2,
.tm-banda h2 {
  font-family: var(--tm-largo);
  font-weight: 900;
  font-stretch: 118%;
  font-variation-settings: 'wdth' 118;
  font-size: clamp(2rem, 4.6vw, 3.2rem);
  line-height: 0.98;
  letter-spacing: -0.01em;
  color: var(--tm-verde-scuro);
}

/* ---------------------------------------------------------------- hero */

.tm-hero {
  padding: 52px 0 68px;
  border-bottom: var(--bordo);
  background: var(--tm-crema);
}

.tm-hero__interno {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 52px;
  align-items: center;
}

.tm-kicker {
  margin: 0 0 16px;
  font-family: var(--display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tm-verde);
}

.tm-hero h1,
.tm-titolo {
  margin: 0 0 14px;
  font-family: var(--tm-largo);
  font-weight: 900;
  font-stretch: 125%;
  font-variation-settings: 'wdth' 125;
  font-size: clamp(2.5rem, 6.4vw, 5.2rem);
  line-height: 0.9;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  color: var(--tm-verde-scuro);
}

.tm-hero h1 span,
.tm-titolo span {
  display: block;
  color: var(--tm-rosso);
}

.tm-hero h1 sup,
.tm-titolo sup {
  font-size: 0.32em;
  vertical-align: super;
  letter-spacing: 0;
}

.tm-claim {
  margin: 0 0 20px;
  font-family: var(--display);
  font-weight: 700;
  font-size: 1.45rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tm-bruno);
}

.tm-hero__lead {
  max-width: 36em;
  margin: 0 0 22px;
  font-size: 1.1rem;
}

.tm-date {
  display: grid;
  gap: 10px;
  margin: 0 0 26px;
  padding: 0;
  list-style: none;
}

.tm-date li {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 14px;
  align-items: baseline;
  padding: 10px 16px;
  background: #fff;
  border: var(--bordo);
  border-radius: 12px;
}

.tm-date b {
  font-family: var(--tm-largo);
  font-weight: 800;
  font-stretch: 112%;
  font-variation-settings: 'wdth' 112;
  text-transform: uppercase;
  color: var(--tm-verde-scuro);
}

.tm-date span {
  color: var(--grigio);
}

/* Mosaico di tessere: il main visual di Terra Madre è una griglia di foto;
   qui la griglia è fatta di colori e icone. */
.mosaico {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  aspect-ratio: 1;
  border: var(--bordo);
  border-radius: var(--r);
  overflow: hidden;
  box-shadow: 8px 8px 0 var(--tm-verde-scuro);
}

.tessera {
  display: grid;
  place-items: center;
  padding: 20%;
  min-width: 0;
}

.tessera svg {
  width: 100%;
  height: 100%;
}

.tessera--chiaro {
  background: var(--tm-verde-chiaro);
  color: var(--tm-verde-scuro);
}

.tessera--terra {
  background: var(--tm-terra);
  color: var(--tm-bruno);
}

.tessera--scuro {
  background: var(--tm-verde-scuro);
  padding: 16%;
}

.tessera--scuro img {
  width: 100%;
  height: auto;
}

.tessera--giallo {
  background: var(--tm-giallo);
  color: var(--tm-verde);
}

.tessera--rosso {
  background: var(--tm-rosso);
  color: #fff;
  padding: 8%;
}

.tessera--verde {
  background: var(--tm-verde);
  color: var(--tm-crema);
}

.tessera--bruno {
  background: var(--tm-bruno);
  color: var(--tm-crema);
  padding: 8%;
}

.tessera--terra-scuro {
  background: var(--tm-terra-scuro);
  color: #fff;
  padding: 8%;
}

.tessera__off,
.tessera__data {
  font-family: var(--tm-largo);
  font-weight: 900;
  font-stretch: 125%;
  font-variation-settings: 'wdth' 125;
  line-height: 0.9;
  text-align: center;
}

.tessera__off {
  font-size: clamp(1.7rem, 4.4vw, 3.2rem);
}

.tessera__data {
  font-size: clamp(2.1rem, 5.4vw, 3.9rem);
}

.tessera__data small {
  display: block;
  margin-top: 4px;
  font-family: var(--display);
  font-size: 0.34em;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------- prenota */

.tm-prenota {
  background: var(--tm-crema);
}

.tema-tm .box {
  box-shadow: 6px 6px 0 var(--tm-verde-scuro);
}

.tema-tm .box__data {
  background: var(--tm-verde-scuro);
  color: var(--tm-crema);
}

.tema-tm .box:nth-child(2n) .box__data {
  background: var(--tm-terra-scuro);
}

.tema-tm .box--ko .box__data,
.tema-tm .box--off .box__data {
  background: var(--grigio);
}

.tema-tm .box__data b,
.tema-tm .box h3 {
  font-family: var(--tm-largo);
  font-stretch: 112%;
  font-variation-settings: 'wdth' 112;
  font-weight: 900;
}

.tema-tm .box h3 {
  font-size: 1.55rem;
  color: var(--tm-verde-scuro);
}

.tema-tm .box__kicker {
  color: var(--tm-verde);
}

.tema-tm .contatore span {
  background: var(--tm-verde);
}

.tema-tm .box--warn .contatore span {
  background: var(--tm-terra-scuro);
}

/* ----------------------------------------------------------- banda verde */

.tm-banda {
  background: var(--tm-verde-scuro);
  color: var(--tm-crema);
}

.tm-banda__interno {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 44px;
  align-items: center;
}

.tm-banda .kicker {
  color: var(--tm-verde-chiaro);
}

.tm-banda h2 {
  margin: 0 0 16px;
  color: var(--tm-crema);
}

.tm-banda p {
  max-width: 38em;
  margin: 0 0 22px;
  color: #dfe9cf;
}

.tm-banda .btn--linea {
  color: var(--tm-crema);
  border-color: var(--tm-crema);
}

/* Sul verde il rollover standard (fondo chiaro) renderebbe invisibile il
   testo crema: qui il bottone si riempie di crema e il testo diventa verde. */
.tm-banda .btn--linea:hover:not(:disabled),
.tm-banda .btn--linea:focus-visible {
  background: var(--tm-crema);
  color: var(--tm-verde-scuro);
}

.tm-fatti {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tm-fatti li {
  display: flex;
  gap: 16px;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 250, 238, 0.22);
}

.tm-fatti b {
  min-width: 3.4em;
  font-family: var(--tm-largo);
  font-weight: 900;
  font-stretch: 118%;
  font-variation-settings: 'wdth' 118;
  font-size: 1.9rem;
  white-space: nowrap;
  color: var(--tm-giallo);
}

/* ------------------------------------------------------------ info e fine */

.tema-tm .dove {
  box-shadow: 5px 5px 0 var(--tm-verde-scuro);
}

.tema-tm .dove h3 {
  font-size: 1.6rem;
}

.tm-prossimo {
  background: var(--tm-verde-chiaro);
}

@media (max-width: 900px) {
  .tm-hero__interno,
  .tm-banda__interno {
    grid-template-columns: 1fr;
  }

  .tm-hero {
    padding: 34px 0 48px;
  }

  .mosaico {
    width: 100%;
    max-width: 480px;
  }
}
