/* Gallery controls change the displayed face before opening the lightbox. */
.book-gallery{width:100%;min-width:0}
body:has(#cover-dialog[open]){overflow:hidden}
.book-stage.book-gallery{padding:36px 14px 22px}
.gallery-frame{position:relative;width:100%;padding-inline:48px}
.gallery-image-button{display:block;border:0;background:none;padding:0;width:100%;max-width:327px;margin:0 auto;cursor:zoom-in;box-shadow:7px 10px 18px #23392b24}
.gallery-image-button img{display:block;width:100%;height:auto;aspect-ratio:990/1400;object-fit:contain;background:#fff}
.gallery-arrow{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid #bac1b6;border-radius:50%;background:#fff;color:#304b3c;font:24px/1 Arial,sans-serif;cursor:pointer;transition:background .15s}
.gallery-arrow:hover{background:#e9eee4}
.gallery-prev,.gallery-next{position:absolute;top:calc(50% - 22px)}
.gallery-prev{left:0}.gallery-next{right:0}
.gallery-caption{margin:20px 0 0!important;text-align:center;font-size:14px;line-height:1.5;color:var(--ink)}
.gallery-hint{margin:5px 0 0!important;text-align:center;font-size:12px;line-height:1.5;color:var(--muted)}
.gallery-image-button:focus-visible,.gallery-arrow:focus-visible,.cover-close:focus-visible{outline:3px solid #526b3b;outline-offset:3px}

/* Explicit grid rows allocate only the remaining viewport height to the image.
   Neither the original image size nor the accessible transcript can add scroll. */
#cover-dialog.cover-lightbox{width:min(880px,calc(100vw - 24px));height:min(940px,calc(100dvh - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid #ccd2c7;background:#fff;color:#28392e;border-radius:4px;overflow:hidden;margin:auto}
#cover-dialog.cover-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.cover-lightbox-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #dbe0d6}
.cover-lightbox-header h2{margin:0;font:500 17px/1.3 Arial,sans-serif;letter-spacing:0;text-wrap:initial}
.cover-close{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 12px;border:0;background:#eff2ea;color:inherit;font:14px/1.2 Arial,sans-serif;cursor:pointer;white-space:nowrap}
.cover-close span{font-size:24px}
.cover-lightbox-media{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:12px 16px;overflow:hidden}
#cover-dialog [data-cover-image]{display:block;width:100%;height:100%;min-height:0;max-width:100%;max-height:100%;object-fit:contain;flex:none}
.cover-lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:8px 16px 12px}
.cover-lightbox-controls p{margin:0;min-width:142px;text-align:center;font:14px/1.4 Arial,sans-serif}
#cover-dialog .book-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;top:0;left:0}
@media(max-width:650px){.book-stage.book-gallery{padding:25px 10px 20px}.gallery-frame{padding-inline:44px}.gallery-caption{margin-top:16px!important}.cover-lightbox-header{padding:8px 12px}.cover-lightbox-header h2{font-size:15px}.cover-lightbox-media{padding:8px}.cover-lightbox-controls{gap:14px;padding:6px 12px 8px}.cover-lightbox-controls p{min-width:128px}}
@media(max-height:430px){.cover-lightbox-header{padding:4px 12px}.cover-lightbox-media{padding:4px}.cover-lightbox-controls{padding:2px 12px 4px}}
@media(prefers-reduced-motion:reduce){.gallery-arrow{transition:none}}
