

@font-face { font-family: "Switzer"; src: url("switzer-300.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("switzer-300i.woff2") format("woff2"); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("switzer-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

:root {
  --fondo: #efeae2;
  --tinta: #161d2b;
  --acento: #2b3ac9;
  --telon: #cdc1af;
  --papel: #e2dbcc;
  --curva: cubic-bezier(.25, .1, .25, 1);
  --curva-menu: cubic-bezier(.23, 1, .32, 1);
  --titular: clamp(36px, calc(36px + 32 * (100vw - 390px) / 1530), 68px);
  --menor: clamp(16px, calc(16px + 4 * (100vw - 390px) / 1530), 20px);
}
html { font-size: clamp(20.5px, calc(20.5px + 11.5 * (100vw - 390px) / 1530), 32px); -webkit-text-size-adjust: 100%; overscroll-behavior: none; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
html.con-intro { overflow: hidden; }
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; color: var(--tinta); background-color: var(--fondo);
  font-family: "Switzer", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 300; font-size: 1rem;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
  transition: background-color .4s var(--curva), color .4s var(--curva);
  overflow-x: clip;
}
body.fondo-telon { background-color: var(--telon); }
::selection { color: var(--fondo); background: var(--tinta); }
main { width: 100%; display: block; }
div { position: relative; }
img, svg, video { display: block; width: 100%; height: auto; }
h1, h2, h3, h5, p { position: relative; margin: 0 0 1em; font-weight: 300; font-style: normal; }
h1:last-child, h2:last-child, h5:last-child, p:last-child { margin-bottom: 0; }
em { font-style: italic; font-weight: 300; }
p { font-size: 1rem; line-height: 1.1875em; }
.titular { font-size: var(--titular); line-height: 1.1176470588em; margin-bottom: .8em; letter-spacing: -.016em; text-wrap: balance; }
h5 { font-size: var(--menor); font-weight: 400; line-height: 1.2em; margin-bottom: 1.1em; }
h5 em { font-weight: 300; }
.mayus { text-transform: uppercase; }
.solo-lector { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

a { position: relative; display: inline-block; color: inherit; text-decoration: none; }
a::after { content: ""; position: absolute; left: 0; bottom: .1em; width: 100%; height: .04em; background: currentColor; opacity: 0; transition: opacity .25s var(--curva); pointer-events: none; }
a:hover::after { opacity: 1; }
a.sin-linea::after { display: none; }
a.subrayado::after { opacity: 1; }
a.subrayado:hover::after { opacity: 0; }
:focus-visible { outline: 2px solid var(--acento); outline-offset: 4px; }
.saltar { position: fixed; left: 1rem; top: -4rem; z-index: 10001; padding: .5rem .8rem; background: var(--tinta); color: var(--fondo); font-size: .7rem; transition: top .2s var(--curva); }
.saltar:focus { top: 1rem; outline: none; }
.saltar::after { display: none; }


#titulo-sitio { position: fixed; top: 1rem; right: 1.5625rem; z-index: 500; }
#titulo-sitio p { margin: 0; }
.boton-nav { position: fixed; z-index: 900; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; will-change: transform; transition: transform .25s var(--curva); -webkit-tap-highlight-color: transparent; }
#boton-izq { width: 2.65625rem; height: 2.65625rem; top: 0; left: 0; transform-origin: top left; }
#boton-der { width: 2.5rem; height: 2.5rem; bottom: 0; right: 0; transform-origin: bottom right; border-radius: 50%; }
.boton-nav svg { width: 100%; height: 100%; }
.boton-nav svg polygon, .boton-nav svg circle { fill: var(--acento); }
.boton-nav:focus-visible { outline-offset: -3px; }
@media (hover: hover) and (min-width: 768px) { .boton-nav:hover { transform: scale(1.25); } }

#punto { position: fixed; left: 0; top: 0; width: 15px; height: 15px; margin: 0; border-radius: 50%; background: var(--acento); z-index: 9999; pointer-events: none; opacity: 0; transition: background-color .15s var(--curva) .1s, opacity .3s var(--curva); will-change: transform; }
html.tiene-punto, html.tiene-punto * { cursor: none !important; }
html.tiene-punto #punto { opacity: 1; }
html.menu-abierto #punto { background: var(--fondo); }


.pagina { width: 100%; min-height: 100svh; }
.seccion { position: relative; width: 100%; }
.fila { position: relative; width: 100%; display: flex; align-items: flex-start; justify-content: flex-start; row-gap: 1.125rem; }
.derecha { justify-content: flex-end; }
.centro { justify-content: center; }
.espaciada { justify-content: space-between; }
.columna { position: relative; display: block; }
.pequena { width: 33.3333333333%; }
.mediana { width: 66.6666666667%; }
.completa { width: 100%; }
.texto { padding: 1.5625rem; }
.solo-movil { display: none; }


.modulo { position: relative; width: 100%; overflow: hidden; background: var(--papel); z-index: 5; aspect-ratio: var(--ar, 3/2); }
.modulo img, .modulo video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; pointer-events: none; }
.js .modulo img { opacity: 0; transition: opacity .6s var(--curva); }
.js .modulo img.lista { opacity: 1; }
.modulo video { opacity: 0; transition: opacity .6s var(--curva); z-index: 2; }
.modulo video.suena { opacity: 1; }
.modulo img.poster { z-index: 1; }
.multiplicar .modulo { background: var(--fondo); }
.multiplicar .modulo img { mix-blend-mode: multiply; object-fit: contain; }
.js .multiplicar .modulo img { transition: opacity .6s var(--curva); }

.enlace-proyecto { position: absolute; display: block; inset: 0; z-index: 50; }
.enlace-proyecto::after { display: none; }
.leyenda { position: absolute; top: 100%; left: 0; padding: .625rem .75rem; z-index: -1; transform: translateY(-100%); opacity: 0; transition: opacity .25s var(--curva), transform .25s var(--curva); pointer-events: none; }
.leyenda h5 { margin: 0; }
.media-uno .leyenda, .media-dos .leyenda { padding-left: .75rem; }
@media (hover: hover) and (min-width: 768px) { .columna.media:hover .leyenda { transform: translateY(0); opacity: 1; } }
.columna.media:focus-within .leyenda { transform: translateY(0); opacity: 1; }


.seccion.uno .bloque-texto { height: 100vh; height: 100svh; display: flex; flex-direction: column; justify-content: space-between; z-index: 20; pointer-events: none; }
.seccion.uno .fila-titular { padding-right: 3.125rem; }
.seccion.uno .fila-vacia { height: 0; }
.seccion.uno .foto-movil { display: none; }
.seccion.uno .fila-subtitular .texto { padding-top: 0; }
.seccion.uno .media-uno { position: absolute; top: 0; right: 0; z-index: 10; }
.seccion.uno .media-dos { margin-top: 75vh; margin-top: 75svh; }
.fila-subtitular em, .fila-titular em { font-style: italic; }


.seccion.dos { padding-bottom: 4.6875rem; }
.seccion.dos .media-uno { z-index: 10; }
.seccion.dos .fila-texto { z-index: 20; pointer-events: none; }
.seccion.dos .fila-texto .titular { margin-bottom: 4.6875rem; }
.seccion.dos .fila-texto a { pointer-events: auto; }
.seccion.dos .media-dos { z-index: 30; }
.seccion.dos .media-dos .columna.media { padding-left: 16.6vw; }
.seccion.dos .media-dos .leyenda { margin-left: 16.6vw; padding-left: 0; }


.seccion.tres .fila { flex-wrap: nowrap; }
.seccion.tres .fila-uno { align-items: flex-end; }
.seccion.tres .fila-dos .solo-movil { display: none; }
.seccion.tres .fila-dos { align-items: flex-start; }


.seccion.cierre { padding: 6.71875rem 1.5625rem; display: flex; flex-direction: column; row-gap: 1.71875rem; overflow: hidden; }
.frase-grande { width: 75%; }
.frase-mediana { width: 66.6666666667%; }
.frase-fila .texto { padding: 0; }
.frase { font-size: var(--titular); line-height: 1.1176470588em; letter-spacing: -.016em; margin: 0; }
.js .contenido-texto { transform: translateY(5em); opacity: 0; }
html:not(.js) .contenido-texto, .sin-mov .contenido-texto { transform: none; opacity: 1; }
.frase a::after { height: .04em; bottom: .06em; }


footer { position: relative; width: 100%; padding: 3.75rem 0; background-color: var(--fondo); z-index: 160; }
.envoltura { position: relative; width: calc(100% - 3.125rem); margin: 0 auto; z-index: 1; }
.cuadricula { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3.125rem; }
.sede { position: relative; text-align: center; cursor: default; min-height: 116.8px; }
.sede-info { position: relative; transition: opacity .3s var(--curva) .05s; }
.sede .codigo { font-size: var(--titular); line-height: 1.1176470588em; margin: 0 0 .3125rem; letter-spacing: -.01em; }
.sede .hora { margin: 0 0 .5em; font-size: var(--menor); line-height: 1.2em; }
.sede .hora.movil { display: none; }
.sede .direccion { position: absolute; width: 100%; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0; transition: opacity .1s var(--curva); pointer-events: none; }
.sede .direccion p { margin: 0; }
@media (hover: hover) and (min-width: 768px) {
  .sede:hover .sede-info, .sede:focus-within .sede-info { opacity: 0; transition: opacity .1s var(--curva); }
  .sede:hover .direccion, .sede:focus-within .direccion { opacity: 1; pointer-events: auto; transition: opacity .3s var(--curva) .05s; }
}
.sedes-movil { display: none; }
.muestra { margin: 2rem 0 0; text-align: center; font-size: var(--menor); line-height: 1.2em; font-weight: 400; }
.muestra a::after { opacity: 1; }
.muestra a:hover::after { opacity: 0; }


.capa-cierre { position: fixed; inset: 0; z-index: 949; opacity: 0; }
.capa-cierre[hidden] { display: none; }
.capa-menu { position: fixed; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; row-gap: 1.5625rem; width: 33.33%; height: 100%; min-width: 20rem; top: 0; background-color: var(--acento); color: var(--fondo); padding: 1.40625rem 1.5625rem; z-index: 950; overflow-y: auto; visibility: hidden;
  transition: transform 1s var(--curva-menu) .2s, visibility 0s linear 1.2s; }
.capa-menu.izq { left: 0; padding-top: 3.125rem; transform: translateX(-100%); }
.capa-menu.der { right: 0; padding-bottom: 3.125rem; transform: translateX(100%); }
.capa-menu.abierto { transform: translateX(0); visibility: visible; transition: transform 1s var(--curva-menu), visibility 0s; }
.capa-menu a, .capa-menu .titulo-menu { color: var(--fondo); }
.capa-menu .contenido-menu { opacity: 0; pointer-events: none; transition: opacity .2s var(--curva); }
.capa-menu.abierto .contenido-menu { opacity: 1; pointer-events: auto; transition: opacity .75s var(--curva) .6s; }
.capa-menu .imagenes { position: relative; width: 100%; height: auto; aspect-ratio: 540 / 360; flex-shrink: 0; overflow: hidden; }
.capa-menu .imagen-menu { position: absolute; inset: 0; background: var(--acento); opacity: 0; transition: opacity .25s var(--curva); }
.capa-menu .imagen-menu.visible { opacity: 1; }
.capa-menu .imagen-menu img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; mix-blend-mode: multiply; }
.capa-menu ul.menu { list-style: none; margin: 0; padding: 0; width: 100%; }
.capa-menu .titulo-menu { display: block; font-size: var(--titular); line-height: 1.1176470588em; letter-spacing: -.01em; }
.capa-menu ul.menu a::after { height: .1em; bottom: .05em; }
.capa-menu .cerrar { position: absolute; width: 3.0625rem; height: 3.0625rem; z-index: 100; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
.capa-menu .cerrar::before, .capa-menu .cerrar::after { content: ""; position: absolute; width: 137%; height: .04em; background: var(--fondo); top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); }
.capa-menu .cerrar::after { transform: translate(-50%, -50%) rotate(-45deg); }
.capa-menu.izq .cerrar { top: .15625rem; left: .15625rem; }
.capa-menu.der .cerrar { bottom: .15625rem; right: .15625rem; }
.capa-menu :focus-visible { outline-color: var(--fondo); }


#aviso { position: fixed; left: 50%; bottom: 2rem; z-index: 9000; max-width: calc(100% - 2rem); padding: .55rem 1rem; background: var(--tinta); color: var(--fondo); font-size: var(--menor); font-weight: 400; line-height: 1.25em; text-align: center; transform: translate(-50%, .6rem); opacity: 0; pointer-events: none; transition: opacity .25s var(--curva), transform .25s var(--curva); }
#aviso.visible { opacity: 1; transform: translate(-50%, 0); }


#intro { position: fixed; inset: 0; z-index: 1000; background-color: var(--fondo); cursor: pointer; display: none; }
.con-intro #intro { display: block; }
#intro .intro-carga { position: absolute; inset: 0; background: var(--tinta); z-index: 50; opacity: 0; transition: opacity .5s var(--curva); pointer-events: none; }
#intro.cargando .intro-carga { opacity: 1; }
#intro .intro-fondo { position: absolute; inset: 0; z-index: 10; overflow: hidden; background: rgba(0, 0, 0, .8); transition: opacity 1s var(--curva); }
#intro .intro-fondo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; filter: grayscale(.3); }
#intro .intro-marca { position: absolute; display: flex; align-items: center; justify-content: space-between; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 28rem; height: 10.8125rem; padding: 0 5.09375rem; z-index: 20;
  transition: width 1.7s var(--curva-menu), height 1.7s var(--curva-menu); }
#intro .elemento { opacity: 0; transition: opacity 1.2s var(--curva), width .9s var(--curva), height .9s var(--curva); }
#intro .elemento svg, svg.elemento { display: block; }
#intro svg polygon, #intro svg circle, #intro svg path { fill: rgba(247, 240, 230, .85); transition: fill 1.2s var(--curva); }
#intro .tri { position: absolute; top: 0; left: 0; width: 2.65625rem; height: 2.65625rem; }
#intro .circ { position: absolute; bottom: 0; right: 0; width: 2.5rem; height: 2.5rem; }
#intro .medio { width: auto; height: 100%; }
#intro .medio svg { width: auto; height: 100%; }
#intro.e1 .tri { opacity: 1; }
#intro.e2 .medio.uno { opacity: 1; }
#intro.e3 .medio.dos { opacity: 1; }
#intro.e4 .medio.tres { opacity: 1; }
#intro.e5 .circ { opacity: 1; }
#intro.e6 .medio { opacity: 0 !important; }
#intro.e7 .intro-fondo { opacity: 0; }
#intro.e7 .intro-marca { width: 100%; height: 100%; }
#intro.e7 svg polygon, #intro.e7 svg circle, #intro.e7 svg path { fill: var(--acento); }


@media (max-width: 767px) {
  :root { --titular: 1.756097561rem; --menor: .7804878049rem; }
  html { font-size: clamp(16px, 5.2564102564vw, 24px); }
  .titular, .frase { letter-spacing: -.015em; }
  .fila { row-gap: .7317073171rem; column-gap: 4.2%; padding-left: .7317073171rem !important; padding-right: .7317073171rem !important; flex-direction: column; flex-wrap: wrap; }
  .solo-movil { display: block; }
  .modulo { aspect-ratio: var(--ar-m, var(--ar, 3/2)); }
  .foto-escritorio { display: none !important; }
  .pequena-movil { width: 65.26666%; }
  .completa-movil { width: 100%; }
  .sangrado-movil { width: calc(100% + 1.4634146341rem); margin-left: -.7317073171rem; }
  .der-movil { align-items: flex-end; }
  .izq-movil { justify-content: flex-start; }
  .texto { width: 100% !important; padding: 0 !important; }
  .seccion { margin-bottom: 9.756097561rem; }
  .leyenda { position: relative; opacity: 1; transform: none; padding: .6341463415rem 0 0 0; z-index: auto; pointer-events: none; }
  .media-uno .leyenda, .media-dos .leyenda { padding-left: 0; }
  .multiplicar .leyenda, .sangrado-movil .leyenda { padding-left: .7317073171rem; }
  .seccion.dos .media-dos .columna.media { padding-left: 0; }
  .seccion.dos .media-dos .leyenda { margin-left: 0; padding-left: .7317073171rem; }

  #titulo-sitio { top: .5853658537rem; right: .7317073171rem; z-index: 951; }
  .boton-nav { width: 3.4146341463rem !important; height: 3.4146341463rem !important; }
  #boton-izq { top: .7317073171rem; left: .7317073171rem; }
  #boton-der { bottom: .7317073171rem; right: .7317073171rem; }

  .seccion.uno { padding-top: 5.6097560976rem; }
  .seccion.uno .bloque-texto { height: auto; margin-bottom: 1.4634146341rem; pointer-events: auto; }
  .seccion.uno .fila-titular { padding-right: 4.8780487805rem !important; z-index: 100; }
  .seccion.uno .foto-movil { display: block; position: relative; top: auto; right: auto; margin: 4.3902439024rem 0; z-index: 50; }
  .seccion.uno .media-dos { margin-top: 0; z-index: 150; }
  .seccion.uno .fila-subtitular .texto { padding-top: 0 !important; }

  .seccion.dos { padding-bottom: 2.9268292683rem; display: flex; flex-direction: column; margin-bottom: 0; }
  .seccion.dos .media-uno { order: 1; margin-bottom: 4.6341463415rem; }
  .seccion.dos .media-dos { order: 2; margin-bottom: 2.4390243902rem; }
  .seccion.dos .fila-texto { order: 3; }
  .seccion.dos .fila-texto .titular { margin-bottom: 1.0731707317rem; }

  .seccion.tres .media-uno { margin-bottom: 2.8292682927rem; }
  .seccion.tres .fila-uno { margin-bottom: 2.6829268293rem; }
  .seccion.tres .fila-uno .texto { padding-right: 20% !important; }
  .seccion.tres .fila-uno .media { display: none !important; }
  .seccion.tres .fila-dos { row-gap: 1.2682926829rem; }
  .seccion.tres .fila-dos .solo-movil { display: block; align-self: flex-end; }

  .seccion.cierre { padding: 2.4390243902rem 0 9.756097561rem 0; margin-bottom: 0 !important; row-gap: 1.2682926829rem; }
  .frase-grande, .frase-mediana { width: 100% !important; }
  .frase { font-size: 1rem; line-height: 126.8%; letter-spacing: 0; }

  footer { padding: 2.1951219512rem 0 4.8780487805rem 0; }
  .envoltura { width: calc(100% - 1.4634146341rem); }
  .cuadricula { gap: .7317073171rem; }
  .sede { position: sticky; top: 5.6097560976rem; height: fit-content; min-height: 0; }
  .sede:nth-child(2) { margin-top: 6.5853658537rem; }
  .sede:nth-child(3) { margin-top: 13.9024390244rem; }
  .sede .codigo { font-size: 1.4rem; margin-bottom: .487804878rem; }
  .sede .hora.escritorio { display: none; }
  .sede .hora.movil { display: block; margin-bottom: 0; }
  .sede .direccion { display: none; }
  .sedes-movil { display: flex; flex-direction: column; row-gap: 2.6829268293rem; text-align: center; padding-top: 12.5vh; }
  .muestra { margin-top: 3.4146341463rem; }

  .capa-menu { width: 100%; min-width: 100%; padding: 2.1951219512rem .7317073171rem; row-gap: 0; padding-top: 33vh !important; }
  .capa-menu .titulo-menu { font-size: 2.5365853659rem; line-height: 115%; }
  .capa-menu .imagenes, .capa-menu .vacio { display: none; }
  html.menu-abierto #titulo-sitio a { color: var(--fondo); }
  .capa-menu.izq .cerrar { top: .7317073171rem; left: .7317073171rem; }
  .capa-menu.der .cerrar { bottom: .7317073171rem; right: .7317073171rem; }
  .capa-menu .cerrar { width: 3.4146341463rem; height: 3.4146341463rem; }
  #aviso { bottom: 6rem; }
  #intro .intro-marca { width: 89.7435897436vw; height: 38.9743589744vw; padding: 0 17.9487179487vw; }
  #intro .tri { width: 9.4871794872vw; height: 9.4871794872vw; }
  #intro .circ { width: 8.9743589744vw; height: 8.9743589744vw; }
  #intro.e7 .intro-marca { width: calc(100% - 1.4634146341rem); height: calc(100% - 1.4634146341rem); }
  #intro.e7 .tri, #intro.e7 .circ { width: 3.4146341463rem; height: 3.4146341463rem; }
}


@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .001s !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .js .modulo img { opacity: 1; }
  .js .contenido-texto { transform: none; opacity: 1; }
  .modulo video { display: none; }
  #punto { display: none; }
}
