/* Layout & controls */
.gc-wrap { --gap:16px; margin-top:24px; font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; }
.gc-controls { display:grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
@media (max-width: 900px){ .gc-controls { grid-template-columns: 1fr; } }
.gc-control { display:flex; flex-direction:column; gap:8px; }
.gc-label { font-weight:700; color:#134e1f; }

/* Search row */
.gc-where { display:grid; grid-template-columns: 1fr auto; gap:8px; align-items:center; }
.gc-where input{ height:44px; padding:10px 12px; border:1px solid #9ca3af; border-radius:10px; }
.gc-btn{ height:44px; padding:0 14px; border:1px solid #9ca3af; background:#f8fafc; color:#0f172a; border-radius:10px; cursor:pointer; }
.gc-btn.is-secondary{ background:#eef2ff; }
.gc-btn:hover{ background:#e2e8f0; }

/* Chips */
.gc-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.gc-chip{ appearance:none; border:1px solid #d1d5db; background:#fff; color:#0f172a; padding:8px 12px; border-radius:999px; cursor:pointer; }
.gc-chip.is-active{ background:#e0f2fe; border-color:#38bdf8; }

/* Reset */
.gc-reset-row{ display:flex; justify-content:center; margin: 8px 0 16px; }

/* Map */
.gc-map-wrap.is-hidden{ display:none; }
.gc-map-wrap { margin-bottom: 24px; }
.gc-map{ height:600px; width:100%; border:2px solid #2563eb; border-radius:16px; overflow:hidden; }
.leaflet-container img{ max-width:none !important; }

/* Cards: 5 / 4 / 3 / 2 / 1 columns */
.gc-cards{ display:grid; gap:var(--gap); grid-template-columns: repeat(5, 1fr); }
@media (max-width: 1600px){ .gc-cards{ grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 1200px){ .gc-cards{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px) { .gc-cards{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .gc-cards{ grid-template-columns: 1fr; } }

/* Card visuals */
.gc-card.v{ display:grid; grid-template-rows:auto auto auto; border:1px solid #e5e7eb; border-radius:12px; overflow:hidden; background:#fff; }
.gc-img{ display:block; height:180px; background:#f3f4f6; }
.gc-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.gc-body{ padding:12px; }
.gc-title{ margin:4px 0 6px; font-size:18px; line-height:1.3; display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; }
.gc-badges{ display:inline-flex; gap:6px; }
.gc-badge{ display:inline-block; border-radius:999px; padding:2px 8px; font-size:12px; line-height:1.6; }
.gc-badge.sponsored { background:#fef3c7; color:#92400e; border:1px solid #f59e0b; }
.gc-badge.featured  { background:#e0e7ff; color:#3730a3; border:1px solid #6366f1; }
.gc-badge.popular   { background:#dcfce7; color:#065f46; border:1px solid #10b981; }
.gc-region{ color:#6b7280; font-size:13px; margin-bottom:6px; }
.gc-links{ display:flex; gap:8px; font-size:14px; }
.gc-links a{ color:#2563eb; text-decoration:none; }
.gc-links a:hover{ text-decoration:underline; }
.gc-bottom{ border-top:1px solid #f3f4f6; padding:10px 12px 12px; }
.gc-bottom-title{ font-weight:700; font-size:14px; margin-bottom:6px; }
.gc-events{ margin:0; padding-left:18px; }
.gc-events li{ margin:2px 0; }
.gc-events .gc-when{ color:#6b7280; font-size:12px; }
.gc-empty{ padding:16px; border:1px dashed #d1d5db; border-radius:12px; text-align:center; color:#6b7280; }
.gc-sentinel{ height:1px; }
