/* MC Carrusel: isolated from WordPress/Elementor gallery styles. */
.mcc-gallery,
.mcc-gallery * { box-sizing:border-box; }
.mcc-gallery {
  --mcc-ink:#152f41;
  --mcc-muted:#6b7780;
  --mcc-gap:16px;
  --mcc-bg:#f4f5f5;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:24px auto 32px;
  font-family:inherit;
  color:var(--mcc-ink);
}
.mcc-gallery__top { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; margin-bottom:15px; }
.mcc-gallery__title { margin:0 !important; font:inherit; font-weight:700 !important; font-size:clamp(17px,2vw,23px) !important; color:var(--mcc-ink) !important; line-height:1.25 !important; }
.mcc-gallery__eyebrow { font-size:12px; letter-spacing:.13em; text-transform:uppercase; font-weight:700; color:var(--mcc-muted); }
.mcc-gallery__controls { display:flex; gap:8px; align-items:center; flex-shrink:0; }
.mcc-gallery__counter { font-variant-numeric:tabular-nums; min-width:76px; text-align:center; color:var(--mcc-muted); letter-spacing:.04em; font-size:13px; }
.mcc-gallery button.mcc-gallery__arrow {
  display:grid !important; place-items:center !important;
  width:38px !important; height:38px !important; min-width:38px;
  padding:0 !important; margin:0 !important;
  border:1px solid #dbe1e4 !important; border-radius:100px !important;
  background:#fff !important; color:var(--mcc-ink) !important;
  box-shadow:none !important; line-height:1 !important;
  cursor:pointer; transition:background .2s ease,color .2s ease,transform .2s ease;
}
.mcc-gallery button.mcc-gallery__arrow:hover { background:var(--mcc-ink) !important; color:#fff !important; transform:translateY(-2px); }
.mcc-gallery button.mcc-gallery__arrow:focus-visible,
.mcc-gallery button.mcc-gallery__photo:focus-visible,
.mcc-gallery__viewport:focus-visible { outline:3px solid #46b7de !important; outline-offset:3px !important; }
.mcc-gallery__arrow svg { display:block; width:20px; height:20px; }
.mcc-gallery__viewport {
  max-width:100%; width:100%; min-width:0; overflow-x:auto !important; overflow-y:hidden !important;
  overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  scrollbar-width:none;
}
.mcc-gallery__viewport::-webkit-scrollbar { display:none; }
.mcc-gallery__track {
  display:flex !important; flex-wrap:nowrap !important; align-items:stretch !important;
  gap:var(--mcc-gap) !important;
  width:max-content; min-width:100%; max-width:none !important;
  padding:3px 2px 6px;
}
.mcc-gallery figure.mcc-gallery__item {
  display:block !important; float:none !important;
  flex:0 0 var(--mcc-desktop-basis) !important;
  width:var(--mcc-desktop-basis) !important;
  min-width:0 !important; max-width:none !important;
  margin:0 !important; padding:0 !important; border:0 !important;
  scroll-snap-align:start;
}
.mcc-gallery button.mcc-gallery__photo {
  display:block !important; position:relative; width:100% !important;
  padding:0 !important; margin:0 !important; overflow:hidden;
  border:1px solid #e9ecee !important; border-radius:12px !important;
  background:var(--mcc-bg) !important; box-shadow:none !important;
  aspect-ratio:var(--mcc-ratio);
  cursor:zoom-in !important;
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
}
.mcc-gallery button.mcc-gallery__photo:hover {
  transform:translateY(-3px);
  border-color:#cbd7dc !important;
  box-shadow:0 10px 22px rgba(11,40,59,.12) !important;
}
.mcc-gallery img.mcc-gallery__image {
  display:block !important; width:100% !important; height:100% !important;
  max-width:none !important; max-height:none !important;
  margin:0 !important; padding:0 !important; border:0 !important;
  border-radius:0 !important;
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.mcc-gallery__image--contain { object-fit:contain !important; }
.mcc-gallery__image--cover { object-fit:cover !important; }
.mcc-gallery button.mcc-gallery__photo:hover img { transform:scale(1.025); }
.mcc-gallery__zoom {
  position:absolute; bottom:11px; right:11px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(13,37,53,.85); color:#fff;
  display:grid; place-items:center;
  opacity:0; transform:translateY(5px);
  transition:opacity .2s ease, transform .2s ease;
}
.mcc-gallery__photo:hover .mcc-gallery__zoom,
.mcc-gallery__photo:focus-visible .mcc-gallery__zoom { opacity:1; transform:translateY(0); }
.mcc-gallery__caption { font-size:13px; line-height:1.5; color:var(--mcc-muted); margin:7px 1px 0; }
.mcc-gallery__bottom { display:flex; align-items:center; gap:16px; margin-top:14px; }
.mcc-gallery__progress { position:relative; height:3px; flex:1; background:#e4e8eb; border-radius:10px; overflow:hidden; }
.mcc-gallery__progress span { display:block; height:100%; width:25%; background:var(--mcc-ink); border-radius:10px; transition:width .25s ease; }
.mcc-gallery__hint { color:#8d979d; font-size:11px; white-space:nowrap; letter-spacing:.02em; }

/* The track must use the viewport width as its flex-basis reference. */
.mcc-gallery__track { width:100% !important; }
@media (max-width:1024px) {
  .mcc-gallery figure.mcc-gallery__item {
    flex-basis:var(--mcc-tablet-basis) !important;
    width:var(--mcc-tablet-basis) !important;
  }
}
@media (max-width:600px) {
  .mcc-gallery { --mcc-gap:11px; margin:15px auto 23px; }
  .mcc-gallery__eyebrow { font-size:10px; letter-spacing:.08em; }
  .mcc-gallery__counter { min-width:65px; font-size:12px; }
  .mcc-gallery button.mcc-gallery__arrow { width:34px !important; min-width:34px; height:34px !important; }
  .mcc-gallery figure.mcc-gallery__item {
    flex-basis:var(--mcc-mobile-basis) !important;
    width:var(--mcc-mobile-basis) !important;
  }
  .mcc-gallery__hint { display:none; }
  .mcc-gallery__zoom { opacity:1; transform:none; }
}

/* Lightbox uses a native dialog, independent of Elementor's lightbox. */
.mcc-lightbox {
  position:fixed !important; inset:0 !important; width:min(100vw,1600px) !important;
  height:100dvh !important; max-width:100vw !important; max-height:100dvh !important;
  margin:auto !important; padding:0 !important; border:0 !important; border-radius:0 !important;
  background:#09151d !important; color:#fff !important;
  overflow:hidden !important;
}
.mcc-lightbox::backdrop { background:rgba(4,12,19,.96); }
.mcc-lightbox__shell { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; padding:55px 65px 80px; box-sizing:border-box; }
.mcc-lightbox__media { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; height:100%; min-width:0; }
.mcc-lightbox__image { display:block; width:auto; max-width:100%; height:auto; max-height:100%; object-fit:contain; border-radius:3px; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.mcc-lightbox button.mcc-lightbox__button {
  position:absolute; display:grid; place-items:center;
  padding:0 !important; margin:0 !important; border:1px solid rgba(255,255,255,.23) !important;
  background:rgba(27,43,55,.6) !important; color:#fff !important;
  border-radius:100px !important; width:42px; height:42px;
  min-width:42px; box-shadow:none !important; cursor:pointer; z-index:2;
}
.mcc-lightbox button.mcc-lightbox__button:hover { background:rgba(255,255,255,.2) !important; }
.mcc-lightbox button.mcc-lightbox__button:focus-visible { outline:3px solid #55ccf6 !important; outline-offset:3px; }
.mcc-lightbox__prev { top:50%; transform:translateY(-50%); left:14px; }
.mcc-lightbox__next { top:50%; transform:translateY(-50%); right:14px; }
.mcc-lightbox__close { right:17px; top:15px; }
.mcc-lightbox__button svg { width:22px; height:22px; }
.mcc-lightbox__footer { display:flex; justify-content:center; align-items:center; flex-direction:column; gap:5px; text-align:center; padding:8px 15px 14px; position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.3)); pointer-events:none; }
.mcc-lightbox__count { font:500 12px/1.4 system-ui,sans-serif; letter-spacing:.09em; color:#ccd3d6; }
.mcc-lightbox__caption { font:400 13px/1.35 system-ui,sans-serif; color:#f0f3f3; max-width:80ch; }
@media (max-width:600px) {
  .mcc-lightbox__shell { padding:56px 8px 76px; }
  .mcc-lightbox__prev { left:5px; }
  .mcc-lightbox__next { right:5px; }
  .mcc-lightbox button.mcc-lightbox__button { width:36px; height:36px; min-width:36px; }
  .mcc-lightbox__footer { padding-bottom:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .mcc-gallery__viewport { scroll-behavior:auto; }
  .mcc-gallery *, .mcc-lightbox * { transition:none !important; animation:none !important; }
}
