
:root{--navy:#0D3C3A;--navy-dark:#114D4B;--teal:#48CD85;--paper:#F9F9F9;--white:#fff;--text:#1C263A;--muted:#4F5B5F;--border:#bfd0dc;--font-heading:'Poppins',sans-serif;--font-body:'Open Sans',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--font-body)}
header{background:var(--navy-dark);position:sticky;top:0;z-index:50;box-shadow:0 2px 18px rgba(0,0,0,.22)}
.header-inner{max-width:1150px;margin:0 auto;height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}
.logo-area img{height:56px}.nav-cta,button[type=submit]{border:0;border-radius:999px;background:var(--teal);color:var(--navy-dark);font-family:var(--font-heading);font-weight:800;padding:12px 20px;text-decoration:none;cursor:pointer}
.hero{padding:52px 24px 38px;text-align:center}.hero h1{margin:0;font:900 clamp(2.2rem,5vw,4rem)/1 var(--font-heading);color:var(--navy)}
.hero-subtitle{margin:8px auto 0;font:400 clamp(1.6rem,4vw,3.1rem)/1.1 var(--font-heading);color:var(--navy)}
.brush{width:min(560px,78vw);height:11px;background:var(--teal);margin:16px auto 20px;transform:rotate(-1deg);border-radius:100% 4px}
.hero-image{display:block;width:min(720px,92vw);height:auto;margin:0 auto 18px}
.hero-copy{max-width:760px;margin:auto;line-height:1.65}.page-wrap{max-width:1150px;margin:auto;padding:20px 24px 70px}
.card,.tour-stop{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 24px rgba(16,47,89,.08)}
form.card{padding:24px;margin-bottom:28px}.search-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px auto auto;gap:12px;align-items:end}
label{display:block;margin-bottom:6px;font-weight:800}.search-grid input,.search-grid select,.button-secondary{width:100%;min-height:45px;border:1px solid var(--border);border-radius:12px;padding:11px 13px;font:inherit;background:#fff}
.button-secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--navy);font-family:var(--font-heading);font-weight:800;cursor:pointer}
.status{grid-column:1/-1;font-weight:700}.status.error{color:#b42318}.note{margin-top:14px;padding:13px 15px;background:#fff4f2;border:1px solid #f5c2bc;border-radius:12px;color:#8a2c23}.help{margin-top:10px;color:var(--muted);font-size:.86rem}
.map-results-grid{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:28px;align-items:start}.results-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:15px}
.results-header h2{margin:0;font-family:var(--font-heading);color:var(--navy)}.count{color:var(--muted);font-weight:700}
.tour-stop{margin-bottom:16px;overflow:hidden}.tour-stop-body{border-left:12px solid var(--navy);padding:20px 22px}.tour-stop h3{margin:0 0 12px;font-family:var(--font-heading);color:var(--navy)}
.meta-row{display:grid;grid-template-columns:28px 1fr;gap:8px;margin:8px 0}.meta-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:.78rem;font-weight:900}
.distance{color:var(--teal);font-family:var(--font-heading);font-weight:900;margin-bottom:10px}.description{line-height:1.55}.flyer{display:block;width:100%;max-height:520px;object-fit:contain;background:var(--paper);border-top:1px solid var(--border)}
.event-link{display:inline-flex;margin-top:14px;background:var(--teal);color:var(--navy-dark);text-decoration:none;font-family:var(--font-heading);font-weight:800;padding:10px 16px;border-radius:999px}
#map{height:640px;border:1px solid var(--border);border-radius:18px;overflow:hidden;position:sticky;top:92px;box-shadow:0 8px 24px rgba(16,47,89,.08)}
.empty{background:#fff;border:1px solid var(--border);border-radius:18px;padding:26px}footer{background:var(--navy-dark);color:rgba(255,255,255,.72);padding:40px 24px;text-align:center;font-size:.8rem;line-height:1.8}
@media(max-width:950px){.search-grid{grid-template-columns:1fr 140px}.map-results-grid{display:flex;flex-direction:column}.map-column{order:-1;width:100%}.results-column{width:100%}#map{width:100%;height:430px;position:relative;top:auto}}
@media(max-width:650px){.header-inner{height:64px;padding:0 16px}.logo-area img{height:38px}.hero{padding:18px 10px 28px}.hero-image{width:100%;margin-bottom:18px}.page-wrap{padding:14px 18px 50px}form.card{padding:20px}.search-grid{grid-template-columns:1fr}.status{grid-column:auto}}
