.kgp{position:relative}
.kgp-grid{display:grid;grid-template-columns:repeat(var(--kgp-cols,2),minmax(0,1fr));gap:14px}
@media (max-width:1024px){.kgp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.kgp-grid{grid-template-columns:1fr}}

.kgp-item{border:0;background:none;padding:0;cursor:pointer;position:relative;overflow:hidden;border-radius:12px;min-height:170px;aspect-ratio:var(--kgp-thumb-ratio,4/3);box-shadow:0 8px 20px rgba(0,0,0,.08);transition:transform .2s ease,box-shadow .2s ease;text-align:left;display:block}
.kgp-item:focus{outline:2px solid rgba(31,111,235,.45);outline-offset:3px}
.kgp-item:hover,.kgp-item.kgp-is-active{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.12)}

.kgp-thumb{position:absolute;inset:0;background:#f3f4f6 center/cover no-repeat;filter:saturate(1.02);transition:transform .35s ease,filter .35s ease;will-change:transform,filter
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.kgp-thumb::after{
  content: '';
  position: absolute;
  inset: 0;
  background: rgb(var(--kgp-tint-rgb, 0,0,0));
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease;
}


/* Overlay title */
.kgp-overlay{position:absolute;left:0;right:0;bottom:0;padding:14px;background:linear-gradient(to top,rgba(var(--kgp-overlay-rgb,0,0,0),var(--kgp-overlay-alpha,.72)),rgba(var(--kgp-overlay-rgb,0,0,0),0)) !important;color:#fff;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;height:var(--kgp-overlay-height,35%) !important;align-items:flex-end;transition:opacity .18s ease,transform .18s ease}
.kgp-overlay>span{flex:1 1 100%;color:var(--kgp-title-color,#fff) !important;text-shadow:var(--kgp-title-shadow,none) !important}
.kgp-title{font-weight:700;font-size:16px;line-height:1.25}
.kgp-excerpt{font-size:13px;opacity:.92;line-height:1.35}

/* Overlay on hover */
.kgp-title-hover .kgp-overlay{opacity:0;transform:translateY(8px)}
.kgp-title-hover:hover .kgp-overlay{opacity:1;transform:translateY(0)}

/* Title below */
.kgp-title-below{overflow:visible;min-height:0;aspect-ratio:auto}
.kgp-title-below .kgp-thumb{position:relative;display:block;width:100%;aspect-ratio:var(--kgp-thumb-ratio,4/3);padding-top:0;border-radius:12px}
.kgp-title-below .kgp-overlay{display:none}
.kgp-below{position:relative;display:block;padding:12px 12px 14px;background:#fff;border-radius:0 0 12px 12px}
.kgp-title-below .kgp-title{color:#0f172a}
.kgp-title-below .kgp-excerpt{color:#334155;opacity:1}

/* Inline panel (inserted as a full-width row inside the grid) */
.kgp-inline-panel{grid-column:1 / -1;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.10);overflow:hidden;opacity:0;transform:translateY(6px);transition:opacity .22s ease,transform .22s ease}
.kgp-inline-panel.kgp-inline-open{opacity:1;transform:translateY(0)}
.kgp-inline-inner{padding:16px 18px}
.kgp-inline-head{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}
.kgp-inline-title{margin:0;font-size:18px;line-height:1.25}
.kgp-inline-close{width:auto;height:36px;padding:0 12px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:22px;line-height:0!important;color:#000}
.kgp-inline-body{font-size:15px;line-height:1.65}
.kgp-inline-body img{max-width:100%;height:auto}
.kgp-inline-foot{margin-top:14px;padding-top:12px;border-top:1px solid #e5e7eb;display:flex;gap:10px;align-items:center}
.kgp-inline-foot.kgp-cta-left{justify-content:space-between}
.kgp-inline-foot.kgp-cta-right{justify-content:flex-end}
.kgp-inline-body a,.kgp-modal__body a,.kgp-inline-link,.kgp-modal__link{color:var(--kgp-link-color,#1f6feb) !important}
.kgp-inline-link{font-weight:600;text-decoration:none}
.kgp-inline-link:hover,.kgp-modal__link:hover,.kgp-inline-body a:hover,.kgp-modal__body a:hover{text-decoration:underline}
.kgp-inline-cta{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:10px 14px;font-weight:800;text-decoration:none;color:#0f172a;box-shadow:0 8px 18px rgba(0,0,0,.06);transition:transform .18s ease,box-shadow .18s ease}
.kgp-inline-cta:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,0,0,.10)}

/* Accordion animation (height handled in JS) */
.kgp-inline-accordion{transition:opacity .22s ease}

/* Load More */
.kgp-load-more-wrap{display:flex;justify-content:center;margin-top:16px}
.kgp-load-more{border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:10px 16px;font-weight:700;cursor:pointer;box-shadow:0 8px 18px rgba(0,0,0,.06);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}
.kgp-load-more:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,0,0,.10)}
.kgp-load-more.is-loading{opacity:.7;cursor:wait}

/* Modal */
.kgp-modal{
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(15, 23, 42, .65);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.kgp-open .kgp-modal{
  display: flex;
}
.kgp-modal[hidden]{
  display: none !important;
}

.kgp-modal.is-open{display:flex;}

.kgp-modal[hidden]{display:none}
.kgp-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62);backdrop-filter:blur(2px)}
.kgp-modal__dialog{
  width: min(980px, 96vw);
  max-height: min(86vh, 980px);
  overflow: auto;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
  padding: 22px;
  position: relative;
}

@media (max-width:1024px){.kgp-modal__dialog{margin:3vh 14px}}

.kgp-modal__close{position:absolute;top:10px;right:12px;width:36px;height:36px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:22px;line-height:34px}
.kgp-modal__content{padding:22px 22px 18px}
.kgp-modal__title{margin:0 0 12px;font-size:22px;line-height:1.2}
.kgp-modal__body{font-size:15px;line-height:1.65}
.kgp-modal__body img{max-width:100%;height:auto}
.kgp-modal__footer{margin-top:14px;padding-top:12px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;align-items:center;gap:10px}
.kgp-modal__link{font-weight:600;text-decoration:none}

/* Animation effects */
.kgp-anim-fade .kgp-modal__dialog{opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease}
.kgp-anim-fade.kgp-open .kgp-modal__dialog{opacity:1;transform:translateY(0)}

.kgp-anim-slide .kgp-modal__dialog{opacity:0;transform:translateY(40px);transition:opacity .26s ease,transform .26s ease}
.kgp-anim-slide.kgp-open .kgp-modal__dialog{opacity:1;transform:translateY(0)}

.kgp-anim-zoom .kgp-modal__dialog{opacity:0;transform:scale(.96);transition:opacity .22s ease,transform .22s ease}
.kgp-anim-zoom.kgp-open .kgp-modal__dialog{opacity:1;transform:scale(1)}

.kgp-empty{padding:16px;border:1px dashed #cbd5e1;border-radius:12px;text-align:center;grid-column:1/-1}


/* Force close button styling from settings */
.kgp-inline-close,.kgp-modal__close{
  width:auto !important;
  height:var(--kgp-close-height,36px) !important;
  border-radius:var(--kgp-close-radius,10px) !important;
  border:var(--kgp-close-border-width,1px) solid var(--kgp-close-border-color,#e2e8f0) !important;
  background:var(--kgp-close-bg,#f8fafc) !important;
  cursor:pointer !important;
  font-size:var(--kgp-close-font-size,22px) !important;
  line-height:0 !important;
  color:var(--kgp-close-color,#000) !important;
  padding:0 var(--kgp-close-pad-x,12px) !important;
}


/* Thumbnail hover effects (per-grid) */
.kgp[data-thumb-effect="none"] .kgp-thumb{}

.kgp[data-thumb-effect="zoom"] .kgp-item:hover .kgp-thumb,
.kgp[data-thumb-effect="zoom"] .kgp-item.kgp-is-active .kgp-thumb{transform:scale(1.08)}

.kgp[data-thumb-effect="grayscale"] .kgp-thumb{filter:grayscale(1) saturate(1.02) contrast(1.02)}
.kgp[data-thumb-effect="grayscale"] .kgp-item:hover .kgp-thumb,
.kgp[data-thumb-effect="grayscale"] .kgp-item.kgp-is-active .kgp-thumb{filter:grayscale(0) saturate(1.06) contrast(1.02)}

.kgp[data-thumb-effect="grayscale_zoom"] .kgp-thumb{filter:grayscale(1) saturate(1.02) contrast(1.02)}
.kgp[data-thumb-effect="grayscale_zoom"] .kgp-item:hover .kgp-thumb,
.kgp[data-thumb-effect="grayscale_zoom"] .kgp-item.kgp-is-active .kgp-thumb{filter:grayscale(0) saturate(1.06) contrast(1.02);transform:scale(1.08)}

.kgp[data-thumb-effect="zoom_blur"] .kgp-thumb{filter:blur(2px) saturate(1.02) contrast(1.02);transform:scale(1.03)}
.kgp[data-thumb-effect="zoom_blur"] .kgp-item:hover .kgp-thumb,
.kgp[data-thumb-effect="zoom_blur"] .kgp-item.kgp-is-active .kgp-thumb{filter:blur(0) saturate(1.06) contrast(1.02);transform:scale(1.10)}

/* Tint effects */
.kgp[data-thumb-effect="tint"] .kgp-thumb::after{ opacity: var(--kgp-tint-alpha, 0) !important; }
.kgp[data-thumb-effect="tint"] .kgp-item:hover .kgp-thumb::after,
.kgp[data-thumb-effect="tint"] .kgp-item.kgp-is-active .kgp-thumb::after,
.kgp[data-thumb-effect="tint"] .kgp-item:focus-visible .kgp-thumb::after{ opacity: var(--kgp-tint-alpha-hover, 0) !important; }

.kgp[data-thumb-effect="grayscale_tint"] .kgp-thumb::after{ opacity: var(--kgp-tint-alpha, 0) !important; }
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item:hover .kgp-thumb,
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item.kgp-is-active .kgp-thumb,
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item:focus-visible .kgp-thumb{ filter: grayscale(100%) !important; }
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item:hover .kgp-thumb::after,
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item.kgp-is-active .kgp-thumb::after,
.kgp[data-thumb-effect="grayscale_tint"] .kgp-item:focus-visible .kgp-thumb::after{ opacity: var(--kgp-tint-alpha-hover, 0) !important; }