:root{--paper:#fbf6ea;--ink:#2e3528;--green:#405337;--soft:#eef0df;--line:#d8ccaf;--rust:#963f2d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,sans-serif}a{color:var(--green)}header,footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px max(5vw,calc((100vw - 1160px)/2));border-bottom:1px solid var(--line)}nav,.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav a,.brand,.button{text-decoration:none}.brand{white-space:nowrap;font:bold 25px Georgia,serif}.brand span{color:var(--rust)}.button{display:inline-block;border:1px solid var(--green);border-radius:8px;background:var(--green);color:white;font:600 15px system-ui;padding:11px 15px;cursor:pointer}.outline{color:var(--green);background:transparent}.button:hover{filter:brightness(1.15)}.button[hidden]{display:none}.hero{background:#f4ebd6;padding:60px max(5vw,calc((100vw - 1160px)/2));display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:34px}.hero svg{width:100%;max-height:355px}.eyebrow{color:var(--rust);letter-spacing:.16em;font-size:.76rem;font-weight:750;margin:0 0 12px}h1,h2,h3{font-family:Georgia,serif;line-height:1.08;margin:0}h1{font-size:clamp(3.2rem,7.5vw,6.2rem);letter-spacing:-.055em}h1 em{color:var(--green)}h2{font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.035em}h3{font-size:1.55rem}.intro{max-width:34rem;font-size:1.12rem}.wrap{max-width:1160px;width:90%;margin:auto}.wrap section{padding:46px 0;border-bottom:1px solid var(--line);scroll-margin-top:12px}.filters,.fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:18px}.fields{grid-template-columns:1fr 1fr;margin:0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card,.feature,form{border:1px solid var(--line);border-radius:14px;padding:22px;background:#fffaf0}.feature{margin-top:18px;background:var(--soft);display:flex;gap:24px;align-items:center;justify-content:space-between}.feature a{flex-shrink:0}.feature p{max-width:49ch;margin-bottom:0}.tag{display:inline-block;color:var(--rust);font-weight:700;font-size:.8rem;margin-bottom:11px}.card .actions{justify-content:space-between}.fine,#fair-count{font-size:.9rem;color:#53584b}form{max-width:700px;display:grid;gap:12px}label{display:grid;gap:5px;font-size:.9rem;font-weight:650}input,select,textarea{width:100%;font:inherit;color:inherit;background:white;border:1px solid #a79d87;border-radius:7px;padding:10px}textarea{resize:vertical}footer{border:0;background:#e9e8d5;flex-wrap:wrap} :focus-visible{outline:3px solid #ad5439;outline-offset:3px}@media(max-width:700px){header{flex-wrap:wrap;gap:10px}nav{order:3;width:100%;gap:18px}.hero{grid-template-columns:1fr;padding-block:35px}.hero svg{max-height:220px}.cards,.filters,.fields{grid-template-columns:1fr}.feature{align-items:flex-start;flex-direction:column}.wrap section{padding-block:34px}}
[hidden]{display:none!important}#maker-list{margin-top:18px}.card p{overflow-wrap:anywhere}.card ul{padding-left:1.3rem}#review-list{margin-top:18px}#draft-status{margin:0}
@media(min-width:701px) and (max-width:999px){#fairs .filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){#fairs .filters{grid-template-columns:2fr 1fr 1fr 1.2fr}}
@media(min-width:701px){.location-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}

.checkbox-filter{display:flex;align-items:center;gap:.5rem;align-self:end;min-height:44px}
.checkbox-filter input{width:auto;margin:0}

#single-fair-card{margin-top:18px;grid-template-columns:minmax(0,650px)}

.vendor-details{background:var(--soft);border-radius:8px;padding:12px 14px;margin:14px 0}
.vendor-details h4,.vendor-details p{margin:0 0 6px}
.vendor-details a{display:inline-block;margin-top:4px;font-weight:650}

.skip-link{position:absolute;left:12px;top:12px;padding:10px 14px;background:var(--paper);transform:translateY(-160%);z-index:2}
.skip-link:focus{transform:none}
.hero h1{font-size:clamp(2.65rem,5.6vw,5rem)}
.hero-actions,.hero-links,.vendor-shortcuts{gap:10px 18px}
.hero-links{display:flex;flex-wrap:wrap;align-items:center;margin:14px 0 0}
.text-button{border:0;background:none;color:var(--green);font:inherit;font-weight:650;text-decoration:underline;padding:8px 0;cursor:pointer}
.fair-search,.results-heading{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.fair-search label{flex:1 1 230px;max-width:540px}
.results-heading{justify-content:space-between;align-items:center;margin:8px 0}
#browse-location{scroll-margin-top:16px}
.region-shortcuts{margin-top:12px}
.region-shortcuts summary,.card-tools summary{width:fit-content;color:var(--green);font-weight:650;cursor:pointer;padding:6px 0}
.region-shortcuts .actions{margin-top:8px;gap:8px}
#fairs .fair-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
.vendor-shortcuts{margin:12px 0 20px}
.card .actions{justify-content:flex-start;gap:10px 15px}
.card h3 a{text-decoration-thickness:1px;text-underline-offset:3px}
.card-tools{margin-top:8px}
.card-tools .actions{margin-top:6px}
.event-source{font-weight:700}
#share-dialog{width:min(92vw,520px);max-height:90dvh;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink)}
#share-dialog::backdrop{background:#20251aaa}
#share-dialog h2{font-size:2rem}
#share-dialog .actions{margin-top:14px;gap:12px}
#share-dialog form{display:contents}
#share-dialog-status{margin-bottom:0}
@media(max-width:700px){
  .hero{gap:16px}
  .hero svg{max-height:120px;justify-self:start;width:auto;max-width:100%}
  .hero-actions .button{flex:1 1 auto;text-align:center}
  .location-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,135px),1fr))}
}

header{position:sticky;top:0;z-index:2;background:var(--paper);gap:8px 20px;padding-block:9px}
header nav{gap:4px}
header nav a{display:block;border-radius:8px;padding:8px 12px;font-size:.95rem;font-weight:650}
header nav a[aria-current="page"]{background:var(--green);color:#fff}
#directory .hero{padding-block:20px;gap:14px}
#directory .hero h1{font-size:clamp(2rem,4vw,3.5rem)}
#directory .hero svg{max-height:108px;justify-self:end;width:auto;max-width:100%}
#directory .wrap section{padding-block:22px;scroll-margin-top:105px}
#directory .hero-links{margin-top:4px}
.directory-filters{margin:10px 0;border:1px solid var(--line);border-radius:8px;padding:5px 12px;background:#fffaf0}
.directory-filters summary{width:fit-content;padding:5px 0;color:var(--green);font-weight:650;cursor:pointer}
.directory-filters[open]{padding-bottom:12px}
.directory-filters .filters{margin-top:8px}
.load-fairs{margin-top:16px}
@media(max-width:700px){
  header nav{justify-content:space-between}
  header nav a{padding-inline:8px}
  #directory .hero svg{display:none}
}

#directory .hero{align-items:start}
.welcome-picker{max-width:36rem}
.welcome-picker select{max-width:24rem}
#directory .hero svg{max-height:180px}
.fair-view-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:14px}
.fair-view-heading .actions{gap:4px 12px}
.fair-view-heading select{width:auto;font-weight:650;color:var(--green)}


#booth-alert-badge{color:var(--rust);font-size:.65em}
nav a[aria-current="page"] #booth-alert-badge{color:var(--paper)}

#directory .hero .welcome-picker{margin-top:16px}

#directory-intro.hero{display:block;padding-block:14px}
#directory-intro .welcome-picker{width:min(100%,640px);max-width:none;margin:0 auto}
#directory-intro h1{font-size:clamp(1.9rem,4vw,3rem);margin-bottom:10px}
.state-picker-heading{font-size:clamp(1.2rem,3vw,1.55rem)}
#directory #us-state-map{display:block;width:100%;height:auto;max-height:45svh;margin:5px auto}
#us-state-map path{fill:#dfe7d3;fill-rule:evenodd;stroke:#405337;stroke-width:1.15;vector-effect:non-scaling-stroke;cursor:pointer}
#us-state-map path:hover,#us-state-map path:focus{fill:#b7c799;stroke:#263421;stroke-width:2}
.state-select{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.state-select select{width:min(100%,220px);padding:7px}
.welcome-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;max-width:360px}
.welcome-regions button{min-height:44px;text-align:center}
#directory-intro .hero-links{margin-top:9px;font-size:.9rem}
#us-state-map .map-labels{pointer-events:none;fill:#354731;font:700 20px system-ui,sans-serif;text-anchor:middle;dominant-baseline:central}
