.jp-page, .jp-promo { --jp-ink:#27332e; --jp-muted:#58675f; --jp-green:#235b50; --jp-wine:#81344f; --jp-line:#dce5df; color:var(--jp-ink); font-family:'Poppins',Arial,sans-serif; font-size:16px; line-height:1.7; text-align:left; }
.jp-page *, .jp-promo * { box-sizing:border-box; letter-spacing:0; }
.jp-page { background:#fff; }
.jp-wrap { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.jp-page h1, .jp-page h2, .jp-page h3, .jp-page p, .jp-promo h2, .jp-promo p { margin:0; color:var(--jp-ink); text-transform:none; }
.jp-page h1, .jp-page h2, .jp-promo.jp-promo-feature h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; line-height:1.15; }
.jp-page h1 { font-size:46px; }
.jp-page h2, .jp-promo.jp-promo-feature h2 { font-size:38px; }
.jp-page h3 { font-size:20px; font-weight:600; line-height:1.4; }
.jp-page p, .jp-promo p { font-size:16px; color:var(--jp-muted); line-height:1.75; }
.jp-page a, .jp-promo a { text-decoration:none; }
.jp-page a:focus-visible, .jp-promo a:focus-visible { outline:3px solid #ad6b1b; outline-offset:4px; }
.jp-page .jp-eyebrow, .jp-promo .jp-eyebrow { font-size:12px; color:var(--jp-wine); text-transform:uppercase; font-weight:600; margin-bottom:12px; }
.jp-intro { padding:42px 0 32px; text-align:center; }
.jp-intro > p:last-child { max-width:760px; margin:18px auto 0; }
.jp-intro a { color:var(--jp-green); text-decoration:underline; text-underline-offset:3px; }
.jp-section { padding-block:64px; }
.jp-section-heading { margin-bottom:32px; max-width:740px; }
.jp-section-heading > p { margin-top:16px; }
.jp-lead { background:#fbf2f5; border-block:1px solid #ecdbe2; padding-block:40px; }
.jp-lead-inner { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; align-items:center; }
.jp-lead-art { text-align:center; }
.jp-lead-art img { display:block; width:258px; height:auto; max-width:100%; margin:auto; box-shadow:6px 10px 20px #38203224; }
.jp-lead-copy h2 { font-size:46px; }
.jp-page .jp-subtitle { font-family:Georgia,serif; font-style:italic; font-size:24px; color:var(--jp-wine); margin:8px 0 18px; }
.jp-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.jp-page .jp-button, .jp-promo .jp-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:12px 20px; border:1px solid var(--jp-wine); border-radius:4px; background:var(--jp-wine); color:#fff; font-size:14px; font-weight:600; line-height:1.5; text-align:center; }
.jp-page .jp-button:hover, .jp-promo .jp-button:hover { background:#62253a; color:#fff; text-decoration:none; }
.jp-page .jp-button-outline, .jp-promo .jp-button-outline { background:transparent; border-color:#9baea4; color:var(--jp-green); }
.jp-page .jp-button-outline:hover, .jp-promo .jp-button-outline:hover { background:#eaf2ed; color:var(--jp-green); }
.jp-page .jp-small, .jp-promo .jp-small { font-size:12px; margin-top:16px; line-height:1.65; }
.jp-page .jp-text-link, .jp-promo .jp-text-link { display:inline-flex; gap:8px; align-items:center; color:var(--jp-green); font-size:14px; text-decoration:underline; text-underline-offset:4px; margin-top:16px; }
.jp-rating { border-block:1px solid #e2cbd4; padding-block:14px; margin-block:22px; }
.jp-page .jp-rating p, .jp-promo .jp-rating p { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:14px; color:var(--jp-ink); }
.jp-rating i { color:#a2690c; }
.jp-rating strong { font-size:28px; line-height:1.1; }
.jp-rating strong span { font-size:16px; font-weight:400; }
.jp-rating small { display:block; font-size:12px; line-height:1.6; margin-top:9px; color:var(--jp-muted); }
.jp-book-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.jp-book { display:grid; grid-template-columns:128px minmax(0,1fr); align-content:start; gap:24px; padding:26px; border:1px solid var(--jp-line); border-radius:6px; }
.jp-book img { width:128px; height:auto; display:block; max-width:100%; box-shadow:3px 5px 12px #27332e24; }
.jp-book h3 a { color:var(--jp-ink); }
.jp-book h3 a:hover { color:var(--jp-wine); }
.jp-book .jp-subtitle { font-size:18px; margin-block:5px 12px; }
.jp-book .jp-book-description { font-size:14px; line-height:1.7; }
.jp-book .jp-facts { font-size:13px; color:var(--jp-green); margin-top:14px; }
.jp-book .jp-actions { grid-column:1/-1; margin-top:0; align-self:end; }
.jp-uses { background:#eff5f2; border-block:1px solid var(--jp-line); }
.jp-use-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.jp-use-grid > div { border-top:1px solid #a9bfb2; padding-top:22px; }
.jp-use-grid i { color:var(--jp-wine); font-size:24px; margin-bottom:16px; }
.jp-use-grid h3 { margin-bottom:12px; }
.jp-order { background:var(--jp-green); }
.jp-order h2, .jp-order p { color:#fff; }
.jp-order .jp-eyebrow { color:#e5c7d1; }
.jp-order-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:60px; }
.jp-order p { margin-top:18px; }
.jp-order .jp-button { background:#fff; border-color:#fff; color:var(--jp-green); }
.jp-order .jp-button:hover { background:#edf3ef; color:var(--jp-green); }
.jp-order-list { margin:0; padding:0; list-style:none; }
.jp-order-list li { padding:16px 0; border-bottom:1px solid #ffffff42; color:#fff; }
.jp-order-list span { display:block; font-size:14px; color:#e2ece6; }
.jp-promo { border-block:1px solid #ecdbe2; background:#fbf2f5; padding:34px 0; }
.jp-promo-inner { display:grid; grid-template-columns:190px minmax(0,1fr); gap:38px; align-items:center; }
.jp-promo-cover { display:block; justify-self:center; }
.jp-promo-cover img { display:block; width:180px; height:auto; max-width:100%; box-shadow:4px 6px 16px #38203224; }
.jp-promo-copy > h2 { margin-bottom:16px; }
.jp-promo.jp-promo-compact { padding:18px 0; background:#f3f7f5; border-color:var(--jp-line); }
.jp-promo-compact .jp-promo-inner { grid-template-columns:64px minmax(0,1fr); gap:22px; }
.jp-promo-compact .jp-promo-cover img { width:64px; box-shadow:2px 3px 6px #38203224; }
.jp-promo.jp-promo-compact h2 { font-family:Georgia,serif; font-size:24px; font-weight:400; line-height:1.2; margin-bottom:6px; }
.jp-promo-compact .jp-actions { margin-top:12px; }
.jp-promo-compact .jp-small { margin-top:9px; }
.jp-promo-compact .jp-eyebrow { margin-bottom:5px; }
@media (max-width:900px) {
  .jp-book-grid { grid-template-columns:minmax(0,1fr); }
  .jp-lead-inner { gap:32px; }
  .jp-use-grid { gap:22px; }
}
@media (max-width:650px) {
  .jp-wrap { width:calc(100% - 36px); }
  .jp-page h1 { font-size:34px; }
  .jp-page h2, .jp-lead-copy h2, .jp-promo.jp-promo-feature h2 { font-size:32px; }
  .jp-intro { padding-block:30px; }
  .jp-section { padding-block:42px; }
  .jp-lead-inner, .jp-order-grid, .jp-use-grid { grid-template-columns:minmax(0,1fr); gap:30px; }
  .jp-lead-art img { width:195px; }
  .jp-book { grid-template-columns:100px minmax(0,1fr); gap:20px; padding:20px; }
  .jp-promo-feature .jp-promo-inner { grid-template-columns:minmax(0,1fr); gap:24px; }
  .jp-promo-feature .jp-promo-cover img { width:155px; }
}
@media (max-width:380px) {
  .jp-book { grid-template-columns:minmax(0,1fr); }
  .jp-book > a { justify-self:center; }
  .jp-actions { align-items:stretch; }
  .jp-actions .jp-button { width:100%; }
}
