/* Real-photograph controls, isolated from catalogue and gift commerce styles. */
.mgx-media-host { position: relative; }
.mgx-catalogue-3190 .mgx-media-trigger,
.mgx-gift-composition .mgx-media-trigger,
.mgx-quickview .mgx-media-trigger {
  position: absolute; z-index: 2; top: 18px; right: 18px;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  width: auto; min-width: 44px; height: 44px; min-height: 44px;
  margin: 0; padding: 9px 12px; border: 1px solid rgba(11,43,61,.16);
  border-radius: 999px; background: rgba(255,250,245,.97); color: #0b2b3d;
  font: 400 10px/1.4 "Libre Baskerville", Georgia, serif;
  letter-spacing: 0; text-transform: none; cursor: zoom-in;
  box-shadow: 0 3px 16px rgba(11,43,61,.07);
}
.mgx-media-trigger svg { flex: 0 0 18px; width: 18px; height: 18px; }
.mgx-media-trigger[hidden], .mgx-media-viewer [hidden] { display: none !important; }
.mgx-catalogue-3190 .mgx-media-trigger:hover,
.mgx-gift-composition .mgx-media-trigger:hover,
.mgx-quickview .mgx-media-trigger:hover { background: #0b2b3d; color: #fffaf5; border-color: #0b2b3d; }
.mgx-catalogue-3190 .mgx-products.has-few-products > .mgx-product:only-child > .mgx-media-trigger { right: calc(47.5% + 18px); }
.mgx-gift-composition [data-gift-component] > .mgx-media-trigger { top: 10px; right: 10px; width: 44px; padding: 0; }
.mgx-gift-composition [data-gift-component] > .mgx-media-trigger > span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mgx-quickview .mgx-media-trigger { top: auto; bottom: 18px; }
body.mgx-media-open { overflow: hidden; }
dialog.mgx-media-viewer {
  position: fixed; inset: 0; display: grid; grid-template-rows: auto minmax(0,1fr) auto;
  width: min(1220px, calc(100% - 48px)); max-width: none;
  height: min(860px, calc(100vh - 48px)); height: min(860px, calc(100dvh - 48px));
  max-height: none; margin: auto; padding: 0; overflow: hidden;
  border: 1px solid rgba(255,250,245,.2); border-radius: 26px;
  background: #fffaf5; color: #0b2b3d; box-shadow: 0 30px 120px rgba(7,31,45,.3);
  font: 400 13px/1.6 "Libre Baskerville", Georgia, serif;
  text-align: left; letter-spacing: normal;
}
dialog.mgx-media-viewer:not([open]) { display: none; }
.mgx-media-viewer::backdrop { background: rgba(7,31,45,.78); }
.mgx-media-viewer *, .mgx-media-viewer *::before, .mgx-media-viewer *::after { box-sizing: border-box; }
.mgx-media-viewer__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; border-bottom: 1px solid rgba(11,43,61,.1); }
.mgx-media-viewer__header > div { min-width: 0; }
.mgx-media-viewer .mgx-media-viewer__header p { margin: 0 0 4px; color: #9d4837; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.mgx-media-viewer .mgx-media-viewer__header h2 { margin: 0; color: #0b2b3d; font: 400 clamp(18px,2.2vw,26px)/1.3 "Libre Baskerville", Georgia, serif; text-transform: none; letter-spacing: -.02em; overflow-wrap: anywhere; }
.mgx-media-viewer .mgx-media-viewer__close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; border: 1px solid rgba(11,43,61,.18); border-radius: 50%; background: transparent; color: #0b2b3d; font: 400 28px/1 Georgia, serif; cursor: pointer; }
.mgx-media-viewer__viewport { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; background: #efebe5; scrollbar-color: #7c827f #e5e0d8; scrollbar-width: thin; }
.mgx-media-viewer__canvas { display: grid; place-items: center; min-width: 100%; min-height: 100%; }
.mgx-media-viewer .mgx-media-viewer__image { display: block; width: auto; height: auto; max-width: none; max-height: none; margin: 0; padding: 0; object-fit: contain; border: 0; border-radius: 0; user-select: none; -webkit-user-drag: none; }
.mgx-media-viewer.is-zoomed .mgx-media-viewer__viewport { cursor: grab; }
.mgx-media-viewer .mgx-media-viewer__viewport.is-dragging { cursor: grabbing; }
.mgx-media-viewer__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 24px; border-top: 1px solid rgba(11,43,61,.1); }
.mgx-media-viewer .mgx-media-viewer__hint, .mgx-media-viewer .mgx-media-viewer__status { margin: 0; color: #52616a; font-size: 11px; line-height: 1.65; }
.mgx-media-viewer .mgx-media-viewer__status:not(:empty) { margin-top: 5px; }
.mgx-media-viewer .mgx-media-viewer__zoom { flex: 0 0 auto; min-width: 150px; min-height: 44px; margin: 0; padding: 10px 16px; border: 1px solid #0b2b3d; border-radius: 999px; background: #0b2b3d; color: #fffaf5; font: 400 11px/1.5 "Libre Baskerville", Georgia, serif; letter-spacing: 0; text-transform: none; cursor: pointer; }
.mgx-media-viewer .mgx-media-viewer__zoom:hover { background: #c95f4b; border-color: #c95f4b; color: #fffaf5; }
.mgx-media-viewer .mgx-media-viewer__close:hover { background: #f3ece4; color: #0b2b3d; }
.mgx-media-viewer .mgx-media-viewer__zoom:disabled { opacity: .5; cursor: wait; }
.mgx-media-viewer :is(button,[tabindex]):focus-visible, .mgx-catalogue-3190 .mgx-media-trigger:focus-visible, .mgx-gift-composition .mgx-media-trigger:focus-visible, .mgx-quickview .mgx-media-trigger:focus-visible { outline: 3px solid #c95f4b; outline-offset: 3px; }
.mgx-media-viewer__viewport:focus-visible { outline-offset: -4px !important; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .mgx-catalogue-3190 .mgx-media-host .mgx-creation__visual > img { transition: transform .45s ease; }
  .mgx-catalogue-3190 .mgx-media-host .mgx-product__image:hover .mgx-creation__visual > img { transform: scale(1.035); }
}
@media (max-width: 680px) {
  .mgx-catalogue-3190 .mgx-media-trigger { width: 44px; padding: 0; }
  .mgx-catalogue-3190 .mgx-media-trigger > span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .mgx-catalogue-3190 .mgx-products.has-few-products > .mgx-product:only-child > .mgx-media-trigger { right: 18px; }
  dialog.mgx-media-viewer { width: calc(100% - 20px); height: calc(100vh - 20px); height: calc(100dvh - 20px); border-radius: 20px; }
  .mgx-media-viewer__header { gap: 12px; padding: 16px; }
  .mgx-media-viewer .mgx-media-viewer__header h2 { font-size: 18px; }
  .mgx-media-viewer__footer { flex-wrap: wrap; justify-content: center; gap: 12px; padding: 14px 16px; text-align: center; }
  .mgx-media-viewer__footer > div { flex-basis: 100%; }
}
@media (prefers-reduced-motion:reduce) {
  .mgx-media-viewer *, .mgx-media-trigger { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
