/* Landing e archivio promozioni. La locandina mantiene le proporzioni originali. */
.gw-promo__hero { padding-block: clamp(30px, 5vw, 68px); background: var(--gw-paper); }
.gw-promo__hero .gw-breadcrumb { margin-bottom: clamp(28px, 4vw, 54px); }
.gw-promo__opening { display: grid; gap: 36px; align-items: center; }
.gw-promo__copy { min-width: 0; }
.gw-promo h1 { margin-bottom: 24px; color: var(--gw-blue-deep); font-size: clamp(2.15rem, 4.6vw, 4.8rem); overflow-wrap: anywhere; }
.gw-promo__intro { margin-block: 24px; font-size: clamp(1rem, 1.4vw, 1.18rem); }
.gw-promo__status { display: inline-block; margin: 0; padding: 7px 12px; background: var(--gw-blue-deep); color: var(--gw-white); font-size: .76rem; font-weight: 750; line-height: 1.5; }
.gw-promo__dates { display: flex; flex-wrap: wrap; gap: 18px 40px; margin-block: 28px; }
.gw-promo__dates dt { color: var(--gw-muted); font-size: .8rem; }
.gw-promo__dates dd { margin: 3px 0 0; color: var(--gw-blue-deep); font-weight: 750; }
.gw-promo__notice { padding-left: 18px; border-left: 3px solid var(--gw-yellow); }
.gw-promo__copy > .gw-button { margin-top: 12px; }
.gw-promo__poster { width: 100%; max-width: 540px; margin: 0 auto; background: var(--gw-white); box-shadow: 0 18px 46px rgb(20 36 83 / 9%); }
.gw-promo__poster img { width: 100%; height: auto; }
.gw-promo__body { max-width: 850px; padding-block: clamp(44px, 7vw, 90px); overflow-wrap: anywhere; }
.gw-promo__body:empty { padding: 0; }
.gw-promo__body :is(.alignwide, .alignfull) { width: 100%; margin-inline: 0; }
.gw-promo__lead { padding-block: clamp(48px, 7vw, 96px); border-top: 1px solid var(--gw-line); background: #f3f5f9; scroll-margin-top: 32px; }
.gw-promo__lead-grid { display: grid; gap: 30px; }
.gw-promo__lead h2 { margin-bottom: 22px; color: var(--gw-blue-deep); font-size: clamp(1.9rem, 3.2vw, 3.2rem); }
.gw-promo__lead .gw-eyebrow { margin-bottom: 18px; }
.gw-promo__reference { margin-top: 28px; padding-top: 22px; border-top: 1px solid #cbd2e0; color: var(--gw-blue-deep); font-size: .9rem; }
.gw-promo__form { min-width: 0; }
.gw-promo__required { color: var(--gw-muted); font-size: .82rem; }
.gw-promo .wpcf7-not-valid-tip { margin-top: 7px; color: #a52121; font-size: .85rem; }
.gw-promo .wpcf7-response-output { margin: 24px 0 0; padding: 18px; }
.gw-promo-archive__grid { display: grid; gap: 28px; }
.gw-promo-card { min-width: 0; border: 1px solid var(--gw-line); background: var(--gw-paper); }
.gw-promo-card__link { display: block; height: 100%; color: var(--gw-blue-deep); text-decoration: none; }
.gw-promo-card__link:hover { color: var(--gw-blue); }
.gw-promo-card__image { aspect-ratio: 4 / 5; background: var(--gw-white); }
.gw-promo-card__image img { width: 100%; height: 100%; object-fit: contain; }
.gw-promo-card__copy { padding: 26px; }
.gw-promo-card h2 { margin-block: 24px 18px; font-size: clamp(1.4rem, 2.3vw, 2rem); overflow-wrap: anywhere; }
.gw-promo-card__cta { display: flex; justify-content: space-between; gap: 20px; padding-top: 18px; border-top: 1px solid #cbd2e0; font-size: .9rem; font-weight: 750; }
@media (min-width: 650px) {
  .gw-promo-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 800px) {
  .gw-promo__opening { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: clamp(36px, 6vw, 88px); }
  .gw-promo__lead-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 6vw, 88px); }
}
@media (min-width: 1100px) {
  .gw-promo-archive__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
