/* Sistema comune dei modelli pagina
   - home: pagina di ingresso
   - operational: informazioni, contatti e documenti
   - editorial: territorio, sostenibilità e partnership
*/

.page-model {
  --page-gap: clamp(24px, 3vw, 36px);
  --page-radius: 30px;
  --page-radius-small: 22px;
  --page-panel-padding: clamp(28px, 4vw, 52px);
  --page-shadow: 0 20px 48px rgba(4, 17, 31, 0.1);
  --page-shadow-soft: 0 12px 30px rgba(4, 17, 31, 0.07);
}

.page-model .section-kicker,
.page-model .partner-kicker,
.page-model .contact-card__eyebrow {
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Modello 1: Home */
.page-model--home {
  --page-gap: clamp(28px, 3.4vw, 44px);
}

/* Modello 2: pagine operative */
.page-model--operational .race-info-page,
.page-model--operational .news-faq-page,
.page-model--operational .contacts-page,
.page-model--operational .privacy-page {
  width: min(100%, var(--section-width));
  margin-right: auto;
  margin-left: auto;
}

.page-model--operational .race-info-page,
.page-model--operational .news-faq-page {
  gap: var(--page-gap);
}

.page-model--operational .subpage-hero,
.page-model--operational .news-faq-hero,
.page-model--operational .contacts-intro,
.page-model--operational .privacy-hero {
  border-radius: var(--page-radius);
  box-shadow: var(--page-shadow);
}

.page-model--operational .subpage-hero,
.page-model--operational .news-faq-hero {
  min-height: 330px;
  padding: clamp(38px, 5vw, 56px);
}

.page-model--operational .contacts-intro {
  max-width: none;
  margin-bottom: var(--page-gap);
  padding: clamp(34px, 4.5vw, 52px);
  border: 1px solid rgba(16, 34, 53, 0.08);
  background:
    radial-gradient(circle at 88% 18%, rgba(79, 169, 202, 0.14), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(242, 248, 251, 0.92));
}

.page-model--operational .privacy-page {
  padding-top: 24px;
}

.page-model--operational .privacy-hero {
  padding: clamp(36px, 5vw, 56px);
}

.page-model--operational .subpage-hero h1,
.page-model--operational .news-faq-hero h1,
.page-model--operational .contacts-intro h1,
.page-model--operational .privacy-hero h1 {
  margin-top: 8px;
  font-size: clamp(3rem, 6vw, 5.35rem);
  line-height: 0.96;
  letter-spacing: -0.043em;
}

.page-model--operational .subpage-hero p:last-child,
.page-model--operational .news-faq-hero p:last-child,
.page-model--operational .contacts-intro > p:last-child,
.page-model--operational .privacy-hero > p {
  max-width: 780px;
  font-size: clamp(1rem, 1.6vw, 1.14rem);
  line-height: 1.65;
}

.page-model--operational .info-section,
.page-model--operational .news-section,
.page-model--operational .faq-section,
.page-model--operational .contact-card,
.page-model--operational .contact-strip,
.page-model--operational .privacy-document {
  border-radius: var(--page-radius-small);
  box-shadow: var(--page-shadow-soft);
}

.page-model--operational .info-section,
.page-model--operational .news-section,
.page-model--operational .faq-section {
  padding: var(--page-panel-padding);
}

.page-model--operational .info-section__heading h2,
.page-model--operational .news-section__heading h2,
.page-model--operational .faq-section__heading h2 {
  margin-top: 4px;
  font-size: clamp(2.25rem, 4.4vw, 4rem);
  line-height: 1;
  letter-spacing: -0.036em;
}

.page-model--operational .quick-links a,
.page-model--operational .status-grid article,
.page-model--operational .hospitality__grid article,
.page-model--operational .arrival-grid article,
.page-model--operational .news-empty,
.page-model--operational .news-card,
.page-model--operational .faq-placeholder {
  border-radius: 20px;
  box-shadow: none;
}

.page-model--operational .contacts-grid {
  gap: 20px;
}

.page-model--operational .privacy-document {
  margin-top: var(--page-gap);
}

/* Modello 3: pagine editoriali */
.page-model--editorial .city-page,
.page-model--editorial .sustainability-page,
.page-model--editorial .objective-page,
.page-model--editorial .partner-page {
  width: min(100%, var(--section-width));
  margin-right: auto;
  margin-left: auto;
}

.page-model--editorial .city-page {
  gap: var(--page-gap);
}

.page-model--editorial .city-hero,
.page-model--editorial .sustainability-hero,
.page-model--editorial .objective-hero,
.page-model--editorial .partner-hero {
  min-height: clamp(460px, 46vw, 520px);
  padding: clamp(44px, 5vw, 64px);
  border-radius: 34px;
  box-shadow: var(--page-shadow);
}

.page-model--editorial .city-hero h1,
.page-model--editorial .sustainability-hero h1,
.page-model--editorial .objective-hero h1,
.page-model--editorial .partner-hero h1 {
  font-size: clamp(3.5rem, 6.5vw, 6.2rem);
  line-height: 0.94;
  letter-spacing: -0.045em;
}

.page-model--editorial .city-hero p:last-child,
.page-model--editorial .sustainability-hero__content > p:not(.eyebrow),
.page-model--editorial .objective-hero p:not(.eyebrow),
.page-model--editorial .partner-hero__lead {
  font-size: clamp(1.02rem, 1.7vw, 1.18rem);
  line-height: 1.62;
}

.page-model--editorial .city-section,
.page-model--editorial .sustainability-intro,
.page-model--editorial .green-team,
.page-model--editorial .objective-content,
.page-model--editorial .partner-story,
.page-model--editorial .partner-opportunities,
.page-model--editorial .partnership-contact {
  border-radius: var(--page-radius);
  box-shadow: var(--page-shadow-soft);
  overflow: hidden;
}

.page-model--editorial .sustainability-intro,
.page-model--editorial .green-team,
.page-model--editorial .objective-content {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.page-model--editorial .city-section,
.page-model--editorial .sustainability-intro,
.page-model--editorial .objective-content,
.page-model--editorial .partner-story,
.page-model--editorial .partner-opportunities,
.page-model--editorial .partnership-contact {
  padding: var(--page-panel-padding);
}

.page-model--editorial .city-section__heading h2,
.page-model--editorial .sustainability-heading h2,
.page-model--editorial .green-team h2,
.page-model--editorial .objective-intro h2,
.page-model--editorial .partner-section-heading h2,
.page-model--editorial .partner-opportunities h2,
.page-model--editorial .partnership-contact h2 {
  font-size: clamp(2.35rem, 4.4vw, 4.2rem);
  line-height: 1;
  letter-spacing: -0.037em;
}

.page-model--editorial .city-resource-card,
.page-model--editorial .food-group,
.page-model--editorial .goal-card,
.page-model--editorial .detail-grid article,
.page-model--editorial .partner-story__panel,
.page-model--editorial .partner-reason,
.page-model--editorial .partner-opportunities__content,
.page-model--editorial .partnership-form {
  border-radius: var(--page-radius-small);
}

.page-model--editorial .goal-grid,
.page-model--editorial .detail-grid,
.page-model--editorial .city-resource-grid,
.page-model--editorial .food-groups {
  gap: 18px;
}

@media (max-width: 900px) {
  .page-model {
    --page-radius: 26px;
    --page-radius-small: 20px;
  }

  .page-model--editorial .partner-hero {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media (max-width: 720px) {
  .page-model {
    --page-gap: 20px;
    --page-panel-padding: 28px 22px;
    --page-radius: 24px;
    --page-radius-small: 18px;
  }

  .page-model--operational .subpage-hero,
  .page-model--operational .news-faq-hero,
  .page-model--operational .contacts-intro,
  .page-model--operational .privacy-hero,
  .page-model--editorial .city-hero,
  .page-model--editorial .sustainability-hero,
  .page-model--editorial .objective-hero,
  .page-model--editorial .partner-hero {
    padding: 34px 24px;
    border-radius: var(--page-radius);
  }

  .page-model--operational .subpage-hero,
  .page-model--operational .news-faq-hero {
    min-height: 340px;
  }

  .page-model--editorial .city-hero,
  .page-model--editorial .sustainability-hero,
  .page-model--editorial .objective-hero,
  .page-model--editorial .partner-hero {
    min-height: 440px;
  }

  .page-model--operational .subpage-hero h1,
  .page-model--operational .news-faq-hero h1,
  .page-model--operational .contacts-intro h1,
  .page-model--operational .privacy-hero h1,
  .page-model--editorial .city-hero h1,
  .page-model--editorial .sustainability-hero h1,
  .page-model--editorial .objective-hero h1,
  .page-model--editorial .partner-hero h1 {
    font-size: clamp(2.75rem, 13vw, 4.25rem);
  }
}
