*{box-sizing:border-box}
body{margin:0;background:#fffdf9;color:#1a1a1a;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button,a,input{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffaf00;outline-offset:4px}
.directory{max-width:1120px;margin:auto;padding:0 20px}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:24px 0}
.brand{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-decoration:none;color:inherit;font-weight:700}
.brand img{width:130px;height:36px;object-fit:contain}
.brand span{font-size:14px}
.location{font-size:14px;font-weight:600}
.location span{color:#ffaf00;font-size:15px;margin-right:7px}
.intro{padding:20px 0 26px}
h1{font-family:Georgia,serif;font-size:clamp(38px,8vw,64px);line-height:1.06;letter-spacing:-1.7px;margin:0}
h1 span{color:#ffaf00}
.intro p{color:#77716a;font-size:15px;line-height:1.6;margin:14px 0 0}
.search-box{display:flex;align-items:center;gap:12px;border:1px solid #ded7ce;border-radius:15px;padding:16px;background:white;color:#77716a}
.search-box input{width:100%;border:0;outline:0;background:transparent;color:#1a1a1a;min-width:0;font-size:14px}
.search-box input::placeholder{color:#888078}
.search-box:focus-within{border-color:#d69917;box-shadow:0 0 0 2px #ffaf0020}
.filters{display:flex;gap:10px;padding:18px 0 28px}
.filters button{border:0;border-radius:24px;background:#f2eee8;padding:11px 18px;cursor:pointer;font-size:13px;color:#1a1a1a}
.filters button.selected{background:#ffaf00;font-weight:600}
.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px}
h2{font-family:Georgia,serif;font-size:25px;margin:0;letter-spacing:-.5px}
#vendor-count{font-size:12px;color:#77716a}
.vendor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
.vendor-card{display:block;border:1px solid #eee7dd;border-radius:16px;overflow:hidden;background:white;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.vendor-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3c2a1010}
.vendor-cover{position:relative;aspect-ratio:1.45;background:var(--brand-bg,#f3eadb);display:flex;align-items:center;justify-content:center}
.cover-photo{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.vendor-logo{position:relative;width:64px;height:64px;border-radius:14px;object-fit:contain;background:white;padding:5px}
.has-cover .vendor-logo{position:absolute;bottom:10px;left:10px;width:48px;height:48px;border:2px solid white;padding:2px}
.brand-initials{font-family:Georgia,serif;font-size:38px;font-weight:700;color:#493c29}
.vendor-content{padding:12px}
.vendor-content h3{font-size:15px;line-height:1.35;margin:0 0 6px;overflow-wrap:anywhere}
.vendor-area{font-size:11px;line-height:1.4;color:#77716a;margin:0 0 10px;overflow-wrap:anywhere}
.vendor-status{display:inline-block;font-size:10px;padding:5px 9px;border-radius:20px;background:#e9f7e9;color:#247331}
.vendor-status.closed{background:#f2ece9;color:#806057}
.state{padding:35px 10px;text-align:center;color:#77716a;font-size:14px;line-height:1.6}
.retry{display:block;margin:0 auto 24px;border:0;border-radius:10px;background:#ffaf00;padding:12px 22px;cursor:pointer}
[hidden]{display:none!important}
footer{text-align:center;padding:42px 10px 28px;font-size:11px;color:#8b857c}
@media(min-width:700px){
.directory{padding:0 32px}
.intro{padding:30px 0}
.search-box{max-width:650px}
.vendor-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.vendor-content{padding:16px}
.vendor-content h3{font-size:18px}
.vendor-area{font-size:13px}
.vendor-status{font-size:11px}
.vendor-cover{aspect-ratio:1.6}
}
@media(prefers-reduced-motion:reduce){.vendor-card{transition:none}}
