/* PARTNERS – layout assoluto pixel-perfect (XD 1920×2831), sfondo fisso allo scroll */

.page--partners {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: #fff;
}

/* Watermark BIG fisso durante lo scroll (XD Raggruppa_1687, opacity 0.03) */
.partners-watermark {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  user-select: none;
  overflow: hidden;
}

.partners-watermark__graphic {
  position: absolute;
  left: -1000.468px;
  top: -945.098px;
  width: 3920.937px;
  height: auto;
  opacity: 0.03;
}

.partners-canvas {
  position: relative;
  z-index: 1;
  width: 100%;
  --partners-nav-gap: 24px;
  margin-top: calc(-1 * var(--nav-height) + var(--partners-nav-gap));
}

.partners-canvas__inner {
  --partners-gray: #e3e3e3;
  --partners-xd-origin: 360px;
  --partners-xd-width: 1201px;
  --partners-canvas-height: 3271px;
  --partners-inset-x: var(--content-margin-left);
  --partners-content-w: var(--content-column-width);
  --partners-xd-scale: calc(var(--partners-content-w) / var(--partners-xd-width));
  /* Larghezze XD scalate come Programma (891×1130/1201 ≈ 837px @1920) */
  --partners-box-w: calc(891px * var(--partners-xd-scale));
  --partners-logo-row-w-4: calc(1199px * var(--partners-xd-scale));
  --partners-box-pad-x: calc(37px * var(--partners-xd-scale));
  --partners-body-w: calc(821px * var(--partners-xd-scale));
  --partners-logo-frame-w: calc(275px * var(--partners-xd-scale));
  --partners-logo-frame-h: calc(156px * var(--partners-xd-scale));
  --partners-logo-gap: calc(33px * var(--partners-xd-scale));
  --partners-logo-img-w: calc(205px * var(--partners-xd-scale));
  --partners-logo-img-h: calc(97px * var(--partners-xd-scale));
  --partners-body-lh: 23px;

  position: relative;
  width: var(--page-width);
  height: var(--partners-canvas-height);
  margin-inline: auto;
}

/* ── Titolo + rule (XD 358.97 / 190) ── */
.partners-title-wrap {
  position: absolute;
  left: calc(var(--partners-inset-x) + (358.97px - var(--partners-xd-origin)) * var(--partners-content-w) / var(--partners-xd-width));
  top: 190px;
  font-size: 100px;
  transform: translateY(-1em);
  --hero-date-rule-overhang: 10px;
  z-index: 2;
}

.partners-title-wrap .hero-date__row {
  align-items: flex-start;
}

.partners-title {
  margin: 0;
  font-size: inherit;
  font-weight: 500;
  font-variation-settings: 'wght' 500;
  font-synthesis: none;
  line-height: 1;
  letter-spacing: 0;
  color: var(--black);
}

/* ── Blocchi testo comuni ── */
.partners-block__label {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  font-variation-settings: 'wght' 700;
  font-synthesis: none;
  line-height: 1;
  letter-spacing: 0;
  color: var(--black);
}

.partners-block__name {
  margin: 0;
  font-size: 48px;
  font-weight: 500;
  font-variation-settings: 'wght' 500;
  font-synthesis: none;
  line-height: 1;
  letter-spacing: 0;
  color: var(--black);
}

.partners-block__body {
  margin: 0;
  font-size: 27px;
  font-weight: 400;
  font-variation-settings: 'wght' 400;
  font-synthesis: none;
  line-height: var(--partners-body-lh);
  letter-spacing: 0;
  color: var(--black);
}

.partners-block__line {
  display: block;
}

/* ── Promosso da (box grigio) ── */
.partners-promosso {
  position: absolute;
  left: calc(var(--partners-inset-x) + (360px - var(--partners-xd-origin)) * var(--partners-content-w) / var(--partners-xd-width));
  top: 272px;
  width: var(--partners-box-w);
  min-height: 316px;
  height: auto;
  background: var(--partners-gray);
  box-sizing: border-box;
}

.partners-promosso__label {
  position: absolute;
  left: var(--partners-box-pad-x);
  top: 31px;
}

.partners-promosso__name {
  position: absolute;
  left: var(--partners-box-pad-x);
  top: 63px;
}

.partners-promosso__body {
  position: absolute;
  left: var(--partners-box-pad-x);
  top: 143px;
  width: var(--partners-body-w);
}

/* EN: same font size as IT for consistency */
body[data-big-locale="en"] .partners-promosso .partners-block__body {
  font-size: 27px;
  line-height: var(--partners-body-lh);
}

/* ── Main Partner (box bianco bordo) + Main Partner tecnico ── */
.partners-main {
  position: absolute;
  left: calc(var(--partners-inset-x) + (360px - var(--partners-xd-origin)) * var(--partners-content-w) / var(--partners-xd-width));
  top: 1026px;
  width: var(--partners-box-w);
  min-height: 320px;
  height: auto;
  box-sizing: border-box;
  border: 0.75px solid var(--black);
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 35px var(--partners-box-pad-x) 48px;
}

.partners-main__label,
.partners-main__name,
.partners-main__body {
  position: static;
  left: auto;
  top: auto;
}

.partners-main__label {
  margin: 0 0 14px;
}

.partners-main__name {
  margin: 0 0 32px;
}

.partners-main__body {
  width: var(--partners-body-w);
  max-width: 100%;
}

.partners-main__name:empty,
.partners-main__body:empty {
  display: none;
}

/* ── Sezioni patrocinio (altezza auto + wrap a 4 colonne) ── */
.partners-patrocinio {
  position: absolute;
  left: calc(var(--partners-inset-x) + (360px - var(--partners-xd-origin)) * var(--partners-content-w) / var(--partners-xd-width));
  width: var(--partners-logo-row-w-4);
  height: auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 42px;
  box-sizing: border-box;
}

.partners-patrocinio.is-empty {
  display: none;
}

.partners-patrocinio__label {
  position: static;
  left: auto;
  margin: 0;
}

.partners-patrocinio__logos {
  position: static;
  left: auto;
  top: auto;
  width: 100%;
  height: auto;
  display: flex;
  flex-wrap: wrap;
  gap: var(--partners-logo-gap);
  row-gap: var(--partners-logo-gap);
}

.partners-patrocinio--1 .partners-patrocinio__logos {
  width: 100%;
}

.partners-logo-slot {
  flex: 0 0 var(--partners-logo-frame-w);
  width: var(--partners-logo-frame-w);
  height: var(--partners-logo-frame-h);
  box-sizing: border-box;
  border: 0.75px solid var(--black);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.partners-logo-slot__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.partners-logo-slot img {
  display: block;
  width: var(--partners-logo-img-w);
  height: var(--partners-logo-img-h);
  object-fit: contain;
}

/* Fallback tops (JS ricalcola in base all’altezza reale) */
.partners-patrocinio--1 { top: 708px; }
.partners-patrocinio--2 { top: 1466px; }
.partners-patrocinio--tech { top: 1980px; }
.partners-patrocinio--3 { top: 2224px; }
.partners-patrocinio--4 { top: 2542px; }
.partners-patrocinio--5 { top: 2860px; }

/* ── Desktop 1025–1919 ── */
@media (min-width: 1025px) and (max-width: 1919px) {
  .partners-canvas {
    position: relative;
    overflow: visible;
    height: calc(var(--partners-canvas-height) * var(--canvas-scale-down));
  }

  .partners-canvas__inner {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%) scale(var(--canvas-scale-down));
    transform-origin: top center;
  }
}

/* ── Desktop ≥1920 ── */
@media (min-width: 1920px) {
  .partners-canvas {
    margin-top: calc(-1 * var(--nav-height) * var(--stage-scale) + var(--partners-nav-gap));
    position: relative;
    overflow: visible;
    height: calc(var(--partners-canvas-height) * var(--stage-scale));
  }

  .partners-canvas__inner {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%) scale(var(--stage-scale));
    transform-origin: top center;
  }
}

/* ── Mobile / tablet (≤1024px) ── */
@media (max-width: 1024px) {
  .page--partners {
    overflow-x: hidden;
  }

  .partners-watermark {
    display: none;
  }

  .partners-canvas {
    margin-top: 0;
    overflow: visible;
  }

  .partners-canvas__inner {
    width: 100%;
    height: auto;
    min-height: 0;
    padding: clamp(24px, 5vw, 40px) var(--gutter) clamp(48px, 8vw, 72px);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .partners-area--title,
  .partners-title-wrap {
    position: static;
    transform: none;
    font-size: clamp(48px, 12vw, 80px);
    margin: 0 0 clamp(24px, 5vw, 40px);
    --hero-date-rule-overhang: 7px;
  }

  .partners-title-wrap .hero-date__row {
    flex-wrap: wrap;
  }

  .partners-promosso,
  .partners-main,
  .partners-patrocinio {
    position: static;
    top: auto !important;
    left: auto;
    right: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0 0 clamp(32px, 6vw, 48px);
    box-sizing: border-box;
  }


  .partners-promosso {
    padding: clamp(18px, 4vw, 24px) clamp(16px, 3.5vw, 20px) clamp(22px, 4vw, 28px);
    background: var(--partners-gray);
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .partners-promosso__label,
  .partners-promosso__name,
  .partners-promosso__body,
  .partners-main__label,
  .partners-main__name,
  .partners-main__body,
  .partners-patrocinio__label {
    position: static;
    top: auto !important;
    left: auto !important;
    width: auto;
    max-width: 100%;
    transform: none;
    margin: 0;
  }

  .partners-promosso__name,
  .partners-main__name {
    font-size: clamp(28px, 7vw, 48px);
    line-height: 1.1;
  }

  .partners-block__body,
  .partners-promosso__body,
  .partners-main__body {
    font-size: clamp(15px, 3.8vw, 20px);
    line-height: 1.15;
    width: 100%;
    max-width: 100%;
    text-wrap: pretty;
  }

  .partners-block__line {
    display: inline;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .partners-block__line:not(:last-child)::after {
    content: ' ';
  }

  .partners-main {
    padding: clamp(18px, 4vw, 24px) clamp(16px, 3.5vw, 20px) clamp(22px, 4vw, 28px);
    border: 0.75px solid var(--black);
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .partners-patrocinio {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 3vw, 16px);
  }

  .partners-patrocinio__label {
    font-size: clamp(14px, 3.5vw, 18px);
    margin: 0;
  }

  .partners-patrocinio__logos {
    position: static;
    top: auto !important;
    left: auto !important;
    width: 100%;
    height: auto;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(10px, 2.5vw, 20px);
  }

  .partners-patrocinio--1 .partners-patrocinio__logos {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
  }

  .partners-patrocinio.is-empty {
    display: none;
  }

  .partners-logo-slot {
    position: static;
    flex: none;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 275 / 156;
    padding: clamp(8px, 2vw, 14px);
    box-sizing: border-box;
  }

  .partners-logo-slot img {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }
}

/* Smartphone: griglia logo 2 colonne */
@media (max-width: 600px) {
  .partners-patrocinio__logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .partners-patrocinio--1 .partners-patrocinio__logos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


