.holiday-banner {
  color: var(--ivory);
  background: radial-gradient(ellipse at 25% 55%, #144b72, #082b47 68%);
  border-bottom: 3px solid var(--gold-light);
  padding-inline: var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.holiday-banner--multiple { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.holiday-banner-item {
  display: grid;
  grid-template-columns: clamp(106px, 17vw, 220px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(12px, 2.7vw, 42px);
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}
.holiday-banner-item img { width: 100%; height: clamp(145px, 18vw, 194px); object-fit: contain; }
.holiday-banner-item > div { padding-block: 18px; }
.holiday-banner-item p { margin: 0; }
.holiday-banner-item .eyebrow { color: #f2cf83; margin-bottom: 4px; }
.holiday-banner-title {
  font: 600 clamp(29px, 3.6vw, 55px)/1 var(--serif);
  letter-spacing: -.025em;
  color: #fffaf1;
}
.holiday-banner-message { font-size: clamp(14px, 1.35vw, 18px); line-height: 1.45; padding-top: 8px; max-width: 53ch; }
.holiday-banner-signoff { color: #eed9ad; font-size: 12px; padding-top: 8px; }
.holiday-banner--multiple .holiday-banner-item { grid-template-columns: clamp(100px, 12vw, 160px) minmax(0, 1fr); }
.holiday-banner--multiple .holiday-banner-title { font-size: clamp(26px, 3vw, 39px); }
.holiday-intro { text-align: center; padding: clamp(30px, 4vw, 62px) var(--gutter) 24px; }
.holiday-intro h1 { font-size: clamp(48px, 7vw, 108px); margin: 0; }
.holiday-intro .intro-copy { margin: 18px auto 0; max-width: 53ch; }
.holiday-gallery { padding: 0 var(--gutter) clamp(44px, 7vw, 95px); max-width: 1530px; margin-inline: auto; }
.holiday-gallery-note { color: #5c5246; text-align: center; margin: 0 auto 24px; font-size: 14px; }
.holiday-gallery-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 30px);
}
.holiday-card { height: 100%; border: 1px solid #dccba7; background: #fffdf8; }
.holiday-card-art { position: relative; aspect-ratio: 1.28; background: radial-gradient(ellipse at 50% 52%, #1d5377, #092c49 76%); border-bottom: 2px solid var(--gold-light); }
.holiday-card-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.holiday-card-copy { padding: clamp(16px, 2.2vw, 30px); }
.holiday-card-date { color: #795216; font-size: 13px; font-weight: 600; margin: 0 0 8px; }
.holiday-card h2 { font-size: clamp(28px, 3vw, 41px); }
.holiday-card-copy > p:last-child { margin: 10px 0 0; font-size: 15px; }
@media (max-width: 860px) {
  .holiday-banner--multiple { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .holiday-banner--multiple .holiday-banner-item + .holiday-banner-item { border-top: 1px solid #d8b77366; }
  .holiday-gallery-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .holiday-banner { padding-inline: 12px; }
  .holiday-banner-item, .holiday-banner--multiple .holiday-banner-item { grid-template-columns: minmax(86px, 29%) minmax(0, 1fr); gap: 9px; }
  .holiday-banner-item .eyebrow { font-size: 10px; }
  .holiday-banner-title { font-size: 27px; }
  .holiday-banner-message { font-size: 13px; }
  .holiday-banner-signoff { font-size: 11px; }
  .holiday-gallery-list { grid-template-columns: minmax(0, 1fr); }
}
