/* Holiday planning around the existing, searchable character catalog. */
.holiday-story { color: var(--ink); }
.holiday-story h2 { max-width: 17em; font-size: clamp(30px, 3.5vw, 46px); }
.holiday-story h3 { font-size: 23px; line-height: 1.2; }
.holiday-eyebrow { margin: 0 0 12px; color: var(--ink-2); font-size: 12px; font-weight: 650; letter-spacing: .065em; text-transform: uppercase; }
.holiday-overview { padding-top: 48px; }
.holiday-overview-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(28px, 5vw, 72px); }
.holiday-overview-grid.has-no-scene { grid-template-columns: minmax(0, 760px); }
.holiday-copy > p:not(.holiday-eyebrow):not(.fine) { max-width: 37em; }
.holiday-copy > p:not(.lede):not(.holiday-eyebrow):not(.fine) { margin: 20px 0; color: var(--ink-2); }
.holiday-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 24px; }
.holiday-scene { margin: 0; }
.holiday-scene img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 22px; }
.holiday-scene figcaption { margin-top: 8px; color: var(--ink-3); font-size: 12px; }
.holiday-season-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.holiday-season { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--card); }
.holiday-costume { position: relative; display: block; background: var(--lilac-2); overflow: hidden; }
.holiday-season:nth-child(2) .holiday-costume { background: #f0f4e6; }
.holiday-season:nth-child(3) .holiday-costume { background: #fff0e4; }
.holiday-costume img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; transition: transform .35s ease; }
.holiday-costume span { position: absolute; right: 10px; bottom: 10px; padding: 3px 8px; border-radius: 6px; background: #ffffffed; color: var(--ink-2); font-size: 11px; }
.holiday-costume:hover img, .holiday-costume:focus-visible img { transform: scale(1.025); }
.holiday-season-copy { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 24px; }
.holiday-season-copy > p:not(.holiday-eyebrow) { margin: 14px 0 22px; color: var(--ink-2); }
.holiday-season-copy > .link { margin-top: auto; }
.holiday-plan { background: var(--lilac-2); }
.holiday-plan-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(28px, 6vw, 84px); }
.holiday-plan .btn { margin-top: 24px; }
.holiday-steps { margin: 0; padding: 0; list-style: none; counter-reset: holiday-step; }
.holiday-steps li { position: relative; margin-bottom: 26px; padding-left: 56px; counter-increment: holiday-step; }
.holiday-steps li:last-child { margin-bottom: 0; }
.holiday-steps li::before { content: counter(holiday-step, decimal-leading-zero); position: absolute; left: 0; top: 0; color: var(--violet); font-size: 25px; font-weight: 650; }
.holiday-steps p { margin: 10px 0 0; color: var(--ink-2); }
.holiday-related { display: flex; flex-wrap: wrap; gap: 16px 28px; padding-top: 34px; }
.holiday-questions .faq-grid > div:first-child > .link { display: inline-block; margin-top: 18px; }
.holiday-story a:focus-visible, .holiday-story summary:focus-visible { outline: 3px solid var(--violet); outline-offset: 5px; }

/* Scroll-driven movement progressively enhances visible copy; no JS can hide it. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .holiday-story .reveal { animation: holiday-arrive linear both; animation-timeline: view(); animation-range: entry 0% entry 85%; }
    @keyframes holiday-arrive { from { transform: translateY(18px); } to { transform: translateY(0); } }
  }
}
@media (max-width: 900px) {
  .holiday-overview-grid, .holiday-plan-grid { grid-template-columns: minmax(0, 1fr); }
  .holiday-scene { max-width: 700px; }
  .holiday-season-grid { grid-template-columns: minmax(0, 1fr); }
  .holiday-season { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
  .holiday-costume img { height: 100%; min-height: 250px; aspect-ratio: auto; }
}
@media (max-width: 600px) {
  .holiday-overview { padding-top: 30px; }
  .holiday-season { display: flex; }
  .holiday-costume img { height: auto; min-height: 0; aspect-ratio: 4 / 3; }
  .holiday-season-copy { padding: 22px; }
  .holiday-actions { align-items: flex-start; flex-direction: column; }
  .holiday-steps li { padding-left: 46px; }
}
@media (prefers-reduced-motion: reduce) {
  .holiday-story .reveal, .holiday-costume img { animation: none; transition: none; transform: none; }
}
