:root{--gkl-purple:#6426a8;--gkl-green:#79aa41;--gkl-navy:#1e3062;--gkl-text:#3f414a;--gkl-soft:#f6f5f7}.gkl-community-gallery{width:min(100%,1180px);margin:0 auto;padding:12px 22px 60px;box-sizing:border-box;color:var(--gkl-text)}.gkl-cg-intro{max-width:850px;margin:0 auto 36px;text-align:center}.gkl-cg-intro p{font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.65;color:var(--gkl-text)}.gkl-cg-admin-preview{margin:0 auto 24px;padding:12px 16px;max-width:850px;border-left:4px solid var(--gkl-green);background:#f4f7ef;color:var(--gkl-text)}.gkl-cg-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 30px}.gkl-cg-filter{appearance:none;border:1px solid #d7d4dc;background:#fff;color:var(--gkl-navy);padding:9px 15px;border-radius:999px;font:inherit;font-weight:700;cursor:pointer}.gkl-cg-filter:hover,.gkl-cg-filter:focus-visible,.gkl-cg-filter.is-active{background:var(--gkl-purple);border-color:var(--gkl-purple);color:#fff}.gkl-cg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;align-items:start}.gkl-cg-card{overflow:hidden;background:#fff;border:1px solid #e3e0e6;border-radius:12px;box-shadow:0 9px 28px rgba(30,48,98,.08)}.gkl-cg-card[hidden]{display:none!important}.gkl-cg-card__photo{position:relative;display:block;width:100%;padding:0;border:0;background:#eee;cursor:pointer}.gkl-cg-card__photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.gkl-cg-card__photo:focus-visible{outline:3px solid var(--gkl-green);outline-offset:-3px}.gkl-cg-photo-count{position:absolute;right:12px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(30,48,98,.9);color:#fff;font-size:.78rem;font-weight:700}.gkl-cg-card__body{padding:20px 20px 22px}.gkl-cg-card__category{margin:0 0 8px;color:var(--gkl-green);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.gkl-cg-card h3{margin:0 0 8px;color:var(--gkl-purple);font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.18}.gkl-cg-card__meta{margin:0 0 12px;color:var(--gkl-navy);font-size:.88rem;font-weight:700;line-height:1.4}.gkl-cg-card p{margin:0 0 16px;color:var(--gkl-text);font-size:.96rem;line-height:1.55}.gkl-cg-story-link{appearance:none;border:0;background:transparent;color:var(--gkl-purple);padding:0;font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.gkl-cg-empty{padding:30px;text-align:center;background:var(--gkl-soft);border-radius:10px}.gkl-cg-modal[hidden]{display:none!important}.gkl-cg-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.gkl-cg-modal__backdrop{position:absolute;inset:0;background:rgba(15,18,28,.78)}.gkl-cg-modal__panel{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);width:min(1120px,100%);max-height:min(88vh,900px);overflow:hidden;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.35)}.gkl-cg-modal__media{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;background:#111}.gkl-cg-modal__image{display:block;max-width:100%;max-height:78vh;width:100%;height:100%;object-fit:contain}.gkl-cg-modal__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:54px;border:0;border-radius:8px;background:rgba(255,255,255,.88);color:var(--gkl-navy);font-size:36px;line-height:1;cursor:pointer}.gkl-cg-modal__prev{left:12px}.gkl-cg-modal__next{right:12px}.gkl-cg-modal__count{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);padding:5px 10px;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;font-size:.82rem}.gkl-cg-modal__close{position:absolute;right:12px;top:12px;z-index:5;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:var(--gkl-navy);box-shadow:0 2px 8px rgba(0,0,0,.2);font-size:28px;line-height:34px;cursor:pointer}.gkl-cg-modal__content{overflow:auto;padding:38px 30px 34px;color:var(--gkl-text)}.gkl-cg-modal__category{color:var(--gkl-green);font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.gkl-cg-modal__title{margin:8px 0;color:var(--gkl-purple);font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.1}.gkl-cg-modal__meta{margin:0 0 22px;color:var(--gkl-navy);font-weight:700}.gkl-cg-modal__story{font-size:1rem;line-height:1.65}.gkl-cg-modal__story p:first-child{margin-top:0}.gkl-cg-modal-open{overflow:hidden}.gkl-cg-modal button:focus-visible{outline:3px solid var(--gkl-green);outline-offset:2px}@media(max-width:900px){.gkl-cg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gkl-cg-modal__panel{grid-template-columns:1fr;overflow:auto;max-height:92vh}.gkl-cg-modal__media{min-height:320px}.gkl-cg-modal__image{max-height:55vh}.gkl-cg-modal__content{overflow:visible}}@media(max-width:620px){.gkl-community-gallery{padding:8px 16px 42px}.gkl-cg-grid{grid-template-columns:1fr;gap:20px}.gkl-cg-modal{padding:0}.gkl-cg-modal__panel{width:100%;max-height:100vh;height:100vh;border-radius:0}.gkl-cg-modal__media{min-height:42vh}.gkl-cg-modal__content{padding:30px 20px 40px}.gkl-cg-modal__close{position:fixed;right:12px;top:12px}.gkl-cg-modal__nav{width:40px;height:48px}}
/* v1.0.1 defensive contrast: light gallery surfaces always use dark text. */
.gkl-community-gallery .gkl-cg-card,
.gkl-community-gallery .gkl-cg-card__body,
.gkl-community-gallery .gkl-cg-modal__panel,
.gkl-community-gallery .gkl-cg-modal__content,
.gkl-community-gallery .gkl-cg-empty{color:#3f414a!important}
.gkl-community-gallery .gkl-cg-card__body{background:#fff!important}
.gkl-community-gallery .gkl-cg-card__body p,
.gkl-community-gallery .gkl-cg-modal__story,
.gkl-community-gallery .gkl-cg-modal__story p{color:#3f414a!important}
.gkl-community-gallery .gkl-cg-card h3,
.gkl-community-gallery .gkl-cg-modal__title{color:#6426a8!important}
.gkl-community-gallery .gkl-cg-card__meta,
.gkl-community-gallery .gkl-cg-modal__meta{color:#1e3062!important}


/* v1.0.3: keep the gallery story CTA contained inside every card.
   Strong selectors/important values prevent the campaign theme's global
   button rules from forcing an undersized button or overflowing text. */
.gkl-community-gallery .gkl-cg-card .gkl-cg-story-link {
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  margin: 2px 0 0 !important;
  padding: 10px 16px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #6426a8 !important;
  color: #ffffff !important;
  font: inherit !important;
  font-size: .95rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: normal !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  cursor: pointer !important;
}

.gkl-community-gallery .gkl-cg-card .gkl-cg-story-link:hover,
.gkl-community-gallery .gkl-cg-card .gkl-cg-story-link:focus-visible {
  background: #1e3062 !important;
  color: #ffffff !important;
}

@media (max-width: 620px) {
  .gkl-community-gallery .gkl-cg-card .gkl-cg-story-link {
    width: 100% !important;
  }
}
