/* Bright Nights Christmas Lights theme. Loads after styles.css. A December night: deep blue sky with stars, snow
   falling, a string of twinkling bulbs across the top, a candy cane stripe, and snow capped cards in red, green
   and gold. Nothing about it is subtle, on purpose. */
@font-face{font-family:"Mountains of Christmas";font-style:normal;font-weight:700;font-display:block;src:url("../assets/fonts/mountains-of-christmas-700.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:600;font-display:block;src:url("../assets/fonts/nunito-600.woff2") format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:800;font-display:block;src:url("../assets/fonts/nunito-800.woff2") format("woff2")}

:root{
  --bg:#0b1a3a;
  --panel:#12244d;
  --panel-2:#1a2f5e;
  --line:rgba(255,255,255,.14);
  --text:#fbf6ea;
  --muted:#aab6d3;
  --accent:#d42a2a;
  --accent-2:#a81c1c;
  --on-accent:#fff8ec;
  --good:#2e9e4f;
  --good-2:#1f7a3a;
  --bad:#ff5c5c;
  --warn:#f2b632;
  --snow:#fbf6ea;
  --red:#d42a2a;
  --green:#1f7a3a;
  --green-2:#2e9e4f;
  --gold:#e8b432;
  --gold-2:#c9931a;
  --night:#0b1a3a;
  --night-2:#122a5c;
  --radius:14px;
  --head-font:"Mountains of Christmas",Georgia,serif;
  --body-font:"Nunito","Segoe UI",Arial,sans-serif;
  --head-weight:700;
  --head-transform:none;
  --head-spacing:.01em;
}
html{background:var(--night)}
body{background:radial-gradient(ellipse at 50% -10%,#1b3a7a 0%,var(--night) 55%,#060f24 100%) var(--night)}
/* stars */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.9;
  background:radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 1.6px) 0 0/140px 140px,
             radial-gradient(circle,rgba(255,255,255,.6) 0 1px,transparent 1.4px) 60px 40px/200px 200px,
             radial-gradient(circle,rgba(255,240,200,.8) 0 1.2px,transparent 2px) 30px 90px/260px 260px}
/* snow: two layers of dots sliding down the screen, the far one smaller and slower */
.snow{position:fixed;left:0;top:-200px;width:100%;height:calc(100% + 200px);pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 3px) 10px 10px/90px 120px,
             radial-gradient(circle,rgba(255,255,255,.8) 0 1.6px,transparent 2.6px) 50px 70px/130px 170px;
  animation:snowfall 9s linear infinite}
.snow.far{background:radial-gradient(circle,rgba(255,255,255,.6) 0 1.2px,transparent 2px) 30px 30px/70px 90px,
             radial-gradient(circle,rgba(255,255,255,.45) 0 1px,transparent 1.8px) 5px 60px/110px 140px;
  animation-duration:16s;opacity:.8}
@keyframes snowfall{from{transform:translate3d(0,0,0)}to{transform:translate3d(-20px,200px,0)}}
@media(prefers-reduced-motion:reduce){.snow{animation-duration:60s}.lights i{animation:none}}
.home-wrap,.page{position:relative;z-index:2}

/* ---------- Home ---------- */
.home-wrap{padding:0 0 max(14px,env(safe-area-inset-bottom));max-width:none;justify-content:flex-start}
/* the light string: a sagging wire with bulbs, every bulb on its own twinkle timer */
.lights{width:100%;height:58px;position:relative;display:flex;justify-content:space-around;align-items:flex-start;padding:0 6px;
  background:linear-gradient(180deg,transparent 12px,#0a0a0a 12px,#0a0a0a 14px,transparent 14px);flex:0 0 auto}
.lights i{display:block;width:12px;height:22px;margin-top:12px;border-radius:50% 50% 50% 50%/40% 40% 60% 60%;position:relative;animation:twinkle 2.4s ease-in-out infinite}
.lights i::before{content:"";position:absolute;left:3px;top:-6px;width:6px;height:7px;background:#3a3a3a;border-radius:2px 2px 0 0}
.lights i:nth-child(4n+1){background:var(--red);box-shadow:0 0 12px 3px rgba(255,60,60,.8);animation-delay:0s}
.lights i:nth-child(4n+2){background:#37c95c;box-shadow:0 0 12px 3px rgba(55,201,92,.8);animation-delay:.6s}
.lights i:nth-child(4n+3){background:var(--gold);box-shadow:0 0 12px 3px rgba(232,180,50,.85);animation-delay:1.2s}
.lights i:nth-child(4n+4){background:#4f8dff;box-shadow:0 0 12px 3px rgba(79,141,255,.8);animation-delay:1.8s}
.lights i:nth-child(odd){transform:translateY(4px) rotate(-8deg)}
.lights i:nth-child(even){transform:translateY(0) rotate(7deg)}
.lights i:nth-child(3n){transform:translateY(7px) rotate(3deg)}
@keyframes twinkle{0%,100%{filter:brightness(1)}50%{filter:brightness(.45)}}

.home-top{padding:2px 20px 10px;gap:2px}
/* two small trees flank the name instead of one big one on its own row */
.brand-row{display:flex;align-items:center;justify-content:center;gap:12px;width:100%}
.home-logo{width:40px;height:40px;flex:0 0 auto;border:2px solid var(--gold);background:var(--night-2);box-shadow:0 0 16px rgba(232,180,50,.45)}
.home-logo.twin{transform:scaleX(-1)}
.brand{font-family:var(--head-font);font-weight:700;font-size:clamp(2.2rem,10vw,5.4rem);line-height:.95;white-space:nowrap;color:var(--snow);letter-spacing:.01em;
  text-shadow:0 0 18px rgba(255,255,255,.35),0 4px 0 var(--red),0 8px 22px rgba(0,0,0,.6)}
.tagline{font-family:var(--body-font);font-weight:800;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(.62rem,2.6vw,.8rem);color:var(--gold);margin-top:8px}
/* candy cane stripe */
.cane{width:100%;height:14px;flex:0 0 auto;background:repeating-linear-gradient(-55deg,var(--red) 0 14px,var(--snow) 14px 28px);box-shadow:0 4px 12px rgba(0,0,0,.5);
  background-size:34px 100%;animation:cane 1.2s linear infinite}
@keyframes cane{from{background-position:0 0}to{background-position:34px 0}}

.tiles{display:grid;grid-template-columns:1fr;gap:22px;width:100%;max-width:none;padding:30px 16px 20px;align-content:start}
.tile{position:relative;display:grid;grid-template-columns:96px 1fr;align-items:center;gap:8px;padding:22px 16px 16px 10px;min-height:118px;border:3px solid rgba(255,255,255,.16);border-radius:var(--radius);
  box-shadow:0 12px 28px rgba(0,0,0,.45),inset 0 -5px 0 rgba(0,0,0,.18);overflow:visible;transition:transform .18s ease,box-shadow .18s ease}
.tile.red{background:linear-gradient(180deg,#e03333,var(--accent-2));color:var(--snow)}
.tile.green{background:linear-gradient(180deg,#2f9a4c,var(--green));color:var(--snow)}
.tile.gold{background:linear-gradient(180deg,#f0c24a,var(--gold-2));color:#3a2604}
/* the snow cap: a scalloped white edge along the top */
.tile .snowcap{position:absolute;left:-3px;right:-3px;top:-7px;height:24px;pointer-events:none;
  background:radial-gradient(circle at 14px 8px,var(--snow) 0 12px,transparent 13px) 0 0/28px 24px repeat-x,linear-gradient(var(--snow),var(--snow)) 0 0/100% 10px no-repeat;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.tile .icon-wrap{position:relative;width:96px;height:88px;display:flex;align-items:center;justify-content:center}
.tile img.custom{height:82px;width:auto;max-width:96px;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(0,0,0,.35));transition:transform .28s cubic-bezier(.34,1.56,.64,1)}
.tile .txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.tile .lbl{font-family:var(--head-font);font-weight:700;font-size:2rem;line-height:.95;text-align:left;color:inherit;text-shadow:0 2px 0 rgba(0,0,0,.2)}
.tile .sub{font-family:var(--body-font);font-weight:800;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85;line-height:1.25}
.tile .nbadge{top:2px;right:auto;left:2px;box-shadow:0 0 0 2px rgba(0,0,0,.2)}
@media(hover:hover){.tile:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(0,0,0,.5),0 0 24px rgba(232,180,50,.25),inset 0 -5px 0 rgba(0,0,0,.18)}.tile:hover img.custom{transform:translateY(-4px) rotate(-5deg) scale(1.08)}}
.tile:active{transform:scale(.98)}
.home-bottom{padding:0 16px}
body.home #siteFoot.site-foot{color:var(--muted)}

@media(min-width:700px){
  .lights{height:66px}
  .lights i{width:14px;height:26px}
  .home-top{padding-top:6px}
  .home-logo{width:58px;height:58px}
  .brand-row{gap:18px}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 28px;max-width:1000px;margin:0 auto;padding:40px 20px 30px}
  .tile{grid-template-columns:130px 1fr;min-height:150px;padding:26px 20px 20px 14px}
  .tile .icon-wrap{width:130px;height:110px}
  .tile img.custom{height:104px;max-width:130px}
  .tile .lbl{font-size:2.5rem}
  .tile .sub{font-size:.76rem}
}
@media(min-width:1100px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1180px}.tile{grid-template-columns:112px 1fr;padding-left:10px}.tile .icon-wrap{width:112px;height:100px}.tile img.custom{height:92px;max-width:108px}.tile .lbl{font-size:2.1rem}}

/* ---------- Inner pages ---------- */
.site-head{background:linear-gradient(to bottom,var(--night) 80%,transparent)}
.page-title{font-family:var(--head-font);font-size:clamp(2rem,7.5vw,3rem);color:var(--snow);text-shadow:0 3px 0 var(--red),0 6px 16px rgba(0,0,0,.6)}
.home-btn img{border:2px solid var(--gold);background:var(--night-2)}
.home-btn span,.back-btn span{color:var(--muted);font-family:var(--body-font);font-weight:800;letter-spacing:.14em}
.back-btn i{color:var(--gold);border-color:rgba(255,255,255,.2);background:var(--panel)}
.seg{background:var(--panel);border-color:rgba(255,255,255,.12)}
.seg a{font-family:var(--body-font);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
.seg a.active{background:var(--red);color:var(--snow)}
.seg a.specials{color:var(--gold)}
.seg a.specials.active{background:var(--gold);color:#3a2604}
.btn.primary{background:linear-gradient(180deg,#e03333,var(--accent-2));color:var(--snow);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
.btn.good{background:var(--green-2)}
.chip{background:var(--panel)}
.chip.active{background:var(--gold);color:#3a2604}
.chip b{color:var(--gold)}
.card{background:var(--panel);border-color:rgba(255,255,255,.12);box-shadow:0 8px 20px rgba(0,0,0,.35)}
.card .img{background:#081430}
.card .name{font-family:var(--head-font);font-weight:700;font-size:1.35rem;color:var(--snow)}
.card .price{color:var(--gold);font-family:var(--body-font);font-weight:800;font-size:1.05rem}
.card.featured{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 0 26px rgba(232,180,50,.25)}
.feat-tag{background:var(--gold);color:#3a2604;letter-spacing:.14em}
.cat-head{font-family:var(--head-font);font-weight:700;font-size:1.7rem;color:var(--snow);border-bottom:3px solid var(--red)}
.badge.good{background:rgba(46,158,79,.25);color:#8fe3a6}
.badge.accent{background:rgba(232,180,50,.2);color:var(--gold)}
.viewer .v-info{background:var(--panel)}
.viewer .v-name{font-family:var(--head-font);font-weight:700;font-size:1.9rem;color:var(--snow)}
.viewer .v-price{color:var(--gold)}
.special{border-color:rgba(232,180,50,.5);background:var(--panel)}
.special-price{color:var(--gold);font-family:var(--body-font);font-weight:800}
.post{background:var(--panel)}
.post.pinned{border-color:var(--red)}
.post h3{font-family:var(--head-font);font-weight:700;font-size:1.4rem;color:var(--snow)}
.rich{background:var(--panel)}
.rich h1,.rich h2,.rich h3{font-family:var(--head-font);font-weight:700;color:var(--gold)}
.rich h2{font-size:1.8rem}
.rich a{color:var(--gold)}
.letter{color:var(--gold);font-family:var(--head-font);font-weight:700;font-size:1.6rem}
.modal{background:var(--panel)}
.modal h2{font-family:var(--head-font);font-weight:700;font-size:1.7rem;color:var(--snow)}
.toast{background:var(--gold);color:#3a2604}
.gate{background:var(--night)}
.gate h1{font-family:var(--head-font);font-weight:700;color:var(--snow);font-size:2.6rem;text-shadow:0 3px 0 var(--red)}
.gate p{color:var(--muted)}
.gate img{border:3px solid var(--gold)}
.empty{background:rgba(18,36,77,.6)}

/* hours and booking */
.open-now{background:var(--panel);border-color:rgba(255,255,255,.14);color:var(--snow);font-family:var(--body-font);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.95rem}
.open-now.on{color:#8fe3a6;border-color:rgba(46,158,79,.6)}
.open-now.on i{background:var(--green-2);box-shadow:0 0 0 4px rgba(46,158,79,.2)}
.open-now.off i{background:var(--red)}
.hours-list{background:var(--panel);border-color:rgba(255,255,255,.12)}
.hours-list li{border-color:rgba(255,255,255,.1)}
.hours-list .d{font-family:var(--head-font);font-weight:700;font-size:1.3rem;color:var(--snow)}
.hours-list .part b{font-family:var(--body-font);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--snow)}
.hours-list .part em{color:var(--gold);font-weight:800}
.hours-list li.today{background:rgba(212,42,42,.18)}
.hours-list li.today .d,.hours-list li.today .d::after{color:var(--gold)}
.closures-head{font-family:var(--head-font);font-weight:700;font-size:1.3rem;text-transform:none;letter-spacing:.01em;color:var(--gold)}
.big-cta{font-family:var(--head-font);font-weight:700;font-size:1.6rem;letter-spacing:.02em;border-radius:14px;box-shadow:0 8px 24px rgba(212,42,42,.45),inset 0 -4px 0 rgba(0,0,0,.2)}
.book-step{color:var(--snow);font-family:var(--head-font);font-weight:700;font-size:1.6rem;text-transform:none;letter-spacing:.01em}
.step-n{background:var(--gold);color:#3a2604;font-family:var(--body-font);font-weight:800}
.day-chip{background:var(--panel);border-color:rgba(255,255,255,.14)}
.day-chip .dom{font-family:var(--head-font);font-weight:700;font-size:1.6rem}
.day-chip.active{background:var(--red);box-shadow:0 0 18px rgba(212,42,42,.5)}
.slot{background:var(--panel);border-color:rgba(255,255,255,.14);font-family:var(--body-font);font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--snow)}
.slot.active{background:var(--green-2);color:var(--snow);box-shadow:0 0 18px rgba(46,158,79,.5)}
.slot small{color:var(--gold)}
.book-form{background:var(--panel);border-color:rgba(255,255,255,.12)}
.book-done{background:rgba(46,158,79,.15);border-color:rgba(46,158,79,.5)}
.book-done .tick{background:var(--green-2)}
.req{background:var(--panel)}
.req-time{color:var(--gold);font-family:var(--body-font);font-weight:800}
.req.confirmed{border-color:rgba(46,158,79,.6)}
.admin-box input{background:var(--panel)}
.dash-link{background:var(--panel)}
.dash-link b{font-family:var(--head-font);font-size:1.3rem;color:var(--snow)}
