
:root{
  --gal-cols:3;
}
@media(max-width:1080px){ :root{--gal-cols:3} }
@media(max-width:820px){  :root{--gal-cols:2} }
@media(max-width:620px){  :root{--gal-cols:1} }
:root{
  --row-h:360px;        
  --grid-gap-x:24px;
  --grid-gap-y:56px;    
}
@media(max-width:1279px){ :root{--row-h:280px} }
.gal{
  display:flex;flex-wrap:wrap;
  column-gap:var(--grid-gap-x);row-gap:var(--grid-gap-y);
}
.gt{
  position:relative;
  flex-grow:var(--r,1.5);
  flex-basis:calc(var(--row-h) * var(--r,1.5));
}
.gal::after{content:'';flex-grow:999}
.gt.hide{display:none}
.gtb{display:block;position:relative;overflow:hidden;
  border:0;padding:0;text-decoration:none;color:inherit}
.gtb img{display:block;width:100%;height:auto;
  aspect-ratio:var(--w,3) / var(--h,2);
  transition:transform var(--hover-ms) var(--e)}
.gtb::after{content:'';position:absolute;inset:0;background:var(--ink);opacity:0;
  transition:opacity var(--hover-ms) var(--e);pointer-events:none}
.gt:hover .gtb::after{opacity:.06}
.gt figcaption{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-top:9px}
.gt .gm{font-family:var(--u);font-weight:500;font-size:15px;letter-spacing:-.005em;
  color:var(--ink)}
.gt .gr{font-family:var(--m);font-size:13px;letter-spacing:.055em;text-transform:uppercase;
  color:var(--ink3)}
@media(max-width:620px){.gt .gm{font-size:16px}.gt .gr{font-size:13.5px}}
.gtgo{display:block;font-family:var(--m);font-size:13px;letter-spacing:.055em;
  text-transform:uppercase;color:var(--cognac);padding-top:5px}
@media(hover:hover){
  .gtgo{opacity:0;transition:opacity var(--ui-ms) var(--e)}
  .gt:hover .gtgo,.gt:focus-within .gtgo{opacity:1}
}
@media(max-width:620px){
  .gt{flex:0 0 100%}
  .gal::after{display:none}
}
@media(prefers-reduced-motion:reduce){
  .gtb img,.gtb::after{transition:none}
  .gtgo{transition:none}
}
.js #vista-proyectos,
.js #gcount{display:none}
body.ver-galeria #vista-proyectos,
body.ver-galeria #gcount,
body.ver-proyectos #vista-galeria,
body.ver-proyectos #galcount{display:none}
body.ver-proyectos #vista-proyectos{display:block}
body.ver-proyectos #gcount{display:inline}
.gbin{display:flex;align-items:flex-start;gap:clamp(24px,3.4vw,48px);
  padding:28px 0}
.gbgrupo{display:flex;flex-direction:column;gap:12px}
.gbgrupo + .gbgrupo{padding-left:clamp(24px,3.4vw,48px);
  border-left:1px solid var(--line)}
.gblab{font-family:var(--m);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink3)}
.gbtabs{display:flex;align-items:baseline;gap:clamp(20px,2.8vw,40px)}
.gbtabs .chip,.vsw{
  font-family:var(--u);font-weight:500;font-size:18px;letter-spacing:-.005em;
  text-transform:none;color:var(--ink2);
  background:none;border:0;padding:0 0 10px;cursor:pointer;
  border-bottom:2px solid transparent;
  transition:color var(--ui-ms) var(--e),border-color var(--ui-ms) var(--e)}
.gbtabs .chip:hover,.vsw:hover{color:var(--ink)}
.gbtabs .chip.on,.vsw[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--cognac)}
.gbtabs .chip:focus-visible,.vsw:focus-visible{outline:2px solid var(--cognac);outline-offset:4px}
.gbtabs .chip::after{display:none}
.gbin{position:relative}
.gbsub{position:absolute;left:0;top:0;height:2px;width:0;
  background:var(--cognac);pointer-events:none;opacity:0;
  transition:transform var(--ui-lenta) var(--e),
             width var(--ui-lenta) var(--e)}
.gbsub.quieto{transition:none}
.gbar.con-sub .gbtabs .chip.on,
.gbar.con-sub .vsw[aria-pressed="true"]{border-bottom-color:transparent}
.sale{opacity:0;transition:opacity var(--ui-lenta) var(--e)}
@media(prefers-reduced-motion:reduce){
  .gbsub{transition:none}
  .sale{opacity:1;transition:none}
}
@media(max-width:860px){
  .gbin{gap:0;padding:14px 0;overflow-x:auto;scrollbar-width:none;
    flex-wrap:nowrap;align-items:center}
  .gbin::-webkit-scrollbar{display:none}
  .gblab{display:none}
  .gbgrupo{flex:0 0 auto}
  .gbgrupo + .gbgrupo{padding-left:16px;margin-left:16px}
  .gbtabs{gap:18px;flex-wrap:nowrap}
  .gbtabs .chip,.vsw{font-size:15px;padding-bottom:6px;white-space:nowrap}
}
