

@font-face { font-family: "Titulo"; font-weight: 300; font-style: normal; font-display: swap; src: url("titulo.woff2") format("woff2"); }

:root {
  --azul: #0148c6;
  --tinta: #2e3a40;
  --beige: #e1dedc;
  --naranja: orange;
  --ease: cubic-bezier(.25, 0, 0, 1);
  
  --tf: 1.11;
  
  --tit: 1.084;
}

*, *::before, *::after { box-sizing: border-box; border: 0 solid; }
html { background: var(--azul); scroll-behavior: auto; -webkit-text-size-adjust: 100%; }
body { margin: 0; height: 100%; background: var(--beige); color: #000; font: 400 18px/1.2 "Switzer", "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: normal; -webkit-font-smoothing: antialiased; scrollbar-width: none; -ms-overflow-style: none; }
body::-webkit-scrollbar { display: none; }
body.-sinscroll { overflow: hidden; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; padding: 0; font: inherit; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img, video, svg { display: block; vertical-align: middle; max-width: 100%; }
img, video { height: auto; }
button { font: inherit; color: inherit; background: transparent; padding: 0; margin: 0; cursor: pointer; border: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--naranja); outline-offset: 3px; }
::selection { background: var(--naranja); color: #000; }

.solo-lector { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.salto { position: fixed; left: 12px; top: -60px; z-index: 1000; background: var(--naranja); color: #000; padding: 10px 14px; transition: top .2s; }
.salto:focus { top: 12px; }


html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }


.h1, .h2 { font-family: "Titulo", "Roboto Serif", Georgia, serif; font-weight: 300; }
.h1 { font-size: calc(250px * var(--tf)); letter-spacing: -.03em; line-height: calc(.9 / var(--tf)); }
.h2 { font-size: calc(144px * var(--tf)); letter-spacing: -.035em; line-height: calc(.9 / var(--tf)); }
.h3 { font-size: 38px; line-height: 1.2; }
.p { font-size: 18px; line-height: 1.2; }
@media (max-width: 1400px) { .h1 { font-size: calc(17.85vw * var(--tf)); } }
@media (max-width: 1279px) { .h2 { font-size: calc(120px * var(--tf)); } .h3 { font-size: 32px; } }
@media (max-width: 1023px) { .h1 { font-size: calc(176px * var(--tf)); } .h2 { font-size: calc(90px * var(--tf)); } }
@media (max-width: 767px) { .h1 { font-size: calc(125px * var(--tf)); } .h2 { font-size: calc(72px * var(--tf)); } }
@media (max-width: 639px) { .h1 { font-size: calc(75px * var(--tf)); } .h2 { font-size: calc(50px * var(--tf)); line-height: calc(1 / var(--tf)); } .h3 { font-size: 22px; } }


.rejilla-columna > img, .o-media img, .o-intro img, .clientes-fotos img, .clientes .lst-m, .est-grande img, .o-video video { filter: saturate(1.05) contrast(1.04) sepia(.04); }
.est-grande img { filter: none; }


.linea { position: absolute; width: .1rem; left: 50%; background: var(--tinta); pointer-events: none; }
.linea-abajo { bottom: calc(clamp(110px, 17vw, 240px) * -1 - 30px); height: clamp(110px, 17vw, 240px); transform-origin: bottom; }
.linea-abajo-der { display: none; }
@media (min-width: 1024px) {
  .linea-abajo-der { display: block; height: min(22.8vw, 310px); top: calc(100% + min(6.4vw, 90px)); transform: rotate(-45deg) scaleX(.1); transform-origin: top left; width: 12px; }
}
@media (max-width: 1023px) { .linea-abajo { top: calc(100% + 20px); } }
.linea-arriba-der { bottom: calc(100% - 114px); height: 320px; transform: rotate(45deg) scaleX(.1); transform-origin: bottom left; width: 12px; background: #000; }
.linea-arriba { bottom: calc(100% + 40px); height: 100px; transform-origin: top; background: #000; }
@media (max-width: 767px) { .linea-arriba-der { bottom: calc(100% - 62px); height: 179px; } }
.linea-antes { background: var(--tinta); bottom: calc(100% + 25px); height: clamp(110px, 20vw, 240px); }
.linea-despues { height: clamp(120px, 33.33vw, 400px); top: calc(100% + clamp(40px, 5.8vw, 70px)); transform: rotate(-45deg); transform-origin: top; }


.cab { position: fixed; top: 0; left: 0; width: 100%; z-index: 50; pointer-events: none; color: #000; }
.cab.-blanco { color: var(--beige); }
.signo path { fill: currentColor; }
.cab.-blanco .signo path { fill: var(--beige); }
.cab-fondo { display: none; }
.cab-nav { position: relative; z-index: 10; display: grid; grid-template-columns: 1fr; padding: 16px 35px; }
.cab-logo { position: absolute; left: 50%; top: 16px; transform: translateX(-50%); pointer-events: auto; display: block; }
.cab-logo .signo { width: 28px; height: 28px; }
.cab-boton { display: none; }
.cab-lista { display: grid; grid-template-columns: auto auto 1fr; column-gap: 96px; }
.cab-lista > li { position: relative; font-size: 18px; line-height: 1.2; }
.im { pointer-events: auto; }
.cab-lista > li > a, .cab-lista > li > .obras-etiqueta { position: relative; display: inline-block; cursor: pointer; }
.cab-der { justify-self: end; }
.cab-lista > li > a::after { content: ""; position: absolute; display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--naranja); left: calc(100% + 5px); top: calc(50% + 1px); opacity: 0; transform: translate(50%, -50%) scale(0); transition: .2s var(--ease); }
.cab-lista > li > a[aria-current="page"]::after { opacity: 1; transform: translate(50%, -50%); }
.cab-lista > li > a[data-izq]::after { left: unset; right: 100%; transform: translate(-50%, -50%) scale(0); }
.cab-lista > li > a[data-izq][aria-current="page"]::after { transform: translate(-50%, -50%); }
.obras-etiqueta { transition: opacity .3s; }
.obras-sub { position: absolute; left: 0; top: 100%; padding-top: 8px; display: flex; flex-direction: column; gap: 4px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s, visibility .3s; white-space: nowrap; }
.obras-sub a { display: block; font-size: 18px; line-height: 1.2; }
.cab.-obras .cab-fondo { opacity: 1; visibility: visible; }
.cab.-obras .obras-sub { opacity: 1; visibility: visible; pointer-events: auto; }
.cab.-obras .obras-etiqueta { opacity: .4; }
.obras-menu.-activo .obras-sub a:not([aria-current="page"]) { opacity: .4; }
@media (min-width: 1024px) {
  .cab-fondo { display: block; position: fixed; inset: 0; min-height: 100dvh; z-index: -10; background: var(--azul); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; pointer-events: auto; }
  .cab-nav { padding: 16px 35px; }
}


.cursor { position: fixed; left: 0; top: 0; opacity: 0; pointer-events: none; transform: translate(50vw, 50vh); z-index: 102; display: none; }
.cursor-punto { background: var(--naranja); border-radius: 50%; height: 10px; width: 10px; left: 20px; position: absolute; top: 0; }
.cursor-texto { border: 1px solid #000; height: 27px; left: 11px; opacity: 0; overflow: hidden; position: absolute; top: -9px; transform: rotate(5deg); transform-origin: 12px 50%; transition: .3s var(--ease); width: 0; z-index: -1; }
.cursor.-texto .cursor-texto { opacity: 1; transform: rotate(0); }
.cursor span { background: var(--azul); display: block; line-height: 1; padding: 4px 4px 4px 22px; text-transform: uppercase; transition: background 0s .3s; width: max-content; font-size: 18px; color: #000; }
.cursor.-beige span { background: var(--beige); transition: background 0s; }
@media (min-width: 1024px) and (pointer: fine) { .cursor { display: block; } }
.filtro-azul { position: fixed; inset: 0; opacity: 0; visibility: hidden; z-index: 999998; pointer-events: none; }
.filtro-azul--negro { background: #000; mix-blend-mode: color; }
.filtro-azul--azul { background: var(--azul); mix-blend-mode: multiply; }
.transi-signo { display: none; }
@media (min-width: 1024px) {
  .transi-signo { display: block; position: fixed; top: 50%; left: 50%; width: 28px; height: 28px; margin: -14px 0 0 -14px; border: 1.5px solid #000; z-index: 102; overflow: hidden; opacity: 0; visibility: hidden; pointer-events: none; }
  .transi-signo i { position: absolute; left: -28px; top: 0; width: 56px; height: 56px; border-radius: 50%; background: #000; transform: translateY(50%); }
}


.vista { position: relative; }


.hero { position: relative; height: 100svh; overflow: hidden; background: var(--azul); }
.hero-video { width: 100%; height: 100%; object-fit: cover; }
.hero-poster-m { display: none; }
.hero-texto { position: absolute; top: 80px; left: 50%; width: 200px; transform: translateX(-50%); text-align: center; color: var(--beige); }
.hero-velo { position: absolute; inset: 0; z-index: 101; background: var(--azul); }
.hero-logo { display: none; }
.hero-logo-m { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); width: calc(100% - 40px); z-index: 101; fill: var(--beige); height: auto; }
.hero-logo-m path, .hero-pal path { fill: var(--beige); }
@media (min-width: 768px) { .hero-texto { top: 120px; } }
@media (min-width: 1024px) {
  .hero-texto { top: auto; bottom: calc(30px + 4vw); transform: translateX(-42%); opacity: 0; }
  .hero-logo { display: block; position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); width: 69.5%; z-index: 101; }
  .hero-logo-m { display: none; }
  .hero-pal { position: absolute; bottom: 0; height: 14vw; width: auto; }
  .hero-pal--izq { left: 0; }
  .hero-pal--der { right: 0; }
}
@media (max-width: 1023px) {
  .hero-video { display: none; }
  .hero-poster-m { display: block; position: absolute; inset: 0; }
  .hero-poster-m img { width: 100%; height: 100%; object-fit: cover; }
}


.intro { position: relative; z-index: 10; padding: 80px 20px 120px; background: var(--beige); transition: all .3s var(--ease); }
.intro-1 { position: relative; text-align: center; margin-bottom: clamp(150px, 22.8vw, 320px); }
.intro-titulo { position: relative; margin: 0 auto 62px; max-width: calc(830px * var(--tit)); }
.lo-bello { width: 100%; height: auto; fill: var(--tinta); }
.intro.-azul { background: var(--azul); }
.intro.-azul .lo-bello { fill: #000; }
.intro-2 p { width: 270px; max-width: 100%; margin: 0 auto; text-align: center; }
@media (min-width: 768px) { .intro { padding-left: 35px; padding-right: 35px; } }
@media (min-width: 1024px) {
  .intro { min-height: 100vh; padding-bottom: 36px; }
  .intro-titulo { margin-bottom: calc(min(24.2vw, 340px) - 62px); }
  .intro-2 { display: grid; grid-template-columns: calc(50% + min(17.8vw, 250px)) auto; }
  .intro-2 p { grid-column-start: 2; margin: 0; text-align: left; }
}
@media (min-width: 1536px) { .intro-titulo { max-width: calc(980px * var(--tit)); } }
@media (min-width: 1920px) { .intro-titulo { max-width: calc(1100px * var(--tit)); } }


.rejilla { display: none; }
.video-m { display: block; }
@media (min-width: 1024px) {
  .video-m { display: none; }
  .rejilla { display: block; position: relative; height: 100vh; overflow: hidden; background: #000; margin-bottom: -200vh; transform: translateY(-100%); }
  .intro + .pin-spacer { overflow: hidden !important; }
}
.-quieto .rejilla { transform: none; margin-bottom: 0; }
.rejilla-malla { align-content: stretch; bottom: 100%; display: grid; gap: 200px; grid-template-columns: repeat(3, 1fr); height: 300vh; left: 50%; position: absolute; top: 0; transform: translateX(-50%) scale(.3333333); transform-origin: top center; width: calc(300vw + 400px); }
.rejilla-col { grid-auto-rows: max-content; height: 100%; position: relative; }
.rejilla-col:first-child .rejilla-columna, .rejilla-col:nth-child(3) .rejilla-columna { bottom: 0; }
.rejilla-col--centro .rejilla-columna { top: 0; }
.rejilla-columna { display: grid; gap: 200px; grid-auto-rows: max-content; position: absolute; width: 100%; }
.rejilla-media { border-radius: 6px; overflow: hidden; }
.rejilla img, .rejilla video { border-radius: 6px; object-fit: cover; width: 100%; }
.rejilla video { height: 100vh; }
.rejilla img { background: #151515; }


.cierre { position: relative; z-index: 10; background: var(--azul); padding: 65px 20px 20px; }
.cierre-foto { position: relative; width: 124px; margin: 0 auto 85px; }
.foto-azul { position: relative; }
.foto-azul::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: var(--azul); z-index: 1; }
.foto-azul img { position: relative; z-index: 2; width: 100%; filter: grayscale(1); mix-blend-mode: multiply; border-radius: 2px; object-fit: cover; }
.cierre-foto .foto-azul img { aspect-ratio: .78; filter: grayscale(1) brightness(1.55) contrast(.92); }
.cierre-texto { position: relative; width: 260px; max-width: 100%; margin: 0 auto 56px; text-align: center; }
.cierre-enlace { display: block; position: relative; max-width: 1200px; margin: 0 auto; padding-bottom: 45px; text-align: center; font-family: "Titulo", "Roboto Serif", Georgia, serif; font-weight: 300; font-size: calc(72px * var(--tf)); letter-spacing: -.035em; line-height: calc(.9 / var(--tf)); }
.texto-iman { white-space: pre-line; }
.cta { position: absolute; bottom: 0; left: 50%; transform: translate(-50%); display: block; border: 1px solid #000; padding: 4px 4px 4px 22px; font: 400 18px/1 "Switzer", "Helvetica Neue", Arial, sans-serif; letter-spacing: normal; text-transform: uppercase; white-space: nowrap; }
.cta::before { content: ""; position: absolute; left: 6px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; border-radius: 50%; background: var(--naranja); }
@media (min-width: 768px) {
  .cierre { padding: 112px 35px 20px; }
  .cierre-foto { width: 230px; margin-bottom: 112px; }
  .cierre-texto { width: 310px; }
  .cierre-enlace { padding-bottom: 0; }
  .cierre-enlace .cta { display: none; }
}
@media (min-width: 768px) and (max-width: 1023px) { .cierre-enlace { font-size: calc(90px * var(--tf)); } }
@media (min-width: 1024px) and (max-width: 1279px) { .cierre-enlace { font-size: calc(120px * var(--tf)); } }
@media (min-width: 1280px) { .cierre-enlace { font-size: calc(144px * var(--tf)); } }
@media (max-width: 639px) { .cierre-enlace { font-size: calc(50px * var(--tf)); line-height: calc(1 / var(--tf)); } }


.pie { position: relative; min-height: 100dvh; padding: 20px; display: grid; align-items: end; background: var(--azul); }
.pie-caja { display: block; }
.pie-contacto, .pie-zona { align-self: end; margin-bottom: 30px; }
.pie-aviso { display: flex; flex-direction: row-reverse; justify-content: space-between; align-self: end; justify-self: end; width: 100%; margin-bottom: 18px; }
.pie-aviso br { display: none; }
.pie-logo { grid-column: span 3; }
.pie-logo svg { width: 100%; height: auto; }
.pie-logo path { fill: #000; }
.pie-svg { display: none; }
.pie-signo-m { display: block; aspect-ratio: 1; width: 100%; }
.pie .im { position: relative; }
.pie.-beige { background: var(--beige); }
@media (min-width: 768px) {
  .pie { padding: 40px; }
  .pie-caja { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 1fr auto; gap: 30px; }
  .pie-contacto, .pie-zona { margin-bottom: 0; }
  .pie-aviso { display: block; width: auto; margin-bottom: 0; text-align: right; }
  .pie-aviso br { display: inline; }
  .pie-svg { display: block; }
  .pie-signo-m { display: none; }
}
@media (min-width: 1024px) { .pie-caja { grid-template-columns: 315px 1fr 315px; } }



.est-intro { background: var(--azul); padding: 310px 20px 50px; }
.est-lema { white-space: pre-line; }
.est-flota { display: none; }
.est-foto-m { display: block; width: 100%; margin: 30px auto; }
.est-foto-m img { width: 100%; aspect-ratio: .85; border-radius: 2px; object-fit: cover; }
.est-cols-caja { position: relative; margin-bottom: 120px; }
.est-cols { white-space: pre-line; }
.est-cols p + p { margin-top: 1.2em; }
.est-cab { display: grid; margin-bottom: 60px; }
.est-cab .h3 { white-space: pre-line; }
.est-cuenta { display: none; justify-self: end; line-height: 45.6px; }
.est-oficios { display: grid; row-gap: 45px; }
.est-oficios li { display: grid; grid-auto-flow: row dense; grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 15px; }
.est-oficios li > p:not(.rol) { grid-column: 1 / 3; }
.est-oficios .rol { width: 140px; }
.est-cont { padding-bottom: clamp(120px, 27.5vw, 330px); }
.est-grande img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 0; }
.est-pad { padding: 20px 20px 0; }
.est-cab--proy { margin-bottom: 110px; }
.est-proy-texto { white-space: pre-line; }
.clientes { position: relative; }
.clientes li { position: relative; border-bottom: 1px solid #000; padding: 10px 0; cursor: default; user-select: none; transition: padding-left .3s var(--ease); }
.clientes .lst-m { position: absolute; right: 50%; top: 50%; z-index: -1; transform: translate(50%, -50%); width: 300px; aspect-ratio: .786; object-fit: cover; opacity: 0; pointer-events: none; display: block; transition: opacity .2s; }
.clientes li:hover .lst-m { opacity: .4; }
.clientes-fotos { display: none; }
.est-hola { display: block; position: relative; text-align: center; color: var(--tinta); width: 1200px; max-width: 100%; margin: clamp(170px, 27.5vw, 330px) auto 0; padding-bottom: 45px; font-family: "Titulo", "Roboto Serif", Georgia, serif; font-weight: 300; font-size: min(calc(75px * var(--tf)), 16vw); letter-spacing: -.03em; line-height: calc(1 / var(--tf)); white-space: pre-line; }
.est-hola .cta { color: #000; }
@media (max-width: 1023px) {
  .clientes li:hover::before { color: var(--naranja); content: "\25cf  "; }
}
@media (min-width: 640px) { .est-hola { font-size: calc(125px * var(--tf)); line-height: calc(.9 / var(--tf)); } }
@media (min-width: 768px) {
  .est-intro { padding-left: 35px; padding-right: 35px; }
  .est-cab { grid-template-columns: 1fr 1fr; margin-bottom: 110px; }
  .est-cuenta { display: block; }
  .est-grande img { aspect-ratio: auto; height: 80vh; }
  .est-pad { padding-left: 35px; padding-right: 35px; }
  .est-cab--proy { margin-bottom: 190px; }
  .est-cols { columns: 2; column-gap: 40px; }
  .est-oficios li { column-gap: 40px; }
  .est-hola { padding-bottom: 0; }
  .est-hola .cta { display: none; }
}
@media (min-width: 1024px) {
  .est-intro { padding-top: 210px; padding-bottom: 80px; }
  .est-lema { }
  .est-flota { display: block; float: right; width: 600px; max-width: 50%; margin: 16px 0 0 16px; border-radius: 2px; }
  .est-flota img { width: 100%; aspect-ratio: .7; object-fit: cover; border-radius: 2px; }
  .est-foto-m { display: none; }
  .est-cols-caja { clear: both; float: none; margin-bottom: 150px; }
  .est-cols { position: absolute; bottom: 0; padding-right: 40px; width: calc(100% - min(600px, 50%)); column-gap: 40px; }
  .est-cab { margin-bottom: 160px; }
  .est-oficios li { grid-template-columns: 1fr 1fr min(600px, 50%); }
  .est-oficios li > p:not(.rol) { grid-column: auto; }
  .est-oficios .rol { justify-self: center; }
  .est-cols-caja::after { content: ""; display: block; height: 1px; clear: both; }
  .clientes .lst-m { display: none !important; }
  .clientes li:hover { padding-left: 20px; }
  .clientes-fotos { display: none; position: absolute; pointer-events: none; right: 25%; transform: translateX(50%); z-index: 10; width: 300px; aspect-ratio: .786; background: var(--beige); overflow: hidden; }
  .clientes-fotos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity .15s, transform .15s; }
  .clientes-fotos img.-activa { opacity: 1; z-index: 10; transform: scale(1); }
  .est-hola .cta { display: none; }
}
@media (min-width: 1280px) { .est-flota img { aspect-ratio: .85; } .est-cols { padding-right: 60px; column-gap: 60px; } .est-oficios li { column-gap: 60px; } }
@media (min-width: 1536px) { .est-flota { width: 39vw; } .est-cols { width: calc(100% - 39vw); } }



.obra-info { display: none; }
.obra { display: block; }
.obra .o-intro { height: 100vh; background: var(--azul); }
.obra .o-intro img, .obra .o-intro video { width: 100%; height: 100%; object-fit: cover; }
.obra .o-intro:not(.-sig) img, .obra .o-intro:not(.-sig) video { opacity: 0; transition: opacity .5s var(--ease) 75ms; }
.obra .o-intro.-cargada img, .obra .o-intro.-cargada video { opacity: 1; }
.obra .o-intro.-sig { display: none; }
.o-media { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.o-media p { font-size: 12px; max-width: 500px; opacity: .7; text-align: center; width: 100%; z-index: 10; bottom: 1rem; left: 1rem; }
.o-media:not(.-sm):not(.-lg) p { position: absolute; left: 50%; transform: translateX(-50%); }
.o-media.-sm { gap: 1rem; padding: 60px; }
.o-media.-lg { gap: 1rem; padding: 1rem; }
.o-media.-sm img, .o-media.-sm .o-video, .o-media.-lg img, .o-media.-lg .o-video { border-radius: .125rem; max-width: 500px; width: 100%; }
.o-media.-lg img, .o-media.-lg .o-video { height: auto; }
.o-media.-no img, .o-media.-no .o-video { width: 100%; }
.o-media img, .o-media video { height: auto; }
.fondo-beige { background: var(--beige); }
.fondo-azul { background: var(--azul); }
.fondo-tinta { background: var(--tinta); }
.fondo-tinta p, .o-redac.fondo-tinta p { color: var(--beige); }
.o-redac { display: flex; align-items: flex-end; padding: 5rem 1.25rem 1.25rem; }
.o-redac p { width: 100%; white-space: pre-line; }
.o-video { position: relative; overflow: hidden; }
.o-video video { display: block; width: 100%; }
.o-video.-juega > button { position: absolute; inset: 0; display: grid; place-items: center; color: var(--beige); background: #0003; transition: background-color .3s; }
.o-video.-juega > button span { display: block; position: relative; pointer-events: none; }
.o-video.-juega > button span::after { content: ""; display: block; position: absolute; right: 100%; top: calc(50% + 1px); width: 10px; height: 10px; border-radius: 50%; background: var(--naranja); opacity: 0; transform: translate(-50%, -50%) scale(0); transition: .2s var(--ease); }
.o-video.-juega:hover > button { background-color: transparent; }
.o-video.-juega:hover > button span::after { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.o-video.-juega > video { transition: transform .3s var(--ease); }
.o-video.-juega:hover > video { transform: scale(1.05); }
.video-modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 15px; background: #000; opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility .3s; }
.video-modal.-abierto { opacity: 1; visibility: visible; }
.video-modal video { max-height: calc(100vh - 140px); border-radius: .125rem; overflow: hidden; }
.video-cerrar { position: absolute; right: 30px; top: 30px; color: #fff; border: 1px solid #fff; line-height: 1; padding: 4px 6px; text-transform: uppercase; }
.o-sig-enlace { display: none; }
@media (min-width: 1024px) {
  body.-obra { width: fit-content; min-width: 100%; }
  .vista-obra { width: max-content; }
  .obra { display: flex; height: 100vh; width: max-content; }
  .obra .o-intro { width: 100vw; }
  .obra .o-intro.-sig { display: block; }
  .o-media { flex-direction: row; }
  .o-media p { position: absolute; text-align: left; width: 160px; }
  .o-media:not(.-sm):not(.-lg) p { left: 1rem; transform: none; }
  .o-media img, .o-media video, .o-media .o-video { height: 100%; }
  .o-media.-no img, .o-media.-no .o-video { height: 100vh; }
  .o-media.-sm { gap: 30px; }
  .o-media.-sm p { bottom: 2rem; left: 2rem; }
  .o-media.-sm img, .o-media.-sm .o-video { height: 70vh; max-width: none; width: auto; }
  .o-media.-lg { gap: 90px; padding: 3rem 200px; }
  .o-media.-lg img, .o-media.-lg .o-video { height: 48%; max-width: none; width: auto; }
  .o-media .o-video video, .o-media.-sm .o-video video { height: 100%; width: auto; }
  .o-redac { width: 480px; }
  .obra-info { display: flex; position: fixed; width: calc(50vw - 21px); bottom: 45px; right: 35px; z-index: 10; color: #fff; font-size: 12px; line-height: 1.2; justify-content: space-between; align-items: flex-end; mix-blend-mode: difference; pointer-events: none; }
  .obra-info div { max-width: 140px; justify-self: center; }
  .obra-info p:last-child { justify-self: end; }
}


@media (max-width: 1023px) {
  .cab-nav { grid-template-columns: 1fr 1fr; padding: 20px; max-height: 70px; overflow: hidden; transition: max-height .3s var(--ease); }
  .cab-logo { position: static; transform: none; justify-self: start; }
  .cab-boton { display: block; justify-self: end; pointer-events: auto; }
  .cab-boton span:last-child { display: none; }
  .cab-lista { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 8px; padding-top: 48px; }
  .cab-lista > li { margin-bottom: 8px; }
  .cab-lista > li:last-child { margin-bottom: 0; }
  .cab-lista > li > a::after { display: none; }
  .obras-etiqueta { opacity: .5; cursor: default; }
  .obras-sub { position: static; opacity: 1; visibility: visible; pointer-events: auto; padding-top: 0; margin-top: 8px; gap: 8px; }
  .cab-der { justify-self: start; }
  .cab.-abierto .cab-nav { background: var(--beige); color: #000; max-height: 80vh; overflow-y: auto; }
  .cab.-abierto::after { content: ""; position: fixed; left: 0; top: 0; width: 100%; height: 100vh; background: #000; opacity: .4; z-index: -1; pointer-events: none; }
  .cab.-abierto .signo path { fill: #000; }
  .cab-boton span:first-child { display: inline; }
  .cab.-abierto .cab-boton span:first-child { display: none; }
  .cab.-abierto .cab-boton span:last-child { display: inline; }
}
@media (min-width: 768px) and (max-width: 1023px) { .cab-nav { padding: 20px 35px; } }


@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  .hero-velo { display: none; }
  .hero-texto { opacity: 1 !important; }
}
