/* Cincinnati preview overrides (on top of the Nova template stylesheet) */
.attr-card--icon .attr-icon{height:240px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--field) 0%,var(--field-dk) 100%)}
.attr-card--icon .attr-icon img{width:120px;height:120px;object-fit:contain;filter:brightness(0) invert(1);transform:none}
.small-note{margin-top:14px}
/* Promotions carousel: ONE full poster at a time on every screen size, large & centered (object-fit:contain, no crop) */
/* Desktop (≥769px): like the template, the .promo section is hidden and its posters become hero slides (js/main.js). */
.promo--multi{padding:28px 0 30px}
.promo--multi .promo-frame{max-width:960px;height:min(82vh,860px);min-height:520px;background:radial-gradient(ellipse at center,#5E2205 0%,#2a1205 75%)}
.promo--multi .promo-slide{flex:0 0 100%;padding:18px 80px}
.promo--multi .promo-slide a{height:100%}
.promo--multi .promo-slide img{width:auto;max-width:100%;height:100%;object-fit:contain;border-radius:12px;filter:drop-shadow(0 14px 24px rgba(0,0,0,.5))}
@media (max-width:768px){ .promo--multi .promo-frame{height:auto;min-height:0;aspect-ratio:2/3;max-height:88vh} .promo--multi .promo-slide{padding:10px 8px} }
.attr-card > img{display:block}
/* Card-verification notice: bold red, high contrast on photo/orange backgrounds */
.notice-red{display:inline-block;color:#d10000 !important;font-weight:800;background:rgba(255,255,255,.92);border-left:5px solid #d10000;border-radius:8px;padding:.55em .9em;text-shadow:0 1px 0 #fff;box-shadow:0 6px 16px -8px rgba(0,0,0,.35);max-width:760px}
.notice-red strong{color:#d10000 !important;font-weight:800}
.card .notice-red{display:block;box-shadow:none;background:#fff1f1}
.photo-tiles.four{grid-template-columns:repeat(4,1fr)}
.photo-tiles.four img{height:280px}
.photo-tiles.four img:nth-child(2){transform:none}
@media (max-width:980px){ .photo-tiles.four{grid-template-columns:repeat(2,1fr)} }
@media (max-width:680px){ .photo-tiles.four{grid-template-columns:1fr 1fr;gap:10px} .photo-tiles.four img{height:180px} }
.attr-icon--white{background:#fff !important}

/* ---- Header CTAs always visible (2026-10-17) ----
   769–1200px (tablets, phone landscape, in-between widths): the nav collapses into the hamburger,
   but "Book a Party" + "Buy Tickets" stay in the header bar, compact, right before the hamburger.
   ≤768px keeps the full-width top CTA bar (.mobile-cta-bar). */
@media (min-width:769px) and (max-width:1200px){
  .site-header .header-ctas{display:flex !important;flex:0 0 auto;gap:8px;margin-left:auto;margin-right:0}
  .site-header .header-ctas .btn{padding:9px 13px;font-size:.76rem;letter-spacing:.02em;white-space:nowrap}
  .site-header .nav-toggle{margin-left:0;flex:0 0 auto}
  .main-nav .mobile-ctas{display:none !important}
}
@media (min-width:769px) and (max-width:900px){
  .site-header .header-inner{gap:8px}
  .site-header .header-ctas{gap:6px}
  .site-header .header-ctas .btn{padding:8px 10px;font-size:.7rem}
  .site-header .nav-toggle{width:44px;height:44px}
  .site-header .nav-toggle span{margin:5px 11px}
}
/* Short landscape screens (phones): keep the top CTA bar but slimmer */
@media (max-width:768px) and (max-height:500px){
  .mobile-cta-bar .mcta{height:44px;font-size:.9rem}
  html{scroll-padding-top:130px}
}

/* ---- Long headings never clip (2026-10-17) ----
   Long Cincinnati headings ("Why Parents Love Nova Adventure Park Cincinnati") wrap and scale down
   instead of overflowing the centered container (body has overflow-x:hidden, which clipped the left edge). */
h1,h2,h3{overflow-wrap:break-word;word-wrap:break-word;max-width:100%;min-width:0}
.section.soft .center > h2{font-size:clamp(1.9rem,5.2vw,4.1rem);text-wrap:balance}
.center > h2,.cta-band h2,.page-hero h1{text-wrap:balance}
@media (max-width:480px){
  h2,.section.soft .center > h2{font-size:clamp(1.55rem,8.2vw,2.3rem)}
  .cta-band h2{font-size:clamp(1.7rem,8.6vw,2.4rem)}
  .page-hero h1,.page-hero--compact h1{font-size:clamp(2rem,10vw,2.8rem)}
  .join-card h2{font-size:clamp(1.5rem,7.4vw,2.1rem)}
}

/* ---- Location labels on ticket / booking areas (sister-site pattern: location name in the
   ticket/booking page heading and on the Tickets menu item) — 2026-10-17 ---- */
.loc-pin{width:1.15em;height:1.15em;flex:0 0 auto;fill:currentColor}
.loc-city{text-transform:uppercase;letter-spacing:.03em}
/* header buttons: small location tag */
.loc-tag{display:inline-block;margin-left:.45em;padding:.12em .45em;border-radius:4px;background:rgba(255,255,255,.28);font-size:.82em;letter-spacing:.04em;text-transform:uppercase;line-height:1.25}
.btn-green .loc-tag,.header-ctas .btn-green .loc-tag{background:rgba(94,34,5,.12)}
@media (min-width:769px) and (max-width:900px){ .loc-tag{margin-left:.35em;padding:.1em .35em;font-size:.78em} }
/* phone top bar: two-line buttons */
.mobile-cta-bar .mcta{flex-direction:column;line-height:1.05;gap:3px}
.mcta-loc{font-size:.66rem;letter-spacing:.12em;font-weight:700;opacity:.95}
@media (max-width:768px) and (max-height:500px){ .mcta-loc{font-size:.6rem} .mobile-cta-bar .mcta{gap:2px} }
/* banner above the LilyPad ticket / booking widgets */
.loc-banner{display:flex;align-items:center;gap:14px;max-width:1100px;margin:0 auto 18px;padding:14px 20px;background:#fff;border:2px solid #1E6FE0;border-left-width:8px;border-radius:12px;box-shadow:0 10px 24px -14px rgba(30,111,224,.55);color:#14233d}
.loc-banner > .loc-pin{width:34px;height:34px;color:#1E6FE0}
.loc-banner__text{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:1.02rem;line-height:1.35}
.loc-banner__lead{font-weight:700;color:#3b4a63}
.loc-banner__name{font-family:var(--font-head);font-weight:800;font-size:1.22rem;color:#0d4fb0;text-transform:none}
.loc-banner__addr{flex-basis:100%;font-size:.92rem;color:#3b4a63}
@media (max-width:600px){ .loc-banner{padding:12px 14px;gap:10px} .loc-banner > .loc-pin{width:26px;height:26px} .loc-banner__name{font-size:1.08rem} }
/* small location line under booking / ticket CTAs */
.loc-note{display:flex;align-items:flex-start;justify-content:center;gap:6px;margin:12px 0 0;font-size:.88rem;line-height:1.4;font-weight:600;color:var(--on-field,#2A1A0A)}
.loc-note .loc-pin{margin-top:.12em;color:#1E6FE0}
.hero-card .loc-note,.split-text .loc-note{justify-content:flex-start;text-align:left}
.cta-band .loc-note,.page-hero .loc-note,.center .loc-note{text-align:center}
.page-hero .loc-note{display:inline-flex;background:rgba(255,255,255,.82);padding:6px 12px;border-radius:999px;color:#2A1A0A}
#packages .loc-note{margin:6px auto 18px}
.page-hero .loc-note{display:flex;width:fit-content;max-width:min(680px,100%);margin:16px auto 0;text-align:left}
/* Header CTAs: location tag stacked under the label so the buttons stay as narrow as before */
.header-ctas .btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;padding-top:6px;padding-bottom:6px}
.header-ctas .btn .loc-tag{margin:3px 0 0;padding:.08em .4em;font-size:.68em;letter-spacing:.1em}

/* ---- Homepage TikTok video (official embed iframe, native lazy-load) ---- */
.video-split{align-items:center}
.tiktok-frame{width:100%;max-width:350px;justify-self:center;margin:0 auto}
.tiktok-frame iframe{display:block;width:100%;height:auto;aspect-ratio:325/740;min-height:560px;max-height:780px;border:0;border-radius:16px;background:#000;box-shadow:var(--shadow-lg,0 20px 40px -18px rgba(0,0,0,.35))}
.tiktok-fallback{text-align:center;font-size:.88rem;margin:.6em 0 0}
.split-media.tiktok-frame img{display:none}
@media (max-width:980px){ .video-split .split-text{text-align:center} .video-split .btn-row{justify-content:center} }
@media (max-width:420px){ .tiktok-frame{max-width:330px} }
.split-media.tiktok-frame::before,.split-media.tiktok-frame::after{content:none !important;display:none !important}
.split-media.tiktok-frame{transform:none !important;box-shadow:none;background:none}

/* ---------- Home hero video (TikTok park tour) ---------- */
.hero--video{background:#1a0d04}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;z-index:0;pointer-events:none;display:block;background:#1a0d04}
.hero--video::before{background:
  linear-gradient(180deg,rgba(20,10,2,.30) 0%,rgba(20,10,2,0) 28%,rgba(255,153,28,.12) 62%,rgba(255,153,28,.50) 100%)}
@media (prefers-reduced-motion: reduce){.hero-video{animation:none}}

/* ---------- Launch QA: accessibility fixes (contrast, touch targets) ---------- */
@media (max-width:768px){
  .mobile-cta-bar .mcta{text-shadow:none}
  .mobile-cta-bar .mcta-tickets{background:#1758B8}
  .mobile-cta-bar .mcta-party{background:#0F6E07}
  .mobile-cta-bar .mcta-loc{color:#fff;opacity:1}
}
.embed-help a{color:#7A4210}
.promo-dot{position:relative}
.promo-dot::before{content:"";position:absolute;inset:-8px}
.promo-dots{gap:14px}

/* ---------- Launch QA: smaller page-hero backgrounds on phones ---------- */
@media (max-width:768px){
  .page-hero--ropes-3{background-image:url('../assets/photos/ropes-course-panorama-1200w.webp')}
  .page-hero--trampoline-3{background-image:url('../assets/photos/main-trampoline-1200w.webp')}
  .page-hero--party-hero{background-image:url('../assets/photos/playground-sofas-1200w.webp')}
  .page-hero--trampoline-1{background-image:url('../assets/photos/dodgeball-lanes-1200w.webp')}
  .page-hero--climbing-1{background-image:url('../assets/photos/climbing-walls-1200w.webp')}
  .page-hero--party-room{background-image:url('../assets/photos/playground-slides-1200w.webp')}
  .tour-stage{background-image:url('../assets/photos/ropes-course-panorama-1200w.webp')}
}

/* ---------- Click-to-play video section (below hero; same layout as the template's video feature) ---------- */
.video-feature .video-lead{max-width:720px;margin:6px auto 0}
.feature-video-wrap{position:relative;width:100%;max-width:960px;margin:20px auto 0;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 22px 48px -20px rgba(0,0,0,.45),0 0 0 4px #fff}
.feature-video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000;object-fit:cover}
.video-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;border:0;padding:0;margin:0;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.35) 100%);font:inherit}
.video-play svg{width:clamp(64px,9vw,96px);height:auto;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45));transition:transform .25s ease}
.video-play svg circle{fill:var(--orange,#FF991C);stroke:#fff;stroke-width:2.5}
.video-play svg path{fill:#fff}
.video-play-label{font-family:var(--font-head);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(.8rem,1.6vw,1rem);background:rgba(0,0,0,.55);padding:6px 14px;border-radius:999px}
.video-play:hover svg,.video-play:focus-visible svg{transform:scale(1.08)}
.video-play:focus-visible{outline:4px solid #fff;outline-offset:-8px}
.feature-video-wrap.is-playing .video-play{display:none}
.video-caption{max-width:760px;margin:14px auto 0;font-size:.92rem}
@media (max-width:768px){ .feature-video-wrap{margin-top:14px;border-radius:12px} }
@media (orientation:landscape) and (max-height:500px){ .feature-video-wrap{max-width:min(960px,calc((100vh - 110px) * 1.7778))} }
/* tiles normally overlap the hero; below the video section they sit in normal flow */
.video-feature + section .tiles,.video-feature + .container .tiles{margin-top:0}
.video-feature{padding-bottom:clamp(36px,5vw,56px)}
.hero-dot{position:relative}
.hero-dot::before{content:"";position:absolute;inset:-8px}
.form-msg.form-msg-error{background:#fdecea;color:#8e1b1b}
/* Prevent brief horizontal scroll while .reveal-right elements slide in (clip keeps position:sticky working) */
html,body{overflow-x:clip}

/* ---------- Groups & Events page ---------- */
.page-hero--groups{background-image:url('../assets/photos/dodgeball-lanes.webp')}
@media (max-width:768px){.page-hero--groups{background-image:url('../assets/photos/dodgeball-lanes-1200w.webp')}}
.group-card{display:flex;flex-direction:column}.group-card .btn{margin-top:auto;align-self:flex-start}
#group-inquiry,#fundraiser-options{scroll-margin-top:110px}

/* ---------- EN | ES toggle (Google Translate Element, js/translate.js) ---------- */
.lang-toggle{display:flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:auto;font-family:var(--font-head);font-weight:800;font-size:.8rem;letter-spacing:.04em}
.lang-toggle span{opacity:.5;color:#2A1A0A}
.lang-toggle button{background:transparent;border:0;padding:8px 6px;min-width:34px;min-height:40px;cursor:pointer;color:#2A1A0A;font:inherit;border-radius:8px}
.lang-toggle button.is-active{background:rgba(255,255,255,.55);color:#A24E00}
.lang-toggle button:focus-visible{outline:3px solid #fff;outline-offset:1px}
.lang-toggle + .nav-toggle{margin-left:6px!important}
.skiptranslate iframe,iframe.goog-te-banner-frame,.goog-te-banner-frame,#goog-gt-tt,.goog-te-balloon-frame,.VIpgJd-ZVi9od-ORHb-OEVmcd,.VIpgJd-ZVi9od-aZ2wEe-wOHMyf,.VIpgJd-yAWNEb-L7lbkb{display:none!important;visibility:hidden!important}
html,body{top:0!important}
body>.skiptranslate{display:none!important}
font[style*="background-color"],.VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q{background:none!important;box-shadow:none!important}
html.lang-es .mcta{font-size:.82rem;letter-spacing:.01em;padding:0 6px}
html.lang-es .main-nav a{letter-spacing:0}
html.lang-es .header-ctas .btn{padding-left:10px;padding-right:10px}
@media (min-width:1201px){
  .lang-toggle{position:fixed;left:16px;bottom:16px;z-index:80;margin:0;background:#fff;border-radius:999px;padding:3px 8px;box-shadow:0 6px 18px -6px rgba(0,0,0,.35)}
  .lang-toggle button{min-height:32px}
  html.lang-es .main-nav a{padding-left:3px;padding-right:3px;font-size:.72rem}
  html.lang-es .header-ctas .btn{padding-left:9px;padding-right:9px}
}
@media (max-width:1200px){.header-inner .lang-toggle{margin-left:auto!important}.header-inner .lang-toggle + .nav-toggle{margin-left:6px!important}}
html.lang-es .group-card .btn,html.lang-es .fr-option .btn,html.lang-es .btn-row .btn{white-space:normal;max-width:100%;text-align:center}

/* ---------- Home hero video v6 (2026-10-21): video shown on its own, fully visible, card BELOW it ----------
   Matches the East Hartford layout: the muted looping 16:9 park video is an uncropped band at the top of the hero
   (no wash/gradient/text over it) and the orange hero card follows underneath in normal flow. Desktop + mobile. */
.hero--video{display:block;min-height:0;padding:0 0 clamp(70px,8vw,120px);background:#1a0d04}
.hero--video::before,.hero--video::after{content:none !important;display:none !important}
.hero--video .hero-video{position:relative;inset:auto;z-index:1;display:block;width:100%;height:auto;aspect-ratio:854/480;
  max-height:calc(100vh - 140px);object-fit:contain;object-position:center;background:#000}
.hero--video > .container{padding-top:clamp(22px,3vw,40px)}
.hero--video .hero-card{animation:heroIn 1s var(--ease) both .15s}
@media (max-width:768px){
  .hero--video{padding:0 0 70px}
  .hero--video .hero-video{max-height:none;object-fit:cover}
  .hero--video > .container{padding-top:20px}
}
.hero--video > .fx{display:none !important} /* no balloons/stars over the video */

/* ---------- Desktop hero v8 (2026-10-21): same desktop layout as the Nova East Hartford template ----------
   Full-bleed muted video (object-fit:cover) fills the hero under the light orange wash; the orange card sits centred ON the
   video; desktop promo flyers swap in over the hero (template slider, styles.css). Mobile/portrait v6 rules above untouched. */
@media (min-width:769px) and (orientation:landscape),(min-width:1025px){
  .hero--video{display:flex;align-items:flex-end;min-height:clamp(600px,88vh,820px);padding:80px 0 150px;background:#2a1205}
  .hero--video .hero-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:50% 50%;background:#2a1205}
  .hero--video::before{content:"" !important;display:block !important;position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(255,180,81,.22) 0%,rgba(255,180,81,0) 30%,rgba(255,153,28,.18) 62%,rgba(255,153,28,.55) 100%)}
  .hero--video > .container{padding-top:0}
  .hero--video > .fx{display:block !important}
}
