/* Shared seasonal caption contrast and overview layout. */
.seasonal-section { overflow: hidden; }
.seasonal-grid::before { display: none; }
.seasonal-photo { position: relative; z-index: 1; }
.seasonal-card h3 { position: relative; isolation: isolate; background: transparent; }
.seasonal-card h3::before {
  content: '';
  position: absolute;
  inset: -22px -20px -28px;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(245, 194, 188, 0) 0%, rgba(245, 194, 188, .62) 26%, rgba(245, 194, 188, .72) 52%, rgba(245, 194, 188, .62) 76%, rgba(245, 194, 188, 0) 100%);
  filter: blur(10px);
}
.seasonal-section > h2 > a { display: block; }
.seasonal-section > h2 > a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.seasonal-overview .seasonal-section { padding: 9.77vw 0 max(50px, 2.8vw); background-position: 50% 46.92%; }
.seasonal-overview .seasonal-section > h1 {
  font-size: clamp(50px, 5vw, 90px);
  letter-spacing: -.105em;
  line-height: .64;
  text-align: right;
  margin: 0 4% 2.1vw;
}
.seasonal-overview .seasonal-grid { padding: 0 2.8%; gap: 1.5vw; }
.seasonal-overview .seasonal-photo { aspect-ratio: .75; }
.seasonal-overview .seasonal-card h3 { min-height: max(75px, 6.08vw); padding: 15px 5px 12px; font-size: clamp(16px, 1.8vw, 28px); }
@media (max-width: 800px) {
  .seasonal-overview .seasonal-section { padding-top: 70px; padding-bottom: 60px; }
  .seasonal-overview .seasonal-section > h1 { font-size: 58px; margin-bottom: 33px; }
  .seasonal-overview .seasonal-card h3 { min-height: 90px; font-size: 17px; }
}
@media (max-width: 700px) {
  .seasonal-overview .seasonal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; margin: 0 20px; gap: 25px 16px; }
  .seasonal-overview .seasonal-section > h1 { margin-right: 24px; }
  .seasonal-overview .seasonal-card h3 { min-height: 96px; font-size: 16px; padding: 17px 8px; }
}
