/* Vendor directory, detail pages, and homepage Local Spots. */
.vendors-section { background:#fff; border-bottom:7px solid #68b4df; }
.vendor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.vendor-card { color:inherit; text-decoration:none; display:block; min-width:0; }
.vendor-card-art { aspect-ratio:4/3; position:relative; overflow:hidden; background:#0b1015; }
.vendor-card-art img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1); transition:filter .25s, transform .25s; }
.vendor-card:hover .vendor-card-art img { filter:grayscale(0); transform:scale(1.03); }
.vendor-image-fallback { width:100%; height:100%; display:grid; place-content:center; text-align:center; background:linear-gradient(145deg,#0b1015,#2b546c); color:#77bde9; font:clamp(2rem,4vw,4rem)/.95 'Archivo Black',sans-serif; letter-spacing:-.08em; }
.vendor-card-info { position:relative; display:flex; flex-direction:column; gap:9px; min-height:120px; padding:16px 30px 16px 0; border-bottom:2px solid #0b1015; }
.vendor-kicker { color:#176a9e; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.vendor-card-info strong { font:clamp(1.2rem,2.5vw,2rem)/1.05 'Archivo Black',sans-serif; letter-spacing:-.05em; text-transform:uppercase; overflow-wrap:anywhere; }
.vendor-card-info small { font-size:.73rem; line-height:1.45; color:#4a606e; }
.vendor-card-arrow { position:absolute; right:3px; top:40px; font-size:1.4rem; color:#176a9e; }
.vendor-directory { margin-bottom:30px; }
.vendor-profile-cover { width:100%; aspect-ratio:16/7; max-height:540px; overflow:hidden; background:#0b1015; margin-bottom:38px; }
.vendor-profile-cover > img { width:100%; height:100%; object-fit:cover; display:block; }
.vendor-profile-cover .vendor-image-fallback { font-size:clamp(3rem,9vw,8rem); }
.vendor-profile > h1 { font:clamp(2.7rem,9vw,7rem)/.95 'Archivo Black',sans-serif; text-transform:uppercase; letter-spacing:-.065em; overflow-wrap:anywhere; margin:16px 0 48px; }
.vendor-profile-section { display:grid; grid-template-columns:minmax(150px,1fr) 2fr; gap:25px; padding:34px 0; border-top:2px solid #0b1015; }
.vendor-profile-section h2 { font:clamp(1.4rem,3vw,2rem)/1 'Archivo Black',sans-serif; margin:0; }
.vendor-about,.vendor-latest > p:not(.vendor-kicker) { white-space:pre-wrap; line-height:1.7; font-size:1.05rem; margin:0; max-width:710px; }
.vendor-latest { padding:24px; background:#e3eaf0; }
.vendor-latest h3 { font:clamp(1.4rem,3vw,2.2rem)/1.15 'Archivo Black',sans-serif; margin:12px 0; text-transform:uppercase; }
.vendor-latest a { display:inline-block; margin-top:24px; color:#176a9e; font-size:.75rem; font-weight:700; text-decoration:none; border-bottom:2px solid currentColor; }
.vendor-social-links { display:flex; gap:12px; flex-wrap:wrap; align-items:start; }
.vendor-social-links a { text-decoration:none; color:#0b1015; border:1px solid #0b1015; padding:12px 16px; font-size:.75rem; font-weight:700; }
.vendor-social-links a:hover { color:#fff; background:#0b1015; }
@media(max-width:760px) {
  .vendor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .vendor-card-info { padding-top:12px; gap:7px; }
  .vendor-card-info strong { font-size:1.2rem; }
  .vendor-card-info small { font-size:.69rem; }
  .vendor-profile-cover { aspect-ratio:4/3; margin-bottom:25px; }
  .vendor-profile-section { grid-template-columns:1fr; gap:17px; }
}
@media(max-width:480px) {
  .vendor-grid-home { grid-template-columns:1fr; }
  .vendor-directory { grid-template-columns:1fr; }
  .vendor-card-art { aspect-ratio:16/9; }
}
@media(prefers-reduced-motion:reduce) {
  .vendor-card-art img { transition:none; }
}

.vendor-card-link { color:inherit; text-decoration:none; display:block; }
.vendor-card-video { padding:0 0 15px; }
.vendor-card-video iframe,.vendor-video-preview { display:block; width:100%; aspect-ratio:16/9; border:0; background:#0b1015; }
.vendor-video-preview { position:relative; padding:0; cursor:pointer; overflow:hidden; }
.vendor-video-preview img { width:100%; height:100%; object-fit:cover; }
.vendor-video-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:#176a9e; color:white; border-radius:8px; padding:12px 20px; font-size:1.4rem; }
.vendor-card-video > small { display:block; padding-top:8px; font-size:.74rem; }
.vendor-video-links { display:flex; flex-direction:column; align-items:flex-start; gap:15px; }
.vendor-video-links a { color:#176a9e; font-weight:700; text-decoration:none; }
.vendor-video-links button { cursor:pointer; padding:10px 15px; border:1px solid #0b1015; background:transparent; font-weight:700; }
