.halloween-landing {
  --hw-ink: #183b63;
  --hw-muted: #4e6074;
  --hw-blue: #0787d9;
  --hw-orange: #ff671b;
  --hw-yellow: #ffe653;
  --hw-cream: #fff9ed;
  --hw-border: #f2e7d5;
  color: var(--hw-ink);
  background: var(--hw-cream);
  overflow: hidden;
}
.halloween-shell {
  width: min(1200px, calc(100% - 64px));
  margin-inline: auto;
}
.halloween-hero {
  position: relative;
  padding: 20px 0 34px;
  background:
    radial-gradient(ellipse at 2% 20%, rgba(40, 171, 226, .17), transparent 34%),
    radial-gradient(ellipse at 98% 78%, rgba(255, 230, 83, .24), transparent 34%),
    #f1fcff;
}
.halloween-hero__art {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1144 / 503;
  border-radius: 24px;
  box-shadow: 0 16px 42px rgba(18, 70, 107, .12);
  background: #1aafe8;
}
.halloween-hero__art picture,
.halloween-hero__art img {
  display: block;
  width: 100%;
  height: 100%;
}
.halloween-hero__art img { object-fit: cover; }
.halloween-hero__hotspot {
  position: absolute;
  z-index: 2;
  bottom: 7.6%;
  display: block;
  height: 10.2%;
  border-radius: 999px;
  background: transparent;
}
.halloween-hero__hotspot:hover { background: rgba(255, 255, 255, .12); }
.halloween-hero__hotspot:focus-visible { outline: 3px solid #172e52; outline-offset: 2px; }
.halloween-hero__hotspot--tickets { left: 6.8%; width: 17%; }
.halloween-hero__hotspot--plan { left: 24.5%; width: 20%; }
.halloween-hero__mobile-details { display: none; }

.halloween-section { padding: 76px 0; }
.halloween-section__heading {
  max-width: 820px;
  margin: 0 auto 36px;
  text-align: center;
}
.halloween-eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  color: #1486b5;
  font-size: .9rem;
  font-weight: 900;
  letter-spacing: .035em;
}
.halloween-section__heading h2,
.halloween-story-card__copy h2 {
  color: var(--hw-ink);
  font-size: clamp(1.85rem, 3.2vw, 2.85rem);
  line-height: 1.18;
}
.halloween-section__heading p {
  max-width: 740px;
  margin: 16px auto 0;
  color: var(--hw-muted);
  font-size: 1.05rem;
  line-height: 1.75;
}
.halloween-highlights {
  padding-top: 42px;
  background: linear-gradient(180deg, #fffdf7 0%, #fff8e8 100%);
}
.halloween-highlight-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.halloween-highlight-card {
  overflow: hidden;
  border: 1px solid var(--hw-border);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(86, 70, 47, .07);
}
.halloween-highlight-card__image {
  position: relative;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #eaf8ff;
}
.halloween-highlight-card__image > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.halloween-highlight-card__image figcaption {
  position: absolute;
  right: 14px;
  bottom: 14px;
  left: 14px;
}
.halloween-highlight-card__image h3 {
  display: inline-flex;
  max-width: 100%;
  min-height: 40px;
  align-items: center;
  margin: 0;
  border-radius: 999px;
  padding: 8px 15px;
  color: #fff;
  background: #f14f25;
  font-size: .95rem;
  line-height: 1.2;
}
.halloween-highlight-card:nth-child(2) .halloween-highlight-card__image h3 { background: #087ed2; }
.halloween-highlight-card:nth-child(3) .halloween-highlight-card__image h3 { background: #209b49; }
.halloween-highlight-card > p {
  min-height: 94px;
  padding: 16px 20px 20px;
  color: var(--hw-muted);
  font-weight: 700;
  line-height: 1.6;
}

.halloween-stories {
  padding-top: 14px;
  padding-bottom: 42px;
  background: #fff8e8;
}
.halloween-story-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 34px;
  overflow: hidden;
  margin: 0 0 22px;
  border: 1px solid var(--hw-border);
  border-radius: 30px;
  padding: 15px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(86, 70, 47, .06);
}
.halloween-story-card--reverse .halloween-story-card__image { order: 2; }
.halloween-story-card__image,
.halloween-story-card__image img {
  display: block;
  width: 100%;
}
.halloween-story-card__image img {
  aspect-ratio: 2.25 / 1;
  border-radius: 22px;
  object-fit: cover;
}
.halloween-story-card__copy { padding: 20px 24px; }
.halloween-story-card__copy .halloween-eyebrow { margin-bottom: 12px; }
.halloween-story-card__copy p {
  margin-top: 16px;
  color: var(--hw-muted);
  font-size: 1.02rem;
  line-height: 1.75;
}
.halloween-story-card--reverse .halloween-story-card__copy { grid-column: 1; grid-row: 1; }

.halloween-links {
  padding-top: 34px;
  padding-bottom: 56px;
  background:
    radial-gradient(ellipse at 0 100%, rgba(40, 171, 226, .11), transparent 38%),
    #fffdf7;
}
.halloween-links .halloween-section__heading { margin-bottom: 24px; }
.halloween-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.halloween-info-card {
  display: flex;
  min-height: 94px;
  align-items: center;
  gap: 14px;
  border: 1px solid #f0e8db;
  border-radius: 22px;
  padding: 16px 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(60, 71, 83, .06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.halloween-info-card:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(60, 71, 83, .1); }
.halloween-info-card__icon {
  display: grid;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  place-items: center;
  border-radius: 15px;
  background: #fff0d1;
  font-size: 1.35rem;
}
.halloween-info-card:nth-child(2) .halloween-info-card__icon { background: #e3f5fb; }
.halloween-info-card:nth-child(3) .halloween-info-card__icon { background: #f0eaff; }
.halloween-info-card > span:nth-child(2) { min-width: 0; }
.halloween-info-card strong,
.halloween-info-card small { display: block; }
.halloween-info-card strong { font-size: 1rem; font-weight: 900; }
.halloween-info-card small { margin-top: 3px; color: var(--hw-muted); font-size: .83rem; line-height: 1.35; }
.halloween-info-card__arrow { margin-left: auto; color: #087fbb; font-size: 1.5rem; font-weight: 900; }

.halloween-family-banner { padding: 12px 0 64px; background: #fffdf7; }
.halloween-family-banner picture,
.halloween-family-banner img { display: block; width: 100%; }
.halloween-family-banner img {
  border-radius: 26px;
  box-shadow: 0 14px 32px rgba(18, 70, 107, .11);
}
.halloween-family-banner p {
  margin-top: 13px;
  color: var(--hw-muted);
  text-align: center;
  font-weight: 800;
}

.halloween-gallery { padding-top: 28px; padding-bottom: 64px; background: #fff9ed; }
.halloween-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.halloween-gallery-grid figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid #f2e7d5;
  border-radius: 22px;
  padding: 9px;
  background: white;
  box-shadow: 0 8px 22px rgba(86, 70, 47, .06);
}
.halloween-gallery-grid img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 15px;
  object-fit: cover;
}
.halloween-gallery-grid figcaption {
  padding: 11px 7px 4px;
  color: var(--hw-ink);
  font-size: .94rem;
  font-weight: 900;
  text-align: center;
}
.halloween-final-cta { padding: 0 0 78px; background: #fff9ed; }
.halloween-final-cta a { display: block; max-width: 930px; margin-inline: auto; }
.halloween-final-cta img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 24px;
  box-shadow: 0 15px 34px rgba(18, 70, 107, .13);
  transition: transform .2s ease;
}
.halloween-final-cta a:hover img { transform: translateY(-2px); }

@media (max-width: 1000px) {
  .halloween-highlight-grid { gap: 16px; }
  .halloween-info-grid { grid-template-columns: 1fr; }
  .halloween-info-card { min-height: 78px; }
}.halloween-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 999px;
  padding: 11px 18px;
  color: #fff;
  font-weight: 900;
  text-align: center;
  box-shadow: 0 6px 14px rgba(34, 54, 72, .12);
  transition: transform .18s ease, filter .18s ease;
}
.halloween-button:hover { transform: translateY(-1px); filter: brightness(1.04); }
.halloween-button--orange { background: linear-gradient(135deg, #ff8a16, #f44d19); }
.halloween-button--blue { background: linear-gradient(135deg, #169fe8, #0667c8); }

@media (max-width: 1200px) {
  .halloween-shell { width: calc(100% - 32px); }
  .halloween-hero { padding: 0 0 24px; }
  .halloween-hero .halloween-shell { width: 100%; }
  .halloween-hero__art {
    aspect-ratio: 392 / 505;
    border-radius: 0;
    box-shadow: none;
  }
  .halloween-hero__art picture { height: 100%; }
  .halloween-hero__hotspot { display: none; }
  .halloween-hero__mobile-details {
    display: block;
    max-width: 880px;
    margin: 14px 14px 0;
    border: 1px solid #e4f1f5;
    border-radius: 22px;
    padding: 18px 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(18, 70, 107, .08);
  }
  .halloween-hero__mobile-details > p {
    color: var(--hw-muted);
    font-size: .92rem;
    font-weight: 700;
    line-height: 1.65;
  }
  .halloween-hero__facts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 15px;
  }
  .halloween-hero__facts span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e5eef4;
    border-radius: 999px;
    padding: 7px 10px;
    background: #f8fcff;
    color: var(--hw-ink);
    font-size: .76rem;
    font-weight: 900;
  }
  .halloween-hero__facts span span { border: 0; padding: 0; background: transparent; color: #0c8bd1; }
  .halloween-hero__actions { display: grid; grid-template-columns: 1fr 1.2fr; gap: 10px; margin-top: 18px; }  .halloween-button { min-height: 44px; padding-inline: 12px; font-size: .88rem; }
  .halloween-section { padding: 52px 0; }
  .halloween-highlights { padding-top: 38px; }
  .halloween-section__heading { margin-bottom: 22px; }
  .halloween-section__heading p { margin-top: 12px; font-size: .95rem; line-height: 1.65; text-align: left; }
  .halloween-highlight-grid { grid-template-columns: 1fr; gap: 12px; }
  .halloween-highlight-card { display: grid; grid-template-columns: 38% minmax(0, 1fr); align-items: stretch; border-radius: 20px; }
  .halloween-highlight-card__image { min-height: 146px; aspect-ratio: auto; }
  .halloween-highlight-card__image h3 { min-height: 34px; padding: 7px 10px; font-size: .78rem; }
  .halloween-highlight-card__image figcaption { right: 8px; bottom: 8px; left: 8px; }
  .halloween-highlight-card > p { display: flex; min-height: 0; align-items: center; padding: 15px 14px; font-size: .88rem; line-height: 1.48; }
  .halloween-stories { padding-top: 0; padding-bottom: 30px; }
  .halloween-story-card {
    grid-template-columns: 1fr;
    gap: 0;
    margin-bottom: 15px;
    border-radius: 22px;
    padding: 9px;
  }
  .halloween-story-card--reverse .halloween-story-card__image { order: 0; }
  .halloween-story-card--reverse .halloween-story-card__copy { grid-column: auto; grid-row: auto; }
  .halloween-story-card__image img { aspect-ratio: 2.2 / 1; border-radius: 16px; }
  .halloween-story-card__copy { padding: 17px 10px 12px; }
  .halloween-story-card__copy .halloween-eyebrow { margin-bottom: 7px; font-size: .75rem; }
  .halloween-story-card__copy h2 { font-size: 1.3rem; line-height: 1.3; }
  .halloween-story-card__copy p { margin-top: 10px; font-size: .91rem; line-height: 1.6; }
  .halloween-links { padding-top: 26px; padding-bottom: 38px; }
  .halloween-info-card { border-radius: 17px; padding: 12px 13px; }
  .halloween-family-banner { padding: 2px 0 42px; }
  .halloween-family-banner img { border-radius: 0; box-shadow: none; }
  .halloween-family-banner p { margin: 10px 16px 0; font-size: .86rem; }
  .halloween-gallery { padding-top: 20px; padding-bottom: 42px; }
  .halloween-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  .halloween-gallery-grid figure { border-radius: 17px; padding: 7px; }
  .halloween-gallery-grid img { border-radius: 12px; }
  .halloween-gallery-grid figcaption { padding: 9px 3px 3px; font-size: .77rem; }
  .halloween-final-cta { padding-bottom: 58px; }
  .halloween-final-cta img { border-radius: 0; box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .halloween-info-card,
  .halloween-button,
  .halloween-final-cta img { transition: none; }
}
.halloween-info-card--help { position: relative; padding-right: 112px; }
.halloween-info-card__help-copy { display: block; }
.halloween-info-card__help-action { display: none; }
.halloween-info-card--help > img {
  position: absolute;
  right: 5px;
  bottom: 0;
  width: 104px;
  height: 88px;
  object-fit: contain;
}

/* PC layout aligned with the supplied approved design. */
@media (min-width: 1201px) {
  .halloween-shell { width: min(1200px, calc(100% - 64px)); }

  .halloween-hero { padding: 0; }
  .halloween-hero .halloween-shell { width: 100%; max-width: none; }
  .halloween-hero__art {
    aspect-ratio: 1891 / 832;
    border-radius: 0;
    box-shadow: none;
  }

  .halloween-highlights { padding-top: 46px; }
  .halloween-info-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
  }
  .halloween-info-card { min-height: 116px; }
  .halloween-info-card--help {
    position: relative;
    display: block;
    grid-column: span 2;
    overflow: hidden;
    padding: 17px 160px 16px 22px;
    background: linear-gradient(120deg, #fff 0%, #f3faff 100%);
  }
  .halloween-info-card__help-copy {
    position: relative;
    z-index: 1;
    display: block;
    max-width: 285px;
  }
  .halloween-info-card__help-copy strong,
  .halloween-info-card__help-copy small { display: block; }
  .halloween-info-card__help-copy strong { font-size: 1.03rem; }
  .halloween-info-card__help-copy small {
    margin-top: 4px;
    color: var(--hw-muted);
    font-size: .87rem;
    line-height: 1.35;
  }
  .halloween-info-card__help-action {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    border-radius: 999px;
    padding: 8px 15px;
    background: linear-gradient(135deg, #ff8a16, #f44d19);
    color: #fff;
    font-size: .84rem;
    font-weight: 900;
    box-shadow: 0 5px 12px rgba(244, 77, 25, .2);
  }
  .halloween-info-card--help > img {
    position: absolute;
    right: 8px;
    bottom: -2px;
    width: 152px;
    height: 132px;
    object-fit: contain;
  }

  .halloween-family-banner { padding: 0 0 46px; }
  .halloween-family-banner .halloween-shell { width: 100%; max-width: none; }
  .halloween-family-banner img { border-radius: 0; box-shadow: none; }
  .halloween-family-banner p { display: none; }

  .halloween-gallery { padding-top: 28px; }
  .halloween-final-cta { padding: 0 0 78px; }
  .halloween-final-cta .halloween-shell { width: 100%; max-width: none; }
  .halloween-final-cta a { max-width: none; }
  .halloween-final-cta img { border-radius: 0; box-shadow: none; }
}

/* Desktop header and high-impact banner layout from the approved PC reference. */
.halloween-desktop-header { display: none; }
.halloween-mobile-header { display: block; }

@media (min-width: 1201px) {
  .halloween-desktop-header {
    position: relative;
    z-index: 5;
    display: block;
    padding: 5px 0;
    background: #078fdb;
  }
  .halloween-mobile-header { display: none; }
  .halloween-desktop-header__inner {
    display: flex;
    width: min(1200px, calc(100% - 64px));
    min-height: 52px;
    align-items: center;
    gap: 18px;
    margin-inline: auto;
    border-radius: 999px;
    padding: 6px 16px 6px 22px;
    background: #fff;
  }
  .halloween-desktop-header__brand { flex: 0 0 auto; }
  .halloween-desktop-header__brand img { display: block; width: 136px; height: auto; }
  .halloween-desktop-header nav {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 1.35vw, 20px);
  }
  .halloween-desktop-header nav a {
    color: #14385c;
    font-size: clamp(.72rem, .9vw, .9rem);
    font-weight: 900;
    white-space: nowrap;
  }
  .halloween-desktop-header__cta {
    display: inline-flex;
    min-height: 38px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 999px;
    padding: 8px 17px;
    background: linear-gradient(135deg, #ff8a16, #f44d19);
    color: #fff;
    font-size: .84rem;
    font-weight: 900;
    box-shadow: 0 5px 12px rgba(244, 77, 25, .2);
  }
  .halloween-desktop-header__cta:hover { color: #fff; filter: brightness(1.04); }

  .halloween-hero__art { aspect-ratio: 1891 / 832; }
  .halloween-hero__hotspot { bottom: 5.5%; height: 9.5%; }
  .halloween-hero__hotspot--plan { width: 21%; }

  .halloween-info-card--help { padding: 17px 160px 16px 22px; }
  .halloween-info-card__help-action { display: inline-flex; }
  .halloween-info-card--help > img {
    right: 8px;
    bottom: -2px;
    width: 152px;
    height: 132px;
  }
  .halloween-final-cta picture { display: block; width: 100%; }
}
/* Editable PC hero, full-width banners, and 1200px content grid. */
.halloween-hero__desktop { display: none; }
.halloween-hero__mobile-art { display: block; }

@media (min-width: 1201px) {
  .halloween-shell { width: min(1200px, calc(100% - 64px)); }
  .halloween-hero { padding: 0; background: #079be2; }
  .halloween-hero .halloween-shell { width: 100%; max-width: none; }
  .halloween-hero__art {
    height: clamp(480px, 59vw, 620px);
    aspect-ratio: auto;
    border-radius: 0;
    box-shadow: none;
  }
  .halloween-hero__desktop {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: linear-gradient(180deg, #43c5f1 0%, #078ed8 100%);
  }
  .halloween-hero__desktop::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    background: linear-gradient(90deg,
      rgba(255,255,255,.96) 0%,
      rgba(255,255,255,.91) 28%,
      rgba(255,255,255,.63) 43%,
      rgba(255,255,255,.12) 60%,
      rgba(255,255,255,0) 70%);
  }
  .halloween-hero__desktop::after {
    position: absolute;
    z-index: 4;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 54px;
    content: "";
    background: linear-gradient(180deg, #ffe65a 0 14px, #fff9ed 14px);
    clip-path: polygon(0 20%, 13% 60%, 26% 38%, 40% 72%, 55% 42%, 70% 67%, 85% 38%, 100% 65%, 100% 100%, 0 100%);
  }
  .halloween-hero__art .halloween-hero__scene {
    position: absolute;
    z-index: 0;
    right: 0;
    bottom: 0;
    display: block;
    width: 68%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }
  .halloween-hero__art .halloween-hero__bery {
    position: absolute;
    z-index: 3;
    display: block;
    width: clamp(230px, 17vw, 330px);
    height: auto;
    object-fit: contain;
  }
  .halloween-hero__bery--smile { bottom: 8px; left: 48%; }
  .halloween-hero__bery--closed { bottom: 8px; left: 64%; }
  .halloween-hero__content {
    position: absolute;
    z-index: 5;
    inset: 0;
    display: flex;
    width: min(1200px, calc(100% - 64px));
    align-items: center;
    margin-inline: auto;
  }
  .halloween-hero__copy {
    width: 55%;
    max-width: 570px;
    padding: 16px 0 40px;
  }
  .halloween-hero__kicker {
    display: inline-flex;
    align-items: center;
    margin: 0;
    border-radius: 999px;
    padding: 8px 18px;
    background: #ffe653;
    color: #173c62;
    font-size: clamp(.85rem, 1vw, 1.08rem);
    font-weight: 900;
    letter-spacing: .02em;
  }
  .halloween-hero__title {
    margin: 12px 0 10px;
    line-height: .94;
    letter-spacing: -.045em;
  }
  .halloween-hero__title-top {
    display: block;
    color: #ff7a18;
    font-size: clamp(3rem, 4vw, 4.9rem);
    font-weight: 1000;
    -webkit-text-stroke: 2px #352052;
    text-shadow: 0 4px 0 #352052, 0 7px 13px rgba(27, 49, 82, .2);
  }
  .halloween-hero__title-brand {
    display: inline-flex;
    max-width: max-content;
    margin: 1px 0 5px;
    border-radius: 999px;
    padding: 4px 18px;
    background: #0784d5;
    color: #fff;
    font-size: clamp(1.1rem, 1.7vw, 1.8rem);
    font-weight: 1000;
    letter-spacing: -.01em;
    line-height: 1.1;
  }
  .halloween-hero__title-main {
    display: block;
    color: #fff;
    font-size: clamp(2.8rem, 3.95vw, 4.75rem);
    font-weight: 1000;
    letter-spacing: -.045em;
    -webkit-text-stroke: 1.5px #163c64;
    text-shadow: 0 4px 0 #163c64, 0 7px 12px rgba(20, 52, 86, .2);
  }
  .halloween-hero__copy > p {
    max-width: 540px;
    margin: 12px 0 14px;
    color: #14385d;
    font-size: clamp(.92rem, .98vw, 1.08rem);
    font-weight: 750;
    line-height: 1.45;
  }
  .halloween-hero__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
  }
  .halloween-hero__facts > span {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(21, 91, 143, .14);
    border-radius: 999px;
    padding: 7px 13px;
    background: rgba(255,255,255,.94);
    color: #183b63;
    font-size: .86rem;
    font-weight: 900;
    box-shadow: 0 4px 12px rgba(26, 74, 110, .08);
  }
  .halloween-hero__facts > span > span { color: #087fbb; }
  .halloween-hero__actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 14px; }
  .halloween-hero__actions .halloween-button { min-height: 44px; padding: 10px 19px; font-size: .92rem; }
  .halloween-hero__mobile-art,
  .halloween-hero__mobile-details { display: none; }
}

@media (min-width: 1201px) {
  .halloween-shell { width: min(1200px, calc(100% - 64px)); }
  .halloween-desktop-header { position: sticky; top: 0; z-index: 1000; }
  .halloween-desktop-header__inner { width: min(1200px, calc(100% - 64px)); }
  .halloween-hero__art { height: clamp(600px, 35vw, 700px); }
  .halloween-hero__copy { width: 53%; }
  .halloween-hero__title-top { font-size: clamp(3.2rem, 4.05vw, 4.9rem); }
  .halloween-hero__title-main { font-size: clamp(3rem, 4.1vw, 4.8rem); }
}

@media (max-width: 1200px) {
  .halloween-hero__desktop { display: none; }
  .halloween-hero__mobile-art { display: block; }
  .halloween-hero__art { height: auto; }
}
/* Approved desktop composition also applies to the 695px-wide PC design export. */
@media (min-width: 1201px) {
  .halloween-shell { width: min(1200px, calc(100% - 64px)); }
  .halloween-hero .halloween-shell,
  .halloween-family-banner .halloween-shell,
  .halloween-final-cta .halloween-shell { width: 100%; max-width: none; }
  .halloween-family-banner { padding: 0 0 36px; }
  .halloween-family-banner img { border-radius: 0; box-shadow: none; }
  .halloween-family-banner p { display: none; }
  .halloween-final-cta { padding: 0 0 56px; }
  .halloween-final-cta a { max-width: none; }
  .halloween-final-cta img { border-radius: 0; box-shadow: none; }
  .halloween-final-cta picture { display: block; width: 100%; }

  .halloween-info-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
  .halloween-info-card { min-height: 90px; gap: 8px; padding: 12px 10px; }
  .halloween-info-card__icon { width: 38px; height: 38px; flex-basis: 38px; font-size: 1.05rem; }
  .halloween-info-card strong { font-size: .78rem; }
  .halloween-info-card small { font-size: .67rem; }
  .halloween-info-card--help { grid-column: span 2; padding: 13px 112px 12px 14px; }
  .halloween-info-card--help > img { width: 104px; height: 88px; right: 5px; bottom: 0; }
  .halloween-info-card__help-copy small { font-size: .7rem; }
  .halloween-info-card__help-action { display: inline-flex; min-height: 30px; margin-top: 7px; padding: 6px 10px; font-size: .7rem; }

  .halloween-hero__art { height: clamp(430px, 55vw, 620px); }
  .halloween-hero__content { width: min(1200px, calc(100% - 64px)); }
  .halloween-hero__art .halloween-hero__scene { width: 100%; }
  .halloween-hero__art .halloween-hero__bery { width: clamp(180px, 28vw, 260px); }
  .halloween-hero__bery--smile { left: 46%; }
  .halloween-hero__bery--closed { left: 66%; }
  .halloween-hero__copy { width: 55%; max-width: 570px; }
}

@media (min-width: 1201px) and (max-width: 1000px) {
  .halloween-desktop-header { position: sticky; top: 0; z-index: 1000; display: block; padding: 4px 0; }
  .halloween-mobile-header { display: none; }
  .halloween-desktop-header__inner {
    width: calc(100% - 32px);
    min-height: 44px;
    gap: 8px;
    padding: 4px 9px;
  }
  .halloween-desktop-header__brand img { width: 90px; }
  .halloween-desktop-header nav { gap: 7px; }
  .halloween-desktop-header nav a { font-size: .65rem; }
  .halloween-desktop-header__cta { min-height: 32px; gap: 4px; padding: 7px 10px; font-size: .66rem; }
  .halloween-hero__art { height: clamp(430px, 55vw, 540px); }
  .halloween-hero__art .halloween-hero__scene { width: 100%; }
  .halloween-hero__art .halloween-hero__bery { width: clamp(165px, 26vw, 220px); }
  .halloween-hero__copy { width: 58%; max-width: 420px; padding-bottom: 42px; }
  .halloween-hero__title-top { font-size: clamp(2.1rem, 6vw, 3rem); }
  .halloween-hero__title-brand { font-size: clamp(.9rem, 2.4vw, 1.3rem); padding: 3px 12px; }
  .halloween-hero__title-main { font-size: clamp(2.1rem, 6vw, 3rem); }
  .halloween-hero__copy > p { margin: 8px 0 9px; font-size: .76rem; }
  .halloween-hero__facts { gap: 5px; }
  .halloween-hero__facts > span { min-height: 32px; gap: 5px; padding: 5px 8px; font-size: .67rem; }
  .halloween-hero__actions { gap: 6px; margin-top: 9px; }
  .halloween-hero__actions .halloween-button { min-height: 36px; padding: 8px 10px; font-size: .7rem; }
}

@media (min-width: 1201px) {
  .halloween-info-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .halloween-info-card--help { grid-column: span 2; }
}
/* Compact desktop navigation for laptop and narrow PC previews. */
@media (min-width: 1201px) and (max-width: 1000px) {
  .halloween-desktop-header { position: sticky; top: 0; z-index: 1000; display: block; padding: 4px 0; background: #078fdb; }
  .halloween-mobile-header { display: none; }
  .halloween-desktop-header__inner {
    display: flex;
    width: calc(100% - 32px);
    min-height: 46px;
    align-items: center;
    gap: 8px;
    margin-inline: auto;
    border-radius: 999px;
    padding: 4px 9px;
    background: #fff;
  }
  .halloween-desktop-header__brand { flex: 0 0 auto; }
  .halloween-desktop-header__brand img { display: block; width: clamp(72px, 9.5vw, 96px); height: auto; }
  .halloween-desktop-header nav { display: flex; min-width: 0; flex: 1 1 auto; align-items: center; justify-content: center; gap: clamp(4px, .8vw, 8px); }
  .halloween-desktop-header nav a { color: #14385c; font-size: clamp(.54rem, .9vw, .72rem); font-weight: 900; line-height: 1.2; white-space: nowrap; }
  .halloween-desktop-header__cta { display: inline-flex; min-height: 31px; flex: 0 0 auto; align-items: center; justify-content: center; gap: 4px; border-radius: 999px; padding: 7px clamp(7px, 1vw, 11px); background: linear-gradient(135deg, #ff8a16, #f44d19); color: #fff; font-size: clamp(.57rem, .82vw, .68rem); font-weight: 900; white-space: nowrap; box-shadow: 0 5px 12px rgba(244, 77, 25, .2); }
  .halloween-desktop-header__cta:hover { color: #fff; filter: brightness(1.04); }
}

/* Keep the quick links compact and make the Bery contact action read as a button. */
.halloween-info-card__help-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 999px;
  padding: 7px 12px;
  background: linear-gradient(135deg, #ff8a16, #f44d19);
  color: #fff;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1.2;
  box-shadow: 0 5px 12px rgba(244, 77, 25, .16);
}
@media (min-width: 1201px) and (max-width: 1000px) {
  .halloween-info-card { min-height: 82px; gap: 7px; padding: 10px 8px; }
  .halloween-info-card__icon { width: 34px; height: 34px; flex-basis: 34px; font-size: .95rem; }
  .halloween-info-card > span:nth-child(2) small { display: none; }
  .halloween-info-card strong { font-size: .75rem; line-height: 1.25; }
  .halloween-info-card__arrow { margin-left: auto; }
  .halloween-info-card--help { padding: 12px 105px 12px 12px; }
  .halloween-info-card--help > img { width: 96px; height: 82px; }
  .halloween-info-card__help-action { min-height: 29px; margin-top: 6px; padding: 6px 10px; font-size: .66rem; }
}
 

/* Full-width PC banners use a wide clean scene and live, crisp text. */
@media (min-width: 1201px) {
  .halloween-family-banner { padding: 0; background: #078fdb; }
  .halloween-family-banner__desktop {
    position: relative;
    isolation: isolate;
    height: clamp(420px, 31.25vw, 600px);
    overflow: hidden;
    background: #098fd4;
  }
  .halloween-family-banner__scene,
  .halloween-final-cta__scene { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .halloween-family-banner__desktop::before {
    position: absolute; z-index: 1; inset: 0; content: "";
    background: linear-gradient(90deg, rgba(255,249,237,.94) 0%, rgba(255,249,237,.84) 32%, rgba(255,249,237,.38) 52%, rgba(255,249,237,0) 72%);
  }
  .halloween-family-banner__content {
    position: relative; z-index: 2; display: flex; width: min(1200px, calc(100% - 64px)); height: 100%; flex-direction: column; align-items: flex-start; justify-content: center; margin-inline: auto; padding-bottom: 14px;
  }
  .halloween-family-banner__content .halloween-eyebrow { border-radius: 999px; padding: 7px 14px; background: #ffe653; color: #183b63; font-size: .88rem; font-weight: 900; }
  .halloween-family-banner__content h2 { display: flex; flex-direction: column; margin: 12px 0 8px; font-size: clamp(2.8rem, 5vw, 4.8rem); font-weight: 1000; line-height: .98; letter-spacing: -.04em; }
  .halloween-family-banner__content h2 span { color: #ff7415; text-shadow: 0 2px #fff, 2px 0 #fff, -2px 0 #fff, 0 -2px #fff, 4px 5px 0 #153e68; }
  .halloween-family-banner__content h2 strong { color: #fff; text-shadow: 0 2px #153e68, 2px 0 #153e68, -2px 0 #153e68, 0 -2px #153e68, 4px 5px 0 #153e68; }
  .halloween-family-banner__content p { max-width: 490px; margin: 8px 0 12px; border-radius: 14px; padding: 9px 13px; background: rgba(255,255,255,.86); color: #183b63; font-size: clamp(.9rem, 1.05vw, 1.08rem); font-weight: 800; line-height: 1.45; }
  .halloween-family-banner__site { display: inline-flex; min-height: 42px; align-items: center; gap: 9px; border-radius: 999px; padding: 8px 22px; background: linear-gradient(135deg,#169fe8,#0667c8); color: #fff; font-size: 1rem; font-weight: 900; box-shadow: 0 7px 18px rgba(0,83,161,.2); }
  .halloween-family-banner__site:hover { color: #fff; filter: brightness(1.05); }
  .halloween-family-banner__mascot { position: absolute; z-index: 2; right: 17%; bottom: -7%; width: clamp(230px, 19vw, 350px); height: auto; object-fit: contain; filter: drop-shadow(0 12px 16px rgba(8,59,94,.2)); }
  .halloween-family-banner__sign { position: absolute; z-index: 3; top: 18%; right: 4%; border: 3px solid #70400f; border-radius: 8px; padding: 12px 15px; transform: rotate(3deg); background: linear-gradient(135deg,#f3ce83,#c78b44); color: #34220f; font-size: clamp(.78rem, .95vw, 1rem); font-weight: 1000; line-height: 1.25; text-align: center; box-shadow: 0 7px 12px rgba(54,36,15,.22); }
  .halloween-family-banner__mobile { display: none; }

  .halloween-final-cta { padding: 0; background: #078fdb; }
  .halloween-final-cta__desktop { position: relative; isolation: isolate; display: flex; min-height: clamp(420px, 31.25vw, 600px); align-items: center; justify-content: center; overflow: hidden; background: #078fdb; }
  .halloween-final-cta__desktop::before { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(180deg,rgba(0,107,192,.1),rgba(0,107,192,.28)); }
  .halloween-final-cta__panel { position: relative; z-index: 2; display: flex; width: min(820px, 56vw); min-height: 255px; flex-direction: column; align-items: center; justify-content: center; border: 5px solid rgba(255,255,255,.94); border-radius: 42px; padding: 30px 48px; background: linear-gradient(135deg,#0874d4,#064dad); color: #fff; text-align: center; box-shadow: 0 18px 38px rgba(0,55,126,.28); }
  .halloween-final-cta__panel p { margin: 0 0 7px; color: #fff; font-size: clamp(1.2rem, 1.85vw, 1.8rem); font-weight: 900; line-height: 1.25; }
  .halloween-final-cta__panel h2 { margin: 0 0 18px; color: #fff; font-size: clamp(1.9rem, 3.25vw, 3.2rem); font-weight: 1000; line-height: 1.1; }
  .halloween-final-cta__panel .halloween-button { min-height: 54px; padding: 12px 32px; font-size: clamp(1rem,1.25vw,1.25rem); }
  .halloween-final-cta__mascot { position: absolute; z-index: 2; bottom: -10%; width: clamp(175px, 15vw, 280px); height: auto; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(8,59,94,.2)); }
  .halloween-final-cta__mascot--left { left: 7%; }
  .halloween-final-cta__mascot--right { right: 7%; }
  .halloween-final-cta__mobile-link { display: none; }
  .halloween-final-cta__mobile { display: none; }
}
@media (min-width: 1201px) and (max-width: 1000px) {
  .halloween-family-banner__desktop { height: clamp(300px, 46vw, 460px); }
  .halloween-family-banner__content { width: calc(100% - 48px); }
  .halloween-family-banner__content h2 { font-size: clamp(2.2rem, 5.4vw, 3.4rem); }
  .halloween-family-banner__content p { max-width: 390px; font-size: .86rem; }
  .halloween-family-banner__mascot { right: 18%; width: clamp(170px, 23vw, 230px); }
  .halloween-family-banner__sign { top: 15%; right: 3%; max-width: 145px; padding: 8px 9px; font-size: .68rem; }
  .halloween-final-cta__desktop { min-height: clamp(340px, 46vw, 460px); }
  .halloween-final-cta__panel { width: min(540px, 60vw); min-height: 190px; padding: 24px 30px; border-radius: 30px; }
  .halloween-final-cta__panel h2 { font-size: clamp(1.55rem, 3.6vw, 2.35rem); }
  .halloween-final-cta__mascot { width: clamp(140px, 19vw, 190px); }
  .halloween-final-cta__mascot--left { left: 4%; }
  .halloween-final-cta__mascot--right { right: 4%; }
}
@media (max-width: 1200px) {
  .halloween-family-banner { padding: 0 0 42px; }
  .halloween-family-banner__desktop { display: none; }
  .halloween-family-banner__mobile { display: block; width: 100%; }
  .halloween-family-banner__mobile img { display: block; width: 100%; height: auto; }
  .halloween-final-cta { padding: 0 0 58px; }
  .halloween-final-cta__desktop { display: none; }
  .halloween-final-cta__mobile-link { display: block; }
  .halloween-final-cta__mobile { display: block; width: 100%; }
  .halloween-final-cta__mobile img { display: block; width: 100%; height: auto; }
}
 

/* Image-led PC hero: the central art carries the message; only CTAs are live controls. */
@media (min-width: 1201px) {
  .halloween-hero { padding: 0; background: #078fdb; }
  .halloween-hero .halloween-shell { width: 100%; max-width: none; }
  .halloween-hero__art { width: 100%; height: auto; aspect-ratio: auto; overflow: visible; border-radius: 0; background: transparent; box-shadow: none; }
  .halloween-hero__pc-stage { display: grid; width: 100%; max-width: 1920px; height: min(750px, 39.0625vw); grid-template-columns: minmax(0,1fr) minmax(0,78.125%) minmax(0,1fr); align-items: stretch; gap: 12px; box-sizing: border-box; margin-inline: auto; padding: 0 12px; background: #078fdb; }
  .halloween-hero__desktop { position: relative; display: block; width: 100%; height: 100%; min-width: 0; overflow: hidden; aspect-ratio: auto; border-radius: 0; background: #078fdb; box-shadow: 0 10px 26px rgba(9,57,93,.15); }
  .halloween-hero__poster { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .halloween-hero__side { display: block; min-width: 0; overflow: hidden; border: 5px solid rgba(255,255,255,.92); border-radius: 20px; background: #def7ff; box-shadow: 0 10px 26px rgba(9,57,93,.18); }
  .halloween-hero__side img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.84) brightness(.92); }
  .halloween-hero__side--left img { object-position: center; }
  .halloween-hero__side--right img { object-position: center; }
  .halloween-hero__mobile-art,
  .halloween-hero__mobile-details { display: none; }
  .halloween-hero__actions { position: absolute; z-index: 4; left: 3.4%; bottom: 4.2%; display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
  .halloween-hero__actions .halloween-button { min-height: 52px; padding: 12px 22px; font-size: 1rem; }
}
@media (min-width: 1201px) and (max-width: 1399px) {
  .halloween-hero__pc-stage { display: block; height: auto; max-width: 1920px; padding: 0; }
  .halloween-hero__side { display: none; }
  .halloween-hero__desktop { width: min(1500px, calc(100vw - 32px)); height: auto; aspect-ratio: 2 / 1; margin-inline: auto; border-radius: 18px; }
  .halloween-hero__actions { left: 4%; bottom: 4%; gap: 9px; }
  .halloween-hero__actions .halloween-button { min-height: 44px; padding: 9px 15px; font-size: .82rem; }
}
@media (max-width: 1200px) {
  .halloween-hero__pc-stage { display: none; }
  .halloween-hero__desktop { display: none; }
  .halloween-hero__mobile-art { display: block; }
  .halloween-hero__art { height: auto; aspect-ratio: auto; }
}
 

/* Prevent older layered-hero masks from washing out the new precomposed poster. */
@media (min-width: 1201px) {
  .halloween-hero__desktop::before,
  .halloween-hero__desktop::after { display: none !important; content: none !important; }
  .halloween-hero__mobile-art { display: none !important; }
  .halloween-hero__mobile-details { display: none !important; }
}
 

/* One uninterrupted desktop banner, proportional to 1920 x 750. */
@media (min-width: 1201px) {
  .halloween-hero__pc-stage { display: block; width: 100%; max-width: none; height: min(39.0625vw, 750px); margin: 0; padding: 0; }
  .halloween-hero__desktop { width: 100%; max-width: none; height: 100%; max-height: 750px; margin: 0; aspect-ratio: 1920 / 750; border-radius: 0; box-shadow: none; }
  .halloween-hero__art .halloween-hero__poster { width: 100%; height: 100%; object-fit: fill; }
  .halloween-hero__side { display: none; }
  .halloween-hero__desktop::before, .halloween-hero__desktop::after { display: none !important; content: none !important; }
  .halloween-hero__mobile-art { display: none !important; }
  .halloween-hero__actions { left: 4%; bottom: 5%; }
}
/* Bring the artwork behind the floating navigation and close the center gap. */
@media (min-width: 1201px) {
  .halloween-desktop-header { height: 66px; box-sizing: border-box; margin-bottom: -66px; padding: 5px 0; background: transparent; position: sticky; top: 0; z-index: 1000; }
  .halloween-desktop-header__inner { height: 56px; min-height: 56px; box-sizing: border-box; }
  .halloween-hero__desktop .halloween-hero__actions { 
    /* left: 13%; bottom: 5%; */
     left: 19.4%;
        bottom: 1%;
  }
}
/* Cover the remaining top-edge gap beneath the floating navigation. */
@media (min-width: 1201px) {
  .halloween-landing { position: relative; margin-top: -5px; }
  .halloween-hero,
  .halloween-hero__pc-stage,
  .halloween-hero__desktop { background: transparent; border-top: 0; }
}
/* Start the artwork at the document edge; navigation floats outside its flow. */
@media (min-width: 1201px) {
  body:has(.halloween-landing) { margin: 0; padding-top: 0; }
  .halloween-desktop-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; height: 66px; margin: 0; padding: 0 0 10px; border: 0; background: transparent; z-index: 1000; }
  .halloween-landing { position: relative; top: auto; margin: 0; padding-top: 0; border-top: 0; }
  .halloween-hero,
  .halloween-hero .halloween-shell,
  .halloween-hero__art,
  .halloween-hero__pc-stage,
  .halloween-hero__desktop { margin-top: 0; padding-top: 0; border-top: 0; }
  .halloween-hero__art .halloween-hero__poster { display: block; margin: 0; padding: 0; border: 0; vertical-align: top; }
  body.admin-bar .halloween-desktop-header { top: 32px; }
}
/* Leave air above the navigation while the artwork covers the viewport edge. */
@media (min-width: 1201px) {
  .halloween-desktop-header { top: 16px; padding: 0; height: 56px; }
  body.admin-bar .halloween-desktop-header { top: 48px; }
  .halloween-hero__desktop { position: relative; overflow: hidden; border: 0; outline: 0; }
  .halloween-hero__art .halloween-hero__poster { position: absolute; top: -3px; left: -3px; width: calc(100% + 6px); height: calc(100% + 6px); max-width: none; margin: 0; padding: 0; border: 0; outline: 0; }
}
/* Consistent information typography and one 1920 x 500 banner per section. */
.halloween-links .halloween-info-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.halloween-links .halloween-info-card { min-height: 120px; padding: 22px; gap: 14px; }
.halloween-links .halloween-info-card strong { font-family: inherit; font-size: 1.25rem; line-height: 1.3; font-weight: 900; }
.halloween-links .halloween-info-card small { font-family: inherit; font-size: .95rem; line-height: 1.5; margin-top: 5px; }
.halloween-links .halloween-info-card__icon { width: 48px; height: 48px; flex-basis: 48px; font-size: 1.5rem; }
.halloween-links .halloween-info-card--help { grid-column: 1 / -1; min-height: 112px; padding: 22px 130px 22px 24px; }
.halloween-links .halloween-info-card__help-action { font-size: 1rem; padding: 10px 18px; }
.halloween-family-banner, .halloween-final-cta { padding: 0; }
.halloween-family-banner > .halloween-family-banner__desktop,
.halloween-final-cta > .halloween-final-cta__desktop { position: relative; display: flex; width: 100%; height: min(26.041667vw,500px); min-height: 0; max-height: 500px; overflow: hidden; align-items: center; justify-content: center; }
.halloween-family-banner .halloween-family-banner__scene,
.halloween-final-cta .halloween-final-cta__scene { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; border-radius: 0; box-shadow: none; transform: none; }
.halloween-family-banner .halloween-family-banner__content { z-index: 2; width: min(1200px,calc(100% - 64px)); padding: 20px 0; }
.halloween-family-banner .halloween-family-banner__content p { display: block; }
.halloween-family-banner .halloween-family-banner__sign { right: 12%; }
.halloween-final-cta .halloween-final-cta__panel { width: min(820px,70%); min-height: 0; padding: 26px 38px; }
@media(max-width: 1000px) {
  .halloween-links .halloween-info-card strong { font-size: 1.05rem; }
  .halloween-links .halloween-info-card { padding: 16px; }
  .halloween-family-banner > .halloween-family-banner__desktop,
  .halloween-final-cta > .halloween-final-cta__desktop { height: 300px; min-height: 300px; }
  .halloween-family-banner .halloween-family-banner__sign { display: none; }
}
@media(max-width: 1200px) {
  .halloween-links .halloween-info-grid { grid-template-columns: 1fr; }
  .halloween-links .halloween-info-card { min-height: 90px; }
  .halloween-family-banner .halloween-family-banner__content { width: calc(100% - 36px); }
  .halloween-family-banner .halloween-family-banner__content h2 { font-size: 2.2rem; }
  .halloween-final-cta .halloween-final-cta__panel { width: calc(100% - 36px); padding: 24px 16px; }
  .halloween-final-cta .halloween-final-cta__panel h2 { font-size: 1.8rem; }
}
/* Frame the new original artwork without cropping hats or lower tentacles. */
.halloween-highlight-card .halloween-highlight-card__image { aspect-ratio: 1 / 1; }
.halloween-highlight-card .halloween-highlight-card__image img { width: 100%; height: 100%; object-fit: cover; }
.halloween-story-card .halloween-story-card__image img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.halloween-gallery-grid figure img { aspect-ratio: 1 / 1; object-fit: cover; }
.halloween-family-banner .halloween-family-banner__content { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; height: 100%; }
.halloween-family-banner .halloween-family-banner__content h2 strong { display: block; }
.halloween-info-card--help > img { border-radius: 18px; object-fit: cover; }
/* Mobile banners share the complete desktop content and explicit visual styles. */
@media (max-width: 1200px) {
  .halloween-family-banner > .halloween-family-banner__desktop,
  .halloween-final-cta > .halloween-final-cta__desktop { display: flex; position: relative; isolation: isolate; width: 100%; height: auto; min-height: 380px; max-height: none; padding: 28px 0; box-sizing: border-box; overflow: hidden; align-items: center; justify-content: center; }
  .halloween-family-banner .halloween-family-banner__desktop::before { display: block; position: absolute; z-index: 1; inset: 0; content: ''; background: linear-gradient(90deg,rgba(255,250,239,.96),rgba(255,250,239,.82) 65%,rgba(255,250,239,.38)); }
  .halloween-family-banner .halloween-family-banner__content { position: relative; z-index: 2; display: flex; width: calc(100% - 40px); height: auto; padding: 0; margin: 0; flex-direction: column; align-items: flex-start; justify-content: center; }
  .halloween-family-banner .halloween-eyebrow { display: inline-block; margin: 0 0 12px; padding: 6px 10px; border-radius: 999px; background: #ffe653; color: #183b63; font-size: .78rem; font-weight: 900; line-height: 1.4; }
  .halloween-family-banner .halloween-family-banner__content h2 { margin: 0 0 14px; font-family: inherit; font-size: clamp(2rem,8.2vw,2.8rem); font-weight: 1000; line-height: 1.05; letter-spacing: -.035em; }
  .halloween-family-banner .halloween-family-banner__content h2 span { display: block; color: #ff7415; text-shadow: 1px 1px 0 #fff,-1px -1px 0 #fff; }
  .halloween-family-banner .halloween-family-banner__content h2 strong { display: block; margin-top: 4px; color: #183b63; }
  .halloween-family-banner .halloween-family-banner__content p { display: block; max-width: 330px; margin: 0 0 14px; padding: 0; background: transparent; color: #183b63; font-size: .95rem; font-weight: 800; line-height: 1.55; text-align: left; }
  .halloween-family-banner .halloween-family-banner__site { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 9px 20px; border-radius: 999px; background: linear-gradient(135deg,#169fe8,#0667c8); color: #fff; font-size: 1rem; font-weight: 900; text-decoration: none; }
  .halloween-family-banner .halloween-family-banner__sign { display: none; }
  .halloween-family-banner .halloween-family-banner__scene,
  .halloween-final-cta .halloween-final-cta__scene { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .halloween-final-cta .halloween-final-cta__desktop::before { display: block; position: absolute; z-index: 1; inset: 0; content: ''; background: rgba(0,77,140,.18); }
  .halloween-final-cta .halloween-final-cta__panel { position: relative; z-index: 2; display: flex; width: calc(100% - 36px); min-height: 0; box-sizing: border-box; padding: 28px 18px; border: 3px solid #fff; border-radius: 28px; background: linear-gradient(135deg,#0874d4,#064dad); box-shadow: 0 12px 28px rgba(0,55,126,.22); color: #fff; text-align: center; flex-direction: column; align-items: center; justify-content: center; }
  .halloween-final-cta .halloween-final-cta__panel p { display: block; margin: 0 0 9px; color: #fff; font-size: 1.05rem; font-weight: 900; line-height: 1.4; }
  .halloween-final-cta .halloween-final-cta__panel h2 { display: block; margin: 0 0 20px; color: #fff; font-family: inherit; font-size: clamp(1.7rem,7.4vw,2.3rem); font-weight: 1000; line-height: 1.15; }
  .halloween-final-cta .halloween-final-cta__panel .halloween-button { display: inline-flex; min-height: 48px; max-width: 100%; align-items: center; justify-content: center; gap: 10px; padding: 11px 24px; color: #fff; font-size: 1.05rem; font-weight: 900; }
  .halloween-hero__mobile-art { display: block; width: 100%; }
  .halloween-hero__art .halloween-hero__mobile-art img { display: block; width: 100%; height: auto; }
  .halloween-hero__mobile-details { display: block; }
}
/* Narrow cards: keep text padded and let the image follow the full card height. */
@media (max-width: 1200px) {
  .halloween-highlight-grid .halloween-highlight-card { grid-template-columns: minmax(0,42%) minmax(0,58%); gap: 0; padding: 0; align-items: stretch; }
  .halloween-highlight-card .halloween-highlight-card__image { width: 100%; min-width: 0; min-height: 164px; height: 100%; margin: 0; aspect-ratio: auto; }
  .halloween-highlight-card .halloween-highlight-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .halloween-highlight-grid .halloween-highlight-card > p { display: flex; align-items: center; box-sizing: border-box; min-width: 0; min-height: 164px; width: 100%; margin: 0; padding: 18px 16px; font-size: .86rem; line-height: 1.55; overflow-wrap: break-word; }
  .halloween-highlight-card .halloween-highlight-card__image figcaption { right: 7px; left: 7px; bottom: 8px; }
  .halloween-highlight-card .halloween-highlight-card__image h3 { box-sizing: border-box; padding: 7px 9px; font-size: .72rem; line-height: 1.25; }
}
/* Bleed the hero stage across the top pixel boundary on wide screens. */
@media (min-width: 1201px) {
  body:has(.halloween-landing) { border-top: 0; }
  .halloween-landing { margin-top: -2px; }
  .halloween-hero__pc-stage { position: relative; top: -2px; margin-bottom: -2px; }
  .halloween-hero__desktop { overflow: visible; }
  .halloween-hero__art .halloween-hero__poster { top: -5px; height: calc(100% + 10px); }
}
#diem-nhan, #halloween-thong-tin { scroll-margin-top: 96px; }

/* Halloween banner art direction, shared across desktop and phone. */
.halloween-family-banner > .halloween-family-banner__desktop,
.halloween-final-cta > .halloween-final-cta__desktop { isolation: isolate; background: #25104f; }
.halloween-family-banner .halloween-family-banner__scene,
.halloween-final-cta .halloween-final-cta__scene { filter: brightness(.62) saturate(.85); }
.halloween-family-banner .halloween-family-banner__desktop::before,
.halloween-final-cta .halloween-final-cta__desktop::before { display: block; position: absolute; z-index: 1; inset: 0; content: ''; pointer-events: none; background: linear-gradient(90deg,rgba(34,10,65,.91),rgba(47,15,79,.67) 50%,rgba(29,10,63,.25)); }
.halloween-family-banner .halloween-family-banner__desktop::after,
.halloween-final-cta .halloween-final-cta__desktop::after { display: block; position: absolute; z-index: 2; inset: 0; content: ''; pointer-events: none; background: url('assets/halloween-2026/banner_halloween_decor.png') center / 100% 100% no-repeat; }
.halloween-family-banner .halloween-family-banner__content { position: relative; z-index: 3; width: min(1000px,calc(100% - 80px)); align-items: center; text-align: center; padding: 24px 0; }
.halloween-family-banner .halloween-eyebrow { padding: 7px 16px; margin: 0 0 10px; border: 1px solid #ffcb65; border-radius: 999px; background: #ffdf5a; color: #352055; font-weight: 1000; }
.halloween-family-banner .halloween-family-banner__content h2 { margin: 0 0 12px; font-size: clamp(2.8rem,4.1vw,4.4rem); line-height: 1.03; letter-spacing: -.035em; }
.halloween-family-banner .halloween-family-banner__content h2 span { color: #ffaf34; text-shadow: 0 3px 0 #64285f,0 6px 18px #19082b; }
.halloween-family-banner .halloween-family-banner__content h2 strong { color: #fff9e4; text-shadow: 0 3px 0 #64285f,0 6px 18px #19082b; }
.halloween-family-banner .halloween-family-banner__content p { max-width: 520px; margin: 0 0 14px; padding: 0; border: 0; background: transparent; color: #fff7e9; font-size: 1.05rem; line-height: 1.5; text-align: center; }
.halloween-family-banner .halloween-family-banner__site { min-height: 42px; border: 1px solid #ffd27d; padding: 8px 24px; background: linear-gradient(135deg,#ff9b18,#fb511b); color: #fff; box-shadow: 0 6px 20px #16072e55; }
.halloween-family-banner .halloween-family-banner__sign { display: none; }
.halloween-final-cta .halloween-final-cta__desktop::before { background: linear-gradient(90deg,rgba(31,10,60,.45),rgba(36,10,65,.77) 50%,rgba(31,10,60,.45)); }
.halloween-final-cta .halloween-final-cta__panel { position: relative; z-index: 3; width: min(850px,64%); min-height: 0; padding: 32px 40px; border: 2px solid #ffd174; border-radius: 38px; background: linear-gradient(135deg,rgba(79,28,112,.96),rgba(35,12,73,.97)); box-shadow: 0 0 0 7px #ffffff0c,0 18px 45px #10031d77,inset 0 1px 0 #ffffff2a; }
.halloween-final-cta .halloween-final-cta__panel p { color: #ffdc8c; font-size: 1.25rem; }
.halloween-final-cta .halloween-final-cta__panel h2 { color: #fff8e9; font-size: clamp(2rem,2.9vw,3rem); line-height: 1.15; text-shadow: 0 3px 0 #210b39; }
.halloween-final-cta .halloween-final-cta__panel .halloween-button { border: 2px solid #ffc15c; background: linear-gradient(135deg,#ff9a18,#ff4f1b); box-shadow: 0 7px 20px #12042266; }
@media(max-width: 1200px) {
  .halloween-family-banner > .halloween-family-banner__desktop,
  .halloween-final-cta > .halloween-final-cta__desktop { min-height: 430px; height: auto; padding: 36px 0 96px; }
  .halloween-family-banner .halloween-family-banner__desktop::before,
  .halloween-final-cta .halloween-final-cta__desktop::before { background: linear-gradient(180deg,rgba(35,10,65,.88),rgba(42,12,77,.79) 72%,rgba(35,10,65,.48)); }
  .halloween-family-banner .halloween-family-banner__desktop::after,
  .halloween-final-cta .halloween-final-cta__desktop::after { inset: auto 0 0; height: 150px; background-size: 100% 100%; }
  .halloween-family-banner .halloween-family-banner__content { width: calc(100% - 40px); padding: 0; align-items: center; text-align: center; }
  .halloween-family-banner .halloween-eyebrow { max-width: 100%; font-size: .75rem; padding: 6px 12px; }
  .halloween-family-banner .halloween-family-banner__content h2 { font-size: clamp(2rem,9vw,3rem); margin-bottom: 16px; }
  .halloween-family-banner .halloween-family-banner__content p { max-width: 310px; color: #fff7e9; font-size: .95rem; text-align: center; }
  .halloween-family-banner .halloween-family-banner__site { min-height: 44px; }
  .halloween-final-cta .halloween-final-cta__panel { width: calc(100% - 36px); box-sizing: border-box; padding: 26px 18px; border-radius: 28px; }
  .halloween-final-cta .halloween-final-cta__panel p { font-size: 1rem; }
  .halloween-final-cta .halloween-final-cta__panel h2 { font-size: clamp(1.7rem,7.4vw,2.3rem); margin-bottom: 20px; }
  .halloween-final-cta .halloween-final-cta__panel .halloween-button { min-height: 48px; font-size: 1rem; }
}
/* Finale: an admission-ticket composition, distinct from the family banner. */
.halloween-final-cta .halloween-final-cta__desktop { justify-content: flex-end; padding-right: max(8%,calc((100% - 1200px)/2)); box-sizing: border-box; }
.halloween-final-cta .halloween-final-cta__desktop::before { background: linear-gradient(100deg,rgba(17,47,70,.25),rgba(25,12,61,.65)); }
.halloween-final-cta .halloween-final-cta__desktop::after { inset: auto auto 0 0; width: 45%; height: 95%; background-size: 220% 100%; background-position: left bottom; }
.halloween-final-cta .halloween-final-cta__panel { width: min(810px,64%); padding: 32px 55px 32px 42px; align-items: flex-start; border: 0; border-radius: 12px; background: #fff2d1; color: #29164b; text-align: left; transform: rotate(-2deg); box-shadow: 10px 12px 0 #fa7824,0 22px 44px #14082266; }
.halloween-final-cta .halloween-final-cta__panel::before { position: absolute; content: ''; top: 18px; bottom: 18px; right: 25px; border-left: 2px dashed #d69f61; }
.halloween-final-cta .halloween-final-cta__panel::after { position: absolute; content: ''; right: -13px; top: calc(50% - 13px); width: 26px; height: 26px; border-radius: 50%; background: #392651; }
.halloween-final-cta__ticket-label { display: inline-block; margin-bottom: 12px; padding: 5px 11px; border-radius: 5px; background: #35174f; color: #ffda6d; font-size: .75rem; font-weight: 1000; letter-spacing: .13em; }
.halloween-final-cta .halloween-final-cta__panel p { margin: 0 0 8px; color: #985027; font-size: 1.1rem; font-weight: 900; }
.halloween-final-cta .halloween-final-cta__panel h2 { margin: 0 0 22px; color: #321750; font-size: clamp(2rem,2.8vw,3rem); line-height: 1.12; text-shadow: none; }
.halloween-final-cta .halloween-final-cta__panel .halloween-button { border-color: #fa7023; border-radius: 12px; background: #f65b20; box-shadow: 0 4px 0 #b93420; }
@media(max-width: 1200px) {
 .halloween-final-cta > .halloween-final-cta__desktop { min-height: 450px; padding: 38px 22px 115px; justify-content: center; }
 .halloween-final-cta .halloween-final-cta__desktop::after { width: 100%; height: 120px; background-size: 165% 100%; background-position: left bottom; }
 .halloween-final-cta .halloween-final-cta__panel { width: 100%; padding: 26px 32px 28px 22px; transform: rotate(-2deg); align-items: flex-start; text-align: left; border-radius: 10px; }
 .halloween-final-cta__ticket-label { font-size: .66rem; letter-spacing: .08em; }
 .halloween-final-cta .halloween-final-cta__panel p { color: #985027; font-size: .95rem; }
 .halloween-final-cta .halloween-final-cta__panel h2 { color: #321750; font-size: clamp(1.65rem,7.5vw,2.1rem); }
 .halloween-final-cta .halloween-final-cta__panel::before { right: 16px; }
 .halloween-final-cta .halloween-final-cta__panel .halloween-button { font-size: 1rem; min-height: 48px; }
}
/* Tighter desktop rhythm between highlights, activity cards and visitor links. */
@media (min-width: 1201px) {
  .halloween-highlights { padding-bottom: 24px; }
  .halloween-stories { padding-top: 0; padding-bottom: 20px; }
  .halloween-stories .halloween-story-card:last-child { margin-bottom: 0; }
  .halloween-links { padding-top: 20px; }
}
/* Seasonal motion is scoped to this landing page. */
.hw-atmosphere { position: absolute; z-index: 5; inset: 0; overflow: hidden; pointer-events: none; user-select: none; }
.hw-ember { position: absolute; left: var(--x); bottom: -12px; width: var(--size); height: var(--size); border-radius: 50%; background: #ffd76a; box-shadow: 0 0 10px #ffa12d; opacity: 0; animation: hw-ember-rise var(--duration) linear var(--delay) infinite; }
.hw-bat { position: absolute; top: 9%; left: -90px; width: 48px; color: #301444; opacity: 0; animation: hw-bat-pass 24s ease-in-out var(--delay) infinite; filter: drop-shadow(0 2px 1px #ffffff55); }
.hw-bat svg { display: block; width: 100%; height: auto; animation: hw-bat-flutter .7s ease-in-out infinite alternate; }
.hw-reveal { opacity: 0; translate: 0 18px; transition: opacity .55s ease var(--hw-delay,0ms), translate .55s ease var(--hw-delay,0ms); }
.hw-reveal.hw-visible { opacity: 1; translate: 0 0; }
.halloween-family-banner__desktop::after { animation: hw-lantern-glow 5s ease-in-out infinite; }
.halloween-final-cta__panel .halloween-button { animation: hw-button-glow 4s ease-in-out infinite; }
.hw-paused .hw-atmosphere *, .hw-paused .halloween-family-banner__desktop::after, .hw-paused .halloween-final-cta__panel .halloween-button { animation-play-state: paused; }
@keyframes hw-ember-rise { 0% { opacity: 0; transform: translate3d(0,0,0); } 15% { opacity: .65; } 80% { opacity: .5; } 100% { opacity: 0; transform: translate3d(24px,-320px,0); } }
@keyframes hw-bat-pass { 0%,62% { opacity: 0; transform: translate3d(0,0,0); } 65% { opacity: .8; } 78% { opacity: .8; } 82%,100% { opacity: 0; transform: translate3d(110vw,25px,0); } }
@keyframes hw-bat-flutter { from { transform: scaleY(.78) rotate(-5deg); } to { transform: scaleY(1) rotate(5deg); } }
@keyframes hw-lantern-glow { 0%,100% { opacity: .88; } 50% { opacity: 1; } }
@keyframes hw-button-glow { 0%,100% { filter: drop-shadow(0 0 0 #ffaf3200); } 50% { filter: drop-shadow(0 0 9px #ffaf3266); } }
@media (hover: hover) and (pointer: fine) {
 .halloween-gallery-grid figure { transition: transform .25s ease, box-shadow .25s ease; }
 .halloween-gallery-grid figure:hover { transform: translateY(-5px) rotate(-1deg); box-shadow: 0 15px 30px #44205c20; }
 .halloween-highlight-card { transition: transform .25s ease; }
 .halloween-highlight-card:hover { transform: translateY(-4px); }
}
.halloween-button:active, .halloween-info-card__help-action:active { scale: .97; }
@media (max-width: 1200px) {
 .hw-bat { width: 32px; top: 5%; }
 .hw-reveal { translate: 0 12px; }
 .hw-reveal.hw-visible { translate: 0 0; }
 .hw-ember { box-shadow: 0 0 6px #ffa12d; }
}
@media (prefers-reduced-motion: reduce) {
 .hw-atmosphere { display: none; }
 .hw-reveal { opacity: 1; translate: none; transition: none; }
 .halloween-family-banner__desktop::after, .halloween-final-cta__panel .halloween-button { animation: none; }
 .halloween-gallery-grid figure, .halloween-highlight-card { transition: none; }
 .halloween-gallery-grid figure:hover, .halloween-highlight-card:hover { transform: none; }
 .halloween-button:active, .halloween-info-card__help-action:active { scale: none; }
}
/* Scroll progress and subtle depth for the seasonal landing page. */
.hw-scroll-meter { position: fixed; z-index: 9970; top: 0; left: 0; right: 0; height: 4px; pointer-events: none; background: #32145012; }
.hw-scroll-meter[hidden] { display: none; }
.hw-scroll-meter__fill { display: block; height: 100%; width: 100%; background: linear-gradient(90deg,#6522a6,#ff7925,#ffdf69); transform-origin: left; transform: scaleX(var(--hw-progress,0)); box-shadow: 0 1px 8px #ff922a66; }
.hw-scroll-meter__pumpkin { position: absolute; top: 5px; left: clamp(12px,calc(var(--hw-progress,0) * 100%),calc(100% - 16px)); font-size: 22px; line-height: 1; transform: translateX(-50%) rotate(calc(var(--hw-progress,0) * 120deg)); filter: drop-shadow(0 2px 2px #38114f33); }
.halloween-family-banner .halloween-family-banner__scene,
.halloween-final-cta .halloween-final-cta__scene { inset: -26px 0; height: calc(100% + 52px); transform: translate3d(0,var(--hw-scene-shift,0px),0); }
.halloween-gallery-grid figure.hw-reveal { rotate: var(--hw-photo-angle,0deg); transition: opacity .6s ease var(--hw-delay,0ms),translate .6s ease var(--hw-delay,0ms),rotate .8s ease var(--hw-delay,0ms),box-shadow .25s ease; }
.halloween-gallery-grid figure.hw-visible { rotate: 0deg; }
.halloween-story-card.hw-reveal .halloween-story-card__image { opacity: .65; scale: .97; transition: opacity .7s ease,scale .7s ease; }
.halloween-story-card.hw-visible .halloween-story-card__image { opacity: 1; scale: 1; }
@media(max-width:1200px) {
 .hw-scroll-meter { height: 3px; }
 .hw-scroll-meter__pumpkin { font-size: 17px; top: 4px; }
 .halloween-family-banner .halloween-family-banner__scene,
 .halloween-final-cta .halloween-final-cta__scene { inset: -12px 0; height: calc(100% + 24px); }
}
@media(prefers-reduced-motion:reduce) {
 .hw-scroll-meter { display: none; }
 .halloween-family-banner .halloween-family-banner__scene,
 .halloween-final-cta .halloween-final-cta__scene { transform: none; }
 .halloween-gallery-grid figure.hw-reveal { rotate: none; transition: none; }
 .halloween-story-card.hw-reveal .halloween-story-card__image { opacity: 1; scale: 1; transition: none; }
}

/* Keep Halloween gutter decorations clear of the 1200px reading area and chat. */
.hw-gutter-friends { position: fixed; inset: 0; z-index: 20; pointer-events: none; user-select: none; opacity: 0; transition: opacity .4s ease; }
.hw-gutter-friends.is-active { opacity: .85; }
.hw-gutter { position: absolute; top: 105px; bottom: 125px; width: max(0px,calc((100% - 1200px)/2 - 34px)); overflow: hidden; }
.hw-gutter--left { left: 0; }
.hw-gutter--right { right: 0; }
.hw-gutter-friend { position: absolute; top: var(--level); left: calc(50% - 23px); font-size: clamp(30px,2.7vw,48px); line-height: 1; filter: drop-shadow(0 5px 5px #49225520); }
.hw-gutter-star { position: absolute; left: 48%; color: #f5a42a; font-style: normal; font-size: 26px; animation: hw-gutter-sparkle 3s ease-in-out infinite alternate; }
@keyframes hw-gutter-sparkle { from { opacity: .3; scale: .8; } to { opacity: .9; scale: 1.15; } }
@media(max-width:1439px),(prefers-reduced-motion:reduce) { .hw-gutter-friends { display: none; } }
/* Continuous wandering paths replace the fixed vertical icon positions. */
.hw-gutter-friends .hw-gutter-friend { top: 0; left: 0; display: block; width: 48px; height: 54px; line-height: 54px; text-align: center; }
.hw-gutter-friends .hw-gutter-bery { width: 84px; height: 91px; object-fit: contain; filter: drop-shadow(0 6px 5px #49225533); }
.hw-gutter-friends.is-active { opacity: .95; }


.halloween-hero__mobile-soap { display: none; }
@media(min-width:1201px) {
 .halloween-hero__event-copy { position: absolute; z-index: 6; left: 8.4%; top: 64%; width: 36%; color: #183b63; font-family: inherit; }
 .halloween-hero__event-copy p { margin: 0 0 10px; font: 800 clamp(.72rem,1.12vw,1.15rem)/1.4 Nunito,'Trebuchet MS',sans-serif; }
 .halloween-hero__event-times { display: flex; flex-wrap: wrap; gap: 8px; }
 .halloween-hero__event-times span { display: inline-flex; align-items: center; padding: 7px 12px; border-radius: 999px; border: 1px solid #d0e9f7; background: #fff; font: 900 clamp(.65rem,.9vw,.95rem)/1.3 Nunito,'Trebuchet MS',sans-serif; box-shadow: 0 3px 8px #123b6614; }
}
@media(max-width:1200px) {
 .halloween-hero__event-copy { display: none; }
 .halloween-hero__mobile-soap { position: relative; display: block; margin-top: -13px; padding: 12px 12px 16px; background: linear-gradient(#0cbbeb,#ecfbff); }
 .halloween-hero__art .halloween-hero__mobile-soap img { display: block; width: 100%; height: auto; object-fit: contain; }
 .halloween-hero__mobile-details { margin-top: 0; padding: 14px; }
 .halloween-hero__mobile-details .halloween-hero__actions { margin-top: 0; }
}
/* Blend the mobile foam-party title into the hero's lower foam and waves. */
@media(max-width:1200px) {
 .halloween-hero__mobile-soap { position: relative; z-index: 2; isolation: isolate; margin-top: -58px; padding: 5px 12px 16px; background: transparent; }
 .halloween-hero__mobile-soap::before { position: absolute; z-index: -1; content: ''; inset: -22px 0 0; pointer-events: none; background: linear-gradient(180deg,rgba(16,184,228,0) 0%,rgba(16,184,228,.35) 21%,#14b8df 47%,#ecfbff 100%); }
 .halloween-hero__art .halloween-hero__mobile-soap img { position: relative; display: block; width: 100%; height: auto; margin: 0; filter: drop-shadow(0 3px 3px rgba(10,87,144,.12)); }
 .halloween-hero__mobile-details { position: relative; z-index: 3; }
}
/* Mobile-style offer ribbon, confined to the existing desktop copy line. */
@media(min-width:1201px) {
 .halloween-hero__event-copy .halloween-hero__offer { position: relative; isolation: isolate; display: inline; white-space: nowrap; font-family: Nunito,'Trebuchet MS',sans-serif; font-size: clamp(.65rem,1.04vw,1.1rem); font-weight: 1000; color: #173b63; letter-spacing: -.025em; text-shadow: 0 1px 0 #fff6; }
 .halloween-hero__offer::before { position: absolute; z-index: -1; content: ''; inset: -5px -12px; border: 1px solid #fff5a0; border-radius: 999px; background: linear-gradient(180deg,#fff369,#ffe23e); box-shadow: 0 3px 0 #e7a72b,0 5px 10px #16415a14; transform: rotate(-.6deg); }
}
@media(min-width:1201px) {
 .halloween-hero__event-copy p { line-height: 1.5; }
 .halloween-hero__event-copy .halloween-hero__offer { display: inline-block; margin-bottom: 6px; padding: 3px 10px; border: 1px solid #fff5a0; border-radius: 999px; background: linear-gradient(#fff369,#ffe23e); box-shadow: 0 2px 0 #e7a72b; line-height: 1.3; }
 .halloween-hero__offer::before { display: none; }
 .halloween-hero__event-copy { width: 39%; }
 .halloween-hero__event-times span { padding: 5px 10px; }
}
.hw-gutter-friends .hw-gutter { width: 100%; left: 0; right: 0; overflow: visible; }

/* Continue the mobile poster's water into a playful, easy-to-tap action area. */
@media (max-width: 1200px) {
  .halloween-hero { padding-bottom: 0; }
  .halloween-hero__mobile-art { position: relative; }
  .halloween-hero__mobile-art::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 28px;
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, #05a9eb);
  }
  .halloween-hero__mobile-details {
    max-width: none;
    margin: 0;
    padding: 16px 16px 24px;
    border: 0;
    border-radius: 0;
    background: linear-gradient(180deg, #05a9eb 0%, #8adff5 48%, #fff9ed 100%);
    box-shadow: none;
  }
  .halloween-hero__mobile-details .halloween-hero__actions {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 10px;
    max-width: 520px;
    margin: 0 auto;
  }
  .halloween-hero__mobile-details .halloween-button {
    min-height: 48px;
    padding: 10px 12px;
    border: 2px solid #fff;
    color: #073d67;
    text-align: center;
    box-shadow: 0 4px 0 rgba(0, 98, 155, .23), 0 6px 14px rgba(0, 80, 130, .16);
  }
  .halloween-hero__mobile-details .halloween-button--orange { background: linear-gradient(#fff477, #ffce25); }
  .halloween-hero__mobile-details .halloween-button--blue { background: linear-gradient(#fff, #e4f8ff); }
  .halloween-hero__mobile-details .halloween-button:focus-visible { outline: 3px solid #073d67; outline-offset: 3px; }
}
@media (max-width: 340px) {
  .halloween-hero__mobile-details .halloween-hero__actions { grid-template-columns: 1fr; }
}

/* Carry the poster's water, sunshine and foam colours through the page. */
.halloween-landing { --hw-ink: #073d67; --hw-muted: #365d76; --hw-border: #c5edf9; }
.halloween-highlights { background: linear-gradient(180deg, #fff9ed, #e8faff); }
.halloween-stories, .halloween-links, .halloween-gallery { background: #e8faff; }
.halloween-eyebrow { color: #087bb9; }
.halloween-section__heading h2, .halloween-story-card__copy h2 { color: #073d67; }
.halloween-highlight-card, .halloween-story-card, .halloween-info-card, .halloween-gallery-grid figure {
  border-color: #c5edf9;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 115, 174, .10);
}
.halloween-stories .halloween-story-card {
  background:
    radial-gradient(circle at 94% 18%, rgba(255, 217, 65, .25) 0 4px, transparent 5px),
    radial-gradient(circle at 88% 78%, rgba(21, 175, 226, .16) 0 7px, transparent 8px),
    radial-gradient(circle at 56% 12%, rgba(255, 171, 54, .16) 0 3px, transparent 4px),
    linear-gradient(125deg, #fffdf4, #eefbff);
}
.halloween-stories .halloween-story-card--reverse {
  background:
    radial-gradient(circle at 6% 18%, rgba(255, 217, 65, .25) 0 4px, transparent 5px),
    radial-gradient(circle at 12% 78%, rgba(21, 175, 226, .16) 0 7px, transparent 8px),
    radial-gradient(circle at 44% 12%, rgba(255, 171, 54, .16) 0 3px, transparent 4px),
    linear-gradient(235deg, #fffdf4, #eefbff);
}
.halloween-stories .halloween-story-card__copy { position: relative; isolation: isolate; }
.halloween-stories .halloween-story-card__copy::after {
  content: '✦';
  position: absolute;
  z-index: -1;
  top: 8px;
  right: 15px;
  color: rgba(255, 186, 26, .22);
  font-size: 2.5rem;
  line-height: 1;
  pointer-events: none;
}
.halloween-highlight-card .halloween-highlight-card__image h3,
.halloween-highlight-card:nth-child(2) .halloween-highlight-card__image h3,
.halloween-highlight-card:nth-child(3) .halloween-highlight-card__image h3 {
  background: #087dbd;
  color: #fff;
}
.halloween-info-card__icon,
.halloween-info-card:nth-child(2) .halloween-info-card__icon,
.halloween-info-card:nth-child(3) .halloween-info-card__icon { background: #d9f5ff; }
.halloween-info-card--help { background: #dff7ff; }
.halloween-info-card__help-action, .halloween-family-banner .halloween-family-banner__site {
  border: 2px solid #fff;
  border-radius: 999px;
  background: linear-gradient(#fff477, #ffce25);
  color: #073d67;
  box-shadow: 0 4px 0 rgba(0, 98, 155, .2);
}
.halloween-family-banner .halloween-family-banner__scene,
.halloween-final-cta .halloween-final-cta__scene { filter: brightness(.85) saturate(1.05); }
.halloween-family-banner .halloween-family-banner__desktop::before,
.halloween-final-cta .halloween-final-cta__desktop::before {
  background: linear-gradient(90deg, rgba(0, 89, 145, .88), rgba(0, 132, 191, .68));
}
.halloween-family-banner .halloween-eyebrow { border-color: #fff; background: #ffe653; color: #073d67; }
.halloween-family-banner .halloween-family-banner__content h2 span { color: #ffe653; text-shadow: 0 3px 0 #005991; }
.halloween-family-banner .halloween-family-banner__content h2 strong { color: #fff; text-shadow: 0 3px 0 #005991; }
.halloween-final-cta .halloween-final-cta__panel {
  border: 3px solid #fff;
  border-radius: 28px;
  background: #e8faff;
  color: #073d67;
  transform: none;
  box-shadow: 0 10px 0 rgba(0, 92, 153, .25), 0 18px 35px rgba(0, 60, 105, .2);
}
.halloween-final-cta .halloween-final-cta__panel::before,
.halloween-final-cta .halloween-final-cta__panel::after { display: none; }
.halloween-final-cta__ticket-label { border-radius: 999px; background: #ffe653; color: #073d67; }
.halloween-final-cta .halloween-final-cta__panel p,
.halloween-final-cta .halloween-final-cta__panel h2 { color: #073d67; text-shadow: none; }
.halloween-final-cta .halloween-final-cta__panel .halloween-button {
  border: 2px solid #fff;
  border-radius: 999px;
  background: linear-gradient(#fff477, #ffce25);
  color: #073d67;
  box-shadow: 0 4px 0 rgba(0, 98, 155, .2);
  animation: none;
}
.halloween-landing a:focus-visible { outline: 3px solid #073d67; outline-offset: 3px; }
@media (min-width: 1201px) {
  .halloween-stories .halloween-story-card {
    max-width: none;
    margin-inline: auto;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 24px;
    padding: 12px;
  }
  .halloween-stories .halloween-story-card--reverse { grid-template-columns: minmax(0, 1fr) 280px; }
  .halloween-stories .halloween-story-card__copy { padding: 16px 20px; }
  .halloween-stories .halloween-story-card__copy h2 { font-size: clamp(1.5rem, 2vw, 2rem); }
}
.halloween-desktop-header .halloween-desktop-header__cta,
.halloween-hero__desktop .halloween-hero__actions .halloween-button--orange {
  background: linear-gradient(#fff477, #ffce25);
  color: #073d67;
  box-shadow: 0 4px 0 rgba(0, 98, 155, .2);
}
.halloween-desktop-header .halloween-desktop-header__cta:hover { color: #073d67; }
@media (min-width: 1201px) and (max-width: 1599px) {
  .halloween-desktop-header__inner {
    width: min(1200px, calc(100% - 32px));
    gap: 12px;
    padding-inline: 16px;
  }
  .halloween-hero__desktop .halloween-hero__actions {
    left: 13%;
    gap: 8px;
  }
  .halloween-hero__desktop .halloween-hero__actions .halloween-button {
    min-height: 44px;
    padding: 9px 15px;
    font-size: .88rem;
  }
}
.halloween-brand-highlight { font-style: normal; }
.halloween-family-banner .halloween-brand-highlight {
  color: #ffe34c;
  text-shadow: 0 2px 0 #b96b00, 0 4px 0 #005991;
}
.halloween-final-cta .halloween-brand-highlight {
  color: #007fc1;
  text-decoration: underline;
  text-decoration-color: #ffcf28;
  text-decoration-thickness: .12em;
  text-underline-offset: .12em;
}

/* Little lights sit inside the three highlight photos, without covering their links or captions. */
.halloween-highlight-card__image::after {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 7px;
  border-radius: 15px;
  pointer-events: none;
  background:
    radial-gradient(circle, #fff6bc 0 2px, #ffb82e 3px, transparent 5px) top left / 24px 9px repeat-x,
    radial-gradient(circle, #fff6bc 0 2px, #ffb82e 3px, transparent 5px) bottom left / 24px 9px repeat-x,
    radial-gradient(circle, #fff6bc 0 2px, #ffb82e 3px, transparent 5px) top left / 9px 24px repeat-y,
    radial-gradient(circle, #fff6bc 0 2px, #ffb82e 3px, transparent 5px) top right / 9px 24px repeat-y;
  filter: drop-shadow(0 0 3px #ffe46c);
  animation: halloween-card-lights 2.4s ease-in-out infinite alternate;
}
.halloween-highlight-card:nth-child(2) .halloween-highlight-card__image::after { animation-delay: -.8s; }
.halloween-highlight-card:nth-child(3) .halloween-highlight-card__image::after { animation-delay: -1.6s; }
.halloween-highlight-card__image figcaption { z-index: 2; }
@keyframes halloween-card-lights {
  from { opacity: .55; filter: drop-shadow(0 0 1px #ffe46c); }
  to { opacity: 1; filter: drop-shadow(0 0 5px #ffe46c); }
}
@media (prefers-reduced-motion: reduce) {
  .halloween-highlight-card__image::after { animation: none; }
}
.hw-gutter-friends .hw-gutter-friend { opacity: .88; }
@media(min-width:1201px) {
 .halloween-hero__soap-line { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 8px; margin: 3px 0 4px; }
 .halloween-hero__soap-name { color: #0873c5; font-size: 1.12em; font-weight: 1000; text-shadow: 0 1px 0 #fff,1px 0 #fff,-1px 0 #fff; }
 .halloween-hero__weekend { display: inline-block; padding: 3px 9px; border-radius: 999px; background: linear-gradient(135deg,#713dc6,#4130a0); color: #fff; font-size: .78em; font-weight: 900; line-height: 1.25; box-shadow: 0 2px 5px #4930a025; }
 .halloween-hero__soap-note { display: block; color: #8b348e; font-weight: 900; font-size: .88em; letter-spacing: .01em; text-shadow: 0 1px 0 #fff; }
}

