

@font-face{font-family:"Archivo Lienzo";src:url(archivo.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}

:root{
  --vh:100lvh;--vh-init:100lvh;--header-h:0px;
  --fondo:#fff;--texto:#fff;--marca:#161412;--placeholder:#eee;
  --padding:2rem;--gutter:1rem;--pad-btn:1em;--caption:2rem;
  --btn-h:calc(2rem + var(--pad-btn) * 2);
  --modal:50rem;
  --arriba:calc(var(--header-h) + var(--padding) * 5);
  --abajo:calc(var(--header-h) + var(--padding) * 2);
  --ajedrez:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cdefs%3E%3Cpattern id='p' width='8' height='8' patternUnits='userSpaceOnUse'%3E%3Crect width='4' height='4' fill='%23000' fill-opacity='.122'/%3E%3Crect x='4' y='4' width='4' height='4' fill='%23000' fill-opacity='.122'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='64' height='64' fill='url(%23p)'/%3E%3C/svg%3E");
  --expo:cubic-bezier(.16,1,.3,1);
}
@media (max-width:1024px){:root{--padding:1.2rem;--arriba:calc(var(--header-h) + var(--padding));--modal:100%}}

*,*::before,*::after{box-sizing:border-box}
html{font-size:.55vw;-webkit-text-size-adjust:100%;text-size-adjust:100%;box-sizing:border-box}
@media (min-width:1601px){html{font-size:.4vw}}
@media (max-width:1024px){html{font-size:8px}}
html:not(.cargado) body{overflow:hidden}
html:not(.cargado) #visor{pointer-events:none}
body{margin:0;padding:0;background:var(--fondo);color:var(--texto);overscroll-behavior:none;
  font:400 1rem/1 "Archivo Lienzo",Helvetica,Arial,sans-serif;letter-spacing:-.04em;text-transform:uppercase;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}
p:not(:last-child){margin-bottom:1em}
a,a:visited{color:inherit;text-decoration:none;cursor:pointer}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;border:0;background:none;padding:0;cursor:pointer;text-align:inherit}
*{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
::selection{background:#000;color:#fff}
:focus{outline:0}
:focus-visible{outline:.25rem solid #111;outline-offset:.25rem;box-shadow:0 0 0 .5rem #fff}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.salto{position:fixed;left:1rem;top:-10rem;z-index:2000;background:#111;color:#fff;padding:1rem 1.4rem;font-size:1.2rem;transition:top .2s}
.salto:focus{top:1rem}


#cargador{position:fixed;inset:0;z-index:1000;background:var(--fondo);transition:opacity .4s ease,visibility 0s .4s}
html.cargado #cargador{opacity:0;visibility:hidden}
#contenido,.transicion{transition:opacity .2s ease;opacity:1}
html.animando .transicion #contenido{opacity:0}


#visor{display:flex;flex-direction:column;background-image:var(--ajedrez);background-size:50px;background-position:0 0;min-height:var(--vh)}
#contenido{flex:1;display:flex;flex-direction:column}
.texto-alfa{background:#f7f7f7;background-image:var(--ajedrez);background-size:50px;background-position:0 0;-webkit-background-clip:text;background-clip:text;color:transparent}


.texto-grande{font-size:5rem;line-height:.9;letter-spacing:.01em;-webkit-text-stroke:.1em;white-space:normal}
.texto-medio{font-size:3rem;line-height:.9;letter-spacing:.01em;-webkit-text-stroke:.1em}
@media (max-width:1024px){.texto-grande,.texto-medio{font-size:3rem}}
.sin-parrafos p:not(:last-child){margin-bottom:0}


.boton{-webkit-user-select:none;user-select:none;position:relative;display:flex;padding:var(--pad-btn);background-color:#fff9;-webkit-backdrop-filter:blur(.3rem);backdrop-filter:blur(.3rem);border-radius:.5rem;place-content:center;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:var(--btn-h);letter-spacing:.01em;text-align:center;color:#fff}
.boton.reposo,.boton.oscuro--activo,.boton.oscuro.reposo--activo.activo{background-color:#0003}
.boton.oscuro,.boton.oscuro--activo.activo{background-color:#0009}
@media (hover:hover){
  .boton.oscuro:hover,.boton.oscuro--activo.activo:hover,.boton.oscuro--activo:hover{background-color:#00000040}
}
.boton svg{height:1em;width:auto}
.boton .icono{margin-right:.5em;width:1.2em;height:1.2em;flex:none}
.boton .icono svg{width:100%;height:100%;display:block}
.boton-texto{place-content:flex-start;text-align:left}
.grupo{display:flex;flex-wrap:wrap;align-items:flex-start;flex:0 0 auto}
.grupo.vidrio,.boton.grupo{padding:calc(var(--pad-btn) / 2)}
.grupo.centrado{justify-content:center}
.grupo.espaciado-x{gap:calc(var(--pad-btn) / 2)}
.grupo.espaciado-y{flex-direction:column;gap:calc(var(--pad-btn) / 2);flex-wrap:nowrap}
.grupo.espaciado-y.centrado{align-items:center}
.grupo.rejilla{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:flex-start;gap:calc(var(--pad-btn) / 2)}
.w-total{width:100%}
.puntero{cursor:pointer}
.sin-seleccion{backface-visibility:hidden;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
@media (max-width:1024px){.solo-escritorio{display:none!important}}
@media (min-width:1025px){.solo-movil{display:none!important}}


#logo{position:fixed;top:calc(var(--padding) * 3);left:50%;transform:translate(-50%);white-space:nowrap;z-index:200;padding:var(--padding);width:25rem;display:block}
#logo img{width:100%;height:auto;transition:filter .25s ease}
#logo.sobre-oscuro img{filter:invert(1)}
@media (max-width:1024px){#logo{width:20rem;top:var(--padding)}}
html[data-vista=inicio] #logo,html[data-vista=inicio] #menu{display:none}
#menu{position:fixed;inset:0;z-index:100;display:grid;place-content:center;pointer-events:none;padding:var(--padding)}
#menu .menu--fondo{background-image:var(--ajedrez);background-size:50px;background-position:0 0;-webkit-backdrop-filter:brightness(.7) blur(.2rem);backdrop-filter:brightness(.7) blur(.2rem);position:absolute;inset:0;visibility:hidden;opacity:0;pointer-events:auto}
#menu .menu--caja{width:var(--modal);visibility:hidden;opacity:0;pointer-events:auto}
#menu .tarjeta-servicio{width:100%}
.enlace-menu[data-tam="1/1"]{grid-column-start:span 6}
.enlace-menu[data-tam="1/2"]{grid-column-start:span 3}
.enlace-menu[data-tam="1/3"]{grid-column-start:span 2}
.tarjeta-servicio{position:relative}
.tarjeta-servicio .tarjeta--cabecera{padding:0;min-height:auto;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}
.tarjeta-servicio .tarjeta--texto{white-space:normal;pointer-events:none}
@media (min-width:1025px){.tarjeta-servicio .tarjeta--texto{text-align:left}}
.tarjeta-servicio [data-ref=toggle]{position:absolute;top:0;left:0;z-index:1}
.tarjeta-servicio [data-ref=card]{height:var(--btn-h);opacity:0;gap:var(--pad-btn)}


.inicio{position:relative}
.inicio--fondo{position:fixed;inset:0;background:#d8d2c8}
.inicio--fondo .video-fondo{position:absolute;inset:0}
.inicio--fondo .video-fondo:not(.activo){opacity:0}
.inicio--fondo *{width:100%;height:100%}
.inicio--fondo video{object-fit:cover}
.inicio--logo{z-index:10;-webkit-backdrop-filter:blur(.2rem);backdrop-filter:blur(.2rem);-webkit-mask-image:url(mascara-esc.svg);mask-image:url(mascara-esc.svg);-webkit-mask-size:cover;mask-size:cover;background-color:#00000047;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;position:fixed;inset:0}
@media (max-width:1024px){.inicio--logo{-webkit-mask-image:url(mascara-tel.svg);mask-image:url(mascara-tel.svg)}}
.aviso--inicio{position:fixed;left:50%;bottom:var(--padding);transform:translateX(-50%);z-index:20;margin:0;color:#fff}
.aviso--inicio .boton{min-height:0;padding:.7em 1em}
.aviso{text-transform:none;font-variant-caps:all-small-caps;font-size:1.3rem;line-height:.8;letter-spacing:.02em}
.aviso a{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:.08em}


.bloques{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--padding) 0;place-content:flex-start}
@media (min-width:1025px){.bloques:not(.ajustada){min-height:var(--vh)}}
.bloques>.bloque{grid-column-start:span var(--ancho-col,2)}
.bloque{position:relative;display:block}
.bloque--contenido{position:relative}
.bloque--texto .bloque--contenido{padding:0 var(--padding)}
@media (min-width:1025px){.bloque--texto .boton{text-align:left}}
.bloque--rejilla .rejilla-medios{position:relative;display:grid;grid-template-columns:repeat(var(--col-esc,2),minmax(0,1fr))}
@media (max-width:1024px){.bloque--rejilla .rejilla-medios{grid-template-columns:repeat(var(--col-mov,2),minmax(0,1fr))}}
.imagen-resp{position:relative;overflow:hidden;aspect-ratio:var(--ratio);background:var(--placeholder)}
.imagen-resp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.imagen-resp img.listo{opacity:1}
.video-resp{position:relative;display:block;aspect-ratio:var(--ratio);background:var(--placeholder);overflow:hidden}
.video-resp video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.enlace-bloque{position:absolute;inset:0;z-index:10}


.texto-fijo{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;display:flex;justify-content:center;align-items:flex-start}
.texto-fijo .texto--caja{position:sticky;top:50%;padding:var(--padding);transform:translateY(-50%)}
.texto-fijo p{max-width:30ch;text-align:center}


.fichas{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;pointer-events:none;z-index:20}
.fichas::before{content:"";display:block;flex:1}
.fichas .fichas--pie{display:flex;justify-content:space-between;position:sticky;bottom:0;padding:var(--padding);gap:calc(var(--pad-btn) / 2) var(--padding);z-index:20;flex-wrap:wrap}
@media (min-width:1025px){.fichas.arriba::before{display:none}.fichas.arriba .fichas--pie{bottom:auto;top:0}}
.fichas .boton{pointer-events:auto}
.fichas .proyecto--servicios,.fichas .proyecto--titulo{pointer-events:none}
.servicio-chip .boton{cursor:pointer}


.pase{position:relative;width:100%;float:left;overflow:hidden;height:var(--vh-init);backface-visibility:hidden;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;touch-action:pan-y;transition:opacity .3s ease}
.js .pase:not(.listo){opacity:0}
.pase .celda{position:absolute;left:0;top:0;width:100%;will-change:transform}
@media (min-width:1025px){.pase .celda{width:calc(var(--vh-init) * var(--ratio));height:var(--vh-init)}.pase .celda .imagen-resp{height:100%;width:100%;aspect-ratio:auto}}
.pase .celda img{pointer-events:none;-webkit-user-drag:none}
@media (max-width:1024px){.pase{height:auto}}
html:not(.es-tactil) .pase.flecha-izq{cursor:w-resize}
html:not(.es-tactil) .pase.flecha-der{cursor:e-resize}
.pase.arrastrando{cursor:grabbing!important}
.pase:focus-visible{outline-offset:-.5rem}


.bloque--tarjeta{--ancho-col:1}
.bloque--tarjeta .bloque--contenido{padding:var(--padding)}
.bloque--tarjeta .boton{aspect-ratio:16/9;width:100%}
.bloque--tarjeta+.bloque--tarjeta .bloque--contenido{padding-left:calc(var(--padding) / 2)}
.bloque--tarjeta:first-child .bloque--contenido,.bloque:not(.bloque--tarjeta)+.bloque--tarjeta .bloque--contenido{padding-right:calc(var(--padding) / 2)}
.bloque:not(:first-child)+.bloque--tarjeta{margin-top:calc(-1 * var(--padding))}
.bloque:not(:first-child)+.bloque--tarjeta+.bloque--tarjeta{margin-top:calc(-1 * var(--padding))}
@media (hover:hover){.bloque--tarjeta:hover .boton{background-color:#00000040}}


.indice{position:relative}
.indice--contenedor{display:flex;flex-direction:column;padding-top:var(--arriba);min-height:var(--vh)}
.proyecto-miniaturas{position:relative}
.proyecto-miniaturas .proyecto--titulo{margin:var(--padding);position:sticky;top:var(--padding);z-index:5}
@media (max-width:1024px){.proyecto-miniaturas .proyecto--titulo{top:calc(var(--arriba) + var(--padding));display:flex;place-content:center}}
.miniaturas{padding:0 var(--padding);display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:calc(var(--padding) / 2)}
@media (orientation:portrait){.miniaturas{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1024px){.miniaturas{gap:var(--padding)}}
.miniatura{position:relative;display:block}
.miniatura .imagen-resp,.miniatura .video-resp{--ratio:.8}
.miniatura.oculta,.proyecto-miniaturas.oculta{display:none}
.miniatura .marca-video{position:absolute;right:.6rem;bottom:.6rem;z-index:3;width:1.6rem;height:1.6rem;border-radius:50%;background:#0009;display:grid;place-items:center;pointer-events:none}
.miniatura .marca-video i{display:block;width:0;height:0;border-left:.5rem solid #fff;border-top:.32rem solid transparent;border-bottom:.32rem solid transparent;margin-left:.15rem}
.filtros--contenedor{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;pointer-events:none}
.filtros--contenedor::before{content:"";display:block;flex:1}
.filtros{position:sticky;bottom:0;width:100%;display:flex;place-content:flex-end;z-index:20;overflow-x:auto;pointer-events:auto;scrollbar-width:none}
.filtros::-webkit-scrollbar{display:none}
@media (max-width:1024px){.filtros{place-content:center}}
.filtros .interior{padding:var(--padding)}
.filtros .grupo{line-height:1.3}
.filtros .filtro-opcion{cursor:pointer}
.sin-resultados.oculto-bloque{display:none}
.proyecto-detalle .miniaturas-detalle{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter)}
@media (orientation:portrait){.proyecto-detalle .miniaturas-detalle{grid-template-columns:repeat(1,minmax(0,1fr))}}
.proyecto-detalle .detalle-medio{position:relative}
.proyecto-detalle .detalle-medio .imagen-resp,.proyecto-detalle .detalle-medio .video-resp{--ratio:.8}
.proyecto-detalle .proyecto--pie{display:flex;justify-content:space-between;position:sticky;bottom:0;padding:var(--padding);gap:calc(var(--pad-btn) / 2) var(--padding);z-index:20;flex-wrap:wrap;pointer-events:none}
.proyecto-detalle .proyecto--pie .boton{pointer-events:auto}
@media (orientation:portrait){.proyecto-detalle .proyecto--pie{flex-wrap:wrap;width:100%}}


footer{display:block}
footer .bloque--texto.pie--texto .bloque--contenido{padding-top:0;padding-bottom:0}
footer .pie--enlaces{padding:var(--padding);display:grid;gap:var(--padding)}
footer .pie--creditos{line-height:1;color:#0009;display:flex;gap:var(--padding);justify-content:space-between;letter-spacing:.01em;flex-wrap:wrap}
html[data-vista=estudio] footer{padding-top:var(--padding)}
html[data-vista=inicio] footer{display:none}


.aviso-breve{position:fixed;left:50%;bottom:calc(var(--padding) * 2);z-index:300;transform:translate(-50%,1rem);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s var(--expo);max-width:calc(100% - 2rem)}
.aviso-breve.on{opacity:1;transform:translate(-50%,0)}
.aviso-breve .boton{background-color:#000c;padding:1.1em 1.6em;white-space:normal;text-align:center}


@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important}
  .imagen-resp img{opacity:1}
}
html.rm .imagen-resp img{opacity:1}
