/* CHANNMAS v1.2.16: full-bleed mixed image + video masonry showcase. */
.chm-gallery-section{--chm-gallery-gap:12px;position:relative;isolation:isolate;padding:clamp(57px,6vw,95px) 0 76px;background:var(--bg);border-top:1px solid var(--outline);color:var(--ink);overflow:hidden}
.chm-gallery-head{width:min(1520px,calc(100% - 64px));margin:0 auto 28px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.chm-gallery-eyebrow{color:var(--jade);font-size:10px;font-weight:800;letter-spacing:.17em;margin:0 0 13px}
.chm-gallery-head h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2rem,3.5vw,3.9rem);letter-spacing:-.055em;line-height:1.13;margin:0 0 11px;color:var(--ink)}
.chm-gallery-lead{font-size:clamp(.89rem,1.1vw,1.03rem);color:var(--muted);max-width:720px;line-height:1.6;margin:0}
.chm-gallery-portfolio,.chm-gallery-cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;border:1px solid var(--outline);border-radius:40px;padding:13px 18px;color:var(--ink);font-weight:800;font-size:.83rem;background:transparent;transition:background .2s,transform .2s}
.chm-gallery-portfolio:hover,.chm-gallery-cta:hover{background:var(--surface-soft);transform:translateY(-2px)}
.chm-gallery-masonry{width:calc(100% - 40px);margin:0 auto;columns:6;column-gap:var(--chm-gallery-gap);line-height:0}
.chm-gallery-tile{--chm-gallery-ratio:3 / 4;display:block;position:relative;width:100%;aspect-ratio:var(--chm-gallery-ratio);margin:0 0 var(--chm-gallery-gap);padding:0;border:0;border-radius:15px;overflow:hidden;background:#1b3229;color:#fff;cursor:default;break-inside:avoid;line-height:1.25;text-align:left;isolation:isolate;appearance:none;-webkit-appearance:none}
.chm-gallery-ratio-square{--chm-gallery-ratio:1 / 1}.chm-gallery-ratio-landscape{--chm-gallery-ratio:4 / 3}.chm-gallery-ratio-tall{--chm-gallery-ratio:2 / 3}
.chm-gallery-media{position:absolute;inset:0;display:block;overflow:hidden}
.chm-gallery-img,.chm-gallery-video-poster,.chm-gallery-video-thumb{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease,filter .45s ease}
.chm-gallery-tile:hover .chm-gallery-img:not(.chm-gallery-pan .chm-gallery-img),.chm-gallery-tile:focus-visible .chm-gallery-img:not(.chm-gallery-pan .chm-gallery-img),.chm-gallery-tile:hover .chm-gallery-video-poster{transform:scale(1.045)}
.chm-gallery-tile.chm-gallery-pan .chm-gallery-img{position:absolute;width:100%;height:auto;min-height:100%;object-fit:initial;top:0;left:0;transform:translateY(0)}
.chm-gallery-tile.chm-gallery-pan.chm-gallery-pannable.is-visible .chm-gallery-img{animation:chm-gallery-internal-pan var(--chm-pan-duration,14s) ease-in-out infinite alternate}
@keyframes chm-gallery-internal-pan{0%,12%{transform:translateY(0)}88%,100%{transform:translateY(var(--chm-pan-distance,0px))}}
.chm-gallery-tile::after{position:absolute;inset:15% 0 0;content:"";z-index:1;pointer-events:none;background:linear-gradient(0deg,rgba(3,13,11,.78),transparent 79%);opacity:.42;transition:opacity .32s ease}
.chm-gallery-tile:hover::after,.chm-gallery-tile:focus-visible::after{opacity:1}
.chm-gallery-overlay{position:absolute;bottom:0;left:0;right:0;z-index:2;display:flex;flex-direction:column;gap:4px;padding:12px 14px 16px;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none;text-shadow:0 1px 9px rgba(0,0,0,.35)}
.chm-gallery-tile:hover .chm-gallery-overlay,.chm-gallery-tile:focus-visible .chm-gallery-overlay{opacity:1;transform:none}
.chm-gallery-category{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#b2f0cf;font-weight:850}.chm-gallery-title{font-size:clamp(.79rem,1.02vw,1.1rem);line-height:1.3;font-weight:800;letter-spacing:-.02em}
.chm-gallery-format{position:absolute;z-index:2;top:10px;right:10px;width:25px;height:25px;display:grid;place-items:center;border-radius:9px;color:#e8f4ef;background:rgba(8,28,24,.35);backdrop-filter:blur(9px);pointer-events:none}
.chm-gallery-play{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);width:45px;height:45px;display:grid;place-items:center;color:white;border:1px solid rgba(255,255,255,.6);background:rgba(5,23,18,.45);border-radius:50%;backdrop-filter:blur(5px)}
.chm-gallery-tile:focus-visible{outline:3px solid var(--jade);outline-offset:3px;z-index:4}
.chm-gallery-caption{font-size:.75rem;color:var(--muted);width:calc(100% - 48px);margin:12px auto 0;text-align:right}
.chm-gallery-footer{text-align:center;margin:25px auto 0}.chm-gallery-cta{background:var(--green-2);border-color:var(--green-2);color:white;padding:14px 21px}.chm-gallery-cta:hover{background:var(--green);color:white}
@media(max-width:1350px){.chm-gallery-masonry{columns:5}.chm-gallery-tile{border-radius:13px}}
@media(max-width:1050px){.chm-gallery-masonry{columns:4}}
@media(max-width:790px){.chm-gallery-masonry{columns:3}.chm-gallery-head{width:calc(100% - 36px);align-items:flex-start;flex-direction:column}.chm-gallery-section{padding:55px 0}.chm-gallery-portfolio{display:none}.chm-gallery-masonry{width:calc(100% - 22px);--chm-gallery-gap:9px}.chm-gallery-tile{border-radius:12px}.chm-gallery-overlay{opacity:1;transform:none;padding:10px}.chm-gallery-tile::after{opacity:.72}}
@media(prefers-reduced-motion:reduce){.chm-gallery-tile.chm-gallery-pannable .chm-gallery-img{animation:none!important}.chm-gallery-img,.chm-gallery-tile::after,.chm-gallery-overlay,.chm-gallery-portfolio,.chm-gallery-cta{transition:none!important}}

/* v1.2.17: gap-free, evenly filled responsive columns. The JS enhancement builds
   accessible DOM-order columns and stretches cards according to their chosen ratio. */
.chm-gallery-masonry.is-packed{display:grid;grid-template-columns:repeat(var(--chm-gallery-cols,6),minmax(0,1fr));column-gap:var(--chm-gallery-gap);columns:auto;align-items:stretch}
.chm-gallery-masonry.is-packed .chm-gallery-column{display:flex;flex-direction:column;gap:var(--chm-gallery-gap);min-width:0;height:var(--chm-gallery-height);min-height:0}
.chm-gallery-masonry.is-packed .chm-gallery-tile{width:100%;height:auto;min-height:0;aspect-ratio:auto;margin:0;flex:var(--chm-gallery-weight,1) 1 0%;position:relative}
.chm-gallery-tile{box-sizing:border-box;text-decoration:none!important}
.chm-gallery-tile:where(article){cursor:default}
.chm-gallery-tile:where(a){cursor:pointer}
.chm-gallery-tile:where(a):focus-visible{outline:3px solid var(--jade);outline-offset:3px;z-index:4}
.chm-gallery-tile-video{cursor:default}
.chm-gallery-video-player{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;z-index:2;cursor:pointer;background:#091915}
.chm-gallery-tile-video .chm-gallery-overlay{bottom:38px;pointer-events:none;z-index:3}
.chm-gallery-tile-video .chm-gallery-format{z-index:4}
.chm-gallery-tile-video .chm-gallery-project-link{position:absolute;z-index:5;left:10px;top:10px;background:rgba(11,35,27,.86);padding:6px 9px;border:1px solid #ffffff80;border-radius:8px;color:#fff;text-decoration:none;font-size:11px;font-weight:700;display:inline-flex;align-items:center;gap:5px}
.chm-gallery-tile-video .chm-gallery-project-link:hover{background:#166148}
.chm-gallery-tile-video::after{pointer-events:none;z-index:2}
@media(max-width:550px){.chm-gallery-tile-video .chm-gallery-overlay{bottom:33px}}
