/* Genuine EasyUC product captures. Classic uses its existing site tokens;
 * the two app themes opt into the same glass component vocabulary. */
.product-shots__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.product-shots__grid--single { grid-template-columns: minmax(0, 1fr); max-width: 1120px; margin-inline: auto; }
.product-shot { margin: 0; min-width: 0; overflow: hidden; border: 1px solid var(--border, #d8dfdf); border-radius: var(--r-card, 10px); background: var(--paper, #fff); }
.product-shot__open { display: grid; position: relative; aspect-ratio: 16 / 10; padding: 16px; background: var(--bg-tint, #edf3f3); color: var(--link, #006c70); text-decoration: none; }
.product-shot__image { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; border-radius: 5px; }
.product-shot__enlarge { display: inline-flex; align-items: center; gap: 7px; position: absolute; right: 24px; bottom: 24px; padding: 7px 11px; border: 1px solid var(--border, #d8dfdf); border-radius: 999px; background: var(--paper, #fff); color: var(--link, #006c70); font-size: 12px; font-weight: 600; box-shadow: 0 3px 12px rgba(15, 38, 41, .12); }
.product-shot__open:hover .product-shot__enlarge { color: var(--text-strong, #173b3d); box-shadow: 0 5px 18px rgba(15, 38, 41, .2); }
.product-shot__open:focus-visible { outline: 3px solid var(--link, #006c70); outline-offset: -4px; }
.product-shot__caption { padding: 22px 24px 24px; border-top: 1px solid var(--border, #d8dfdf); }
.product-shot__source { display: block; color: var(--text-2, #627476); font-size: 10px; line-height: 1.6; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.product-shot__language { display: block; margin-top: 4px; font-size: 12px; font-weight: 500; letter-spacing: normal; text-transform: none; }
.site .product-shot__title { margin: 10px 0 0; font-size: 19px; line-height: 1.45; }
.product-shot__description { margin: 10px 0 0; font-size: 14px; line-height: 1.75; color: var(--text-2, #627476); }
.product-shots__note { display: flex; margin: 20px 0 0; font-size: 13px; line-height: 1.65; color: var(--text-2, #627476); }
/* Hero embed replaces the illustration in-place, preserving surrounding editor keys. */
.site .media > .product-shot--hero { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; border: 0; border-radius: inherit; }
.product-shot--hero .product-shot__open { height: 100%; aspect-ratio: auto; padding: 18px 18px 54px; }
.product-shot--hero .product-shot__enlarge { right: 26px; bottom: 66px; }
.product-shot--hero .product-shot__caption { position: absolute; inset: auto 0 0; padding: 10px 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; background: var(--paper, #fff); }
.site .product-shot--hero .product-shot__title { margin: 0; font-size: 12px; line-height: 1.6; }
.product-shot--hero .product-shot__source { font-size: 9px; }
.product-shot--hero .product-shot__description { display: none; }
/* A translated source notice has a variable height; keep it outside the image. */
.product-shot--hero.product-shot--alternate-language { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.site .product-shot--hero.product-shot--alternate-language .product-shot__open { height: auto; min-height: 0; padding: 12px; }
.product-shot--hero.product-shot--alternate-language .product-shot__caption { position: static; }
.product-shot--hero.product-shot--alternate-language .product-shot__enlarge { right: 20px; bottom: 20px; }
/* One native modal per page, created progressively; plain links work without JS. */
.product-shots-is-open { overflow: hidden; }
.product-shots-viewer { width: min(1480px, calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 48px); padding: 0; border: 1px solid var(--border, #d8dfdf); border-radius: 14px; overflow: auto; background: var(--paper, #fff); color: var(--text, #173b3d); box-shadow: 0 24px 80px rgba(0, 0, 0, .35); }
.product-shots-viewer::backdrop { background: rgba(9, 16, 27, .76); }
.product-shots-viewer__toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 24px; border-bottom: 1px solid var(--border, #d8dfdf); }
.product-shots-viewer__heading { min-width: 0; }
.site .product-shots-viewer__title { margin: 0; font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; }
.product-shots-viewer__count { margin: 5px 0 0; color: var(--text-2, #627476); font-size: 12px; }
.product-shots-viewer__close { flex-shrink: 0; }
.product-shots-viewer__figure { margin: 0; }
.product-shots-viewer__image-wrap { background: var(--bg-tint, #edf3f3); display: grid; place-items: center; padding: 16px; }
.product-shots-viewer__error { max-width: 48ch; padding: 24px; color: var(--text-2, #627476); line-height: 1.7; }
.product-shots-viewer__image { display: block; width: 100%; height: auto; max-height: min(72dvh, 960px); object-fit: contain; }
.product-shots-viewer__caption { margin: 0; padding: 18px 24px 0; color: var(--text-2, #627476); font-size: 14px; line-height: 1.7; }
.product-shots-viewer__footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 18px 24px; }
.product-shots-viewer__navigation { display: flex; gap: 8px; }
.product-shots-viewer__original { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot { border-color: var(--ui-border); background: var(--ui-surface); border-radius: 18px; box-shadow: var(--ui-shadow); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot__open { background: var(--ui-surface-soft); padding: 12px; }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot__image { border-radius: 10px; }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot__enlarge { border-color: var(--ui-border); color: var(--ui-accent-text); background: var(--ui-surface-solid); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot__caption { border-color: var(--ui-border); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot--hero .product-shot__open { padding: 16px 16px 58px; }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot--hero .product-shot__caption { background: var(--ui-surface-solid); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shots-viewer { border-color: var(--ui-border); border-radius: 20px; background: var(--ui-surface-solid); color: var(--ui-text); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shots-viewer::backdrop { backdrop-filter: blur(6px); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shots-viewer__toolbar { border-color: var(--ui-border); }
html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shots-viewer__image-wrap { background: var(--ui-surface-soft); }
@media (max-width: 800px) {
  .product-shots__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .product-shots-viewer { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .product-shots-viewer__toolbar { padding: 16px; gap: 12px; }
  .site .product-shots-viewer__title { font-size: 16px; }
  .product-shots-viewer__close { min-width: 40px; }
  .product-shots-viewer__image-wrap { padding: 8px; }
  .product-shots-viewer__image { max-height: 65dvh; }
  .product-shots-viewer__caption { padding: 16px 16px 0; }
  .product-shots-viewer__footer { padding: 16px; }
}
@media (max-width: 480px) {
  .product-shot__caption { padding: 18px; }
  .site .product-shot__title { font-size: 17px; }
  .product-shot__open { padding: 8px; }
  .product-shot__enlarge { right: 16px; bottom: 16px; font-size: 11px; padding: 6px 9px; }
  .product-shot--hero .product-shot__caption { padding: 8px 12px; gap: 2px 8px; }
  .product-shot--hero .product-shot__enlarge { right: 18px; bottom: 66px; }
}
@media (prefers-reduced-transparency: reduce) {
  html:is([data-ui-theme="aurora"], [data-ui-theme="midnight"]) .product-shot { background: var(--ui-surface-solid); }
  .product-shots-viewer::backdrop { backdrop-filter: none; }
}
@media print {
  .product-shots-viewer, .product-shot__enlarge { display: none !important; }
  .product-shot { break-inside: avoid; box-shadow: none; }
  .product-shot__open { padding: 0; }
}

.product-shots-viewer [hidden] { display: none !important; }
