.convenzioni-body {
  --partners-line: rgba(255, 255, 255, 0.14);
  --partners-muted: rgba(255, 255, 255, 0.62);
  background:
    radial-gradient(circle at 82% 14%, rgba(63, 173, 255, 0.12), transparent 28rem),
    var(--navy-deep);
}

.convenzioni-shell {
  width: min(1160px, calc(100% - 64px));
  margin-inline: auto;
}

.convenzioni-hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: center;
  overflow: hidden;
  border-bottom: 1px solid var(--partners-line);
  isolation: isolate;
}

.convenzioni-hero::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 38%;
  z-index: -1;
  background: linear-gradient(180deg, transparent, var(--navy-deep));
  pointer-events: none;
}

.convenzioni-hero__ship {
  position: absolute;
  z-index: -2;
  top: -24%;
  right: -8%;
  width: min(68vw, 920px);
  opacity: 0.27;
  pointer-events: none;
  will-change: transform;
}

.convenzioni-hero__ship img { width: 100%; }

.convenzioni-hero__inner {
  padding-block: clamp(48px, 8vh, 88px);
}

.convenzioni-brand {
  display: inline-block;
  margin-bottom: clamp(64px, 10vh, 118px);
  opacity: 0.78;
  transition: opacity 0.25s ease;
}

.convenzioni-brand:hover { opacity: 1; }
.convenzioni-brand img { width: 190px; height: auto; }

.convenzioni-eyebrow,
.convenzioni-section-label,
.venue__type,
.venue__availability {
  font-family: var(--font-corpo);
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.convenzioni-eyebrow {
  margin-bottom: 18px;
  color: var(--cyan);
  font-size: clamp(0.68rem, 0.85vw, 0.78rem);
}

.convenzioni-hero h1 {
  max-width: 960px;
  font-family: var(--font-titolo);
  font-size: clamp(4.2rem, 11vw, 10.5rem);
  font-weight: 900;
  line-height: 0.72;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.convenzioni-hero h1 span {
  color: transparent;
  -webkit-text-stroke: 1.5px var(--pink);
  text-stroke: 1.5px var(--pink);
}

.convenzioni-hero__lead {
  max-width: 590px;
  margin-top: clamp(34px, 5vw, 58px);
  color: var(--partners-muted);
  font-size: clamp(1.08rem, 1.7vw, 1.4rem);
  line-height: 1.5;
}

.convenzioni-scroll {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  margin-top: 34px;
  color: var(--white-40);
  font-family: var(--font-corpo);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 0.25s ease;
}

.convenzioni-scroll:hover { color: var(--cyan); }

.convenzioni-brand:focus-visible,
.convenzioni-scroll:focus-visible,
.venue__button:focus-visible,
.venue__link:focus-visible,
.convenzioni-footer a:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 5px;
}

.convenzioni-main { overflow: hidden; }

.convenzioni-intro {
  display: grid;
  grid-template-columns: 0.7fr 1.5fr 1fr;
  gap: clamp(28px, 5vw, 72px);
  align-items: end;
  padding-block: clamp(110px, 15vw, 190px);
}

.convenzioni-section-label {
  align-self: start;
  color: var(--pink);
  font-size: 0.7rem;
}

.convenzioni-intro h2,
.convenzioni-note h2 {
  font-family: var(--font-titolo);
  font-weight: 700;
  font-size: clamp(2.8rem, 5.8vw, 5.7rem);
  line-height: 0.82;
  text-transform: uppercase;
}

.convenzioni-intro > p:last-child,
.convenzioni-note > p:not(.convenzioni-section-label) {
  color: var(--partners-muted);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.6;
}

.venues {
  border-top: 1px solid var(--partners-line);
}

.venue {
  position: relative;
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(440px, 1.1fr);
  gap: clamp(50px, 9vw, 132px);
  align-items: center;
  width: min(1160px, calc(100% - 64px));
  min-height: 780px;
  margin-inline: auto;
  padding-block: clamp(96px, 13vw, 168px);
  border-bottom: 1px solid var(--partners-line);
}

.venue--reverse .venue__media { order: 2; }
.venue--reverse .venue__content { order: 1; }

.venue__number {
  position: absolute;
  top: 28px;
  left: 0;
  color: rgba(255, 255, 255, 0.14);
  font-family: var(--font-titolo);
  font-size: clamp(2.2rem, 4vw, 4.3rem);
  font-weight: 700;
  line-height: 1;
}

.venue--reverse .venue__number { right: 0; left: auto; }

.venue__media { position: relative; }

.venue__logo-shell {
  position: relative;
  aspect-ratio: 1 / 0.76;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #050505;
}

.venue__logo-shell::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.14);
  pointer-events: none;
}

.venue__logo-shell img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.7s cubic-bezier(.2, .75, .2, 1), filter 0.5s ease;
}

.venue--veliero .venue__logo-shell { background: #efefed; }
.venue:hover .venue__logo-shell img { transform: scale(1.035); filter: saturate(1.08); }

.venue__availability {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  margin-top: 18px;
  color: var(--cyan);
  font-size: 0.68rem;
}

.venue__availability span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--pink);
  box-shadow: 0 0 16px rgba(255, 16, 83, 0.75);
}

.venue__type {
  margin-bottom: 18px;
  color: var(--cyan);
  font-size: 0.68rem;
  line-height: 1.6;
}

.venue__content h2 {
  font-family: var(--font-titolo);
  font-size: clamp(3.6rem, 7.5vw, 7.4rem);
  font-weight: 900;
  line-height: 0.75;
  text-transform: uppercase;
}

.venue__description {
  max-width: 560px;
  margin-top: 32px;
  color: var(--partners-muted);
  font-size: clamp(1rem, 1.35vw, 1.17rem);
  line-height: 1.58;
}

.venue__offers {
  margin-top: 42px;
  list-style: none;
  border-top: 1px solid var(--partners-line);
}

.venue__offers li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 20px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--partners-line);
}

.venue__offers span { color: var(--white); font-size: clamp(0.95rem, 1.2vw, 1.1rem); }
.venue__offers strong { color: var(--white); font-family: var(--font-titolo); font-size: clamp(1.55rem, 2.7vw, 2.5rem); line-height: 0.8; }
.venue__offers small { grid-column: 1; color: var(--white-40); font-family: var(--font-corpo); font-size: 0.64rem; letter-spacing: 0.08em; text-transform: uppercase; }

.venue__offer--single {
  display: flex;
  align-items: flex-end;
  gap: 24px;
  margin-top: 48px;
  padding-block: 24px;
  border-top: 1px solid var(--partners-line);
  border-bottom: 1px solid var(--partners-line);
}

.venue__offer-value {
  color: var(--pink);
  font-family: var(--font-titolo);
  font-size: clamp(4rem, 8vw, 7rem);
  font-weight: 900;
  line-height: 0.7;
}

.venue__offer-copy {
  max-width: 130px;
  color: var(--white-60);
  font-family: var(--font-corpo);
  font-size: 0.7rem;
  line-height: 1.45;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.venue__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
  align-items: center;
  margin-top: 38px;
}

.venue__button {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 13px 24px;
  border: 1.5px solid var(--pink);
  border-radius: 999px;
  color: var(--white);
  font-family: var(--font-titolo);
  font-size: 0.96rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  transition: background 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
}

.venue__button:hover {
  background: var(--pink);
  box-shadow: 0 0 30px rgba(255, 16, 83, 0.26);
  transform: translateY(-2px);
}

.venue__link {
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(102, 199, 244, 0.4);
  color: var(--cyan);
  font-family: var(--font-corpo);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.venue__link:hover { color: var(--white); border-color: var(--white); }

.convenzioni-note {
  display: grid;
  grid-template-columns: 0.65fr 1.3fr 1fr;
  gap: clamp(28px, 5vw, 72px);
  align-items: start;
  padding-block: clamp(110px, 15vw, 190px);
}

.convenzioni-note .venue__button {
  grid-column: 2;
  justify-self: start;
  margin-top: 12px;
}

.convenzioni-footer { background: rgba(0, 0, 0, 0.12); }

@media (max-width: 900px) {
  .convenzioni-intro,
  .convenzioni-note {
    grid-template-columns: 1fr 1.7fr;
  }
  .convenzioni-intro > p:last-child,
  .convenzioni-note > p:not(.convenzioni-section-label) { grid-column: 2; }
  .convenzioni-note .venue__button { grid-column: 2; }

  .venue,
  .venue--reverse {
    grid-template-columns: 1fr;
    gap: 52px;
    min-height: auto;
  }
  .venue--reverse .venue__media,
  .venue--reverse .venue__content { order: initial; }
  .venue__media { width: min(620px, 100%); }
  .venue__number,
  .venue--reverse .venue__number { right: 0; left: auto; }
}

@media (max-width: 640px) {
  .convenzioni-shell,
  .venue { width: min(100% - 32px, 1160px); }
  .convenzioni-hero__ship { top: -2%; right: -44%; width: 130vw; opacity: 0.24; }
  .convenzioni-brand { margin-bottom: 72px; }
  .convenzioni-brand img { width: 158px; }
  .convenzioni-hero h1 { font-size: clamp(3.7rem, 19vw, 5.7rem); line-height: 0.75; }
  .convenzioni-hero__lead { font-size: 1rem; }

  .convenzioni-intro,
  .convenzioni-note { grid-template-columns: 1fr; gap: 24px; }
  .convenzioni-intro > p:last-child,
  .convenzioni-note > p:not(.convenzioni-section-label),
  .convenzioni-note .venue__button { grid-column: 1; }
  .convenzioni-section-label { margin-bottom: 20px; }

  .venue { padding-block: 104px; }
  .venue__logo-shell { aspect-ratio: 1 / 0.72; }
  .venue__content h2 { font-size: clamp(3.4rem, 18vw, 5.2rem); }
  .venue__offers li { grid-template-columns: minmax(0, 1fr) auto; }
  .venue__offers span { line-height: 1.35; }
  .venue__actions { align-items: stretch; }
  .venue__button { width: 100%; }
  .venue__link { margin: 8px auto 0; }
  .venue__offer--single { align-items: center; }
  .convenzioni-note .venue__button { justify-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .venue__logo-shell img,
  .venue__button { transition: none; }
}
