.portal-image-link { display: block; min-width: 0; color: inherit; text-decoration: none; cursor: zoom-in; }
.portal-image-link:focus-visible { outline: 3px solid #8a6d3b; outline-offset: 5px; }
.portal-image-hint { display: block; padding: .6rem; text-align: center; font: 600 .9rem/1.4 Arial, sans-serif; text-decoration: underline; }
.portal-image-dialog { box-sizing: border-box; width: min(96vw, 1720px); max-width: 96vw; max-height: 94vh; max-height: 94dvh; padding: 1rem; border: 0; border-radius: 10px; background: #f7f5f0; color: #1f3340; }
.portal-image-dialog::backdrop { background: rgba(0, 0, 0, .8); }
.portal-image-toolbar { display: flex; justify-content: flex-end; gap: .75rem; margin-bottom: .75rem; }
.portal-image-toolbar button { min-height: 44px; padding: .65rem 1rem; border: 2px solid #1f3340; border-radius: 5px; background: #fff; color: #1f3340; font: 600 1rem/1.2 Arial, sans-serif; cursor: pointer; }
.portal-image-toolbar button:focus-visible { outline: 3px solid #8a6d3b; outline-offset: 3px; }
.portal-image-scroll { overflow: auto; max-height: 70vh; max-height: 70dvh; background: #fff; }
.portal-image-scroll img { display: block; width: auto; height: auto; max-width: 100%; max-height: 70vh; max-height: 70dvh; margin: auto; }
.portal-image-dialog.is-zoomed .portal-image-scroll img { max-width: none; max-height: none; margin: 0; }
.portal-image-description { margin: .75rem 0 0; font: .9rem/1.4 Arial, sans-serif; }
html.portal-image-open { overflow: hidden; }
.editorial-hub-card > .portal-image-link img { display: block; width: 100%; height: auto; }
.editorial-hub-card .portal-image-hint { color: #f7f5f0; }
