.sh-gal{
  --navy:#092d63;--cyan:#01AAEB;--purple:#8A38F5;--gold:#C9A445;
  --ink:#222;--body:#444;--muted:#5c6978;--line:#dce4eb;--soft:#f3f7fa;
  --ease:cubic-bezier(.22,.61,.36,1);--t-fast:.25s var(--ease);
  --shadow-1:0 2px 10px rgba(9,45,99,.06);--shadow-2:0 18px 40px -18px rgba(6,29,64,.35);
  font-family:Roboto,Arial,sans-serif;font-size:16px;line-height:24px;color:var(--body);
  padding:92px 0;
}
.sh-gal *{box-sizing:border-box}
.sh-gal h2,.sh-gal b{font-family:"Work Sans",Arial,sans-serif;font-weight:700}
.sh-gal-wrap{width:min(1240px,calc(100% - 48px));margin:auto}

/* section head */
.sh-gal .sh-section-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:36px}
.sh-gal .sh-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:var(--cyan);margin-bottom:14px;display:flex;align-items:center;gap:12px}
.sh-gal .sh-kicker:before{content:"";width:26px;height:2px;background:var(--cyan)}
.sh-gal h2{font-size:32px;line-height:37px;color:var(--navy);margin:0;max-width:520px}
.sh-gal .sh-section-head p{font-size:16px;line-height:24px;color:var(--body);margin:0}

/* filters */
.sh-gal .sh-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:28px}
.sh-gal .sh-fchip{padding:12px 17px;border:1px solid var(--line);background:#fff;font:700 11px/1 Roboto,Arial,sans-serif;letter-spacing:.07em;color:#43536a;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast),transform var(--t-fast)}
.sh-gal .sh-fchip:hover{border-color:#b9cbdb;transform:translateY(-1px)}
.sh-gal .sh-fchip.sh-on{background:var(--navy);border-color:var(--navy);color:#fff}

/* grid */
.sh-gal .sh-gallery{display:grid;grid-template-columns:repeat(var(--sh-cols,3),1fr);gap:20px}
.sh-gal .sh-gcard{position:relative;display:block;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-1);overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast),opacity .45s var(--ease)}
.sh-gal .sh-gcard:before{content:"";position:absolute;left:0;right:100%;top:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--purple));z-index:3;transition:right .45s var(--ease)}
.sh-gal .sh-gcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}
.sh-gal .sh-gcard:hover:before{right:0}
.sh-gal .sh-gcard[hidden]{display:none}

.sh-gal .sh-gmedia{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#eef4f9,#dde8f1);overflow:hidden;display:grid;place-items:center}
.sh-gal .sh-gmedia img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.sh-gal .sh-gcard:hover .sh-gmedia img{transform:scale(1.05)}

.sh-gal .sh-ph-mark{position:relative;z-index:1;text-align:center;color:#9db2c6}
.sh-gal .sh-ph-mark svg{display:block;margin:0 auto 10px;opacity:.75}
.sh-gal .sh-ph-mark span{font-family:"Work Sans",Arial,sans-serif;font-size:10px;font-weight:600;letter-spacing:.16em}

.sh-gal .sh-gtag{position:absolute;z-index:2;top:14px;left:14px;padding:6px 10px;background:rgba(6,29,64,.9);color:#7fd8f5;font:700 9.5px/1 Roboto,Arial,sans-serif;letter-spacing:.14em}

/* reveal + stagger */
.sh-gal .sh-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sh-gal .sh-reveal.sh-in{opacity:1;transform:none}
.sh-gal .sh-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.sh-gal .sh-stagger.sh-in>*{opacity:1;transform:none}
.sh-gal .sh-stagger.sh-in>*:nth-child(2){transition-delay:.09s}
.sh-gal .sh-stagger.sh-in>*:nth-child(3){transition-delay:.18s}
.sh-gal .sh-stagger.sh-in>*:nth-child(4){transition-delay:.27s}
.sh-gal .sh-stagger.sh-in>*:nth-child(5){transition-delay:.36s}
.sh-gal .sh-stagger.sh-in>*:nth-child(6){transition-delay:.45s}

/* editor: always show (no scroll-triggered hide while editing) */
.elementor-editor-active .sh-gal .sh-reveal,
.elementor-editor-active .sh-gal .sh-stagger>*{opacity:1!important;transform:none!important}

@media(max-width:980px){
  .sh-gal .sh-section-head{grid-template-columns:1fr;gap:28px}
  .sh-gal .sh-gallery{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .sh-gal{padding:70px 0}
  .sh-gal-wrap{width:min(100% - 30px,1240px)}
  .sh-gal h2{font-size:27px;line-height:33px}
  .sh-gal .sh-gallery{grid-template-columns:1fr}
  .sh-gal .sh-filters{gap:7px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .sh-gal .sh-fchip{flex:none;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  .sh-gal .sh-reveal,.sh-gal .sh-stagger>*{opacity:1!important;transform:none!important}
}
