.nri-clean-shop{--ink:#0d0d0d;--panel:#151515;--panel2:#191919;--paper:#f5f0e8;--body:#f0ece4;--dim:#c4b8a8;--gold:#c9a84c;--border:rgba(201,168,76,.22);background:var(--ink);color:var(--paper);font-family:Inter,Arial,sans-serif;padding:80px 20px}.nri-clean-shop *{box-sizing:border-box}.nri-clean-shop-inner{max-width:1180px;margin:0 auto}.nri-clean-shop-hero{text-align:center;margin:0 auto 54px;max-width:820px}.nri-clean-eyebrow{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.28em;color:var(--gold);font-size:12px;margin-bottom:18px}.nri-clean-shop h1{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(38px,5vw,64px);line-height:1.1;margin:0 0 18px;color:var(--paper)}.nri-clean-shop-hero p:last-child{font-size:20px;color:var(--body);line-height:1.7}.nri-clean-section{margin:56px 0}.nri-clean-section>h2{font-family:Cinzel,serif;text-transform:uppercase;color:var(--paper);letter-spacing:.06em;font-size:30px;margin:0 0 24px}.nri-clean-row{display:grid;gap:22px;margin:22px 0}.nri-clean-cols-1{grid-template-columns:1fr}.nri-clean-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.nri-clean-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.nri-clean-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.nri-clean-card{background:linear-gradient(145deg,rgba(201,168,76,.055),transparent 52%),var(--panel);border:1px solid var(--border);color:var(--body);height:100%;overflow:hidden}.nri-clean-library-card{display:flex;flex-direction:column}.nri-clean-lib-img{aspect-ratio:1/1;background:#080808;overflow:hidden}.nri-clean-lib-img img{width:100%;height:100%;object-fit:cover;display:block}.nri-clean-lib-body{padding:24px}.nri-clean-type{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-size:11px;margin:0 0 14px}.nri-clean-card h3{font-family:Cinzel,serif;color:var(--paper);font-size:23px;line-height:1.25;margin:0 0 10px}.nri-clean-card p{font-size:16px;line-height:1.6;color:var(--body)}.nri-clean-btn{display:inline-block;margin-top:18px;background:var(--gold);color:#0d0d0d!important;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.14em;font-size:12px;padding:11px 18px;text-decoration:none!important}.nri-clean-btn.secondary{background:transparent;color:var(--gold)!important;border:1px solid rgba(201,168,76,.45);margin-right:8px}.nri-clean-book-card{display:grid;grid-template-columns:var(--nri-cover-width,150px) minmax(0,1fr);gap:var(--nri-card-gap,20px);align-items:start;padding:22px}.nri-clean-book-card.image_right{grid-template-columns:minmax(0,1fr) var(--nri-cover-width,150px)}.nri-clean-book-card.image_right .nri-clean-book-cover{order:2}.nri-clean-book-card.image_top{display:block}.nri-clean-book-card.image_top .nri-clean-book-cover{width:var(--nri-cover-width,150px);margin:0 auto 18px}.nri-clean-book-card.image_top .nri-clean-book-body{height:auto;min-height:0}.nri-clean-book-cover img{width:100%;height:auto;object-fit:contain;display:block;box-shadow:0 12px 28px rgba(0,0,0,.45);border:1px solid rgba(201,168,76,.2)}.nri-clean-book-body{min-width:0;display:flex;flex-direction:column;height:100%}.nri-clean-book-body h4{font-family:Cinzel,serif;color:var(--gold);font-weight:400;line-height:1.35;margin:0 0 12px;font-size:15px}.nri-clean-book-desc{font-size:15px;line-height:1.55;color:var(--body)}.nri-clean-book-footer{margin-top:auto;padding-top:14px}.nri-clean-price{font-family:Cinzel,serif;color:var(--gold)!important;letter-spacing:.08em;margin:14px 0 0!important}.nri-clean-buttons{display:flex;gap:8px;flex-wrap:wrap}.nri-amazon-strip{margin:10px 0 0;padding:0;background:transparent;border:0;text-align:left}.nri-amazon-label{display:block;font-family:Cinzel,serif;color:var(--dim)!important;font-size:9px!important;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin:0 0 5px!important;line-height:1.25}.nri-amazon-format{font-family:Cinzel,serif;color:var(--dim)!important;font-size:8px!important;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin:0 0 5px!important;line-height:1.25}.nri-amazon-flags{display:flex;gap:5px;justify-content:flex-start;align-items:center;flex-wrap:nowrap;overflow:hidden;max-width:100%}.nri-amazon-flags a{display:inline-flex;align-items:center;justify-content:center;width:22px;height:15px;line-height:1;text-decoration:none!important;transition:transform .15s;flex:0 0 auto;overflow:hidden;border-radius:2px}.nri-amazon-flags a:hover{transform:scale(1.1)}.nri-amazon-flag{display:none}.nri-amazon-flags img{display:block!important;width:22px!important;height:15px!important;object-fit:cover;border:1px solid rgba(255,255,255,.2);border-radius:2px;max-width:none!important}.nri-clean-card-empty{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--dim);padding:20px}@media(max-width:900px){
  .nri-clean-cols-2,.nri-clean-cols-3,.nri-clean-cols-4{grid-template-columns:1fr}
  .nri-clean-shop{padding:58px 16px}

  /* Mobile book cards: stop the cramped two-column squeeze, but keep the cover beside the opening text.
     The body is allowed to flow around the cover, then the footer clears underneath. */
  .nri-clean-book-card,
  .nri-clean-book-card.image_right,
  .nri-clean-book-card.image_top{display:block;grid-template-columns:none;text-align:left;padding:20px;overflow:hidden}
  .nri-clean-book-card .nri-clean-book-cover,
  .nri-clean-book-card.image_top .nri-clean-book-cover{float:left;width:118px;max-width:42%;margin:0 16px 8px 0;order:0}
  .nri-clean-book-card.image_right .nri-clean-book-cover{float:right;width:118px;max-width:42%;margin:0 0 8px 16px;order:0}
  .nri-clean-book-body{display:block;height:auto;min-height:0}
  .nri-clean-book-footer{clear:both;margin-top:14px;padding-top:12px}
  .nri-clean-buttons{align-items:center}

  /* Mobile flags must not clip. They can wrap neatly if the card is narrow. */
  .nri-amazon-strip{text-align:left;margin-top:11px}
  .nri-amazon-flags{flex-wrap:wrap;overflow:visible;gap:5px 6px;justify-content:flex-start}
  .nri-amazon-flags a{width:22px;height:15px}
  .nri-amazon-flags img{width:22px!important;height:15px!important}
}
@media(max-width:420px){
  .nri-clean-book-card .nri-clean-book-cover,
  .nri-clean-book-card.image_right .nri-clean-book-cover,
  .nri-clean-book-card.image_top .nri-clean-book-cover{width:104px;max-width:40%}
  .nri-clean-card h3{font-size:21px}
  .nri-clean-book-desc{font-size:14px;line-height:1.55}
  .nri-amazon-flags{gap:4px 5px}
  .nri-amazon-flags a{width:20px;height:14px}
  .nri-amazon-flags img{width:20px!important;height:14px!important}
}

/* v1.0.19 — one-column feature rows use a horizontal editorial card on desktop. */
@media(min-width:901px){
  .nri-clean-cols-1 .nri-clean-library-card.has-image{
    display:grid;
    grid-template-columns:minmax(240px,38%) minmax(0,1fr);
    align-items:stretch;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-img{
    aspect-ratio:auto;
    min-height:280px;
    height:100%;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-body{
    padding:34px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-buttons{
    margin-top:8px;
  }
}
@media(max-width:900px){
  .nri-clean-cols-1 .nri-clean-library-card.has-image{
    display:flex;
    flex-direction:column;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-img{
    aspect-ratio:1/1;
    min-height:0;
    height:auto;
  }
}


/* v1.0.21 — keep course/bundle images square on one-column horizontal cards. */
@media(min-width:901px){
  .nri-clean-cols-1 .nri-clean-library-card.has-image{
    grid-template-columns:minmax(220px,320px) minmax(0,1fr);
    align-items:center;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-img{
    aspect-ratio:1/1;
    min-height:0;
    height:auto;
    width:100%;
    align-self:center;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-img img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
}


/* v1.0.31 — align card buttons to the bottom of equal-height rows. */
.nri-clean-library-card{display:flex;flex-direction:column;}
.nri-clean-library-card .nri-clean-lib-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;}
.nri-clean-library-card .nri-clean-buttons{margin-top:auto;padding-top:18px;}
.nri-clean-library-card .nri-clean-buttons .nri-clean-btn{margin-top:0;}
.nri-clean-library-card .nri-clean-price{margin-bottom:0!important;}
@media(min-width:901px){
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-body{justify-content:flex-start;}
}


/* v1.0.32 — card-level text/button alignment controls and price under title. */
.nri-clean-library-card.nri-text-align-left .nri-clean-lib-body{text-align:left;}
.nri-clean-library-card.nri-text-align-center .nri-clean-lib-body{text-align:center;}
.nri-clean-library-card.nri-text-align-right .nri-clean-lib-body{text-align:right;}
.nri-clean-library-card.nri-buttons-align-left .nri-clean-buttons{justify-content:flex-start;}
.nri-clean-library-card.nri-buttons-align-center .nri-clean-buttons{justify-content:center;}
.nri-clean-library-card.nri-buttons-align-right .nri-clean-buttons{justify-content:flex-end;}
.nri-clean-library-card .nri-clean-price{margin:4px 0 14px!important;}
.nri-clean-library-card .nri-clean-lib-body > h3{margin-bottom:6px;}
.nri-clean-library-card .nri-clean-lib-body > h3 + .nri-clean-price + p{margin-top:0;}

/* v1.0.39 — Contextual Books/Courses navigation */
.nri-clean-shop-switch{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:14px;
  margin:0 auto 42px;
  width:100%;
  max-width:720px;
  padding:0 18px;
}
.nri-clean-shop-switch-single{max-width:380px;}
.nri-clean-switch-btn{
  flex:1 1 280px;
  min-width:240px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:17px 20px 15px;
  border:1px solid rgba(201,168,76,.32);
  background:linear-gradient(145deg,rgba(201,168,76,.055),rgba(255,255,255,.015));
  color:#f5f0e8!important;
  text-decoration:none!important;
  box-shadow:0 18px 40px rgba(0,0,0,.22);
  overflow:hidden;
  transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease;
}
.nri-clean-switch-btn::before{
  content:"";
  position:absolute;
  left:0;top:0;height:2px;width:58px;
  background:#c9a84c;
  transition:width .24s ease;
}
.nri-clean-switch-btn span{
  position:relative;
  z-index:1;
  font-family:"Cinzel",Georgia,serif;
  font-size:15px;
  letter-spacing:.18em;
  text-transform:uppercase;
  line-height:1.25;
}
.nri-clean-switch-btn small{
  position:relative;
  z-index:1;
  color:#c4b8a8;
  font-size:13px;
  font-weight:300;
  letter-spacing:.02em;
}
.nri-clean-switch-btn:hover,
.nri-clean-switch-btn:focus{
  transform:translateY(-3px);
  border-color:rgba(201,168,76,.62);
  background:linear-gradient(145deg,rgba(201,168,76,.11),rgba(255,255,255,.025));
  box-shadow:0 24px 46px rgba(0,0,0,.30);
  outline:none;
}
.nri-clean-switch-btn:hover::before,
.nri-clean-switch-btn:focus::before{width:100%;}
.nri-clean-switch-btn.is-active{
  border-color:rgba(201,168,76,.72);
  background:linear-gradient(145deg,rgba(201,168,76,.16),rgba(201,168,76,.035));
}
.nri-clean-switch-btn.is-active small{color:#d8cfbf;}
@media(max-width:640px){
  .nri-clean-shop-switch{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    margin-bottom:34px;
    max-width:100%;
    padding:0;
  }
  .nri-clean-shop-switch-single{max-width:100%;}
  .nri-clean-switch-btn{
    flex:0 0 auto;
    width:100%;
    min-width:0;
    min-height:74px;
    padding:17px 18px 16px;
  }
  .nri-clean-switch-btn span{font-size:14px;letter-spacing:.16em;}
  .nri-clean-switch-btn small{font-size:13px;line-height:1.35;}
}


/* v1.0.40 — native limited book preview reader */
.nri-book-reader-page{margin:0;background:#0d0d0d;color:#f5f0e8;font-family:Inter,Arial,sans-serif;}
.nri-book-reader-shell{min-height:100vh;padding:72px 18px;background:radial-gradient(circle at top,rgba(201,168,76,.10),transparent 38%),#0d0d0d;}
.nri-book-reader-head{text-align:center;max-width:860px;margin:0 auto 32px;}
.nri-book-reader-head h1{font-family:Cinzel,Georgia,serif;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(30px,4vw,54px);line-height:1.12;margin:0 0 14px;color:#f5f0e8;}
.nri-book-reader-head p{color:#c4b8a8;font-size:16px;line-height:1.55;margin:0;}
.nri-book-reader-card{max-width:980px;margin:0 auto;padding:18px;background:#151515;border:1px solid rgba(201,168,76,.24);box-shadow:0 24px 70px rgba(0,0,0,.42);}
.nri-book-reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 14px;color:#c4b8a8;font-family:Cinzel,Georgia,serif;letter-spacing:.08em;text-transform:uppercase;font-size:12px;}
.nri-reader-btn{appearance:none;border:1px solid rgba(201,168,76,.42);background:transparent;color:#c9a84c;font-family:Cinzel,Georgia,serif;text-transform:uppercase;letter-spacing:.12em;font-size:11px;padding:10px 14px;cursor:pointer;}
.nri-reader-btn:disabled{opacity:.35;cursor:not-allowed;}
.nri-book-canvas-wrap{display:flex;align-items:flex-start;justify-content:center;background:#090909;border:1px solid rgba(255,255,255,.06);padding:12px;overflow:auto;max-height:78vh;}
.nri-book-canvas-wrap canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 12px 36px rgba(0,0,0,.45);}
.nri-book-reader-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:18px 0 0;}
.nri-book-reader-note{text-align:center;color:#8f8678;font-size:13px;line-height:1.5;margin:14px 0 0;}
@media(max-width:640px){
  .nri-book-reader-shell{padding:48px 10px;}
  .nri-book-reader-card{padding:12px;}
  .nri-book-reader-toolbar{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;}
  .nri-reader-btn{width:100%;max-width:260px;}
  .nri-book-canvas-wrap{max-height:70vh;padding:8px;}
}

/* v1.0.41 — clean standalone native book preview reader */
.nri-book-reader-standalone{
  margin:0!important;
  min-height:100svh;
  overflow:hidden;
  background:#0d0d0d;
  color:#f5f0e8;
  font-family:Inter,Arial,sans-serif;
}
.nri-book-reader-standalone *{box-sizing:border-box;}
.nri-book-reader-minihead,
.nri-book-reader-minifoot{
  position:fixed;
  left:0;
  right:0;
  z-index:20;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px clamp(14px,3vw,34px);
  background:rgba(13,13,13,.94);
  border-color:rgba(201,168,76,.18);
  color:#c4b8a8;
  font-family:Cinzel,Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:11px;
}
.nri-book-reader-minihead{top:0;border-bottom:1px solid rgba(201,168,76,.18);}
.nri-book-reader-minifoot{bottom:0;border-top:1px solid rgba(201,168,76,.18);}
.nri-book-reader-minihead a,
.nri-book-reader-minifoot a{color:#c9a84c!important;text-decoration:none!important;}
.nri-book-reader-brand{color:#f5f0e8!important;}
.nri-book-reader-standalone .nri-book-reader-shell{
  height:100svh;
  min-height:100svh;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  padding:64px clamp(10px,2.2vw,28px) 58px;
  overflow:hidden;
  background:radial-gradient(circle at top,rgba(201,168,76,.10),transparent 36%),#0d0d0d;
}
.nri-book-reader-standalone .nri-book-reader-head{
  text-align:center;
  max-width:920px;
  margin:0 auto 14px;
}
.nri-book-reader-standalone .nri-book-reader-head h1{
  font-family:Cinzel,Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:clamp(22px,2.8vw,38px);
  line-height:1.08;
  margin:0 0 8px;
  color:#f5f0e8;
}
.nri-book-reader-standalone .nri-book-reader-head p{font-size:14px;line-height:1.4;margin:0;color:#c4b8a8;}
.nri-book-reader-standalone .nri-clean-eyebrow{margin-bottom:6px!important;font-size:11px!important;}
.nri-book-reader-standalone .nri-book-reader-card{
  width:min(1180px,100%);
  min-height:0;
  height:100%;
  margin:0 auto;
  padding:12px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto auto;
  background:#151515;
  border:1px solid rgba(201,168,76,.24);
  box-shadow:0 24px 70px rgba(0,0,0,.42);
  overflow:hidden;
}
.nri-book-reader-standalone .nri-book-reader-toolbar{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:10px;
  padding:0 0 10px;
  color:#c4b8a8;
  font-family:Cinzel,Georgia,serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  text-align:center;
}
.nri-book-reader-standalone .nri-reader-btn{
  appearance:none;
  border:1px solid rgba(201,168,76,.42);
  background:transparent;
  color:#c9a84c;
  font-family:Cinzel,Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:11px;
  line-height:1;
  padding:11px 14px;
  cursor:pointer;
  white-space:nowrap;
}
.nri-book-reader-standalone .nri-reader-btn:disabled{opacity:.35;cursor:not-allowed;}
.nri-book-reader-standalone .nri-book-canvas-wrap{
  min-height:0;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#090909;
  border:1px solid rgba(255,255,255,.06);
  padding:8px;
  overflow:hidden;
  max-height:none;
}
.nri-book-reader-standalone .nri-book-canvas-wrap canvas{
  display:block;
  max-width:100%;
  max-height:100%;
  background:#fff;
  box-shadow:0 12px 36px rgba(0,0,0,.45);
}
.nri-book-reader-standalone .nri-book-reader-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:12px auto 0;
  width:100%;
  text-align:center;
}
.nri-book-reader-standalone .nri-book-reader-actions .nri-clean-btn,
.nri-book-reader-standalone .nri-book-back-btn{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  margin:0!important;
}
.nri-book-reader-standalone .nri-book-reader-note{
  text-align:center;
  color:#8f8678;
  font-size:12px;
  line-height:1.35;
  margin:8px 0 0;
}
.nri-reader-fullscreen-on .nri-book-reader-minihead,
.nri-reader-fullscreen-on .nri-book-reader-minifoot{display:none;}
.nri-reader-fullscreen-on .nri-book-reader-shell{padding:10px!important;}
.nri-reader-fullscreen-on .nri-book-reader-head{display:none;}
.nri-reader-fullscreen-on .nri-book-reader-card{width:100%;height:100%;max-width:none;}
@media(max-width:700px){
  .nri-book-reader-minihead,.nri-book-reader-minifoot{font-size:10px;letter-spacing:.09em;padding:9px 12px;}
  .nri-book-reader-minihead span{display:none;}
  .nri-book-reader-standalone .nri-book-reader-shell{padding:56px 8px 52px;}
  .nri-book-reader-standalone .nri-book-reader-head{margin-bottom:10px;}
  .nri-book-reader-standalone .nri-book-reader-head h1{font-size:clamp(18px,5vw,24px);}
  .nri-book-reader-standalone .nri-book-reader-head p{font-size:12px;}
  .nri-book-reader-standalone .nri-book-reader-card{padding:8px;}
  .nri-book-reader-standalone .nri-book-reader-toolbar{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .nri-book-reader-standalone .nri-book-reader-toolbar span{grid-column:1/-1;grid-row:1;}
  .nri-book-reader-standalone .nri-reader-btn{width:100%;padding:10px 8px;font-size:10px;}
  .nri-book-reader-standalone .nri-book-canvas-wrap{padding:6px;}
  .nri-book-reader-standalone .nri-book-reader-note{display:none;}
  .nri-book-reader-standalone .nri-book-reader-actions .nri-clean-btn{width:100%;max-width:320px;}
}


/* v1.0.42 — reader action buttons fixed: visible buy button + true centred back button */
.nri-book-reader-standalone{
  --nri-reader-gold:#c9a84c;
  --nri-reader-ink:#0d0d0d;
  --nri-reader-paper:#f5f0e8;
}
.nri-book-reader-standalone .nri-book-reader-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  width:100%!important;
  margin:14px auto 0!important;
  padding:0!important;
  text-align:center!important;
}
.nri-book-reader-standalone .nri-reader-action-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:156px;
  min-height:40px;
  margin:0!important;
  padding:11px 18px!important;
  border:1px solid rgba(201,168,76,.55)!important;
  font-family:Cinzel,Georgia,serif!important;
  font-size:12px!important;
  line-height:1!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
.nri-book-reader-standalone .nri-reader-buy-btn{
  background:var(--nri-reader-gold)!important;
  color:var(--nri-reader-ink)!important;
}
.nri-book-reader-standalone .nri-reader-back-btn{
  background:transparent!important;
  color:var(--nri-reader-paper)!important;
}
.nri-book-reader-standalone .nri-book-reader-actions:has(.nri-reader-back-btn:only-child),
.nri-book-reader-standalone .nri-book-reader-actions.single-action{
  justify-content:center!important;
}
@media(max-width:700px){
  .nri-book-reader-standalone .nri-book-reader-actions{gap:9px!important;}
  .nri-book-reader-standalone .nri-reader-action-btn{width:100%!important;max-width:320px!important;}
}


/* v1.0.44 — per-card course/bundle image sizing. Use the card Image size control. */
.nri-clean-library-card.nri-image-size-small.has-image .nri-clean-lib-img{
  width:min(64%, 220px);
  margin:22px auto 0;
  aspect-ratio:1/1;
  border:1px solid rgba(201,168,76,.18);
}
.nri-clean-library-card.nri-image-size-normal.has-image .nri-clean-lib-img{
  width:min(82%, 320px);
  margin:22px auto 0;
  aspect-ratio:1/1;
  border:1px solid rgba(201,168,76,.14);
}
.nri-clean-library-card.nri-image-size-large.has-image .nri-clean-lib-img{
  width:100%;
  margin:0;
  aspect-ratio:1/1;
  border:0;
}
.nri-clean-library-card.nri-image-size-hidden .nri-clean-lib-img{display:none!important;}
.nri-clean-library-card.nri-image-size-small .nri-clean-lib-body,
.nri-clean-library-card.nri-image-size-normal .nri-clean-lib-body{padding-top:20px;}
@media(max-width:700px){
  .nri-clean-library-card.nri-image-size-small.has-image .nri-clean-lib-img{width:min(58%, 190px);}
  .nri-clean-library-card.nri-image-size-normal.has-image .nri-clean-lib-img{width:min(76%, 260px);}
}

/* v1.0.47 — book cards inside multi-column store rows use a wrapped editorial layout.
   This prevents a cover + thin text column squeeze when books are mixed into the main store. */
@media(min-width:901px){
  .nri-clean-cols-2 .nri-clean-book-card,
  .nri-clean-cols-3 .nri-clean-book-card,
  .nri-clean-cols-4 .nri-clean-book-card,
  .nri-clean-cols-2 .nri-clean-book-card.image_right,
  .nri-clean-cols-3 .nri-clean-book-card.image_right,
  .nri-clean-cols-4 .nri-clean-book-card.image_right{
    display:block;
    grid-template-columns:none;
    overflow:hidden;
  }
  .nri-clean-cols-2 .nri-clean-book-card .nri-clean-book-cover,
  .nri-clean-cols-3 .nri-clean-book-card .nri-clean-book-cover,
  .nri-clean-cols-4 .nri-clean-book-card .nri-clean-book-cover{
    float:left;
    width:min(var(--nri-cover-width,150px),38%);
    max-width:180px;
    margin:0 var(--nri-card-gap,20px) 10px 0;
    order:0;
  }
  .nri-clean-cols-2 .nri-clean-book-card.image_right .nri-clean-book-cover,
  .nri-clean-cols-3 .nri-clean-book-card.image_right .nri-clean-book-cover,
  .nri-clean-cols-4 .nri-clean-book-card.image_right .nri-clean-book-cover{
    float:right;
    margin:0 0 10px var(--nri-card-gap,20px);
  }
  .nri-clean-cols-2 .nri-clean-book-card.image_top .nri-clean-book-cover,
  .nri-clean-cols-3 .nri-clean-book-card.image_top .nri-clean-book-cover,
  .nri-clean-cols-4 .nri-clean-book-card.image_top .nri-clean-book-cover{
    float:none;
    width:var(--nri-cover-width,150px);
    max-width:100%;
    margin:0 auto 18px;
  }
  .nri-clean-cols-2 .nri-clean-book-body,
  .nri-clean-cols-3 .nri-clean-book-body,
  .nri-clean-cols-4 .nri-clean-book-body{
    display:block;
    height:auto;
    min-height:0;
  }
  .nri-clean-cols-2 .nri-clean-book-desc,
  .nri-clean-cols-3 .nri-clean-book-desc,
  .nri-clean-cols-4 .nri-clean-book-desc{
    display:block;
  }
  .nri-clean-cols-2 .nri-clean-book-footer,
  .nri-clean-cols-3 .nri-clean-book-footer,
  .nri-clean-cols-4 .nri-clean-book-footer{
    clear:both;
    margin-top:14px;
    padding-top:12px;
  }
}


/* v1.0.48 — keep card action buttons aligned to the bottom across equal-height rows.
   Course/bundle/custom cards already use flex; this hardens the row/card stretching and adds
   matching bottom-anchored actions for book cards, including wrapped editorial book layouts. */
.nri-clean-row{align-items:stretch;}
.nri-clean-row > .nri-clean-card{height:auto;min-height:100%;}
.nri-clean-library-card{height:100%;}
.nri-clean-library-card .nri-clean-lib-body{flex:1 1 auto;}
.nri-clean-library-card .nri-clean-buttons{margin-top:auto;}
.nri-clean-library-card .nri-clean-lib-body > p:not(.nri-clean-type):not(.nri-clean-price){margin-bottom:0;}

@media(min-width:901px){
  .nri-clean-row .nri-clean-book-card{
    position:relative;
    min-height:100%;
    padding-bottom:var(--nri-book-footer-space,158px);
  }
  .nri-clean-row .nri-clean-book-card .nri-clean-book-footer{
    position:absolute;
    left:22px;
    right:22px;
    bottom:22px;
    clear:none;
    margin-top:0;
    padding-top:14px;
  }
  .nri-clean-row .nri-clean-book-card .nri-clean-buttons{
    align-items:flex-end;
  }
  .nri-clean-row .nri-clean-book-card .nri-clean-book-desc{
    margin-bottom:0;
  }
  .nri-clean-row .nri-clean-book-card .nri-clean-price{
    margin-bottom:0!important;
  }
}
@media(max-width:900px){
  .nri-clean-row .nri-clean-book-card{
    position:static;
    padding-bottom:20px;
  }
  .nri-clean-row .nri-clean-book-card .nri-clean-book-footer{
    position:static;
    clear:both;
    margin-top:14px;
    padding-top:12px;
  }
}


/* v1.0.49 — true row-level bottom alignment.
   The public renderer wraps every card in a grid slot <div>, so the equal-height rules must target
   the slot as well as the card. This keeps buttons aligned at the bottom across a row even when
   one card has more text than another. */
.nri-clean-row{align-items:stretch;}
.nri-clean-row > div{display:flex;min-width:0;}
.nri-clean-row > div > .nri-clean-card{width:100%;min-height:100%;}
.nri-clean-row .nri-clean-library-card{display:flex;flex-direction:column;}
.nri-clean-row .nri-clean-library-card .nri-clean-lib-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;}
.nri-clean-row .nri-clean-library-card .nri-clean-buttons{margin-top:auto;padding-top:18px;}
.nri-clean-row .nri-clean-library-card .nri-clean-buttons .nri-clean-btn{margin-top:0;}
.nri-clean-row .nri-clean-book-card{min-height:100%;}
@media(max-width:900px){
  .nri-clean-row > div{display:block;}
  .nri-clean-row > div > .nri-clean-card{min-height:0;}
}


/* v1.0.51 — align the start of course/bundle descriptions across each row. */
.nri-clean-library-card .nri-clean-card-head{margin:0 0 0;}
.nri-clean-library-card .nri-clean-card-head .nri-clean-type{margin-top:0;}
.nri-clean-library-card .nri-clean-card-head h3{margin-bottom:6px;}
.nri-clean-library-card .nri-clean-card-desc{margin-top:0;}
@media(max-width:900px){
  .nri-clean-library-card .nri-clean-card-head{min-height:0!important;}
}


/* v1.0.52 — certification badges for course/bundle cards + book head equalisation support. */
.nri-clean-cert-badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  justify-content:center;
  align-items:center;
  margin:0 0 10px;
}
.nri-text-align-left .nri-clean-cert-badges{justify-content:flex-start;}
.nri-text-align-right .nri-clean-cert-badges{justify-content:flex-end;}
.nri-clean-cert-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(196,154,84,.55);
  background:rgba(196,154,84,.11);
  color:#c49a54;
  border-radius:999px;
  padding:5px 10px;
  font-size:10px;
  line-height:1.15;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:700;
}
.nri-cert-attendance{
  border-color:rgba(244,241,235,.32);
  background:rgba(244,241,235,.075);
  color:#f4f1eb;
}
.nri-clean-book-head{margin:0 0 0;}
.nri-clean-book-head h3{margin-bottom:6px;}
.nri-clean-book-head h4{margin-top:0;}
@media(max-width:900px){
  .nri-clean-cert-badges{justify-content:center;}
  .nri-clean-book-head{min-height:0!important;}
}


/* v1.0.53 — never clip long bundle/course/book card copy.
   Some one-row bundle cards can become taller after certification badges, aligned headings,
   and bottom-aligned buttons. These rules keep the alignment system but let the card grow
   naturally so the full description is always visible. */
.nri-clean-row,
.nri-clean-row > div,
.nri-clean-row > div > .nri-clean-card,
.nri-clean-card,
.nri-clean-library-card,
.nri-clean-library-card .nri-clean-lib-body{
  overflow:visible;
}
.nri-clean-library-card,
.nri-clean-row > div > .nri-clean-card{
  height:auto;
  min-height:100%;
}
.nri-clean-library-card .nri-clean-lib-body{
  flex:1 0 auto;
  min-height:auto;
}
.nri-clean-library-card .nri-clean-card-desc,
.nri-clean-book-card .nri-clean-book-desc{
  max-height:none!important;
  overflow:visible!important;
  display:block;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
}
@media(min-width:901px){
  .nri-clean-cols-1 .nri-clean-library-card.has-image{
    align-items:stretch;
  }
  .nri-clean-cols-1 .nri-clean-library-card.has-image .nri-clean-lib-body{
    align-self:stretch;
  }
}


/* v1.0.54 — bundle cards must never use a hidden/trimmed text state on the live shop.
   The PHP now keeps full bundle descriptions instead of trimming to 35 words. These rules
   harden only bundle cards so the live shop matches the builder preview and expands naturally. */
.nri-clean-library-card.nri-card-type-bundle,
.nri-clean-library-card.nri-card-type-bundle .nri-clean-lib-body,
.nri-clean-library-card.nri-card-type-bundle .nri-clean-card-desc{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.nri-clean-library-card.nri-card-type-bundle .nri-clean-card-desc{
  display:block!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
  white-space:normal!important;
}


/* v1.0.57 — global-header shortcode spacing fix.
   When the shop is embedded on a normal site page with the global header/footer,
   it should not keep the large standalone-app top breathing space. */
.nri-clean-shop.nri-clean-shop-context-shortcode,
.nri-clean-shop.nri-clean-shop-context-student_shortcode{
    padding-top:34px !important;
}
.nri-clean-shop.nri-clean-shop-context-shortcode .nri-clean-shop-hero,
.nri-clean-shop.nri-clean-shop-context-student_shortcode .nri-clean-shop-hero{
    margin-bottom:42px !important;
}
@media(max-width:900px){
  .nri-clean-shop.nri-clean-shop-context-shortcode,
  .nri-clean-shop.nri-clean-shop-context-student_shortcode{
      padding-top:28px !important;
  }
}


/* v1.0.59 — iPhone/app-frame book preview reader portrait fix
   The standalone preview reader must not squeeze the PDF page into a square viewport on narrow screens. */
@media(max-width:700px){
  html:has(body.nri-book-reader-standalone),
  body.nri-book-reader-standalone{
    height:auto!important;
    min-height:100svh!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .nri-book-reader-standalone .nri-book-reader-shell{
    height:auto!important;
    min-height:100svh!important;
    display:block!important;
    overflow:visible!important;
    padding:56px 8px 52px!important;
  }
  .nri-book-reader-standalone .nri-book-reader-card{
    height:auto!important;
    min-height:0!important;
    display:block!important;
    overflow:visible!important;
  }
  .nri-book-reader-standalone .nri-book-canvas-wrap{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    display:block!important;
    overflow:visible!important;
    padding:6px!important;
    text-align:center!important;
    aspect-ratio:auto!important;
  }
  .nri-book-reader-standalone .nri-book-canvas-wrap canvas{
    display:block!important;
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:none!important;
    margin:0 auto!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
  }
}
