.calcco-gallery { --cg-cols:var(--cg-desktop,4); color:var(--cg-text,#111); }
.calcco-gallery *, .calcco-gallery *::before, .calcco-gallery *::after { box-sizing:border-box; }
.calcco-gallery .calcco-gallery__grid { position:relative; display:grid; grid-template-columns:repeat(var(--cg-cols),minmax(0,1fr)); align-items:start; gap:var(--cg-gap,20px); list-style:none; padding:0; margin:0; }
.calcco-gallery .calcco-gallery__item { list-style:none; margin:0; padding:0; min-width:0; }
.calcco-gallery.is-masonry .calcco-gallery__grid { display:block; }
.calcco-gallery.is-masonry .calcco-gallery__item { position:absolute; top:0; left:0; width:calc((100% - (var(--cg-cols) - 1)*var(--cg-gap,20px))/var(--cg-cols)); }
.calcco-gallery .calcco-gallery__link { display:block; position:relative; color:var(--cg-text,#111); text-decoration:none; isolation:isolate; touch-action:pan-y pinch-zoom; }
.calcco-gallery__media { display:block; position:relative; overflow:hidden; background:#eee; }
.calcco-gallery .calcco-gallery__primary { display:block; width:100%; height:auto; margin:0; }
.calcco-gallery .calcco-gallery__alternate { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; margin:0; opacity:0; transition:none; }
.calcco-gallery__placeholder { display:block; aspect-ratio:3/4; background:#eee; }
.calcco-gallery__info { display:flex; position:absolute; inset:0; isolation:isolate; align-items:center; justify-content:center; flex-direction:column; padding:clamp(8px,2vw,28px); text-align:center; opacity:0; transition:opacity .22s ease; overflow-wrap:anywhere; }
.calcco-gallery__info::before { content:none; }
.calcco-gallery .calcco-gallery__info { background:rgba(255,255,255,var(--cg-opacity,.85)); background:color-mix(in srgb,var(--cg-overlay,#fff) calc(var(--cg-opacity,.85) * 100%),transparent); z-index:2; }
/* Overscan the fading layer, then clip it to the card. Fractional masonry
   positions must not leave an uncovered pixel along the image edges. */
.calcco-gallery .calcco-gallery__link { overflow:hidden; border:0; padding:0; border-radius:0; }
.calcco-gallery .calcco-gallery__info { inset:-1px; border:0; border-radius:0; }
.calcco-gallery .calcco-gallery__primary,
.calcco-gallery .calcco-gallery__alternate { border:0; padding:0; border-radius:0; box-shadow:none; }
.calcco-gallery__title { display:block; max-width:20rem; font-family:CDRom,Palatino,Georgia,serif; font-size:clamp(14px,2vw,var(--cg-title,26px)); line-height:1.05; font-weight:400; }
.calcco-gallery__types { display:block; margin-top:.55rem; padding-top:0; border:0; font-family:AGReg,"Helvetica Neue",Arial,sans-serif; font-size:10px; line-height:1.4; text-transform:uppercase; letter-spacing:.14em; }
.calcco-gallery__link.is-active .calcco-gallery__info,
.calcco-gallery__link:focus-visible .calcco-gallery__info,
.calcco-gallery__link--empty .calcco-gallery__info { opacity:1; }
.calcco-gallery__link.is-active .calcco-gallery__alternate.is-ready,
.calcco-gallery__link:focus-visible .calcco-gallery__alternate.is-ready { opacity:1; }
.calcco-gallery__link:focus-visible { outline:3px solid currentColor; outline-offset:3px; }
@media (hover:hover) and (pointer:fine) {
 .calcco-gallery__link:hover .calcco-gallery__info,
 .calcco-gallery__link:hover .calcco-gallery__alternate.is-ready { opacity:1; }
}
.calcco-gallery__controls { display:flex; flex-direction:column; align-items:center; padding:28px 0 12px; }
.calcco-gallery__controls[hidden] { display:none; }
.calcco-gallery .calcco-gallery__more { font:inherit; color:inherit; background:transparent; border:1px solid currentColor; padding:12px 22px; cursor:pointer; }
.calcco-gallery .calcco-gallery__more[hidden] { display:none; }
.calcco-gallery__more:disabled { opacity:.6; cursor:wait; }
.calcco-gallery__status { margin:12px 0 0; font-size:14px; }
.calcco-gallery__status:empty { margin:0; }
@media (max-width:1100px) { .calcco-gallery { --cg-cols:var(--cg-tablet,3); } }
@media (max-width:767px) { .calcco-gallery { --cg-cols:var(--cg-mobile,2); } }
@media (prefers-reduced-motion:reduce) { .calcco-gallery__info, .calcco-gallery .calcco-gallery__alternate { transition:none; } }
@media (scripting:none) { .calcco-gallery__info { opacity:1; } }

.calcco-gallery .calcco-gallery__heading { margin:0; padding:0; font:inherit; line-height:1.15; color:inherit; text-transform:none; letter-spacing:normal; }
.calcco-gallery .calcco-gallery__taxonomy { margin:0; padding:0; font:inherit; color:inherit; }
