/* Galería de un artista. Mismo lenguaje que la landing: muro oscuro, luz cálida sobre
   las obras, marcos con filete dorado y cartelas de museo. La usan todas las galerías
   (se sirve desde /galeria/), así que acá no va nada propio de un artista. */

@font-face { font-family: "Cormorant"; src: url("/fuentes/cormorant-300.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Cormorant"; src: url("/fuentes/cormorant-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url("/fuentes/inter-variable.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  color-scheme: dark;
  --muro: #0d0c0b; --muro-2: #151311;
  --tinta: #f3efe8; --tinta-2: #c9c2b6; --tinta-3: #948d82;
  --borde: rgba(243, 239, 232, 0.12); --borde-fuerte: rgba(243, 239, 232, 0.28);
  --vivo: #e66767; --oro: #b8996a;
  --luz: rgba(255, 224, 178, 0.11);
  --serif: "Cormorant", Georgia, serif; --sans: "Inter", system-ui, sans-serif;
  --ancho: 1240px; --lateral: clamp(16px, 5vw, 64px);
  --curva: cubic-bezier(0.2, 0.7, 0.2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--muro); color: var(--tinta); font: 400 17px/1.6 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
img, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }
a { color: inherit; }
em { font-style: italic; }
:focus-visible { outline: 2px solid var(--tinta); outline-offset: 3px; border-radius: 2px; }
.saltar { position: absolute; left: 16px; top: -60px; z-index: 200; background: var(--tinta); color: var(--muro); padding: 10px 16px; border-radius: 999px; text-decoration: none; }
.saltar:focus { top: 12px; }

h1 { overflow-wrap: break-word; font-family: var(--serif); font-weight: 300; font-size: clamp(3rem, 8vw, 6rem); line-height: 0.95; letter-spacing: -0.01em; }
h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1.05; }
h2 em { font-weight: 400; color: var(--tinta-2); }
.antetitulo { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tinta-3); margin-bottom: 18px; }
.latido { width: 8px; height: 8px; border-radius: 50%; background: var(--vivo); flex: none; box-shadow: 0 0 0 0 rgba(230, 103, 103, 0.55); animation: latido 2.4s ease-out infinite; }
@keyframes latido { 0% { box-shadow: 0 0 0 0 rgba(230, 103, 103, 0.55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(230, 103, 103, 0); } }

/* ---- Cabecera ---- */
.cabecera {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px var(--lateral); padding-top: max(14px, env(safe-area-inset-top));
  background: rgba(13, 12, 11, 0.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--borde);
}
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.marca__icono { width: 32px; height: 32px; color: var(--tinta); flex: none; }
.marca__punto { fill: var(--vivo); }
.marca__nombre { font-family: var(--serif); font-size: 20px; font-weight: 300; white-space: nowrap; }
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 40px; padding: 0 20px; white-space: nowrap; flex-shrink: 0;
  border: 1px solid var(--borde-fuerte); border-radius: 999px; background: transparent; color: var(--tinta);
  font: 500 14px/1 var(--sans); text-decoration: none; cursor: pointer;
  transition: background 0.3s var(--curva), color 0.3s var(--curva), border-color 0.3s var(--curva);
}
.boton:hover { background: var(--tinta); color: var(--muro); border-color: var(--tinta); }

/* ---- Presentación del artista ---- */
.presentacion, .seccion, .pie { width: 100%; max-width: calc(var(--ancho) + 2 * var(--lateral)); margin: 0 auto; padding-left: var(--lateral); padding-right: var(--lateral); }
.presentacion { padding-top: clamp(56px, 10vw, 120px); }
.presentacion__texto { max-width: 46em; }
/* Desde el escritorio, la presentación se abre en dos: el nombre a la izquierda y su
   historia a la derecha. Antes el texto quedaba todo contra el borde izquierdo y la
   mitad derecha de la pantalla vacía. Si el artista mandó retrato, esa segunda columna
   ya es el retrato, así que esto no se aplica. */
@media (min-width: 1060px) {
  .presentacion:not(:has(.retrato)) .presentacion__texto {
    max-width: none; display: grid; align-items: start;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    column-gap: clamp(48px, 6vw, 104px);
  }
  .presentacion:not(:has(.retrato)) .bio { margin-top: 8px; }
}
.meta { margin-top: 18px; font-size: 12px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tinta-3); }
.bio { margin-top: 28px; display: grid; gap: 16px; color: var(--tinta-2); font-size: clamp(17px, 1.4vw, 19px); max-width: 38em; }
.redes { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 28px; }
.redes a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 15px; color: var(--tinta); text-decoration: none; border-bottom: 1px solid var(--borde-fuerte); }
.redes a::after { content: "↗"; color: var(--tinta-3); font-size: 13px; }
.redes a:hover { border-bottom-color: var(--tinta); }
.aviso { margin-top: 28px; padding: 14px 18px; border-left: 1px solid var(--oro); color: var(--tinta-3); font-size: 14px; }

/* La luz de los cuadros se sale de los costados a propósito: se recorta acá para que
   en el celular la página no quede más ancha que la pantalla. */
main { overflow-x: hidden; overflow-x: clip; }

.seccion { padding-top: clamp(72px, 11vw, 150px); }
.seccion__cabeza { max-width: 46em; margin-bottom: clamp(36px, 5vw, 64px); }
.seccion__bajada { margin-top: 18px; color: var(--tinta-2); font-size: 17px; }

/* ---- Marcos y cartelas ---- */
.obra, .pieza { position: relative; }
.obra::before {
  content: ""; position: absolute; left: -18%; right: -18%; top: -42%; height: 100%;
  background: radial-gradient(closest-side, var(--luz), transparent);
  pointer-events: none; z-index: -1;
}
.marco {
  --paspartu: clamp(9px, 1.4vw, 16px);
  position: relative; display: block; width: 100%; padding: var(--paspartu);
  border: 0; margin: 0; font: inherit; color: inherit; text-align: left;
  background: linear-gradient(150deg, #2b251f 0%, #16130f 45%, #221d18 100%);
  border-radius: 2px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), inset 0 -1px 0 rgba(0, 0, 0, 0.6),
    0 50px 90px -40px rgba(0, 0, 0, 0.95), 0 18px 36px -16px rgba(0, 0, 0, 0.85);
}
.marco::after { content: ""; position: absolute; inset: calc(var(--paspartu) - 4px); border: 1px solid rgba(184, 153, 106, 0.5); pointer-events: none; }
.marco > img, .marco > video { width: 100%; background: var(--muro-2); }
button.marco { cursor: zoom-in; }
button.marco:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 50px 90px -40px #000, 0 18px 36px -16px #000, 0 0 0 1px rgba(184, 153, 106, 0.35); }

.marco__control, .marco__estado {
  position: absolute; right: calc(var(--paspartu) + 12px); bottom: calc(var(--paspartu) + 12px);
  display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px;
  border: 1px solid rgba(243, 239, 232, 0.25); border-radius: 999px; background: rgba(13, 12, 11, 0.6);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  color: var(--tinta); font: 500 12px/1 var(--sans); letter-spacing: 0.08em; text-transform: uppercase;
}
.marco__control { cursor: pointer; opacity: 0; transition: opacity 0.3s; }
.obra--viva:hover .marco__control, .marco__control:focus-visible, .marco__control[aria-pressed="true"] { opacity: 1; }
@media (hover: none) { .marco__control { opacity: 0.85; } }
.marco__estado { left: calc(var(--paspartu) + 12px); right: auto; pointer-events: none; }
.marco__estado::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--vivo); }

.cartela {
  display: grid; gap: 2px; margin-top: 20px; padding-left: 14px;
  border-left: 1px solid var(--oro); font-size: 13px; line-height: 1.45; color: var(--tinta-3);
}
.cartela__autor { color: var(--tinta-2); font-weight: 500; letter-spacing: 0.04em; }
.cartela__titulo { font-family: var(--serif); font-size: 19px; color: var(--tinta); }
/* El link a Miradas, para las galerías de la propuesta Sala. Va al pie de la
   cartela, discreto: es una invitación, no un botón que compita con la obra. */
.cartela__miradas {
  justify-self: start; margin-top: 8px; padding: 4px 12px 4px 10px;
  display: inline-flex; align-items: center; gap: 7px;
  border: 1px solid var(--borde-fuerte); border-radius: 999px;
  color: var(--tinta-2); text-decoration: none; font-size: 12px; letter-spacing: 0.02em;
}
.cartela__miradas::before { content: ""; width: 7px; height: 7px; border-radius: 50%;
                            background: var(--oro); flex: none; }
.cartela__miradas:hover { color: var(--tinta); border-color: var(--tinta-3); }
/* El crédito acordado de la animación (términos, versión 5) */
.cartela__credito { color: var(--tinta-3); font-size: 12px; letter-spacing: 0.02em; }
/* Compartir una obra con vida: lleva a su página propia, no al video */
.obra__compartir {
  justify-self: start; display: inline-flex; align-items: center; gap: 7px; margin-top: 14px;
  padding: 8px 16px; border: 1px solid var(--borde-fuerte); border-radius: 999px;
  color: var(--tinta-2); text-decoration: none; font-size: 14px;
}
.obra__compartir::before { content: "↗"; color: var(--oro); }
.obra__compartir:hover { color: var(--tinta); border-color: var(--tinta-3); }

/* ---- La página de una sola obra (la que se comparte) ---- */
.sola__obra { padding-top: clamp(24px, 5vw, 56px); padding-bottom: 56px; }
.sola .obra--viva .marco { max-width: 900px; }
.sola__galeria { margin-top: 40px; }
.sola .pie { display: grid; gap: 10px; }

/* ---- Las obras ---- */
.vivas { display: grid; gap: clamp(64px, 9vw, 120px); }
.obra__texto { margin-top: 18px; padding-left: 15px; color: var(--tinta-2); font-size: 16px; max-width: 42em; }
@media (min-width: 900px) and (max-width: 1139.98px) { .obra--viva .marco { max-width: 900px; } }
/* Las verticales, enteras y en su forma: tan altas como entren en la pantalla y
   centradas, en vez de estiradas a todo el ancho. */
.obra--vertical .marco { width: fit-content; max-width: 100%; margin-inline: auto; }
.obra--vertical .marco > video { display: block; width: auto; max-width: 100%; height: auto; max-height: min(80vh, 920px); }
/* En el celular las horizontales ocupan el ancho pero quedan bajas (≈370×210): una
   vertical a todo el alto se veía tres veces más grande. Así queda de un tamaño
   parecido, sin dejar de ser vertical. */
@media (max-width: 699px) {
  .obra--vertical .marco > video { max-height: min(50vh, 440px); max-height: min(50svh, 440px); }
}
/* En pantallas grandes la cartela se va al costado, al pie del cuadro, como en un museo:
   la obra se ve más grande y no queda medio lienzo vacío a la derecha. */
@media (min-width: 1140px) {
  .obra--viva {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 330px);
    grid-template-rows: 1fr auto auto auto auto; column-gap: clamp(32px, 4vw, 64px);
  }
  .obra--viva .marco { grid-column: 1; grid-row: 1 / -1; align-self: start; }
  .obra--viva .cartela { grid-column: 2; grid-row: 2; margin-top: 0; }
  .obra--viva .obra__texto { grid-column: 2; grid-row: 3; padding-left: 15px; max-width: none; }
  .obra--viva::before { right: 32%; }
}

.grilla { display: grid; gap: clamp(40px, 5vw, 64px) clamp(24px, 3vw, 40px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); align-items: start; }

/* ---- Visor ---- */
.visor {
  width: min(96vw, 1400px); max-width: none; max-height: 94dvh; padding: 0; border: 0; border-radius: 6px;
  background: var(--muro-2); color: var(--tinta); overflow: auto;
}
.visor::backdrop { background: rgba(5, 5, 4, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.visor__obra { padding: clamp(16px, 3vw, 40px); display: grid; gap: 20px; justify-items: center; }
/* ---- Acercarse a la obra ----
   El marco recorta y la imagen se mueve adentro. Sin esto, al acercarse la obra
   se derrama por encima de la cartela y de los botones. */
.visor__marco { max-width: 100%; max-height: 74dvh; overflow: hidden; border-radius: 2px;
                cursor: zoom-in; touch-action: pan-y; }
.visor__marco--cerca { cursor: grab; touch-action: none; }
.visor__marco--cerca:active { cursor: grabbing; }
.visor__obra img { display: block; max-height: 74dvh; max-width: 100%; width: auto;
                   transform-origin: center; user-select: none; -webkit-user-drag: none; }
.visor__pista { margin: 0; font-size: 12px; color: var(--tinta-3); letter-spacing: 0.02em;
                text-align: center; }
.visor__pista[hidden] { display: none; }
.visor .cartela { justify-self: start; }
.visor__cerrar, .visor__mover {
  position: fixed; z-index: 2; width: 44px; height: 44px; display: grid; place-items: center;
  border: 1px solid var(--borde); border-radius: 50%; background: rgba(13, 12, 11, 0.8); color: var(--tinta);
  font-size: 20px; line-height: 1; cursor: pointer;
}
.visor__cerrar { top: 16px; right: 16px; }
.visor__mover--antes { left: 16px; top: 50%; transform: translateY(-50%); }
.visor__mover--despues { right: 16px; top: 50%; transform: translateY(-50%); }
.visor__cerrar:hover, .visor__mover:hover { border-color: var(--tinta); }

/* ---- Pie ---- */
.pie {
  display: grid; gap: 24px; align-items: center; margin-top: clamp(90px, 13vw, 170px);
  padding-top: 44px; padding-bottom: max(44px, env(safe-area-inset-bottom));
  border-top: 1px solid var(--borde); font-size: 14px; color: var(--tinta-3);
}
@media (min-width: 760px) { .pie { grid-template-columns: auto 1fr; } .pie__legal { grid-column: 1 / -1; } .pie__sumate { justify-self: end; } }
.pie__marca { display: flex; align-items: center; gap: 14px; }
.pie__marca .marca__nombre { color: var(--tinta); }
.pie__sumate a { color: var(--tinta); }
.pie__legal { font-size: 13px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* El retrato del artista, cuando lo manda: al costado de su presentación. Ojo: sólo
   cuando lo manda. Antes la columna de 320 px se reservaba siempre y, sin retrato,
   la presentación quedaba apretada contra la izquierda con el hueco al lado. */
@media (min-width: 900px) {
  .presentacion:has(.retrato) { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(40px, 5vw, 80px); align-items: start; }
  .presentacion:has(.retrato) .presentacion__texto { order: -1; }
}
.retrato { max-width: 320px; margin: 0 0 32px; }
.retrato .marco { --paspartu: 10px; }
/* También tope de alto: con sólo el de ancho, una foto muy vertical (la de Boris, una
   captura de celular de 772×1476) crecía para abajo hasta 574 px, un 50% más que la de
   Dani. Así queda entera, más angosta y a la misma altura. Nunca se recorta. */
.retrato .marco, .tarjeta-artista .marco { width: fit-content; }
.retrato .marco > img { width: auto; max-width: 100%; height: auto; max-height: 390px; }
@media (min-width: 900px) { .retrato .marco { margin-inline: auto; } }

/* Una obra puede pedir doble ancho en la grilla (paisajes, políptico, mural) */
@media (min-width: 720px) { .pieza--ancha { grid-column: span 2; } }

/* ---- La tarjeta del artista, al pie: para que lo puedan contactar ---- */
.tarjeta-artista {
  display: grid; gap: clamp(24px, 4vw, 44px); align-items: center;
  padding: clamp(24px, 4vw, 44px);
  border: 1px solid var(--borde); border-radius: 8px; background: var(--muro-2);
}
/* Dos columnas solo si el artista mandó su retrato; si no, el texto usa todo el ancho */
@media (min-width: 760px) { .tarjeta-artista:has(figure) { grid-template-columns: 200px minmax(0, 1fr); } }
.tarjeta-artista .marco { --paspartu: 8px; max-width: 200px; }
.tarjeta-artista .marco > img { width: auto; max-width: 100%; height: auto; max-height: 260px; }
.tarjeta-artista h2 { margin-top: 6px; }
.tarjeta-artista__meta { margin-top: 10px; font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--tinta-3); }
.tarjeta-artista__texto { margin-top: 18px; color: var(--tinta-2); font-size: 16px; max-width: 34em; }
.contactos { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
@media (min-width: 900px) {
  .tarjeta-artista__datos {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    column-gap: clamp(32px, 5vw, 72px); align-items: center;
  }
  .tarjeta-artista__datos > :not(.contactos) { grid-column: 1; }
  .tarjeta-artista__texto { max-width: 44em; }
  .contactos {
    grid-column: 2; grid-row: 1 / -1; align-self: center;
    flex-direction: column; align-items: stretch; margin-top: 0;
  }
  .contactos a { justify-content: center; }
}
.contactos a, .contactos button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 0 20px; background: transparent; cursor: pointer;
  border: 1px solid var(--borde-fuerte); border-radius: 999px; color: var(--tinta);
  font: 400 15px/1 var(--sans); text-decoration: none; transition: background 0.3s var(--curva), color 0.3s var(--curva);
}
.contactos a:hover, .contactos button:hover { background: var(--tinta); color: var(--muro); border-color: var(--tinta); }
.contactos .principal { background: var(--tinta); color: var(--muro); border-color: var(--tinta); font-weight: 500; }
.contactos .principal:hover { background: transparent; color: var(--tinta); border-color: var(--borde-fuerte); }


/* ---- El formulario de consulta: escribirle al artista sin que se publique su mail ---- */
.consulta {
  width: min(94vw, 560px); max-width: none; max-height: 92dvh; padding: 0; border: 1px solid var(--borde);
  border-radius: 8px; background: var(--muro-2); color: var(--tinta); overflow: auto;
}
.consulta::backdrop { background: rgba(5, 5, 4, 0.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.consulta__caja { position: relative; display: grid; gap: 16px; padding: clamp(24px, 5vw, 40px); }
.consulta__caja h2 { font-size: clamp(1.8rem, 5vw, 2.4rem); }
.consulta__texto { color: var(--tinta-2); font-size: 15px; }
.consulta__cerrar {
  position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; display: grid; place-items: center;
  border: 0; border-radius: 50%; background: transparent; color: var(--tinta-3); font-size: 26px; cursor: pointer;
}
.consulta__cerrar:hover { color: var(--tinta); }
.consulta label { display: grid; gap: 7px; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tinta-3); }
.consulta input, .consulta textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--borde-fuerte); border-radius: 4px;
  background: var(--muro); color: var(--tinta); font: 400 16px/1.5 var(--sans); resize: vertical;
}
.consulta input:focus, .consulta textarea:focus { outline: none; border-color: var(--tinta-3); }
.consulta input[aria-invalid="true"], .consulta textarea[aria-invalid="true"] { border-color: var(--vivo); }
/* El campo que sólo completan los robots */
.consulta__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.consulta__pie { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 4px; }
.boton--claro { background: var(--tinta); color: var(--muro); border-color: var(--tinta); font-weight: 500; }
.boton--claro:hover { background: transparent; color: var(--tinta); border-color: var(--borde-fuerte); }
.boton[disabled] { opacity: 0.55; cursor: progress; }
.consulta__estado { min-height: 0; font-size: 15px; color: var(--tinta-2); }
.consulta__estado:empty { display: none; }
.consulta__estado--mal { color: var(--vivo); }
.consulta__estado--bien { color: var(--tinta); }
/* Cuando salió bien, el formulario desaparece y queda el gracias */
.consulta--enviada label, .consulta--enviada .consulta__texto { display: none; }

/* ---- El corazón de cada obra ---- */
.votar {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 8px; padding: 5px 12px 5px 9px;
  border: 1px solid var(--borde); border-radius: 999px; background: transparent;
  color: var(--tinta-3); font: 400 13px/1 var(--sans); cursor: pointer;
  transition: color 0.3s var(--curva), border-color 0.3s var(--curva);
}
.votar[hidden] { display: none; }
.votar svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.votar:hover { color: var(--tinta); border-color: var(--borde-fuerte); }
.votar--mio { color: var(--vivo); border-color: rgba(230, 103, 103, 0.4); cursor: default; }
.votar--mio svg { fill: currentColor; stroke: currentColor; }
.votar__cuenta { font-variant-numeric: tabular-nums; }

/* ---- El video donde el artista se presenta ---- */
/* Viene con las propuestas Lienzo y Sala y va arriba de las obras. Se lo deja más
   angosto que un cuadro: es alguien hablando a cámara, no una obra. */
.video-artista { max-width: 760px; margin: 0; }
.video-artista .marco > video { display: block; width: 100%; height: auto; }   /* en su forma, sin recortar */
/* El que se grabó con el celular en vertical: más angosto, y en la compu al lado del título. */
.video-artista--vertical { max-width: min(320px, 100%); }
@media (min-width: 900px) {
  .seccion--video-vertical { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 64px; align-items: center; }
  .seccion--video-vertical .seccion__cabeza { margin-bottom: 0; }
  .video-artista--vertical { width: 340px; max-width: none; }
}

/* El cambio de idioma de la galería, al lado de «Compartir». */
.cabecera__acciones { display: flex; align-items: center; gap: 14px; }
.idioma { color: var(--tinta-2); text-decoration: none; font-size: 13px; letter-spacing: 0.02em;
          border-bottom: 1px solid var(--borde-fuerte); padding-bottom: 2px; white-space: nowrap; }
.idioma:hover { color: var(--tinta); border-color: var(--tinta); }
@media (max-width: 520px) { .idioma { font-size: 12px; } }
/* En el celular no entraban la marca, el idioma y «Compartir» (unos 405 px en una
   pantalla de 390): la página quedaba más ancha que la pantalla y el visor y los
   cuadros se abrían corridos. Ahí queda sólo el ícono, que sigue llevando al sitio. */
@media (max-width: 460px) {
  .cabecera .marca__nombre { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}

/* Arte aumentado: abre la obra en /arte-aumentado/, para verla viva con la cámara */
.obra__aumentado {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 8px 16px;
  border: 1px solid var(--borde-fuerte); border-radius: 999px; text-decoration: none;
  color: var(--tinta-2); font-size: 14px; transition: border-color 0.3s, color 0.3s;
}
.obra__aumentado:hover { border-color: var(--tinta); color: var(--tinta); }
.obra__aumentado span { color: var(--vivo); }
@media (min-width: 1140px) {
  .obra--viva .obra__aumentado { grid-column: 2; grid-row: 4; justify-self: start; align-self: start; }
  .obra--viva .obra__compartir { grid-column: 2; grid-row: 5; align-self: start; }
}

/* El sello de la tecnología: DLA es cliente de MAIC Solutions (decidido el 2026-10-06) */
.powered { grid-column: 1 / -1; margin: 0; font-size: 12px; letter-spacing: 0.06em; color: var(--tinta-3); }
.powered a { color: var(--tinta-2); text-decoration: none; border-bottom: 1px solid var(--borde-fuerte); }
.powered a:hover { color: var(--tinta); }

/* El sello de la tecnología: el logo de MAIC, con enlace (pedido de Dani, 2026-10-06) */
.sello-maic { grid-column: 1 / -1; justify-self: start; display: inline-flex; flex-direction: column; gap: 8px;
              margin-top: 8px; text-decoration: none; color: var(--tinta-3); font-size: 11px;
              letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.8; }
.sello-maic img { display: block; width: 124px; height: auto; }
.sello-maic:hover { opacity: 1; }

/* «Sobre la obra» en la grilla: al lado del corazón, con el mismo aspecto. */
/* (no lleva la clase .votar: el JS de los votos toma todos los .votar) */
.sobre-boton {
  display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 5px 12px 5px 10px;
  justify-self: start; width: fit-content;
  border: 1px solid var(--borde); border-radius: 999px; background: transparent;
  color: var(--tinta-3); font: 400 13px/1 var(--sans); cursor: pointer;
  transition: color 0.3s var(--curva), border-color 0.3s var(--curva);
}
.sobre-boton:hover { color: var(--tinta); border-color: var(--borde-fuerte); }
.sobre-boton span { font-size: 15px; line-height: 1; }
.sobre__texto { white-space: pre-line; font-size: 16px; line-height: 1.6; }

/* ---- Lanzamientos: la obra a precio especial por unas horas ---- */
/* Texto corrido, no flex: con flex el texto y «quedan N h» eran dos columnas que se
   cortaban cada una por su lado, y la «h» quedaba sola abajo (Renacer, 2026-10-22). */
.cartela__lanzamiento {
  justify-self: start; display: inline-block; margin-top: 8px; line-height: 1.45;
  padding: 12px 16px; border: 1px solid var(--oro); border-radius: 22px;
  color: var(--tinta); font-size: 13px; text-decoration: none;
}
.cartela__lanzamiento::before { content: ""; display: inline-block; width: 7px; height: 7px; margin-right: 8px;
  border-radius: 50%; background: var(--vivo); vertical-align: 1px; }
.cartela__lanzamiento [data-quedan] { white-space: nowrap; }
.cartela__lanzamiento:hover { background: var(--oro); color: var(--muro); }
/* Como la página de una obra con vida: todo a la izquierda. El marco abraza la obra
   entera, sin franjas, y nunca más alto que la pantalla. */
.obra--quieta .marco { width: fit-content; max-width: min(900px, 100%); }
.obra--quieta img { max-height: 80vh; width: auto; }
.lanzamiento {
  max-width: 900px; margin-top: 32px; padding: clamp(20px, 4vw, 32px);
  border: 1px solid var(--borde-fuerte); border-radius: 4px; background: var(--muro-2);
  display: grid; gap: 14px;
}
.lanzamiento__rotulo { font-size: 12px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--oro); }
.lanzamiento__precios { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; }
.lanzamiento__precios b { font-family: var(--serif); font-weight: 300; font-size: clamp(2.4rem, 7vw, 3.4rem); line-height: 1; }
.lanzamiento__precios s { color: var(--tinta-3); font-size: 20px; }
.lanzamiento__cuenta { font-variant-numeric: tabular-nums; font-size: 19px; color: var(--tinta); min-height: 1.6em; }
.lanzamiento__hasta, .lanzamiento__nota { color: var(--tinta-2); font-size: 15px; }
.lanzamiento__nota { color: var(--tinta-3); font-size: 13px; }
.lanzamiento__botones { display: flex; flex-wrap: wrap; gap: 10px; }
.lanzamiento__botones .boton { min-height: 48px; }
.boton--lanzamiento { background: var(--tinta); color: var(--muro); border-color: var(--tinta); font-weight: 500; }
.lanzamiento__copiado { flex-basis: 100%; color: var(--tinta-2); font-size: 14px; }
.boton--lanzamiento:hover { background: transparent; color: var(--tinta); border-color: var(--borde-fuerte); }
.lanzamiento__despues { display: none; }
.lanzamiento--terminado .lanzamiento__durante { display: none; }
.lanzamiento--terminado .lanzamiento__despues { display: grid; gap: 14px; }
@media (max-width: 560px) {
  .lanzamiento__botones .boton { flex: 1 1 100%; justify-content: center; }
}
/* En la compu, el precio al lado de la obra: debajo quedaba fuera de la pantalla. */
@media (min-width: 960px) {
  .sola__obra:has(> .lanzamiento) {
    display: grid; grid-template-columns: minmax(0, auto) minmax(320px, 400px); gap: 0 48px;
    align-items: start; justify-content: start;
  }
  .sola__obra > .lanzamiento { margin-top: 0; position: sticky; top: 96px; }
  .sola__obra:has(> .lanzamiento) > .sola__galeria { grid-column: 1 / -1; }
  .sola__obra:has(> .lanzamiento) .obra--quieta img { max-height: calc(100vh - 220px); }
}
