:root{--pine:#163f40;--paper:#faf6ed;--red:#a84436;--gold:#ecd49b;--line:#d7dccc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--pine);font:16px/1.65 system-ui,sans-serif}a{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,svg:focus-visible{outline:3px solid #bd642a;outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:40px;background:white;z-index:5}.draft{background:var(--pine);color:#fff7df;text-align:center;padding:8px 20px;font-size:11px;letter-spacing:1.4px}.draft span{margin:0 12px}header{max-width:1320px;margin:auto;padding:26px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:42px;line-height:.9}.brand span{font-size:22px;font-weight:850;letter-spacing:2px}.brand small{font-size:12px;letter-spacing:4px}nav{display:flex;gap:28px;font-size:13px;font-weight:650}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.hero{max-width:1320px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:28px 5% 65px;align-items:center}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;margin:0 0 22px}h1,h2{font-family:Georgia,serif;font-weight:400;line-height:1.04;letter-spacing:-2px;margin:0}h1{font-size:clamp(50px,5.4vw,78px)}em{font-weight:400;color:var(--red)}h2{font-size:clamp(37px,4.3vw,58px)}.lead{font-size:23px;font-weight:700;margin:22px 0 8px}.intro{max-width:430px;color:#536663;font-size:16px}.date{display:flex;flex-direction:column;border-left:3px solid var(--red);padding-left:16px;margin:26px 0;font-size:14px}.date strong{letter-spacing:1px}.actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap}.button{background:var(--red);color:white;padding:14px 22px;border-radius:3px;text-decoration:none;font-size:14px;font-weight:650}.button span{margin-left:20px}.text-link{font-size:14px;font-weight:700}.scene{position:relative;overflow:hidden;border-radius:48% 48% 5px 5px;border:1px solid #254e49;box-shadow:12px 14px 0 #e4e8dc}.scene svg{display:block;width:100%;height:auto}.scene-label{position:absolute;bottom:16px;width:100%;text-align:center;font-size:10px;font-weight:800;letter-spacing:2px}.ribbon{background:#e4e9dd;display:flex;justify-content:center;gap:70px;padding:20px;font-size:12px;font-weight:700;letter-spacing:1px}.section{max-width:1200px;padding:86px 4%;margin:auto}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px}.section-head>p{font-size:14px;color:#5a6b65}.days{display:grid;grid-template-columns:1fr 1fr;gap:25px}.days article{background:#fffdf7;border:1px solid var(--line);padding:26px 30px;border-radius:5px}.day-title{display:flex;align-items:center;gap:15px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:15px}.day-title>span{background:var(--pine);color:white;padding:7px 10px;font-size:11px;letter-spacing:1px}.day-title h3{font-family:Georgia,serif;font-weight:400;font-size:25px;margin:0}.day-title b{font-size:12px;margin-left:auto}ul{list-style:none;padding:0;margin-bottom:0}li{display:flex;gap:20px;padding:12px 0;border-bottom:1px solid #eceee4;font-size:14px}li:last-child{border:0}time{width:93px;flex-shrink:0;font-size:12px;font-weight:700;padding-top:2px}.source{font-size:12px;color:#5c6a64}.source a{font-weight:650}.market{max-width:none;padding:70px max(5%,calc((100vw - 1104px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px;background:var(--pine);color:#f8f4e7}.market em{color:var(--gold)}.market p{max-width:450px}.small{font-size:12px;color:#c2d2c8}.market-status{border:1px solid #64817a;border-radius:5px;padding:32px;background:#204b49}.tag{font-size:10px;letter-spacing:1.7px;color:var(--gold)}h3{font-family:Georgia,serif;font-size:30px;line-height:1.2;font-weight:400}h4{margin-bottom:0}.market-status p{font-size:14px}.market hr{border:0;border-top:1px solid #64817a;margin:25px 0}.notice{border-left:2px solid var(--gold);padding-left:14px;color:#efe3c2}.map-shell{border:1px solid #a5b8aa;border-radius:6px;overflow:hidden;background:#e7eee4}.map-toolbar,.map-bottom{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;gap:15px;flex-wrap:wrap;background:#fffdf6}.map-toolbar button{border:1px solid #b3c0b2;background:#fffdf7;color:var(--pine);border-radius:3px;min-height:44px;min-width:44px;font-size:18px;cursor:pointer}.map-toolbar #reset{font-size:12px;padding:0 12px}.map-bottom{font-size:11px}.map-bottom i{display:inline-block;background:#a84436;width:20px;height:4px;vertical-align:middle;margin-right:5px}.muted{color:#617163}#map-content{position:relative}#map-svg{width:100%;height:470px;display:block;touch-action:pan-y}.north{position:absolute;right:20px;top:18px;line-height:1.2;text-align:center;font-size:20px;background:#fffdf5;padding:10px;border-radius:30px}.map-note{display:grid;grid-template-columns:1fr 2fr;gap:45px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px;font-size:14px}.map-note p{margin:0;color:#5d6c66}.visit{display:grid;grid-template-columns:1fr 1.3fr;gap:70px;padding-top:35px}.faq details{border-bottom:1px solid var(--line);padding:19px 0}.faq summary{cursor:pointer;font-weight:650;font-size:15px}.faq p{font-size:14px;color:#52675f}footer{background:#e4e9dd;padding:35px 6%;display:flex;align-items:center;justify-content:space-between;gap:35px}footer p,footer>a:last-child{font-size:12px}footer .brand{flex-shrink:0}@media(max-width:760px){header{padding:22px 6%;align-items:flex-start}nav{gap:10px 17px;flex-wrap:wrap;justify-content:flex-end;max-width:220px;font-size:11px}.brand{font-size:30px}.brand span{font-size:17px}.brand small{font-size:10px;letter-spacing:2px}.hero{grid-template-columns:1fr;padding:18px 6% 50px;gap:36px}.hero-copy{max-width:550px}.scene{max-width:450px;margin:auto;width:100%;border-radius:45% 45% 5px 5px}.scene svg{max-height:450px}.ribbon{gap:20px;flex-wrap:wrap;font-size:10px}.section{padding:55px 6%}.section-head{display:block}.section-head>p{margin-top:20px}.days,.market,.visit{grid-template-columns:1fr;gap:25px}.days article{padding:20px}.market{padding:50px 6%}.market-status{padding:25px}.map-note{grid-template-columns:1fr;gap:12px}#map-svg{height:360px}.map-toolbar{padding:12px}.map-toolbar strong{font-size:13px}.map-bottom{padding:12px}.map-bottom .muted{display:block}footer{flex-wrap:wrap;padding:30px 6%}.draft{font-size:9px;letter-spacing:.8px}.draft span{margin:0 4px}.visit{padding-top:0}li{gap:10px}time{width:80px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Version 2: palette and framing from the City-supplied 2026 banner. */
:root{--pine:#074524;--paper:#f6fbfd;--red:#ae1012;--gold:#f1b52d;--line:#c4dbe5}body{background:linear-gradient(#e6f5fc 0,#fbfdff 1050px)}.draft{background:#063e24;color:#fff9e5}header{border-bottom:1px solid #c9e4ee}.brand{color:#075031}.brand>span{color:#075031}.hero{display:flex;flex-direction:column;gap:27px;padding-top:34px;align-items:stretch}.hero-copy{max-width:none;display:grid;grid-template-columns:1.2fr 1fr;column-gap:45px;align-items:start}.hero-copy .eyebrow{grid-column:1/-1;margin-bottom:15px;color:#176480}.hero-copy h1{font-size:clamp(45px,6vw,76px);grid-column:1;letter-spacing:-2.8px;color:#075031;text-shadow:0 2px white}.hero-copy h1 em{color:#16789c}.hero-copy .lead{grid-column:1;font-size:18px;margin:15px 0 0}.hero-copy .intro{grid-column:1;margin-bottom:0;max-width:540px;font-size:14px}.hero-copy .date{grid-column:2;grid-row:2;margin:8px 0 0;border-left-color:#e6aa22;font-size:16px;padding:9px 18px}.hero-copy .actions{grid-column:2;grid-row:3/5;margin-top:22px;gap:20px}.button{background:linear-gradient(#b71c19,#990f0f);border:1px solid #8a0a0a;box-shadow:0 3px 0 #ecd698}.city-banner{margin:0;border:3px solid #e7b53e;border-radius:16px;padding:6px;background:#fffaf0;box-shadow:0 12px 35px #24566e17;overflow:hidden}.city-banner>a{display:block}.city-banner img{display:block;width:100%;height:auto;border-radius:8px}.city-banner figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 10px 7px;font-size:10px;font-weight:750;letter-spacing:1.5px;color:#23596a}.city-banner figcaption span{font-weight:400;letter-spacing:0}.ribbon{background:#daf0fa;border-top:1px solid #c0e2ef;border-bottom:1px solid #c0e2ef;color:#135a72}.section em{color:#0b7399}.days article{border:1px solid #bdd8e3;box-shadow:0 5px 0 #e1f0f6;background:#fff}.day-title>span{background:#095230;border-bottom:3px solid #efb426}.market{background:radial-gradient(ellipse at top,#0e683c,#043c24);border-top:4px solid #e8b534;border-bottom:4px solid #e8b534}.market em{color:#a5dcf4}.market-status{background:#fffaf0;color:#12482e;border:2px solid #f1bb3a;box-shadow:0 0 0 5px #ffffff0c}.market .tag{color:#9a1915}.market hr{border-color:#d8c78e}.market .notice{color:#7b2116;border-color:#c4201c}.market .small{color:#c4e9e1}.map-shell{border:3px solid #daa92c;border-radius:14px;background:#e1f2fc;box-shadow:0 0 0 5px #e2f2fa,0 12px 28px #235c7c12}.map-art-band{background:linear-gradient(110deg,#b1ddf2,#e9f7fd 50%,#a9d8f0);color:#075031;display:flex;align-items:center;justify-content:center;gap:32px;text-align:center;padding:17px;border-bottom:2px solid #d6a324}.map-art-band>span{color:white;text-shadow:0 1px 2px #5f9ab6;font-size:37px}.map-art-band b{font-family:Georgia,serif;font-size:25px;letter-spacing:1px;text-shadow:0 2px white}.map-art-band small{display:block;color:#276882;font-size:9px;letter-spacing:3px}.map-toolbar{background:#fffdf5;border-bottom:1px solid #cae0e8}.map-toolbar strong{font-size:13px}.map-toolbar button{background:#f7fcff;border-color:#8ab8cc;color:#08567a;border-radius:5px}.map-toolbar button:hover{background:#d7effb}.map-bottom{background:#fffdf5;border-top:1px solid #b5d7e8}.map-bottom i{background:#b11e22}.north{background:#fffdf1;color:#075031;border:2px solid #e9be55}footer{background:#def0f8;border-top:3px solid #dfb348}.source{color:#446b7a}
@media(max-width:760px){.hero{padding:24px 6% 38px;gap:25px}.hero-copy{display:block;max-width:none}.hero-copy h1{font-size:47px;letter-spacing:-2px}.hero-copy .lead{font-size:17px;margin-top:15px}.hero-copy .intro{font-size:14px}.hero-copy .date{margin:22px 0 0;font-size:14px;padding-left:14px}.hero-copy .actions{margin-top:23px;gap:15px}.city-banner{margin-left:-3%;margin-right:-3%;padding:3px;border-width:2px;border-radius:9px}.city-banner img{border-radius:5px}.city-banner figcaption{font-size:9px;padding:9px 6px 5px}.map-art-band{gap:16px;padding:14px 8px}.map-art-band b{font-size:21px}.map-art-band small{font-size:8px;letter-spacing:2px}.map-art-band>span{font-size:27px}.map-toolbar>div{display:flex;gap:4px;flex-wrap:wrap}.map-toolbar strong{font-size:12px}}
/* Illustrated winter town: real map art, with readable geographic street labels. */
#map-content{background:#eaf2ef;border-left:7px solid #fff9e9;border-right:7px solid #fff9e9}#map-svg{height:auto;aspect-ratio:1000/520;cursor:grab;touch-action:pan-y}#map-svg.dragging{cursor:grabbing}.map-street-label{pointer-events:none}.map-art-band{background:linear-gradient(100deg,#123e35,#1b6249,#123e35);color:#fff6dc;border-bottom:2px solid #e7bd5c}.map-art-band b{color:#fff9e7;text-shadow:0 2px #05291f}.map-art-band small{color:#d5edf2}.map-art-band>span{color:#eaf9ff}.map-illustration-note{font-size:12px;color:#526a6d;margin-top:18px}.map-shell{border-color:#bd943c;box-shadow:0 0 0 5px #e6f1f4,0 14px 30px #1d536329}.north{font-size:14px;padding:8px;right:10px;top:10px}.map-bottom i{background:#c49b42}@media(max-width:760px){#map-content{border-left-width:3px;border-right-width:3px}#map-svg{height:340px;aspect-ratio:auto}.map-art-band{padding:12px 8px}.map-street-label text{font-size:11px}.north{font-size:12px;right:7px;top:7px}.map-bottom{font-size:10px}}

/* Visual-first: preserve accessible descriptions without caption clutter. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.map-bottom{justify-content:flex-end;padding:8px 15px}.city-banner{padding:5px}
/* Regional map + touch-first controls. */
#map-svg{height:550px;aspect-ratio:auto;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:contain}#map-content{isolation:isolate}.map-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between}.map-toolbar .map-views,.map-toolbar .map-tools{display:flex;gap:5px;flex-wrap:wrap}.map-toolbar .map-views button{font-size:12px;font-weight:750;padding:8px 13px}.map-views button[aria-pressed=true]{background:#15563d;color:#fff9e5;border-color:#15563d}.map-toolbar .map-tools button{min-width:42px;min-height:42px}.gesture-hint{width:100%;font-size:11px;color:#526c65}.venue-pin{cursor:pointer;outline:none}.venue-pin:focus>circle:first-child{stroke:#a21e16;stroke-width:4}.map-places{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:18px}.map-places article{background:#fffdf6;border:1px solid #c1d9dc;border-radius:8px;padding:14px 17px}.map-places article.selected{border-color:#b99a43;box-shadow:0 0 0 2px #e5d6a3}.place-focus{display:flex;gap:12px;width:100%;align-items:center;padding:0;border:0;background:none;text-align:left;cursor:pointer;color:#174e39;font:inherit}.place-focus>span:last-child{margin-left:auto}.place-focus strong,.place-focus small{display:block}.place-focus small{font-size:12px;font-weight:400}.place-number{background:#15563d;color:white;display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;font-size:13px;font-weight:800}.map-places p,.map-places a{font-size:12px;margin:8px 0 0}.map-places a{display:inline-block}#map-scroll{position:absolute;z-index:2;right:10px;bottom:10px;border:1px solid #a6c4c5;background:#fffdf1ed;color:#15563d;border-radius:6px;font-size:11px;min-height:36px;padding:5px 9px}.north{pointer-events:none;z-index:2}@media(max-width:760px){#map-svg{height:490px}.map-toolbar{padding:12px;gap:10px}.map-toolbar .map-views{width:100%;display:grid;grid-template-columns:1fr 1fr}.map-toolbar .map-views button{padding:8px 5px;font-size:11px}.map-toolbar .map-tools{gap:4px;flex-wrap:nowrap;width:100%}.map-toolbar .map-tools button{min-width:0;flex:1;font-size:16px}.map-toolbar .map-tools #reset{flex:1.5;padding:0 5px;font-size:11px}.gesture-hint{font-size:10px}.map-places{grid-template-columns:1fr 1fr;gap:8px}.map-places article{padding:12px 10px}.place-focus{gap:7px;font-size:13px}.place-number{min-width:24px;height:24px;font-size:11px}.place-focus>span:last-child{display:none}.place-focus small,.map-places p,.map-places a{font-size:10px}}

.shuttle-details{margin-top:16px;padding:15px 18px;border:1px solid #d5dfd8;border-radius:12px;background:#fffdf4;font-size:13px;line-height:1.65}.shuttle-details summary{font-weight:750;cursor:pointer;color:#164a38}.shuttle-details p{max-width:780px;margin:12px 0 0}.shuttle-details a{color:#164a38;text-decoration:underline}
/* Event categories and owner-local placement planning */
.map-views{flex-wrap:wrap}.event-filters{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px 2px;background:#fffdf4}.event-filters button{display:flex;align-items:center;gap:7px;border:1px solid #b9ccc7;border-radius:7px;padding:8px 10px;color:#164a38;background:#fff;min-height:42px;font-size:12px;font-weight:700;cursor:pointer}.event-filters button[aria-pressed=false]{opacity:.55;background:#e6eae7}.legend-dot{display:inline-grid;place-items:center;border-radius:50%;width:21px;height:21px;color:white;font:700 11px system-ui}.stores{background:#375f92}.food{background:#a33b24}.activities{background:#71601c}.event-empty,.event-selected{font-size:11px;margin:0;padding:5px 18px 9px;background:#fffdf4;color:#527064}.event-selected:empty{display:none}.event-planner{margin-top:16px;padding:15px 18px;border:1px solid #c8d8d2;border-radius:12px;background:#f5faf8;font-size:13px}.event-planner summary{font-weight:750;color:#164a38;cursor:pointer}.planner-note{font-size:12px;color:#526a62;line-height:1.6}.event-planner form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.event-planner label{display:grid;gap:5px;font-weight:650}.event-planner input,.event-planner select{width:100%;box-sizing:border-box;padding:10px;border:1px solid #a7bdb3;border-radius:5px;background:white;color:#163f33;font:inherit;min-width:0}.placement-coords{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:12px}.planner-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.event-planner button{min-height:42px;border:1px solid #8fa99d;border-radius:6px;padding:8px 12px;background:#fff;color:#164a38;font:600 12px system-ui;cursor:pointer}.event-planner button[type=submit],#pick-location[aria-pressed=true]{background:#164a38;color:white}.event-planner .draft-toggle{display:flex;align-items:center;gap:8px;font-weight:400}.draft-toggle input{width:18px;height:18px}.event-planner ul{list-style:none;padding:0}.event-planner li{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #d6e3dc;overflow-wrap:anywhere}.event-planner button:disabled{opacity:.5;cursor:default}.event-planner #placement-status{font-size:12px;line-height:1.5}.placing{cursor:crosshair!important}.event-pin{cursor:pointer}@media(max-width:600px){.map-views{display:grid!important;grid-template-columns:1fr 1fr}.map-views #view-events{grid-column:1/-1}.event-filters{padding:9px 10px 2px;gap:5px}.event-filters button{font-size:10px;padding:6px;gap:4px}.legend-dot{width:18px;height:18px;font-size:10px}.event-planner{padding:13px}.event-planner form{grid-template-columns:1fr}.placement-coords{gap:8px}.event-planner input,.event-planner select{font-size:16px}.event-empty,.event-selected{padding-left:10px}}
.event-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:15px 18px 6px}.event-filters button{justify-content:center;min-height:62px;font-size:13px;border-width:2px}.event-filters button[aria-pressed=true]{background:#eaf4f0;border-color:#205a45;box-shadow:0 2px 0 #205a45}.kringle{background:#7c426e}.event-directory{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px}.event-directory>p{grid-column:1/-1;font-size:13px;color:#526a62}.event-directory details{border:1px solid #c8d8d2;border-radius:10px;padding:14px;background:#fffdf4;font-size:13px}.event-directory summary{font-weight:750;cursor:pointer;color:#164a38}.event-directory p{line-height:1.5;color:#526a62}.event-directory a{display:inline-block;margin:4px 15px 4px 0;color:#164a38;text-decoration:underline}.event-directory details:target{outline:3px solid #c49b39}@media(max-width:600px){.event-filters{grid-template-columns:1fr 1fr;padding:10px;gap:7px}.event-filters button{font-size:11px;min-height:58px}.event-directory{grid-template-columns:1fr}}
.existing-item-label{margin:12px 0 18px}.event-directory summary img{display:block;object-fit:contain;margin:0 auto 10px}.directory-logo{height:85px;max-width:150px;background:#fffdf6;border:7px solid #745137;border-top:8px solid #eef9f9;border-radius:8px;padding:5px}.directory-booth{width:170px;height:145px}.event-directory summary:has(img){text-align:center}.event-filters button[aria-pressed=false]{opacity:1;background:#f1f4f1;border-color:#cdd9d3;color:#385a4c}

.map-edit-link{background:#fffdf4;text-align:right;padding:0 18px 10px;font-size:12px}.map-edit-link a{color:#164a38;text-decoration:underline;text-underline-offset:3px}
/* Dedicated owner-local editing workspace */
footer .admin-access{white-space:nowrap;font-size:13px;border:2px solid #123b2b;padding:12px 16px;background:#123b2b;color:#fff}
.admin-page header{max-width:none;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-page header h1{font-size:27px;margin:0}.admin-page #map{max-width:1500px;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.admin-page .map-shell{grid-column:1;grid-row:2}.admin-page #event-planner{grid-column:2;grid-row:2 / span 4;margin:0;position:sticky;top:12px;max-height:calc(100vh - 30px);overflow:auto}.admin-page #event-planner form{grid-template-columns:1fr}.admin-page .map-places{grid-column:1;margin-top:0}.admin-page .map-places article{padding:12px}.admin-page .admin-directory{display:none}.admin-page #map-content{height:65vh;min-height:450px}.admin-page #map-svg{height:100%}.admin-page .editor-jump{grid-column:1/-1;color:#164a38;font-size:13px}.admin-page .event-planner li{flex-wrap:wrap;gap:6px}.admin-page .event-planner li span{flex-basis:100%}.admin-page .event-planner summary{font-size:18px}.admin-page footer{padding:20px}.admin-page .event-filters{gap:5px;padding:10px}.admin-page .event-filters button{font-size:11px;min-height:48px}.admin-page .map-toolbar{padding:10px}.admin-page .map-views button,.admin-page .map-tools button{font-size:11px}.admin-page .draft{padding:10px 16px;line-height:1.5}
@media(max-width:900px){.admin-page #map{grid-template-columns:1fr;padding:10px}.admin-page #event-planner{grid-column:1;grid-row:auto;position:static;max-height:none}.admin-page .map-places{grid-row:3}.admin-page #map-content{height:55vh;min-height:350px}.admin-page header{padding:16px;flex-wrap:wrap}.admin-page header h1{font-size:23px}.admin-page .editor-jump{grid-column:1}.admin-page .map-shell{grid-row:2}}
.admin-page header .brand{font:700 17px system-ui;letter-spacing:0}.admin-page .event-planner .nudge-controls{display:flex;flex-wrap:wrap;gap:6px}

/* Admin-only illustrated selection palette; no public directory changes. */
.admin-page .placement-palette{padding:0 0 18px;border-bottom:1px solid #c7c0a7;margin-bottom:18px}.admin-page .placement-palette h3{font-size:17px;margin:12px 0 6px}.admin-page .placement-palette>p{font-size:12px;line-height:1.5;margin:0 0 10px}.admin-page .placement-palette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:380px;overflow:auto;padding:3px}.admin-page .placement-palette-item{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:9px 6px;background:#faf6e9;border:1px solid #bcb69b;border-radius:10px;color:#253e36;min-width:0;cursor:pointer;line-height:1.3}.admin-page .placement-palette-item:hover{background:#edf1df}.admin-page .placement-palette-item[aria-pressed=true]{border:3px solid #263f34;padding:7px 4px;background:#e6edd7;box-shadow:0 0 0 1px #c3a564}.admin-page .placement-palette-item:focus-visible{outline:3px solid #9d4937;outline-offset:2px}.admin-page .placement-palette-item img{width:100%;height:90px;object-fit:contain;display:block}.admin-page .placement-palette-item .palette-storefront-logo{padding:7px;background:#fffdf5;border:5px solid #805a3d;border-radius:3px;box-sizing:border-box}.admin-page .palette-name{font:700 11px system-ui;overflow-wrap:anywhere}.admin-page .placement-palette-item small{font:10px system-ui;color:#536252}.admin-page .palette-symbol{display:grid;place-items:center;height:90px;font-size:35px}.admin-page .placement-nudges{display:flex;flex-wrap:wrap;gap:5px}@media(max-width:900px){.admin-page .placement-palette-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:340px}}@media(max-width:420px){.admin-page .placement-palette-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.event-directory img.directory-storefront-sign,#event-directory img.directory-storefront-sign{background:#fffdf5;border:5px solid #805a3d;border-radius:3px;padding:5px;box-sizing:border-box}

/* Dedicated festival explorer: the map stays in view while its directory scrolls. */
.map-preview-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:42px}.map-preview-copy p:not(.eyebrow){max-width:460px;color:#47675b}.map-preview-copy .button{display:inline-block;margin-top:12px}.map-preview-image{display:block;position:relative;overflow:hidden;border:2px solid #c7a34f;border-radius:14px;box-shadow:0 10px 28px #214b3820;background:#dceaf1}.map-preview-image img{width:100%;height:320px;display:block;object-fit:cover}.map-preview-image>span{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:center;background:#123f32ed;color:#fff9e9;padding:16px 20px;font-size:12px;font-weight:750;letter-spacing:2px}.map-preview-image b{font-size:25px}.explorer-page{height:100vh;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#e6f1f3}.explorer-page .skip:focus{top:5px;left:5px;z-index:20;padding:10px}.explorer-page .explorer-header{width:100%;max-width:none;margin:0;padding:10px 20px;min-height:58px;background:#fbfcf7;border-bottom:2px solid #cfad5c;gap:16px}.explorer-home{display:flex;align-items:center;gap:10px;color:#164c38;text-decoration:none;font-size:14px;font-weight:800;white-space:nowrap}.explorer-header h1{font:400 25px/1.2 Georgia,serif;letter-spacing:-.5px;margin:0}.explorer-preview{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#5a7067}.explorer-main{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:12px;padding:12px;min-height:0;min-width:0}.explorer-map{min-width:0;min-height:0;display:flex}.explorer-page .map-shell{width:100%;min-height:0;display:flex;flex-direction:column;border-width:1px;border-radius:10px;box-shadow:0 3px 12px #1d53631c}.explorer-page .map-toolbar{padding:8px;gap:7px;flex-shrink:0}.explorer-page .map-toolbar .map-views{display:flex!important;gap:4px;flex-wrap:wrap;width:auto}.explorer-page .map-toolbar .map-views button{font-size:11px;min-height:40px;padding:5px 10px}.explorer-page .map-tools{width:auto;gap:4px;flex-wrap:nowrap}.explorer-page .map-tools button{min-height:40px;min-width:34px;font-size:17px;flex:none}.explorer-page .map-tools #reset{font-size:11px;padding:0 8px}.explorer-page .gesture-hint{display:none}.explorer-page .event-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px 8px;gap:5px;border-bottom:1px solid #d2dfd5;flex-shrink:0}.explorer-page .event-filters button{font-size:11px;min-height:42px;padding:5px;gap:5px;border-width:1px;line-height:1.2}.explorer-page .event-filters .legend-dot{width:18px;height:18px;flex-shrink:0;font-size:10px}.explorer-page [data-count]{font-size:10px;color:#486657}.explorer-page .event-empty{padding:4px 10px;font-size:10px;line-height:1.35;flex-shrink:0}.explorer-page .event-selected{position:absolute!important;width:1px!important;height:1px!important;clip:rect(0,0,0,0);overflow:hidden;padding:0;margin:-1px}.explorer-page #map-content{flex:1;min-height:0;height:auto;border:0}.explorer-page #map-svg{width:100%;height:100%;aspect-ratio:auto;touch-action:none}.explorer-page #map-scroll{display:none}.explorer-page .map-bottom{display:none}.explorer-page .north{font-size:10px;padding:5px;top:8px;right:8px}.explorer-list{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fffdf6;border:1px solid #bccdc7;border-radius:10px;overflow:hidden}.explorer-list-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 15px 5px;flex-shrink:0}.explorer-list-heading .eyebrow{font-size:8px;letter-spacing:1.5px;margin:0 0 5px}.explorer-list-heading h2{font:400 21px/1.1 Georgia,serif;letter-spacing:-.3px;margin:0}.explorer-list-heading #directory-total{min-width:28px;padding:3px 6px;font-size:11px;font-weight:700;text-align:center;background:#e4eee8;border-radius:20px}.explorer-list-hint{font-size:11px;color:#66776d;margin:0;padding:3px 15px 11px;border-bottom:1px solid #dbe2d7;flex-shrink:0}.explorer-page .event-directory{display:block;margin:0;padding:0 8px 14px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;flex:1;touch-action:pan-y;-webkit-overflow-scrolling:touch}.directory-category-heading{font:800 10px/1.4 system-ui,sans-serif;letter-spacing:1.2px;text-transform:uppercase;margin:0;padding:12px 7px 6px;color:#466353}.directory-item{background:#fffef9;border:1px solid transparent;border-bottom-color:#e0e6dc;border-radius:5px;margin:0;overflow:hidden}.directory-item.is-selected{background:#edf4ed;border-color:#789583;box-shadow:inset 3px 0 #1f5a40}.directory-row{width:100%;display:flex;align-items:center;gap:10px;min-height:61px;padding:8px;border:0;border-radius:5px;background:transparent;color:#164332;text-align:left;font:700 12px/1.35 system-ui,sans-serif;cursor:pointer}.directory-row:hover{background:#eaf1e9}.directory-thumb{display:grid;place-items:center;width:43px;height:43px;flex-shrink:0;border:1px solid #d8ddce;border-radius:5px;background:#fff;color:#37634e;overflow:hidden}.directory-thumb img{display:block;width:100%;height:100%;object-fit:contain;padding:3px}.directory-row-name{flex:1;min-width:0;overflow-wrap:anywhere}.directory-row-arrow{color:#70957d;font-size:17px;font-weight:400}.explorer-page .directory-detail{padding:0 10px 10px 61px;font-size:11px;line-height:1.5}.directory-detail p{margin:5px 0}.explorer-page .directory-detail a{font-size:11px;display:inline-block;margin:4px 8px 0 0}.directory-market-link{padding:7px 10px;border:1px solid #8ca68e;border-radius:4px;background:#fff8dc;color:#224d37;font:600 11px/1.4 system-ui;cursor:pointer}.explorer-page .explorer-footer{margin:0;padding:6px 16px;gap:12px;background:#143f32;color:#fff9ea;border:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:10px;line-height:1.4;min-height:30px}.explorer-footer a,.explorer-page .explorer-footer>a:last-child{font-size:10px}.event-pin.is-selected{filter:drop-shadow(0 0 3px #e8ac20)}
@media(max-width:900px){.explorer-main{grid-template-columns:minmax(0,1fr) 270px;gap:8px;padding:8px}.explorer-page .map-toolbar{justify-content:center}.explorer-page .map-toolbar .map-views,.explorer-page .map-tools{width:100%;justify-content:center}.explorer-list-heading h2{font-size:19px}}
@media(max-width:680px){.map-preview-section{grid-template-columns:1fr;gap:26px}.map-preview-image img{height:240px}.explorer-page .explorer-header{min-height:48px;padding:8px 12px;gap:8px}.explorer-header h1{font-size:18px}.explorer-home{font-size:12px;gap:6px}.explorer-preview{display:none}.explorer-main{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1.65fr) minmax(0,1fr);gap:6px;padding:6px}.explorer-page .map-shell,.explorer-list{border-radius:7px}.explorer-page .map-toolbar{padding:5px;gap:4px;display:grid;grid-template-columns:minmax(0,1fr)}.explorer-page .map-toolbar .map-views{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.explorer-page .map-views #view-events{grid-column:auto}.explorer-page .map-toolbar .map-views button{font-size:10px;min-height:44px;padding:4px}.explorer-page .map-tools{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.explorer-page .map-tools button{min-width:0;min-height:44px;font-size:16px}.explorer-page .map-tools #reset{font-size:10px;padding:0 4px}.explorer-page .event-filters{padding:4px 5px;gap:4px}.explorer-page .event-filters button{min-height:44px;font-size:10px;gap:3px;padding:4px 2px}.explorer-page .event-filters .legend-dot{display:none}.explorer-page .event-empty{font-size:9px;line-height:1.25;padding:3px 8px}.explorer-list-heading{padding:8px 12px 5px;align-items:baseline}.explorer-list-heading .eyebrow,.explorer-list-hint{display:none}.explorer-list-heading h2{font-size:18px}.explorer-list-heading #directory-total{font-size:10px;min-width:23px}.explorer-page .event-directory{padding:0 7px 12px}.directory-category-heading{padding-top:8px;font-size:9px}.directory-row{min-height:52px;padding:6px 7px;gap:9px;font-size:12px}.directory-thumb{width:35px;height:35px}.explorer-page .directory-detail{padding-left:51px}.explorer-page .explorer-footer{padding:5px 10px;min-height:27px;gap:6px;font-size:9px;flex-wrap:nowrap}.explorer-footer a,.explorer-page .explorer-footer>a:last-child{font-size:9px}.explorer-footer>span{max-width:42%;text-align:center;line-height:1.2}}
@media(max-width:680px) and (max-height:600px){.explorer-main{grid-template-rows:minmax(0,1.45fr) minmax(0,1fr)}.explorer-page .map-tools{display:none}.explorer-page .event-empty{display:none}.explorer-page .explorer-footer>span{display:none}}
@media(prefers-reduced-motion:reduce){.explorer-page *{scroll-behavior:auto!important}}
@media(max-width:680px) and (max-height:600px){.explorer-page .map-shell{position:relative}.explorer-page .map-tools{display:flex;position:absolute;right:7px;bottom:7px;width:auto;z-index:3;background:#fff9e9dd;border-radius:6px;padding:2px}.explorer-page .map-tools button:not(#zoom-in):not(#zoom-out){display:none}.explorer-page .map-tools #zoom-in,.explorer-page .map-tools #zoom-out{min-width:44px;min-height:44px}}

.layer-controls{border:1px solid #8c9b8b;border-radius:8px;padding:12px;min-width:0}.layer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.layer-buttons button{min-height:44px;white-space:normal}

/* Parking is a separate, exclusive map category. */
.event-filters{grid-template-columns:repeat(5,minmax(0,1fr))}.legend-dot.parking{background:#195d47}@media(max-width:600px){.event-filters button{font-size:9px}.admin-page .event-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
.explorer-page .event-filters{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:600px){.explorer-page .event-filters button{font-size:9px}.explorer-page .event-filters [data-count]{font-size:9px}}
