/* AR Campus Gallery v1.0.2 — data-driven gallery (WordPress Media Library).
   All Elementor control values arrive as CSS vars on {{WRAPPER}} and are
   consumed here with fallbacks. No control-written var is redeclared. */

.arcgal-root{font-family:'Inter',Arial,sans-serif; color:#4B5578; overflow-x:clip;}
.arcgal-root *{box-sizing:border-box;}

/* Header */
.arcgal-header{text-align:var(--arcgal-halign, center); max-width:720px; margin:0 auto var(--arcgal-hgap, 34px);}
.arcgal-eyebrow{display:inline-block; background:var(--arcgal-ebb, rgba(219,137,39,.14)); color:var(--arcgal-eb, #C1751F);
  font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:var(--arcgal-ebfs, 12.5px); font-weight:700; letter-spacing:2.2px;
  padding:7px 15px; border-radius:999px; margin-bottom:18px;}
.arcgal-title{font-family:'Plus Jakarta Sans',Arial,sans-serif; color:var(--arcgal-tc, #13183F);
  font-size:var(--arcgal-hfs, 36px); margin:0; line-height:1.18;}
.arcgal-acc{color:var(--arcgal-ac, #DB8927);}
.arcgal-sub{color:var(--arcgal-sc, #4B5578); font-size:var(--arcgal-sfs, 16.5px); line-height:1.65; margin:14px 0 0; overflow-wrap:break-word;}

/* Filters */
.arcgal-filters{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:var(--arcgal-fgap, 36px);}
.arcgal-filter{font-family:'Plus Jakarta Sans',Arial,sans-serif; font-weight:700; font-size:14px; padding:10px 22px;
  border-radius:999px; border:1.5px solid var(--arcgal-fbd, #E9E5DA); background:var(--arcgal-fb, #FFFFFF);
  color:var(--arcgal-fc, #13183F); cursor:pointer; transition:background .25s ease, color .25s ease, border-color .25s ease;}
.arcgal-filter:hover{border-color:#DB8927; color:#C1751F;}
.arcgal-filter.is-on{background:var(--arcgal-fob, #0A083B); border-color:var(--arcgal-fob, #0A083B); color:var(--arcgal-foc, #FFFFFF);}

/* Grid + tiles */
.arcgal-grid{display:grid; grid-template-columns:repeat(var(--arcgal-cols, 4), 1fr); gap:var(--arcgal-gap, 18px);}
.arcgal-tile{position:relative; border-radius:var(--arcgal-rad, 16px); overflow:hidden; cursor:pointer; margin:0;
  background:#F7F6F2; box-shadow:0 8px 26px rgba(10,8,59,.06);}
.arcgal-lb-on .arcgal-tile{cursor:zoom-in;}
.arcgal-tile img{width:100%; aspect-ratio:var(--arcgal-ar, 1 / 1); object-fit:cover; display:block; transition:transform .5s ease;}
.arcgal-grid.arcgal-zoom .arcgal-tile:hover img{transform:scale(1.07);}
.arcgal-tile figcaption{position:absolute; left:0; right:0; bottom:0; padding:40px 16px 13px; pointer-events:none;
  background:linear-gradient(transparent, rgba(10,8,59,.85)); color:var(--arcgal-cc, #FFFFFF);}
.arcgal-tile figcaption span{display:block; font-size:11.5px; font-weight:600; letter-spacing:1.4px; text-transform:uppercase;
  color:var(--arcgal-ccc, #F2B25C); margin-bottom:2px;}
.arcgal-tile figcaption b{display:block; font-family:'Plus Jakarta Sans',Arial,sans-serif; font-size:var(--arcgal-cfs, 15.5px);
  font-weight:700; line-height:1.3; overflow-wrap:break-word;}
.arcgal-tile.arcgal-hide{display:none;}

/* Entrance animation (JS adds .arcgal-pre, then .arcgal-in) */
.arcgal-tile.arcgal-pre{opacity:0; transition:opacity var(--arcgal-asp, 700ms) ease, transform var(--arcgal-asp, 700ms) ease;}
.arcgal-tile.arcgal-pre[data-anim="fade-up"]{transform:translateY(34px);}
.arcgal-tile.arcgal-pre[data-anim="fade-down"]{transform:translateY(-34px);}
.arcgal-tile.arcgal-pre[data-anim="slide-left"]{transform:translateX(42px);}
.arcgal-tile.arcgal-pre[data-anim="slide-right"]{transform:translateX(-42px);}
.arcgal-tile.arcgal-pre[data-anim="zoom"]{transform:scale(.9);}
.arcgal-tile.arcgal-in{opacity:1; transform:none;}

/* Editor hint when no photo has a category yet */
.arcgal-note{border:1.5px dashed #DB8927; background:rgba(219,137,39,.08); color:#13183F; border-radius:12px;
  padding:14px 18px; text-align:center; font-size:13.5px; margin:-14px auto 26px; max-width:760px;}

/* Empty state (editor only) */
.arcgal-empty{border:1.5px dashed #DB8927; background:rgba(219,137,39,.08); color:#13183F; border-radius:14px;
  padding:26px; text-align:center; font-size:15px;}

/* Lightbox */
.arcgal-lb{position:fixed; inset:0; background:var(--arcgal-lbb, rgba(6,5,30,.93)); display:none; align-items:center;
  justify-content:center; z-index:99999; padding:24px;}
.arcgal-lb.arcgal-open{display:flex;}
.arcgal-lb figure{margin:0; text-align:center;}
.arcgal-lb img{max-width:min(920px, 94vw); max-height:80vh; border-radius:14px; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.arcgal-lb figcaption{color:#fff; font-family:'Plus Jakarta Sans',Arial,sans-serif; margin-top:16px;}
.arcgal-lbcat{display:block; color:#F2B25C; font-size:12px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase;}
.arcgal-lbcap{display:block; font-size:17px; font-weight:600; margin-top:3px;}
.arcgal-lbx,.arcgal-lbp,.arcgal-lbn{position:absolute; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.35);
  color:#fff; width:46px; height:46px; border-radius:50%; font-size:19px; line-height:1; cursor:pointer; transition:background .2s ease;}
.arcgal-lbx:hover,.arcgal-lbp:hover,.arcgal-lbn:hover{background:var(--arcgal-lba, #DB8927); border-color:var(--arcgal-lba, #DB8927);}
.arcgal-lbx{top:22px; right:22px;}
.arcgal-lbp{left:22px; top:50%; transform:translateY(-50%);}
.arcgal-lbn{right:22px; top:50%; transform:translateY(-50%);}

/* Screen fit */
.arcgal-fit{max-height:calc(100vh - var(--arcgal-nav, 0px)); overflow:hidden;}
.arcgal-fit .arcgal-wrap-in{zoom:calc(var(--arcgal-scale, 100) / 100);}

@media (max-width:480px){
  .arcgal-eyebrow{letter-spacing:1.5px; padding:6px 13px;}
  .arcgal-filter{padding:8px 16px; font-size:13px;}
  .arcgal-tile figcaption{padding:30px 11px 9px;}
  .arcgal-lbx,.arcgal-lbp,.arcgal-lbn{width:40px; height:40px; font-size:16px;}
  .arcgal-lbp{left:10px;} .arcgal-lbn{right:10px;}
}
@media (prefers-reduced-motion: reduce){
  .arcgal-tile.arcgal-pre{opacity:1; transform:none; transition:none;}
  .arcgal-tile img{transition:none;}
}
