.obsl-library{
  --obsl-gap:28px;
  --obsl-radius:24px;
  width:100%;
}
.obsl-grid{
  display:grid;
  grid-template-columns:repeat(var(--obsl-columns),minmax(0,1fr));
  gap:var(--obsl-gap);
}
.obsl-card{
  background:#fff;
  border:1px solid rgba(17,17,17,.07);
  border-radius:var(--obsl-radius);
  overflow:hidden;
  box-shadow:0 12px 36px rgba(18,18,18,.06);
  transition:transform .25s ease,box-shadow .25s ease;
}
.obsl-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 50px rgba(18,18,18,.11);
}
.obsl-cover-wrap{position:relative;aspect-ratio:4/5;background:#f2f0eb;overflow:hidden}
.obsl-cover{width:100%;height:100%!important;object-fit:cover;display:block;transition:transform .35s ease}
.obsl-card:hover .obsl-cover{transform:scale(1.025)}
.obsl-cover--placeholder{background:linear-gradient(135deg,#eee,#ddd)}
.obsl-badge{
  position:absolute;top:16px;left:16px;
  padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);font-size:12px;font-weight:700;letter-spacing:.03em
}
.obsl-card-body{padding:24px}
.obsl-card h3{font-size:23px;line-height:1.2;margin:0 0 10px;color:#171717}
.obsl-card p{font-size:15px;line-height:1.65;color:#666;margin:0 0 20px}
.obsl-open-modal,.obsl-submit{
  appearance:none;border:0;background:#171717;color:#fff;border-radius:999px;
  padding:13px 20px;font-weight:700;cursor:pointer;transition:transform .18s ease,opacity .18s ease
}
.obsl-open-modal:hover,.obsl-submit:hover{transform:translateY(-1px)}
.obsl-open-modal:focus-visible,.obsl-submit:focus-visible,.obsl-modal-close:focus-visible{
  outline:3px solid rgba(0,0,0,.25);outline-offset:3px
}
html.obsl-modal-open{overflow:hidden}
.obsl-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:20px}
.obsl-modal.is-open{display:flex}
.obsl-modal-backdrop{position:absolute;inset:0;background:rgba(9,9,9,.62);backdrop-filter:blur(7px)}
.obsl-modal-dialog{
  position:relative;z-index:1;width:min(100%,560px);max-height:min(88vh,760px);overflow:auto;
  background:#fff;border-radius:28px;padding:38px;box-shadow:0 30px 100px rgba(0,0,0,.28)
}
.obsl-modal-close{
  position:absolute;right:16px;top:14px;width:38px;height:38px;border:0;border-radius:50%;
  background:#f1f1ef;font-size:25px;line-height:1;cursor:pointer
}
.obsl-modal-kicker{font-size:12px;letter-spacing:.14em;font-weight:800;color:#888;margin-bottom:14px}
.obsl-modal h2{font-size:30px;line-height:1.15;margin:0 40px 10px 0;color:#171717}
.obsl-modal-intro{color:#666;line-height:1.6;margin-bottom:20px}
.obsl-payment-box{background:#f6f4ef;border-radius:16px;padding:16px 18px;margin:0 0 20px;line-height:1.55}
.obsl-payment-box strong{display:block;font-size:18px;margin-bottom:5px}
#obsl-request-form label:not(.obsl-consent){display:block;margin-bottom:15px}
#obsl-request-form label>span{display:block;font-size:13px;font-weight:700;margin-bottom:7px}
#obsl-request-form input[type=text],#obsl-request-form input[type=email]{
  width:100%;box-sizing:border-box;border:1px solid #d8d8d5;border-radius:13px;
  padding:13px 14px;font-size:16px;background:#fff
}
.obsl-consent{display:flex!important;gap:10px;align-items:flex-start;margin:10px 0 20px!important;font-size:13px;line-height:1.45;color:#666}
.obsl-consent input{margin-top:3px}
.obsl-consent span{display:inline!important;font-weight:400!important;margin:0!important}
.obsl-consent a{color:inherit;text-decoration:underline}
.obsl-submit{width:100%;padding:15px 20px;font-size:15px}
.obsl-submit:disabled{opacity:.6;cursor:wait}
.obsl-form-message{font-size:14px;margin-top:14px;line-height:1.5}
.obsl-form-message.is-success{color:#21652b}.obsl-form-message.is-error{color:#9b2222}
.obsl-hp{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:900px){.obsl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .obsl-grid{grid-template-columns:1fr;gap:20px}
  .obsl-modal-dialog{padding:30px 20px;border-radius:22px}
  .obsl-card-body{padding:20px}
}

.obsl-newsletter-notice{
  margin:10px 0 20px;padding:13px 15px;border-radius:13px;background:#f6f4ef;
  color:#57534e;font-size:13px;line-height:1.55;border:1px solid rgba(17,17,17,.06)
}
.obsl-newsletter-notice a{color:inherit;text-decoration:underline;font-weight:600}
