.tourism-photos{display:flex;gap:12px;overflow-x:auto;max-width:100%;padding:14px 0 5px;scroll-snap-type:x proximity;white-space:normal}
.tourism-photo-card{flex:0 0 min(320px,85vw);max-width:100%;border:1px solid #d5e8e8;border-radius:20px;overflow:hidden;background:#fffefb;scroll-snap-align:start;color:#235153;box-shadow:0 5px 18px #1e3e4006}
.tourism-photo-card:only-child{flex-basis:100%;max-width:440px}
.tourism-photo-open{display:block;position:relative;width:100%;padding:0;border:0;border-radius:0;background:#dbf3f4;cursor:zoom-in}
.tourism-photo-frame{position:relative;aspect-ratio:16/9;background:linear-gradient(130deg,#e1efef,#edf6f6);display:grid;place-items:center;overflow:hidden}
.tourism-photo-frame img{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s}
.tourism-photo-frame.loaded img{opacity:1}
.tourism-photo-status{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#4f7778;font-size:12px;background:#dbf3f4}
.tourism-photo-expand{position:absolute;bottom:12px;left:12px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff9c;border-radius:11px;background:#fffefaeb;color:#225052;box-shadow:0 2px 10px #0c262815}
.tourism-photos svg,.tourism-photo-dialog svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.tourism-photo-body{padding:16px 18px 0}.tourism-photo-body h3{font-size:17px;margin:0 0 10px;line-height:1.7;overflow-wrap:anywhere}
.tourism-photo-credit{display:grid;gap:4px;font-size:11px;line-height:1.9;overflow-wrap:anywhere;color:#557879;padding-bottom:14px}
.tourism-photo-credit a{color:#296264;text-decoration:underline;text-underline-offset:4px;min-height:32px;display:inline-flex;align-items:center;width:fit-content;max-width:100%}
.tourism-photo-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px;font-size:12px}
.tourism-photo-actions a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:5px 10px;border-radius:10px;background:#e9f5f5;color:#296163;text-decoration:none;line-height:1.6}
.tourism-photo-actions a:hover{background:#d9f0f1}.tourism-photo-actions a:last-child:not(:first-child){background:transparent;border:1px solid #deeaea}
.tourism-photo-source{border-top:1px solid #e2eded;margin:0;font-size:11px;color:#678384}
.tourism-photo-source summary{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;user-select:none}
.tourism-photo-source summary::-webkit-details-marker{display:none}.tourism-photo-source[open] summary svg{transform:rotate(180deg)}
.tourism-photo-source summary:focus-visible{outline:3px solid #76bec2;outline-offset:1px;border-radius:5px}
.tourism-photo-dialog{box-sizing:border-box;width:min(960px,95vw);max-height:92dvh;padding:20px;background:#f8fdfc;color:#235153;border:1px solid #c9e5e6;border-radius:20px;overflow:auto}
.tourism-photo-dialog::backdrop{background:#112d2fb8}.tourism-photo-dialog h2{font-size:20px;margin:12px 0}
.tourism-photo-dialog>.tourism-photo-frame{aspect-ratio:auto;min-height:220px;height:min(58dvh,620px);border-radius:12px}
.tourism-photo-dialog img{object-fit:contain}.tourism-photo-dialog>.tourism-photo-credit{margin-top:12px}
.tourism-photo-dialog button{padding:9px 16px;border:1px solid #bfdedf;background:#e2f7f8;border-radius:10px;font:inherit;color:inherit;cursor:pointer}
.tourism-photo-open:focus-visible,.tourism-photo-dialog button:focus-visible{outline:3px solid #388688;outline-offset:-3px}
@media(max-width:380px){.tourism-photo-body{padding:12px 14px 0}.tourism-photo-actions{gap:6px;font-size:11px}.tourism-photo-actions a{padding:5px 8px}.tourism-photo-body h3{font-size:16px}}
@media(prefers-reduced-motion:reduce){.tourism-photo-frame img{transition:none}}
