.sd-grid{
  display:grid;
  gap:16px;
}
.sd-cols-1{grid-template-columns:repeat(1,minmax(0,1fr));}
.sd-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.sd-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.sd-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.sd-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}
.sd-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}

@media (max-width: 900px){
  .sd-cols-3,.sd-cols-4,.sd-cols-5,.sd-cols-6{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 560px){
  .sd-cols-2,.sd-cols-3,.sd-cols-4,.sd-cols-5,.sd-cols-6{grid-template-columns:repeat(1,minmax(0,1fr));}
}

.sd-card{
  display:block;
  width:100%;
  text-align:left;
  border:1px solid rgba(0,0,0,.08);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
  padding:0;
  cursor:pointer;
}
.sd-card-thumb{
  width:100%;
  padding-top:56.25%;
  background-size:cover;
  background-position:center;
  background-color:#f2f2f2;
}
.sd-card-thumb--empty{background:linear-gradient(135deg,#f2f2f2,#e6e6e6);}
.sd-card-title{
  font-size:16px;
  font-weight:600;
  padding:12px 12px 4px;
}
.sd-card-cta{
  padding:0 12px 12px;
  font-size:13px;
  opacity:.8;
}

.sd-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:999999;
}
.sd-modal[aria-hidden="false"]{display:block;}
.sd-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.6);
}
.sd-modal__dialog{
  position:relative;
  width:min(980px, calc(100% - 24px));
  margin:40px auto;
  background:#fff;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
@media (max-width: 560px){
  .sd-modal__dialog{margin:16px auto;}
}
.sd-modal__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.sd-modal__title{font-size:16px;font-weight:600;}
.sd-modal__close{
  border:0;
  background:transparent;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}

.sd-modal__tabs{
  display:flex;
  gap:8px;
  padding:10px 14px;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.sd-tab{
  border:1px solid rgba(0,0,0,.15);
  background:#fff;
  padding:8px 10px;
  border-radius:999px;
  cursor:pointer;
  font-size:13px;
}
.sd-tab--active{
  border-color:#111;
}

.sd-modal__body{padding:14px;}
.sd-panel{display:none;}
.sd-panel--active{display:block;}

.sd-embed{
  position:relative;
  width:100%;
  padding-top:56.25%;
  background:#000;
  border-radius:12px;
  overflow:hidden;
}
.sd-embed iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
