/* Footer partner logo zoom: independent of image links and existing footer layout. */
footer .ddd-footer-partner-item .ddd-footer-partner-zoom {
  position: relative;
  width: 100%; min-width: 0; min-height: 100%;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 10px; padding: 0;
  background: transparent; cursor: zoom-in;
  color: inherit; font: inherit;
}
footer .ddd-footer-partner-zoom:focus-visible {
  outline: 3px solid #0c97ba; outline-offset: 3px;
}
footer .ddd-footer-zoom-mark {
  position: absolute; right: 2px; bottom: 2px;
  width: 32px; height: 32px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.95); color: #194b65;
  border: 1px solid #d9e8ee; border-radius: 50%;
  box-shadow: 0 3px 14px rgba(21,49,67,.1);
  font-size: 22px; line-height: 1;
  opacity: 0; transform: translateY(3px);
  transition: opacity .18s, transform .18s;
  pointer-events: none;
}
footer .ddd-footer-partner-zoom:hover .ddd-footer-zoom-mark,
footer .ddd-footer-partner-zoom:focus-visible .ddd-footer-zoom-mark {
  opacity: 1; transform: translateY(0);
}
/* Viewer is outside the scrolling logo row. Fixed positioning avoids clipping. */
.ddd-footer-logo-lightbox[hidden] { display: none !important; }
.ddd-footer-logo-lightbox {
  position: fixed; inset: 0; z-index: 1000010;
  padding: clamp(12px, 4vw, 36px);
  display: flex; align-items: center; justify-content: center;
  background: rgba(9, 29, 44, .82);
  backdrop-filter: blur(7px);
}
.ddd-footer-logo-lightbox-content {
  position: relative;
  max-width: min(1050px, 100%); width: 100%;
  max-height: calc(100dvh - 24px);
  display: flex; flex-direction: column; align-items: center; gap: 15px;
  padding: clamp(16px, 3vw, 28px);
  border-radius: 22px; background: #fff;
  box-shadow: 0 25px 80px rgba(0,0,0,.25);
  overflow: auto;
}
.ddd-footer-logo-lightbox-image {
  display: block; width: auto; max-width: 100%; height: auto;
  max-height: min(76dvh, 900px); object-fit: contain;
  background: #fff;
}
.ddd-footer-logo-lightbox-close {
  position: absolute; top: 9px; right: 10px;
  width: 42px; height: 42px;
  display: grid; place-items: center;
  border: 1px solid #dce8ec; border-radius: 50%;
  background: #fff; color: #163e51;
  font-size: 28px; line-height: 1; cursor: pointer;
}
.ddd-footer-logo-lightbox-close:hover { background: #eef8fa; }
.ddd-footer-logo-lightbox-close:focus-visible,
.ddd-footer-logo-lightbox-link:focus-visible { outline: 3px solid #168bb2; outline-offset: 3px; }
.ddd-footer-logo-lightbox-link {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px; padding: 10px 20px;
  background: #e9f7fa; color: #145a75;
  text-decoration: none; font-weight: 700;
}
.ddd-footer-logo-lightbox-link[hidden] { display:none !important; }
body.ddd-footer-lightbox-open { overflow: hidden; }
@media (max-width: 600px) {
  .ddd-footer-logo-lightbox { padding: 12px; }
  .ddd-footer-logo-lightbox-content { padding: 55px 12px 18px; border-radius: 16px; }
  .ddd-footer-logo-lightbox-image { max-height: 65dvh; }
  footer .ddd-footer-zoom-mark { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  footer .ddd-footer-zoom-mark { transition: none; transform: none; }
}
