/* ReadHub 2.4.0 — product page (rhp-*) */
.sb-page .sb-wrap{max-width:1240px}
.rhp{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2rem;align-items:start;margin-bottom:1.75rem}
.rhp *{box-sizing:border-box}
.rhp-card{background:#fff;border:1px solid #e3e8f6;border-radius:18px;box-shadow:0 4px 24px rgba(30,53,216,.09)}
.rhp-left{display:flex;flex-direction:column;gap:1.1rem;position:sticky;top:1rem}
/* cover */
.rhp-stage{padding:1.6rem;background:linear-gradient(160deg,#f4f7ff,#e9efff);display:flex;align-items:center;justify-content:center;aspect-ratio:4/4.6;overflow:hidden}
.rhp-book{position:relative;display:inline-block;max-width:100%;max-height:100%;line-height:0;border-radius:3px 8px 8px 3px;
  box-shadow:-6px 0 0 -2px #cfd6ea,0 22px 40px -12px rgba(14,23,101,.45),0 6px 14px rgba(14,23,101,.18)}
.rhp-book::before{content:"";position:absolute;inset:0 auto 0 0;width:9px;border-radius:3px 0 0 3px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(255,255,255,.22) 45%,rgba(0,0,0,.05))}
.rhp-book::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.rhp-book img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(min(560px,70vh));object-fit:contain;border-radius:inherit}
.rhp-ph{width:260px;aspect-ratio:2/3;background:linear-gradient(135deg,#1e35d8,#3b5ce6);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:4rem}
/* preview */
.rhp-prev{padding:1.1rem 1.2rem 1.3rem}
.rhp-prev h2{margin:0 0 .8rem;font:800 .86rem/1 'Source Sans 3',system-ui,sans-serif;letter-spacing:.09em;color:#0e1765;display:flex;align-items:center;gap:.5rem;text-transform:uppercase}
.rhp-prev h2 small{font-weight:600;letter-spacing:0;color:#6b7280;text-transform:none;font-size:.8rem}
.rhp-thumbs{display:grid;gap:.7rem;justify-content:center}
.rhp-n1{grid-template-columns:minmax(0,200px)}.rhp-n2{grid-template-columns:repeat(2,minmax(0,150px))}
.rhp-n3{grid-template-columns:repeat(3,minmax(0,1fr))}.rhp-n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.rhp-th{display:block;padding:0;margin:0;background:#fff;border:1.5px solid #d6ddf3;border-radius:10px;overflow:hidden;cursor:zoom-in;aspect-ratio:3/4;transition:transform .2s,box-shadow .2s,border-color .2s}
.rhp-th:hover,.rhp-th:focus-visible{transform:translateY(-3px);border-color:#1e35d8;box-shadow:0 8px 18px rgba(30,53,216,.2);outline:none}
.rhp-th img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
/* sample btn */
.rhp-sample{display:flex;align-items:center;justify-content:center;gap:.7rem;width:100%;padding:1.05rem 1.2rem;border:0;border-radius:14px;cursor:pointer;color:#fff;
  font:800 1.05rem/1 'Source Sans 3',system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(135deg,#1d4ed8,#2f6bff 55%,#4c8dff);
  box-shadow:0 8px 22px rgba(47,107,255,.42);transition:transform .2s,box-shadow .2s,filter .2s}
.rhp-sample:hover,.rhp-sample:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px rgba(47,107,255,.55);filter:brightness(1.05);outline:none}
.rhp-sample svg{width:24px;height:24px;flex:none}.rhp-sample .rhp-arr{transition:transform .2s}.rhp-sample:hover .rhp-arr{transform:translateX(4px)}
/* right col */
.rhp-right{display:flex;flex-direction:column;gap:1.1rem;min-width:0}
.rhp-badges{display:flex;gap:.45rem;flex-wrap:wrap}
.rhp-badge{padding:.3rem .8rem;border-radius:99px;font-size:.76rem;font-weight:700;text-decoration:none;border:1px solid;transition:filter .15s}
.rhp-badge:hover{filter:brightness(.95)}
.rhp-b0{background:#e8f8ee;color:#157a3c;border-color:#bfe9cd}.rhp-b1{background:#eaf1ff;color:#1e4fd8;border-color:#c6d8fb}
.rhp-b2{background:#f3ebff;color:#6d28d9;border-color:#dcc9fb}.rhp-b3{background:#fff1e6;color:#c2570c;border-color:#fbd5b4}
.rhp-title{font:900 clamp(1.7rem,3vw,2.6rem)/1.12 'Playfair Display',Georgia,serif;color:#0e1765;margin:0;overflow-wrap:anywhere}
.rhp-sub{margin:-.35rem 0 0;font-size:1.05rem;line-height:1.5;color:#4b5563;font-weight:500}
.rhp-author{margin:0;font-size:1.05rem;color:#374151}.rhp-author b{color:#1e35d8}
.rhp-meta-row{display:flex;align-items:center;gap:1.1rem 1.4rem;flex-wrap:wrap}
.rhp-rate{display:inline-flex;align-items:center;gap:.4rem;font-weight:800;color:#111827}
.rhp-rate svg{width:20px;height:20px;color:#f5b400}.rhp-rate small{font-weight:500;color:#6b7280;font-size:.88rem}
.rhp-meta-row .rh-eng{margin:0}
.rhp-share{display:inline-flex;align-items:center;gap:.4rem;background:none;border:0;cursor:pointer;color:#4b5563;font:600 .9rem 'Source Sans 3',system-ui,sans-serif;padding:.3rem .4rem;border-radius:8px}
.rhp-share:hover{color:#1e35d8;background:#eef2ff}.rhp-share svg{width:18px;height:18px}
/* info bar */
.rhp-info{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));padding:.9rem .4rem;border-radius:16px;background:#fff;border:1px solid #dfe6fa}
.rhp-info>div{display:flex;gap:.65rem;align-items:center;padding:.2rem .9rem;min-width:0;border-left:1px solid #e3e8f6}
.rhp-info>div:first-child{border-left:0}
.rhp-info svg{width:26px;height:26px;flex:none;color:#1e35d8}
.rhp-info span{display:block;font-size:.64rem;font-weight:800;letter-spacing:.08em;color:#6b7280;text-transform:uppercase}
.rhp-info b{display:block;font-size:.92rem;color:#111827;overflow-wrap:anywhere;line-height:1.25}
/* price */
.rhp-price{display:flex;align-items:center;gap:1rem;padding:1.05rem 1.3rem;border-radius:16px;background:linear-gradient(120deg,#e8f0ff,#f1e8ff);border:1px solid #d8d4fb;box-shadow:0 4px 16px rgba(99,70,230,.12)}
.rhp-pdf{width:52px;height:52px;border-radius:12px;background:#e5342f;color:#fff;display:flex;align-items:center;justify-content:center;flex:none;font:900 .8rem 'Source Sans 3',sans-serif;letter-spacing:.03em;box-shadow:0 4px 10px rgba(229,52,47,.35)}
.rhp-price h3{margin:0;font:800 1.08rem 'Source Sans 3',system-ui,sans-serif;color:#0e1765}
.rhp-price p{margin:.15rem 0 0;color:#4b5563;font-size:.92rem}
.rhp-amt{margin-left:auto;font:900 clamp(1.9rem,3.4vw,2.6rem)/1 'Source Sans 3',system-ui,sans-serif;color:#e5342f}
/* buy */
.rhp-buy{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:.8rem}
.rhp-bt{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.95rem .9rem;border-radius:14px;text-decoration:none;min-height:74px;text-align:left;transition:transform .2s,box-shadow .2s,filter .2s}
.rhp-bt:hover,.rhp-bt:focus-visible{transform:translateY(-3px);filter:brightness(1.05);outline:none}
.rhp-bt svg{width:30px;height:30px;flex:none}
.rhp-bt b{display:block;font:800 1rem/1.15 'Source Sans 3',system-ui,sans-serif}.rhp-bt small{display:block;font-size:.8rem;opacity:.9;margin-top:.15rem}
.rhp-go{color:#fff;background:linear-gradient(135deg,#15803d,#22b455);box-shadow:0 8px 20px rgba(21,128,61,.35)}
.rhp-am{color:#111;background:linear-gradient(135deg,#ffb400,#ffcf4d);box-shadow:0 8px 20px rgba(255,170,0,.35)}
.rhp-gp{color:#fff;background:linear-gradient(135deg,#1a56d8,#3b82f6);box-shadow:0 8px 20px rgba(37,99,235,.35)}
.rhp-note{margin:-.4rem 0 0;font-size:.8rem;color:#6b7280}
.rhp-admin{margin:0;padding:.6rem .8rem;border:1px dashed #e5a000;background:#fff8e6;border-radius:10px;font-size:.82rem;color:#7a5200}
/* trust */
.rhp-trust{display:grid;grid-template-columns:repeat(3,1fr);padding:.6rem .3rem;border-radius:14px;background:#fff;border:1px solid #e3e8f6;box-shadow:0 2px 10px rgba(30,53,216,.07)}
.rhp-trust>div{display:flex;gap:.6rem;align-items:center;padding:.15rem .8rem;border-left:1px solid #e3e8f6;min-width:0}
.rhp-trust>div:first-child{border-left:0}
.rhp-trust svg{width:24px;height:24px;flex:none}
.rhp-trust b{display:block;font-size:.76rem;letter-spacing:.04em;color:#0e1765;text-transform:uppercase}.rhp-trust span{display:block;font-size:.74rem;color:#6b7280;line-height:1.25}
.t-g svg{color:#16a34a}.t-b svg{color:#1e5bff}.t-p svg{color:#7c3aed}
/* modals */
.rhp-modal{position:fixed;inset:0;z-index:99999;background:rgba(8,12,40,.86);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}
.rhp-modal[hidden]{display:none}
.rhp-lb img{max-width:min(94vw,900px);max-height:84vh;object-fit:contain;background:#fff;border-radius:8px}
.rhp-x,.rhp-nv{position:absolute;background:rgba(255,255,255,.16);color:#fff;border:0;border-radius:50%;width:44px;height:44px;font-size:1.5rem;cursor:pointer;line-height:1}
.rhp-x{top:14px;right:14px}.rhp-nv{top:50%;transform:translateY(-50%)}.rhp-nv.p{left:12px}.rhp-nv.n{right:12px}
.rhp-x:hover,.rhp-nv:hover{background:rgba(255,255,255,.3)}
.rhp-rd{padding:0;background:#1b2250}
.rhp-bar{width:100%;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center;padding:.6rem .8rem;background:#0e1765;color:#fff;font:600 .9rem 'Source Sans 3',system-ui,sans-serif}
.rhp-bar .t{margin-right:auto;font-weight:800;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rhp-bar button{background:rgba(255,255,255,.14);color:#fff;border:0;border-radius:8px;min-width:40px;height:38px;padding:0 .7rem;font-size:1rem;cursor:pointer}
.rhp-bar button:hover:not(:disabled){background:rgba(255,255,255,.28)}.rhp-bar button:disabled{opacity:.4;cursor:default}
.rhp-bar .x{position:static;width:40px;border-radius:8px}
.rhp-view{flex:1;width:100%;overflow:auto;display:flex;justify-content:flex-start;padding:1rem;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}
.rhp-pg{position:relative;margin:0 auto;background:#fff;box-shadow:0 10px 40px rgba(0,0,0,.45);flex:none;user-select:none;-webkit-user-select:none}
.rhp-pg canvas{display:block}
.rhp-wm{position:absolute;inset:0;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='170'><text x='20' y='100' transform='rotate(-28 130 85)' font-family='Arial' font-weight='700' font-size='22' fill='%230e1765'>ReadHubb · Sample</text></svg>")}
.rhp-msg{color:#fff;font:600 1rem system-ui,sans-serif;margin:auto;text-align:center;padding:2rem}
.rhp-end{width:100%;text-align:center;padding:.5rem;background:#16206b;color:#cfd8ff;font-size:.85rem}
@media print{.rhp-modal{display:none!important}}
/* responsive */
@media(max-width:1000px){.rhp{grid-template-columns:minmax(0,4.5fr) minmax(0,6fr);gap:1.4rem}.rhp-info{grid-template-columns:repeat(2,1fr);row-gap:.5rem}.rhp-info>div:nth-child(3){border-left:0}}
@media(max-width:860px){.rhp{grid-template-columns:1fr}.rhp-left{position:static;max-width:560px;width:100%;margin:0 auto}
  .rhp-stage{aspect-ratio:auto;min-height:340px}}
@media(max-width:640px){.rhp-buy{grid-template-columns:1fr}.rhp-bt{justify-content:flex-start;padding-left:1.2rem}
  .rhp-trust{grid-template-columns:1fr;padding:.4rem}.rhp-trust>div{border-left:0;border-top:1px solid #e3e8f6;padding:.5rem .8rem}.rhp-trust>div:first-child{border-top:0}
  .rhp-price{flex-wrap:wrap}.rhp-amt{margin-left:0}.rhp-n4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rhp-bar .t{display:none}.rhp-info{padding:.6rem .2rem}.rhp-info>div{padding:.2rem .6rem}}
@media(max-width:420px){.rhp-info{grid-template-columns:1fr}.rhp-info>div{border-left:0}.rhp-stage{padding:1rem}}
@media(prefers-reduced-motion:reduce){.rhp *{transition:none!important}}
