/* ===== Polish Your Soul — home page styles ===== */

/* HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-top:64px;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background:url('/assets/hero-bg.jpg') center 26%/cover;transform:scale(1.06);will-change:transform;}
.hero-veil{position:absolute;inset:0;background:linear-gradient(118deg,rgba(10,25,22,.82) 0%,rgba(13,30,26,.5) 42%,rgba(10,25,22,.74) 100%),radial-gradient(120% 90% at 80% 20%,rgba(196,160,74,.12),transparent 55%);}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:3.5rem max(5vw,1.5rem);display:grid;grid-template-columns:1fr 1.05fr;gap:4.5rem;align-items:center;width:100%;}
.hero-book-col{display:flex;justify-content:center;align-items:center;}
.book-float{position:relative;animation:float 6s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
.book-3d{position:relative;z-index:2;filter:drop-shadow(-18px 28px 46px rgba(0,0,0,.6));transform:perspective(1100px) rotateY(-8deg) rotateX(1.5deg);transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.book-3d:hover{transform:perspective(1100px) rotateY(-3deg) rotateX(0);}
.book-3d img{width:clamp(210px,30vw,330px);border-radius:2px;}
.book-glow{position:absolute;inset:auto 0 -30px 0;height:60px;background:radial-gradient(50% 100% at 50% 0,rgba(196,160,74,.4),transparent 70%);filter:blur(14px);z-index:1;}
.hero-text-col{color:#fff;}
.hero-badge{display:inline-flex;align-items:center;gap:.6rem;font-size:.66rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:1.5rem;}
.hero-badge::before{content:'';width:30px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);}
.hero-title{font-family:var(--serif);font-size:clamp(3rem,7.2vw,5.6rem);font-weight:500;line-height:.98;letter-spacing:.01em;margin-bottom:.7rem;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.3);}
.hero-title .ht-amp{font-style:italic;font-weight:400;color:var(--gold-lt);}
.hero-sub{font-family:var(--serif);font-size:clamp(1.15rem,2.6vw,1.65rem);font-style:italic;font-weight:400;color:rgba(247,242,232,.86);margin-bottom:.9rem;letter-spacing:.01em;}
.hero-author{font-size:.86rem;font-weight:300;color:rgba(247,242,232,.66);margin-bottom:1.8rem;letter-spacing:.02em;}
.hero-author strong{font-weight:500;color:rgba(247,242,232,.92);}
.rating-row{display:flex;align-items:center;gap:.8rem;margin-bottom:1.3rem;flex-wrap:wrap;}

/* Hero price strip — the fastest answer to "what does it cost?" */
.hero-price{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.9rem;}
.hero-price .hp-item{display:flex;flex-direction:column;gap:.18rem;padding:.6rem 1.05rem;text-decoration:none;background:rgba(247,242,232,.07);border:1px solid rgba(247,242,232,.17);border-radius:4px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:border-color .25s,background .25s,transform .2s;}
.hero-price .hp-item:hover{border-color:var(--gold-lt);background:rgba(247,242,232,.12);transform:translateY(-2px);}
.hero-price .hp-item[hidden]{display:none;}
.hp-l{font-size:.58rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:rgba(247,242,232,.6);white-space:nowrap;}
.hp-v{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:#fff;line-height:1.1;white-space:nowrap;}
/* Strike-through/badge markup is shared with the edition cards (app.js builds
   it once); in the hero it has to stay compact, so it's scaled down here. */
.hp-v .price-strike{font-size:.78rem;color:rgba(247,242,232,.5);}
.hp-v .price-badge{font-size:.55rem;padding:.12rem .35rem;vertical-align:3px;}
.hp-only{display:inline-block;font-size:.5rem;font-weight:700;letter-spacing:.1em;color:var(--deep2);background:var(--gold-lt);padding:.1rem .32rem;border-radius:20px;margin-left:.25rem;}

/* Sticky buy bar */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:180;background:rgba(14,33,29,.97);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-top:1px solid rgba(228,205,143,.22);transform:translateY(100%);transition:transform .35s ease;box-shadow:0 -6px 26px rgba(10,25,22,.28);}
.buybar.show{transform:none;}
.buybar[hidden]{display:none;}
.buybar-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:1rem;padding:.7rem max(5vw,1.1rem);}
.buybar-in img{width:34px;border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,.35);flex-shrink:0;}
.bb-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0;margin-right:auto;}
.bb-t{font-family:var(--serif);font-size:.98rem;font-weight:600;color:var(--gold-lt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bb-p{font-size:.76rem;color:rgba(247,242,232,.72);white-space:nowrap;}
.bb-cta{padding:.7rem 1.5rem;font-size:.68rem;flex-shrink:0;}
body.has-buybar .privacy-bar{bottom:5rem;}
body.has-buybar footer .footer-bottom{padding-bottom:4.2rem;}
@media (max-width:420px){
  .buybar-in{gap:.7rem;padding:.6rem 1rem;}
  .buybar-in img{display:none;}
  .bb-cta{padding:.7rem 1.1rem;}
}
.stars{color:var(--gold-lt);font-size:1.05rem;letter-spacing:2px;}
.rating-label{font-size:.82rem;color:rgba(247,242,232,.74);font-weight:300;}
.rating-label strong{color:#fff;font-weight:500;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;}
.share-icon-btn{width:48px;height:48px;border:1px solid rgba(247,242,232,.4);background:transparent;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:2px;transition:border-color .25s,color .25s,transform .2s;}
.share-icon-btn:hover{border-color:var(--gold-lt);color:var(--gold-lt);transform:translateY(-2px);}
.share-icon-btn svg{width:18px;height:18px;}
.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);width:26px;height:42px;border:1px solid rgba(247,242,232,.4);border-radius:14px;display:flex;justify-content:center;padding-top:8px;z-index:3;}
.scroll-cue span{width:3px;height:8px;background:var(--gold-lt);border-radius:2px;animation:scrolldot 1.8s ease-in-out infinite;}
@keyframes scrolldot{0%{opacity:0;transform:translateY(-4px);}40%{opacity:1;}80%,100%{opacity:0;transform:translateY(10px);}}

/* WAVES */
.wave{line-height:0;}
.wave svg{display:block;width:100%;height:auto;}
.wave--from-deep{background:#f7f2e8;}
.wave--to-cream{background:#15302b;}
.wave--cream-sage{background:#f7f2e8;}

/* FOREWORD */
.foreword{background:var(--deep);padding:5.5rem max(5vw,1.5rem);}
.foreword-inner{max-width:760px;margin:0 auto;text-align:center;}
.ornament{margin-bottom:1.6rem;}
.section-label{font-size:.66rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem;}
.foreword blockquote{font-family:var(--serif);font-size:clamp(1.4rem,3.1vw,2.05rem);font-style:italic;font-weight:300;line-height:1.5;color:rgba(247,242,232,.94);margin-bottom:1.5rem;position:relative;}
.foreword blockquote::before{content:'\201C';position:absolute;top:-2.2rem;left:50%;transform:translateX(-50%);font-family:var(--serif);font-size:4rem;color:rgba(196,160,74,.32);line-height:1;}
.foreword cite{font-size:.8rem;font-style:normal;font-weight:400;letter-spacing:.05em;color:var(--gold-lt);}

/* ABOUT */
.about{background:var(--cream);padding:6.5rem max(5vw,1.5rem);}
.about-inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:5.5rem;align-items:center;}
.about-cover-wrap{position:relative;justify-self:center;}
.about-cover-wrap img{width:clamp(210px,25vw,300px);box-shadow:var(--shadow-lg);border-radius:2px;}
.cover-accent{position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(196,160,74,.5);z-index:-1;border-radius:2px;}
.about-text .lead{margin-bottom:1.1rem;}
.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.8rem;}
.tag{padding:.35rem .9rem;border:1px solid rgba(44,106,91,.32);color:var(--teal);font-size:.72rem;font-weight:500;letter-spacing:.04em;border-radius:2px;transition:background .2s,color .2s;}
.tag:hover{background:var(--teal);color:#fff;}

/* PILLARS */
.pillars{background:var(--sage);padding:6.5rem max(5vw,1.5rem);}
.pillars-inner{max-width:var(--maxw);margin:0 auto;}
.section-hdr{text-align:center;margin-bottom:3.6rem;}
.pillars-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(22,35,31,.1);border:1px solid rgba(22,35,31,.1);border-radius:4px;overflow:hidden;}
.pillar{background:#fff;padding:2.2rem 1.7rem;transition:background .3s,transform .3s;position:relative;}
.pillar:hover{background:var(--deep);transform:translateY(-3px);z-index:2;box-shadow:var(--shadow);}
.pnum{font-family:var(--serif);font-size:2.7rem;font-weight:300;color:var(--cream2);line-height:1;display:block;margin-bottom:.8rem;transition:color .3s;}
.pillar:hover .pnum{color:rgba(228,205,143,.3);}
.ptitle{font-family:var(--serif);font-size:1.28rem;font-weight:600;color:var(--deep);margin-bottom:.6rem;line-height:1.25;transition:color .3s;}
.pillar:hover .ptitle{color:#fff;}
.pdesc{font-size:.82rem;color:var(--muted);line-height:1.7;transition:color .3s;}
.pillar:hover .pdesc{color:rgba(247,242,232,.7);}

/* STATS */
.stats-strip{background:var(--deep);padding:3.4rem max(5vw,1.5rem);}
.stats-inner{max-width:920px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);text-align:center;}
.stat{border-right:1px solid rgba(228,205,143,.16);padding:.8rem 1rem;}
.stat:last-child{border-right:none;}
.stat-n{font-family:var(--serif);font-size:3rem;font-weight:500;color:var(--gold-lt);line-height:1;display:block;margin-bottom:.35rem;}
.stat-l{font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,242,232,.55);}

/* FEATURES */
.features{background:var(--cream);padding:6.5rem max(5vw,1.5rem);}
.features-inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:start;}
.feat-list{display:flex;flex-direction:column;gap:1.6rem;margin-top:2rem;}
.feat-item{display:grid;grid-template-columns:46px 1fr;gap:1.1rem;align-items:start;}
.feat-icon{width:46px;height:46px;background:var(--sage);display:flex;align-items:center;justify-content:center;border-top:2px solid var(--gold);flex-shrink:0;border-radius:2px;}
.feat-icon svg{width:19px;height:19px;}
.feat-title{font-family:var(--serif);font-size:1.18rem;font-weight:600;color:var(--deep);margin-bottom:.25rem;}
.feat-desc{font-size:.84rem;color:var(--muted);line-height:1.7;}
.who-box{background:var(--deep);padding:2.8rem;color:#fff;border-radius:4px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.who-box::before{content:'';position:absolute;top:-40px;right:-40px;width:140px;height:140px;border:1px solid rgba(228,205,143,.16);transform:rotate(45deg);}
.who-box h3{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--gold-lt);margin-bottom:1.5rem;position:relative;}
.who-list{list-style:none;display:flex;flex-direction:column;gap:1rem;}
.who-list li{display:flex;align-items:flex-start;gap:.8rem;font-size:.88rem;color:rgba(247,242,232,.8);line-height:1.55;font-weight:300;}
.who-list li::before{content:'\2014';color:var(--gold);font-weight:600;flex-shrink:0;}

/* SAMPLE */
.sample-cta{background:var(--cream2);padding:5rem max(5vw,1.5rem);text-align:center;}
.sample-inner{max-width:640px;margin:0 auto;}
.sample-inner .lead{margin:0 auto 2rem;max-width:500px;}

/* REVIEWS */
.reviews{background:var(--cream);padding:6.5rem max(5vw,1.5rem);}
.reviews-inner{max-width:var(--maxw);margin:0 auto;}
.reviews-hdr{text-align:center;margin-bottom:3.2rem;}
.overall-row{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.6rem;}
.big-num{font-family:var(--serif);font-size:3.6rem;font-weight:600;color:var(--deep);line-height:1;}
.big-stars{font-size:1.35rem;color:var(--gold);display:block;}
.big-count{font-size:.78rem;color:var(--muted);}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.review-card{background:#fff;padding:2rem;border-top:3px solid var(--gold);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);border-radius:0 0 4px 4px;transition:transform .3s,box-shadow .3s;}
.review-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.r-stars{color:var(--gold);font-size:.84rem;letter-spacing:1.5px;margin-bottom:.9rem;}
/* A reader can paste a URL, or a word with no break in it. line-clamp caps
   the number of LINES; it does nothing about a single line wider than the
   card, which is the other way these overflowed. */
.r-quote{font-family:var(--serif);font-size:1.08rem;font-style:italic;font-weight:400;color:var(--ink);line-height:1.6;margin-bottom:1.2rem;flex:1;overflow-wrap:anywhere;word-break:break-word;min-width:0;}
/* A 2,000-character review would otherwise set the height of its whole grid
   row. Eight lines, then Read more. */
.r-quote.clamped{display:-webkit-box;-webkit-line-clamp:8;line-clamp:8;-webkit-box-orient:vertical;overflow:hidden;flex:0 1 auto;}
.r-more{align-self:flex-start;margin:-.7rem 0 1.1rem;padding:0;background:none;border:none;
  font-family:var(--sans);font-size:.76rem;font-weight:600;color:var(--teal);cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;}
.r-more:hover{color:var(--deep);}
.r-meta{display:flex;align-items:center;gap:.7rem;margin-top:auto;}
.r-avatar{width:34px;height:34px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;color:var(--teal);flex-shrink:0;}
.r-id{display:flex;flex-direction:column;line-height:1.3;}
.r-name{font-size:.78rem;font-weight:600;color:var(--ink);}
.r-role{font-size:.69rem;color:var(--muted);}
.all-reviews{text-align:center;margin-top:2.2rem;font-size:.84rem;}
.all-reviews a{color:var(--teal);font-weight:500;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s;}
.all-reviews a:hover{border-color:var(--teal);}

/* VERSE */
.verse{background:var(--deep2);padding:6rem max(5vw,1.5rem);text-align:center;position:relative;overflow:hidden;}
.verse-pattern{position:absolute;inset:0;opacity:.5;background-image:repeating-linear-gradient(45deg,rgba(196,160,74,.05) 0 1px,transparent 1px 22px),repeating-linear-gradient(-45deg,rgba(196,160,74,.05) 0 1px,transparent 1px 22px);}
.verse-inner{max-width:720px;margin:0 auto;position:relative;z-index:1;}
.arabic{font-size:clamp(1.6rem,4.2vw,2.7rem);color:var(--gold-lt);line-height:1.8;direction:rtl;font-weight:400;margin:1.3rem 0;letter-spacing:.03em;}
.v-translation{font-family:var(--serif);font-size:clamp(1.15rem,2.6vw,1.7rem);font-style:italic;font-weight:300;color:rgba(247,242,232,.92);line-height:1.5;margin-bottom:.9rem;}
.v-ref{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}

/* BUY */
.buy{background:var(--cream);padding:6.5rem max(5vw,1.5rem);}
.buy-inner{max-width:880px;margin:0 auto;}
.buy-hdr{text-align:center;margin-bottom:2rem;}
.buy-blurb{max-width:520px;margin:.9rem auto 0;text-align:center;}
.pricing-detected{font-size:.74rem;color:var(--muted);letter-spacing:.05em;margin:1.8rem 0 0;text-align:center;text-transform:uppercase;}
.pricing-detected b{color:var(--teal);font-weight:600;}
/* Price now lives on each edition card, so the separate price table is gone. */
.fmt-price{display:block;font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--deep);line-height:1;margin-bottom:.3rem;}
.fmt-price[hidden]{display:none;}
.fmt-price .price-strike{font-family:var(--sans);font-size:.9rem;font-weight:400;color:var(--muted);text-decoration:line-through;margin-left:.3rem;}
.fmt-price .price-badge{font-family:var(--sans);font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--teal);padding:.2rem .5rem;border-radius:20px;vertical-align:6px;margin-left:.2rem;}
.fmt-note{display:block;font-size:.76rem;color:var(--muted);margin-bottom:1.1rem;min-height:1.1em;}
.fmt-actions{display:flex;flex-direction:column;gap:.55rem;margin-top:auto;}
.fmt-btn{width:100%;padding:.85rem 1rem;font-size:.7rem;}
.fmt-btn[hidden]{display:none;}
.kindle-note{font-size:.74rem;color:var(--muted);text-align:center;margin-top:2rem;}
/* The PDF card's price replaces its "coming soon" chip once the shop opens. */
.fmt-soon[hidden]{display:none;}
.isbn-bar{text-align:center;font-size:.74rem;color:var(--muted);padding:1.3rem;border:1px solid var(--line);letter-spacing:.04em;margin-top:1.4rem;border-radius:4px;background:rgba(255,255,255,.4);}

/* RESPONSIVE */
@media (max-width:1040px){ .pillars-grid{grid-template-columns:repeat(3,1fr);} }
/* ---- MOBILE-FIRST HERO ----
   On a phone the hero used to stack a 210px cover above the copy, pushing the
   price past the fold. Everything below tightens that stack so the title,
   price and buy button all land on the first screen, with the cover kept
   visible but sized to suit a phone rather than a desktop. */
@media (max-width:620px){
  .hero{padding:82px 0 40px!important;min-height:auto;}
  .hero-inner{padding:1.2rem max(4vw,1rem);gap:1.3rem;}
  .hero-book-col{order:-1;}
  .book-3d img{width:132px;}
  .book-float{animation:none;}          /* a floating cover wastes vertical space */
  .book-glow{display:none;}
  .hero-badge{margin-bottom:.7rem;font-size:.58rem;letter-spacing:.2em;}
  .hero-title{font-size:2.7rem;margin-bottom:.35rem;}
  .hero-sub{font-size:1.05rem;margin-bottom:.4rem;}
  .hero-author{font-size:.78rem;margin-bottom:.7rem;}
  .rating-row{margin-bottom:.8rem;gap:.5rem;}
  .rating-label{font-size:.75rem;}
  .hero-price{gap:.4rem;margin-bottom:1.1rem;}
  .hero-price .hp-item{padding:.45rem .7rem;flex:1;min-width:0;align-items:center;}
  .hp-v{font-size:1.15rem;}
  .hp-v .price-strike,.hp-v .price-badge{display:none;}  /* no room; full price shows in Editions */
  /* Both CTAs on one row — stacking them cost ~110px and pushed the buy
     button off short screens. The hero share icon is dropped here because the
     full "Share this book" panel further down already covers it on mobile. */
  .hero-ctas{gap:.5rem;width:100%;flex-wrap:nowrap;}
  .hero-ctas .btn{flex:1 1 0;min-width:0;padding:.85rem .5rem;font-size:.65rem;letter-spacing:.08em;white-space:nowrap;}
  .share-wrap{display:none;}
  .scroll-cue{display:none;}
}
@media (max-width:420px){
  .hero-title{font-size:2.35rem;}
  .book-3d img{width:112px;}
  .hp-l{font-size:.52rem;}
  .hp-v{font-size:1.05rem;}
}
/* Short phones (e.g. 360×640): claw back height from the cover so the buy
   button still lands above the fold. Must come after the width-only blocks
   above so it wins on screens that match both. */
@media (max-width:620px) and (max-height:700px){
  .hero{padding-top:74px!important;}
  .book-3d img{width:96px;}
  .hero-inner{gap:.9rem;}
  .hero-title{font-size:2.2rem;}
  .hero-sub{font-size:.95rem;}
  .hero-author{margin-bottom:.5rem;}
  .rating-row{margin-bottom:.6rem;}
  .hero-price{margin-bottom:.9rem;}
}

@media (max-width:860px){
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:2.8rem;}
  .hero-book-col{order:-1;}
  .hero-badge,.rating-row,.hero-ctas,.hero-price{justify-content:center;}
  .about-inner{grid-template-columns:1fr;gap:3rem;}
  .about-text{text-align:center;}
  .about-text .eyebrow{justify-content:center;}
  .tag-cloud{justify-content:center;}
  .features-inner{grid-template-columns:1fr;gap:3rem;}
  .reviews-grid{grid-template-columns:1fr 1fr;}
  .stats-inner{grid-template-columns:repeat(2,1fr);gap:1.5rem 0;}
  .stat:nth-child(2){border-right:none;}
}
@media (max-width:600px){
  .pillars-grid{grid-template-columns:1fr 1fr;}
  .reviews-grid{grid-template-columns:1fr;}
  .price-grid{grid-template-columns:1fr;}
  .price-divider{width:auto;height:1px;margin:0 2rem;}
  .scroll-cue{display:none;}
}
@media (max-width:400px){ .pillars-grid{grid-template-columns:1fr;} }

/* Share bar (visible, in buy section) */
.share-bar{margin:2rem auto 0;max-width:620px;text-align:center;}
.share-bar-label{display:block;font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;}
.share-bar-btns{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;}
.share-chip{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--sans);font-size:.8rem;font-weight:500;padding:.55rem 1rem;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:40px;cursor:pointer;transition:transform .18s,box-shadow .2s,border-color .2s,color .2s;}
.share-chip svg{width:15px;height:15px;}
.share-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.share-chip.wa:hover{border-color:#25D366;color:#1c8c47;}
.share-chip.x:hover{border-color:#16231f;color:#16231f;}
.share-chip.tg:hover{border-color:#0088cc;color:#0088cc;}
.share-chip.fb:hover{border-color:#1877F2;color:#1877F2;}
.share-chip.cp:hover{border-color:var(--teal);color:var(--teal);}

/* Connect section: newsletter + share */
.connect{background:var(--deep);padding:5.5rem max(5vw,1.5rem);position:relative;overflow:hidden;}
.connect::before{content:'';position:absolute;inset:0;background:radial-gradient(90% 70% at 15% 0,rgba(196,160,74,.08),transparent 55%);}
.connect-inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;position:relative;z-index:1;align-items:start;}
.connect .eyebrow{color:var(--gold-lt);}
.connect .eyebrow::before{background:linear-gradient(90deg,var(--gold),transparent);}
.connect .section-title{color:#fff;}
.connect .section-title em{color:var(--gold-lt);}
.connect .lead{color:rgba(247,242,232,.72);}
.sub-form{margin-top:1.6rem;}
.sub-row{display:flex;gap:.6rem;flex-wrap:wrap;}
.sub-row input{flex:1;min-width:200px;padding:.85rem 1rem;border:1px solid rgba(247,242,232,.25);background:rgba(255,255,255,.05);color:#fff;border-radius:4px;font-family:var(--sans);font-size:.95rem;}
.sub-row input::placeholder{color:rgba(247,242,232,.4);}
.sub-row input:focus{outline:none;border-color:var(--gold);}
.sub-consent{display:flex;align-items:flex-start;gap:.55rem;margin-top:.9rem;font-size:.78rem;color:rgba(247,242,232,.62);font-weight:300;line-height:1.5;cursor:pointer;}
.sub-consent input{margin-top:.2rem;accent-color:var(--gold);}
.sub-consent a{color:var(--gold-lt);text-decoration:underline;text-underline-offset:2px;}
.sub-status{font-size:.82rem;margin-top:.8rem;min-height:1em;}
.sub-status.ok{color:var(--gold-lt);}
.sub-status.err{color:#e6a08f;}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.connect-share{border-left:1px solid rgba(247,242,232,.12);padding-left:4rem;}
.connect-share-title{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:#fff;margin:.2rem 0 .5rem;}
.connect-share-sub{font-size:.86rem;color:rgba(247,242,232,.6);font-weight:300;line-height:1.6;margin-bottom:1.5rem;}
.share-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
.share-tile{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border:1px solid rgba(247,242,232,.18);background:rgba(255,255,255,.04);color:rgba(247,242,232,.9);border-radius:6px;cursor:pointer;font-family:var(--sans);font-size:.84rem;font-weight:500;transition:transform .18s,background .2s,border-color .2s,color .2s;}
.share-tile svg{width:17px;height:17px;flex-shrink:0;}
.share-tile:hover{transform:translateY(-2px);background:rgba(255,255,255,.08);}
.share-tile.wa:hover{border-color:#25D366;color:#5ff0a0;}
.share-tile.x:hover{border-color:#fff;color:#fff;}
.share-tile.tg:hover{border-color:#29a9eb;color:#7fd0ff;}
.share-tile.fb:hover{border-color:#1877F2;color:#7fb0ff;}
.share-tile.em:hover{border-color:var(--gold-lt);color:var(--gold-lt);}
.share-tile.cp:hover{border-color:var(--teal-lt);color:#8fe0c6;}
@media (max-width:860px){
  .connect-inner{grid-template-columns:1fr;gap:2.8rem;}
  .connect-share{border-left:none;padding-left:0;border-top:1px solid rgba(247,242,232,.12);padding-top:2.5rem;}
}
@media (max-width:420px){ .share-grid{grid-template-columns:1fr;} }

/* ============================================================
   EDITORIAL REFINEMENT LAYER
   ============================================================ */

/* Excerpt — dark, dramatic "book page" spread */
.excerpt{background:var(--deep);padding:7rem max(5vw,1.5rem);position:relative;}
.excerpt::after{content:'';position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 0,rgba(196,160,74,.07),transparent 60%);pointer-events:none;}
.excerpt-inner{max-width:720px;margin:0 auto;position:relative;z-index:1;}
.excerpt-head{text-align:center;margin-bottom:2.6rem;}
.excerpt-head .eyebrow{color:var(--gold-lt);}
.excerpt-head .eyebrow::before,.excerpt-head .eyebrow::after{background:linear-gradient(90deg,transparent,var(--gold));}
.excerpt-head .section-title{color:#fff;}
.excerpt-body{color:rgba(247,242,232,.82);font-size:1.06rem;line-height:1.95;font-weight:300;}
.excerpt-body p{margin-bottom:1.3rem;}
.excerpt-body .in-verse{font-family:var(--serif);font-style:italic;font-size:1.18rem;color:var(--gold-lt);}
.excerpt-body em{color:rgba(247,242,232,.96);font-style:italic;}
.excerpt-body .drop::first-letter{font-family:var(--serif);font-weight:600;font-size:4.4rem;line-height:.82;float:left;margin:.32rem .7rem 0 0;color:var(--gold-lt);}
.pull{border:none;margin:2.2rem 0;padding:1.6rem 0 1.6rem 1.8rem;border-left:2px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:1.5rem;line-height:1.42;color:#fff;font-weight:300;}
.excerpt-link{display:inline-block;margin-top:.8rem;font-size:.76rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt);text-decoration:none;border-bottom:1px solid rgba(228,205,143,.4);padding-bottom:2px;transition:border-color .25s,color .25s;}
.excerpt-link:hover{color:#fff;border-color:#fff;}

/* Contents — printed table-of-contents spread */
.contents{background:var(--cream);padding:6.5rem max(5vw,1.5rem);}
.contents-inner{max-width:var(--maxw);margin:0 auto;}
.contents-lead{max-width:640px;margin-left:auto;margin-right:auto;text-align:center;}
.toc{display:grid;grid-template-columns:1fr 1fr;gap:2.8rem 4.5rem;margin-top:3.4rem;}
.toc-part{position:relative;}
.toc-part-head{display:flex;align-items:baseline;gap:1rem;padding-bottom:.9rem;margin-bottom:1rem;border-bottom:1px solid rgba(22,35,31,.14);}
.toc-roman{font-family:var(--serif);font-size:2rem;font-weight:600;color:var(--gold-deep);line-height:1;min-width:1.6rem;}
.toc-part-head h3{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--deep);line-height:1.15;}
.toc-part-head h3 span{display:block;font-family:var(--sans);font-size:.72rem;font-weight:400;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.35rem;}
.toc-list{list-style:decimal;padding-left:1.7rem;}
.toc-list li{font-family:var(--serif);font-size:1.12rem;color:#2c3b36;padding:.32rem 0;line-height:1.35;border-bottom:1px dotted transparent;transition:color .2s;}
.toc-list li::marker{color:var(--gold-deep);font-family:var(--sans);font-size:.82rem;font-weight:500;}
.toc-list li:hover{color:var(--teal);}
.contents-foot{text-align:center;margin-top:3rem;font-family:var(--serif);font-size:1.05rem;font-style:italic;color:var(--muted);}
@media (max-width:760px){ .toc{grid-template-columns:1fr;gap:2rem;} }

/* Quieter hero glow (less "template") */
.book-glow{opacity:.5 !important;}
.hero-veil{background:linear-gradient(118deg,rgba(9,23,20,.86) 0%,rgba(12,28,24,.56) 46%,rgba(9,23,20,.8) 100%) !important;}

/* Section titles: calmer, more editorial */
.section-title em{font-style:italic;color:var(--teal);font-weight:600;}

/* ---- Review filters + submission form ---- */
.rev-filters{display:flex;flex-direction:column;gap:1rem;align-items:center;margin-bottom:2.4rem;}
.rev-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center;}
.rev-chips[hidden]{display:none;}
.rev-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center;}
.rf-n{opacity:.6;font-size:.68rem;margin-left:.15rem;}
.rev-more-wrap{display:flex;justify-content:center;margin-top:2rem;}
.rev-more{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--teal);background:transparent;border:1px solid var(--teal);padding:.8rem 2rem;border-radius:40px;cursor:pointer;transition:background .2s,color .2s,transform .2s;}
.rev-more:hover{background:var(--teal);color:#fff;transform:translateY(-2px);}
.rev-more[hidden]{display:none;}
.rev-filter{font-family:var(--sans);font-size:.76rem;font-weight:500;letter-spacing:.04em;color:var(--muted);background:transparent;border:1px solid var(--line);padding:.45rem 1rem;border-radius:40px;cursor:pointer;transition:all .2s;}
.rev-filter:hover{border-color:var(--gold);color:var(--deep);}
.rev-filter.is-active{background:var(--deep);color:var(--gold-lt);border-color:var(--deep);}
.rev-write-btn{margin-left:.6rem;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--deep2);background:var(--gold);border:none;padding:.55rem 1.3rem;border-radius:40px;cursor:pointer;transition:background .2s,transform .2s;}
.rev-write-btn:hover{background:var(--gold-lt);transform:translateY(-1px);}
.review-card.is-user{border-left:2px solid var(--gold);}
.r-title{font-family:var(--serif);font-size:1.12rem;font-weight:600;color:var(--deep);margin-bottom:.4rem;}
.rev-form-wrap{max-width:720px;margin:2.6rem auto 0;}
.rev-form{background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:0 0 8px 8px;padding:2.2rem;box-shadow:var(--shadow);}
.rev-form-title{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--deep);margin-bottom:.3rem;}
.rev-form-note{font-size:.82rem;color:var(--muted);margin-bottom:1.5rem;line-height:1.6;}
.rev-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.fld{display:block;margin-bottom:1rem;}
.fld span{display:block;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem;}
.fld b{color:#c0573f;}
.fld input,.fld textarea,.fld select{width:100%;padding:.7rem .85rem;border:1px solid rgba(22,35,31,.18);border-radius:4px;font-family:var(--sans);font-size:.92rem;color:var(--ink);background:#fdfcf9;transition:border-color .2s;}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:var(--teal);}
.fld textarea{resize:vertical;line-height:1.6;}
.fld span small{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted);opacity:.8;margin-left:.35rem;}

/* "What worked well" — toggle chips rather than a <select multiple>, which is
   close to unusable on a phone and is the part we most want people to fill in. */
.chip-set{display:flex;flex-wrap:wrap;gap:.45rem;}
.chip{font-family:var(--sans);font-size:.8rem;padding:.45rem .85rem;border:1px solid rgba(22,35,31,.18);
  border-radius:999px;background:#fdfcf9;color:#3c4d48;cursor:pointer;transition:all .15s;}
.chip:hover{border-color:var(--teal);}
.chip.on{background:var(--teal);border-color:var(--teal);color:#fff;}
.rating-fld .star-input{display:flex;gap:.2rem;}
.star-input .star{background:none;border:none;font-size:1.8rem;line-height:1;color:#d8d2c4;cursor:pointer;padding:0 .05rem;transition:color .12s,transform .12s;}
.star-input .star:hover{transform:scale(1.12);}
.star-input .star.on{color:var(--gold);}
.rev-consent{display:flex;align-items:flex-start;gap:.55rem;margin:.4rem 0 1.2rem;font-size:.8rem;color:#3c4d48;line-height:1.5;cursor:pointer;min-width:0;overflow-wrap:anywhere;}
.rev-consent input{flex:0 0 auto;}
.rev-consent input{margin-top:.2rem;accent-color:var(--teal);}
.rev-consent a{color:var(--teal);}
.rev-actions{display:flex;gap:.8rem;flex-wrap:wrap;}
.btn-ghost-dark{background:transparent;border:1px solid var(--line);color:var(--muted);}
.btn-ghost-dark:hover{border-color:var(--deep);color:var(--deep);}
.rev-status{font-size:.85rem;margin-top:1rem;min-height:1em;}
.rev-status.ok{color:var(--teal);}
.rev-status.err{color:#a8442f;}
@media (max-width:600px){ .rev-form-grid{grid-template-columns:1fr;} }

/* PDF edition — coming soon note */

/* About the Author */
.author{background:var(--cream);padding:6rem max(5vw,1.5rem);}
.author-inner{max-width:920px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:3.5rem;align-items:center;}
.author-portrait{display:flex;justify-content:center;}
.author-monogram,.author-photo{width:190px;height:190px;border-radius:50%;flex-shrink:0;}
.author-monogram{display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:4rem;font-weight:600;letter-spacing:.05em;color:var(--gold-lt);background:radial-gradient(circle at 35% 30%,#2c6a5b,#15302b);box-shadow:0 18px 44px rgba(21,48,43,.28),inset 0 0 0 1px rgba(228,205,143,.25);position:relative;}
.author-monogram::after{content:'';position:absolute;inset:9px;border-radius:50%;border:1px solid rgba(228,205,143,.35);}
.author-photo{object-fit:cover;box-shadow:0 18px 44px rgba(21,48,43,.28);border:3px solid #fff;}
.author-text .eyebrow{margin-bottom:1rem;}
.author-text .section-title{margin-bottom:1.2rem;}
.author-text p{font-size:1rem;color:#3c4d48;line-height:1.9;font-weight:300;margin-bottom:1.1rem;}
.author-text em{font-style:italic;color:var(--teal);}
.author-meta{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid var(--line);}
@media (max-width:720px){
  .author-inner{grid-template-columns:1fr;gap:2rem;text-align:center;}
  .author-monogram,.author-photo{width:150px;height:150px;}
  .author-meta{display:inline-block;}
}

/* Who It's For */
.whofor{background:var(--deep);padding:6rem max(5vw,1.5rem);}
.whofor-inner{max-width:var(--maxw);margin:0 auto;}
.whofor .eyebrow{color:var(--gold-lt);}
.whofor .eyebrow::before,.whofor .eyebrow::after{background:linear-gradient(90deg,transparent,var(--gold));}
.whofor .section-title{color:#fff;}
.whofor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:3rem;}
.whofor-card{background:rgba(255,255,255,.04);border:1px solid rgba(228,205,143,.15);border-radius:12px;padding:1.8rem 1.5rem;transition:transform .25s,border-color .25s;}
.whofor-card:hover{transform:translateY(-4px);border-color:rgba(228,205,143,.4);}
.wf-ico{color:var(--gold-lt);display:block;margin-bottom:1rem;}
.wf-ico svg{width:26px;height:26px;}
.whofor-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;color:#fff;margin-bottom:.6rem;}
.whofor-card p{font-size:.9rem;color:rgba(247,242,232,.68);line-height:1.7;font-weight:300;}
@media (max-width:900px){.whofor-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.whofor-grid{grid-template-columns:1fr;}}

/* Formats */
.formats{background:var(--cream);padding:6rem max(5vw,1.5rem);}
.formats-inner{max-width:var(--maxw);margin:0 auto;}
.format-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin-top:3rem;align-items:stretch;}
.format-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:2rem 1.8rem;display:flex;flex-direction:column;position:relative;box-shadow:var(--shadow-sm);transition:transform .25s,box-shadow .25s;}
.format-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.format-card.featured{border-color:var(--gold);border-top:3px solid var(--gold);}
.fmt-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .8rem;border-radius:20px;white-space:nowrap;}
.format-card h3{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--deep);margin-bottom:.6rem;}
.fmt-soon{font-family:var(--sans);font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--teal);padding:.2rem .5rem;border-radius:12px;vertical-align:middle;}
.fmt-desc{font-size:.9rem;color:#3c4d48;line-height:1.7;font-weight:300;margin-bottom:1.2rem;}
.fmt-list{list-style:none;margin-bottom:1.6rem;flex:1;}
.fmt-list li{font-size:.85rem;color:#4a5a54;padding:.35rem 0 .35rem 1.4rem;position:relative;}
.fmt-list li::before{content:'\2713';position:absolute;left:0;color:var(--teal);font-weight:700;}
.fmt-cta{display:inline-block;text-align:center;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--deep2);background:var(--gold);padding:.75rem 1.2rem;border-radius:6px;text-decoration:none;transition:background .2s;}
.fmt-cta:hover{background:var(--gold-lt);}
.fmt-cta.muted-cta{background:transparent;border:1px solid var(--line);color:var(--teal);}
.fmt-cta.muted-cta:hover{border-color:var(--teal);background:rgba(44,106,91,.05);}
@media (max-width:820px){.format-grid{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto;}}

/* FAQ */
.faq{background:var(--cream2,#fbf8f1);padding:6rem max(5vw,1.5rem);}
.faq-inner{max-width:760px;margin:0 auto;}
.faq-list{margin-top:2.6rem;}
.faq-item{border-bottom:1px solid var(--line);padding:.4rem 0;}
.faq-item summary{cursor:pointer;list-style:none;padding:1.1rem 2rem 1.1rem 0;font-family:var(--serif);font-size:1.25rem;font-weight:600;color:var(--deep);position:relative;transition:color .2s;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:1.5rem;font-weight:300;color:var(--gold-deep,#a07e30);transition:transform .25s;}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg);}
.faq-item summary:hover{color:var(--teal);}
.faq-item p{font-size:.95rem;color:#3c4d48;line-height:1.8;font-weight:300;padding:0 2rem 1.2rem 0;}
.faq-item p a{color:var(--teal);}

/* ============ MOBILE HARDENING ============ */
html,body{max-width:100%;overflow-x:hidden;}
@media (max-width:760px){
  .hero{min-height:auto;padding:110px 0 64px;}
  .whofor,.formats,.faq,.author,.contents,.excerpt,.about{padding-left:1.3rem;padding-right:1.3rem;}
  .section-title{font-size:1.9rem;line-height:1.15;}
  .format-grid{grid-template-columns:1fr!important;max-width:420px;margin-left:auto;margin-right:auto;}
}
@media (max-width:600px){
  section{padding-top:3.6rem!important;padding-bottom:3.6rem!important;}
  /* .hero padding is owned by the mobile-first hero block above. */
  .section-title{font-size:1.7rem;}
  .lead,.contents-lead{font-size:.98rem;}
  .excerpt-body{font-size:1rem;}
  .pull{font-size:1.25rem;}
  .faq-item summary{font-size:1.1rem;padding-right:1.8rem;}
  .toc-part-head h3{font-size:1.25rem;}
  .author-monogram,.author-photo{width:130px;height:130px;}
  .format-card,.whofor-card{padding:1.5rem 1.3rem;}
}

/* de-emphasise coming-soon formats so available ones lead */
.format-card.soon{background:#faf8f2;border-style:dashed;}
.format-card.soon h3,.format-card.soon .fmt-desc{opacity:.82;}
.format-card.soon .fmt-list li::before{color:var(--gold-lt);}

/* "Most popular" badge on buy price cells (market-aware) */

/* newsletter consent: prevent privacy link overflow on mobile */
.sub-consent{flex-wrap:wrap;}
.sub-consent > span{flex:1;min-width:0;overflow-wrap:break-word;}

/* pricing embedded within the editions section */

/* excerpt: subtitle + verse epigraph */
.excerpt-sub{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--gold-lt);margin-top:.5rem;}
.excerpt-verse{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.6;color:#fff;text-align:center;max-width:600px;margin:0 auto 2.6rem;padding-bottom:1.6rem;border-bottom:1px solid rgba(228,205,143,.25);}
.excerpt-verse .excerpt-ref{display:block;font-style:normal;font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-lt);margin-top:.9rem;}

/* ===== Reviews page ===== */
.reviews-page{background:var(--cream);padding:4rem max(5vw,1.3rem) 6rem;}
.rp-inner{max-width:var(--maxw);margin:0 auto;}
.rp-summary{display:flex;align-items:center;gap:.7rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap;}
.rp-summary .rp-num{font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--deep);}
.rp-summary .rp-stars{color:var(--gold);letter-spacing:2px;}
.rp-summary .rp-count{font-size:.85rem;color:var(--muted);}
.rp-summary .rp-count a{color:var(--teal);}
.rp-controls{display:flex;gap:1.6rem;flex-wrap:wrap;justify-content:center;padding:1.2rem;background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:2.4rem;}
.rp-group{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;}
.rp-lbl{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.rp-btns{display:inline-flex;background:#f3f1ea;border-radius:8px;padding:2px;flex-wrap:wrap;}
.rp-btn{font-family:var(--sans);font-size:.78rem;font-weight:500;color:#5a6b62;background:transparent;border:none;padding:.4rem .75rem;border-radius:6px;cursor:pointer;transition:all .15s;}
.rp-btn:hover{color:var(--deep);}
.rp-btn.is-active{background:#fff;color:var(--deep);box-shadow:0 1px 3px rgba(20,40,35,.12);}
.rp-grid{margin-top:0;}
.r-title{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--deep);margin-bottom:.4rem;}
.rp-empty{text-align:center;color:var(--muted);padding:2rem;}
.rp-cta{text-align:center;margin-top:2.6rem;}
@media (max-width:600px){ .rp-controls{gap:1rem;padding:1rem;} .rp-group{width:100%;justify-content:space-between;} }

/* home reviews: "read all" link */
.rev-seeall{font-family:var(--sans);font-size:.85rem;font-weight:500;color:var(--teal);text-decoration:none;padding:.5rem .2rem;margin-right:auto;}
.rev-seeall:hover{text-decoration:underline;}

/* The second way to read the same book. A link, not a button — Kindle is a real
   alternative, but the direct PDF is the one we can personalise. */
.fmt-alt{display:block;margin-top:.7rem;font-size:.82rem;color:var(--muted);
  text-decoration:none;border-bottom:1px dotted currentColor;
  align-self:center;padding-bottom:1px;}
.fmt-alt:hover{color:var(--teal);border-bottom-style:solid;}

/* Two ways to read the same book, shown as two buttons of equal size and
   unequal weight — the PDF is ours and personalised, the eBook is Amazon's.
   Stacked, because side by side they shrink to unreadable on a phone. */
.fmt-actions-pair{display:flex;flex-direction:column;gap:.55rem;}
.fmt-actions-pair .fmt-btn{width:100%;text-align:center;}

/* The write-a-review button on the reviews page. On the home page it sits in
   the section header beside "Read all reviews"; here the page IS the reviews,
   so it gets its own row above the grid — where someone who has just read three
   reviews and thought "I could write one" will reach for it. */
.rev-write-row{display:flex;justify-content:flex-end;margin:0 0 1.4rem;}
@media(max-width:640px){.rev-write-row{justify-content:stretch;}.rev-write-row .rev-write-btn{width:100%;}}

/* The cover on a phone.
   It had been squeezed to 132px to keep the buy button above the fold — but at
   that size it stops reading as a book and starts reading as an icon, on the
   one screen where the book is the whole point. Larger, and the height is
   clawed back from the spacing around it instead. */
@media (max-width:620px){
  .book-3d img{width:172px;}
  .hero-inner{gap:1.05rem;}
}
@media (max-width:420px){ .book-3d img{width:150px;} }
/* Short phones keep the smaller cover: there, the button really does need the
   room, and a cover nobody scrolls to is worth less than a cover they see. */
@media (max-width:620px) and (max-height:700px){ .book-3d img{width:124px;} }
