.age-wrap{width:100%}.age-gallery{--age-cols:4;display:grid;grid-template-columns:repeat(var(--age-cols),minmax(0,1fr));align-items:start}.age-item{position:relative;margin:0;overflow:hidden;cursor:pointer}.age-item>a{display:block}.age-image{display:block;width:100%;aspect-ratio:var(--age-ratio);object-fit:cover;transition:transform .4s ease,filter .4s ease}.age-wrap[style*="--age-ratio:auto"] .age-image{aspect-ratio:auto;height:auto}.age-overlay{position:absolute;inset:0;opacity:0;transition:opacity .35s ease;pointer-events:none}.age-hover-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.75);display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;opacity:0;transition:.35s ease;z-index:3;pointer-events:none}.age-hover-icon svg{width:1em;height:1em;fill:currentColor}.age-item:hover .age-overlay,.age-item:hover .age-hover-icon{opacity:1}.age-item:hover .age-hover-icon{transform:translate(-50%,-50%) scale(1)}.age-hover-zoom .age-item:hover .age-image{transform:scale(1.08)}.age-hover-zoomout .age-image{transform:scale(1.08)}.age-hover-zoomout .age-item:hover .age-image{transform:scale(1)}.age-hover-lift .age-item:hover .age-image{transform:translateY(-6px) scale(1.02)}.age-hover-blur .age-item:hover .age-image{filter:blur(2px);transform:scale(1.04)}.age-hover-gray .age-image{filter:grayscale(1)}.age-hover-gray .age-item:hover .age-image{filter:grayscale(0)}.age-meta{padding:10px 2px;display:flex;flex-direction:column}.age-layout-masonry{display:block;column-count:var(--age-cols)}.age-layout-masonry .age-item{break-inside:avoid;margin-bottom:var(--age-row-gap,20px)}.age-layout-justified{display:flex;flex-wrap:wrap}.age-layout-justified .age-item{flex:1 1 240px}.age-layout-mosaic .age-item:nth-child(7n+1){grid-column:span 2;grid-row:span 2}.age-layout-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth}.age-layout-carousel .age-item{min-width:calc((100% - 90px)/var(--age-cols));scroll-snap-align:start}.age-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.age-filter,.age-loadmore,.age-page{border:0;padding:9px 16px;cursor:pointer;border-radius:4px}.age-filter.is-active{color:#fff}.age-item.age-filtered{display:none!important}.age-load-wrap,.age-pagination{text-align:center;margin-top:24px}.age-pagination{display:flex;gap:8px;justify-content:center}.age-page.is-active{font-weight:700}.age-hidden-page{display:none!important}
.age-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;padding:35px}.age-lightbox.is-open{display:flex}.age-lb-stage{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.age-lb-image{max-width:90vw;max-height:82vh;object-fit:contain;transition:transform .2s ease}.age-lb-image.is-zoomed{transform:scale(1.5)}.age-lb-close,.age-lb-prev,.age-lb-next,.age-lb-full,.age-lb-download{position:absolute;z-index:3;border:0;background:transparent;color:#fff;font-size:34px;cursor:pointer}.age-lb-close{right:18px;top:10px}.age-lb-prev{left:18px;top:50%}.age-lb-next{right:18px;top:50%}.age-lb-full{right:65px;top:15px;font-size:23px}.age-lb-download{right:105px;top:15px;font-size:22px;text-decoration:none}.age-lb-counter,.age-lb-caption{position:absolute;color:#fff;bottom:14px}.age-lb-counter{left:24px}.age-lb-caption{left:50%;transform:translateX(-50%);max-width:65%;text-align:center}
@media(max-width:767px){.age-lightbox{padding:12px}.age-lb-prev{left:5px}.age-lb-next{right:5px}.age-layout-mosaic .age-item:nth-child(7n+1){grid-column:auto;grid-row:auto}}
/* Trust Circle Gallery v1.1 */
.age-loadmore{transition:background-color .25s ease,color .25s ease,transform .25s ease}.age-loadmore:hover{transform:translateY(-2px)}
.age-carousel-shell{position:relative}.age-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;line-height:1;transition:background-color .25s ease,color .25s ease,transform .25s ease}.age-carousel-arrow:hover{transform:translateY(-50%) scale(1.06)}.age-carousel-prev{left:12px}.age-carousel-next{right:12px}
.age-lightbox{opacity:0;visibility:hidden;display:flex;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}.age-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}.age-lightbox .age-lb-stage{transition:opacity .32s ease,transform .32s cubic-bezier(.2,.75,.25,1)}.age-lightbox.age-anim-zoom .age-lb-stage{opacity:0;transform:scale(.82)}.age-lightbox.age-anim-zoom.is-open .age-lb-stage{opacity:1;transform:scale(1)}.age-lightbox.age-anim-fade .age-lb-stage{opacity:0}.age-lightbox.age-anim-fade.is-open .age-lb-stage{opacity:1}.age-lightbox.age-anim-slide .age-lb-stage{opacity:0;transform:translateY(35px)}.age-lightbox.age-anim-slide.is-open .age-lb-stage{opacity:1;transform:translateY(0)}
.age-meta strong,.age-meta span{display:block}.age-meta strong+span{margin-top:5px}
/* Trust Circle Gallery v2 advanced layouts */
.age-tools{display:flex;gap:12px;align-items:center;margin:0 0 20px}.age-search,.age-sort{min-height:42px;padding:8px 12px;border:1px solid #ddd;border-radius:4px;background:#fff}.age-search{flex:1}.age-item{grid-column:span var(--age-cspan,1);grid-row:span var(--age-rspan,1)}
.age-layout-creative .age-item:nth-child(6n+1){grid-column:span 2;grid-row:span 2}.age-layout-metro{grid-auto-flow:dense}.age-layout-metro .age-item:nth-child(5n+1){grid-column:span 2}.age-layout-metro .age-item:nth-child(7n+3){grid-row:span 2}.age-layout-polaroid .age-item{background:#fff;padding:10px 10px 18px;box-shadow:0 8px 28px rgba(0,0,0,.12)}.age-layout-polaroid .age-item:nth-child(odd){transform:rotate(-1deg)}.age-layout-polaroid .age-item:nth-child(even){transform:rotate(1deg)}
.age-layout-expand{display:flex;min-height:420px}.age-layout-expand .age-item{flex:1;transition:flex .45s ease}.age-layout-expand .age-item:hover{flex:3}.age-layout-expand .age-image{height:100%;aspect-ratio:auto}.age-layout-accordion{display:flex;min-height:450px;overflow:hidden}.age-layout-accordion .age-item{flex:1;transition:flex .5s cubic-bezier(.2,.7,.2,1)}.age-layout-accordion .age-item:hover{flex:5}.age-layout-accordion .age-image{height:100%;aspect-ratio:auto}.age-layout-split{grid-template-columns:repeat(2,minmax(0,1fr))}.age-layout-split .age-item{display:grid;grid-template-columns:1.2fr 1fr;align-items:stretch}.age-layout-split .age-meta{position:static!important;opacity:1!important;transform:none!important;justify-content:center}
.age-layout-carousel,.age-layout-thumbnail,.age-layout-fullscreen,.age-layout-marquee{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}.age-layout-carousel::-webkit-scrollbar,.age-layout-thumbnail::-webkit-scrollbar,.age-layout-fullscreen::-webkit-scrollbar,.age-layout-marquee::-webkit-scrollbar{display:none}.age-layout-carousel .age-item,.age-layout-thumbnail .age-item{min-width:calc((100% - 90px)/var(--age-cols));scroll-snap-align:start}.age-layout-fullscreen .age-item{min-width:100%;height:min(75vh,760px);scroll-snap-align:start}.age-layout-fullscreen .age-image{height:100%;aspect-ratio:auto}.age-layout-marquee .age-item{min-width:280px}.age-layout-thumbnail .age-item:first-child{min-width:55%}
.age-carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}.age-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#bbb;cursor:pointer}.age-dot.is-active{background:#222}
.age-meta{position:relative;z-index:4}.age-content-overlay-center .age-meta,.age-content-overlay-bottom .age-meta,.age-content-overlay-top .age-meta,.age-content-slide-bottom .age-meta,.age-content-reveal .age-meta{position:absolute;left:0;right:0;color:#fff;padding:18px}.age-content-overlay-center .age-meta{top:50%;transform:translateY(-50%);text-align:center}.age-content-overlay-bottom .age-meta{bottom:0}.age-content-overlay-top .age-meta{top:0}.age-content-slide-bottom .age-meta{bottom:0;transform:translateY(105%);transition:transform .35s ease}.age-content-slide-bottom:hover .age-meta{transform:translateY(0)}.age-content-reveal .age-meta{bottom:0;opacity:0;transform:translateY(15px);transition:.35s ease}.age-content-reveal:hover .age-meta{opacity:1;transform:none}.age-badge{align-self:flex-start;font-style:normal;font-size:12px;padding:4px 8px;border-radius:99px;background:#111;color:#fff;margin-bottom:6px}.age-item-button{display:inline-flex;align-self:flex-start;margin-top:10px;padding:8px 14px;border-radius:4px;background:#111;color:#fff;text-decoration:none}
.age-enter-fade-up,.age-enter-zoom,.age-enter-left,.age-enter-right,.age-enter-rotate{opacity:0;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:var(--age-delay,0ms)}.age-enter-fade-up{transform:translateY(28px)}.age-enter-zoom{transform:scale(.92)}.age-enter-left{transform:translateX(-35px)}.age-enter-right{transform:translateX(35px)}.age-enter-rotate{transform:rotate(-3deg) scale(.95)}.age-entered{opacity:1!important;transform:none!important}
.age-lightbox.age-anim-left .age-lb-stage{opacity:0;transform:translateX(55px)}.age-lightbox.age-anim-left.is-open .age-lb-stage{opacity:1;transform:none}.age-lightbox.age-anim-flip .age-lb-stage{opacity:0;transform:perspective(900px) rotateY(55deg) scale(.9)}.age-lightbox.age-anim-flip.is-open .age-lb-stage{opacity:1;transform:perspective(900px) rotateY(0) scale(1)}
@media(max-width:767px){.age-layout-creative .age-item:nth-child(6n+1),.age-layout-metro .age-item{grid-column:auto;grid-row:auto}.age-layout-expand,.age-layout-accordion{min-height:320px}.age-layout-split{grid-template-columns:1fr}.age-layout-split .age-item{grid-template-columns:1fr}.age-tools{flex-direction:column;align-items:stretch}}
/* v2.1 video gallery */
.age-video-play{position:absolute;left:50%;top:50%;z-index:5;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding-left:4px;background:rgba(0,0,0,.72);color:#fff;font-size:22px;pointer-events:none;transition:transform .3s ease,background .3s ease}.age-item:hover .age-video-play{transform:translate(-50%,-50%) scale(1.1)}
.age-lb-video{display:none;width:min(90vw,1200px);height:min(75vh,675px)}.age-lb-video iframe,.age-lb-video video{display:block;width:100%;height:100%;border:0;background:#000;object-fit:contain}
@media(max-width:767px){.age-lb-video{width:94vw;height:53vw;max-height:75vh}.age-video-play{width:48px;height:48px;font-size:18px}}
/* v2.2 advanced layouts */
.age-lb-prev,.age-lb-next,.age-lb-close{display:flex;align-items:center;justify-content:center;transition:background-color .25s ease,color .25s ease,transform .25s ease}.age-lb-prev:hover,.age-lb-next:hover,.age-lb-close:hover{transform:scale(1.06)}
.age-layout-coverflow{display:flex;overflow-x:auto;gap:28px;perspective:1100px;scroll-snap-type:x mandatory;padding:35px 12%}.age-layout-coverflow .age-item{min-width:min(60vw,520px);scroll-snap-align:center;transform:rotateY(18deg) scale(.86);opacity:.65;transition:.45s ease}.age-layout-coverflow .age-item.age-cover-active{transform:rotateY(0) scale(1);opacity:1;z-index:2}.age-layout-stack{display:grid;place-items:center;min-height:520px}.age-layout-stack .age-item{grid-area:1/1;width:min(78%,700px);transform:translate(calc(var(--age-stack,0)*10px),calc(var(--age-stack,0)*10px)) rotate(calc(var(--age-stack,0)*1.5deg));box-shadow:0 18px 45px rgba(0,0,0,.18)}.age-layout-stack .age-item:hover{z-index:20;transform:translateY(-10px) rotate(0)}
.age-layout-beforeafter{display:block;position:relative;max-width:100%;overflow:hidden}.age-layout-beforeafter .age-item{display:none}.age-layout-beforeafter .age-item:nth-child(1),.age-layout-beforeafter .age-item:nth-child(2){display:block;position:absolute;inset:0}.age-layout-beforeafter .age-item:nth-child(1){position:relative}.age-layout-beforeafter .age-item:nth-child(2){clip-path:inset(0 0 0 var(--age-ba,50%));z-index:2}.age-layout-beforeafter .age-meta,.age-layout-beforeafter .age-overlay,.age-layout-beforeafter .age-hover-icon{display:none}.age-ba-range{position:absolute;z-index:8;left:5%;right:5%;bottom:24px;width:90%;cursor:ew-resize}.age-ba-line{position:absolute;z-index:7;top:0;bottom:0;left:var(--age-ba,50%);width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.age-layout-parallax .age-item{overflow:hidden}.age-layout-parallax .age-image{transform:translateY(var(--age-parallax-y,0px)) scale(1.12);will-change:transform}.age-layout-marquee{animation:ageMarquee var(--age-marquee-speed,25s) linear infinite}.age-layout-marquee:hover{animation-play-state:paused}@keyframes ageMarquee{0%{transform:translateX(0)}100%{transform:translateX(-35%)}}
.age-custom-cursor{position:fixed;z-index:1000001;pointer-events:none;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#111;color:#fff;font-size:11px;letter-spacing:.08em;opacity:0;transform:translate(-50%,-50%) scale(.7);transition:opacity .18s ease,transform .18s ease}.age-custom-cursor.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.age-video-placeholder{display:block;width:100%;aspect-ratio:var(--age-ratio);background:#151515}.age-video-play svg{width:1em;height:1em;fill:currentColor}

/* Pagination: numbered pages with Previous / Next */
.age-pagination{align-items:center;flex-wrap:wrap}.age-page{background:#0b8fb8;color:#07151b;min-width:30px;line-height:1.2}.age-page.is-active{background:#050505;color:#fff}.age-page:hover{filter:brightness(.92)}.age-page-prev,.age-page-next{min-width:auto}.age-page:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* v2.3.4: keep the last pagination page at the same gallery item size.
   Justified is flex-based, so a short final page could stretch its remaining
   item(s) across the full row. Under pagination/load-more we keep the same
   column geometry as the earlier pages. */
.age-paging-pagination.age-layout-justified,
.age-paging-loadmore.age-layout-justified{
  display:grid;
  grid-template-columns:repeat(var(--age-cols),minmax(0,1fr));
}
.age-paging-pagination.age-layout-justified .age-item,
.age-paging-loadmore.age-layout-justified .age-item{
  flex:none;
  min-width:0;
  width:auto;
  max-width:none;
}


/* v2.3.5 pagination last-page size lock
   Keeps an incomplete final page from stretching the remaining image(s).
   This is intentionally scoped to Pagination only. */
.age-paging-pagination.age-layout-justified{
  display:grid !important;
  grid-template-columns:repeat(var(--age-cols),minmax(0,1fr)) !important;
}
.age-paging-pagination.age-layout-justified .age-item{
  flex:none !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
}
/* Creative/Mosaic can enlarge particular nth-child items. On a short final
   pagination page, keep the remaining tiles at the normal column size. */
.age-paging-pagination.age-pagination-short-page.age-layout-creative .age-item:not(.age-hidden-page):not(.age-filtered),
.age-paging-pagination.age-pagination-short-page.age-layout-mosaic .age-item:not(.age-hidden-page):not(.age-filtered),
.age-paging-pagination.age-pagination-short-page.age-layout-metro .age-item:not(.age-hidden-page):not(.age-filtered){
  grid-column:span 1 !important;
  grid-row:span 1 !important;
}

/* v2.3.6: hard-lock pagination page geometry.
   A justified layout uses flex by default; on the final short page a single
   visible item can therefore expand to the full row. Pagination switches the
   gallery to a fixed column grid so the last item keeps the same tile width. */
.age-paging-pagination.age-layout-justified.age-pagination-active{
  display:grid !important;
  grid-template-columns:repeat(var(--age-cols),minmax(0,1fr)) !important;
  grid-auto-flow:row !important;
  justify-content:start !important;
  align-items:start !important;
}
.age-paging-pagination.age-layout-justified.age-pagination-active .age-item{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  flex:none !important;
}
.age-paging-pagination.age-layout-justified.age-pagination-short-page .age-item:not(.age-hidden-page):not(.age-filtered){
  grid-column:auto !important;
  grid-row:auto !important;
}

/* v2.3.7: disabled Previous/Next buttons stay in the requested position without being clickable. */
.age-pagination .age-page.is-disabled,.age-pagination .age-page:disabled{opacity:.55;cursor:default;filter:none;pointer-events:none}


/* v2.3.8: pagination page geometry fix.
   Pagination must never let a newly revealed item grow to the gallery width.
   Each visible pagination item occupies exactly one normal column. */
.age-paging-pagination.age-layout-justified.age-pagination-active{
  display:grid !important;
  grid-template-columns:repeat(var(--age-cols),minmax(0,1fr)) !important;
  grid-auto-flow:row !important;
  align-items:start !important;
  justify-content:start !important;
}
.age-paging-pagination.age-layout-justified.age-pagination-active > .age-item{
  grid-column:span 1 !important;
  grid-row:span 1 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  flex:none !important;
  box-sizing:border-box !important;
}
.age-paging-pagination.age-layout-justified.age-pagination-active > .age-item .age-image,
.age-paging-pagination.age-layout-justified.age-pagination-active > .age-item > a{
  width:100% !important;
  max-width:100% !important;
}

/* v2.3.9: hard lock justified pagination item width on every page change.
   This prevents the flex-based justified layout from expanding a single
   remaining item after Next/Previous is clicked. */
.age-wrap .age-gallery.age-layout-justified.age-paging-pagination.age-pagination-active {
  display: grid !important;
  grid-template-columns: repeat(var(--age-cols), minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  justify-content: start !important;
  align-content: start !important;
  align-items: start !important;
}
.age-wrap .age-gallery.age-layout-justified.age-paging-pagination.age-pagination-active > figure.age-item {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  flex: none !important;
  grid-column: span 1 !important;
  grid-row: span 1 !important;
}
.age-wrap .age-gallery.age-layout-justified.age-paging-pagination.age-pagination-active > figure.age-item > .age-image,
.age-wrap .age-gallery.age-layout-justified.age-paging-pagination.age-pagination-active > figure.age-item > a,
.age-wrap .age-gallery.age-layout-justified.age-paging-pagination.age-pagination-active > figure.age-item > a > .age-image {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}
