.bp-card-loop-root {
  &.is-hover-elevate a {
    transition: transform .18s ease, box-shadow .18s ease;
  }
  &.is-hover-elevate a:hover {
    box-shadow: 0 6px 16px rgba(0,0,0,.12);
    transform: translateY(-2px);
  }
  &.is-hover-border a {
    border: 1px solid transparent;
    transition: border-color .18s ease;
  }
  &.is-hover-border a:hover {
    border-color: rgba(0,0,0,.2);
  }
  &[data-aspect="1:1"] .bp-thumb {
    aspect-ratio: 1/1;
  }
  &[data-aspect="4:3"] .bp-thumb {
    aspect-ratio: 4/3;
  }
  &[data-aspect="16:9"] .bp-thumb {
    aspect-ratio: 16/9;
  }

  /* image fit and aspect ratio */
  .bp-card-loop-list {
    display: grid;
    padding: 0;
    margin: 0;
    list-style: none;
    gap: 1rem;
  }
  .bp-card-item {
    padding: 0;
    margin: 0;
  }
  .bp-thumb {
    overflow: hidden;
    width: 100%;
    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
}

/* popup overlay base (JSで生成する想定だが保険でクラスを定義) */
.bpcl-overlay{position:fixed;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);inset:0;}
.bpcl-dialog{position:relative;overflow:hidden;width:90vw;max-width:min(960px,90vw);height:80vh;max-height:90vh;border-radius:8px;background:#fff;}
.bpcl-dialog iframe{width:100%;height:100%;border:0;}
.bpcl-close{position:absolute;top:8px;right:8px;width:32px;height:32px;border:none;border-radius:16px;color:#fff;background:#000;cursor:pointer;}

