/* Kanvartfuly Halloween Theme v2 — "Purple night"
   Matches the Halloween home hero slideshow: deep purple night, cream text, pumpkin-orange accents,
   moon, bats, cobweb, stars and a jack-o'-lantern. Everything is scoped to body.kvh-on, so switching
   the plugin off restores the normal site. Header is left as the normal site header. */

body.kvh-on{
  --kvh-night:#1B0F2E;
  --kvh-night-2:#3A1C5E;
  --kvh-night-3:#120A1F;
  --kvh-card:#2A1545;
  --kvh-cream:#FFF4E6;
  --kvh-orange:#FF8A1F;
  --kvh-orange-2:#FF6A00;
  --kvh-violet:#7B3FE4;
  --kvh-lime:#B8F542;
  --kvh-pink:#FF4FA3;
  --kvh-moon:#FFE7B3;
  --kvh-teal:#01726F;
}

/* ===================== HEADER (light touch: stays white, orange accent) ===================== */
body.kvh-on.kvh-header-on .kvh-header{
  position:relative;
  background:#fff !important;
  border-bottom:4px solid var(--kvh-orange) !important;
  box-shadow:0 2px 14px rgba(27,15,46,.10) !important;
}
body.kvh-on.kvh-header-on .kvh-header a:hover,
body.kvh-on.kvh-header-on .kvh-header a[aria-current],
body.kvh-on.kvh-header-on .kvh-header .current-menu-item > a,
body.kvh-on.kvh-header-on .kvh-header li.current_page_item > a{color:var(--kvh-orange) !important}
body.kvh-on.kvh-header-on .kvh-header a.kvh-book,
body.kvh-on.kvh-header-on .kvh-header a.kvh-book *{color:var(--kvh-night) !important}
body.kvh-on.kvh-header-on .kvh-header a.kvh-book{
  background:var(--kvh-orange-2) !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:0 6px 16px rgba(255,106,0,.3) !important;
  transition:transform .15s ease,background .2s;
}
body.kvh-on.kvh-header-on .kvh-header a.kvh-book:hover{background:var(--kvh-orange) !important;transform:translateY(-1px)}
/* one tiny bat perched by the logo (desktop only) */
body.kvh-on.kvh-header-on .kvh-header .kvh-header-bat{position:absolute;width:28px;height:auto;fill:#1B0F2E;left:clamp(190px,15vw,250px);top:14px;pointer-events:none;z-index:2;animation:kvh-bat 7s ease-in-out infinite}
@media (max-width:860px){body.kvh-on.kvh-header-on .kvh-header .kvh-header-bat{display:none}}

/* ===================== HERO (inner pages) ===================== */
body.kvh-on .kvh-hero{
  position:relative;
  background:radial-gradient(120% 80% at 80% -10%,var(--kvh-night-2) 0%,var(--kvh-night) 55%,var(--kvh-night-3) 100%) !important;
  color:var(--kvh-cream) !important;
  overflow:hidden !important;
  isolation:isolate;
}
body.kvh-on .kvh-hero h1,
body.kvh-on .kvh-hero h2,
body.kvh-on .kvh-hero h3,
body.kvh-on .kvh-hero p,
body.kvh-on .kvh-hero li,
body.kvh-on .kvh-hero span,
body.kvh-on .kvh-hero small,
body.kvh-on .kvh-hero label,
body.kvh-on .kvh-hero a:not(.kvh-btn){color:var(--kvh-cream) !important;opacity:1}
body.kvh-on .kvh-hero h1,
body.kvh-on .kvh-hero h1 *{
  color:var(--kvh-cream) !important;
  -webkit-text-fill-color:var(--kvh-cream);
  text-shadow:0 0 34px rgba(255,138,31,.35);
}
/* the line right under the title (subtitle) goes orange, like the slideshow */
body.kvh-on .kvh-hero h1 + .subtitle,
body.kvh-on .kvh-hero .kvh-sub{color:var(--kvh-orange) !important;font-weight:700}
/* small eyebrow line above the title (e.g. "✦ Check Schedule for Availability") */
body.kvh-on .kvh-hero .kvh-eyebrow{color:var(--kvh-orange) !important;font-weight:700;letter-spacing:.04em}
/* breadcrumbs */
body.kvh-on .kvh-hero nav a,
body.kvh-on .kvh-hero .breadcrumb a,
body.kvh-on .kvh-hero .breadcrumbs a{color:var(--kvh-moon) !important;opacity:.85}

/* buttons in the hero: pumpkin orange, dark text (same as the slideshow's Book Now) */
body.kvh-on .kvh-hero a.kvh-btn,
body.kvh-on .kvh-hero a.kvh-btn *,
body.kvh-on .kvh-hero button.kvh-btn{color:var(--kvh-night) !important}
body.kvh-on .kvh-hero a.kvh-btn,
body.kvh-on .kvh-hero button.kvh-btn{
  background:var(--kvh-orange-2) !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:0 10px 24px rgba(255,106,0,.35) !important;
  transition:transform .15s ease,box-shadow .15s ease,background .2s;
}
body.kvh-on .kvh-hero a.kvh-btn:hover,
body.kvh-on .kvh-hero button.kvh-btn:hover{background:var(--kvh-orange) !important;transform:translateY(-2px);box-shadow:0 14px 30px rgba(255,106,0,.45) !important}

/* hero photos: round-ish dark frames with an orange glow (optional) */
body.kvh-on .kvh-hero img.kvh-img{
  border:6px solid var(--kvh-card) !important;
  border-radius:999px 999px 24px 24px !important;
  box-shadow:0 0 0 3px var(--kvh-orange),0 0 50px rgba(255,138,31,.35) !important;
}
body.kvh-on .kvh-hero img.kvh-img-2{box-shadow:0 0 0 3px var(--kvh-violet),0 0 50px rgba(123,63,228,.35) !important}

/* content sits above the decorations */
body.kvh-on .kvh-hero > *:not(.kvh-hw):not(.kvh-deco){position:relative;z-index:2}

/* ===================== DECORATIONS (shared by inner heroes and the home slideshow) ===================== */
body.kvh-on .kvh-hw{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
body.kvh-on .kvh-hw svg{position:absolute;display:block}
body.kvh-on .kvh-hw .kvh-moon{right:9%;top:7%;width:clamp(70px,9vw,130px);fill:var(--kvh-moon);filter:drop-shadow(0 0 28px rgba(255,231,179,.55));opacity:.95}
body.kvh-on .kvh-hw .kvh-bat{fill:#0B0516;opacity:.9;animation:kvh-bat 7s ease-in-out infinite}
body.kvh-on .kvh-hw .kvh-b1{left:38%;top:9%;width:clamp(34px,4vw,60px)}
body.kvh-on .kvh-hw .kvh-b2{left:55%;top:16%;width:clamp(22px,2.6vw,40px);animation-delay:-2.5s}
body.kvh-on .kvh-hw .kvh-b3{right:4%;top:36%;width:clamp(26px,3vw,46px);animation-delay:-4.5s}
body.kvh-on .kvh-hw .kvh-web{left:0;top:0;width:clamp(110px,14vw,190px);fill:none;stroke:rgba(255,244,230,.28);stroke-width:1.2}
body.kvh-on .kvh-hw .kvh-pumpkin{left:5%;bottom:4%;width:clamp(44px,5.5vw,80px)}
body.kvh-on .kvh-hw .kvh-star{fill:var(--kvh-cream);opacity:.7;animation:kvh-twinkle 3s ease-in-out infinite}
body.kvh-on .kvh-hw .kvh-s1{left:12%;top:8%;width:10px}
body.kvh-on .kvh-hw .kvh-s2{left:62%;top:6%;width:7px;animation-delay:-1s}
body.kvh-on .kvh-hw .kvh-s3{left:88%;top:52%;width:9px;animation-delay:-2s}
body.kvh-on .kvh-hw .kvh-s4{left:30%;top:88%;width:6px;animation-delay:-.5s}
/* one object per inner page (palette, easel, balloons, calendar, voucher, envelope) */
body.kvh-on .kvh-hw .kvh-obj{right:3%;bottom:0;width:clamp(110px,12vw,190px);opacity:.95}
@keyframes kvh-bat{0%,100%{transform:translate(0,0) rotate(-4deg)}50%{transform:translate(14px,-10px) rotate(6deg)}}
@keyframes kvh-twinkle{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.9;transform:scale(1.1)}}

/* home slideshow: the plugin only adds the "halloween" class + decorations; colours come from the rules below */
body.kvh-on .hero.halloween .wrap{position:relative;z-index:2}
body.kvh-on .hero.halloween .kvh-hw .kvh-pumpkin{right:auto;left:46%}

@media (max-width:860px){
  body.kvh-on .kvh-hw .kvh-moon{right:6%;top:4%;width:16vw}
  body.kvh-on .kvh-hw .kvh-b1{left:42%;top:5%;width:7vw}
  body.kvh-on .kvh-hw .kvh-b2{display:none}
  body.kvh-on .kvh-hw .kvh-b3{right:3%;top:60%;width:5vw}
  body.kvh-on .kvh-hw .kvh-web{width:22vw}
  body.kvh-on .kvh-hw .kvh-moon{width:12vw;top:2%;right:4%}
  /* inner page heroes: reserve a strip under the text so the pumpkin / page object never cover it */
  body.kvh-on .kvh-hero:not(.hero){padding-bottom:30vw !important}
  body.kvh-on .kvh-hero:not(.hero) > *:not(.kvh-hw){position:relative;z-index:2}
  body.kvh-on .kvh-hw .kvh-pumpkin{width:11vw;left:5%;bottom:3vw}
  body.kvh-on .kvh-hw .kvh-obj{width:20vw;right:4%;bottom:1vw}
  body.kvh-on .hero.halloween .kvh-hw .kvh-pumpkin{left:auto;right:34%;bottom:8.5vw;width:8vw}
}

/* ===================== HOME SLIDESHOW colour overrides (Kanvartfuly hero slideshow) ===================== */
body.kvh-on .hero.halloween[data-slide]{--bg:#1B0F2E;--fg:#FFF4E6;--acc:#FF8A1F;--btnbg:#FF6A00;--btnfg:#1B0F2E;--sweep:#FF8A1F}
body.kvh-on .hero.halloween[data-slide="0"]{--blob:#FF8A1F}
body.kvh-on .hero.halloween[data-slide="1"]{--blob:#7B3FE4}
body.kvh-on .hero.halloween[data-slide="2"]{--blob:#B8F542}
body.kvh-on .hero.halloween[data-slide="3"]{--blob:#FF8A1F}
body.kvh-on .hero.halloween[data-slide="4"]{--blob:#7B3FE4}
body.kvh-on .hero.halloween[data-slide="5"]{--blob:#FF4FA3}
body.kvh-on .hero.halloween[data-slide="6"]{--blob:#B8F542}
body.kvh-on .hero.halloween{background:radial-gradient(120% 80% at 80% -10%,#3A1C5E 0%,#1B0F2E 55%,#120A1F 100%) !important}
body.kvh-on .hero.halloween mark{color:#1B0F2E}
body.kvh-on .hero.halloween .ph{background:#2A1545;color:#FFF4E6}
body.kvh-on .hero.halloween .next{background:rgba(0,0,0,.35)} body.kvh-on .hero.halloween .next .thumb{color:#1B0F2E}
body.kvh-on .hero.halloween .badge-give{background:#B8F542;color:#1B0F2E}
body.kvh-on .hero.halloween .card{background:#2A1545;color:#FFF4E6;box-shadow:0 18px 40px rgba(0,0,0,.5)}
body.kvh-on .hero.halloween .card-name{color:#FF8A1F} body.kvh-on .hero.halloween .card-when{color:#FFF4E6}
body.kvh-on .hero.halloween .card-img{background:#3A1C5E} body.kvh-on .hero.halloween .card-img .ph{background:#3A1C5E;color:#C9B3F0}
body.kvh-on .hero.halloween .chip-seats{background:#3A1C5E;color:#B8F542} body.kvh-on .hero.halloween .chip-fee{background:#3A1C5E;color:#FF8A1F} body.kvh-on .hero.halloween .card-go{color:#FF8A1F}
body.kvh-on .hero.halloween .rules{color:#FFF4E6}
body.kvh-on .hero.halloween .blob{filter:drop-shadow(0 0 30px rgba(255,138,31,.25))}

/* ===================== FOOTER (deep purple night, cream text) ===================== */
body.kvh-on .kvh-footer{
  position:relative;
  background:var(--kvh-night) !important;
  border-top:0 !important;
}
body.kvh-on .kvh-footer,
body.kvh-on .kvh-footer p,
body.kvh-on .kvh-footer li,
body.kvh-on .kvh-footer span,
body.kvh-on .kvh-footer address,
body.kvh-on .kvh-footer a{color:var(--kvh-cream) !important;opacity:1}
body.kvh-on .kvh-footer h1,
body.kvh-on .kvh-footer h2,
body.kvh-on .kvh-footer h3,
body.kvh-on .kvh-footer h4,
body.kvh-on .kvh-footer h5,
body.kvh-on .kvh-footer h6{color:var(--kvh-orange) !important}
body.kvh-on .kvh-footer *{border-color:rgba(255,244,230,.18) !important}
body.kvh-on .kvh-footer a:hover{color:var(--kvh-orange) !important;text-decoration:none}
body.kvh-on .kvh-footer img.kvh-logo{width:230px !important;height:auto !important;max-width:100% !important;max-height:none !important;object-fit:contain}
body.kvh-on .kvh-footer a.kvh-social{background:rgba(255,244,230,.12) !important;border-radius:50% !important;text-decoration:none !important}
body.kvh-on .kvh-footer a.kvh-social,
body.kvh-on .kvh-footer a.kvh-social *{color:var(--kvh-cream) !important}
body.kvh-on .kvh-footer a.kvh-social:hover{background:var(--kvh-orange) !important}
body.kvh-on .kvh-footer a.kvh-social:hover *{color:var(--kvh-night) !important}
body.kvh-on .kvh-footer .kvh-copy,
body.kvh-on .kvh-footer .kvh-copy *{color:rgba(255,244,230,.75) !important}

@media (prefers-reduced-motion:reduce){
  body.kvh-on .kvh-hw .kvh-bat,
  body.kvh-on .kvh-hw .kvh-star{animation:none}
}

/* v2.2.0 — Halloween navigation brand (desktop and phones). */
body.kvh-on.kvh-header-on .kvh-header img.kvh-navigation-logo {
  display:block !important;
  width:clamp(145px, 14vw, 195px) !important;
  max-width:100% !important;
  height:auto !important;
  max-height:66px !important;
  object-fit:contain !important;
  object-position:left center !important;
}
body.kvh-on.kvh-header-on .kvh-header.kvh-has-navigation-logo .kvh-header-bat {display:none !important;}
@media (max-width:860px) {
  body.kvh-on.kvh-header-on .kvh-header img.kvh-navigation-logo {
    width:clamp(128px, 38vw, 166px) !important;
    max-height:54px !important;
  }
}
@media (max-width:350px) {
  body.kvh-on.kvh-header-on .kvh-header img.kvh-navigation-logo {width:122px !important;max-height:48px !important;}
}
