:root{--bg:#04101e;--ink:#eaf7ff;--cyan:#64d8ff;--muted:#b1c8d9;--line:#155074;--panel:#061b2c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#04101e,#04182b 58%,#03101c);color:var(--ink);font:15px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit}.wrap{max-width:1110px;margin:auto;padding-left:25px;padding-right:25px}.bulb-string,.light-divider{height:39px;position:relative;overflow:hidden;background-image:radial-gradient(ellipse at 50% 0,rgba(0,0,0,.18),transparent 65%)}.bulb-string:before,.light-divider:before{content:"";position:absolute;left:0;right:0;top:5px;height:13px;border-bottom:2px solid #1d3b39;border-radius:0 0 50% 50%}.bulb-string:after,.light-divider:after{content:"";position:absolute;left:0;right:0;top:12px;height:24px;background:radial-gradient(ellipse at center,#ff6262 0 4px,transparent 5px) 0 0/94px 24px repeat-x,radial-gradient(ellipse at center,#6df5b2 0 4px,transparent 5px) 22px 0/94px 24px repeat-x,radial-gradient(ellipse at center,#53d4ff 0 4px,transparent 5px) 45px 0/94px 24px repeat-x,radial-gradient(ellipse at center,#ffdc74 0 4px,transparent 5px) 69px 0/94px 24px repeat-x;filter:drop-shadow(0 0 6px #5cc9f9)}.top{height:30px}.nav{display:flex;justify-content:space-between;align-items:center;gap:20px;height:55px;border-bottom:1px solid #13344d}.brand{text-decoration:none;font-family:Georgia,serif;font-size:21px;font-weight:bold}.brand:first-letter{color:#70dcff}.navlinks{display:flex;gap:24px;font-size:13px}.navlinks a{text-decoration:none}.navlinks a:hover{color:var(--cyan)}.hero{text-align:center;min-height:465px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:38px;padding-bottom:38px}.eyebrow{color:var(--cyan);font-size:11px;letter-spacing:.16em;font-weight:800}.hero h1{font:normal clamp(46px,6.5vw,80px)/1.1 Georgia,serif;letter-spacing:-.035em;margin:7px 0 0}.ornament{color:#75d9ff;font-size:21px}.hero>p{max-width:620px;margin:4px auto 20px;color:#c5d7e4;font-size:16px}.count-wrap{width:min(100%,520px);padding:14px 20px 7px;background:rgba(5,25,43,.86);border:1px solid #2078a7;border-radius:14px;box-shadow:0 0 22px #05639d22}.timer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:8px}.timer-item{text-align:center;padding:5px 9px 10px;border-right:1px solid #1d6287}.timer-item:last-child{border:0}.timer-item strong{display:block;font:normal 35px Georgia,serif}.timer-item small{display:block;font-size:10px;letter-spacing:.07em}.timer-done{margin:8px 0;color:#a7edc7}.buttons{display:flex;justify-content:center;gap:12px;margin-top:20px}.btn{display:inline-block;border-radius:22px;text-decoration:none;padding:10px 19px;font-size:12px;font-weight:750;border:1px solid #26759c}.btn.primary{background:#9be9ff;color:#041b2b;border-color:#9be9ff}.btn.secondary{background:#04192a;color:#e6f8ff}.btn:hover{filter:brightness(1.12)}.section{padding-top:52px;padding-bottom:58px}h2{font:normal clamp(31px,4vw,43px) Georgia,serif;margin:5px 0 8px}.lead{max-width:700px;color:#c2d5e2;margin:0 0 20px}.features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.feature,.bottom-card{background:rgba(6,28,47,.8);border:1px solid #195577;border-radius:12px;padding:18px}.feature-icon{font-size:27px;color:#6fd9ff}.feature h3{font:normal 19px Georgia,serif;margin:3px 0 8px}.feature p,.about-more,.subhead,.bottom-card p{color:#b8cfde;font-size:13px;line-height:1.65}.about-more{white-space:pre-line;max-width:850px;margin-top:25px}.walk-count{max-width:530px;margin:0 auto 34px;text-align:center}.walk-count>.eyebrow{text-align:left}.walk-count .timer{border:1px solid #2078a7;border-radius:12px;padding:8px;background:#061d32}.subhead{margin-top:0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(230px,.8fr);gap:17px}.calendar,.details,.notice{background:#041829;border:1px solid #17628c;border-radius:11px;overflow:hidden}.calendar-head{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;border-bottom:1px solid #1a4e6b}.calendar-head strong{font-family:Georgia,serif}.calendar-head button{border:1px solid #1d597d;border-radius:7px;background:#071e32;color:#aee9ff;cursor:pointer;padding:3px 12px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{text-align:center;font-size:10px;color:#8baabe;padding:8px 0}.day{min-height:62px;padding:7px 9px;border:0;border-top:1px solid #123d59;border-right:1px solid #123d59;background:transparent;color:#e9f7ff;text-align:left;font:700 13px system-ui;cursor:default}.day:nth-child(7n){border-right:0}.day.outside{color:#66859b}.day.open{background:#0b2940;cursor:pointer}.day.open:hover,.day.selected{background:#114d71}.day small{display:block;color:#67ddff;font-size:9px;font-weight:800}.details{padding:20px}.details h3{font:normal 24px Georgia,serif;margin:7px 0}.details .status{display:inline-block;background:#0b684e;color:#adffdd;border-radius:20px;padding:2px 12px;font-size:11px;font-weight:bold}.details p{color:#c6d9e5}.details hr{border:0;border-top:1px solid #1b5372;margin:22px 0}.notice{text-align:center;padding:12px;margin-top:12px;color:#b4ccdd;font-size:12px}.bottom-sections{display:grid;grid-template-columns:1fr 1fr;gap:15px}.bottom-card{padding:26px}.bottom-card .btn{margin-top:9px}footer{text-align:center;color:#c2d5e1;padding:30px 20px 45px;font:italic 17px Georgia,serif}footer span{color:#75d9ff}@media(max-width:760px){.nav{height:auto;padding-top:15px;padding-bottom:15px;flex-direction:column}.navlinks{flex-wrap:wrap;justify-content:center;gap:13px}.features{grid-template-columns:repeat(2,1fr)}.calendar-layout,.bottom-sections{grid-template-columns:1fr}.hero{min-height:420px}}@media(max-width:440px){.wrap{padding-left:14px;padding-right:14px}.features{grid-template-columns:1fr}.day{min-height:55px;padding:5px}.timer-item strong{font-size:28px}.hero h1{font-size:46px}.buttons{flex-wrap:wrap}}

.brand{display:inline-flex;align-items:center;gap:10px}.brand-logo{object-fit:contain;width:56px;height:56px;vertical-align:middle}.hero-logo{display:block;margin:0 auto 10px;object-fit:contain}.features:empty{display:none}.brand-logo[hidden]{display:none!important}#hero-logo-slot:empty{display:none}

/* v5: optional announcement and clean bullet-point details */
.announcement{position:relative;z-index:20;margin:48px auto 0;max-width:1100px;padding:13px 22px;border:1px solid var(--cyan,#64d8ff);border-radius:12px;background:#0c2b3f;color:#e9faff;text-align:center;font-weight:650;box-shadow:0 0 24px rgba(100,216,255,.13)}
.announcement[hidden]{display:none!important}
.event-bullets{padding-left:22px;margin:15px 0 0;color:#d9f0ff;line-height:1.75}
.event-bullets li{padding-left:3px;margin:5px 0}
.calendar-head{display:flex;justify-content:center;align-items:center}

/* v6: optional prominent vote callout */
.featured-vote{margin-top:22px;margin-bottom:4px;text-align:center}.featured-vote[hidden]{display:none!important}.featured-vote-inner{padding:30px 24px 34px;border:1px solid var(--cyan);border-radius:19px;background:radial-gradient(ellipse at 50% 0,rgba(29,130,179,.32),transparent 75%),#071e33;box-shadow:0 0 32px rgba(100,216,255,.13)}.featured-vote-kicker{font-size:11px;letter-spacing:.2em;color:var(--cyan);font-weight:800}.featured-vote h2{font-size:clamp(32px,5vw,53px);margin:10px 0}.featured-vote p{font-size:16px;color:#c7e0f0;margin:0 auto 20px;max-width:620px}.featured-vote .btn{font-size:15px;padding:13px 30px;border-radius:12px}.featured-vote .btn:not([href]){opacity:.6;cursor:default}

/* V7 optional visitor panels */
[hidden]{display:none!important}.optional-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.v7-panel{border:1px solid #246486;border-radius:16px;background:linear-gradient(140deg,#0b263a,#061b2d);padding:25px;min-width:0}.v7-panel h2{font-size:clamp(25px,3vw,35px)}.v7-panel p{color:#c5d8e7}.v7-panel .btn{margin:8px 8px 0 0}.live-status{display:inline-block;border-radius:50px;padding:6px 15px;font-weight:750}.live-status.on{color:#baffdd;background:#13523e}.live-status.off{color:#f6d6d6;background:#593238}.status-note{font-size:13px}.address-line{font-weight:650}.faq-item{border-top:1px solid #1b4d69;padding:12px 0}.faq-item summary{cursor:pointer;font-weight:700}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-grid img{display:block;width:100%;height:165px;object-fit:cover;border-radius:9px}.v7-panel button{cursor:pointer;color:#d6f4ff;background:#0b3048;border:1px solid #3b7897}.v7-panel button:hover{filter:brightness(1.2)}@media(max-width:740px){.optional-sections{grid-template-columns:1fr}.v7-panel{padding:20px}}

/* v7.1: compact, swipeable photo carousel and responsive visitor navigation */
.extra-nav{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding-top:11px;padding-bottom:12px;border-bottom:1px solid #123a55}
.extra-nav a{font-size:12px;text-decoration:none;color:#d8f4ff;background:#0c2c42;border:1px solid #255d7d;border-radius:30px;padding:7px 13px;white-space:nowrap}
.extra-nav a:hover,.extra-nav a:focus-visible{background:#145078;outline-offset:3px}
.gallery-carousel{width:100%;max-width:100%;overflow:hidden}
.gallery-stage{display:block;overflow:hidden;border-radius:12px;background:#04121f;aspect-ratio:16/10}
.gallery-stage img{width:100%;height:100%;display:block;object-fit:contain}
.gallery-controls{display:flex;justify-content:center;align-items:center;gap:17px;margin-top:12px}
.gallery-arrow{min-width:45px;min-height:40px;font-size:25px!important;line-height:1;border-radius:9px!important}
.gallery-arrow:disabled{opacity:.35;cursor:not-allowed}
.gallery-counter{font-size:13px;color:#c5d8e7;font-variant-numeric:tabular-nums}
@media(max-width:760px){.extra-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:13px}.extra-nav a{flex-shrink:0}}

/* v7.2 holiday treats cards */
.treats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:22px}.treats-item{background:rgba(15,53,75,.8);border:1px solid rgba(100,216,255,.24);border-radius:14px;padding:20px}.treats-icon{font-size:30px;display:block;margin-bottom:10px}.treats-item h3{margin:0 0 8px;font-size:1.12rem}.treats-item p{margin:0;color:#c3dbe9;line-height:1.6}

/* v7.3: full-width, content-sized feature panels; no unequal grid stretching */
.optional-sections{display:flex;flex-direction:column;gap:22px;align-items:stretch}
.optional-sections>.v7-panel{width:100%;min-height:0;align-self:stretch;box-sizing:border-box}
#section-status,#section-treats{position:relative;overflow:hidden;border:1px solid #2588af;background:radial-gradient(ellipse at top right,rgba(30,102,143,.2),transparent 65%),linear-gradient(145deg,#0b293f,#051a2d);box-shadow:0 8px 32px rgba(0,0,0,.12);padding:clamp(24px,4vw,42px)}
#section-status h2,#section-treats h2{font-family:Georgia,serif;font-size:clamp(30px,4vw,43px);margin:8px 0 18px;line-height:1.15}
#section-status .eyebrow,#section-treats .eyebrow{letter-spacing:.17em;color:#80dfff}
#section-status>p,#section-treats>p{max-width:780px;line-height:1.65}
#section-status .live-status{margin:5px 0 12px;padding:9px 18px}
#section-status .status-note{border-top:1px solid rgba(97,196,231,.28);margin-top:24px;padding-top:17px;font-size:15px}
#section-status .live-status.closed{background:#782b37;color:#fff1f2;border:1px solid #f06c7c}
#section-status .closure-reason{color:#ffd3d9!important;background:rgba(145,35,53,.28);border:1px solid #e45b70!important;border-radius:12px;padding:15px 18px!important;font-weight:700;font-size:16px!important;line-height:1.5}
#section-status .closure-reason::before{content:'⚠ Temporary closure notice';display:block;color:#ff8b99;font-size:13px;letter-spacing:.04em;margin-bottom:6px}
#section-treats .treats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:24px}
#section-treats .treats-item{min-width:0;padding:22px;background:linear-gradient(160deg,#103a53,#08263c);border-color:#286a8a}
#section-treats .treats-icon{font-size:36px}
#section-treats .treats-item h3{font-size:clamp(17px,2vw,22px);font-family:Georgia,serif}
#section-treats .treats-item p{font-size:14px}
.nav{height:auto;min-height:64px;gap:18px}.navlinks{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 18px;padding:10px 0}.navlinks a{white-space:nowrap}
@media(max-width:760px){.optional-sections{display:flex;flex-direction:column}.navlinks{justify-content:center}.navlinks a{font-size:12px}#section-treats .treats-grid{grid-template-columns:1fr}#section-status,#section-treats{padding:22px}}
@media(min-width:540px) and (max-width:760px){#section-treats .treats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v7.4: only the two featured sections span the page; smaller info cards return to a compact grid. */
.optional-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.optional-sections>.v7-panel{width:auto;min-height:0;align-self:start}
#section-status,#section-treats{grid-column:1/-1}
/* Keep the status card content-driven rather than matching the treats card height. */
#section-status{height:auto;min-height:0}
@media(max-width:740px){.optional-sections{grid-template-columns:1fr}.optional-sections>.v7-panel{grid-column:1/-1}}

/* v7.5: featured status and treats always lead; status uses its width efficiently. */
#section-status{padding:clamp(22px,3vw,30px)}
#section-status h2{margin:5px 0 8px}
#section-status>p{margin:0 0 15px}
#section-status .status-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.9fr);align-items:center;gap:24px;margin-top:8px}
#section-status .status-main{min-width:0}
#section-status .live-status{margin:4px 0 0}
#section-status .status-note{margin:15px 0 0;padding-top:12px;max-width:470px;font-size:13px}
#section-status .status-hours{display:grid;gap:12px;padding:18px 22px;background:linear-gradient(145deg,rgba(16,61,87,.86),rgba(7,37,57,.8));border:1px solid rgba(100,216,255,.25);border-radius:13px}
#section-status .status-hours p{margin:0;color:#e3f5ff;font-size:15px;line-height:1.5}
#section-status .status-hours p+p{padding-top:12px;border-top:1px solid rgba(110,204,240,.2)}
#section-status .closure-reason{margin-top:14px!important}
@media(max-width:700px){#section-status .status-layout{grid-template-columns:1fr;gap:16px}#section-status .status-hours{padding:15px 17px}}

/* v7.6: more balanced featured cards, compact treats and readable hours */
#section-status .status-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:stretch;gap:22px}
#section-status .status-hours{padding:23px 26px;justify-content:center;gap:18px}
#section-status .status-hours p{font-size:16px;font-weight:650;line-height:1.6}
#section-status .status-hours p+p{padding-top:17px}
#section-status .status-note:not(.closure-reason){font-size:12px;color:#a9c9da}
#section-status .closure-reason::before{content:'⚠ Lighting update'}
#section-treats{padding:22px 26px}
#section-treats h2{font-size:clamp(26px,3vw,34px);margin:4px 0 8px}
#section-treats>p{font-size:13px;margin:0}
#section-treats .treats-grid{gap:11px;margin-top:14px}
#section-treats .treats-item{padding:13px 15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#section-treats .treats-icon{font-size:27px;margin:0}
#section-treats .treats-item h3{font:700 15px/1.4 system-ui,sans-serif;margin:0}
#section-treats .treats-item p{width:100%;font-size:12px;margin:0}
#visitor-info{scroll-margin-top:18px}
@media(max-width:700px){#section-status .status-layout{grid-template-columns:1fr}#section-status .status-hours{padding:16px 18px}#section-treats .treats-grid{grid-template-columns:1fr}#section-treats .treats-item{padding:11px 13px}}

/* v7.7: concise schedule clarification, without changing the calendar layout. */
#schedule .subhead{color:#bde4f5;font-weight:550}
#schedule .details .status{font-size:10px;letter-spacing:.025em}
#schedule .notice{color:#cce8f5}

/* v7.8: tighter front-yard status, clear backyard context and countdown handoff */
#section-status{padding:22px 26px}
#section-status h2{margin:2px 0 3px}
#section-status>p{margin:0 0 5px;font-size:13px}
#section-status .status-layout{gap:16px;margin-top:5px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
#section-status .status-hours{padding:15px 19px;gap:9px}
#section-status .status-hours p{font-size:14px;line-height:1.45;font-weight:550}
#section-status .status-hours p+p{padding-top:10px}
#section-status .status-note{margin-top:10px;padding-top:9px;font-size:11px;line-height:1.45}
#section-status .live-status{margin-top:2px}
.backyard-hint{color:#b4d8e8;font-size:12px;margin:4px 0 9px}
.walk-count>.eyebrow{font-size:12px}
.lights-finished-summary{display:flex;flex-direction:column;gap:7px;align-items:center;padding:6px 0 9px}
.lights-finished-summary[hidden],.timer[hidden]{display:none!important}
.lights-finished-status{font-size:14px;color:#b9f5d4;font-weight:700}
.lights-finished-link{display:inline-block;padding:8px 15px;border:1px solid #54bde4;border-radius:22px;color:#c9f4ff;text-decoration:none;font-size:12px;font-weight:700}
.lights-finished-link:hover{background:#123d55}
@media(max-width:700px){#section-status .status-layout{grid-template-columns:1fr}#section-status .status-hours{padding:13px 16px}}

/* v7.9: preserve the original cards; size the hours panel to its actual content. */
#section-status .status-layout{grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center}
#section-status .status-hours{width:max-content;max-width:100%;min-width:0;justify-self:end;align-self:center;gap:0;padding:11px 18px}
#section-status .status-hours p{font-size:14px;line-height:1.45;font-weight:600;white-space:nowrap}
#section-status .status-hours p+p{padding-top:9px;margin-top:9px}
#section-status .status-main{max-width:440px}
.lights-finished-summary{padding:4px 0 9px}
.lights-finished-link{font-size:13px;padding:9px 18px}
@media(max-width:760px){#section-status .status-layout{grid-template-columns:1fr;gap:12px}#section-status .status-hours{width:100%;justify-self:stretch}#section-status .status-hours p{white-space:normal}}

/* v8: optional hero photo boxes, retaining the original centered headline */
.hero-shell{width:100%;max-width:1920px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,660px) minmax(0,1fr);align-items:center;gap:clamp(12px,2vw,30px);padding:35px clamp(18px,3vw,52px)}
.hero-shell .hero{min-width:0;width:100%;padding:20px 0;min-height:465px}
.hero-shell:not(.has-hero-photos){display:block}.hero-shell:not(.has-hero-photos) .hero{max-width:1110px;margin:auto}
.hero-photo{height:clamp(220px,27vw,410px);border:1px solid #24698d;border-radius:18px;overflow:hidden;position:relative;background:#061b2d;box-shadow:0 14px 40px #0003}
.hero-photo[hidden]{display:none!important}.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;background:#061726dd;border:1px solid #4288a6;border-radius:40px;padding:3px 7px;color:#fff;font-size:12px;white-space:nowrap}
.hero-photo-controls[hidden]{display:none}.hero-photo-controls button{background:transparent;border:0;color:#fff;cursor:pointer;font-size:28px;line-height:1;padding:0 9px}
@media(max-width:1200px){.hero-shell{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr)}.hero-shell .hero h1{font-size:clamp(36px,4vw,66px)}}
@media(max-width:850px){.hero-shell{grid-template-columns:1fr 1fr;gap:12px;padding:18px}.hero-shell .hero{grid-column:1/-1;grid-row:1;min-height:0}.hero-photo{height:220px}.hero-photo-left{grid-column:1}.hero-photo-right{grid-column:2}.hero-shell .hero h1{font-size:clamp(44px,8vw,75px)}}
@media(max-width:480px){.hero-photo{height:155px;border-radius:12px}.hero-photo-controls{bottom:6px;gap:2px}.hero-photo-controls button{font-size:23px}}

/* v8.1: keep each slideshow beside the centered hero, never inside it */
@media(min-width:851px){.hero-shell.has-hero-photos{grid-template-columns:minmax(0,1fr) minmax(0,660px) minmax(0,1fr)}.hero-shell.has-hero-photos .hero-photo-left{grid-column:1;grid-row:1}.hero-shell.has-hero-photos .hero{grid-column:2;grid-row:1}.hero-shell.has-hero-photos .hero-photo-right{grid-column:3;grid-row:1}}
