/* Each room keeps its own palette; no single warm preset is applied to the collection. */
[data-photo-room] { --photo-finish: none; --photo-glow: #ead5a914; }
[data-photo-room=barcelona] { --photo-finish: brightness(1.07) contrast(1.10) saturate(1.13); --photo-glow: #d695691c; }
[data-photo-room=tahran] { --photo-finish: brightness(1.065) contrast(1.11) saturate(1.14); --photo-glow: #4faaa71a; }
[data-photo-room=tokyo] { --photo-finish: brightness(1.055) contrast(1.10) saturate(1.08); --photo-glow: #c18c8717; }
[data-photo-room=kuba] { --photo-finish: brightness(1.055) contrast(1.10) saturate(1.14); --photo-glow: #6097ad18; }
[data-photo-room=capetown] { --photo-finish: brightness(1.04) contrast(1.11) saturate(1.12); --photo-glow: #a3a28c1a; }
[data-photo-room=moskova] { --photo-finish: brightness(1.07) contrast(1.08) saturate(1.065); --photo-glow: #c3b5a51a; }
[data-photo-room=paris] { --photo-finish: brightness(1.04) contrast(1.09) saturate(1.10); --photo-glow: #caa59a17; }
[data-photo-room=dubai] { --photo-finish: brightness(1.025) contrast(1.085) saturate(1.08); --photo-glow: #d2bb881a; }
[data-photo-room=lasvegas] { --photo-finish: brightness(1.055) contrast(1.09) saturate(1.07); --photo-glow: #9da9ae18; }
[data-photo-room=misir] { --photo-finish: brightness(1.07) contrast(1.075) saturate(1.035); --photo-glow: #b7a58118; }
[data-photo-room=atina] { --photo-finish: brightness(1.025) contrast(1.065) saturate(1.015); --photo-glow: #c9bcaa17; }
[data-photo-room=roma] { --photo-finish: brightness(1.035) contrast(1.075) saturate(.98); --photo-glow: #b9a49414; }
body[data-theme] [data-photo-room] .room-image img,
body[data-theme] .showcase-slide[data-photo-room] > img,
body[data-theme] [data-photo-room] .room-photo-feature img,
body[data-theme] #gallery.room-photo-dialog img,
body[data-theme] [data-photo-room].premium-room-card:hover .room-image img { filter: var(--photo-finish); }
body[data-theme] [data-photo-room] .room-image::before { background: linear-gradient(140deg,var(--photo-glow),transparent 65%); mix-blend-mode: screen; }
/* Edited rasters already contain their room-specific finish. */
body[data-theme] img[data-retouched=true] { filter: none !important; }
body[data-theme] [data-photo-room] .room-image:has(img[data-retouched=true])::before { background: none; }

.room-photo-composition { display: grid; gap: 12px; min-width: 0; align-items: start; }
.room-photo-composition[data-photo-layout=portrait] { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; }
.room-photo-composition[data-photo-layout=landscape] { grid-template-columns: minmax(0,2.2fr) minmax(0,1fr); }
.room-photo-feature { display: grid; grid-template-rows: minmax(0,1fr) auto; padding: 0; min-width: 0; min-height: 0; width: 100%; border: 1px solid var(--line); border-radius: 4px; background: var(--dark-surface); color: var(--ink); text-align: left; overflow: hidden; box-shadow: 0 8px 24px #0806041a; }
.room-photo-mat { display: block; position: relative; min-width: 0; min-height: 0; aspect-ratio: var(--photo-aspect,3 / 4); overflow: hidden; background: radial-gradient(ellipse at center,var(--photo-glow),transparent 75%); }
.room-photo-feature img { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.room-photo-mat::after { content: ''; position: absolute; inset: 7px; border: 1px solid #fff3de2b; border-radius: 1px; pointer-events: none; }
.room-photo-zoom { position: absolute; right: 11px; bottom: 11px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #fff0d340; background: #17130bc7; color: #fff1da; font-size: 18px; }
.room-photo-feature-caption { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 43px; padding: 10px 13px; font-size: 11px; line-height: 1.4; color: var(--ink); border-top: 1px solid var(--line); }
.room-photo-feature-caption > span:last-child { color: var(--gold); }
.room-photo-feature:hover { border-color: var(--gold); }
.room-photo-feature:focus-visible { outline-offset: 3px; }
.room-photo-composition[data-photo-count="1"] { display: block; height: auto; max-width: 640px; }
.room-photo-composition[data-photo-count="1"][data-photo-layout=portrait] { max-width: 360px; }
.room-photo-composition[data-photo-count="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto; height: auto; }
.room-photo-composition[data-photo-count="2"][data-photo-layout=landscape] { grid-template-columns: minmax(0,2.2fr) minmax(0,1fr); }
.room-photo-library { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 0 4px; }
.room-photo-library p { margin: 0; color: var(--ink); font-size: 12px; line-height: 1.6; }
.room-photo-library p > span { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
.room-photo-library button { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 3px; background: transparent; color: var(--ink); font-size: 12px; flex-shrink: 0; }
.room-photo-library button:hover { border-color: var(--gold); }
.room-photo-fallback { display: grid; gap: 10px; font-size: 12px; }

body[data-theme] dialog#gallery.room-photo-dialog { width: min(1100px,94vw); height: min(880px,92dvh); max-width: 94vw; max-height: 92dvh; padding: 24px; border: 1px solid #b99c6359; border-radius: 5px; background: #161513; color: #f2eadb; }
body[data-theme] #gallery.room-photo-dialog::backdrop { background: #080c10ed; backdrop-filter: blur(6px); }
body[data-theme] #gallery.room-photo-dialog[open] { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto minmax(0,1fr) auto auto; gap: 14px; justify-items: stretch; align-items: stretch; justify-content: stretch; align-content: stretch; }
.room-photo-dialog-heading { padding-right: 48px; }
.room-photo-dialog-heading > div > span { display: block; font-size: 8px; letter-spacing: .15em; color: #cbb48a; }
body[data-theme] .room-photo-dialog-heading h2 { margin: 5px 0 0; font: 400 32px/1.1 var(--serif); color: #f2eadb; }
body[data-theme] #gallery.room-photo-dialog .gallery-close { display: grid; place-items: center; right: 16px; top: 16px; width: 44px; height: 44px; padding: 0; font: 28px/1 var(--sans); border-radius: 3px; }
.room-photo-filters { display: flex; gap: 7px; flex-wrap: wrap; padding: 0; }
body[data-theme] #gallery .room-photo-filters button { position: static; display: inline-flex; align-items: center; min-height: 40px; padding: 8px 12px; border: 1px solid #a58e693d; border-radius: 3px; font: 11px/1.4 var(--sans); background: transparent; color: #d5c9b8; }
body[data-theme] #gallery .room-photo-filters button[aria-pressed=true] { border-color: #c5a361; background: #c5a3611f; color: #f8dfaf; }
body[data-theme] #gallery .room-photo-filters button[hidden] { display: none; }
.room-photo-dialog-stage { position: relative; display: flex; justify-content: center; align-items: center; min-width: 0; min-height: 0; overflow: hidden; }
body[data-theme] #gallery.room-photo-dialog img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; margin: 0; object-fit: contain; border: 1px solid #fff0d32b; box-shadow: 0 12px 36px #0004; }
body[data-theme] #gallery [data-gallery-caption] { margin: 0; max-width: none; text-align: center; font-size: 12px; line-height: 1.6; color: #d5c9b8; }
body[data-theme] #gallery.room-photo-dialog .gallery-navigation { margin: 0; gap: 20px; }
body[data-theme] #gallery.room-photo-dialog .gallery-navigation button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 3px; }
body[data-theme] #gallery.room-photo-dialog .gallery-navigation button[hidden] { display: none; }
body[data-theme] #gallery.room-photo-dialog .gallery-counter { margin: 0; min-width: 62px; font-size: 12px; }

@media (max-width:600px) {
    .room-photo-composition[data-photo-layout], .room-photo-composition[data-photo-count="2"][data-photo-layout=landscape] { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto; height: auto; gap: 10px; }
    .room-photo-composition[data-photo-count="2"][data-photo-layout=landscape] .room-photo-feature:not(.room-photo-primary) { grid-column: 1 / -1; }
    .room-photo-composition[data-photo-count="2"][data-photo-layout=portrait] .room-photo-feature { grid-column: auto; }
    .room-photo-composition[data-photo-count="2"][data-photo-layout=landscape] .room-photo-feature:not(.room-photo-primary) .room-photo-mat { aspect-ratio: 4 / 3; }
    .room-photo-composition[data-photo-layout] .room-photo-primary { grid-column: 1 / -1; grid-row: auto; }
    .room-photo-composition[data-photo-layout] .room-photo-primary .room-photo-mat { max-height: 460px; }
    .room-photo-feature-caption { padding: 10px; font-size: 10px; }
    .room-photo-library { flex-wrap: wrap; gap: 12px; }
    .room-photo-library button { width: 100%; }
    body[data-theme] dialog#gallery.room-photo-dialog { width: 96vw; max-width: 96vw; height: 94dvh; max-height: 94dvh; padding: 16px 12px; }
    body[data-theme] #gallery.room-photo-dialog[open] { gap: 10px; }
    .room-photo-dialog-heading > div > span { font-size: 7px; letter-spacing: .10em; }
    body[data-theme] .room-photo-dialog-heading h2 { font-size: 28px; }
    .room-photo-filters { gap: 5px; }
    body[data-theme] #gallery .room-photo-filters button { font-size: 10px; padding: 8px 9px; min-height: 36px; }
    body[data-theme] #gallery [data-gallery-caption] { font-size: 11px; }
}
