/* Bencefalo v91 — Laboratorio Mágico storefront + Campus library */

body.lab-modal-open{overflow:hidden}

.lab-modal[hidden]{display:none!important}
.lab-modal{
  position:fixed;
  inset:0;
  z-index:1400;
  display:grid;
  place-items:center;
  padding:24px;
}
.lab-backdrop{
  position:absolute;
  inset:0;
  background:rgba(1,3,8,.88);
  backdrop-filter:blur(10px);
}
.lab-dialog{
  position:relative;
  z-index:1;
  width:min(1180px,96vw);
  max-height:min(900px,92vh);
  overflow:auto;
  border:1px solid rgba(77,227,209,.24);
  border-radius:28px;
  background:
    radial-gradient(55rem 34rem at 100% 0%,rgba(39,185,129,.11),transparent 67%),
    radial-gradient(42rem 28rem at 0% 100%,rgba(77,227,209,.10),transparent 70%),
    linear-gradient(145deg,#071417 0%,#071019 48%,#070912 100%);
  box-shadow:0 38px 120px rgba(0,0,0,.66);
}
.lab-close{
  position:absolute;
  top:16px;
  right:18px;
  z-index:4;
  width:40px;
  height:40px;
  border:1px solid rgba(77,227,209,.22);
  border-radius:50%;
  background:rgba(3,12,15,.84);
  color:#d6fdf6;
  font:300 26px/1 var(--font-ui);
  cursor:pointer;
}
.lab-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:26px;
  padding:34px 62px 24px 36px;
  border-bottom:1px solid rgba(77,227,209,.12);
}
.lab-head .eyebrow{color:#4de3d1!important}
.lab-head h2{
  margin:4px 0 0!important;
  font-family:var(--font-display)!important;
  font-size:44px!important;
  line-height:1.02!important;
  font-weight:400!important;
  color:#fff!important;
}
.lab-steps{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.lab-steps span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border:1px solid rgba(77,227,209,.12);
  border-radius:999px;
  color:#777f87;
  font:600 9px/1.2 var(--font-ui);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.lab-steps span.active{
  color:#4de3d1;
  border-color:rgba(77,227,209,.35);
  background:rgba(77,227,209,.07);
  box-shadow:0 0 18px rgba(77,227,209,.08);
}
.lab-body{padding:30px 36px 38px}
.lab-intro{
  max-width:780px;
  margin:0 0 26px;
  color:#b5b4bd;
  font:400 16px/1.68 var(--font-body);
}
.lab-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.lab-product{
  position:relative;
  min-height:108px;
  padding:20px 58px 20px 62px;
  text-align:left;
  border:1px solid rgba(77,227,209,.13);
  border-radius:18px;
  background:
    radial-gradient(18rem 11rem at 100% 0%,rgba(77,227,209,.07),transparent 72%),
    rgba(5,13,18,.72);
  color:#fff;
  cursor:pointer;
  transition:.18s ease;
}
.lab-product:hover,
.lab-product:focus-visible{
  border-color:rgba(77,227,209,.38);
  background:
    radial-gradient(18rem 11rem at 100% 0%,rgba(77,227,209,.13),transparent 72%),
    rgba(6,20,24,.88);
  transform:translateY(-2px);
  outline:none;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.lab-index{
  position:absolute;
  left:19px;
  top:22px;
  color:#4de3d1;
  font:600 10px/1 var(--font-ui);
  letter-spacing:.08em;
}
.lab-product strong{
  display:block;
  margin-bottom:6px;
  font:400 25px/1.06 var(--font-display);
}
.lab-product small{
  display:block;
  color:#8ea6a5;
  font:400 12px/1.45 var(--font-ui);
}
.lab-arrow{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  color:#4de3d1;
  font:500 16px/1 var(--font-ui);
}
.lab-back{
  margin:0 0 22px;
  padding:0;
  border:0;
  background:none;
  color:#8edfd4;
  font:600 11px/1.3 var(--font-ui);
  cursor:pointer;
}
.lab-detail{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(260px,.68fr);
  gap:30px;
}
.lab-kicker{
  margin:0 0 9px!important;
  color:#4de3d1!important;
  font:600 10px/1.35 var(--font-ui)!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
.lab-detail-main h3,
.lab-checkout h3{
  margin:0 0 8px!important;
  color:#fff!important;
  font-family:var(--font-display)!important;
  font-size:40px!important;
  line-height:1.04!important;
  font-weight:400!important;
}
.lab-subtitle{
  margin:0 0 18px!important;
  color:#98e8dc!important;
  font:400 italic 17px/1.45 var(--font-body)!important;
}
.lab-description{
  margin:0!important;
  color:#b8b4bf!important;
  font:400 15px/1.72 var(--font-body)!important;
}
.lab-includes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:24px;
}
.lab-includes span{
  display:inline-flex;
  padding:7px 10px;
  border:1px solid rgba(77,227,209,.15);
  border-radius:999px;
  color:#a8bebd;
  background:rgba(77,227,209,.035);
  font:500 10px/1.3 var(--font-ui);
}
.lab-buybox{
  align-self:start;
  padding:22px;
  border:1px solid rgba(77,227,209,.18);
  border-radius:20px;
  background:rgba(3,12,17,.78);
}
.lab-price{
  display:block;
  margin-bottom:12px;
  color:#fff;
  font:700 24px/1.2 var(--font-ui);
}
.lab-buybox p,
.lab-buybox small{
  color:#91999f;
  font:400 12px/1.6 var(--font-ui);
}
.lab-buybox .btn,
.lab-buybox .outline{
  width:100%;
  margin-top:15px;
}
.lab-buybox .btn{
  background:linear-gradient(135deg,#54e2ce,#2ab485)!important;
  color:#03110e!important;
  border-color:rgba(177,255,237,.48)!important;
  box-shadow:0 12px 30px rgba(28,197,154,.22),0 0 26px rgba(77,227,209,.12)!important;
}
.lab-checkout{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:32px;
  align-items:end;
  padding:26px;
  border:1px solid rgba(77,227,209,.17);
  border-radius:20px;
  background:rgba(4,14,18,.72);
}
.lab-checkout p,
.lab-checkout li{
  color:#aaaeb4;
  font:400 14px/1.65 var(--font-body);
}
.lab-checkout ul{margin:18px 0 0;padding-left:20px}
.lab-campus-buy{
  min-width:230px;
  background:linear-gradient(135deg,#54e2ce,#2ab485)!important;
  color:#03110e!important;
  border-color:rgba(177,255,237,.48)!important;
}

/* Campus: on-demand library */
.lab-library-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:22px;
}
.lab-library-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.lab-library-card{
  position:relative;
  overflow:hidden;
  padding:22px;
  border:1px solid rgba(77,227,209,.17);
  border-radius:20px;
  background:
    radial-gradient(22rem 15rem at 100% 0%,rgba(77,227,209,.08),transparent 70%),
    linear-gradient(145deg,rgba(8,26,29,.9),rgba(7,9,18,.96));
}
.lab-library-card .eyebrow{color:#4de3d1!important}
.lab-library-card h3{
  margin:5px 0 8px!important;
  font-size:29px!important;
}
.lab-library-card>p{
  color:#a9a5b1;
  font:400 13.5px/1.6 var(--font-body);
}
.lab-library-assets{
  display:grid;
  gap:8px;
  margin-top:16px;
}
.lab-asset{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(77,227,209,.10);
  border-radius:12px;
  background:rgba(255,255,255,.018);
}
.lab-asset span{
  color:#c8c4cd;
  font:500 11px/1.4 var(--font-ui);
}
.lab-empty-assets{
  margin-top:16px;
  color:#7f7b88;
  font:400 12px/1.55 var(--font-ui);
}
.lab-purchase-card{
  max-width:780px;
  margin:0 auto;
  padding:28px;
  border:1px solid rgba(77,227,209,.20);
  border-radius:24px;
  background:
    radial-gradient(34rem 24rem at 100% 0%,rgba(77,227,209,.09),transparent 68%),
    linear-gradient(145deg,#0a171a,#090b14);
}
.lab-purchase-card .eyebrow{color:#4de3d1!important}
.lab-purchase-card h2{margin-bottom:12px!important}
.lab-purchase-card .purchase-includes{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0;
}
.lab-purchase-card .purchase-includes span{
  padding:6px 9px;
  border:1px solid rgba(77,227,209,.13);
  border-radius:999px;
  color:#9eb2b0;
  font:500 10px/1.3 var(--font-ui);
}
.lab-purchase-card .price{
  display:block;
  margin:18px 0;
  color:#fff;
  font:700 26px/1.2 var(--font-ui);
}

@media(max-width:760px){
  .lab-modal{padding:0}
  .lab-dialog{
    width:100vw;
    height:100dvh;
    max-height:none;
    border-radius:0;
    border-left:0;
    border-right:0;
  }
  .lab-head{
    align-items:flex-start;
    flex-direction:column;
    padding:26px 52px 18px 20px;
  }
  .lab-head h2{font-size:34px!important}
  .lab-steps{justify-content:flex-start}
  .lab-body{padding:22px 18px 30px}
  .lab-grid{grid-template-columns:1fr}
  .lab-product{min-height:94px;padding:17px 48px 17px 54px}
  .lab-product strong{font-size:23px}
  .lab-detail{grid-template-columns:1fr}
  .lab-detail-main h3,.lab-checkout h3{font-size:34px!important}
  .lab-buybox{padding:18px}
  .lab-checkout{grid-template-columns:1fr;padding:20px}
  .lab-campus-buy{width:100%;min-width:0}
  .lab-library-grid{grid-template-columns:1fr}
  .lab-library-head{align-items:flex-start;flex-direction:column}
}