@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,700&display=swap');
:root{--ink:#241814;--muted:#73645d;--paper:#fffaf2;--surface:#fff;--line:#e9ddd0;--orange:#e35d21;--orange-dark:#bd3f0b;--night:#17100d;--gold:#f0a400;--green:#50974a;--teal:#278d89;--red:#ba3c32;--purple:#7652a5;--shadow:0 18px 50px rgba(47,28,17,.16)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,52px);background:var(--night);color:#fff}.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none;font-weight:700;font-size:19px;line-height:1}.brand small{display:block;color:#cbbdb6;font-size:10px;font-weight:500;letter-spacing:.04em;margin-top:5px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--orange);font-family:'Fraunces',serif;font-size:25px}.top-actions{display:flex;align-items:center;gap:15px}.legal-link{color:#d8cac2;text-decoration:none;font-size:12px;font-weight:700}.legal-link:hover{color:white}.legal-short{display:none}.primary,.secondary,.search-row button,.address-input button{border:0;border-radius:12px;padding:13px 18px;font-weight:700}.primary{background:var(--orange);color:white;box-shadow:0 6px 18px rgba(227,93,33,.24)}.primary:hover{background:var(--orange-dark)}.primary.compact{padding:10px 14px}.secondary{background:#f2e9df;color:var(--ink)}main{position:relative}.map-shell{height:calc(100vh - 72px);min-height:560px;position:relative;background:#ddd}.map-shell:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}#map{height:100%;z-index:0}.leaflet-control-attribution{font-size:9px!important}.search-card{position:absolute;z-index:500;top:20px;left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 32px));padding:13px;background:rgba(255,250,242,.96);backdrop-filter:blur(12px);border-radius:17px;box-shadow:var(--shadow)}.search-card>label{display:block;font-weight:700;font-size:13px;margin:0 0 7px 3px}.search-row{display:grid;grid-template-columns:1fr auto auto;gap:7px}.search-row input,.address-input input,.field input,.field textarea,.time-row input,select{min-width:0;border:1px solid var(--line);border-radius:10px;background:white;padding:12px;color:var(--ink);outline:none}.search-row input:focus,.address-input input:focus,.field input:focus,.field textarea:focus,.time-row input:focus,select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(227,93,33,.12)}.search-row button,.address-input button{background:var(--night);color:#fff}.search-row .icon-button{width:44px;padding:0;font-size:21px;background:#eee3d7;color:var(--ink)}.filter-toggle{display:none}.filters{position:absolute;z-index:450;left:20px;top:130px;width:215px;background:rgba(255,250,242,.96);padding:16px;border-radius:16px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.filter-head{display:flex;justify-content:space-between;margin-bottom:9px}.filter-head button{border:0;background:none;color:var(--orange-dark);font-size:12px}.filters label{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:13px}.filters input{accent-color:var(--orange)}.swatch{width:10px;height:10px;border-radius:50%}.gold{background:var(--gold)}.green{background:var(--green)}.teal{background:var(--teal)}.red{background:var(--red)}.purple{background:var(--purple)}.filters .date-filter{display:block;border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.date-filter select{width:100%;margin-top:6px;padding:8px;font-size:12px}.map-stats{position:absolute;z-index:400;bottom:18px;left:50%;transform:translateX(-50%);background:var(--night);color:white;border-radius:999px;padding:9px 15px;font-size:12px;box-shadow:var(--shadow)}.intro{display:none}.treat-marker{width:34px;height:42px;position:relative;filter:drop-shadow(0 5px 5px rgba(0,0,0,.25))}.treat-marker:before{content:"";position:absolute;width:32px;height:32px;border-radius:50% 50% 50% 0;background:var(--pin,#e35d21);transform:rotate(-45deg);left:1px;top:1px}.treat-marker span{position:absolute;z-index:1;color:#fff;width:34px;text-align:center;top:8px;font-weight:800;font-size:14px}.address-results{margin-top:8px;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:220px;overflow-y:auto}.address-results button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:white;padding:11px;font-size:12px;color:var(--ink)}.address-results button:last-child{border-bottom:0}.address-results button:hover{background:#fff5e9}dialog{border:0;padding:0;border-radius:20px;width:min(650px,calc(100% - 24px));max-height:92vh;box-shadow:0 30px 100px rgba(0,0,0,.42);background:var(--paper)}dialog::backdrop{background:rgba(19,10,7,.7);backdrop-filter:blur(4px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:23px 24px 10px}.dialog-head h2,.success-card h2{font-family:'Fraunces',serif;font-size:30px;margin:2px 0}.eyebrow{text-transform:uppercase;color:var(--orange-dark);letter-spacing:.13em;font-size:10px;font-weight:800;margin:0}.close{border:0;background:none;font-size:32px;line-height:1;color:var(--muted)}.form-body{padding:8px 24px 18px;overflow:auto;max-height:65vh}.field{display:block;font-size:13px;font-weight:700;margin:12px 0}.field small{display:block;font-weight:400;color:var(--muted);margin:6px 2px}.field textarea{width:100%;height:75px;resize:vertical;margin-top:6px}.address-input{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:6px}.address-input input{width:100%}fieldset{border:0;padding:0;margin:20px 0}legend{font-size:13px;font-weight:700;margin-bottom:8px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-grid label{position:relative}.choice-grid input{position:absolute;opacity:0}.choice-grid span{display:block;padding:12px;border:1px solid var(--line);border-radius:11px;background:white;font-size:13px;text-align:center}.choice-grid input:checked+span{border-color:var(--orange);background:#fff0e3;color:var(--orange-dark);box-shadow:inset 0 0 0 1px var(--orange)}.dates{grid-template-columns:repeat(3,1fr)}.time-row{display:flex;align-items:end;gap:12px}.time-row label{font-size:11px;color:var(--muted)}.time-row input{display:block;margin-top:4px;color:var(--ink)}.time-row>span{padding-bottom:12px}.consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.4;color:var(--muted)}.consent input{margin-top:3px;accent-color:var(--orange)}.form-message{font-size:12px;color:var(--red);min-height:18px;margin-top:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:15px 24px;border-top:1px solid var(--line);background:white}.success-card{text-align:center;padding:35px}.success-icon{display:grid;place-items:center;margin:auto;width:56px;height:56px;border-radius:50%;background:var(--green);color:white;font-size:28px}.success-card p{color:var(--muted)}.success-card input{width:100%;padding:11px;border:1px solid var(--line);border-radius:10px;margin:8px 0 14px}.success-card button{margin:4px}.detail-dialog{width:min(430px,calc(100% - 24px))}.detail-card{padding:25px}.detail-card h2{font-family:'Fraunces',serif;font-size:25px;margin:8px 35px 5px 0}.detail-card .close{position:absolute;right:17px;top:15px}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.tag{border-radius:999px;padding:6px 9px;background:#f1e7dc;font-size:11px;font-weight:700}.detail-meta{padding:12px 0;border-top:1px solid var(--line);font-size:13px}.detail-meta p{margin:7px 0}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.detail-actions a,.detail-actions button{text-align:center;text-decoration:none;border:0;border-radius:11px;padding:12px;font-weight:700}.navigate{background:var(--orange);color:white}.report{background:#f1e7dc;color:var(--ink)}.legal-notice{position:fixed;z-index:1000;left:50%;bottom:18px;transform:translateX(-50%);width:min(780px,calc(100% - 28px));display:flex;align-items:center;gap:20px;background:var(--night);color:white;border:1px solid #4c3b34;border-radius:15px;padding:13px 15px 13px 18px;box-shadow:0 16px 50px rgba(0,0,0,.35)}.legal-notice[hidden]{display:none}.legal-notice p{margin:0;font-size:12px;line-height:1.45;flex:1;color:#e7dcd5}.legal-notice strong{color:white}.legal-notice a{color:#ffad72}.legal-notice button{border:0;border-radius:10px;background:var(--orange);color:white;padding:10px 13px;font-weight:700;white-space:nowrap}.consent a{color:var(--orange-dark);font-weight:700}.optional{font-weight:400;color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0}.kinds{grid-template-columns:1fr}#eventFields input{width:100%;margin-top:6px}.filter-group{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.filter-group strong{display:block;margin-bottom:2px}.swatch.blue{background:#2f6f9f}.swatch.orange{background:var(--orange)}.detail-venue{color:var(--muted);font-size:12px;margin:2px 0 0}.custom-date{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.custom-date>label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.custom-date-row{display:grid;grid-template-columns:1fr auto;gap:7px}.custom-date-row input{min-width:0;border:1px solid var(--line);border-radius:10px;background:white;padding:11px;color:var(--ink);outline:none}.custom-date-row input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(227,93,33,.12)}.custom-date-row button{border:0;border-radius:10px;background:var(--night);color:#fff;padding:11px 14px;font-weight:700;white-space:nowrap}.custom-date small{display:block;color:var(--muted);font-weight:400;margin-top:8px;font-size:11px}.date-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.date-chip{display:inline-flex;align-items:center;gap:7px;background:#fff0e3;border:1px solid var(--orange);color:var(--orange-dark);border-radius:999px;padding:6px 8px 6px 11px;font-size:12px;font-weight:700}.date-chip button{border:0;background:none;color:inherit;font-size:16px;line-height:1;padding:0 2px;font-weight:800}.mobile-tagline{display:none}
@media(min-width:850px){main{display:grid;grid-template-columns:minmax(0,1fr) 370px;height:calc(100vh - 72px)}.map-shell{height:100%;min-height:0}.intro{display:flex;flex-direction:column;justify-content:center;padding:45px;background:var(--paper)}.intro h1{font-family:'Fraunces',serif;font-size:48px;line-height:1.02;margin:13px 0 18px}.intro>p:not(.eyebrow){color:var(--muted);line-height:1.6}.intro .primary{align-self:flex-start;margin-top:12px}.privacy-note{font-size:11px;margin-top:20px}.search-card{left:calc(50%);}.filters{top:130px}}
@media(max-width:849px){.topbar{height:62px;padding:0 14px}.brand small{display:none}.top-actions{gap:9px}.legal-wide{display:none}.legal-short{display:inline}.legal-link{font-size:11px}.mobile-tagline{display:block;position:absolute;z-index:445;top:114px;left:12px;right:12px;margin:0;text-align:center;font-size:11px;font-weight:700;letter-spacing:.01em;color:#5b4a42;background:rgba(255,250,242,.94);border-radius:999px;padding:5px 10px;box-shadow:0 4px 14px rgba(47,28,17,.10)}.map-shell{height:calc(100dvh - 62px);min-height:500px}.search-card{top:12px}.filters{display:none;left:12px;right:12px;width:auto;top:148px}.filters.open{display:block}.filter-toggle{display:block;position:absolute;z-index:460;left:12px;top:148px;border:0;border-radius:999px;background:var(--night);color:white;padding:10px 14px;font-weight:700;box-shadow:var(--shadow)}.filters.open+.map-stats{display:none}.map-stats{bottom:16px}.choice-grid,.dates{grid-template-columns:1fr 1fr}.dialog-head{padding:20px 18px 8px}.form-body{padding:6px 18px 15px}.dialog-actions{padding:13px 18px}.time-row{gap:7px}.time-row input{width:120px}.topbar .compact{font-size:12px}.legal-notice{bottom:10px;display:block;padding:13px}.legal-notice p{font-size:11px;margin-bottom:10px}.legal-notice button{width:100%;min-height:44px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
