.glbsf-directory, .glbsf-modal { --navy:#0C2340; --gold:#C9A227; --teal:#0F6E56; --offwhite:#F5F1E8; --charcoal:#2C2C2A; }

.glbsf-filters { display:flex; flex-wrap:wrap; gap:16px; background:#fff; border:1px solid #EDE8DB; border-radius:14px; padding:20px; margin-bottom:16px; }
.glbsf-filters .glbs-field { display:flex; flex-direction:column; gap:6px; flex:1; min-width:180px; }
.glbsf-filters label { font-size:12px; font-weight:600; color:var(--navy); }
.glbsf-filters select, .glbsf-filters input { padding:10px 12px; border:1px solid #D3D1C7; border-radius:8px; background:var(--offwhite); font-size:14px; width:100%; box-sizing:border-box; }

.glbsf-count { font-size:13px; color:#6B6A64; margin:0 0 14px; }

.glbsf-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:20px; }
.glbsf-empty { grid-column:1/-1; text-align:center; color:#6B6A64; padding:40px 0; }

.glbsf-card { background:#fff; border:1px solid #EDE8DB; border-radius:14px; padding:22px; text-align:center; position:relative; transition:transform .25s ease, box-shadow .25s ease; }
.glbsf-card:hover { transform:translateY(-4px); box-shadow:0 16px 28px -16px rgba(12,35,64,0.22); }
.glbsf-badge { position:absolute; top:14px; right:14px; font-size:10px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; background:#F3E7C3; color:#7a5e12; padding:3px 9px; border-radius:20px; }

.glbsf-logo { width:64px; height:64px; border-radius:12px; object-fit:cover; margin:0 auto 14px; display:block; }
.glbsf-logo-placeholder { display:flex; align-items:center; justify-content:center; background:var(--navy); color:#fff; font-weight:700; font-size:22px; font-family:Georgia,serif; }

.glbsf-card h4 { margin:0 0 4px; font-size:15.5px; color:var(--navy); }
.glbsf-loc { font-size:12.5px; color:#6B6A64; margin:0 0 10px; }
.glbsf-tag { display:inline-block; font-size:10.5px; letter-spacing:.02em; background:#DCEFE8; color:var(--teal); padding:3px 9px; border-radius:20px; margin:0 3px 3px 0; }
.glbsf-tag-cap { background:#EDE8DB; color:var(--navy); text-transform:capitalize; }
.glbsf-short { font-size:12.5px; color:#6B6A64; margin:10px 0; }

.glbs-btn { display:inline-block; padding:9px 16px; border-radius:8px; border:1px solid var(--navy); background:#fff; color:var(--navy); font-size:12.5px; font-weight:600; cursor:pointer; margin-top:6px; }
.glbsf-view-btn:hover { background:var(--navy); color:#fff; }

.glbsf-modal { position:fixed; inset:0; background:rgba(12,35,64,0.6); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; }
.glbsf-modal-inner { background:#fff; border-radius:16px; padding:30px; max-width:560px; width:100%; max-height:86vh; overflow-y:auto; position:relative; }
.glbsf-modal-close { position:absolute; top:14px; right:16px; background:none; border:none; font-size:24px; cursor:pointer; color:var(--navy); }

.glbsf-modal-head { display:flex; align-items:center; gap:16px; margin-bottom:14px; }
.glbsf-modal-logo { width:56px; height:56px; border-radius:12px; object-fit:cover; }
.glbsf-modal-head h3 { margin:0 0 4px; color:var(--navy); font-size:19px; }

.glbsf-modal-tags { margin-bottom:14px; }
.glbsf-desc { font-size:14px; color:#4a4945; line-height:1.6; margin:0 0 20px; }

.glbsf-gallery-title { font-size:14px; color:var(--navy); margin:0 0 10px; }
.glbsf-gallery { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; -webkit-overflow-scrolling:touch; }
.glbsf-gallery-item { flex:0 0 auto; width:120px; scroll-snap-align:start; text-align:center; }
.glbsf-gallery-item img, .glbsf-gallery-noimg { width:120px; height:100px; object-fit:cover; border-radius:10px; background:linear-gradient(135deg,#EDE8DB,#E4E0D2); margin-bottom:6px; }
.glbsf-gallery-item span { font-size:11.5px; color:#6B6A64; display:block; }
.glbsf-gallery::-webkit-scrollbar { height:6px; }
.glbsf-gallery::-webkit-scrollbar-thumb { background:#D3D1C7; border-radius:10px; }

.glbsf-website { margin-top:16px; }
.glbsf-website a { color:var(--teal); font-weight:600; text-decoration:none; }

.glbsf-product-row { display:flex; gap:10px; margin-bottom:8px; }
.glbsf-product-row input { flex:1; }
