.gallery-inline-source { margin-top: 0; }
.about-copy .about-actions { align-items: stretch; }
.about-copy .about-actions > .wp-block-button { width: auto; }
.about-copy .about-actions .wp-block-button__link { width: auto; }
.certificates details[hidden], [data-certificate-gallery] details[hidden] { display: none; }
/* Reserve from existing content so enhancement never changes unrelated pages. */
html:has(.certificates, [data-certificate-gallery]) { scrollbar-gutter: stable; }
@media (min-width: 741px) {
  html:has(.topics, .wp-block-gallery, [data-image-gallery]) { scrollbar-gutter: stable; }
}
html:has(.gallery-dialog[open]) { overflow: hidden; }
.topic-card > figure > .gallery-image-link { display: block; width: 100%; height: 100%; }
.gallery-media-link { position: relative; display: inline-block; max-width: 100%; vertical-align: middle; }
.gallery-media-link::before { content: ""; position: absolute; z-index: 1; inset: 0; background: rgb(12 26 25 / .6); opacity: 0; transition: opacity 180ms ease; pointer-events: none; }
.gallery-open-cue { position: absolute; z-index: 2; inset: 50% auto auto 50%; display: flex; flex-direction: column; align-items: center; gap: 6px; width: max-content; max-width: calc(100% - 12px); padding: 9px 12px; transform: translate(-50%, -50%); border-radius: 3px; color: white; opacity: 0; transition: opacity 180ms ease; font: 14px/1.3 var(--font-ui); pointer-events: none; }
.gallery-open-label { white-space: nowrap; }
.gallery-open-cue svg { display: block; flex: 0 0 auto; width: 28px; height: 28px; }
.gallery-media-link:is(:hover, :focus-visible)::before,
.gallery-media-link:is(:hover, :focus-visible) > .gallery-open-cue { opacity: 1; }
@media (hover: none), (pointer: coarse) {
  /* Keep a quiet action hint visible while leaving the artwork clear. */
  .gallery-open-cue { opacity: 1; }
  .gallery-media-link:not(:hover):not(:focus-visible) > .gallery-open-cue { inset: auto auto 8px 8px; flex-direction: row; gap: 5px; padding: 4px 6px; transform: none; opacity: 1; font-size: 12px; }
  .gallery-media-link:not(:hover):not(:focus-visible) > .gallery-open-cue svg { width: 15px; height: 15px; filter: drop-shadow(0 1px 2px rgb(12 26 25 / .9)); }
  .gallery-media-link:not(:hover):not(:focus-visible) > .gallery-open-cue .gallery-open-label { display: none; }
  .review-media-item:not(:first-child):not(:hover):not(:focus-visible) .gallery-open-cue { inset: auto auto 4px 4px; padding: 3px; }
  .review-media-item:not(:first-child):not(:hover):not(:focus-visible) .gallery-open-cue svg { width: 13px; height: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-media-link::before, .gallery-open-cue { transition: none; }
}
a[aria-haspopup="dialog"][target="_blank"]::after { content: none; }
.gallery-dialog { width: min(1080px, calc(100% - 36px)); max-width: none; max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); margin: auto; padding: 24px; border: var(--border-surface); border-radius: var(--radius-card); box-shadow: var(--shadow-dialog); overflow: auto; color: var(--color-ink); background: var(--color-paper); }
.gallery-dialog::backdrop { background: var(--dialog-backdrop); }
.gallery-title { margin: 0 176px 24px 0; text-align: left; overflow-wrap: anywhere; font: 32px/1.4 var(--font-display); }
.gallery-dialog button { cursor: pointer; color: var(--color-ink); }
.gallery-close { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--color-sand); font: 28px/1 Arial, sans-serif; }
.gallery-stage { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; align-items: center; gap: 12px; }
/* One stage size keeps navigation still across landscape and portrait scans. */
:is(.gallery-main, .gallery-video) { grid-column: 2; grid-row: 1; display: block; width: 100%; min-width: 0; height: min(50vh, 520px); height: min(50dvh, 520px); object-fit: contain; background: transparent; }
.gallery-video { background: #0c1a19; }
.gallery-dialog--single :is(.gallery-main, .gallery-video) { grid-column: 1 / -1; }
.gallery-caption { margin: 16px 60px 0; font: var(--type-meta)/var(--leading-ui) var(--font-ui); overflow-wrap: anywhere; }
.gallery-dialog :is(.gallery-previous, .gallery-next) { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; }
.gallery-dialog :is(.gallery-previous, .gallery-next):focus-visible { outline: var(--focus-ring); outline-offset: 4px; }
.gallery-previous { grid-column: 1; grid-row: 1; }
.gallery-next { grid-column: 3; grid-row: 1; }
:is(.gallery-previous, .gallery-next) svg { width: 22px; height: 22px; }
.gallery-toolbar { position: absolute; top: 12px; right: 124px; display: flex; align-items: center; min-height: 44px; margin: 0; }
.gallery-count { color: var(--text-muted); white-space: nowrap; font: var(--type-meta)/var(--leading-ui) var(--font-ui); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.gallery-count-current { color: var(--color-accent); font-weight: 700; }
.gallery-original { position: absolute; top: 12px; right: 64px; z-index: 5; display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--surface-support); color: var(--color-accent); font: 18px/1 var(--font-ui); text-decoration: none; transition: background-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
.gallery-original:is(:hover, :focus-visible) { background: #c8dcda; color: var(--color-ink); text-decoration: none; }
@media (forced-colors: active) {
  .gallery-original:focus-visible { forced-color-adjust: none; background: Highlight; color: HighlightText; }
  .gallery-original:focus-visible::after { background: currentColor; }
}
.gallery-thumbnails { display: flex; gap: 10px; position: relative; overflow-x: auto; padding: 5px; margin: 18px 55px 0; }
.gallery-thumbnail { position: relative; flex: 0 0 80px; height: 80px; box-sizing: border-box; padding: 3px; border: 2px solid transparent; border-radius: 3px; background: white; }
.gallery-video-mark { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: white; background: rgb(12 26 25 / .8); font: 12px/1 sans-serif; }
.gallery-thumbnail img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-thumbnail[aria-pressed=true] { border-color: var(--color-blue); }
.gallery-thumbnail:focus-visible { outline-offset: -3px; }
.gallery-dialog [hidden] { display: none; }
@media (max-width: 640px) {
  .gallery-dialog { width: calc(100% - 32px); max-width: revert; padding: 24px 22px; }
  .gallery-title { font-size: 28px; margin-right: 0; margin-bottom: 20px; }
  /* Share the first line with the actions; longer titles regain full width. */
  .gallery-title::before { content: ""; float: right; width: 96px; height: 36px; }
  .about-copy .about-actions .wp-block-button__link { min-width: 0; }
  .gallery-stage { gap: 14px 8px; }
  .gallery-previous, .gallery-next { grid-row: 2; }
  :is(.gallery-main, .gallery-video) { grid-column: 1 / -1; height: auto; aspect-ratio: 4 / 3; }
  .gallery-count { grid-row: 2; grid-column: 2; text-align: center; }
  .gallery-toolbar { display: none; }
  .gallery-caption { margin-inline: 0; }
  .gallery-thumbnails { margin-inline: -5px; margin-top: 14px; }
  .gallery-thumbnail { flex-basis: 65px; height: 65px; }
}
@media (max-height: 600px) {
  .gallery-dialog { padding-block: 20px; }
  .gallery-title { font-size: 26px; margin-bottom: 16px; }
}
@media (max-width: 640px) and (max-height: 600px) {
  .gallery-title { padding-top: 4px; }
}
