
:root {
  --bg: #fff; --fg: #000;
  --space-xs: clamp(.3125rem, .2344rem + .3906vw, .625rem);
  --space-s: clamp(.625rem, .4688rem + .7813vw, 1.25rem);
  --space-m: clamp(1.25rem, .9375rem + 1.5625vw, 2.5rem);
  --space-l: clamp(1.875rem, 1.4063rem + 2.3438vw, 3.75rem);
  --space-xl: clamp(2.5rem, 1.875rem + 3.125vw, 5rem);
  --space-3xl: clamp(3.75rem, 2.8125rem + 4.6875vw, 7.5rem);
  --space-5xl: clamp(5rem, 3.75rem + 6.25vw, 10rem);
  --serif: 'Instrument Serif', 'Garamond Narrow', Georgia, 'Times New Roman', serif;
  --sans: 'Inter Tight', 'Helvetica Now Display', Helvetica, Arial, sans-serif;
  --gran: clamp(40px, 13vw, 96px);
}
@media (min-width: 1440px) { :root { --gran: 6.667vw; } }

*, *::before, *::after { box-sizing: border-box; }
html, body, div, span, h1, h2, h3, p, a, em, img, ul, li, button, nav, footer, section, main, figure, video { margin: 0; padding: 0; border: 0; font: inherit; vertical-align: baseline; -webkit-tap-highlight-color: transparent; }
nav, footer, section, main { display: block; }
ul { list-style: none; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-text-size-adjust: none; text-size-adjust: none; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body { font-family: var(--sans); background: var(--bg); color: var(--fg); font-size: 24px; font-weight: 400; line-height: 1; overscroll-behavior: none; }
::selection { background: #000; color: #fff; }
a { color: currentColor; text-decoration: none; }
button { background: transparent; color: inherit; cursor: pointer; font: inherit; }
img { max-width: 100%; display: block; font-style: italic; }
img[width], img[height] { max-width: none; }
p { font-size: 16px; letter-spacing: .01em; line-height: 150%; }
@media (min-width: 992px) { p { font-size: 24px; } }
:focus { outline: 0; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.oculto { clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }
.saltar { font-size: 16px; left: 0; position: absolute; top: 0; z-index: 1000; padding: 8px 12px; background: #fff; }
.saltar:not(:focus) { clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; width: 1px; }
.principal { background: var(--bg); min-height: 100vh; }
.js .principal { opacity: 0; }
.js.sin-gsap .principal { opacity: 1; }
.btn { font-size: 14px; letter-spacing: .01em; background: #ebebeb; border: 0; color: currentColor; cursor: pointer; display: inline-block; font-weight: 500; line-height: 100%; padding: var(--space-s); transition: background-color .3s; }
@media (hover: hover) { .btn:hover { background: #dcdcdc; } }
.contenedor { position: relative; margin: 0 auto; padding: 0 10px; }
.fila { display: flex; flex-wrap: wrap; margin: 0 -5px; align-items: flex-start; }
.fila > * { position: relative; width: 100%; min-height: 1px; padding: 0 5px; }
.serif { font-family: var(--serif); }


.nav { color: #000; pointer-events: none; position: fixed; top: 0; left: 0; width: 100%; z-index: 401; padding: 20px 10px 0; transition: opacity .5s, padding .5s, visibility .5s; }
.nav__marca { position: absolute; left: 50%; transform: translate(-50%); top: -100px; transition: opacity .5s, visibility .5s; }
.nav__marca-enlace { display: flex; pointer-events: auto; }
.nav__marca svg { width: 45px; height: auto; display: block; }
.nav__enlaces { position: relative; width: 100%; padding: 0 10px; }
.nav__fila { display: flex; margin: 0 -5px; }
.nav__grupo { position: relative; padding: 0 5px; flex: 0 0 75%; max-width: 75%; transition: opacity .5s, visibility .5s; }
.nav__grupo:nth-of-type(2) { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; }
.nav__grupo:nth-of-type(3) { flex: 0 0 8.3333333333%; max-width: 8.3333333333%; }
.nav__grupo:nth-of-type(3) .nav__lista { justify-content: flex-end; }
.nav__lista { display: flex; gap: 5px; }
.nav__item { font-size: 14px; letter-spacing: .01em; line-height: 150%; display: flex; gap: 5px; }
.nav__grupo:nth-of-type(2) .nav__item + .nav__item::before { content: "/"; }
.nav__enlace { color: currentColor; cursor: pointer; display: flex; font-weight: 500; gap: var(--space-s); pointer-events: auto; }
.nav__enlace span { position: relative; }
.nav__enlace span::before { background: currentColor; content: ""; height: 1px; left: 0; pointer-events: none; position: absolute; top: 100%; width: 100%; transform: scale3d(0, 1, 1); transform-origin: 100% 50%; transition: transform .5s; }
@media (hover: hover) { .nav__enlace:hover span::before { transform-origin: 0 50%; transform: none; } }
.nav__enlace.is-activo span::before { transform-origin: 0 50%; transform: none; }
.nav__enlace svg { transition: transform .7s ease-in-out; width: 20px; height: 20px; flex-shrink: 0; }
@media (hover: hover) { .nav__enlace:has(svg:last-child):hover svg { transform: rotate(-90deg); } }
.nav__hamburguesa { color: currentColor; cursor: pointer; display: none; pointer-events: auto; }
.nav__hamburguesa svg { display: block; overflow: visible; width: 20px; height: auto; }
.nav__hamburguesa svg path { stroke: currentColor; transform-box: view-box; transform-origin: 50% 50%; transition: transform .35s cubic-bezier(.23, 1, .32, 1); }
.nav__hamburguesa svg path:first-child { transform: translateY(-44.87%) rotate(0); }
.nav__hamburguesa svg path:last-child { transform: translateY(44.87%) rotate(0); }
body.menu-abierto .nav__hamburguesa svg path:first-child { transform: translateY(0) rotate(45deg); }
body.menu-abierto .nav__hamburguesa svg path:last-child { transform: translateY(0) rotate(-45deg); }
html.nav-oculta .nav, html.es-oficios .nav { opacity: 0; visibility: hidden; }
.menu-movil { color: #000; left: 0; opacity: 0; pointer-events: none; position: fixed; top: 10px; transform: translateY(-6px); transition: opacity .5s, transform .5s, visibility .5s; visibility: hidden; width: 100%; z-index: 400; }
.menu-movil ul { background: #fff; display: flex; flex-direction: column; gap: var(--space-m); margin: 0 10px; padding: 110px 20px 15px; text-align: center; }
.menu-movil li { font-size: 14px; letter-spacing: .01em; line-height: 150%; opacity: 0; transform: translateY(6px); transition: opacity .15s ease, transform .15s ease; }
.menu-movil a { font-size: 14px; font-weight: 500; pointer-events: auto; }
body.menu-abierto .menu-movil { opacity: 1; pointer-events: auto; transform: none; visibility: visible; }
body.menu-abierto .menu-movil li { opacity: 1; transform: none; transition: opacity .35s, transform .35s; }
body.menu-abierto .menu-movil li:nth-child(1) { transition-delay: .25s; }
body.menu-abierto .menu-movil li:nth-child(2) { transition-delay: .31s; }
body.menu-abierto .menu-movil li:nth-child(3) { transition-delay: .37s; }
body.menu-abierto .menu-movil li:nth-child(4) { transition-delay: .43s; }
body.menu-abierto .menu-movil li:nth-child(5) { transition-delay: .49s; }
body.menu-abierto .principal { background-color: #201d1d1a; }


.inicio { position: relative; }
.js .inicio { opacity: 0; }
.inicio__logo-fila { align-items: flex-start; display: flex; gap: 2vw; left: 18vw; position: absolute; top: 0; }
.inicio__logo-fila > svg { flex-shrink: 0; width: 40vw; height: auto; display: block; }
.inicio__lema { font-size: 24px; letter-spacing: .01em; line-height: 130%; margin-top: -6px; opacity: 0; width: 300px; }
.js.ya-visto .inicio__lema, .sin-gsap .inicio__lema { opacity: 1; }
.inicio__paralaje { margin-bottom: -30vw; margin-top: 30vh; overflow: hidden; position: relative; width: 100%; }
.inicio__interior { transform: translate3d(-15vw, 0, 0); width: 130vw; will-change: transform; }
.galeria { display: flex; gap: 10px; width: 100%; padding: 0 10px; }
.galeria__col { flex: 1; min-width: 0; }
.galeria .galeria__item[data-col="2"], .galeria .galeria__item[data-col="4"] { margin-top: 35vw; }
.galeria .galeria__item[data-col="3"] { margin-top: 15vw; }
@media (min-width: 992px) {
  .galeria .galeria__item[data-col="2"], .galeria .galeria__item[data-col="4"] { margin-top: 22.5vw; }
  .galeria .galeria__item[data-col="3"] { margin-top: 9.5vw; }
}
.galeria__item { cursor: pointer; display: flex; flex-direction: column; gap: 10px; padding-bottom: 40px; }
.galeria__marco { aspect-ratio: 3 / 4; overflow: hidden; position: relative; width: 100%; background: #ddd; }
.galeria__media { backface-visibility: hidden; display: block; height: 100%; left: 0; object-fit: cover; position: absolute; top: 0; width: 100%; transform: translateZ(0); }
.js .galeria__media { opacity: 0; }
.js.sin-gsap .galeria__media, .js.reducido .galeria__media { opacity: 1; }
.galeria__nombre { font-size: 14px; letter-spacing: .01em; line-height: 150%; font-weight: 500; }
.inicio__frase-fila { overflow: visible; }
.inicio__frase { font-family: var(--serif); font-size: var(--gran); font-weight: 400; letter-spacing: normal; line-height: 100%; flex: 0 0 100%; max-width: 100%; overflow: visible; position: relative; width: 100%; padding: 0 5px; }
.inicio__noticias { flex: 0 0 100%; max-width: 100%; margin-top: 30vh; }
.inicio__noticias-titulo, .listado__titulo { font-family: var(--serif); font-size: var(--gran); font-weight: 400; letter-spacing: normal; line-height: 100%; }
.inicio__noticias-titulo { margin-bottom: var(--space-s); }
.inicio__noticias-todas { display: flex; justify-content: center; margin-top: var(--space-m); }


.noticias-grid { width: 100%; display: grid; grid-template-columns: 1fr; gap: 0 10px; }
@media (min-width: 992px) { .noticias-grid { grid-template-columns: repeat(3, 1fr); } }
.noticias-grid.es-mamposteria { display: block; position: relative; }
.noticia { margin-bottom: 50px; width: 100%; }
@media (min-width: 992px) { .noticias-grid.es-mamposteria .noticia { width: calc(33.3333% - 10px); } }
.noticias-grid.es-mamposteria .noticia { position: absolute; }
.noticia__enlace { display: flex; flex-direction: column; gap: 10px; width: 100%; align-items: flex-start; }
.noticia__marco { background: #e8e8e8; overflow: hidden; width: 100%; }
.noticia__media { display: block; height: 100%; width: 100%; object-fit: cover; }
.js .noticia__media { opacity: 0; }
.js .noticia__media.is-cargado { opacity: 1; transition: opacity .5s ease; }
.js.reducido .noticia__media, .js.sin-gsap .noticia__media { opacity: 1; }
.noticia__titulo { font-size: 14px; letter-spacing: .01em; line-height: 150%; position: relative; font-weight: 500; }


.pie { margin-top: calc(var(--space-3xl) * 1); background: var(--bg); height: 100vh; height: 100svh; overflow: hidden; position: relative; transition: background-color .5s; }
.pie__contenedor { height: 100vh; height: 100svh; width: 100%; will-change: transform; }
.pie__contenedor .contenedor { display: flex; flex-direction: column; height: 100%; justify-content: space-between; }
.pie__principal { padding-top: var(--space-m); }
.pie__frase { flex: 0 0 100%; max-width: 100%; }
.pie__frase p { font-family: var(--serif); font-size: clamp(24px, 8vw, 44px); font-weight: 400; letter-spacing: .01em; line-height: 90%; }
@media (min-width: 1440px) { .pie__frase p { font-size: 3vw; } }
.pie__frase p:nth-of-type(3) { margin-top: var(--space-m); }
.pie__frase em { font-style: italic; }
.pie__enlaces { flex: 0 0 100%; max-width: 100%; }
.pie__lista { display: flex; flex-direction: column; gap: var(--space-xs); }
.pie__titulo { font-size: 14px; letter-spacing: .01em; line-height: 150%; display: block; font-weight: 500; margin-bottom: var(--space-xs); }
.pie__enlace { position: relative; font-size: 16px; letter-spacing: .01em; color: currentColor; display: inline-flex; line-height: 110%; }
@media (min-width: 992px) { .pie__enlace { font-size: 24px; } }
.pie__enlace::before { background: currentColor; content: ""; height: 2px; left: 0; pointer-events: none; position: absolute; top: 100%; width: 100%; transform: scale3d(0, 1, 1); transform-origin: 100% 50%; transition: transform .5s; }
@media (hover: hover) { .pie__enlace:hover::before { transform-origin: 0 50%; transform: none; } }
.pie__base { padding-bottom: 10px; }
.pie__logo { flex: 0 0 100%; max-width: 100%; display: flex; }
.pie__logo svg { fill: currentColor; width: 100%; height: auto; display: block; }
.pie__derechos { flex: 0 0 100%; max-width: 100%; font-size: 14px; letter-spacing: .01em; line-height: 150%; align-items: flex-end; display: flex; flex-direction: column; font-weight: 500; justify-content: flex-end; }
.pie__fondo { background-color: #201d1d; height: 100%; left: 0; opacity: .1; pointer-events: none; position: absolute; top: 0; width: 100%; }
.pie .aviso a { text-decoration: underline; text-underline-offset: 2px; }
.revela { height: 320px; opacity: 0; pointer-events: none; position: fixed; width: 240px; z-index: 1000; left: 0; top: 0; }
.revela__interior { height: 100%; overflow: hidden; width: 100%; }
.revela__img { background-position: center; background-size: cover; height: 100%; object-fit: cover; width: 100%; display: block; }
@media (min-width: 992px) {
  .pie__frase { flex: 0 0 50%; max-width: 50%; }
  .pie__enlaces { flex: 0 0 16.6666666667%; max-width: 16.6666666667%; }
  .pie__logo { flex: 0 0 41.6666666667%; max-width: 41.6666666667%; }
  .pie__derechos { flex: 0 0 58.3333333333%; max-width: 58.3333333333%; }
}


html.es-oficios, html.es-oficios body { height: 100%; overflow: hidden; }
.oficios { height: 100vh; height: 100svh; overflow: auto; transition: background-color .5s; width: 100%; }
.js .oficios { opacity: 0; }
.oficios__cerrar { position: fixed; z-index: 100; right: 20px; top: 20px; transform: translateY(-40px); animation: cierra 1s ease-in-out 0s 1 normal forwards; color: #000; }
.oficios__cerrar svg { height: 20px; width: 20px; transform: rotate(45deg); display: block; }
@keyframes cierra { 0% { transform: translateY(-40px); } to { transform: translateY(0); } }
.oficios__lema { font-size: 14px; letter-spacing: .01em; line-height: 150%; font-weight: 500; position: fixed; left: 20px; top: 50%; transform: translate(-125%, -50%); z-index: 100; animation: lema 1s ease-in-out 0s 1 normal forwards; }
@keyframes lema { 0% { transform: translate(-125%, -50%); } to { transform: translate(0, -50%); } }
.oficios__lema [data-discipline] { transition: opacity .25s ease; }
.oficios__lema [data-discipline].is-inactivo { opacity: .25; }
.oficios__scroll { overflow: clip; position: relative; width: 100%; }
.oficios__coleccion { align-items: center; display: flex; flex-flow: column; width: 100%; }
.oficios__lista { display: flex; flex-flow: column; width: 100%; }
.oficios__item { width: 100%; }
.oficios__enlace { color: inherit; display: flex; justify-content: center; padding-bottom: 20px; padding-top: 20px; width: 100%; }
.oficios__titulo { font-family: var(--serif); font-size: 11vw; font-weight: 400; line-height: 100%; color: #000; margin: 0; transition: margin-left .3s; white-space: nowrap; }
.oficios__media { --po: 1.5em; aspect-ratio: 3 / 4; clip-path: polygon(var(--po) var(--po), calc(100% - var(--po)) var(--po), calc(100% - var(--po)) calc(100% - var(--po)), var(--po) calc(100% - var(--po))); left: 50%; opacity: 0; overflow: hidden; pointer-events: none; position: fixed; top: 50%; transform: translate(-50%, -50%); transition: clip-path 1.2s cubic-bezier(.16, 1, .3, 1); width: 52.5vw; background: #ddd; }
.oficios__media--3-2 { aspect-ratio: 3 / 2; width: 75vw; }
.oficios__img { height: 100%; max-height: 100%; object-fit: cover; width: 100%; display: block; }
[data-oficios-item="activo"] .oficios__titulo { color: #000; z-index: 2; }
[data-oficios-item="activo"] .oficios__media { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); opacity: 1; }
@media (hover: none) and (pointer: coarse) { [data-oficios-item="activo"] .oficios__media { pointer-events: all; } }
@media (min-width: 992px) {
  .oficios__titulo { font-size: var(--gran); }
  .oficios__enlace { justify-content: flex-start; padding-left: 32.5vw; }
  .oficios__media { width: 22.5vw; }
  .oficios__media--3-2 { width: 30vw; }
  [data-oficios-item="activo"] .oficios__titulo { margin-left: -100px; }
  .oficios__item { animation: carga-item 1.5s forwards 1; }
  .oficios__item:nth-child(2) { padding-left: 50px; } .oficios__item:nth-child(3) { padding-left: 100px; } .oficios__item:nth-child(4) { padding-left: 150px; }
  .oficios__item:nth-child(5) { padding-left: 200px; } .oficios__item:nth-child(6) { padding-left: 250px; } .oficios__item:nth-child(7) { padding-left: 300px; }
  .oficios__item:nth-child(8) { padding-left: 350px; } .oficios__item:nth-child(9) { padding-left: 400px; }
}
@keyframes carga-item { to { padding-left: 0; } }
@media (max-width: 991.98px) { .oficios__lema { display: none; } .oficios__cerrar { right: 16px !important; top: 14px !important; } }


.nosotros { margin-top: 210px; }
@media (min-width: 992px) { .nosotros { margin-top: var(--space-5xl); } }
.nosotros__principal { flex: 0 0 100%; max-width: 100%; margin-bottom: var(--space-l); }
@media (min-width: 768px) { .nosotros__principal { flex: 0 0 70.8333333333%; max-width: 70.8333333333%; } }
@media (min-width: 992px) { .nosotros__principal { flex: 0 0 66.6666666667%; max-width: 66.6666666667%; margin-bottom: var(--space-xl); } }
.nosotros__lema p { font-family: var(--serif); font-size: clamp(24px, 8vw, 44px); font-weight: 400; letter-spacing: .01em; line-height: 90%; font-style: italic; }
.nosotros__intro { margin-top: var(--space-xl); text-indent: 9vw; text-wrap: balance; }
.nosotros__intro p { font-family: var(--serif); font-size: clamp(24px, 8vw, 44px); font-weight: 400; letter-spacing: .01em; line-height: 90%; }
.nosotros__intro p em { font-style: italic; }
@media (min-width: 992px) {
  .nosotros__lema p, .nosotros__intro p { font-size: var(--gran); letter-spacing: normal; line-height: 100%; }
}
.nosotros__contacto { flex: 0 0 100%; max-width: 100%; display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--space-m); margin-bottom: var(--space-xl); order: -1; }
@media (min-width: 992px) { .nosotros__contacto { flex: 0 0 25%; max-width: 25%; margin-left: 8.3333333333%; position: sticky; top: var(--space-5xl); order: 0; } }
.nosotros__contacto-item { align-items: flex-start; display: flex; flex: 0 0 calc(50% - var(--space-m) / 2); flex-direction: column; gap: var(--space-xs); }
.nosotros__contacto-nombre { font-size: 14px; letter-spacing: .01em; font-weight: 500; line-height: 100%; }
.nosotros__contacto-titulo { font-size: 16px; letter-spacing: .01em; line-height: 110%; }
@media (min-width: 992px) { .nosotros__contacto-titulo { font-size: 24px; } }
.nosotros__contacto-enlace { position: relative; font-size: 14px; letter-spacing: .01em; line-height: 110%; overflow-wrap: anywhere; }
@media (min-width: 992px) { .nosotros__contacto-enlace { font-size: 24px; } }
.nosotros__contacto-enlace::before { background: currentColor; content: ""; height: 2px; left: 0; pointer-events: none; position: absolute; top: 100%; width: 100%; transform: scale3d(0, 1, 1); transform-origin: 100% 50%; transition: transform .5s; }
@media (hover: hover) { .nosotros__contacto-enlace:hover::before { transform-origin: 0 50%; transform: none; } }
.bloques { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 768px) { .bloques { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; } .bloque--media, .bloque--triple { grid-column: 1 / -1; } }
.bloque--texto { margin-bottom: var(--space-m); text-wrap: balance; }
@media (min-width: 768px) { .bloque--texto { grid-column: 1 / -1; max-width: 50%; } }
.bloque--texto p + p { margin-top: 20px; }
.bloque--triple { counter-reset: col; display: flex; flex-direction: column; gap: var(--space-xl); padding: var(--space-m) 0; margin-bottom: var(--space-m); }
@media (min-width: 768px) { .bloque--triple { flex-direction: row; gap: var(--space-l); } }
.bloque__col { counter-increment: col; display: flex; flex-direction: column; gap: var(--space-xs); }
@media (min-width: 768px) { .bloque__col { flex: 1; min-width: 0; } }
@media (min-width: 768px) and (max-width: 991.98px) { .bloque__titulo { font-size: 9.5vw; } }
.bloque__titulo { font-family: var(--serif); font-size: var(--gran); font-weight: 400; letter-spacing: normal; line-height: 100%; }
.bloque__titulo::before { font-family: var(--sans); font-size: 14px; letter-spacing: .01em; line-height: 150%; content: counter(col, decimal-leading-zero); display: block; }
.bloque__lista { font-size: 16px; letter-spacing: .01em; line-height: 150%; }
@media (min-width: 992px) { .bloque__lista { font-size: 24px; } }
.bloque__lista p { margin-top: 0; }
.bloque__lista p::before { content: "—"; display: block; }
.bloque--media .bloque__marco { background: #e8e8e8; overflow: hidden; display: block; margin-left: var(--solo-ml, auto); margin-right: var(--solo-mr, auto); width: var(--solo-ancho, 70%); }
.bloque__img { display: block; height: 100%; width: 100%; object-fit: cover; }
.js .bloque__img { opacity: 0; }
.js .bloque__img.is-cargado { opacity: 1; transition: opacity .5s ease; }
.js.reducido .bloque__img, .js.sin-gsap .bloque__img { opacity: 1; }
@media (max-width: 767.98px) { .bloque--media .bloque__marco { width: 100% !important; margin: 0 !important; } }


.novedades .listado__titulo, .producciones .listado__titulo { flex: 0 0 100%; max-width: 100%; margin-bottom: var(--space-m); margin-top: 210px; }
@media (min-width: 992px) { .novedades .listado__titulo, .producciones .listado__titulo { margin-top: var(--space-5xl); } }
.listado__titulo--der { text-align: right; }
.listado__items { flex: 0 0 100%; max-width: 100%; }


html.es-todo, html.es-todo body { height: 100%; overflow: hidden; touch-action: none; }
.todo { display: grid; grid-template-columns: repeat(2, max-content); left: 0; position: fixed; top: 0; touch-action: none; transform-origin: 0 0; width: max-content; will-change: transform; }
.js .todo { opacity: 0; }
.todo__contenido { align-items: center; display: grid; gap: 8vw; grid-template-columns: repeat(8, 10vw); padding: 4vw; }
.todo__media { cursor: pointer; }
.todo__img { display: block; height: auto; pointer-events: none; user-select: none; -webkit-user-select: none; width: 100%; max-width: 100%; }
.todo__etiqueta { font-size: 14px !important; letter-spacing: .01em; line-height: 150%; color: currentColor; font-weight: 500; position: fixed; z-index: 100; bottom: 20px; left: 20px; }
.todo__etiqueta span { position: relative; }
.todo__etiqueta span::before { background: currentColor; content: ""; height: 1px; left: 0; position: absolute; top: 100%; width: 100%; }
.todo__ampliada { position: fixed; object-fit: cover; pointer-events: none; z-index: 1; }


@media (max-width: 991.98px) {
  .nav { padding-top: 15px; }
  body.menu-abierto .nav { padding-left: 20px; padding-right: 20px; padding-top: 25px; }
  .nav__marca { display: none; }
  .nav__enlaces { padding: 0 10px; }
  .nav__fila { align-items: flex-start; flex-wrap: nowrap; }
  .nav__grupo, .nav__grupo:nth-of-type(2), .nav__grupo:nth-of-type(3) { align-items: flex-start; display: flex; flex: 1; max-width: none; padding-left: 0; padding-right: 0; width: auto; }
  .nav__grupo:nth-of-type(1) { justify-content: flex-start; }
  .nav__grupo:nth-of-type(2) { justify-content: center; position: static; }
  .nav__grupo:nth-of-type(2) .nav__lista { display: none; }
  .nav__grupo:nth-of-type(3) { justify-content: flex-end; }
  .nav__hamburguesa { display: flex; left: 50%; position: absolute; transform: translate(-50%); }
  .nav__grupo:nth-of-type(1) .nav__enlace, .nav__grupo:nth-of-type(3) .nav__enlace { align-items: center; flex-direction: column; gap: var(--space-s); }
  .nav__grupo:nth-of-type(3) .nav__enlace svg { order: -1; }
  .nav__grupo:nth-of-type(1) .nav__enlace span, .nav__grupo:nth-of-type(3) .nav__enlace span { writing-mode: vertical-lr; }
  .nav__grupo:nth-of-type(1) .nav__enlace span::before, .nav__grupo:nth-of-type(3) .nav__enlace span::before { display: none; }
  .inicio__logo-fila { flex-direction: column; align-items: flex-start; gap: 12px; left: 25px; top: -70px; width: calc(100% - 50px); }
  .inicio__logo-fila > svg { width: 100%; order: 2; }
  .inicio__lema { font-size: 24px; margin-bottom: 10px; margin-top: 0; order: 1; width: auto; max-width: 100%; }
  .inicio__paralaje { margin-bottom: 30vh; padding-top: 21vw; }
  .inicio__interior { transform: none; width: 100%; will-change: auto; }
  .galeria__col:nth-child(n+3) { display: none; }
  .pie__principal { display: grid; grid-template-columns: repeat(2, 1fr); }
  .pie__frase { grid-column: 1 / -1; }
  .pie__enlaces { margin-top: var(--space-m); max-width: 100%; }
  .pie__enlaces--areas { grid-row: span 2; }
  .pie__titulo { margin-bottom: 0; }
  .pie__logo { flex: 0 0 50%; max-width: 50%; justify-content: flex-end; margin-left: auto; }
  .pie__derechos { margin-top: var(--space-s); }
  .todo__contenido { grid-template-columns: repeat(4, 20vw); gap: 10vw; padding: 5vw; }
}
@media (prefers-reduced-motion: reduce) {
  .oficios__cerrar, .oficios__lema, .oficios__item { animation: none !important; transform: none; }
  .oficios__cerrar { transform: none; } .oficios__lema { transform: translate(0, -50%); } .oficios__item { padding-left: 0 !important; }
  .nav__enlace svg, .nav__enlace span::before, .pie__enlace::before { transition: none; }
}


.aviso-flotante { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 12px); background: #000; color: #fff; font-size: 14px; font-weight: 500; letter-spacing: .01em; padding: 12px 18px; opacity: 0; pointer-events: none; transition: opacity .3s, transform .3s; z-index: 2000; }
.aviso-flotante.is-visible { opacity: 1; transform: translate(-50%, 0); }


.aviso--fijo { position: fixed; right: 20px; bottom: 20px; z-index: 120; font-size: 14px !important; font-weight: 500; letter-spacing: .01em; line-height: 150%; }
.aviso--fijo a { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 991.98px) { .aviso--fijo { right: 10px; bottom: 12px; } }
