:root {
    --gm-primary: #0073aa; --gm-roundness: 8px;
    --gm-overlay: rgba(0,0,0,0.5); --gm-font-color: #fff; --gm-section-bg: #fff;
}
.gm-gallery-wrapper { padding: 30px 15px; position: relative; }
.gm-search-bar { display: flex; justify-content: center; gap: 10px; margin-bottom: 25px; }
.gm-search-input { padding: 10px 15px; border: 1px solid #ddd; border-radius: var(--gm-roundness); width: 300px; max-width: 100%; }
.gm-search-btn, .gm-load-more-btn, .gm-view-all-btn {
    padding: 10px 20px; background: var(--gm-primary); color: #fff; border: none;
    border-radius: var(--gm-roundness); cursor: pointer; text-decoration: none; display: inline-block;
}
.gm-btn-outline { background: transparent; border: 2px solid var(--gm-primary); color: var(--gm-primary); }
.gm-btn-rounded { border-radius: 50px; }

.gm-cards-grid { display: grid; grid-template-columns: repeat(var(--gm-columns,4),1fr); gap: 20px; }
.swiper-wrapper.gm-cards-grid { display: flex; }
.swiper-slide { flex-shrink: 0; width: 270px; }

/* FIXED CARD SIZE */
.gm-card { width: 100%; max-width: 270px; border-radius: var(--gm-roundness); overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.1); background:#fff; cursor:pointer; transition: transform .3s; margin: 0 auto; }
.gm-card:hover { transform: translateY(-5px); }
.gm-card-image { width: 100%; height: 220px; background-size: cover; background-position: center; position: relative; border-radius: var(--gm-roundness) var(--gm-roundness) 0 0; }

.gm-card-style-1 .gm-card-title { padding: 12px 15px; margin: 0; font-size: 16px; font-weight: 600; color: #222; background: #fff; }
.gm-card-style-2 .gm-card-image { border-radius: var(--gm-roundness); }
.gm-card-style-2 .gm-card-overlay { position: absolute; bottom:0; left:0; right:0; background: var(--gm-overlay); padding: 15px; }
.gm-card-style-2 .gm-card-title { color: var(--gm-font-color); margin: 0; font-size: 16px; font-weight: 600; }

.gm-view-more-wrap { text-align: center; margin-top: 30px; display: flex; justify-content: center; gap: 15px; }

/* POPUP */
.gm-popup-overlay { display: none; position: fixed; inset:0; background: rgba(0,0,0,.8); z-index: 99999; align-items: center; justify-content: center; }
.gm-popup-overlay.active { display: flex; }
.gm-popup-box { background: #fff; width: 90%; max-width: 800px; max-height: 90vh; overflow-y: auto; border-radius: 10px; padding: 30px; position: relative; }
.gm-popup-close { position: absolute; top:15px; right:20px; font-size:28px; cursor:pointer; }
.gm-popup-header { display:flex; align-items:center; justify-content:space-between; }
.gm-popup-title { font-size:28px; margin:0 0 10px; }
.gm-popup-caption { color:#666; margin-bottom:20px; }
.gm-popup-main-image-wrap { position: relative; margin-bottom:20px; }
.gm-popup-main-image { width:100%; border-radius:8px; max-height:400px; object-fit:cover; cursor: zoom-in; }

.gm-popup-whatsapp { display:flex; gap:15px; margin-bottom:20px; }
.gm-whatsapp-call, .gm-whatsapp-msg { background:#25D366; color:#fff; padding:10px 18px; border-radius:6px; text-decoration:none; font-weight:600; }

.gm-related-images { display:flex; flex-wrap:wrap; gap:10px; }
.gm-related-images img { width:90px; height:90px; object-fit:cover; border-radius:6px; cursor:pointer; transition: transform .2s; }
.gm-related-images img:hover { transform: scale(1.05); }

.gm-edit-icon, .gm-change-main-image, .gm-add-related-images, .gm-save-changes { background:#333; color:#fff; border:none; padding:8px 14px; border-radius:6px; cursor:pointer; font-size:13px; }

/* ZOOM */
.gm-zoom-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.95); z-index:999999; align-items:center; justify-content:center; }
.gm-zoom-overlay.active { display:flex; }
.gm-zoom-image { max-width:85%; max-height:85vh; border-radius:6px; }
.gm-zoom-close { position:absolute; top:20px; right:30px; color:#fff; font-size:35px; cursor:pointer; }
.gm-zoom-prev, .gm-zoom-next { position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:40px; cursor:pointer; padding:10px 20px; user-select:none; }
.gm-zoom-prev { left:20px; } .gm-zoom-next { right:20px; }

@media (max-width: 768px) {
    .gm-cards-grid { grid-template-columns: repeat(2,1fr); }
    .gm-search-input { width: 100%; }
}