/* /holiday-bundle: the sales page for the holiday workshops (Heartbeat's
 * checkout links carry no description of their own). */
.holiday .page-title h1 { margin: 10px 0 18px; }
.holiday .jump { margin: 22px 0 0; font-size: .95rem; font-weight: 600; }
.holiday .jump a { color: var(--ink); text-underline-offset: 3px; }
.holiday .jump span { margin: 0 8px; color: var(--gold); }
:target { scroll-margin-top: 100px; }

.workshop .split { grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(32px, 5vw, 72px); max-width: 1040px; }
.ws-seal { display: block; width: 72px; height: 72px; margin-bottom: 18px; }
.section-dark .ws-seal { margin: 0 auto 18px; }
.workshop h2 { margin: 8px 0 14px; text-align: left; }
.ws-lede { font-family: var(--font-head); font-style: italic; font-size: 1.3rem; line-height: 1.4; color: var(--ink); }
.workshop h3 { margin: 30px 0 10px; font-size: 1.25rem; }
.ws-list, .ws-steps { margin: 0; padding-left: 0; list-style: none; }
.ws-list li { position: relative; padding: 5px 0 5px 24px; line-height: 1.55; }
.ws-list li::before { content: "\2726"; position: absolute; left: 0; top: 7px; font-size: .8rem; color: var(--gold); }
.ws-steps { counter-reset: step; margin-top: 18px; }
.ws-steps li { counter-increment: step; position: relative; padding: 6px 0 10px 46px; line-height: 1.55; }
.ws-steps li::before { content: counter(step); position: absolute; left: 0; top: 4px; width: 30px; height: 30px; border-radius: 50%;
  background: var(--gold); color: #fff; font-family: var(--font-head); font-size: 1.05rem; line-height: 30px; text-align: center; }

.ws-card { position: sticky; top: 110px; gap: 4px; }
.ws-price { margin: 0 0 6px; font-family: var(--font-head); font-size: 2.6rem; line-height: 1; }
.ws-when { margin: 10px 0 0; font-size: .95rem; line-height: 1.55; color: var(--ink-soft); }
.ws-when strong { color: var(--rust); font-weight: 600; }
.ws-card .btn { margin-top: 22px; align-self: stretch; text-align: center; }
.ws-member { margin: 16px 0 0; font-size: .88rem; line-height: 1.5; color: var(--muted); }

.ws-boards { display: grid; grid-template-columns: 1fr 1.3fr; gap: 26px; align-items: start; margin-top: 40px; max-width: 520px; }
.ws-boards .sheet { padding: 7px 7px 0; }
.ws-boards .sheet:nth-child(1) { transform: rotate(-2.2deg); }
.ws-boards .sheet:nth-child(2) { transform: rotate(1.8deg); margin-top: 26px; }
.ws-boards .sheet img { width: 100%; height: auto; }
.ws-boards .sheet figcaption { font-size: .8rem; padding: 7px 2px 9px; }
.ws-boards .sheet::before, .ws-boards .sheet::after { width: 46px; height: 14px; background: rgba(199, 152, 6, .22); }
.ws-boards .sheet::before { top: -7px; left: -10px; }
.ws-boards .sheet { box-shadow: 0 18px 34px -20px rgba(31, 43, 36, .6); }

.ws-fine h2 { font-size: 1.6rem; margin-bottom: 12px; }

@media (max-width: 860px) {
  .workshop .split { grid-template-columns: 1fr; }
  .ws-card { position: static; }
}

/* The bundle band: a sparkler (Canva) burning at the left, the offer to its right;
   on a phone the scrim deepens and the words sit over the burst. */
.bundle-band { position: relative; padding: clamp(96px, 12vw, 160px) 0; background: #0d0d0b url("../images/sparkle.webp") left 30% center / cover no-repeat; }
.bundle-band::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,13,11,.15) 0%, rgba(13,13,11,.55) 48%, rgba(13,13,11,.8) 100%); }
.bundle-band .container { position: relative; margin-right: max(20px, calc((100% - 1040px) / 2)); margin-left: auto; max-width: 460px; }
.bundle-band p { color: #f3e3bd; text-shadow: 0 1px 14px rgba(0,0,0,.8); }
@media (max-width: 760px) {
  .bundle-band { background-position: 35% center; }
  .bundle-band::before { background: rgba(13,13,11,.66); }
  .bundle-band .container { margin: 0 auto; }
}
.bundle-band .eyebrow { color: var(--gold); }

/* Beautiful Resolution's photograph (Canva, journalcoffee.svg), under its price card. */
.ws-side { position: sticky; top: 110px; align-self: start; }
.ws-side .ws-card { position: static; }
.ws-photo { display: block; width: 100%; height: auto; margin-top: 28px; border-radius: 20px; }
@media (max-width: 860px) { .ws-side { position: static; } }
