:root{--navy:#0d2a40;--navy-deep:#092337;--blue:#0d4261;--copper:#df7146;--copper-dark:#b94f2e;--copper-button:#c4532d;--copper-button-hover:#9f4125;--sky:#a3dded;--teal:#08728b;--ink:#102437;--muted:#60717c;--text-soft:#435a68;--line:#d9e3e7;--border:#bccbd2;--peach:#ffb98e;--peach-tint:#fdf3ed;--on-dark:#e8f2f5;--on-dark-muted:#a9c1ca;--mist:#f3f7f8;--mist-deep:#eaf3f5;--white:#fff;--shadow:0 16px 36px rgba(9,35,55,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img,svg{max-width:100%}
img{display:block}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{letter-spacing:0;line-height:1.12}
h1{font-size:clamp(2.65rem,5vw,4.8rem);margin-bottom:15px}
h2{font-size:clamp(1.65rem,2.5vw,2.45rem);margin-bottom:0}
h3{font-size:1.17rem}
p{line-height:1.6}
.shell{width:min(100% - 64px,1320px);margin-inline:auto}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{display:block;color:var(--copper-dark);font-size:.76rem;font-weight:850;letter-spacing:.12em;line-height:1.35;text-transform:uppercase;margin-bottom:10px}
.site-header{position:relative;z-index:100;background:var(--navy);color:#fff}
.header-top{background:#081d30;border-bottom:1px solid rgba(255,255,255,.08);font-size:.76rem}
.header-top-inner{display:flex;justify-content:flex-end;align-items:center;gap:10px;min-height:40px;padding-block:6px}
.header-social,.footer-social{display:inline-block;border-radius:5px;transition:transform .18s,box-shadow .18s}
.header-social img,.footer-social img{display:block;width:auto;border-radius:5px}
.header-social img{height:26px}
.footer-social img{height:44px}
.header-social:hover,.footer-social:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.header-social:focus-visible,.footer-social:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.site-footer .footer-follow{align-items:flex-start}
.header-inner{min-height:104px;display:flex;align-items:center;gap:30px}
.brand{display:block;flex:none;width:410px}
.brand img{width:100%;height:auto}
.site-nav{display:flex;align-items:center;gap:3px;margin-left:auto}
.site-nav a{padding:12px 13px;border-radius:4px;font-size:.89rem;font-weight:700;white-space:nowrap;transition:background .18s}
.site-nav a:hover,.site-nav a:focus-visible{background:rgba(255,255,255,.1)}
.site-nav a[aria-current=page]{background:var(--copper-button);color:#fff}
.mobile-menu{display:none;background:none;border:0;color:#fff;width:44px;height:44px;place-items:center;border-radius:4px}
.mobile-menu:hover{background:rgba(255,255,255,.1)}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--teal);font-size:.89rem;font-weight:770;white-space:nowrap}
.text-link:hover{text-decoration:underline}
.button{display:inline-flex;justify-content:center;align-items:center;gap:11px;min-height:47px;padding:11px 17px;border:1px solid transparent;border-radius:5px;font-size:.92rem;font-weight:760;line-height:1.2;white-space:nowrap;transition:background .18s,border-color .18s,transform .18s}
.button:hover{transform:translateY(-1px)}
.button-copper{color:#fff;background:var(--copper-button)}
.button-copper:hover{background:var(--copper-button-hover)}
.button-dark{background:var(--navy);color:#fff}
.button-dark:hover{background:var(--blue)}
.button-outline{border-color:var(--border);color:var(--ink);background:#fff}
.button-outline:hover{border-color:var(--teal)}
.button-light{background:#fff;color:var(--ink)}
.button:disabled{opacity:.6;cursor:wait;transform:none}
.home-top{background:var(--mist);border-bottom:1px solid var(--line);padding:47px 0 50px}
.home-kicker{display:flex;align-items:center;gap:9px;color:var(--teal);font-size:.75rem;font-weight:850;letter-spacing:.11em}
.home-kicker svg{color:var(--copper)}
.kicker-rule{display:inline-block;width:33px;height:1px;background:var(--border);margin-inline:6px}
.home-title-row{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-top:16px}
.home-title-row h1{font-weight:790;line-height:1.06;margin:0 0 14px}
.home-title-row em{font-style:normal;color:var(--copper-dark)}
.home-title-row p{max-width:660px;margin:0;color:var(--text-soft);font-size:1.08rem}
.home-title-side{display:flex;align-items:center;gap:16px;color:var(--text-soft);font-size:.76rem;font-weight:850;letter-spacing:.11em;white-space:nowrap;padding-bottom:8px}
.loop-stamp{position:relative;display:block;width:58px;height:58px;border:6px solid var(--copper);border-radius:50%;transform:rotate(-24deg)}
.loop-stamp:after{content:"";position:absolute;left:28px;top:42px;width:58px;height:7px;border-radius:60% 40%;background:var(--copper);transform:rotate(27deg)}
.home-content{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,.75fr);gap:48px;padding-top:40px;padding-bottom:49px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.section-head .eyebrow{margin-bottom:4px}
.section-head p{color:var(--muted);margin:9px 0 0;font-size:.94rem}
.event-row{display:grid;grid-template-columns:62px minmax(0,1fr) 22px;align-items:center;gap:17px;padding:17px 2px;border-top:1px solid var(--line)}
.event-row:hover .event-row-copy strong{color:var(--teal)}
.event-date{text-align:center;line-height:1;color:var(--ink)}
.event-date small{display:block;font-size:.72rem;text-transform:uppercase;font-weight:800}
.event-date strong{display:block;font-size:1.8rem;margin-top:3px}
.event-row-copy{min-width:0}
.event-row-copy strong{display:block;font-size:1.05rem;line-height:1.25;margin:3px 0}
.event-row-copy small{display:block;color:var(--muted);font-size:.8rem}
.event-category{color:var(--teal);font-size:.69rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.empty-events{border-top:1px solid var(--line);padding:26px 0 25px;max-width:650px}
.empty-icon{display:grid;place-items:center;width:49px;height:49px;border:2px solid var(--copper);border-radius:50%;color:var(--ink);background:var(--peach-tint);margin-bottom:17px}
.empty-events h3{margin-bottom:8px;font-size:1.26rem}
.empty-events p{max-width:460px;color:var(--muted);font-size:.93rem;margin-bottom:14px}
.home-food{background:var(--mist);padding:22px 23px 16px;border-top:3px solid var(--copper);align-self:start}
.home-food .section-head{align-items:start;margin-bottom:6px}
.home-food .section-head h2{font-size:1.75rem}
.home-food .text-link{font-size:.77rem;margin-top:10px}
.home-food-list a{display:grid;grid-template-columns:35px minmax(0,1fr) 18px;gap:11px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.home-food-list a:hover strong{color:var(--teal)}
.home-food-list strong,.home-food-list small{display:block}
.home-food-list strong{font-size:.94rem;line-height:1.25}
.home-food-list small{color:var(--muted);font-size:.75rem;margin-top:3px}
.mini-loop{width:29px;height:29px;border:4px solid var(--copper);border-radius:50%;position:relative}
.mini-loop:after{content:"";position:absolute;left:14px;top:21px;width:18px;height:4px;border-radius:4px;background:var(--copper);transform:rotate(-13deg)}
.home-food-foot{color:var(--muted);font-size:.76rem;font-weight:730;padding-top:14px}
.signup-band{position:relative;overflow:hidden;background:var(--navy);color:#fff}
.signup-inner{position:relative;min-height:150px;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(410px,1.3fr) 230px;gap:26px;align-items:center}
.signup-inner h2{font-size:clamp(2.05rem,3vw,2.8rem);line-height:1.05;margin:0 0 6px}
.signup-inner h2 span{color:var(--copper)}
.signup-inner p{margin:0;color:var(--on-dark);font-size:.96rem}
.signup-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:start;position:relative;z-index:2}
.input-wrap{position:relative}
.input-wrap svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-soft)}
.input-wrap input{width:100%;height:50px;min-width:0;padding:0 15px 0 48px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:5px}
.signup-form .button{height:50px}
.signup-cta{grid-template-columns:auto;justify-content:start}
.form-feedback{grid-column:1/-1;min-height:17px;color:var(--on-dark)!important;font-size:.76rem!important;line-height:1.2!important}
.signup-thread{width:255px;height:140px;align-self:end;transform:translateY(5px)}
.explore-section{padding:68px 0;background:#fff}
.explore-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:80px;align-items:center}
.explore-copy h2{max-width:650px;font-size:clamp(2.1rem,3.25vw,3.45rem)}
.explore-copy p{max-width:580px;color:var(--muted);margin:20px 0 25px}
.explore-actions{display:flex;gap:11px;flex-wrap:wrap}
.explore-panel{min-height:245px;border-left:1px solid var(--line);padding:15px 0 14px 50px;position:relative;overflow:hidden}
.explore-index{font-size:.72rem;font-weight:850;letter-spacing:.12em;color:var(--teal)}
.explore-loop{position:absolute;top:41px;right:37px;width:126px;height:126px;border:14px solid var(--copper);border-radius:50%;transform:rotate(-20deg)}
.explore-loop:after{content:"";position:absolute;left:55px;top:95px;width:120px;height:12px;background:var(--copper);border-radius:50%;transform:rotate(25deg);box-shadow:0 4px 4px rgba(40,41,38,.15)}
.explore-panel p{position:absolute;left:50px;bottom:7px;max-width:200px;font-size:1.13rem;line-height:1.35;font-weight:700}
.nearby-band{height:350px;position:relative;background:var(--navy);color:#fff}
.nearby-photo{position:absolute;inset:0;background:none center 47%/cover no-repeat}
.nearby-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,30,45,.88),rgba(6,30,45,.28) 76%)}
.nearby-overlay-inner{height:100%;display:flex;flex-direction:column;align-items:start;justify-content:center}
.nearby-overlay .eyebrow{color:var(--peach)}
.nearby-overlay h2{font-size:clamp(2.2rem,3.5vw,3.6rem)}
.nearby-overlay p{margin:10px 0 20px;max-width:380px}
.site-footer{background:var(--navy-deep);color:var(--on-dark);padding-top:45px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr 1fr;gap:40px;padding-bottom:35px}
.footer-grid-4{grid-template-columns:2fr 1fr 1fr 1.5fr}
.footer-brand{color:#fff;font-weight:800;font-size:1.22rem}
.footer-grid p{font-size:.84rem;max-width:290px;margin:12px 0 0}
.footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:8px}
.footer-grid a:hover{color:#fff;text-decoration:underline}
.footer-label{color:#fff;font-weight:820;font-size:.75rem;text-transform:uppercase;letter-spacing:.11em;margin-bottom:4px}
.footer-grid .footer-sister{font-size:.82rem;margin-top:14px;max-width:290px}
.footer-sister a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.footer-small{font-size:.78rem;color:var(--on-dark-muted);max-width:310px;margin-top:7px}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:18px 0 23px;border-top:1px solid rgba(255,255,255,.12);font-size:.76rem;color:var(--on-dark-muted)}
.page-intro{padding:45px 0 29px}
.page-intro h1{font-size:clamp(2.7rem,4.3vw,4rem)}
.page-intro p{max-width:720px;font-size:1.04rem;color:var(--muted);margin:0}
.tag-chips{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0 0 18px;padding:0}
.tag-chips a,.tag-chips span{display:inline-block;padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:var(--mist);color:var(--ink);font-size:.78rem;font-weight:750;line-height:1.3}
.tag-chips a:hover,.tag-chips a:focus-visible{border-color:var(--teal);color:var(--teal)}
.tag-browse{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}
.tag-browse span{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-right:4px}
.tag-browse a{padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--ink);font-size:.8rem;font-weight:750}
.tag-browse a:hover,.tag-browse a:focus-visible{border-color:var(--teal);color:var(--teal)}
.tag-browse a[aria-current]{background:var(--navy);border-color:var(--navy);color:#fff}
.coming-soon{padding:28px 0 96px;border-top:1px solid var(--line)}
.coming-soon h2{margin-bottom:10px}
.coming-soon p{color:var(--muted);margin-bottom:14px}
.events-page-body{padding:15px 0 75px}
.events-page-body .section-head{border-bottom:1px solid var(--line);padding-bottom:22px}
.events-page-body .empty-events{border:0;padding-top:18px}
.event-list{border-bottom:1px solid var(--line)}
.food-intro{background:var(--navy);color:#fff;padding:47px 0 45px}
.food-intro-top{display:flex;align-items:end;justify-content:space-between;gap:30px}
.food-intro .eyebrow{color:var(--peach)}
.food-intro h1{margin-bottom:11px}
.food-intro h1 em{color:var(--sky);font-style:normal}
.food-intro p{max-width:600px;color:var(--on-dark);font-size:1.06rem;margin:0}
.food-count{display:grid;grid-template-columns:auto auto auto auto auto;align-items:end;gap:9px;color:var(--on-dark);white-space:nowrap;padding-bottom:6px}
.food-count strong{font-size:2.5rem;line-height:1;color:#fff}
.food-count span{font-size:.73rem;font-weight:750;line-height:1.1;max-width:60px;text-transform:uppercase}
.food-count b{font-size:1.7rem;color:var(--copper);padding:0 3px}
.food-guide{padding-top:27px;padding-bottom:61px}
.food-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:23px;border-bottom:1px solid var(--line)}
.food-search{position:relative;flex:1;max-width:570px}
.food-search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--muted)}
.food-search input{width:100%;height:47px;padding:0 15px 0 45px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--ink)}
.food-select{display:flex;align-items:center;gap:11px;min-width:0}
.food-select label{font-size:.82rem;color:var(--muted);font-weight:750}
.food-select select{min-width:180px;height:47px;border:1px solid var(--border);border-radius:5px;padding:0 12px;color:var(--ink);background:#fff}
.food-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(375px,.9fr);gap:30px;padding-top:24px;align-items:start}
.food-results-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:13px}
.food-results-head h2{font-size:1.7rem}
.food-results-head span{color:var(--muted);font-size:.83rem;font-weight:700}
.place-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.food-map-column[hidden]{display:none}
.food-layout--list-only{grid-template-columns:minmax(0,1fr)}
@media(min-width:901px){.food-layout--list-only .place-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
.place-card{border:1px solid var(--line);border-radius:5px;min-height:176px;padding:17px 17px 12px;display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s,transform .18s;background:#fff}
.place-card:hover{border-color:var(--teal);box-shadow:0 8px 20px rgba(10,45,59,.08);transform:translateY(-1px)}
.place-card[hidden]{display:none}
.place-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}
.place-type{display:inline-flex;align-items:center;gap:6px;color:var(--teal);text-transform:uppercase;letter-spacing:.07em;font-size:.69rem;font-weight:850}
.mobile-tag{font-size:.68rem;font-weight:750;color:var(--copper-dark);background:var(--peach-tint);padding:3px 6px;border-radius:3px;white-space:nowrap}
.place-card h3{font-size:1.06rem;margin:0 0 7px;line-height:1.2}
.place-card h3 a:hover{color:var(--teal)}
.place-card p{color:var(--muted);font-size:.82rem;line-height:1.46;margin:0 0 13px}
.place-card-bottom{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.place-card-bottom span{display:inline-flex;align-items:flex-start;gap:4px;color:var(--muted);font-size:.72rem;line-height:1.3}
.place-card-bottom span svg{flex:none;margin-top:1px;color:var(--copper-dark)}
.place-card-bottom a{display:grid;place-items:center;flex:none;color:var(--teal)}
.place-guide-link{align-self:flex-start;margin:5px 0 8px;font-size:.8rem}
.food-profile{margin-top:26px}
.food-profile h2{font-size:1.15rem;margin:22px 0 10px}
.food-profile p{font-size:.95rem;line-height:1.7;max-width:70ch}
.food-profile .food-profile-sources{font-size:.78rem;overflow-wrap:anywhere}
.food-profile-sources a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.map-frame{position:sticky;top:16px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#fff}
.map-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:15px 17px 13px}
.map-heading .eyebrow{font-size:.65rem;margin:0 0 3px}
.map-heading h2{font-size:1.33rem}
.map-key{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);white-space:nowrap}
.map-key i{display:inline-block;width:12px;height:12px;border:3px solid var(--copper);border-radius:50%;background:var(--sky)}
.food-map{width:100%;height:560px;background:#dce9eb}
.map-foot{display:flex;align-items:start;gap:6px;padding:12px 15px;color:var(--muted);font-size:.72rem;line-height:1.35}
.map-foot svg{flex:none;color:var(--copper-dark)}
.map-fallback{padding:25px 17px;color:var(--muted);font-size:.9rem}
.no-results{color:var(--muted);padding:30px 0}
.loop-marker{border:0;background:transparent}
.loop-marker-inner{position:absolute;left:2px;top:1px;width:30px;height:30px;border:5px solid var(--copper);border-radius:50%;background:var(--sky);box-shadow:0 3px 7px rgba(12,30,39,.27)}
.loop-marker-inner:before{content:"";position:absolute;left:5px;bottom:4px;width:10px;height:6px;background:var(--navy);border-radius:6px 6px 0 0}
.loop-marker-inner:after{content:"";position:absolute;left:13px;top:20px;width:19px;height:5px;background:var(--copper);border-radius:4px;transform:rotate(23deg);box-shadow:1px 2px 2px rgba(13,42,64,.22)}
.loop-marker:hover .loop-marker-inner{border-color:var(--copper-dark);transform:scale(1.08)}
.map-popup{min-width:160px;display:flex;flex-direction:column;gap:3px}
.map-popup strong{color:var(--ink);font-size:.96rem;line-height:1.2}
.map-popup span{color:var(--teal);font-weight:750;font-size:.71rem;text-transform:uppercase}
.map-popup small{color:var(--muted);font-size:.76rem;line-height:1.3}
.map-popup a{color:var(--teal);font-weight:780;font-size:.78rem;margin-top:5px}
.leaflet-container{font-family:inherit}
.leaflet-popup-content{margin:12px 14px}
.truck-section{background:var(--mist-deep);padding:42px 0 50px;border-top:1px solid var(--line)}
.truck-section .section-head{align-items:center}
.truck-section .section-head h2{font-size:2rem}
.truck-section-icon{display:grid;place-items:center;width:55px;height:55px;background:var(--navy);color:#fff;border-radius:50%}
.truck-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.truck-grid .place-card{min-height:192px}
.food-note{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:25px;padding-bottom:26px;font-size:.85rem;color:var(--muted)}
.food-note a{display:inline-flex;align-items:center;gap:8px;color:var(--teal);font-weight:780}
.food-note a:hover{text-decoration:underline}
.detail-wrap{padding-top:39px;padding-bottom:80px;min-height:500px}
.back-link{display:inline-block;color:var(--teal);font-weight:760;font-size:.86rem;margin-bottom:33px}
.back-link:hover{text-decoration:underline}
.detail-wrap h1{font-size:clamp(2.45rem,4.2vw,4.1rem);max-width:850px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(285px,.55fr);gap:70px;margin-top:29px}
.detail-lede{font-size:1.15rem;line-height:1.7;max-width:700px}
.detail-muted{color:var(--muted);max-width:640px}
.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
.detail-facts{border-top:3px solid var(--copper);background:var(--mist);padding:22px 23px;align-self:start}
.detail-facts h2{font-size:1.35rem;margin-bottom:18px}
.detail-facts>div{border-top:1px solid var(--line);padding:13px 0;display:flex;flex-direction:column;gap:3px}
.detail-facts strong{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.detail-facts span,.detail-facts a{font-size:.9rem;font-weight:680}
.detail-facts a{display:inline-flex;align-items:center;gap:4px;color:var(--teal)}
.nearby-page-hero{min-height:395px;display:flex;align-items:end;padding:65px 0;color:#fff;background:linear-gradient(90deg,rgba(5,29,44,.84),rgba(5,29,44,.12)),none center/cover no-repeat}
.nearby-page-hero .eyebrow{color:var(--peach)}
.nearby-page-hero h1{margin-bottom:7px}
.nearby-page-hero p{margin:0;font-size:1.08rem}
.nearby-page-body{padding-top:58px;padding-bottom:88px}
.nearby-page-body>div{max-width:730px}
.nearby-page-body h2{font-size:2.55rem}
.nearby-page-body p{color:var(--muted);font-size:1.05rem;margin:19px 0 30px}
.nearby-resource{border-top:1px solid var(--line)}
.nearby-resource a{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);color:var(--teal);font-weight:750}
.submit-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.65fr);gap:75px;padding-top:11px;padding-bottom:84px}
.event-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:.82rem;font-weight:770}
.field input,.field select,.field textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--ink)}
.field input,.field select{height:48px}
.field textarea{resize:vertical;min-height:130px}
.field input:focus,.field select:focus,.field textarea:focus,.food-search input:focus,.food-select select:focus{outline:3px solid var(--sky);outline-offset:1px}
.event-form>.button{justify-self:start}
.event-form .form-feedback{align-self:center;color:var(--teal)!important}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.submit-aside{border-top:3px solid var(--copper);padding-top:19px}
.submit-aside h2{font-size:1.6rem}
.submit-aside p{color:var(--muted);font-size:.92rem;margin:15px 0}
.submit-contact{font-size:.85rem;margin-top:24px;border-top:1px solid var(--line);padding-top:18px}
.submit-contact a{color:var(--teal);font-weight:750}
.not-found{padding:85px 0 120px}
.not-found p{color:var(--muted);margin-bottom:28px}
@media(max-width:1180px){.brand{width:335px}.site-nav a{padding:11px 9px;font-size:.83rem}.signup-inner{grid-template-columns:minmax(250px,.8fr) minmax(380px,1.2fr)}.signup-thread{display:none}.truck-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.shell{width:min(100% - 38px,1320px)}.header-inner{min-height:79px}.brand{width:min(350px,calc(100% - 65px))}.mobile-menu{display:grid;margin-left:auto}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);margin:0;padding:9px 19px 16px;box-shadow:var(--shadow)}.site-nav.open{display:flex;flex-direction:column;align-items:stretch}.site-nav a{font-size:.93rem;padding:12px}.home-title-side{display:none}.home-content{grid-template-columns:1fr;gap:28px}.home-food{max-width:none}.signup-inner{grid-template-columns:1fr;gap:15px;padding-block:25px}.signup-form{max-width:650px;width:100%}.explore-grid{gap:35px}.food-layout{grid-template-columns:1fr}.map-frame{position:static}.food-map{height:420px}.food-map-column{grid-row:1}.truck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout,.submit-layout{gap:30px}}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:650px){.shell{width:min(100% - 30px,1320px)}.home-top{padding:30px 0 34px}.home-kicker{font-size:.63rem;gap:5px;flex-wrap:wrap}.kicker-rule{width:18px}.home-title-row{margin-top:13px}.home-title-row h1{font-size:clamp(2.3rem,8vw,3.6rem)}.home-title-row p{font-size:.95rem}.home-content{padding-top:27px;padding-bottom:35px}.section-head{align-items:start}.section-head h2{font-size:1.65rem}.section-head .text-link{align-self:center;font-size:.75rem}.home-food .section-head{display:block}.home-food .section-head .text-link{margin-top:9px}.signup-inner h2{font-size:2.1rem}.signup-form{grid-template-columns:1fr}.signup-form .button{width:100%}.explore-section{padding:45px 0}.explore-grid{grid-template-columns:1fr}.explore-copy h2{font-size:2.15rem}.explore-panel{min-height:185px;padding-left:25px}.explore-panel p{left:25px;max-width:170px}.explore-loop{right:30px;top:34px;width:90px;height:90px;border-width:10px}.explore-loop:after{left:40px;top:65px;width:70px;height:9px}.nearby-band{height:310px}.footer-grid{grid-template-columns:1fr 1fr;gap:28px}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:5px}.food-intro{padding:35px 0}.food-intro-top{display:block}.food-intro h1{font-size:3rem}.food-count{justify-content:start;margin-top:22px}.food-count strong{font-size:2rem}.food-toolbar{display:block}.food-search{max-width:none;margin-bottom:12px}.food-select{justify-content:space-between}.food-select select{flex:1;min-width:0}.place-list{grid-template-columns:1fr}.place-card{min-height:0}.food-map{height:350px}.truck-grid{grid-template-columns:1fr}.truck-grid .place-card{min-height:0}.truck-section{padding-block:35px}.truck-section-icon{display:none}.food-note{display:block}.food-note a{margin-top:6px}.detail-layout,.submit-layout{grid-template-columns:1fr}.detail-wrap{padding-top:26px;padding-bottom:58px}.back-link{margin-bottom:20px}.event-form{grid-template-columns:1fr}.field.full{grid-column:auto}.nearby-page-hero{min-height:330px;padding:40px 0}.nearby-page-body{padding-block:42px 60px}}
@media(max-width:400px){.brand{width:min(275px,calc(100% - 55px))}.home-kicker{letter-spacing:.05em}.home-title-row h1{font-size:2.25rem}.home-food{padding:18px}.section-head{flex-wrap:wrap}.food-count{gap:5px}.food-count span{font-size:.64rem}.food-map{height:310px}}

/* Image-led home and event timeline */
.site-header{background:#0a2c47}
.header-inner{min-height:96px}
.brand{width:410px}
.site-nav{gap:7px}
.site-nav a{font-size:.91rem}
.site-nav .nav-search{display:grid;place-items:center;min-width:48px;margin-left:12px;padding-left:18px;border-left:1px solid rgba(255,255,255,.35);border-radius:0}
.site-nav .nav-search:hover{background:none;color:var(--sky)}
.home-top{background:#fff;border-bottom:0;padding:25px 0 20px}
.home-top-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,440px);align-items:end;gap:28px}
.home-kicker{font-size:.78rem;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:5px}
.home-kicker svg{color:var(--copper-dark)}
.home-top h1{font-size:2.75rem;line-height:1.06;margin:0;color:var(--ink);font-weight:800}
.title-period{color:var(--copper)}
.home-top p{font-size:.94rem;color:var(--muted);margin:5px 0 0}
.home-search,.events-search{position:relative;display:flex;align-items:center;min-width:0;background:#fff;border:1px solid var(--border);border-radius:5px;overflow:hidden}
.home-search{height:50px}
.home-search>svg,.events-search>svg{flex:none;margin-left:15px;color:var(--text-soft)}
.home-search input,.events-search input{min-width:0;flex:1;height:100%;border:0;outline:0;padding:0 13px;background:transparent;color:var(--ink);font-size:.88rem}
.home-search input::placeholder,.events-search input::placeholder{color:var(--muted)}
.home-search button{display:grid;place-items:center;align-self:stretch;width:55px;border:0;background:var(--copper-button);color:#fff}
.home-search button:hover{background:var(--copper-button-hover)}
.quick-links{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}
.quick-links a{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);border-radius:4px;font-size:.77rem;font-weight:750;color:var(--ink);white-space:nowrap}
.quick-links a svg{color:var(--copper-dark)}
.quick-links a:hover{border-color:var(--copper);background:var(--peach-tint)}
.home-feature{display:grid;grid-template-columns:minmax(0,57%) minmax(0,43%);min-height:430px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature-media{position:relative;min-height:430px;overflow:hidden;background:#2f4650;color:#fff}
.feature-media>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center 54%}
.feature-media:after{content:"";position:absolute;inset:25% 0 0;background:linear-gradient(0deg,rgba(7,24,34,.78),rgba(7,24,34,0));pointer-events:none}
.feature-media-copy{position:absolute;z-index:1;left:max(34px,calc((100vw - 1320px)/2));right:35px;bottom:31px;max-width:500px}
.feature-media-copy .eyebrow{color:var(--peach);margin-bottom:6px}
.feature-media-copy h2{font-size:2.45rem;line-height:1.03;margin:0 0 9px;color:#fff}
.feature-media-copy p{max-width:420px;font-size:.98rem;line-height:1.45;margin:0 0 15px;color:var(--on-dark)}
.feature-media-copy .button{min-height:40px;padding:9px 14px;font-size:.83rem}
.home-events{padding:23px max(26px,calc((100vw - 1320px)/2)) 21px 27px;min-width:0}
.home-events .section-head{margin-bottom:8px;align-items:center}
.home-events .section-head h2{font-size:1.8rem}
.home-events .section-head .text-link{font-size:.77rem}
.section-head .eyebrow{letter-spacing:.08em}
.event-list{position:relative}
.event-row{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr) 22px;align-items:center;gap:13px;min-height:112px;padding:11px 0;border-top:1px solid var(--line)}
.event-row[hidden]{display:none}
.event-row:hover .event-row-copy strong{color:var(--teal)}
.event-thread{position:absolute;top:0;left:0;width:100px;height:100%;max-width:none;overflow:visible;pointer-events:none;z-index:0;filter:drop-shadow(1px 2px 1px rgba(72,36,24,.16))}
.event-thread path{fill:none;stroke:var(--copper);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.event-date{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:70px;height:70px;border:2px solid var(--copper);border-radius:50%;background:#fff;line-height:1;color:var(--ink);box-shadow:0 2px 0 rgba(20,42,52,.06)}
.event-date small{font-size:.65rem;font-weight:800;text-transform:uppercase}
.event-date strong{font-size:1.55rem;line-height:1;margin:2px 0}
.event-row-copy{position:relative;z-index:1;min-width:0}
.event-category{font-size:.66rem;letter-spacing:.06em;color:var(--copper-dark)}
.event-free{color:var(--teal);white-space:nowrap}
.event-free:before{content:" · ";color:var(--copper-dark)}
.event-row-copy strong{display:block;font-size:.98rem;line-height:1.25;margin:3px 0 6px;overflow-wrap:anywhere}
.event-row-meta{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.72rem;line-height:1.3;margin-top:3px}
.event-row-meta svg{flex:none;color:var(--text-soft)}
.event-row-arrow{display:grid;place-items:center;color:var(--ink);position:relative;z-index:1}
.home-events .empty-events{border:0;padding:35px 4px;max-width:360px}
.empty-events{max-width:none;padding:35px 0}
.empty-events h3{font-size:1.32rem}
.signup-inner{min-height:138px;grid-template-columns:minmax(260px,.8fr) minmax(390px,1.15fr) 195px;gap:22px}
.signup-inner h2{font-size:2.35rem}
.signup-inner p{font-size:.89rem}
.signup-thread{width:195px;height:123px;transform:translateY(4px)}
.explore-section{padding:49px 0 61px;background:var(--mist)}
.explore-heading{margin-bottom:18px}
.explore-heading h2{font-size:2rem}
.explore-heading p{margin:5px 0 0;color:var(--muted);font-size:.91rem}
.explore-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.explore-card{display:block;min-width:0;background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;transition:transform .18s,box-shadow .18s}
.explore-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(12,42,56,.11)}
.explore-card>img{width:100%;height:225px;object-fit:cover;object-position:center}
.explore-card-copy{display:flex;flex-direction:column;padding:17px 18px 19px}
.explore-card-copy small{color:var(--copper-dark);font-size:.69rem;font-weight:850;letter-spacing:.08em}
.explore-card-copy strong{font-size:1.42rem;line-height:1.2;margin:4px 0 6px}
.explore-card-copy>span{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:.83rem}
.explore-card-copy svg{flex:none;color:var(--teal)}
.nearby-band{height:330px}
.nearby-photo{background-image:none;background-position:center 54%}
.nearby-overlay{background:linear-gradient(90deg,rgba(6,30,45,.82),rgba(6,30,45,.08) 82%)}
.nearby-overlay h2{font-size:2.9rem}
.events-intro{background:var(--mist);padding:37px 0 27px;border-bottom:1px solid var(--line)}
.events-intro h1{font-size:3.1rem;margin:0 0 8px}
.events-intro p{color:var(--text-soft);max-width:700px;font-size:1rem;margin:0 0 22px}
.events-search{height:51px;max-width:690px}
.events-search .button{height:51px;border-radius:0}
.event-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.event-filters a{padding:7px 12px;border:1px solid var(--border);background:#fff;border-radius:4px;color:var(--ink);font-size:.8rem;font-weight:720}
.event-filters a:hover,.event-filters a[aria-current=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.events-page-body{max-width:960px;padding-top:34px}
.events-page-body .section-head{align-items:center}
.events-page-body .event-row{min-height:124px;grid-template-columns:90px minmax(0,1fr) 26px;gap:19px}
.events-page-body .event-thread{width:100px}
.events-page-body .event-date{width:78px;height:78px}
.events-page-body .event-date strong{font-size:1.76rem}
.events-page-body .event-row-copy strong{font-size:1.15rem}
.events-page-body .event-row-meta{font-size:.81rem}
.no-event-matches{padding:25px 0;color:var(--muted)}
.food-intro{display:flex;align-items:end;min-height:338px;padding:55px 0 36px;background:linear-gradient(90deg,rgba(6,27,41,.83),rgba(6,27,41,.23) 78%),none center 48%/cover no-repeat}
.food-intro .eyebrow{color:var(--peach)}
.food-intro h1{font-size:3.6rem;margin:0 0 8px}
.food-intro p{max-width:540px;color:var(--on-dark);font-size:1rem}
.food-count{align-self:end}
.nearby-page-hero{background-image:linear-gradient(90deg,rgba(5,29,44,.8),rgba(5,29,44,.1)),none}
@media(max-width:1340px){.header-inner{gap:20px}.brand{width:330px}.site-nav{gap:2px}.site-nav a{font-size:.84rem;padding:11px 9px}.site-nav .nav-search{margin-left:6px;padding-left:12px}}
@media(max-width:1180px){.brand{width:340px}.site-nav a{font-size:.82rem;padding:11px 8px}.site-nav .nav-search{margin-left:5px;padding-left:12px}.home-feature{grid-template-columns:minmax(0,55%) minmax(0,45%)}.home-events{padding-right:22px}.home-events .section-head h2{font-size:1.52rem}.home-events .section-head{gap:7px}.signup-inner{grid-template-columns:minmax(240px,.75fr) minmax(350px,1.25fr)}.signup-thread{display:none}}
@media(max-width:900px){.header-inner{min-height:79px}.brand{width:min(350px,calc(100% - 65px))}.site-nav .nav-search{border:0;margin-left:0;padding-left:9px;justify-content:start}.home-top-inner{grid-template-columns:1fr}.home-search{max-width:600px}.quick-links{justify-content:flex-start;overflow:auto;padding-bottom:2px}.home-feature{grid-template-columns:1fr}.feature-media{min-height:330px}.feature-media-copy{left:30px}.home-events{padding:24px 30px 28px}.home-event-list{display:block}.home-event-list .event-row{min-height:100px}.home-event-list .event-row-arrow{display:grid}.signup-inner{grid-template-columns:1fr;gap:14px;padding-block:25px}.signup-form{max-width:690px}.food-intro{min-height:310px}.food-intro h1{font-size:3.15rem}}
@media(max-width:1100px){.header-inner{min-height:79px}.brand{width:min(350px,calc(100% - 65px))}.mobile-menu{display:grid;margin-left:auto}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy);margin:0;padding:9px 19px 16px;box-shadow:var(--shadow)}.site-nav.open{display:flex;flex-direction:column;align-items:stretch}.site-nav a{font-size:.93rem;padding:12px}.site-nav .nav-search{border:0;margin-left:0;padding-left:9px;justify-content:start}}
@media(max-width:650px){.home-top{padding:23px 0 15px}.home-top h1{font-size:2.2rem}.home-top p{font-size:.88rem}.home-top-inner{gap:16px}.quick-links{margin-top:13px;flex-wrap:wrap;justify-content:flex-start;overflow:visible}.quick-links a{font-size:.73rem}.feature-media{min-height:280px}.feature-media-copy{left:20px;right:20px;bottom:19px}.feature-media-copy h2{font-size:1.9rem}.feature-media-copy p{font-size:.84rem;max-width:300px}.feature-media-copy .button{min-height:37px}.home-events{padding:25px 19px 31px}.home-events .section-head h2{font-size:1.66rem}.home-event-list{display:block}.home-event-list .event-row{display:grid;grid-template-columns:72px minmax(0,1fr) 18px;align-items:center;min-height:109px;padding:10px 0;border-bottom:0}.home-event-list .event-row-arrow{display:grid}.home-event-list .event-thread{width:72px}.home-event-list .event-date{width:66px;height:66px}.signup-inner h2{font-size:2.05rem}.explore-section{padding:39px 0 45px}.explore-heading h2{font-size:1.82rem}.explore-cards{grid-template-columns:1fr;gap:13px}.explore-card>img{height:205px}.nearby-band{height:285px}.nearby-overlay h2{font-size:2.35rem}.events-intro{padding:29px 0 22px}.events-intro h1{font-size:2.5rem}.events-intro p{font-size:.9rem}.events-search{height:47px}.events-search .button{height:47px}.event-filters{gap:6px}.event-filters a{font-size:.75rem;padding:6px 9px}.events-page-body{padding-top:27px}.events-page-body .event-row{grid-template-columns:74px minmax(0,1fr) 18px;gap:8px;min-height:115px}.events-page-body .event-thread{width:72px}.events-page-body .event-date{width:66px;height:66px}.events-page-body .event-date strong{font-size:1.54rem}.events-page-body .event-row-copy strong{font-size:.98rem}.events-page-body .event-row-meta{font-size:.71rem}.food-intro{min-height:285px;padding:43px 0 28px;background-position:center}.food-intro h1{font-size:2.6rem}.food-intro p{font-size:.9rem}.food-count{margin-top:16px}}
@media(max-width:400px){.home-top h1{font-size:1.94rem}.home-events .section-head{display:block}.home-events .section-head .text-link{margin-top:5px}.feature-media-copy h2{font-size:1.7rem}.event-row-copy strong{font-size:.9rem}.events-intro h1{font-size:2.2rem}.events-search input{font-size:.76rem}.events-search .button{padding-inline:10px;font-size:.78rem}}
@media(max-width:650px){
  .event-filters{flex-wrap:wrap;overflow:visible;padding-bottom:0}
  .event-filters a{white-space:nowrap}
  .home-events{padding:20px 16px 22px}
  .home-event-list .event-row,.events-page-body .event-row{grid-template-columns:56px minmax(0,1fr) 16px;gap:8px;min-height:83px;padding:7px 0;align-items:center}
  .home-event-list .event-date,.events-page-body .event-date{width:52px;height:52px;border-width:1.5px}
  .home-event-list .event-date strong,.events-page-body .event-date strong{font-size:1.26rem;margin:1px 0}
  .home-event-list .event-date small,.events-page-body .event-date small{font-size:.54rem}
  .event-category{font-size:.57rem;line-height:1.2}
  .home-event-list .event-row-copy strong,.events-page-body .event-row-copy strong{font-size:.88rem;line-height:1.18;margin:2px 0 3px}
  .home-event-list .event-row-meta,.events-page-body .event-row-meta{font-size:.65rem;line-height:1.2;margin-top:2px}
  .event-row-meta svg{width:12px;height:12px}
  .event-row-day{display:none}
  .event-row-arrow svg{width:17px;height:17px}
  .events-page-body{padding-top:22px}
  .events-page-body .section-head{margin-bottom:11px}
  .events-page-body .section-head h2{font-size:1.45rem}
  .events-page-body .section-head .button{min-height:36px;padding:7px 11px;font-size:.76rem}
}
@media(max-width:400px){.events-intro h1{font-size:1.92rem}}

/* Phone layouts lead with the site's editorial photography. */
.event-free{margin-left:7px}
.event-free:before{content:"\00b7";margin-right:7px}
@media(max-width:650px){
  .home-top{padding:0;background:#fff;border-bottom:1px solid var(--line)}
  .home-top-inner.shell{width:100%;min-height:325px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:0;padding:28px 15px 24px;background:linear-gradient(180deg,rgba(5,30,45,.2),rgba(5,30,45,.73) 58%,rgba(5,30,45,.91)),none center 54%/cover no-repeat}
  .home-kicker{color:var(--on-dark);font-size:.72rem}
  .home-kicker svg{color:var(--peach)}
  .home-top h1{max-width:360px;color:#fff;font-size:2.3rem;line-height:1.05;text-shadow:0 2px 12px rgba(5,30,45,.27)}
  .home-top p{max-width:310px;color:var(--on-dark);font-size:.9rem}
  .home-search{max-width:none;height:49px;margin-top:18px;box-shadow:0 7px 20px rgba(5,25,38,.18)}
  .quick-links.shell{width:100%;margin:0;padding:12px 15px 13px;display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:8px;overflow-x:auto;scrollbar-width:none}
  .quick-links::-webkit-scrollbar{display:none}
  .quick-links a{flex:none;background:#fff;font-size:.74rem}
  .home-feature{display:block;border-top:0}
  .feature-media{display:none}
  .home-events{padding:24px 15px 28px}
  .home-events .section-head{display:flex;align-items:end;gap:10px}
  .home-events .section-head h2{font-size:1.6rem}
  .home-events .section-head .text-link{align-self:end;margin:0 0 2px}
  .events-intro{padding:31px 0 18px;border-bottom:0;background:linear-gradient(180deg,rgba(6,30,45,.43),rgba(6,30,45,.82) 65%,rgba(6,30,45,.94)),none center 50%/cover no-repeat}
  .tag-browse span{color:var(--on-dark)}
  .events-intro .eyebrow{color:var(--peach)}
  .events-intro h1{color:#fff;font-size:2.32rem}
  .events-intro p{max-width:300px;margin-bottom:19px;color:var(--on-dark)}
  .events-search{height:49px;box-shadow:0 7px 20px rgba(5,25,38,.18)}
  .events-search .button{height:49px}
  .event-filters{margin-top:13px}
  .event-filters a{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.8)}
  .event-filters a[aria-current=true]{background:var(--navy);border-color:var(--navy);color:#fff}
  .events-page-body{padding-top:27px}
}
@media(max-width:400px){
  .home-top h1{font-size:2.07rem}
  .events-intro h1{font-size:2.12rem}
}

.event-row.calendar-open{z-index:8}
.event-title{display:block;width:fit-content;max-width:100%}
.event-date:focus-visible,.event-title:focus-visible,.event-row-arrow:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.calendar-action{position:relative;z-index:2;width:max-content;max-width:100%;margin-top:7px}
.calendar-action summary{display:inline-flex;align-items:center;gap:5px;list-style:none;color:var(--teal);font-size:.72rem;font-weight:780;line-height:1.25;cursor:pointer}
.calendar-action summary::-webkit-details-marker{display:none}
.calendar-action summary:after{content:"";display:block;width:5px;height:5px;margin-left:3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.calendar-action[open] summary:after{transform:translateY(1px) rotate(225deg)}
.calendar-action summary:hover{text-decoration:underline}
.calendar-action summary:focus-visible,.calendar-menu a:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.calendar-menu{position:absolute;top:calc(100% + 7px);left:0;z-index:12;width:238px;max-width:calc(100vw - 90px);padding:5px;background:#fff;border:1px solid var(--border);border-radius:5px;box-shadow:0 13px 25px rgba(8,35,51,.18)}
.calendar-menu a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 9px;border-radius:3px;color:var(--ink);font-size:.78rem;font-weight:720;line-height:1.2}
.calendar-menu a:hover{background:var(--mist-deep);color:var(--teal)}
.calendar-menu svg{flex:none;color:var(--teal)}
.detail-calendar{margin-top:18px}
.calendar-action-large{margin-top:0}
.calendar-action-large summary{min-height:42px;padding:10px 13px;border:1px solid var(--border);border-radius:4px;color:var(--ink);font-size:.84rem}
.calendar-action-large .calendar-menu{max-width:calc(100vw - 45px)}
@media(max-width:650px){
  .calendar-action{margin-top:5px}
  .calendar-action summary{font-size:.66rem}
  .calendar-action summary svg{width:12px;height:12px}
  .calendar-action-large summary{font-size:.79rem}
  .calendar-menu{width:210px}
}

/* Reference-derived artwork stays unobscured on every screen. */
.page-art,.guide-art,.nearby-art{display:block;overflow:hidden;background:#092b40}
.page-art>img{width:100%;height:auto;aspect-ratio:18/7;max-width:1440px;margin-inline:auto}
.page-art{width:100%}
.page-art.home-concert-art{background:var(--navy)}
.guide-art>img,.nearby-art>img{width:100%;height:auto;aspect-ratio:18/7}
.home-top,.events-intro,.food-intro,.nearby-page-hero{min-height:0;background:var(--mist);color:var(--ink);padding:28px 0;border-bottom:1px solid var(--line)}
.home-top{background:#fff}
.home-top-inner.shell{min-height:0;background:none;padding:0;box-shadow:none}
.home-top h1,.events-intro h1,.food-intro h1,.nearby-page-hero h1,.page-intro h1{color:var(--ink);font-size:2.4rem;line-height:1.12;text-shadow:none;margin-bottom:8px}
.home-top p,.events-intro p,.food-intro p,.nearby-page-hero p{color:var(--muted);font-size:.98rem;max-width:720px}
.home-kicker{color:var(--teal)}
.home-kicker svg{color:var(--copper-dark)}
.food-intro .eyebrow,.events-intro .eyebrow,.nearby-page-hero .eyebrow{color:var(--copper-dark)}
.food-count{color:var(--muted)}
.food-count strong{color:var(--ink)}
.food-count b{color:var(--copper-dark)}
.tag-browse span{color:var(--muted)}
.events-intro p{margin-bottom:18px}
.home-feature{min-height:0;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;padding-block:34px;border:0}
.home-plan-note{align-self:center;padding:20px 0}
.home-plan-note h2{font-size:2rem;margin-bottom:12px}
.home-plan-note p{color:var(--muted);max-width:410px;margin-bottom:20px}
.home-events{padding:0}
.explore-card>picture{display:block}
.nearby-band{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);height:auto;background:var(--navy)}
.nearby-art{align-self:center}
.nearby-overlay{position:static;inset:auto;background:none;min-width:0;padding:28px 36px}
.nearby-overlay-inner{height:100%;max-width:560px}
.nearby-overlay h2{font-size:2rem}
.nearby-overlay p{font-size:.95rem}
.page-intro{padding-block:28px}
.nearby-page-body{padding-top:38px}
@media(min-width:1441px){.page-art{background:linear-gradient(#dff2f3 75%,#092b40 75%)}}
@media(max-width:900px){.home-feature{gap:30px}.nearby-overlay{padding:22px}.nearby-overlay h2{font-size:1.7rem}}
@media(max-width:650px){
  .page-art>img,.guide-art>img,.nearby-art>img{aspect-ratio:48/29}
  .home-top,.events-intro,.food-intro,.nearby-page-hero{padding:24px 0}
  .home-top-inner.shell{width:min(100% - 30px,1320px);display:grid;grid-template-columns:1fr;gap:16px;padding:0;min-height:0;background:none}
  .home-top h1,.events-intro h1,.food-intro h1,.nearby-page-hero h1,.page-intro h1{font-size:1.9rem;max-width:none;color:var(--ink);text-shadow:none}
  .home-top p,.events-intro p,.food-intro p,.nearby-page-hero p{font-size:.91rem;max-width:none;color:var(--muted)}
  .home-search,.events-search{margin-top:0;box-shadow:none}
  .home-kicker{color:var(--teal)}
  .home-kicker svg{color:var(--copper-dark)}
  .quick-links.shell{width:min(100% - 30px,1320px);padding:0;margin-top:16px;flex-wrap:wrap;overflow:visible;gap:7px}
  .event-filters a{background:#fff;border-color:var(--border)}
  .tag-browse span{color:var(--muted)}
  .home-feature{display:block;padding-block:28px}
  .home-plan-note{display:none}
  .home-events{padding:0}
  .home-events .section-head{align-items:center}
  .home-events .section-head h2{font-size:1.55rem}
  .food-count{margin-top:18px}
  .food-count strong{font-size:1.8rem}
  .nearby-band{grid-template-columns:1fr}
  .nearby-overlay{padding:26px 16px 30px}
  .nearby-overlay h2{font-size:1.85rem}
  .page-intro{padding-block:24px}
}

/* ---------- Sign-in and My Loop ---------- */
/* Sign in / My Loop: the same copper as the newsletter button, raised like a physical key */
.header-account{display:inline-flex;align-items:center;gap:7px;color:#fff;font-size:.84rem;font-weight:800;line-height:1.2;padding:6px 15px;border:1px solid #9f4125;border-bottom-width:1px;border-radius:6px;background:linear-gradient(180deg,#c6552e 0%,var(--copper-button) 25%,#b84b29 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 3px 0 var(--copper-button-hover),0 5px 9px rgba(0,0,0,.35);text-shadow:0 1px 0 rgba(120,40,15,.45);margin-bottom:3px;transition:transform .12s,box-shadow .12s,filter .12s}
.header-account:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 4px 0 var(--copper-button-hover),0 7px 12px rgba(0,0,0,.4)}
.header-account:active{transform:translateY(3px);box-shadow:inset 0 1px 2px rgba(0,0,0,.25),0 0 0 var(--copper-button-hover),0 1px 3px rgba(0,0,0,.3)}
.header-account:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.header-top-rule{width:1px;height:20px;background:rgba(255,255,255,.25);margin-inline:4px}
.detail-calendar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.inline-form{display:inline-flex;margin:0}
.save-button{min-height:42px}
.notice{border-radius:6px;padding:12px 15px;margin:0 0 18px;font-weight:650;font-size:.93rem}
.notice-good{background:#e7f4ef;border:1px solid #b9dccd;color:#14513d}
.notice-warn{background:var(--peach-tint);border:1px solid #f1c9ae;color:#7a3a1d}
.auth-wrap{max-width:620px;padding-top:56px;padding-bottom:96px}
.auth-wrap h1{font-size:clamp(2.3rem,4vw,3.2rem)}
.auth-lede{font-size:1.05rem;color:var(--text-soft);margin-bottom:22px}
.auth-form{display:grid;gap:12px;margin-bottom:20px}
.auth-form label{font-weight:750;font-size:.9rem}
.auth-form .button{justify-self:start}
.auth-fine{font-size:.83rem;color:var(--muted)}
.auth-fine a,.account-muted a,.prose a{color:var(--teal);font-weight:700;text-decoration:underline}
.account-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.account-intro p{margin:0;color:var(--muted)}
.account-body{display:grid;gap:22px;padding-bottom:90px}
.account-body>*{max-width:920px}
.account-card{border:1px solid var(--line);border-radius:8px;padding:24px 26px;background:#fff}
.account-card h2{font-size:1.45rem;margin-bottom:8px}
.account-muted{color:var(--muted);font-size:.93rem;margin-bottom:16px}
.chip-set{border:0;margin:0 0 18px;padding:0}
.chip-set legend{font-weight:800;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--copper-dark);margin-bottom:9px;padding:0}
.chip-row{display:flex;flex-wrap:wrap;gap:8px}
.check-chip{position:relative;display:inline-flex}
.check-chip input{position:absolute;opacity:0;width:1px;height:1px}
.check-chip span{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--ink);font-size:.85rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}
.check-chip span:before{content:"+";font-weight:800;color:var(--teal)}
.check-chip input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.check-chip input:checked+span:before{content:"✓";color:var(--peach)}
.check-chip input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.saved-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.saved-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:6px}
.saved-list a{display:grid;gap:2px;min-width:0}
.saved-list a strong{color:var(--ink)}
.saved-list a span{font-size:.85rem;color:var(--muted)}
.saved-list a:hover strong{color:var(--teal)}
.link-button{background:none;border:0;padding:6px;color:var(--copper-button-hover);font-weight:750;font-size:.85rem;text-decoration:underline;flex:none}
.account-danger{border-color:#f1c9ae}
.confirm-check{display:flex;align-items:center;gap:9px;margin-bottom:14px;font-size:.92rem;font-weight:650}
.danger-button{color:var(--copper-button-hover);border-color:#e3a58a}
.danger-button:hover{border-color:var(--copper-button-hover)}
.prose{max-width:760px;padding-bottom:90px}
.prose h2{font-size:1.35rem;margin:30px 0 10px}
.prose ul{padding-left:20px;margin:0 0 12px}
.prose li{margin-bottom:8px;line-height:1.6}
@media(max-width:650px){
  .account-card{padding:20px 17px}
  .auth-wrap{padding-top:36px;padding-bottom:70px}
  .header-account{font-size:.8rem;padding:6px 13px}
  .saved-list li{align-items:flex-start}
}
.join-wrap{max-width:780px}
.join-form{display:grid;gap:26px}
.join-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start}
.join-step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;margin-top:2px}
.join-step.join-step-plain{grid-template-columns:minmax(0,1fr)}
.join-step-plain~.join-more{margin-left:0}
.auth-lede a{color:var(--teal);font-weight:700;text-decoration:underline}
.join-step-body h2{font-size:1.35rem;margin:4px 0 6px}
.join-step-body .input-wrap{margin-bottom:12px}
.join-submit{min-height:52px;font-size:1rem;margin-bottom:6px}
.join-more{border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin-left:54px}
.join-more summary{cursor:pointer;font-weight:750;color:var(--ink)}
.join-more summary span{color:var(--muted);font-weight:600}
.join-more[open] summary{margin-bottom:14px}
.sent-picks{margin:22px 0;padding:16px 18px;border:1px solid var(--line);border-radius:8px;background:var(--mist)}
.sent-picks p{margin:0 0 10px;font-weight:650;font-size:.92rem}
.sent-picks .tag-chips{margin:0}
@media(max-width:650px){
  .join-step{grid-template-columns:30px minmax(0,1fr);gap:10px}
  .join-step-number{width:28px;height:28px;font-size:.85rem}
  .join-more{margin-left:0}
  .join-submit{width:100%}
}
.field-label{display:block;font-weight:750;font-size:.9rem;margin-bottom:7px}
.google-button{width:100%;max-width:420px;min-height:52px;background:#fff;color:#1f1f1f;border:1px solid #747775;font-size:1rem;gap:12px}
.google-button:hover{background:var(--mist)}
.google-mark{width:20px;height:20px}
.or-rule{display:flex;align-items:center;gap:12px;max-width:420px;margin:16px 0;color:var(--muted);font-size:.85rem;font-weight:650}
.or-rule:before,.or-rule:after{content:"";flex:1;height:1px;background:var(--line)}
.code-form{margin:6px 0 18px}
.code-row{display:flex;gap:10px;flex-wrap:wrap}
.code-input{width:220px;height:56px;padding:0 16px;border:1px solid var(--border);border-radius:6px;font:700 1.6rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3em;color:var(--ink)}
.code-input:focus{outline:2px solid var(--teal);outline-offset:1px}
.code-row .button{min-height:56px}
.code-alt{color:var(--text-soft);margin:6px 0 14px}
.open-mail{margin-bottom:6px}
@media(max-width:650px){.code-input{flex:1;min-width:0;width:auto}.google-button{max-width:none}.or-rule{max-width:none}}
.join-step-body .input-wrap,.join-step-body .google-button,.join-step-body .or-rule{max-width:480px}
.town-select{display:block;width:100%;max-width:480px;min-height:50px;padding:11px 14px;margin-bottom:20px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--ink)}
.town-select:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.auth-switch{margin-top:24px;color:var(--muted)}
.auth-switch a{color:var(--teal);font-weight:750;text-decoration:underline}
.account-intro .account-town{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;font-size:.95rem}
.newsletter-check{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;line-height:1.5;font-weight:650}
.newsletter-check input{flex:none;width:18px;height:18px;margin-top:3px;accent-color:var(--navy)}
.account-intro strong{overflow-wrap:anywhere}
.header-account{white-space:nowrap;flex:none}
@media(max-width:360px){.header-top-inner{gap:6px}.header-top-rule{margin-inline:2px;flex:none}.header-social img{height:22px}.header-account{padding-inline:10px}}

/* Around These Parts: outdoor guide */
.outdoor-intro{padding:42px 0 26px;background:var(--mist);border-bottom:1px solid var(--line)}
.outdoor-intro h1{font-size:clamp(2.5rem,4.4vw,3.9rem);margin-bottom:10px}
.outdoor-intro p{max-width:680px;color:var(--muted);font-size:1.04rem;line-height:1.55;margin:0 0 22px}
.outdoor-filters{display:flex;flex-wrap:wrap;gap:8px}
.outdoor-filters button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:.84rem;font-weight:750;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.outdoor-filters button i{width:10px;height:10px;border-radius:50%;background:var(--cat)}
.outdoor-filters button span{color:var(--muted);font-weight:650;font-size:.76rem}
.outdoor-filters button:hover{border-color:var(--teal)}
.outdoor-filters button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.outdoor-filters button.active span{color:var(--on-dark)}
.outdoor-filters button:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.outdoor-guide{padding-top:28px;padding-bottom:40px}
.outdoor-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(375px,.85fr);gap:30px;align-items:start}
.outdoor-map-column .map-frame{top:16px}
.outdoor-map{height:640px}
.outdoor-map-reset{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:.76rem;font-weight:750;color:var(--ink);cursor:pointer}
.outdoor-map-reset:hover{border-color:var(--teal)}
.outdoor-list{display:grid;gap:16px}
.outdoor-card{position:relative;border:1px solid var(--line);border-left:5px solid var(--cat);border-radius:6px;background:#fff;padding:20px 20px 18px;scroll-margin-top:20px;transition:box-shadow .2s}
.outdoor-card[hidden]{display:none}
.outdoor-card.flash{box-shadow:0 0 0 3px var(--sky)}
/* Shop Local: the whole card is the link, not just the name. The name's own link is
   stretched over the card, so there is still exactly one link here for a screen reader
   and nothing is nested. Everything else you can press is lifted above that overlay. */
.card-link{cursor:pointer}
.place-card.card-link{position:relative}
.outdoor-card.card-link:hover{box-shadow:0 2px 14px rgba(16,36,55,.13)}
.card-link h3 a{position:static}
.card-link h3 a::after{content:'';position:absolute;inset:0;z-index:1;border-radius:6px}
.card-link h3 a:focus-visible::after{outline:2px solid var(--teal);outline-offset:-3px}
.card-link :is(details,summary,form,button,.outdoor-actions,.shop-follow,.shop-events,.place-card-bottom){position:relative;z-index:2}
.card-link>a,.card-link :is(p,li,span,div) a{position:relative;z-index:2}
.outdoor-card-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;align-items:center;margin-bottom:10px}
.outdoor-cat{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--cat)}
.outdoor-cat i{width:9px;height:9px;border-radius:50%;background:var(--cat)}
.outdoor-distance{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;color:var(--muted);font-weight:650}
.outdoor-distance svg{color:var(--copper-dark)}
.outdoor-card h3{font-size:1.28rem;line-height:1.2;margin:0 0 7px}
.outdoor-card p{color:var(--text-soft);font-size:.9rem;line-height:1.55;margin:0 0 12px}
.outdoor-card .outdoor-summary{color:var(--ink);font-weight:700;font-size:.98rem}
.outdoor-highlights{list-style:none;padding:0;margin:0 0 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px}
.outdoor-highlights li{display:flex;gap:7px;align-items:flex-start;font-size:.84rem;line-height:1.4;color:var(--ink)}
.outdoor-highlights svg{flex:none;margin-top:2px;color:var(--teal)}
.outdoor-more{border-top:1px solid var(--line);padding-top:10px;margin-bottom:14px}
.outdoor-more summary{cursor:pointer;font-weight:750;font-size:.86rem;color:var(--teal)}
.outdoor-more[open] summary{margin-bottom:10px}
.outdoor-more p{font-size:.85rem;margin-bottom:8px}
.outdoor-source{color:var(--muted)!important;font-size:.76rem!important}
.outdoor-source a{color:var(--teal);text-decoration:underline}
.outdoor-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.outdoor-actions .button{min-height:44px}
.outdoor-map-link{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--teal);font:inherit;font-size:.86rem;font-weight:750;cursor:pointer;padding:8px 4px}
.outdoor-map-link:hover{text-decoration:underline}
.outdoor-marker{background:none;border:0}
.outdoor-marker span{display:block;width:22px;height:22px;margin:2px;border-radius:50%;background:var(--cat);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.outdoor-more-help{padding-top:20px}
@media(max-width:900px){.outdoor-layout{grid-template-columns:1fr}.outdoor-map-column{grid-row:1}.outdoor-map-column .map-frame{position:static}.outdoor-map{height:420px}}
@media(max-width:650px){.outdoor-intro{padding:28px 0 20px}.outdoor-intro h1{font-size:2.4rem}.outdoor-intro p{font-size:.93rem}.outdoor-filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-15px;padding:2px 15px 6px;scrollbar-width:none}.outdoor-filters button{flex:none}.outdoor-map{height:340px}.outdoor-card{padding:16px 15px}.outdoor-highlights{grid-template-columns:1fr}.outdoor-actions .button{flex:1}}

/* Shop Local reuses the outdoor guide's cards and filters */
.shop-guide .food-results-head{padding-top:4px}
.shop-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.shop-address{display:flex;align-items:flex-start;gap:6px;color:var(--muted)!important;font-size:.84rem!important;margin-bottom:10px!important}
.shop-address svg{flex:none;margin-top:2px;color:var(--copper-dark)}
.outdoor-more a{color:var(--teal);text-decoration:underline}
@media(max-width:900px){.shop-list{grid-template-columns:1fr}}
.crew-facts{margin:2px 0 8px}
.crew-facts p{margin:0 0 7px;font-size:.92rem}
.crew-facts strong{color:var(--ink)}
.crew-source{margin:0 0 12px!important}

/* Pitch In uses the shared artwork and a compact, searchable editorial directory. */
.pitch-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.pitch-intro>.text-link{white-space:normal;flex-shrink:0}
.volunteer-directory{padding-bottom:48px;scroll-margin-top:20px}
.volunteer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px}
.volunteer-toolbar h2{font-size:1.65rem;flex-shrink:0}
.volunteer-search{display:flex;align-items:stretch;gap:8px;flex:1;max-width:680px}
.volunteer-search .input-wrap{flex:1;min-width:0}
.volunteer-search input{min-width:0;width:100%}
.volunteer-search select{min-width:0;max-width:190px;border:1px solid var(--border);border-radius:5px;background:#fff;padding:10px;color:var(--ink)}
.volunteer-search .button{width:48px;flex-shrink:0;padding:0}
.volunteer-filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.volunteer-filters a{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:5px;font-size:.9rem;font-weight:700}
.volunteer-filters a[aria-current]{background:var(--navy);border-color:var(--navy);color:#fff}
.volunteer-filters a:hover{border-color:var(--teal)}
.volunteer-filters a span{font-size:.78rem;opacity:.75;font-variant-numeric:tabular-nums}
.volunteer-results{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 8px}
.volunteer-results p{font-weight:750;margin:0}
.volunteer-results p span{color:var(--muted);font-weight:400}
.volunteer-note{font-size:.88rem;color:var(--muted);max-width:1000px;margin-bottom:22px}
.volunteer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.volunteer-card{display:flex;flex-direction:column;min-width:0;padding:23px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(9,35,55,.04);scroll-margin-top:20px}
.volunteer-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.volunteer-cause{font-size:.72rem;font-weight:750;border-radius:3px;padding:4px 8px;background:#dcf0f5;color:#17445a}
.volunteer-cause[data-cause=animals]{background:#fce9de;color:#87391f}
.volunteer-cause[data-cause=community]{background:#e9efda;color:#3b5428}
.volunteer-status{font-size:.72rem;color:var(--muted)}
.volunteer-card h3{font-size:1.25rem;line-height:1.25;margin-bottom:8px;overflow-wrap:anywhere}
.volunteer-card h3 a:hover{text-decoration:underline;text-decoration-color:var(--copper);text-underline-offset:4px}
.volunteer-area{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:.8rem;color:var(--muted);margin-bottom:15px;line-height:1.4}
.volunteer-area span{width:100%;padding-left:20px;font-size:.73rem;color:var(--teal)}
.volunteer-summary{font-size:.92rem;line-height:1.6;margin-bottom:16px}
.volunteer-card h4{font-size:.73rem;font-weight:800;color:var(--teal);line-height:1.3;margin:0 0 6px}
.volunteer-help{margin-bottom:18px;padding-left:13px;border-left:3px solid var(--copper)}
.volunteer-help p{font-size:.87rem;margin:0}
.volunteer-contact{padding-top:16px;border-top:1px solid var(--line);margin-top:auto;font-size:.87rem}
.volunteer-contact>strong,.volunteer-contact>span{display:block}
.volunteer-contact>span{color:var(--muted);font-size:.78rem;margin-top:2px}
.volunteer-contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}
.volunteer-contact-links a{display:inline-flex;align-items:center;gap:6px;color:var(--teal);overflow-wrap:anywhere;max-width:100%;min-height:28px}
.volunteer-contact-links a:hover{text-decoration:underline}
.volunteer-card-bottom{padding-top:18px}
.volunteer-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.volunteer-actions .button{font-size:.82rem;min-height:44px;white-space:normal;text-align:left;justify-content:space-between}
.volunteer-actions .text-link{font-size:.8rem}
.volunteer-actions svg,.volunteer-contact-links svg{flex-shrink:0}
.volunteer-details{margin-top:14px;font-size:.79rem;color:var(--muted)}
.volunteer-details summary{cursor:pointer;min-height:32px;padding-block:5px;color:var(--ink)}
.volunteer-details p{margin:8px 0}
.volunteer-details .volunteer-checked{font-size:.72rem}
.volunteer-details ul{list-style:none;padding:0;margin-bottom:0;display:grid;gap:7px}
.volunteer-details a{display:inline-flex;align-items:center;gap:6px;color:var(--teal);overflow-wrap:anywhere}
.volunteer-empty{padding-block:48px;text-align:center}
.volunteer-empty h3{font-size:1.4rem}
.volunteer-invite{background:var(--mist-deep);border-top:1px solid var(--line);padding-block:36px}
.volunteer-invite>.shell{display:flex;align-items:center;justify-content:space-between;gap:30px}
.volunteer-invite h2{font-size:1.7rem;margin-bottom:10px}
.volunteer-invite p{max-width:700px;margin:0;color:var(--muted)}
.volunteer-directory a:focus-visible,.volunteer-directory summary:focus-visible{outline:3px solid var(--copper);outline-offset:3px}
@media(max-width:1100px){.volunteer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.volunteer-toolbar{align-items:flex-start;flex-direction:column}.volunteer-search{width:100%;max-width:none}}
@media(max-width:650px){.pitch-intro{display:block}.pitch-intro>.text-link{margin-top:16px}.volunteer-toolbar h2{font-size:1.4rem}.volunteer-search{display:grid;grid-template-columns:minmax(0,1fr) 48px}.volunteer-search .input-wrap{grid-column:1/-1}.volunteer-search select{max-width:none;width:100%}.volunteer-grid{grid-template-columns:minmax(0,1fr);gap:14px}.volunteer-card{padding:20px}.volunteer-filters{gap:6px}.volunteer-filters a{font-size:.8rem;padding:8px 10px}.volunteer-note{font-size:.81rem}.volunteer-invite>.shell{display:block}.volunteer-invite .button{margin-top:20px}.volunteer-contact-links a{min-height:36px}.volunteer-directory{padding-bottom:32px}}

/* Eight header links need a tighter header between the phone menu and the widest desktop. */
@media(min-width:1101px) and (max-width:1439px){.header-inner{gap:12px}.brand{width:285px}.site-nav{gap:0}.site-nav a{font-size:.8rem;padding:10px 7px}.site-nav .nav-search{margin-left:4px;padding-left:10px;min-width:40px}}

/* The approved wordmark keeps its lettering and thread; crop only empty navy space. */
.site-header-refresh{background:#04334e}
.site-header-refresh .header-inner{min-height:0;justify-content:center;gap:12px;padding-block:16px}
.site-header-refresh .brand{flex:0 1 820px;width:820px;min-width:0;aspect-ratio:6;overflow:hidden}
.site-header-refresh .brand img{width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:lighten}
.site-header-refresh .brand .masthead-art{display:block;width:100%;height:100%}
.site-header-refresh .brand:focus-visible{outline:2px solid var(--sky);outline-offset:5px}
.site-header-refresh .header-navigation{border-top:1px solid rgba(255,255,255,.09)}
.site-header-refresh .site-nav{justify-content:center;gap:4px;margin-inline:auto;padding-block:8px}
.site-header-refresh .site-nav a{font-size:.89rem;padding:10px 13px}
@media(max-width:1100px){
  .site-header-refresh .header-inner{justify-content:space-between;padding-block:14px}
  .site-header-refresh .brand{flex:1 1 auto;width:calc(100% - 56px);max-width:640px}
  .site-header-refresh .mobile-menu{flex:0 0 44px;margin-left:auto}
  .site-header-refresh .header-navigation{border:0}
  .site-header-refresh .site-nav{width:100%;background:#04334e;padding:10px 19px 16px}
  .site-header-refresh .site-nav a{font-size:.93rem;padding:12px}
}
@media(max-width:650px){.site-header-refresh .header-inner{padding-block:14px}}

/* ---------- Towns, surrounding areas and signed-in devices ---------- */
.check-chip[hidden]{display:none}
.area-set{max-width:640px;margin:0 0 18px}
.area-set legend span{color:var(--muted);font-weight:600;letter-spacing:0;text-transform:none}
.area-set .account-muted{margin:0 0 10px;font-size:.9rem}
.town-request{max-width:480px;margin:0 0 20px}
.town-request summary{cursor:pointer;font-weight:750;color:var(--teal)}
.town-request[open] summary{margin-bottom:10px}
.agree-check{max-width:480px;margin:2px 0 18px;font-weight:600}
.agree-check a{color:var(--teal);text-decoration:underline}
.account-intro .account-town span{color:var(--muted)}
.device-list{list-style:none;margin:0 0 18px;padding:0}
.device-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line)}
.device-list li:first-child{border-top:0}
.device-list li>div{display:grid;gap:2px}
.device-list .device-meta{font-size:.86rem;color:var(--muted)}
.device-list .device-badge{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:999px;background:var(--mist);border:1px solid var(--line);color:var(--navy);font-size:.72rem;font-weight:800}
@media(max-width:650px){.device-list li{flex-wrap:wrap}}

/* Skip link: first thing a keyboard or screen-reader user reaches */
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:#fff;color:var(--navy);box-shadow:0 4px 16px rgba(0,0,0,.35);padding:10px 16px;border-radius:0 0 10px 10px;font-weight:700;text-decoration:none}
.skip-link:focus{top:0;outline:3px solid var(--sky);outline-offset:2px}
main:focus{outline:none}
/* One visible focus ring for anything that doesn't have its own */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.site-header a:focus-visible,.site-footer a:focus-visible,.signup-band a:focus-visible,.signup-band button:focus-visible{outline-color:var(--sky)}
/* Very long words and links wrap instead of pushing the page sideways */
.prose,.detail-lede,.place-card p,.event-row-copy,.account-card{overflow-wrap:anywhere}
/* Installed app: no accidental text-size jumps, no gray tap flash */
html{-webkit-text-size-adjust:100%}
a,button{-webkit-tap-highlight-color:rgba(8,114,139,.18)}
/* Touch screens: bigger tap areas for links and toggles without changing how anything looks */
@media (pointer:coarse){
  .header-account,.header-social,.footer-social,.footer-grid a,.back-link,.text-link,.footer-brand{position:relative}
  .header-account::after,.header-social::after,.footer-social::after,.footer-grid a::after,.back-link::after,.text-link::after,.footer-brand::after{content:"";position:absolute;inset:-9px -6px}
  .outdoor-more>summary,.volunteer-details>summary,.town-request>summary,.join-more>summary{padding-block:11px}
  .outdoor-map-link{padding-block:12px}
}
.event-form .agree-check{grid-column:1/-1;max-width:none;margin:0;display:flex;gap:10px;align-items:flex-start}
.event-form .agree-check input{margin-top:5px}
/* Host accounts */
.host-band{background:var(--mist);padding:58px 0}
.host-band .section-head{margin-bottom:24px}
.host-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.host-cards-page{padding-bottom:34px}
.host-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--copper);border-radius:8px;padding:26px;box-shadow:var(--shadow)}
.host-card h2,.host-card h3{margin:0;font-size:1.45rem;line-height:1.2}
.host-card p{margin:0;color:var(--text-soft)}
.host-card .button{margin-top:auto}
.host-perks{margin:4px 0 8px;padding-left:20px;color:var(--text-soft)}
.host-perks li{margin:4px 0}
.host-note{padding-bottom:70px}
.host-status-card{background:var(--mist);border:1px solid var(--line);border-radius:8px;padding:26px;display:grid;gap:12px;justify-items:start}
.host-status-card h2{margin:0;font-size:1.4rem}
.host-status-card p{margin:0;color:var(--text-soft);overflow-wrap:anywhere}
.host-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.host-list,.host-listings{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:10px}
.host-list li,.host-listing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 0;border-bottom:1px solid var(--line)}
.host-list li:last-child,.host-listing:last-child{border-bottom:0}
.host-listing>div:first-child{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}
.host-listing-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.host-listing-side form{margin:0}
.host-withdraw{min-height:40px;padding:8px 16px;font-size:.84rem}
.host-status{display:inline-block;border-radius:999px;padding:3px 11px;font-size:.78rem;font-weight:800;line-height:1.4;background:var(--mist-deep);color:var(--ink);border:1px solid var(--border)}
.host-status-approved{background:#e3f2e7;border-color:#9fcdaa;color:#1d5a2e}
.host-status-pending{background:var(--peach-tint);border-color:var(--peach);color:#7a3a17}
.host-status-rejected,.host-status-withdrawn{background:#f1f1f1;border-color:#c9c9c9;color:#444}
@media(max-width:800px){.host-cards{grid-template-columns:1fr}.host-band{padding:42px 0}.host-card{padding:22px}}

.field-hint { display: block; margin-top: 6px; color: var(--muted, #5b6b78); font-size: .85rem; line-height: 1.4; }
.bot-check{margin:14px 0}
.event-form .bot-check{grid-column:1/-1;max-width:100%;overflow:hidden}
.report-link{font-size:.85rem;margin-top:14px}
.report-link a,a.report-link{color:var(--muted);text-decoration:underline}

/* Passwords */
.password-wrap input{padding-right:76px}
.show-password{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:38px;padding:0 12px;background:none;border:0;border-radius:5px;color:var(--teal);font:inherit;font-weight:750;font-size:.9rem;cursor:pointer}
.show-password:hover{text-decoration:underline}
.show-password:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.field-hint{margin-bottom:12px}
.forgot-row{margin:14px 0 0}
.text-button{background:none;border:0;padding:6px 0;color:var(--teal);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.password-form{max-width:480px}
.password-form .input-wrap{margin-bottom:12px}
.password-form input[readonly]{background:var(--surface-soft,#f3f7f8);color:var(--muted)}

/* More like this */
.more-like{margin:30px 0 8px;padding:18px 20px;background:var(--peach-tint);border:1px solid #f0cdb6;border-left:5px solid var(--copper);border-radius:8px}
.more-like-top{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.more-like h2{font-size:1.3rem;margin-bottom:4px}
.more-like p{margin:0;color:var(--text-soft);font-size:.95rem}
.more-like-action{flex:none}
.like-button{min-height:42px;padding:0 20px;font-size:.95rem;box-shadow:0 2px 0 rgba(159,65,37,.35)}
.like-button:hover{transform:translateY(-1px)}
.like-state{display:inline-flex;align-items:center;gap:6px;margin-right:10px;color:var(--navy);font-weight:800;font-size:.92rem}
.more-like .inline-form{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.more-like .notice{margin:14px 0 0}
.more-like-sub{margin:20px 0 8px;font-size:.78rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--copper-dark)}
.more-like-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.more-like-list a{display:block;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:6px}
.more-like-list a:hover,.more-like-list a:focus-visible{border-color:var(--teal)}
.more-like-list strong{display:block;font-size:.98rem}
.more-like-list span{display:block;margin-top:2px;color:var(--muted);font-size:.84rem}
@media(max-width:650px){.more-like{padding:16px}.more-like-action,.more-like-action .inline-form{width:100%}.like-button{width:100%;justify-content:center}}
.inapp-note{margin:12px 0}
.more-like-top>div:first-child{flex:1 1 300px;min-width:0}

/* Breadcrumbs, ended-event note, and the landing pages for each kind of event and food */
.crumbs{margin:0 0 16px;font-size:.84rem}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;margin:0;padding:0;list-style:none;color:var(--muted)}
.crumbs li+li:before{content:"/";margin:0 8px;color:var(--muted);opacity:.6}
.crumbs a{color:var(--teal);font-weight:700}
.crumbs a:hover,.crumbs a:focus-visible{text-decoration:underline}
.crumbs [aria-current]{color:var(--ink);font-weight:700;overflow-wrap:anywhere}
.detail-wrap>.crumbs{margin-bottom:28px}
.ended-note{margin:0 0 18px;padding:12px 14px;border:1px solid var(--border);border-left:4px solid var(--copper,#c8552d);border-radius:8px;background:#fff;font-size:.95rem}
.ended-note a{color:var(--teal);font-weight:760;text-decoration:underline}
.landing-next{margin-top:42px}
.food-note-small{margin:34px 0 0;color:var(--muted);font-size:.84rem}
.food-type-links{margin:0 0 20px}
@media(max-width:650px){.detail-wrap>.crumbs{margin-bottom:18px}}

.also-on{margin:26px 0 8px}
.also-on h2{font-size:1.3rem;margin-bottom:12px}
.also-more{margin:12px 0 0;font-weight:700}
.share-menu{position:absolute;top:calc(100% + 7px);left:0;z-index:12;width:238px;max-width:calc(100vw - 45px);padding:5px;background:#fff;border:1px solid var(--border);border-radius:5px;box-shadow:0 13px 25px rgba(8,35,51,.18)}
.share-menu a,.share-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 9px;border:0;background:none;border-radius:3px;color:var(--ink);font:inherit;font-size:.78rem;font-weight:720;line-height:1.2;text-align:left;cursor:pointer}
.share-menu button[hidden]{display:none}
.share-menu a:hover,.share-menu button:hover{background:var(--mist-deep);color:var(--teal)}
.share-menu a:focus-visible,.share-menu button:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.share-menu svg{flex:none;color:var(--teal)}
.subscribe-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px}
.subscribe-row>span{color:var(--text-soft);font-size:.84rem}
.subscribe-row .calendar-action-large summary{background:#fff}
.detail-actions .share-action{margin-top:0}
.detail-actions .share-action summary{min-height:47px}
.home-tip{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:10px;max-width:520px;margin:0 auto;padding:12px 8px 12px 15px;background:var(--navy);color:#fff;border-radius:8px;box-shadow:0 14px 30px rgba(8,35,51,.32);font-size:.86rem;line-height:1.4;animation:home-tip-in .35s ease-out}
.home-tip p{flex:1;margin:0}
.home-tip strong{font-weight:760}
.home-tip-lead{display:block;margin-bottom:2px}
.home-tip-share{display:inline-flex;vertical-align:-4px;margin:0 2px;padding:2px 4px;border:1px solid rgba(255,255,255,.4);border-radius:5px}
.home-tip-close{flex:none;width:44px;height:44px;border:0;background:none;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer;border-radius:6px}
.home-tip-close:focus-visible{outline:3px solid var(--sky);outline-offset:1px}
@keyframes home-tip-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.home-tip{animation:none}}
.going-button{display:inline-flex;align-items:center;gap:11px;min-height:52px;margin-bottom:3px;padding:7px 20px 7px 15px;border:1px solid #9f4125;border-radius:7px;color:#fff;line-height:1.15;background:linear-gradient(180deg,#c6552e 0%,var(--copper-button) 25%,#b84b29 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 3px 0 var(--copper-button-hover),0 5px 9px rgba(0,0,0,.28);text-shadow:0 1px 0 rgba(120,40,15,.45);transition:transform .12s,box-shadow .12s,filter .12s}
.going-button svg{flex:none}
.going-button span{display:flex;flex-direction:column;gap:1px}
.going-button strong{font-size:1.06rem;font-weight:850}
.going-button small{font-size:.76rem;font-weight:680}
.going-button:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 4px 0 var(--copper-button-hover),0 8px 12px rgba(0,0,0,.3)}
.going-button:active{transform:translateY(3px);box-shadow:inset 0 1px 2px rgba(0,0,0,.25),0 0 0 var(--copper-button-hover),0 1px 3px rgba(0,0,0,.3)}
.going-button:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
@media (max-width:520px){.going-button{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.going-button{transition:none}.going-button:hover,.going-button:active{transform:none}}

/* A photo or flyer added to an event */
.event-photo{margin:0 0 26px}
.event-photo a{display:inline-block;max-width:100%;border-radius:8px;overflow:hidden;border:1px solid var(--border);box-shadow:0 8px 22px rgba(13,42,64,.12);background:#fff;line-height:0}
.event-photo img{display:block;width:auto;max-width:100%;height:auto;max-height:640px}
.photo-field input[type=file]{height:auto;padding:10px 12px}
.photo-preview{display:flex;gap:14px;align-items:center;margin-top:8px}
.photo-preview[hidden]{display:none}
.photo-preview img{width:96px;height:96px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:#fff;flex:none}
.photo-preview div{font-size:.88rem;color:var(--muted,#5b6b78)}

/* Following a shop or restaurant */
.shop-follow{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:14px}
.shop-follow .inline-form{margin:0}
.shop-follow-note{font-size:.85rem;color:var(--muted,#5b6b78)}
.shop-events{margin-top:14px;padding:12px 14px;border-left:4px solid var(--cat,var(--copper));background:#faf4ee;border-radius:0 6px 6px 0}
.shop-events ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.shop-events a{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.shop-events a strong{color:var(--ink)}
.shop-events a:hover strong,.shop-events a:focus-visible strong{text-decoration:underline}
.shop-events a span{font-size:.86rem;color:var(--muted,#5b6b78)}
.held-at{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;margin:22px 0;padding:16px 18px;border:1px solid var(--border);border-radius:8px;background:#fff}
.held-at strong{display:block;font-size:1.1rem}
.held-at p{margin:4px 0 0;font-size:.9rem;color:var(--muted,#5b6b78)}
.held-at .inline-form{margin:0}

/* Food guide: hours, price, filters, and what to eat near an event */
.place-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0 0 11px}
.place-price{font-weight:800;font-size:.82rem;color:var(--copper-dark);letter-spacing:.02em}
.open-badge{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:750;line-height:1.2;padding:3px 9px;border-radius:999px;background:#eef1f4;color:#46535f}
.open-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.open-badge[data-state="open"]{background:#e3f3e8;color:#17653a}
.open-badge[data-state="soon"]{background:#fdf0d5;color:#8a5200}
.open-badge[hidden]{display:none}
.place-card p.place-need{margin:0 0 11px;font-size:.84rem;color:var(--ink);font-weight:650}
.place-known{font-size:1.12rem;font-weight:600;color:var(--ink);margin:6px 0 10px}
.place-quick{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:14px}
.place-quick .place-price{font-size:1rem}
.place-quick .open-badge{font-size:.82rem}
.place-actions{margin:0 0 22px}
.place-actions .button svg{flex:none}
.feature-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0}
.feature-chips li{padding:5px 12px;border:1px solid var(--border);border-radius:999px;font-size:.84rem;font-weight:650;background:#fff}
.hours-block .open-badge{margin:2px 0 4px;align-self:flex-start}
.hours-table{width:100%;border-collapse:collapse;margin:6px 0 4px;font-size:.9rem}
.hours-table th,.hours-table td{padding:5px 0;text-align:left;font-weight:650;border-top:1px solid var(--line)}
.hours-table th{color:var(--muted);width:40%;font-weight:750}
.hours-block small{display:block;color:var(--muted);font-size:.78rem;line-height:1.4;margin-top:4px}
.food-filters{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:end;padding:16px 0 4px}
.food-filters .food-select select{min-width:150px}
.filter-chip{display:inline-flex;align-items:center;gap:7px;height:47px;padding:0 16px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-weight:750;cursor:pointer}
.filter-chip:hover,.filter-chip:focus-visible{border-color:var(--teal)}
.filter-chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
.open-note{margin:8px 0 0;font-size:.85rem;color:var(--muted)}
.open-note[hidden]{display:none}
.food-need-links{margin-top:10px}
.weekend-strip{margin:34px 0 8px;padding:20px 22px;border-radius:8px;background:var(--mist);border-top:3px solid var(--copper)}
.weekend-strip-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:8px 16px;margin-bottom:12px}
.weekend-strip h2{margin:0;font-size:1.45rem}
.weekend-strip h2 small{margin-left:6px;font-size:.9rem;font-weight:650;color:var(--muted)}
.weekend-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.weekend-list a{display:block;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:6px}
.weekend-list a:hover,.weekend-list a:focus-visible{border-color:var(--teal)}
.weekend-list strong{display:block;font-size:.98rem}
.weekend-list span{display:block;margin-top:2px;color:var(--muted);font-size:.84rem}
.eat-near{margin:26px 0 8px}
.eat-near h2{font-size:1.3rem;margin-bottom:6px}
.eat-hint{margin:0 0 12px;color:var(--muted);font-size:.9rem}
.coming-card{cursor:default}
.coming-card:hover{transform:none;box-shadow:none;border-color:var(--line)}
@media(max-width:650px){.food-filters .food-select{flex:1 1 150px}.food-filters .food-select select{width:0;min-width:0;flex:1}.filter-chip{flex:1 1 100%;justify-content:center}.weekend-strip{padding:16px}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid>div{min-width:0}.footer-grid a{overflow-wrap:anywhere}}

/* Tap-to-call */
.place-call{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;min-height:40px;margin:4px 0 12px;padding:8px 14px;border:1px solid var(--copper-dark);border-radius:999px;color:var(--copper-dark);font-size:.86rem;font-weight:750;background:#fff}
.place-call:hover,.place-call:focus-visible{background:var(--copper-dark);color:#fff}
.place-call svg{flex:none}
.place-site-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 10px}
.place-site-links a{display:inline-flex;align-items:center;gap:5px;min-height:44px;font-size:.86rem;font-weight:750;color:var(--teal)}
.place-site-links:empty{display:none}
.outdoor-detail section{margin:28px 0}
.outdoor-detail section h2{font-size:1.35rem;margin-bottom:12px}
.outdoor-detail section li{margin:8px 0;line-height:1.6}
.directory-related{padding-top:18px;border-top:1px solid var(--line)}
.weekend-list li{position:relative}
.eat-list li{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.eat-list .eat-call{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;color:var(--copper-dark);font-weight:750;font-size:.86rem}
.eat-list .eat-call:hover,.eat-list .eat-call:focus-visible{border-color:var(--copper-dark)}

/* Find Your People: Active groups / Looking for members switch, listing cards, applications */
.people-toggle{display:inline-flex;margin:18px 0 6px;padding:4px;border:1px solid var(--border);border-radius:999px;background:#fff;gap:2px}
.people-toggle a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;border-radius:999px;color:var(--ink);font-weight:750;font-size:.92rem}
.people-toggle a:hover{background:var(--line)}
.people-toggle a[aria-current=page]{background:var(--copper-dark);color:#fff}
.people-toggle a span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:rgba(0,0,0,.12);font-size:.76rem}
.people-toggle a[aria-current=page] span{background:rgba(255,255,255,.28)}
.looking-new{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--copper-dark);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.looking-filter{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--ink);font-size:.85rem;font-weight:700}
.looking-filter i{width:10px;height:10px;border-radius:50%;background:var(--cat)}
.looking-filter[aria-pressed=true]{border-color:var(--cat);box-shadow:inset 0 0 0 1px var(--cat)}
.looking-empty{margin-block:28px}
.apply-form{margin-top:26px}
.apply-form h2{grid-column:1/-1;margin:0 0 4px}
.applications{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:14px}
.application{padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}
.application-new{border-color:var(--copper-dark);box-shadow:inset 4px 0 0 var(--copper-dark)}
.application-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.application-head span{color:var(--muted);font-size:.85rem}
.application-contact{margin:8px 0;font-weight:700}
.application-detail{margin:8px 0 12px}
.application-detail dt{margin-top:8px;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.application-detail dd{margin:2px 0 0}
.application-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.application-actions .button{min-height:44px}
.group-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.group-card-head h2{margin:0}
@media(max-width:650px){.people-toggle{display:flex;width:100%}.people-toggle a{flex:1;justify-content:center;padding-inline:8px;font-size:.86rem}}

.shop-tag-filters{margin-top:10px}
.shop-tag-filters[hidden]{display:none}
.shop-tag-filters button{min-height:36px;font-size:.88rem}
.shop-tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px;padding:0}
.shop-tag-list li{padding:3px 10px;border-radius:999px;background:#eef3f6;color:var(--navy);font-size:.78rem;font-weight:700}
.header-mailbox{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;color:#fff;border-radius:6px;margin-bottom:3px}
.header-mailbox:hover{background:rgba(255,255,255,.12)}
.header-mailbox:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.mailbox-badge{position:absolute;top:-3px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#c6552e;color:#fff;font-size:.68rem;font-weight:800;line-height:17px;text-align:center;box-shadow:0 0 0 2px #0d2a40}
.mailbox-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mailbox-item{display:flex;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #d9e2e8;border-radius:8px;background:#fff}
.mailbox-item p{margin:4px 0 6px}
.mailbox-unread{border-color:#c6552e;border-left-width:4px}
.mailbox-date{color:#5b6b78;font-size:.85rem;white-space:nowrap}
.mailbox-empty{padding:18px 0}

/* Shop Local type and business pages */
.outdoor-card h3 a:hover,.outdoor-card h3 a:focus-visible{text-decoration:underline;text-decoration-color:var(--copper);text-underline-offset:4px}
.shop-browse{padding-top:34px;padding-bottom:12px}
.shop-browse h2{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:6px}
.shop-browse .tag-browse a span{color:var(--muted);font-weight:700;margin-left:3px;font-size:.74rem;letter-spacing:0;text-transform:none}
.shop-related{margin-top:30px}
.shop-related h2{font-size:1.35rem;margin-bottom:12px}
.shop-related ul{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}
.shop-related li a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.shop-related li a:hover,.shop-related li a:focus-visible{border-color:var(--teal)}
.shop-related li strong{font-size:1rem}
.shop-related li span{color:var(--text-soft);font-size:.88rem;line-height:1.4}


/* Long place names in "More ... around Bismarck" lists wrap instead of pushing the page wider than a phone */
.directory-related li,.directory-related a{min-width:0}
.directory-related a{white-space:normal;overflow-wrap:anywhere}
@media(max-width:650px){.detail-layout,.submit-layout{grid-template-columns:minmax(0,1fr)}.detail-layout>*{min-width:0}}

/* Shop Local guides, fuller business pages, the owners page and the home-page shop strip */
.shop-why{margin:0 0 10px;padding:8px 12px;border-left:3px solid var(--copper);background:var(--peach-tint);border-radius:0 5px 5px 0;font-size:.92rem;color:var(--text-soft);overflow-wrap:anywhere}
.shop-group-title{margin:28px 0 12px;font-size:1.3rem}
.shop-group-title:first-child{margin-top:0}
.shop-about{padding-top:30px;padding-bottom:10px}
.shop-about h2{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:10px}
.shop-about h3{margin:18px 0 6px;font-size:1.05rem}
.shop-about p{max-width:78ch}
.shop-about-facts,.shop-about-tips{margin:8px 0 0;padding-left:1.2em;max-width:78ch;color:var(--text-soft)}
.shop-about-facts li,.shop-about-tips li{margin-bottom:5px;overflow-wrap:anywhere}
.shop-browse-second{margin-top:24px}
.shop-offers-title{font-size:1.15rem;margin:20px 0 8px}
.shop-faq{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.shop-faq h2{font-size:1.35rem}
.shop-faq dl{margin:6px 0 0}
.shop-faq dt{margin-top:16px;font-weight:800}
.shop-faq dd{margin:4px 0 0;color:var(--text-soft);overflow-wrap:anywhere}
.faq-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px}
.shop-nearby{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.shop-nearby h2{font-size:1.35rem}
.shop-nearby h3{margin:12px 0 4px;font-size:1rem}
.shop-nearby ul{margin:0;padding-left:1.1em}
.shop-nearby li{overflow-wrap:anywhere}
.shop-guides{margin-top:22px;color:var(--text-soft);overflow-wrap:anywhere}
.shop-owner-box{margin-top:26px;padding:16px 18px;border:1px solid var(--border);border-radius:6px;background:var(--mist)}
.shop-owner-box h2{font-size:1.2rem;margin-bottom:6px}
.shop-owner-box p{max-width:62ch}
.nearby-shops{margin-top:4px}
.shop-teaser{padding-top:30px;padding-bottom:10px}
.shop-teaser h2{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:6px}
.home-shops{padding-top:42px;padding-bottom:8px}
.home-shop-list{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.home-shop-list li{min-width:0}
.home-shop-list a{display:flex;flex-direction:column;gap:4px;height:100%;padding:14px 16px;border:1px solid var(--line);border-radius:5px;background:#fff;transition:transform .18s,box-shadow .18s,border-color .18s}
.home-shop-list a:hover,.home-shop-list a:focus-visible{transform:translateY(-2px);border-color:var(--teal);box-shadow:0 10px 22px rgba(12,42,56,.1)}
.home-shop-list small{color:var(--copper-dark);font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.home-shop-list strong{font-size:1.08rem;line-height:1.25;overflow-wrap:anywhere}
.home-shop-list span{color:var(--muted);font-size:.86rem;line-height:1.4}
.owners-body{padding-top:28px;padding-bottom:44px;display:grid;gap:34px}
.owners-card{padding:22px;border:1px solid var(--border);border-radius:6px;background:#fff;box-shadow:var(--shadow)}
.owners-card h2{font-size:1.6rem;margin-bottom:8px}
.owners-card h3{margin:22px 0 6px;font-size:1.1rem}
.owners-card label{display:block;margin:14px 0 4px;font-weight:800}
.owners-card p{max-width:70ch;overflow-wrap:anywhere}
.owners-snippet{display:block;width:100%;padding:10px;border:1px solid var(--border);border-radius:5px;background:var(--mist);color:var(--ink);font:.84rem/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.owners-preview{margin:14px 0}
.owners-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:18px 28px;margin-top:14px}
.owners-list h3{margin-bottom:4px;font-size:1rem}
.owners-list ul{list-style:none;margin:0;padding:0}
.owners-list li{padding:3px 0;overflow-wrap:anywhere}
.owners-list a[aria-current]{font-weight:800;color:var(--teal)}
.owners-body h2{font-size:clamp(1.3rem,2vw,1.7rem)}
.owners-rules ul{max-width:78ch;color:var(--text-soft)}
/* Long guide and business names wrap on a phone instead of widening the page */
.shop-guides a,.shop-nearby a,.faq-links a,.shop-owner-box a.button{white-space:normal;overflow-wrap:anywhere}
.shop-guides .text-link{display:inline}

/* The other dates of a repeating event */
.more-dates{margin-top:24px}
.more-dates-all{margin:12px 0 0}

/* Preserve the full approved homepage panorama on every screen. */
.page-art.home-concert-art>img{aspect-ratio:auto;max-width:2011px}
.page-art>img[src*="-mural.webp"]{aspect-ratio:auto}


/* Keep the contact email on one line in the narrow phone footer. */
@media(max-width:650px){.footer-grid a[href^="mailto:"]{font-size:.84rem;white-space:nowrap}}

.shop-tag-list a{color:inherit;text-decoration:underline;text-underline-offset:3px}

.loop-home-band { padding-top: 32px; padding-bottom: 40px; }
.loop-empty { padding: 28px 0; }
.loop-empty h3 { font-size: 23px; margin-bottom: 10px; }
.loop-empty p { color: #49616e; }
.loop-tonight { margin-top: 40px; padding-top: 28px; border-top: 1px solid #d7e4e8; }
.loop-personal-layout, .loop-publisher-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
.loop-event-reason > span { display: block; color: #557268; font-size: 13px; margin-top: 14px; }
.loop-private { display: flex; align-items: center; gap: 8px; color: #557268; }
.loop-save-choice { margin: 24px 0; padding: 20px 0; border-top: 1px solid #d7e4e8; border-bottom: 1px solid #d7e4e8; }
.loop-save-choice form, .loop-list-create { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.loop-list-create { padding: 22px 0; }
.loop-list-create input { flex: 1; min-width: 180px; }
.loop-list-grid { margin-bottom: 32px; }
.loop-private-list { padding: 24px 0; border-bottom: 1px solid #d7e4e8; }
.loop-private-list h2 { font-size: 25px; margin: 0; }
.loop-saved-item, .loop-owned-update { display: flex; justify-content: space-between; align-items: start; gap: 20px; padding: 22px 0; border-top: 1px solid #e2ebee; }
.loop-saved-item p { color: #49616e; margin: 9px 0; }
.loop-claim-list { list-style: none; padding: 0; }
.loop-claim-list li { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 0; border-bottom: 1px solid #d7e4e8; }
.loop-settings { max-width: 850px; }
.loop-settings fieldset { border: 0; padding: 18px 0; margin: 0; }
.loop-settings legend { font-weight: 700; padding: 10px 0; }
.loop-check { display: flex; align-items: start; gap: 10px; padding: 10px 0; }
.loop-check input { width: 18px; height: 18px; flex: 0 0 18px; accent-color: #176f83; }
.loop-time-fields { display: flex; flex-wrap: wrap; gap: 20px; }
.loop-time-fields label { display: grid; gap: 8px; }
.loop-feedback { color: #225f46; background: #e9f4ed; padding: 14px; border-radius: 5px; }
.loop-error { color: #983c28; background: #fcebe5; padding: 14px; border-radius: 5px; }
.loop-page .event-list { min-width: 0; }
.loop-page .event-row { grid-template-columns: 62px minmax(0, 1fr) 20px; min-height: 100px; }
@media (max-width: 760px) {
  .loop-page { padding-top: 24px; padding-bottom: 40px; }
  .loop-page h1 { font-size: 32px; }
  .loop-personal-layout, .loop-publisher-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .loop-update { grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 20px 0; }
  .loop-update-mark { width: 34px; height: 34px; }
  .loop-update h3 { font-size: 21px; }
  .loop-tabs { gap: 6px 18px; font-size: 14px; }
  .loop-list-create { align-items: stretch; }
  .loop-list-create label { width: 100%; }
  .loop-toolbar form { width: 100%; }
  .loop-toolbar label { width: 100%; }
  .loop-toolbar select { flex: 1; min-width: 0; }
  .loop-private-list .section-heading { align-items: start; gap: 14px; }
}


/* Practical ordering, budget and appointment answers on listing pages. */
.visit-planning{margin:24px 0;padding:22px;background:var(--paper,#f6f4ef);border:1px solid var(--line);border-radius:12px}
.visit-planning h2{font-size:1.2rem;margin:0 0 14px;line-height:1.35}
.visit-planning dl{margin:0}
.visit-planning dt{font-weight:800;margin:16px 0 5px}
.visit-planning dd{margin:0;color:var(--text-soft);font-size:.95rem;line-height:1.65;overflow-wrap:anywhere}
.visit-planning-links{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}
.visit-planning .visit-planning-sources{font-size:.78rem;line-height:1.7;margin:18px 0 0;overflow-wrap:anywhere}
.visit-planning-sources .text-link{font-size:inherit;display:inline}
@media(max-width:600px){.visit-planning{padding:18px}.visit-planning h2{font-size:1.1rem}}
/* A neighbor's post: the photo leads, because that is the whole reason someone stopped to send it. */
.loop-posts { display: grid; gap: 4px; }
.loop-post { padding: 24px 0; border-bottom: 1px solid #d7e4e8; }
.loop-post[hidden] { display: none; }
.loop-post-photo { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 12px; margin-bottom: 14px; background: #eaf3f5; }
.loop-post-copy { min-width: 0; overflow-wrap: anywhere; }
.loop-post p { margin: 10px 0 16px; line-height: 1.6; white-space: pre-line; font-size: 17px; }
.loop-post .loop-report { color: #60717c; font-weight: 600; font-size: 14px; }
.loop-post-form .field input[type="file"] { display: block; margin-top: 8px; font: inherit; }
.loop-post-where { margin: 0 0 18px; color: #49616e; }
.loop-wire-rule { display: flex; gap: 9px; align-items: flex-start; margin: 0 0 20px; padding: 14px 16px; border-radius: 10px; background: #fdf3ed; color: #6b3a24; line-height: 1.5; }
.loop-wire-rule svg { flex: none; margin-top: 2px; }
.loop-wire-rule a { color: #9f4125; font-weight: 700; }
.loop-field-label { display: inline-flex; align-items: center; gap: 7px; }
.loop-post-as { margin: 0 0 18px; color: #49616e; }
.loop-post-as a { color: #096e83; font-weight: 700; margin-left: 8px; }
.loop-name-fields { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: 16px; }
.loop-complaint { padding: 22px 0 6px; }
.loop-complaint ul { margin: 12px 0 22px; padding-left: 20px; display: grid; gap: 10px; }
.loop-complaint li { line-height: 1.6; }
/* The copper thread, looped once. See-through until someone amplifies, then it fills in. */
.loop-mark { display: block; }
.loop-amplify { margin: 0; display: inline-flex; }
.loop-amplify-button, .loop-amplify-out { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px 5px 7px; border: 1px solid #d9e3e7; border-radius: 999px; background: none; color: #b0bec6; cursor: pointer; font: inherit; line-height: 1; transition: color .15s, border-color .15s, background-color .15s; }
.loop-amplify-out { text-decoration: none; }
.loop-amplify-button:hover, .loop-amplify-out:hover { color: #df7146; border-color: #f0b89c; background: #fdf3ed; }
.loop-amplify-button.is-on { color: #c4532d; border-color: #e8a384; background: #fdf3ed; }
.loop-amplify-count { font-size: 14px; font-weight: 700; color: #49616e; min-width: 6px; }
.loop-amplify-button.is-on .loop-amplify-count { color: #9f4125; }
.looped-in { margin: 6px 0 0; }
.looped-in-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px 6px 10px; border-radius: 999px; background: #fdf3ed; color: #9f4125; font-size: 14px; font-weight: 700; line-height: 1.3; }
.listing-posts { padding: 8px 0 48px; }
.listing-posts-head { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 8px; }
.listing-posts-head h2 { margin: 0; }
.looped-row { padding: 28px 0 4px; }
.looped-row h2 { font-size: 21px; margin-bottom: 14px; }
.looped-row-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 14px; }
.looped-row-list a { display: inline-flex; align-items: center; gap: 10px; padding: 9px 14px; border: 1px solid #e3ecef; border-radius: 12px; text-decoration: none; color: #102437; font-weight: 700; }
.looped-row-list a:hover { border-color: #f0b89c; background: #fdf3ed; }
.looped-row-list .looped-in { margin: 0; }
.looped-row-list .looped-in-badge { padding: 3px 9px 3px 7px; font-size: 13px; }
