/* Infonits Memories Arc v5 */
.ima3,
.ima3 *,
.ima3 button,
.ima3 input,
.ima3 textarea,
.ima3 select,
.ima3-modal,
.ima3-lightbox{
  box-sizing:border-box;
  font-family:'Poppins',Inter,Arial,sans-serif !important;
}

.ima3{
  --ima3-bg:transparent;
  --ima3-shell:#f7f7f7;
  --ima3-text:#060606;
  --ima3-muted:#7a7a7a;
  --ima3-shadow:0 18px 44px rgba(0,0,0,.08);
  --ima3-header-offset:0px;
  position:relative;
  width:100%;
  max-width:100%;
  margin:0;
  background:var(--ima3-bg);
  color:var(--ima3-text);
}

.ima3-shell{
  position:relative;
  width:min(1320px, 100%);
  margin:0 auto;
  min-height:840px;
  padding:0 28px 28px;
  background:var(--ima3-shell);
  border-radius:34px;
  overflow:hidden;
  isolation:isolate;
}

.ima3-hero{
  position:relative;
  z-index:20;
  width:min(760px, calc(100% - 24px));
  margin:0 auto;
  text-align:center;
  padding-top:94px;
}
.ima3-eyebrow{
  margin:0 0 24px;
  font-size:16px;
  line-height:1.2;
  font-weight:650;
  letter-spacing:-.035em;
  color:#111;
}
.ima3-title{
  margin:0;
  font-size:clamp(52px,5.1vw,72px);
  line-height:.83;
  font-weight:800;
  letter-spacing:-.072em;
  text-transform:uppercase;
  color:#030303;
}
.ima3-desc{
  width:min(640px,100%);
  margin:16px auto 0;
  font-size:16px;
  line-height:1.45;
  font-weight:400;
  letter-spacing:-.02em;
  color:#8d8d8d;
}
.ima3-cta{
  appearance:none;
  border:0 !important;
  outline:0;
  background:#111 !important;
  color:#fff !important;
  min-width:148px;
  height:50px;
  margin-top:22px;
  padding:0 26px;
  border-radius:999px !important;
  font:inherit;
  font-size:15px;
  font-weight:650;
  letter-spacing:-.02em;
  cursor:pointer;
  box-shadow:0 10px 20px rgba(0,0,0,.16);
  transition:transform .25s ease, box-shadow .25s ease;
}
.ima3-cta:hover{ transform:translateY(-2px); box-shadow:0 14px 28px rgba(0,0,0,.2); }

.ima3-stage{
  position:relative;
  z-index:10;
  margin-top:46px;
  height:390px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:10px;
  perspective:1300px;
  outline:0;
  touch-action:pan-y;
  user-select:none;
}
.ima3-track-wrap{
  position:relative;
  flex:1 1 auto;
  height:100%;
  overflow:hidden;
}
.ima3-track{
  position:relative;
  width:100%;
  height:100%;
  transform-style:preserve-3d;
}
.ima3-nav{
  position:relative;
  align-self:center;
  flex:0 0 auto;
  width:44px;
  height:44px;
  border:0 !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.92) !important;
  color:#111 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.08);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  z-index:12;
}
.ima3-nav:hover{ transform:translateY(-1px); }

.ima3-card{
  position:absolute;
  left:50%;
  top:0;
  width:140px;
  height:220px;
  opacity:0;
  pointer-events:none;
  transform-origin:50% 50%;
  transform-style:preserve-3d;
  will-change:transform,width,height,top,opacity;
  transition:transform .62s cubic-bezier(.22,.82,.2,1), top .62s cubic-bezier(.22,.82,.2,1), width .62s cubic-bezier(.22,.82,.2,1), height .62s cubic-bezier(.22,.82,.2,1), opacity .3s ease, filter .3s ease;
  cursor:pointer;
}
.ima3-card.is-visible{ opacity:1; pointer-events:auto; }
.ima3-card-inner{
  position:relative !important;
  width:100%;
  height:100%;
  overflow:hidden !important;
  border-radius:18px;
  background:#dfe2e5;
  border:1px solid rgba(0,0,0,.10);
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  backface-visibility:hidden;
  transition:box-shadow .3s ease, transform .25s ease;
}
.ima3-cover{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  transform:scale(1.015);
  transition:transform .55s cubic-bezier(.2,.8,.2,1), filter .3s ease;
}
.ima3-shade{
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.74) 100%);
  opacity:.16;
  transition:opacity .28s ease;
}
.ima3-card-copy{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:3;
  padding:15px 15px 14px;
  color:#fff;
  text-align:left;
  opacity:.92;
  transform:translateY(0);
  transition:opacity .28s ease, transform .28s ease;
}
.ima3-card-copy span{
  display:block;
  margin:0 0 5px;
  font-size:9px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:650;
  opacity:.8;
}
.ima3-card-copy strong{
  display:block;
  font-size:15px;
  line-height:1.08;
  letter-spacing:-.03em;
  font-weight:700;
}
.ima3-card-copy small{
  display:block;
  margin-top:5px;
  font-size:10px;
  line-height:1.1;
  opacity:.86;
}
.ima3-card:hover,
.ima3-card.is-active{ z-index:90 !important; filter:saturate(1.03); }
.ima3-card:hover .ima3-card-inner,
.ima3-card:focus-visible .ima3-card-inner,
.ima3-card.is-active .ima3-card-inner{ box-shadow:0 18px 44px rgba(0,0,0,.16); }
.ima3-card:hover .ima3-cover,
.ima3-card:focus-visible .ima3-cover{ transform:scale(1.06); }
.ima3-card:hover .ima3-shade,
.ima3-card:focus-visible .ima3-shade,
.ima3-card.is-active .ima3-shade{ opacity:1; }
.ima3-card:focus-visible{ outline:0; }

.ima3-toolbar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:12px;
  text-align:center;
}
.ima3-status,
.ima3-album-preview{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 20px rgba(0,0,0,.04);
}
.ima3-status{
  font-size:13px;
  font-weight:650;
  color:#111;
}
.ima3-divider{ opacity:.45; }
.ima3-album-preview strong{
  font-size:14px;
  line-height:1;
  font-weight:650;
  color:#111;
}
.ima3-album-preview span{
  font-size:12px;
  line-height:1;
  color:#7a7a7a;
}
.ima3-mobile-hint{
  display:none;
}
.ima3-empty{
  width:min(720px,calc(100% - 36px));
  margin:56px auto 0;
  padding:24px;
  border:1px dashed #c6c6c6;
  border-radius:18px;
  text-align:center;
  color:#777;
  background:rgba(255,255,255,.5);
}

/* Modal */
.ima3-modal{
  position:fixed;
  z-index:2147483000;
  inset:0;
  display:none;
  align-items:flex-end;
  justify-content:center;
}
.ima3-modal.is-open{ display:flex; }
.ima3-modal-bg{
  position:absolute;
  inset:0;
  background:rgba(7,7,7,.50);
  backdrop-filter:blur(10px);
  animation:ima3Fade .2s ease both;
}
.ima3-modal-panel{
  position:relative;
  width:min(1240px, calc(100% - 24px));
  max-height:94vh;
  overflow:auto;
  overscroll-behavior:contain;
  padding:24px 28px 42px;
  background:#fff !important;
  border-radius:30px 30px 0 0;
  box-shadow:0 -28px 90px rgba(0,0,0,.22);
  animation:ima3Up .36s cubic-bezier(.2,.82,.2,1) both;
}
.ima3-modal-close{
  position:sticky;
  z-index:5;
  top:0;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  margin-left:auto;
  border:1px solid #dedede !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.92) !important;
  color:#111 !important;
  font-size:25px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(12px);
}
.ima3-modal-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  margin:2px 4px 28px;
  text-align:left;
}
.ima3-modal-label{
  margin-bottom:10px;
  color:#888;
  font-size:10px;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:750;
}
.ima3-modal-title{
  margin:0;
  color:#080808;
  font-size:clamp(38px,5vw,68px);
  line-height:.9;
  letter-spacing:-.065em;
  font-weight:780;
}
.ima3-modal-desc{
  max-width:700px;
  margin:13px 0 0;
  color:#777;
  font-size:14px;
  line-height:1.55;
}
.ima3-modal-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:11px;
  color:#777;
  font-size:12px;
}
.ima3-modal-meta span+span:before{ content:'•'; margin-right:10px; }
.ima3-modal-count{ margin-bottom:5px; white-space:nowrap; color:#777; font-size:12px; }
.ima3-grid{ columns:4 220px; column-gap:12px; }
.ima3-photo{
  display:block;
  width:100%;
  break-inside:avoid;
  margin:0 0 12px;
  padding:0;
  border:0 !important;
  border-radius:16px !important;
  overflow:hidden;
  background:#e7e7e7;
  cursor:zoom-in;
}
.ima3-photo img{ display:block; width:100%; height:auto; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
.ima3-photo:hover img{ transform:scale(1.025); }
.ima3-no-photos{ padding:64px 14px; text-align:center; color:#888; }

/* Lightbox */
.ima3-lightbox{
  position:fixed;
  z-index:2147483600;
  left:0 !important;
  right:0 !important;
  top:var(--ima3-header-offset, 0px) !important;
  bottom:0 !important;
  display:none;
  align-items:center;
  justify-content:center;
  height:auto !important;
  padding:20px 74px 24px !important;
}
.ima3-lightbox.is-open{ display:flex; }
.ima3-lightbox-bg{
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.24) !important;
  backdrop-filter:blur(12px);
}
.ima3-lightbox figure{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  max-width:min(92vw, 1500px);
  max-height:calc(100vh - var(--ima3-header-offset, 0px) - 44px);
  margin:0;
}
.ima3-lightbox figure img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - var(--ima3-header-offset, 0px) - 100px);
  object-fit:contain;
  background:transparent !important;
  border-radius:16px !important;
  box-shadow:0 18px 60px rgba(0,0,0,.22);
}
.ima3-lightbox figcaption{
  min-height:18px;
  margin-top:10px;
  color:#222;
  text-shadow:0 1px 2px rgba(255,255,255,.75);
  font-size:12px;
  text-align:center;
}
.ima3-lb-close,
.ima3-lb-prev,
.ima3-lb-next{
  position:absolute;
  z-index:4;
  border:0 !important;
  background:rgba(15,15,15,.82) !important;
  color:#fff !important;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
  cursor:pointer;
}
.ima3-lb-close{
  top:16px !important;
  right:18px;
  width:46px;
  height:46px;
  border-radius:50% !important;
  font-size:26px;
}
.ima3-lb-prev,
.ima3-lb-next{
  top:50%;
  width:54px;
  height:64px;
  transform:translateY(-50%);
  border-radius:18px !important;
  font-size:34px;
}
.ima3-lb-prev{ left:16px; }
.ima3-lb-next{ right:16px; }
.ima3-lb-meta{
  position:absolute;
  left:50%;
  bottom:22px;
  z-index:4;
  transform:translateX(-50%);
  padding:10px 16px;
  border-radius:999px;
  background:rgba(15,15,15,.82);
  color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  font-size:12px;
  font-weight:600;
}
body.ima3-lock{ overflow:hidden !important; }

@keyframes ima3Fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes ima3Up{ from{ opacity:.65; transform:translateY(50px); } to{ opacity:1; transform:none; } }

@media(max-width:1100px){
  .ima3-shell{ min-height:790px; }
  .ima3-hero{ padding-top:82px; }
  .ima3-stage{ height:370px; }
}

@media(max-width:820px){
  .ima3-shell{
    min-height:auto;
    padding:0 0 28px;
    border-radius:28px;
  }
  .ima3-hero{
    padding-top:48px;
    width:min(640px, calc(100% - 28px));
  }
  .ima3-eyebrow{ font-size:14px; margin-bottom:18px; }
  .ima3-title{ font-size:clamp(40px,10vw,58px); line-height:.9; }
  .ima3-desc{ font-size:14px; line-height:1.5; }
  .ima3-cta{ margin-top:18px; }

  .ima3-stage{
    display:block;
    height:auto;
    margin-top:34px;
    overflow:hidden;
    perspective:none;
  }
  .ima3-track-wrap{ overflow:visible; height:auto; }
  .ima3-track{
    display:flex;
    gap:14px;
    width:auto;
    height:auto;
    overflow-x:auto;
    overflow-y:hidden;
    padding:6px 16px 18px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .ima3-track::-webkit-scrollbar{ display:none; }
  .ima3-nav{ display:none; }
  .ima3-card,
  .ima3-card.is-visible{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    width:min(72vw, 284px) !important;
    height:368px !important;
    flex:0 0 min(72vw, 284px);
    opacity:1 !important;
    pointer-events:auto !important;
    transform:none !important;
    filter:none !important;
    z-index:1 !important;
    scroll-snap-align:center;
  }
  .ima3-card.is-active .ima3-card-inner{
    box-shadow:0 18px 44px rgba(0,0,0,.12);
  }
  .ima3-shade,
  .ima3-card-copy{ opacity:1; transform:none; }
  .ima3-toolbar{
    flex-direction:column;
    gap:10px;
    margin-top:0;
    padding:0 16px;
  }
  .ima3-status,
  .ima3-album-preview{
    width:min(100%, 340px);
    justify-content:center;
  }
  .ima3-mobile-hint{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 16px;
    margin-top:10px;
    color:#949494;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.13em;
    font-weight:650;
    text-align:center;
  }

  .ima3-modal{ align-items:flex-end; }
  .ima3-modal-panel{
    width:calc(100% - 12px);
    max-height:88vh;
    padding:18px 15px 28px;
    border-radius:24px 24px 0 0;
  }
  .ima3-modal-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    margin:0 2px 22px;
  }
  .ima3-grid{ columns:2 150px; }

  .ima3-lightbox{
    top:var(--ima3-header-offset, 0px) !important;
    padding:12px 12px 86px !important;
    align-items:center;
  }
  .ima3-lightbox-bg{ background:rgba(255,255,255,.42) !important; }
  .ima3-lightbox figure{
    width:100%;
    max-width:100%;
    max-height:calc(100vh - var(--ima3-header-offset, 0px) - 92px);
  }
  .ima3-lightbox figure img{
    max-height:calc(100vh - var(--ima3-header-offset, 0px) - 140px);
    border-radius:14px !important;
  }
  .ima3-lb-close{
    top:10px !important;
    right:10px;
    width:42px;
    height:42px;
  }
  .ima3-lb-prev,
  .ima3-lb-next{
    top:auto;
    bottom:18px;
    width:48px;
    height:48px;
    transform:none;
    border-radius:14px !important;
    font-size:28px;
  }
  .ima3-lb-prev{ left:calc(50% - 78px); }
  .ima3-lb-next{ right:calc(50% - 78px); }
  .ima3-lb-meta{
    bottom:20px;
    padding:10px 14px;
    min-width:76px;
    text-align:center;
  }
}

@media(max-width:520px){
  .ima3-shell{ border-radius:24px; }
  .ima3-hero{ padding-top:40px; }
  .ima3-title{ font-size:38px; }
  .ima3-desc{ width:calc(100% - 6px); }
  .ima3-card,
  .ima3-card.is-visible{
    width:78vw !important;
    height:350px !important;
    flex-basis:78vw;
  }
  .ima3-grid{ columns:2 122px; column-gap:8px; }
  .ima3-photo{ margin-bottom:8px; border-radius:11px !important; }
  .ima3-lb-prev{ left:calc(50% - 76px); }
  .ima3-lb-next{ right:calc(50% - 76px); }
}

@media(prefers-reduced-motion:reduce){
  .ima3 *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}


/* ===== v6 container-fit desktop refinement ===== */
.ima3{
  background:transparent !important;
}
.ima3-shell{
  width:100% !important;
  background:transparent !important;
  border-radius:0 !important;
  padding:0 0 24px !important;
  min-height:760px !important;
  overflow:hidden !important;
}
.ima3-hero{
  padding-top:72px !important;
}
.ima3-stage{
  margin-top:26px !important;
  height:410px !important;
}
.ima3-track-wrap{
  overflow:hidden !important;
}
.ima3-toolbar{
  display:none;
}
.ima3-card-copy{
  opacity:0;
  transform:translateY(8px);
}
.ima3-card:hover .ima3-card-copy,
.ima3-card:focus-visible .ima3-card-copy,
.ima3-card.is-active .ima3-card-copy{
  opacity:1;
  transform:none;
}
.ima3-card .ima3-shade{
  opacity:0;
}
.ima3-card:hover .ima3-shade,
.ima3-card:focus-visible .ima3-shade,
.ima3-card.is-active .ima3-shade{
  opacity:1;
}
.ima3-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  background:rgba(255,255,255,.95) !important;
  z-index:14;
}
.ima3-nav-prev{ left:12px; }
.ima3-nav-next{ right:12px; }

@media(max-width:820px){
  .ima3-shell{
    border-radius:0 !important;
    padding:0 0 24px !important;
    min-height:auto !important;
  }
  .ima3-hero{
    padding-top:42px !important;
    width:min(640px, calc(100% - 24px));
  }
  .ima3-stage{
    margin-top:28px !important;
    height:auto !important;
  }
  .ima3-toolbar{
    display:flex;
  }
  .ima3-card-copy,
  .ima3-card .ima3-shade{
    opacity:1;
    transform:none;
  }
}


/* ===== v8 final curve + click reliability ===== */
.ima3-shell{
  min-height:720px !important;
}
.ima3-stage{
  margin-top:30px !important;
  height:392px !important;
}
.ima3-track-wrap{
  overflow:hidden !important;
  position:relative;
}
.ima3-nav{
  display:none !important;
}
.ima3-card{
  cursor:pointer !important;
}
.ima3-card-inner{
  border-radius:16px !important;
}
.ima3-card.is-active .ima3-card-inner{
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:0;
}
.ima3-card.is-active .ima3-card-copy{
  opacity:1;
  transform:none;
}

@media(max-width:820px){
  .ima3-stage{
    height:auto !important;
  }
  .ima3-nav{
    display:none !important;
  }
  .ima3-card.is-active .ima3-card-inner{
    outline:none;
  }
}

/* ===== v9 reliability + exact reference behavior ===== */
.ima3-card{
  pointer-events:auto !important;
  cursor:pointer !important;
}
.ima3-card-inner,
.ima3-card-inner *{
  pointer-events:none !important;
}

/* Reference desktop: clean image-only arc; details reveal only on hover/focus. */
@media(min-width:821px){
  .ima3-card.is-active .ima3-card-inner{
    outline:none !important;
  }
  .ima3-card.is-active .ima3-card-copy,
  .ima3-card.is-active .ima3-shade{
    opacity:0 !important;
  }
  .ima3-card:hover .ima3-card-copy,
  .ima3-card:focus-visible .ima3-card-copy{
    opacity:1 !important;
    transform:none !important;
  }
  .ima3-card:hover .ima3-shade,
  .ima3-card:focus-visible .ima3-shade{
    opacity:1 !important;
  }
}

/* Overlay is moved to body in JS to avoid Elementor/header stacking-context issues. */
.ima3-modal,
.ima3-lightbox{
  isolation:isolate;
}


/* ===== v10 professional mobile lightbox controls ===== */
.ima3-lightbox{
  touch-action:none;
}
.ima3-lightbox figure,
.ima3-lightbox figure img{
  touch-action:none;
  -webkit-user-drag:none;
  user-select:none;
}
.ima3-lb-close{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:999px !important;
  background:rgba(20,20,20,.86) !important;
  color:#fff !important;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  font-size:28px;
  font-weight:400;
}
.ima3-lb-toolbar{
  position:absolute;
  left:50%;
  bottom:20px;
  z-index:4;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:999px;
  background:rgba(21,21,21,.82);
  box-shadow:0 12px 34px rgba(0,0,0,.16);
  backdrop-filter:blur(12px);
}
.ima3-lb-prev,
.ima3-lb-next{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.10) !important;
  box-shadow:none !important;
  font-size:30px !important;
  line-height:1 !important;
}
.ima3-lb-prev:hover,
.ima3-lb-next:hover,
.ima3-lb-close:hover{
  background:rgba(255,255,255,.18) !important;
}
.ima3-lb-meta{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 8px !important;
  min-width:94px;
  background:transparent !important;
  box-shadow:none !important;
}
.ima3-lb-counter{
  display:inline-block;
  color:#fff;
  font-size:15px;
  font-weight:650;
  letter-spacing:-.02em;
}
.ima3-lb-hint{
  display:inline-block;
  color:rgba(255,255,255,.74);
  font-size:11px;
  font-weight:500;
  letter-spacing:.02em;
}

@media(max-width:820px){
  .ima3-lb-close{
    top:12px !important;
    right:12px !important;
    width:44px;
    height:44px;
    font-size:24px;
  }
  .ima3-lb-toolbar{
    bottom:16px;
    gap:8px;
    padding:8px;
  }
  .ima3-lb-prev,
  .ima3-lb-next{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    font-size:28px !important;
  }
  .ima3-lb-meta{
    min-width:88px;
    padding:0 6px !important;
  }
  .ima3-lb-counter{
    font-size:14px;
  }
  .ima3-lb-hint{
    font-size:10px;
  }
}
