.ecjm-section{
  width:100%;max-width:100%;box-sizing:border-box;margin:18px 0;
  container-type:inline-size;
}
.ecjm-section *{box-sizing:border-box}
.ecjm-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}
.ecjm-title-wrap{min-width:0;max-width:100%}
.ecjm-kicker{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.58;margin-bottom:3px}
.ecjm-title{margin:0;font-size:clamp(22px,3vw,30px);line-height:1.1;font-weight:800}
.ecjm-subtitle{margin:5px 0 0;font-size:14px;line-height:1.4;opacity:.68}
.ecjm-carousel-shell{position:relative;width:100%;max-width:100%;overflow:hidden}
.ecjm-carousel{display:flex;gap:14px;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 2px 8px;margin:0}
.ecjm-carousel::-webkit-scrollbar{display:none}
.ecjm-slide{flex:0 0 calc((100% - 28px)/3);width:calc((100% - 28px)/3);min-width:0;scroll-snap-align:start;margin:0;padding:0}

/* Card is a DIV, not a button, to prevent theme button styles from shrinking it. */
.ecjm-card{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1 / 1!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:14px!important;
  overflow:hidden!important;
  background:#f1f3f5!important;
  cursor:pointer;
  box-shadow:0 2px 6px rgba(0,0,0,.05),0 8px 24px rgba(0,0,0,.04);
}
.ecjm-card img{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  max-width:none!important;
  min-height:100%!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none;
}
.ecjm-card:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.ecjm-swipe-hint{display:none}
.ecjm-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;padding:20px}
.ecjm-lightbox.is-open{display:flex}
.ecjm-lightbox img{display:block;max-width:min(94vw,1000px);max-height:90vh;width:auto;height:auto;object-fit:contain;border-radius:10px}
.ecjm-lightbox-close{position:absolute;top:16px;right:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer;padding:0}

@container (max-width:700px){
  .ecjm-slide{flex:0 0 calc((100% - 12px)/2);width:calc((100% - 12px)/2)}
}

@container (max-width:520px){
  .ecjm-section{margin:12px 0}
  .ecjm-header{display:block;margin-bottom:10px}
  .ecjm-kicker{font-size:11px;margin-bottom:4px}
  .ecjm-title{font-size:22px;line-height:1.08}
  .ecjm-subtitle{font-size:13px;margin-top:6px}
  .ecjm-carousel{gap:0!important;padding:0 0 4px 0!important;scroll-padding:0!important}
  .ecjm-slide{flex:0 0 100%!important;width:100%!important;min-width:100%!important;max-width:100%!important;scroll-snap-align:start!important;scroll-snap-stop:always!important}
  .ecjm-card{border-radius:12px!important}
  .ecjm-swipe-hint{display:block;margin-top:7px;font-size:12px;opacity:.6}
}

@container (max-width:340px){
  .ecjm-title{font-size:20px}
  .ecjm-subtitle{font-size:12px}
  .ecjm-carousel{padding-right:0!important}
  .ecjm-slide{flex:0 0 100%!important;width:100%!important;min-width:100%!important;max-width:100%!important}
}

/* v1.4 interaction fixes */
.ecjm-carousel{
  touch-action:pan-x pan-y!important;
  cursor:grab;
  overscroll-behavior-x:contain;
  user-select:none;
}
.ecjm-carousel.is-dragging{cursor:grabbing;scroll-snap-type:none!important;scroll-behavior:auto!important}
.ecjm-carousel img{-webkit-user-drag:none;user-select:none;pointer-events:none}
@container (max-width:520px){
}
