/* Shared Image Gallery: public pages inherit the existing website header/footer and dynamic brand colors. */
.cw-image-gallery{--gallery-primary:var(--cw-gallery-primary,#0a2d6d);--gallery-accent:var(--cw-gallery-accent,#00b4e6);--gallery-dark:var(--cw-gallery-dark,#08204e);--gallery-light:var(--cw-gallery-light,#eef8fc);font-family:inherit}
.cw-image-gallery{max-width:1240px;margin:0 auto;padding:clamp(28px,5vw,64px) 20px;color:#172033}
.cw-image-gallery__head{text-align:center;margin:0 auto 28px;max-width:760px}
.cw-image-gallery__eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb, var(--gallery-accent) 24%, white);background:var(--gallery-light);color:var(--gallery-primary);border-radius:999px;padding:7px 13px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.cw-image-gallery__title{font-size:clamp(26px,3vw,38px);line-height:1.2;margin:14px 0 8px;font-weight:800;letter-spacing:-.025em;color:var(--gallery-primary)}
.cw-image-gallery__description{font-size:15px;line-height:1.7;color:#64748b;margin:0}
.cw-image-gallery__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.cw-image-gallery__card{min-width:0;overflow:hidden;border:1px solid #e7edf4;border-radius:18px;background:#fff;box-shadow:0 5px 18px color-mix(in srgb, var(--gallery-primary) 8%, transparent);transition:transform .22s ease,box-shadow .22s ease}
.cw-image-gallery__card:hover{transform:translateY(-4px);box-shadow:0 12px 28px color-mix(in srgb, var(--gallery-primary) 14%, transparent)}
.cw-image-gallery__image-wrap{aspect-ratio:4/3;background:#f1f5f9;overflow:hidden;cursor:zoom-in}
.cw-image-gallery__image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.cw-image-gallery__card:hover .cw-image-gallery__image{transform:scale(1.035)}
.cw-image-gallery__caption{padding:12px 14px;font-size:14px;line-height:1.45;font-weight:650;color:#24324a;overflow-wrap:anywhere}
.cw-image-gallery__pagination{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:30px 0 0}
.cw-image-gallery__page{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border:1px solid #dce5ef;border-radius:12px;background:#fff;color:var(--gallery-primary);text-decoration:none;font-size:14px;font-weight:700}
.cw-image-gallery__page.is-active,.cw-image-gallery__page:hover{background:var(--gallery-primary);border-color:var(--gallery-primary);color:#fff}
.cw-image-gallery__empty{grid-column:1/-1;padding:42px 20px;border:1px dashed #cbd5e1;border-radius:18px;text-align:center;color:#64748b;background:var(--gallery-light)}
.cw-gallery-lightbox{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.88)}
.cw-gallery-lightbox.is-open{display:flex}.cw-gallery-lightbox img{max-width:min(1100px,95vw);max-height:88vh;object-fit:contain;border-radius:12px;box-shadow:0 18px 55px rgba(0,0,0,.25)}
.cw-gallery-lightbox__close{position:absolute;top:18px;right:20px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#0f172a;font-size:26px;cursor:pointer}
@media(max-width:900px){.cw-image-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
@media(max-width:640px){.cw-image-gallery{padding:32px 14px}.cw-image-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cw-image-gallery__card{border-radius:14px}.cw-image-gallery__caption{padding:10px;font-size:13px}.cw-image-gallery__description{font-size:14px}}
@media(max-width:360px){.cw-image-gallery__grid{grid-template-columns:1fr}}
