/* ═══════════════════════════════════════════════════════════════
   Pages produit — clair premium (réutilise marketplace.css)
   Composants : compteurs, features, aperçu, comparatif, auteur,
   carte prix, modal d'achat, buy-bar collante.
   ═══════════════════════════════════════════════════════════════ */

/* Accent par produit : on surcharge --grad/--brand via .accent-* sur <main> */
.accent-emerald {
  --grad: linear-gradient(98deg,#10b981 0%,#14b8a6 45%,#f59e0b 100%);
  --grad-soft: linear-gradient(135deg, rgba(16,185,129,.12), rgba(245,158,11,.10));
  --brand: #0d9488;
  --shadow-brand: 0 24px 60px -22px rgba(16,185,129,.5);
}

/* ── Hero produit ── */
.pp-hero { text-align: center; padding-top: 3.5rem; padding-bottom: 1rem; position: relative; overflow-x: clip; }
@media (min-width:960px){ .pp-hero { text-align: left; padding-top: 5rem; } }
.pp-hero-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
@media (min-width:960px){ .pp-hero-grid { grid-template-columns: 1.05fr .95fr; gap: 3rem; } }
.pp-h1 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; letter-spacing: -.03em; line-height: 1.04; font-size: clamp(2.3rem,6vw,4rem); margin-top: 1.25rem; }
.pp-lead { margin: 1.4rem 0 0; max-width: 36rem; color: var(--muted); font-size: clamp(1rem,2.2vw,1.18rem); line-height: 1.6; }
@media (min-width:960px){ .pp-lead { margin-left: 0; } }
.pp-rating { margin-top: 1.4rem; display: inline-flex; align-items: center; gap: .6rem; font-size: .9rem; color: var(--muted-2); }
.pp-rating .stars { color: #F59E0B; letter-spacing: 1px; }
.pp-cta { margin-top: 1.75rem; display: flex; flex-direction: column; gap: .75rem; align-items: center; }
@media (min-width:520px){ .pp-cta { flex-direction: row; } }
@media (min-width:960px){ .pp-cta { justify-content: flex-start; } }
.pp-trust { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; justify-content: center; font-size: .8rem; color: var(--muted-2); }
@media (min-width:960px){ .pp-trust { justify-content: flex-start; } }

/* Mockup / visuel produit (carte flottante claire) */
.pp-visual { display: flex; align-items: center; justify-content: center; }
.pp-card-float { position: relative; width: min(22rem,90vw); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.pp-card-float .pp-cf-head { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1.1rem; border-bottom: 1px solid var(--border-2); }
.pp-card-float .pp-cf-body { padding: 1.25rem; }
.pp-cf-cover { aspect-ratio: 16/10; border-radius: var(--r); background: var(--grad-soft); display: flex; align-items: center; justify-content: center; font-size: 3.5rem; }

/* ── Compteurs ── */
.pp-counters { display: grid; grid-template-columns: repeat(2,1fr); gap: .75rem; max-width: 52rem; margin: 0 auto; }
@media (min-width:680px){ .pp-counters { grid-template-columns: repeat(4,1fr); } }
.pp-stat { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r); padding: 1.25rem 1rem; text-align: center; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: background .3s, border-color .3s, transform .3s; }
.pp-stat:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.14); transform: translateY(-3px); }
.pp-stat-num { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: clamp(1.5rem,5vw,2.2rem); }
.pp-stat-label { margin-top: .3rem; font-size: .72rem; color: var(--muted-2); text-transform: uppercase; letter-spacing: .05em; }

/* ── Termes / badges problème ── */
.pp-terms { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.pp-term { padding: .45rem .9rem; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); font-size: .85rem; font-weight: 500; color: var(--muted); box-shadow: var(--shadow-sm); transition: background .2s, border-color .2s, color .2s; }
.pp-term:hover { background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.25); color: var(--brand); }

/* ── Cartes features / bento ── */
.pp-feature-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width:560px){ .pp-feature-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width:920px){ .pp-feature-grid { grid-template-columns: repeat(4,1fr); } }
.pp-feature { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r); padding: 1.5rem; box-shadow: var(--shadow-sm); transition: transform .3s, box-shadow .3s, border-color .3s, background .3s; }
.pp-feature:hover { background: rgba(255,255,255,.07); border-color: rgba(245,158,11,.25); transform: translateY(-5px); box-shadow: 0 20px 50px rgba(0,0,0,.35); }
.pp-feature-ico { width: 3rem; height: 3rem; border-radius: .9rem; background: var(--grad-soft); color: var(--brand); display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; }
.pp-feature-ico svg { width: 1.5rem; height: 1.5rem; }
.pp-feature h3 { font-family: "Plus Jakarta Sans", sans-serif; font-weight: 800; font-size: 1.05rem; }
.pp-feature p { margin-top: .4rem; font-size: .9rem; color: var(--muted); line-height: 1.55; }

/* ── Aperçu (carte fiche) ── */
.pp-preview-card { position: relative; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r-lg); padding: 1.75rem; box-shadow: var(--shadow-lg); overflow: hidden; }
.pp-preview-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--grad); }
.pp-preview-tag { display:inline-flex; align-items:center; gap:.4rem; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:.3rem .6rem; border-radius:999px; background:var(--grad-soft); color:var(--brand); }
.pp-preview-term { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:1.8rem; margin:1rem 0 .75rem; }
.pp-preview-quote { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); border-radius: var(--r); padding: 1rem; font-size: .85rem; color: var(--muted); font-style: italic; line-height: 1.6; }
.pp-mini-chart { border-radius: var(--r); border: 1px solid var(--border-2); background: rgba(255,255,255,.03); padding: .75rem; margin: .75rem 0; }

/* ── Comparatif ── */
.pp-compare { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width:760px){ .pp-compare { grid-template-columns: 1fr 1fr; } }
.pp-compare-col { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r-lg); padding: 1.75rem; box-shadow: var(--shadow-sm); }
.pp-compare-col.win { background: linear-gradient(180deg, rgba(245,158,11,.12), rgba(255,255,255,.04) 60%); border-color: rgba(245,158,11,.3); box-shadow: 0 0 30px rgba(245,158,11,.12); }
.pp-compare-col h4 { font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--muted-2); margin-bottom: 1rem; }
.pp-compare-col.win h4 { color: var(--brand); }
.pp-compare-col li { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .7rem; font-size: .92rem; color: var(--text); list-style: none; }
.pp-x { color: #ef4444; } .pp-v { color: #10b981; }

/* ── Auteur ── */
.pp-author { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: var(--r-lg); box-shadow: var(--shadow-md); padding: 2rem; display: grid; gap: 2rem; align-items: center; }
@media (min-width:760px){ .pp-author { grid-template-columns: auto 1fr; padding: 2.5rem; } }
.pp-author-avatar { width: 9rem; height: 9rem; border-radius: 50%; margin: 0 auto; background: var(--grad); padding: 4px; }
.pp-author-avatar div { width:100%; height:100%; border-radius:50%; background:var(--bg-soft); display:flex; align-items:center; justify-content:center; font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:3rem; color:var(--brand); }

/* ── Carte prix ── */
.pp-price-card { position: relative; max-width: 40rem; margin: 0 auto; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-lg); box-shadow: 0 0 80px rgba(245,158,11,.15), 0 30px 60px rgba(0,0,0,.35); padding: 2rem; overflow: hidden; }
@media (min-width:560px){ .pp-price-card { padding: 2.5rem; } }
.pp-price-card::before { content:''; position:absolute; top:0; left:0; right:0; height:5px; background:var(--grad); }
.pp-price-badges { display: flex; gap: .5rem; margin-bottom: .75rem; }
.pp-price-badge { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:.28rem .55rem; border-radius:.5rem; background:var(--grad-soft); color:var(--brand); }
.pp-price-amount { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:clamp(2.8rem,8vw,3.8rem); line-height:1; }
.pp-price-list { display:grid; gap:.6rem; margin:1.5rem 0; }
@media (min-width:520px){ .pp-price-list { grid-template-columns: 1fr 1fr; } }
.pp-price-list li { display:flex; gap:.6rem; align-items:center; font-size:.9rem; list-style:none; }
.pp-price-list .chk { width:1.2rem; height:1.2rem; border-radius:50%; background:var(--grad-soft); color:var(--brand); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.pp-price-list .chk svg { width:.7rem; height:.7rem; }

/* ── Modal d'achat (clair) ── */
.co-overlay { position: fixed; inset: 0; z-index: 9900; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(6,9,20,.66); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.co-overlay[hidden] { display: none; }
.co-card { position: relative; width: 100%; max-width: 32rem; max-height: 92vh; display:flex; flex-direction:column; background: #0F172A; border: 1.5px solid rgba(var(--lx-accent-rgb,99,102,241),.55); border-radius: var(--r-lg); box-shadow: var(--shadow-lg), 0 0 0 1px rgba(var(--lx-accent-rgb,99,102,241),.22), 0 0 70px -12px rgba(var(--lx-accent-rgb,99,102,241),.5); overflow: hidden; }
@media (max-width: 599px) { .co-card { max-width: 90vw; } }
.co-topbar { height: 5px; background: var(--grad); }
.co-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.25rem 1.4rem; border-bottom:1px solid rgba(255,255,255,.08); }
.co-title { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:1.05rem; }
.co-subtitle { font-size:.8rem; color:var(--muted-2); margin-top:.15rem; }
.co-header-inner { display:flex; align-items:center; gap:.75rem; }
.co-logo { width:2.2rem; height:2.2rem; border-radius:.7rem; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.co-close { width:2rem; height:2rem; border-radius:50%; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.06); color:var(--muted); cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition: background .2s; }
.co-close:hover { background: rgba(255,255,255,.1); }
.co-body { padding:1.25rem 1.4rem; overflow-y:auto; }
.co-product-card { background: rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:var(--r); padding:1.1rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.co-product-name { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; }
.co-product-meta { font-size:.78rem; color:var(--muted-2); margin-top:.2rem; }
.co-product-price { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:1.3rem; white-space:nowrap; flex-shrink:0; }
.co-benefits { display:grid; gap:.7rem; margin-top:1.1rem; }
.co-benefit { display:flex; gap:.6rem; align-items:flex-start; }
.co-benefit-check { width:1.2rem; height:1.2rem; border-radius:50%; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.co-benefit-check svg { width:.7rem; height:.7rem; }
.co-benefit-label { font-size:.88rem; font-weight:600; }
.co-benefit-desc { font-size:.78rem; color:var(--muted-2); }
.co-divider { height:1px; background:var(--border-2); margin:1.25rem 0; }
.co-waiver { display:flex; gap:.7rem; align-items:flex-start; cursor:pointer; font-size:.82rem; color:var(--muted); line-height:1.5; /* dark */ }
.co-waiver input { margin-top:.15rem; width:1.1rem; height:1.1rem; accent-color:var(--brand); flex-shrink:0; }
.co-waiver-legal { display:block; margin-top:.3rem; font-size:.72rem; color:var(--muted-2); }
.co-footer { padding:1.1rem 1.4rem; border-top:1px solid rgba(255,255,255,.08); }
.co-btn-confirm { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.95rem 1.25rem; border:0; border-radius:999px; cursor:pointer; font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; color:var(--lx-on-accent,#fff); background:var(--grad); box-shadow:var(--shadow-brand); transition:transform .2s,opacity .2s; }
.co-btn-confirm:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; }
.co-footer-meta { display:flex; justify-content:space-between; align-items:center; margin-top:.75rem; }
.co-btn-cancel { background:none; border:0; color:var(--muted-2); font:inherit; font-size:.82rem; cursor:pointer; text-decoration:underline; }
.co-footer-stripe { font-size:.72rem; color:var(--muted-2); display:inline-flex; align-items:center; gap:.3rem; }

/* ── Buy-bar collante ── */
.buy-bar { position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 9700; background:rgba(8,11,24,.92); border:1px solid rgba(255,255,255,.1); border-radius:var(--r); box-shadow:0 0 40px rgba(0,0,0,.4), 0 0 0 1px rgba(var(--lx-accent-rgb,245,158,11),.2); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); transform: translateY(150%); opacity:0; transition: transform .35s cubic-bezier(.16,1,.3,1), opacity .35s; }
.buy-bar.is-visible { transform: none; opacity: 1; }
@media (min-width:760px){ .buy-bar { left:50%; right:auto; transform: translate(-50%,150%); max-width:42rem; width:calc(100% - 2rem); } .buy-bar.is-visible { transform: translateX(-50%); } }
.buy-bar-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem .9rem; }
.buy-bar-info { display:flex; align-items:center; gap:.7rem; min-width:0; }
.buy-bar-cover { width:2.4rem; height:2.4rem; border-radius:.6rem; background:var(--grad-soft); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0; }
.buy-bar-name { font-weight:700; font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color: var(--text); }
.buy-bar-sub { font-size:.72rem; color:var(--muted-2); }
.buy-bar-sub .stars { color:var(--brand); }
.buy-bar-right { display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.buy-bar-price { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; }
.buy-bar-cta { display:inline-flex; align-items:center; gap:.35rem; padding:.6rem 1.1rem; border-radius:999px; background:var(--grad); color:var(--lx-on-accent,#fff); font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; font-size:.85rem; text-decoration:none; box-shadow:var(--shadow-brand); }
@media (max-width:520px){ .buy-bar-cover, .buy-bar-sub, .buy-bar-price { display:none; } }

/* ── Encart CTA (au fil de la page) ── */
.pp-cta-band { position: relative; overflow: hidden; border-radius: var(--r-lg); padding: 2.5rem 1.5rem; text-align: center; background: var(--grad); box-shadow: var(--shadow-brand); }
@media (min-width:768px){ .pp-cta-band { padding: 3.25rem; } }
.pp-cta-band::before { content:''; position:absolute; inset:0; background: radial-gradient(60% 100% at 50% 0%, rgba(255,255,255,.25), transparent 70%); pointer-events:none; }
.pp-cta-band > * { position: relative; }
.pp-cta-band h2 { color:#fff; font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:clamp(1.5rem,4vw,2.3rem); letter-spacing:-.02em; line-height:1.15; }
.pp-cta-band p { color:rgba(255,255,255,.9); margin-top:.7rem; font-size:1rem; }
.pp-cta-band .pp-cta-btn { display:inline-flex; align-items:center; gap:.5rem; margin-top:1.6rem; padding:.95rem 1.75rem; border-radius:999px; background:#fff; color:var(--brand); font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; text-decoration:none; box-shadow:0 14px 30px -12px rgba(15,23,42,.4); transition:transform .2s, box-shadow .25s; }
.pp-cta-band .pp-cta-btn:hover { transform:translateY(-2px); box-shadow:0 20px 40px -14px rgba(15,23,42,.5); }
.pp-cta-band .pp-cta-note { color:rgba(255,255,255,.8); font-size:.82rem; margin-top:.9rem; }

@media (prefers-reduced-motion: reduce) {
  .buy-bar { transition: none; }
  .pp-cta-band .pp-cta-btn { transition: none; }
}

/* ── Dark hero wrapper ── */
.pp-hero-bg {
  position: relative;
  background: linear-gradient(155deg, #07091A 0%, #0C1024 55%, #13192E 100%);
  overflow: hidden;
}
.pp-hero-bg::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 6rem;
  background: linear-gradient(to bottom, transparent, var(--bg));
  pointer-events: none;
  z-index: 1;
}
.pp-hero-bg > .wrap.pp-hero { padding-bottom: 4rem; position: relative; z-index: 2; }
.pp-hero-bg .pp-h1 { color: #FFFFFF; }
.pp-hero-bg .pp-lead { color: #94A3B8; }
.pp-hero-bg .eyebrow,
.pp-hero-bg .pp-rating { color: #64748B; }
.pp-hero-bg .pp-rating .stars { color: #F59E0B; }
.pp-hero-bg .pp-trust { color: #3D4F6B; }
.pp-hero-bg .grad-text-anim { color: transparent; }
.pp-hero-bg .btn-ghost {
  color: rgba(248,250,252,.72);
  border-color: rgba(248,250,252,.16);
  background: rgba(248,250,252,.04);
}
.pp-hero-bg .btn-ghost:hover {
  background: rgba(248,250,252,.09);
  color: #FFFFFF;
  border-color: rgba(248,250,252,.3);
}
.pp-hero-bg .hero-glow {
  background: radial-gradient(ellipse, rgba(245,158,11,.26) 0%, rgba(139,92,246,.18) 42%, transparent 70%);
  width: min(900px, 110vw);
  height: 520px;
}
.pp-hero-bg .pp-pill {
  background: rgba(20,25,56,.7);
  border-color: rgba(139,92,246,.3);
  color: #E2E8F0;
  box-shadow: 0 14px 30px -10px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.07);
}
.pp-hero-bg .pp-pill .hp-ico { background: var(--grad); }
.pp-hero-bg .pp-pill .hp-stars { color: #F59E0B; }
.pp-hero-bg .pp-pill-price b { color: #FFFFFF; }
.pp-hero-bg .pp-pill-price span { color: #64748B; }
/* Buy-bar : icônes SVG au lieu des emojis */
.buy-bar-cover { color: var(--brand); }
.buy-bar-cover svg { display: block; }
/* Carte chart sur fond sombre hero (figures) */
.pp-hero-bg .pp-card-float {
  box-shadow: 0 32px 80px -16px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.06);
}

/* ═══════════════════════ MAGNIFIQUE (clair premium wow) ═══════════════════════ */

/* Livre 3D flottant (hero) */
.pp-book-stage { position: relative; width: min(19rem, 78vw); aspect-ratio: 3/4; margin: 0 auto; perspective: 1400px; }
.pp-book { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transform: rotateY(-16deg) rotateX(7deg); animation: pp-book-float 6s ease-in-out infinite; filter: drop-shadow(0 40px 55px rgba(91,75,232,.32)); will-change: transform; }
@keyframes pp-book-float { 0%,100%{transform:rotateY(-16deg) rotateX(7deg) translateY(0)} 50%{transform:rotateY(-12deg) rotateX(4deg) translateY(-14px)} }
.pp-book-spine { position:absolute; left:-.55rem; top:0; width:.7rem; height:100%; background:linear-gradient(180deg,#4f46e5,#F97316); border-radius:.3rem 0 0 .3rem; transform:rotateY(72deg) translateZ(.1rem); transform-origin:right center; }
.pp-book-cover { position:absolute; inset:0; border-radius:.35rem 1rem 1rem .35rem; overflow:hidden; background:radial-gradient(120% 80% at 80% 0%,rgba(255,255,255,.3),transparent 55%), var(--grad); box-shadow: inset 0 0 0 1px rgba(255,255,255,.25), inset 10px 0 22px rgba(0,0,0,.18); padding:1.7rem 1.4rem; display:flex; flex-direction:column; color:#fff; }
.pp-book-shine { position:absolute; inset:0; background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.5) 50%,transparent 62%); transform:translateX(-120%); animation:pp-shine 5.5s ease-in-out infinite; pointer-events:none; }
@keyframes pp-shine { 0%,62%,100%{transform:translateX(-120%)} 78%{transform:translateX(120%)} }
.pp-book-badge { align-self:flex-start; font-size:.6rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; background:rgba(255,255,255,.95); color:var(--brand); padding:.28rem .55rem; border-radius:999px; box-shadow:0 6px 14px rgba(0,0,0,.18); }
.pp-book-emoji { font-size:2.8rem; line-height:1; margin:1.1rem 0 .8rem; filter:drop-shadow(0 8px 14px rgba(0,0,0,.25)); }
.pp-book-svg { width:3.2rem; height:3.2rem; margin:1.1rem 0 .8rem; filter:drop-shadow(0 8px 14px rgba(0,0,0,.3)); }
.pp-book-kicker { font-size:.58rem; font-weight:700; letter-spacing:.16em; opacity:.85; }
.pp-book-title { font-family:"Plus Jakarta Sans",sans-serif; font-weight:800; font-size:1.5rem; line-height:1.12; margin-top:.4rem; }
.pp-book-author { margin-top:auto; font-size:.76rem; font-weight:600; opacity:.9; }

/* Pills glass flottantes */
.pp-pill { position:absolute; z-index:3; display:inline-flex; align-items:center; gap:.4rem; font-family:"Plus Jakarta Sans",sans-serif; font-weight:700; font-size:.76rem; color:var(--text); background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.95); padding:.5rem .75rem; border-radius:999px; box-shadow:0 14px 30px -10px rgba(15,23,42,.28); white-space:nowrap; will-change:transform; }
.pp-pill .hp-stars{ color:#F59E0B; letter-spacing:1px; }
.pp-pill .hp-ico{ width:1.05rem; height:1.05rem; border-radius:50%; background:var(--grad); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:.62rem; }
.pp-pill-price{ flex-direction:column; align-items:flex-start; gap:0; }
.pp-pill-price b{ font-size:1rem; }
.pp-pill-price span{ font-size:.56rem; font-weight:600; color:var(--muted-2); text-transform:uppercase; letter-spacing:.05em; }
.pp-pill-1{top:4%;left:-9%;animation:pp-pill-float 5s ease-in-out infinite}
.pp-pill-2{top:8%;right:-5%;animation:pp-pill-float 6.5s ease-in-out .4s infinite}
.pp-pill-3{bottom:16%;left:-11%;animation:pp-pill-float 5.8s ease-in-out .9s infinite}
.pp-pill-4{bottom:5%;right:-7%;animation:pp-pill-float 6s ease-in-out .2s infinite}
@keyframes pp-pill-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media(max-width:680px){.pp-pill-1,.pp-pill-3{left:-1%}.pp-pill-2,.pp-pill-4{right:-1%}}

/* Cartes glass + shimmer */
.pp-glass{position:relative;background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px rgba(0,0,0,.3);overflow:hidden}
.pp-glass-shine::after{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(108deg,transparent 36%,rgba(255,255,255,.6) 50%,transparent 64%);transform:translateX(-120%);pointer-events:none}
.pp-glass-shine:hover::after{transform:translateX(120%);transition:transform .7s cubic-bezier(.16,1,.3,1)}

/* Bento */
.pp-bento{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:600px){.pp-bento{grid-template-columns:1fr 1fr}}
@media(min-width:940px){.pp-bento{grid-template-columns:1.3fr 1fr 1fr;grid-template-areas:"big a b" "big c d"}.pp-bento-big{grid-area:big}.pp-bento-a{grid-area:a}.pp-bento-b{grid-area:b}.pp-bento-c{grid-area:c}.pp-bento-d{grid-area:d}}
.pp-bento-tile{border-radius:var(--r-lg);padding:1.5rem;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.pp-bento-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.pp-bento-big{display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(150deg, var(--grad-soft), rgba(255,255,255,.03) 70%)}

/* reveal (pages produit uniquement) */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1)}
[data-reveal].is-visible{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  .pp-book,.pp-book-shine,.pp-pill{animation:none!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}
