/* ════════════════════════════════════════════════════════════════════
   LA PUERTA SOÑADA DE LA FOTO — galería de ejemplos, visualizador a
   escala verdadera y plantillas de pared. Su materia: los tokens
   sellados de plaza.css (la escalera de la piedra, el secundario
   propio #A8A294, el papel de la Carta, las curvas firmadas).
   ════════════════════════════════════════════════════════════════════ */

.galeria,.vizsec,.plantsec,.maestros{position:relative;z-index:3;padding:2svh max(23px,calc(50% - 590px)) 4svh}
.galeria__box,.vizbox,.plantbox{width:min(680px,100%);margin:0 auto;border:1px solid var(--linea);background:var(--s1);background:var(--flotante-fondo);backdrop-filter:var(--flotante-difuminado);-webkit-backdrop-filter:var(--flotante-difuminado);padding:clamp(20px,4vw,32px)}
.galeria__intro,.viz__intro,.plant__intro{margin:0 0 20px;font:400 14.5px/1.6 var(--sans);color:var(--texto-cuerpo)}
.galeria__cierre{margin:18px 0 0;font:italic 400 14px/1.55 var(--serif);color:var(--gold-soft)}

/* ── la galería: fotos verdaderas, con su crédito ─────────────────── */
.galeria__grid{display:grid;grid-template-columns:1fr;gap:18px}
.ej{margin:0;border:1px solid var(--linea);background:var(--piedra)}
.ej img{display:block;width:100%;height:auto}
.ej figcaption{padding:12px 14px 14px}
.ej__gen{margin:0;font:italic 400 17px/1.2 var(--serif);color:var(--texto)}
.ej__obra{margin:5px 0 0;font:400 12px/1.5 var(--sans);color:var(--texto-2)}
.ej__dato{margin:10px 0 0;display:flex;align-items:baseline;gap:12px}
.ej__dato span{font:500 12px/1 var(--sans);letter-spacing:.14em;color:var(--texto-2)}
.ej__dato b{font:600 22px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--texto)}
@media(min-width:560px){.galeria__grid{grid-template-columns:1fr 1fr}.ej img{height:230px;object-fit:cover}}

/* ── la pared: pared de 2,40 m, sofá de 2 m, la foto a escala ─────── */
.pared{position:relative;margin:4px 0 10px;border:1px solid var(--linea);background:linear-gradient(180deg,#16191d 0%,#101215 81.8%,#3a3f45 82%,#0a0c0e 82.4%,#0d0f11 100%);overflow:hidden;aspect-ratio:24/13.5}
.pared__papel{position:absolute;left:50%;bottom:73%;transform:translateX(-50%);background:var(--papel);padding:3px;box-shadow:0 12px 26px rgba(0,0,0,.55);transition:width var(--dur-escena) var(--curva-inout)}
.pared__papel img{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain;display:block}
.pared__sofa{position:absolute;left:8.35%;bottom:4%;width:83.3%;height:auto;filter:drop-shadow(0 8px 8px rgba(0,0,0,.45))}
.pared__nota{margin:0 0 18px;font:400 12px/1.5 var(--sans);color:var(--texto-2)}

/* ── los formatos del visualizador ────────────────────────────────── */
.viz__formatos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.vizchip{appearance:none;border:1px solid var(--linea-fuerte);background:var(--s2);color:var(--texto-cuerpo);font:600 15px/1 var(--mono);font-variant-numeric:tabular-nums;padding:11px 14px;cursor:pointer;transition:background var(--dur-micro) var(--curva-out),color var(--dur-micro) var(--curva-out),border-color var(--dur-micro) var(--curva-out)}
.vizchip:hover{border-color:var(--gold)}
.vizchip--on{background:rgba(230,184,95,.14);border-color:var(--gold);color:var(--gold-soft)}
.viz__dato{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.viz__tam{font:500 13px/1.4 var(--sans);letter-spacing:.12em;color:var(--texto-2);text-transform:uppercase}
.viz__precio{font:600 clamp(38px,6vw,52px)/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--texto)}
.viz__sub{margin:8px 0 18px;font:400 13.5px/1.55 var(--sans);color:var(--texto-2)}
.vizbox .door{margin-top:2px}

/* ── las plantillas: composiciones con su total nacido ────────────── */
.plantilla{border-top:1px solid var(--linea);padding:20px 0 6px}
.plantilla__nombre{margin:0 0 14px;font:italic 400 20px/1.2 var(--serif);color:var(--texto)}
.plantilla__pared{display:flex;align-items:flex-end;gap:10px;border:1px solid var(--linea);background:linear-gradient(180deg,#14171b,#0e1013);padding:18px 14px}
.plantilla__pared--esc{align-items:flex-start}
.plantilla__pared--esc .mini--alta{margin-top:26px}
.mini{display:block;background:var(--papel);padding:2px;box-shadow:0 6px 14px rgba(0,0,0,.5)}
.mini img{display:block;width:100%;height:100%;object-fit:cover}
.plantilla__suma{margin:14px 0 0;font:500 13.5px/1.5 var(--mono);font-variant-numeric:tabular-nums;color:var(--texto-2)}
.plantilla__total{margin:4px 0 12px;font:400 15px/1.5 var(--sans);color:var(--texto-cuerpo)}
.plantilla__total b{font:600 24px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--texto)}

/* ── la puerta completa (2026-10-26): composiciones, maestros, acércate ── */
.ej__nota{margin:7px 0 0;font:400 12px/1.5 var(--sans);color:var(--gold-soft)}
.ej .door{margin-top:12px}
.plantilla__pared--rejilla{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch}
.plantilla__pared--rejilla .mini img{height:100%}
.plantilla__pared--escalera{align-items:flex-end}
.mini--tercio{overflow:hidden}
.mini--tercio img{object-fit:cover}
.acercate-btn{appearance:none;display:block;margin:0 0 14px;border:1px solid var(--linea-fuerte);background:var(--s2);color:var(--texto);font:600 14px/1 var(--sans);padding:12px 16px;cursor:pointer}
.acercate-btn:hover{border-color:var(--gold)}
.cerca{position:fixed;inset:0;z-index:60;background:var(--piedra);display:flex;flex-direction:column}
.cerca[hidden]{display:none}
.cerca__img{flex:1;min-height:0;width:100%;object-fit:contain;background:var(--piedra)}
.cerca__txt{margin:0;padding:16px 23px calc(16px + env(safe-area-inset-bottom));font:400 14.5px/1.6 var(--sans);color:var(--texto-cuerpo);text-align:center}
.cerca__cerrar{position:absolute;top:10px;right:12px;z-index:2;appearance:none;border:1px solid var(--linea-fuerte);background:var(--s2);color:var(--texto);font:400 22px/1 var(--sans);width:42px;height:42px;cursor:pointer}

@media(max-width:640px){
  .galeria,.vizsec,.plantsec,.maestros{padding-left:23px;padding-right:23px}
  .pared__papel{padding:2px}
  .pared__papel img{inset:2px;width:calc(100% - 4px);height:calc(100% - 4px)}
}

/* ── cura del héroe (2026-10-26): la línea de la plaza, en el flujo ──
   La regla global .hero .roman saca la línea del flujo y la ancla en
   absoluto con top/left pensados para el héroe abierto; dentro del
   pie de la puerta ese ancla caía sobre el título, que la tapaba y
   le comía el inicio. Aquí la línea entra como primera línea de la
   palabra de la casa — en el flujo, sobre el rótulo: completa a
   cualquier ancho, sin solapar el título ni la foto. Sin tocar una
   letra del texto ni la foto. */
.puerta--foto .puerta__txt .roman{position:static}
