/* SA MiniCMS v1.3.169 - Canonical Gallery Engine
   Same DOM/classes are used in admin preview and public output. */
.sa-gallery-engine{
  --sa-gallery-gap:18px;
  --sa-gallery-radius:26px;
  --sa-gallery-shadow:0 20px 60px rgba(15,23,42,.12);
  width:100%;max-width:100%;box-sizing:border-box;position:relative;
  gap:var(--sa-gallery-gap);margin:0;padding:0;isolation:isolate;
}
.sa-gallery-engine,.sa-gallery-engine *{box-sizing:border-box}
.sa-gallery-engine .sa-gallery-item{position:relative;margin:0;overflow:hidden;border:0;text-decoration:none;color:inherit;background:#fff;border-radius:var(--sa-gallery-radius);box-shadow:var(--sa-gallery-shadow);min-width:0;transition:transform .35s ease,box-shadow .35s ease,opacity .35s ease,filter .35s ease}
.sa-gallery-engine .sa-gallery-item img{display:block;width:100%;height:100%;object-fit:cover;background:#f8fafc;transition:transform .55s ease,filter .4s ease,opacity .4s ease}
.sa-gallery-engine .sa-gallery-item figcaption{position:absolute;z-index:5;left:12px;right:12px;bottom:12px;padding:10px 12px;border-radius:15px;background:linear-gradient(135deg,rgba(15,23,42,.78),rgba(15,118,110,.68));color:#fff;box-shadow:0 10px 28px rgba(15,23,42,.22);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);font-weight:900;line-height:1.2}
.sa-gallery-engine .sa-gallery-item figcaption span{display:block;margin-top:4px;font-size:12px;line-height:1.35;font-weight:650;opacity:.9}
.sa-gallery-engine.titles-hidden figcaption{display:none!important}
.sa-gallery-engine.effect-softzoom .sa-gallery-item:hover img{transform:scale(1.06)}
.sa-gallery-engine.effect-fade .sa-gallery-item img{opacity:.88;filter:saturate(.9)}
.sa-gallery-engine.effect-fade .sa-gallery-item:hover img{opacity:1;filter:saturate(1.08)}
.sa-gallery-engine.effect-slide .sa-gallery-item:hover img{transform:translateX(2.5%) scale(1.03)}
.sa-gallery-engine.effect-coverflow .sa-gallery-item:nth-child(odd){transform:perspective(900px) rotateY(-2deg)}
.sa-gallery-engine.effect-coverflow .sa-gallery-item:nth-child(even){transform:perspective(900px) rotateY(2deg)}
.sa-gallery-engine.effect-coverflow .sa-gallery-item:hover{transform:perspective(900px) rotateY(0) translateY(-4px)}
.sa-gallery-engine.effect-cinema .sa-gallery-item img{filter:contrast(1.06) saturate(.9)}
.sa-gallery-engine.effect-cinema .sa-gallery-item:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(2,6,23,.05),transparent 45%,rgba(2,6,23,.12))}
.sa-gallery-engine .sa-gallery-item:hover{transform:translateY(-4px);box-shadow:0 28px 80px rgba(15,23,42,.17);z-index:4}

.sa-gallery-engine.ratio-1-1 .sa-gallery-item{aspect-ratio:1/1}
.sa-gallery-engine.ratio-4-3 .sa-gallery-item{aspect-ratio:4/3}
.sa-gallery-engine.ratio-16-9 .sa-gallery-item{aspect-ratio:16/9}
.sa-gallery-engine.ratio-free .sa-gallery-item{aspect-ratio:auto}
.sa-gallery-engine.ratio-free .sa-gallery-item img{height:auto;object-fit:contain}
.sa-gallery-engine.ratio-custom .sa-gallery-item{width:min(100%,var(--sa-gallery-custom-width,150px));height:var(--sa-gallery-custom-height,150px);aspect-ratio:auto}
.sa-gallery-engine.ratio-custom .sa-gallery-item img{object-fit:contain}

/* Grid elegante */
.sa-gallery-engine.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:stretch}
.sa-gallery-engine.mode-grid .sa-gallery-item{min-height:260px}
.sa-gallery-engine.mode-grid .sa-gallery-item:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(2,6,23,.2))}

/* Masonry */
.sa-gallery-engine.mode-masonry{display:block;columns:3 280px;column-gap:var(--sa-gallery-gap)}
.sa-gallery-engine.mode-masonry .sa-gallery-item{display:block;break-inside:avoid;margin:0 0 var(--sa-gallery-gap);aspect-ratio:auto!important}
.sa-gallery-engine.mode-masonry .sa-gallery-item img{height:auto;min-height:210px;object-fit:cover}
.sa-gallery-engine.mode-masonry .sa-gallery-item:nth-child(3n+1) img{aspect-ratio:4/5}
.sa-gallery-engine.mode-masonry .sa-gallery-item:nth-child(3n+2) img{aspect-ratio:1/1}
.sa-gallery-engine.mode-masonry .sa-gallery-item:nth-child(3n) img{aspect-ratio:16/10}

/* Bento */
.sa-gallery-engine.mode-bento{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:120px;grid-auto-flow:dense}
.sa-gallery-engine.mode-bento .sa-gallery-item{grid-column:span 2;grid-row:span 2;min-height:240px}
.sa-gallery-engine.mode-bento .sa-gallery-item:nth-child(1){grid-column:span 4;grid-row:span 4}
.sa-gallery-engine.mode-bento .sa-gallery-item:nth-child(5n){grid-column:span 3;grid-row:span 3}

/* Mosaic */
.sa-gallery-engine.mode-mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:78px;grid-auto-flow:dense}
.sa-gallery-engine.mode-mosaic .sa-gallery-item{grid-column:span 3;grid-row:span 3}
.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(1){grid-column:span 6;grid-row:span 5}
.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(2){grid-column:span 3;grid-row:span 5}
.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(3){grid-column:span 3;grid-row:span 2}
.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(4n+4){grid-column:span 4;grid-row:span 3}

/* Editorial */
.sa-gallery-engine.mode-editorial{display:grid;grid-template-columns:1.15fr .85fr;align-items:stretch}
.sa-gallery-engine.mode-editorial .sa-gallery-item{min-height:260px}
.sa-gallery-engine.mode-editorial .sa-gallery-item:first-child{grid-row:span 2;min-height:540px}

/* Showcase */
.sa-gallery-engine.mode-showcase{display:grid;grid-template-columns:minmax(0,.82fr) minmax(300px,1.36fr) minmax(0,.82fr);align-items:center;perspective:1200px;padding:22px 0}
.sa-gallery-engine.mode-showcase .sa-gallery-item{min-height:300px;opacity:.88;filter:saturate(.9);transform:scale(.9)}
.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(3n+1){transform:scale(.9) rotateY(7deg)}
.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(3n){transform:scale(.9) rotateY(-7deg)}
.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(2){min-height:480px;transform:scale(1);opacity:1;filter:none;z-index:3;box-shadow:0 36px 95px rgba(15,23,42,.22)}
.sa-gallery-engine.mode-showcase .sa-gallery-item:hover{transform:translateY(-6px) scale(1.02);opacity:1;filter:none}

/* Filmstrip: interaction model = drag photos, click photo, drag slider */
.sa-gallery-engine.mode-filmstrip{display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:12px 3px 16px;cursor:grab;position:relative;scrollbar-width:none;-ms-overflow-style:none;touch-action:pan-y}
.sa-gallery-engine.mode-filmstrip::-webkit-scrollbar{display:none}
.sa-gallery-engine.mode-filmstrip .sa-gallery-item{flex:0 0 min(76vw,360px);scroll-snap-align:center;cursor:zoom-in}
.sa-gallery-engine.mode-filmstrip .sa-gallery-item img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}
.sa-gallery-engine.mode-filmstrip.is-dragging{cursor:grabbing;user-select:none;scroll-snap-type:none}
.sa-gallery-engine.mode-filmstrip.is-dragging .sa-gallery-item{cursor:grabbing}
.sa-filmstrip-control{--sa-filmstrip-progress:0%;width:100%;margin:4px 0 16px;padding:4px 6px 2px;user-select:none}
.sa-filmstrip-control[hidden]{display:none!important}
.sa-filmstrip-control-label{text-align:center;margin:0 0 8px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.025em}
.sa-filmstrip-rail{position:relative;height:10px;margin:0 10px;border-radius:999px;cursor:ew-resize;background:#e7edf1;border:1px solid rgba(100,116,139,.18);box-shadow:inset 0 1px 3px rgba(15,23,42,.08);outline:none}
.sa-filmstrip-rail:focus-visible{box-shadow:0 0 0 4px rgba(20,184,166,.16),inset 0 1px 3px rgba(15,23,42,.08)}
.sa-filmstrip-progress{position:absolute;left:0;top:0;bottom:0;width:var(--sa-filmstrip-progress);border-radius:inherit;background:linear-gradient(90deg,#0f766e,#2dd4bf);pointer-events:none}
.sa-filmstrip-thumb{position:absolute;left:var(--sa-filmstrip-progress);top:50%;width:26px;height:26px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:#14b8a6;box-shadow:0 5px 14px rgba(15,23,42,.22);pointer-events:none}

/* Canonical gallery lightbox shared by every gallery mode */
body.sa-lightbox-open{overflow:hidden}
.sa-gallery-lightbox{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;padding:clamp(12px,3vw,38px);background:rgba(2,6,23,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sa-gallery-lightbox.is-open{display:flex}
.sa-gallery-lightbox-card{position:relative;width:min(1180px,96vw);max-height:94vh;border-radius:28px;background:rgba(255,255,255,.97);overflow:hidden;box-shadow:0 38px 140px rgba(0,0,0,.5)}
.sa-gallery-lightbox-stage{display:grid;place-items:center;min-height:min(68vh,720px);background:#020617}
.sa-gallery-lightbox-stage img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain}
.sa-gallery-lightbox-caption{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:15px 20px;color:#0f172a}
.sa-gallery-lightbox-caption strong{display:block;font-size:17px}.sa-gallery-lightbox-caption span{display:block;color:#64748b;margin-top:3px}.sa-gallery-lightbox-count{color:#64748b;white-space:nowrap;font-weight:800}
.sa-gallery-lightbox-close,.sa-gallery-lightbox-prev,.sa-gallery-lightbox-next{position:absolute;z-index:4;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:#0f172a;box-shadow:0 12px 34px rgba(0,0,0,.24);cursor:pointer}
.sa-gallery-lightbox-close{top:14px;right:14px;width:42px;height:42px;font-size:26px;line-height:1}.sa-gallery-lightbox-prev,.sa-gallery-lightbox-next{top:50%;width:46px;height:46px;transform:translateY(-50%);font-size:32px;line-height:1}.sa-gallery-lightbox-prev{left:14px}.sa-gallery-lightbox-next{right:14px}
.sa-gallery-lightbox-close:hover,.sa-gallery-lightbox-prev:hover,.sa-gallery-lightbox-next:hover{background:#fff;transform:scale(1.04)}.sa-gallery-lightbox-prev:hover,.sa-gallery-lightbox-next:hover{transform:translateY(-50%) scale(1.04)}
@media(max-width:640px){.sa-gallery-lightbox{padding:8px}.sa-gallery-lightbox-card{border-radius:20px}.sa-gallery-lightbox-stage{min-height:54vh}.sa-gallery-lightbox-prev{left:8px}.sa-gallery-lightbox-next{right:8px}.sa-gallery-lightbox-caption{padding:12px 14px}.sa-filmstrip-thumb{width:24px;height:24px}}

/* Polaroid */
.sa-gallery-engine.mode-polaroid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));align-items:start;padding:30px;background:radial-gradient(circle at 18% 0%,rgba(20,184,166,.09),transparent 34%),linear-gradient(135deg,rgba(248,250,252,.92),rgba(236,253,245,.56));border-radius:34px}
.sa-gallery-engine.mode-polaroid .sa-gallery-item{overflow:visible;border-radius:12px;padding:12px 12px 62px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid rgba(15,23,42,.08);aspect-ratio:unset!important;min-height:300px;transform:rotate(var(--sa-polaroid-rot,0deg)) translateY(var(--sa-polaroid-y,0))}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:before{content:"";position:absolute;left:50%;top:-13px;width:64px;height:21px;transform:translateX(-50%) rotate(-2deg);border-radius:4px;background:rgba(255,255,255,.78);box-shadow:0 8px 20px rgba(15,23,42,.1);z-index:7}
.sa-gallery-engine.mode-polaroid .sa-gallery-item img{height:230px;border-radius:8px;object-fit:cover}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:nth-child(4n+1){--sa-polaroid-rot:-2.1deg;--sa-polaroid-y:8px}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:nth-child(4n+2){--sa-polaroid-rot:1.5deg;--sa-polaroid-y:-4px}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:nth-child(4n+3){--sa-polaroid-rot:-.7deg;--sa-polaroid-y:12px}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:nth-child(4n){--sa-polaroid-rot:2.2deg;--sa-polaroid-y:2px}
.sa-gallery-engine.mode-polaroid .sa-gallery-item:hover{transform:translateY(-8px) scale(1.025) rotate(0deg)}
.sa-gallery-engine.mode-polaroid .sa-gallery-item figcaption{background:transparent;color:#0f172a;box-shadow:none;backdrop-filter:none;text-align:center;bottom:10px}

/* Carousel */
.sa-gallery-engine.mode-carousel{display:block;overflow:hidden;min-height:240px}
.sa-gallery-engine.mode-carousel>.sa-gallery-item{display:none}
.sa-gallery-engine.mode-carousel>.sa-gallery-track{display:flex;flex-wrap:nowrap;gap:var(--sa-gallery-gap);width:max-content;max-width:none;will-change:transform}
.sa-gallery-engine.mode-carousel .sa-gallery-track>.sa-gallery-item{display:block;flex:0 0 var(--sa-gallery-item-width,340px);width:var(--sa-gallery-item-width,340px);min-height:280px}
.sa-gallery-engine.mode-carousel.is-static-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}
.sa-gallery-engine.mode-carousel.is-static-carousel>.sa-gallery-item{display:block;flex:0 0 min(78vw,340px);scroll-snap-align:center}

/* Slider */
.sa-gallery-engine.mode-slider{display:grid;grid-template-columns:1fr;position:relative;overflow:hidden;min-height:clamp(320px,48vw,660px);border-radius:32px;background:#020617}
.sa-gallery-engine.mode-slider .sa-gallery-item{grid-area:1/1;min-height:inherit;opacity:0;pointer-events:none;transform:scale(1.025);border-radius:32px;box-shadow:none;transition:opacity .6s ease,transform .8s ease}
.sa-gallery-engine.mode-slider .sa-gallery-item.is-slider-active{opacity:1;pointer-events:auto;transform:scale(1);z-index:2}
.sa-gallery-engine.mode-slider .sa-gallery-item img{min-height:inherit}
.sa-gallery-engine.mode-slider .sa-gallery-item figcaption{left:clamp(16px,4vw,44px);right:auto;bottom:clamp(16px,4vw,44px);max-width:min(620px,80%);padding:14px 18px}
.sa-gallery-slider-nav{position:absolute;z-index:10;right:18px;bottom:18px;display:flex;gap:8px}
.sa-gallery-slider-nav button{width:42px;height:42px;border:0;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(0,0,0,.16);font-weight:950;cursor:pointer}

.gallery-section{scroll-margin-top:120px}
.gallery-section .sa-gallery-engine{margin-top:24px}
.gallery-section[data-gallery-runtime="active"]{display:block}
.gallery-section .gallery-empty-public{padding:22px;border:1px dashed rgba(15,118,110,.28);border-radius:22px;color:#64748b;background:rgba(240,253,250,.55)}

@media(max-width:900px){
 .sa-gallery-engine.mode-showcase{grid-template-columns:1fr}
 .sa-gallery-engine.mode-showcase .sa-gallery-item,.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(2),.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(3n+1),.sa-gallery-engine.mode-showcase .sa-gallery-item:nth-child(3n){min-height:320px;transform:none;opacity:1;filter:none}
 .sa-gallery-engine.mode-bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:160px}
 .sa-gallery-engine.mode-bento .sa-gallery-item,.sa-gallery-engine.mode-bento .sa-gallery-item:nth-child(1),.sa-gallery-engine.mode-bento .sa-gallery-item:nth-child(5n){grid-column:span 1;grid-row:span 2}
 .sa-gallery-engine.mode-mosaic{grid-template-columns:repeat(6,1fr)}
 .sa-gallery-engine.mode-mosaic .sa-gallery-item,.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(1),.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(2),.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(3),.sa-gallery-engine.mode-mosaic .sa-gallery-item:nth-child(4n+4){grid-column:span 3;grid-row:span 3}
 .sa-gallery-engine.mode-editorial{grid-template-columns:1fr}
 .sa-gallery-engine.mode-editorial .sa-gallery-item:first-child{grid-row:auto;min-height:360px}
}
@media(max-width:640px){
 .sa-gallery-engine{--sa-gallery-radius:20px}
 .sa-gallery-engine.mode-grid,.sa-gallery-engine.mode-polaroid{grid-template-columns:1fr}
 .sa-gallery-engine.mode-masonry{columns:1}
 .sa-gallery-engine.mode-polaroid{padding:22px}
 .sa-gallery-engine.mode-carousel .sa-gallery-track>.sa-gallery-item{flex-basis:min(86vw,340px);width:min(86vw,340px)}
}


/* v1.3.174 - Robust lightbox async loading */
.sa-gallery-lightbox-stage{position:relative;overflow:hidden}
.sa-gallery-lightbox-stage img{opacity:0;transition:opacity .2s ease}
.sa-gallery-lightbox-stage img.is-ready{opacity:1}
.sa-gallery-lightbox-loader{position:absolute;inset:0;z-index:3;display:none;place-items:center;align-content:center;gap:14px;color:#e2e8f0;text-align:center;pointer-events:none}
.sa-gallery-lightbox.is-loading .sa-gallery-lightbox-loader{display:grid}
.sa-gallery-lightbox-loader span{width:42px;height:42px;border-radius:999px;border:4px solid rgba(255,255,255,.22);border-top-color:#2dd4bf;animation:saLightboxSpin .8s linear infinite}
.sa-gallery-lightbox-loader b{font-size:13px;letter-spacing:.02em}
.sa-gallery-lightbox-error{position:absolute;inset:0;z-index:3;display:grid;place-items:center;color:#cbd5e1;font-weight:900;text-align:center;padding:30px}
.sa-gallery-lightbox-error[hidden]{display:none!important}
@keyframes saLightboxSpin{to{transform:rotate(360deg)}}
