/* */
.page-hero--r-trampoline{background-image:url('../assets/photos/main-trampoline.jpg')}
.page-hero--r-party{background-image:url('../assets/photos/trampoline-court.jpg')}
.page-hero--r-court{background-image:url('../assets/photos/super-trampoline.jpg')}
.page-hero--r-climb{background-image:url('../assets/photos/climbing-wall.jpg')}
.page-hero--r-rope{background-image:url('../assets/photos/rope-course.jpg')}
.ph{display:inline-block;background:#fff3a6;color:#8a1c00;border:2px dashed #e0531b;border-radius:6px;padding:0 .4em;font-weight:800;font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:0;text-transform:none;line-height:1.5;font-size:.95em}
.amt .ph{font-size:.5em;vertical-align:middle}
.rd-preview-bar{position:relative;z-index:200;background:rgba(36,19,10,.92);color:#fff;text-align:center;font:600 12px/1.4 system-ui,sans-serif;padding:5px 12px}
@media (max-width:768px){.rd-preview-bar{font-size:11px}}
.rd-preview-bar .ph{font-size:12px}
.small-note{font-size:.9rem;color:var(--muted)}
/* */
.hero-vimeo{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;container-type:size}
.hero-vimeo iframe{opacity:0;transition:opacity .8s;position:absolute;top:50%;left:50%;border:0;width:max(100cqw,177.78cqh);height:max(100cqh,56.25cqw);transform:translate(-50%,-50%)}
@media (prefers-reduced-motion:reduce){.hero-vimeo{display:none}}
.hero-vimeo.is-playing iframe{opacity:1}
/* */
.video-feature .vf-player{position:relative;width:100%;max-width:960px;margin:16px auto 0;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:var(--shadow)}
.video-feature .vf-poster{all:unset;cursor:pointer;position:absolute;inset:0;display:block}
.video-feature .vf-poster img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease),filter .3s}
.video-feature .vf-poster:hover img,.video-feature .vf-poster:focus-visible img{transform:scale(1.03);filter:brightness(.85)}
.video-feature .vf-poster:focus-visible{outline:3px solid var(--plate);outline-offset:-3px}
.video-feature .vf-play{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 10px rgba(255,255,255,.35),0 12px 30px rgba(0,0,0,.45);display:grid;place-items:center;transition:transform .3s var(--spring)}
.video-feature .vf-poster:hover .vf-play{transform:scale(1.1)}
.video-feature .vf-play svg{width:44px;height:44px;fill:#fff;margin-left:6px}
.video-feature .vf-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* */
.attr-vhero{position:relative;overflow:hidden;min-height:clamp(420px,62vh,600px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:#111}
.attr-vhero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.attr-vhero .hero-vimeo{z-index:0}
.attr-vhero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.45) 100%)}
.attr-vhero .container{position:relative;z-index:2;padding:48px 20px}
.attr-vhero h1{color:#fff;font-size:clamp(2.6rem,7vw,5.6rem);margin:.15em 0 .25em;text-shadow:0 3px 14px rgba(0,0,0,.55)}
.attr-vhero p{color:#fff;max-width:680px;margin:0 auto 1.2em;font-size:clamp(1.05rem,1.6vw,1.22rem);font-weight:600;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.attr-vhero .eyebrow{background:rgba(255,255,255,.92);color:var(--orange-ink)}
/* */
@media (max-width:1200px){
  .mobile-cta-bar{display:flex;width:100%}
  .mobile-cta-bar .mcta{flex:1 1 50%;min-width:0;height:56px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-head);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;text-decoration:none;text-shadow:0 1px 2px rgba(0,0,0,.35);white-space:nowrap}
  .mobile-cta-bar .mcta::after{content:none}
  .mobile-cta-bar .mcta-tickets{background:#1E6FE0}
  .mobile-cta-bar .mcta-party{background:var(--green)}
  .mobile-cta-bar .mcta:hover,.mobile-cta-bar .mcta:focus-visible{color:#fff;filter:brightness(1.08)}
  .mobile-cta-bar .mcta:focus-visible{outline:3px solid #fff;outline-offset:-5px}
  .main-nav .mobile-ctas{display:none !important}
  html{scroll-padding-top:152px}
}
@media (max-width:1200px) and (max-height:500px){
  .mobile-cta-bar .mcta{height:42px;font-size:.9rem}
  html{scroll-padding-top:130px}
}
/* Landscape phones: let the open hamburger menu scroll instead of running off the bottom of the screen */
@media (max-width:1200px) and (max-height:500px){
  body.nav-open .main-nav{max-height:calc(100vh - 165px);max-height:calc(100dvh - 165px);overflow-y:auto;overscroll-behavior:contain}
}
/* */
@media (min-width:769px) and (max-width:1200px){ .header-ctas{display:none!important} }
@media (min-width:769px) and (max-width:1200px){ .nav-toggle{margin-left:auto!important} }
/* */
.site-footer a[href^="mailto:"]{overflow-wrap:anywhere}
.page-hero--r-party-k{background-image:url('../assets/party/party-hero.webp')}
.page-hero--r-partyroom-k{background-image:url('../assets/party/party-room.jpg')}

/* */
.page-hero .pkg-day-note{display:flex;align-items:flex-start;gap:14px;max-width:720px;margin:1.4em auto 0;padding:16px 20px;background:#FFFBF4;border:3px solid var(--orange,#FF991C);border-radius:14px;box-shadow:0 10px 26px -12px rgba(120,55,0,.45);text-align:left;color:#2A1A0A;font-size:clamp(.98rem,1.4vw,1.08rem);line-height:1.5;font-weight:500;text-shadow:none}
.page-hero .pkg-day-note .pkg-day-note__icon{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:var(--orange-tint,#FFF0DD);color:var(--orange-ink,#A24E00);display:flex;align-items:center;justify-content:center}
.page-hero .pkg-day-note .pkg-day-note__icon svg{width:22px;height:22px}
.page-hero .pkg-day-note p{margin:0;max-width:none;font-size:inherit;color:inherit;font-weight:inherit;text-shadow:none}
.page-hero .pkg-day-note strong{font-weight:800;color:var(--orange-ink,#A24E00)}
.page-hero .pkg-day-note .pkg-day-note__lead{color:#2A1A0A}
@media (max-width:600px){.page-hero .pkg-day-note{gap:12px;padding:14px 14px;border-radius:12px;font-size:.97rem}.page-hero .pkg-day-note .pkg-day-note__icon{flex-basis:34px;width:34px;height:34px}.page-hero .pkg-day-note .pkg-day-note__icon svg{width:19px;height:19px}}
/* Attractions: 19 cards — keep the 3-col / 2-col grid and center the last orphan card */
.grid.attr-grid{grid-template-columns:repeat(6,1fr)}
.attr-grid>*{grid-column:span 2}
.attr-grid>:last-child:nth-child(3n+1){grid-column:3/5}
@media (max-width:980px){.grid.attr-grid{grid-template-columns:repeat(4,1fr)}.attr-grid>:last-child:nth-child(3n+1){grid-column:span 2}.attr-grid>:last-child:nth-child(odd){grid-column:2/4}}
@media (max-width:680px){.grid.attr-grid{grid-template-columns:1fr}.attr-grid>*,.attr-grid>:last-child:nth-child(odd),.attr-grid>:last-child:nth-child(3n+1){grid-column:auto}}
.toddler-special{max-width:640px;margin-left:auto;margin-right:auto;text-align:center;border:3px solid var(--orange,#FF991C)}.toddler-special h3{margin:.3em 0}
.toddler-special{margin-bottom:22px}
.video-feature .vf-player--portrait{max-width:380px;aspect-ratio:9/16}
.video-feature .vf-player video{position:absolute;inset:0;width:100%;height:100%;background:#000;object-fit:contain}
.attr-grid>:nth-last-child(2):nth-child(3n+1){grid-column:2/4}
@media (max-width:980px){.attr-grid>:nth-last-child(2):nth-child(3n+1){grid-column:span 2}}
@media (max-width:680px){.attr-grid>:nth-last-child(2):nth-child(3n+1){grid-column:auto}}

/* 2026-10-18 (Mike: "改成east Hartford的那种排版"): home order now matches the East Hartford Nova site —
   hero (video + promo flyers) -> "in action" video -> 3 tiles. The tiles no longer sit on the hero at all.
   Flyers crossfade sequentially so two flyers (and the party flyer's email line) never show over each other or the dots. */
@media (min-width:769px){
  .hero-promo{transition:opacity .3s var(--ease),visibility 0s .3s}
  .hero-promo.is-active{transition:opacity .45s var(--ease) .3s,visibility 0s}
}
.video-feature + section.container > .tiles{margin-top:-24px}
@media (max-width:980px){ .video-feature + section.container > .tiles{margin-top:4px} }

/* 2026-10-18 a11y: benefit + footer headings are h3 (valid heading order) styled exactly like the old h4s */
h3.h4{font-weight:800;line-height:inherit}
.benefit h3.h4{font-size:1rem;margin:0 0 .3em;letter-spacing:0}
.site-footer h3.h4{color:var(--on-field);font-size:1.02rem;margin-bottom:1em;letter-spacing:.06em}
/* a11y: white "Book a Party" bar text needs >=4.5:1 — slightly deeper Nova green (#15840A) on the mobile CTA only */
.mcta-party,.mobile-cta-bar .mcta-party{background:#15840A}

/* 2026-10-18: LilyPad "Package A TABLE" (weekend, $300 first 11 kids, party table instead of room) */
.pkg-table-opt{display:flex;align-items:center;gap:18px 26px;flex-wrap:wrap;margin-top:18px;padding:16px 22px;background:#fff;border:2px dashed var(--orange,#f7941d);border-radius:16px;box-shadow:var(--shadow-sm,0 6px 18px -10px rgba(0,0,0,.25))}
.pkg-table-opt__name{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left}
.pkg-table-opt__name .pkg-letter{margin:0}
.pkg-table-opt__desc{font-size:.95rem;line-height:1.45;color:var(--ink-soft,#5a4a3f)}
.pkg-table-opt__price{display:flex;flex-direction:column;align-items:center;line-height:1}
.pkg-table-opt__price .pkg-price{margin:0}
.pkg-table-opt .btn{flex:0 0 auto}
@media (max-width:560px){.pkg-table-opt{flex-direction:column;align-items:stretch;text-align:center}.pkg-table-opt__name{text-align:center;flex-basis:auto}.pkg-table-opt .btn{align-self:center}}

/* prod a11y: 24px tap targets for slider dots (visual dot stays 12px) */
.promo-dot,.hero-dot{box-sizing:content-box;background-clip:content-box!important;padding:6px!important;border-width:0!important;box-shadow:inset 0 0 0 8px transparent}
