@font-face { font-family:'Lora'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/lora-regular.woff2') format('woff2'); }
@font-face { font-family:'Lora'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/lora-regular.woff2') format('woff2'); }
@font-face { font-family:'Lora'; font-style:italic; font-weight:400; font-display:swap; src:url('fonts/lora-italic-400.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-style:normal; font-weight:300; font-display:swap; src:url('fonts/poppins-300.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-style:normal; font-weight:400; font-display:swap; src:url('fonts/poppins-400.woff2') format('woff2'); }
@font-face { font-family:'Poppins'; font-style:normal; font-weight:500; font-display:swap; src:url('fonts/poppins-500.woff2') format('woff2'); }

:root { --dusk:#3C3450; --mauve:#8C7593; --rose:#B98A86; --sand:#F6EFE6; --ink:#35302D; --soft:#6E655E; --line:#E3D8CB; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--sand); color:var(--ink); font:300 17px/1.7 Poppins, "Helvetica Neue", Arial, sans-serif; }
h1,h2,h3 { font-family:Lora, Georgia, serif; font-weight:400; line-height:1.2; margin:0; }
a { color:inherit; }
a:focus-visible, .btn:focus-visible { outline:3px solid var(--rose); outline-offset:3px; }
.wrap { max-width:1080px; margin:0 auto; padding:0 24px; }

/* Homepage hero header */
header.top { position:absolute; inset:0 0 auto 0; z-index:2; padding:22px 0; color:#F6E8E2; }
header.top .wrap { display:flex; justify-content:space-between; align-items:center; }
.logo { font-family:Lora, serif; font-size:22px; text-decoration:none; }
nav a { margin-left:22px; font-size:15px; text-decoration:none; opacity:.9; }
.nav-toggle { display:none; background:none; border:none; color:inherit; font-size:26px; line-height:1; cursor:pointer; padding:4px 8px; }
.hero { position:relative; background:linear-gradient(#3C3450 0%, #6B5470 55%, #B9899A 100%); color:#FBF3E6; padding:150px 0 0; overflow:hidden; }
.hero .wrap { position:relative; z-index:1; max-width:760px; text-align:center; padding-bottom:200px; }
.hero h1 { font-size:clamp(38px,6vw,64px); }
.hero p { font-family:Lora, serif; font-style:italic; font-size:20px; color:#F1DDD6; max-width:560px; margin:22px auto 34px; }
.hero .btn { background:#FBF3E6; color:var(--dusk); }
.hills { position:absolute; left:0; right:0; bottom:-2px; width:100%; height:240px; }

/* Subpage (legal / contact) header */
header.subpage-top { position:relative; background:var(--dusk); color:#FBF3E6; padding:22px 0; }
header.subpage-top .wrap { display:flex; justify-content:space-between; align-items:center; }
header.subpage-top a { color:#FBF3E6; }
header.subpage-top .back-link { font-size:14px; text-decoration:none; opacity:.85; }
header.subpage-top .back-link:hover { opacity:1; }

/* Slim checkout / thank-you header */
header.checkout-top { position:relative; background:var(--dusk); color:#FBF3E6; padding:16px 0; }
header.checkout-top .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
header.checkout-top a { color:#FBF3E6; text-decoration:none; font-size:14px; }
header.checkout-top .logo { font-family:Lora, serif; font-size:20px; }
.secure-badge { display:flex; align-items:center; gap:6px; font-size:13px; opacity:.85; }
.secure-badge svg { width:14px; height:14px; }

.btn { display:inline-block; background:var(--dusk); color:#FBF3E6; text-decoration:none; font-weight:500; font-size:15px; padding:13px 26px; border-radius:40px; border:none; cursor:pointer; }
.btn:hover { background:var(--mauve); color:#FBF3E6; }
.btn-outline { background:none; border:1.5px solid var(--dusk); color:var(--dusk); padding:9px 18px; font-size:13px; border-radius:40px; cursor:pointer; font-weight:500; }
.btn-outline:hover { background:var(--dusk); color:#FBF3E6; }
section { padding:58px 0; }
.intro { max-width:640px; margin-bottom:36px; }
.intro h2 { font-size:clamp(30px,4vw,42px); margin-bottom:14px; }
.intro p { color:var(--soft); margin:0; }
.book { display:grid; grid-template-columns:minmax(0,260px) 1fr; gap:40px; align-items:center; padding:28px 0; border-top:1px solid var(--line); }
.book img { width:100%; height:auto; border-radius:4px; box-shadow:0 18px 40px -18px rgba(60,52,80,.45); }
.book h3 { font-size:30px; }
.book .sub { font-family:Lora, serif; font-style:italic; color:var(--mauve); margin:6px 0 14px; font-size:18px; }
.book p { max-width:560px; margin:0 0 12px; }
.book .meta { color:var(--soft); font-size:14px; }
.buy { display:flex; align-items:center; gap:14px; margin-top:20px; flex-wrap:wrap; }
.price { font-family:Lora, serif; font-size:28px; }
.price-old { font-family:Lora, serif; font-size:18px; color:var(--soft); text-decoration:line-through; }
.price-block { display:flex; flex-direction:column; line-height:1.3; }
.price-tax-note { font-size:11px; color:var(--soft); }
.bundle { background:#EDE2EA; border-radius:18px; padding:32px 36px; display:flex; gap:30px; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-top:20px; }
.bundle h3 { font-size:28px; }
.bundle p { margin:8px 0 0; color:var(--soft); max-width:520px; }
.how { background:#FBF7F1; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.steps h3 { font-size:22px; margin-bottom:8px; }
.steps p { margin:0; color:var(--soft); }
.reviews { background:#FBF7F1; }
.reviews .intro { text-align:center; max-width:640px; margin:0 auto 48px; }
.reviews .intro h2 { font-size:clamp(36px,5.5vw,54px); }
.reviews-track-wrap { position:relative; }
.reviews-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:6px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.reviews-track::-webkit-scrollbar { display:none; }
.review-card { flex:0 0 300px; scroll-snap-align:start; border-radius:16px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; min-height:200px; }
.review-card:nth-child(odd) { background:var(--dusk); color:#F1E6E9; }
.review-card:nth-child(even) { background:#EDE2EA; color:var(--ink); }
.review-card .quote { font-family:Lora, serif; font-style:italic; font-size:16px; line-height:1.55; margin:0 0 20px; }
.review-card .author { font-family:Lora, serif; font-style:italic; font-size:15px; margin:0; opacity:.85; }
.reviews-fade { position:absolute; top:0; bottom:6px; width:70px; pointer-events:none; z-index:2; }
.reviews-fade.left { left:0; background:linear-gradient(to right, #FBF7F1, rgba(251,247,241,0)); }
.reviews-fade.right { right:0; background:linear-gradient(to left, #FBF7F1, rgba(251,247,241,0)); }
.review-nav { position:absolute; top:50%; left:-8px; right:-8px; transform:translateY(-50%); display:flex; justify-content:space-between; pointer-events:none; z-index:3; }
.review-nav button { pointer-events:auto; width:44px; height:44px; border-radius:50%; border:none; background:rgba(255,255,255,.92); box-shadow:0 6px 18px rgba(60,52,80,.2); cursor:pointer; font-size:20px; line-height:1; color:var(--dusk); }
.review-nav button:hover { background:#fff; }

details { border-top:1px solid var(--line); padding:18px 0; }
details:last-of-type { border-bottom:1px solid var(--line); }
summary { cursor:pointer; font-family:Lora, serif; font-size:20px; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; float:right; color:var(--mauve); }
details[open] summary::after { content:"\2013"; }
details p { margin:12px 0 0; color:var(--soft); max-width:720px; }

/* Standalone legal / contact pages */
main.legal-page { padding:44px 0 70px; }
main.legal-page .wrap { max-width:760px; }
.legal-page h1 { font-size:clamp(32px,5vw,46px); }
.legal-page .updated { color:var(--soft); font-size:14px; margin:12px 0 32px; }
.legal-page h2 { font-size:23px; margin:32px 0 12px; }
.legal-page h2:first-of-type { margin-top:0; }
.legal-page h3 { font-size:18px; margin:24px 0 8px; color:var(--dusk); }
.legal-page p, .legal-page li { color:var(--soft); margin:0 0 14px; }
.legal-page ul, .legal-page ol { padding-left:22px; margin:0 0 16px; }
.legal-page strong { color:var(--ink); }
.legal-page table { width:100%; border-collapse:collapse; margin:16px 0 24px; font-size:15px; }
.legal-page th, .legal-page td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); color:var(--soft); vertical-align:top; }
.legal-page th { color:var(--ink); font-family:Lora, serif; font-weight:400; }
.legal-page .callout { background:#EDE2EA; border-radius:12px; padding:20px 24px; margin:20px 0; }
.legal-page .callout p:last-child { margin-bottom:0; }

footer { background:var(--dusk); color:#E6D6DD; padding:36px 0; font-size:14px; }
footer .wrap { display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; }
footer a { margin-right:18px; }
.footer-note { flex-basis:100%; margin:6px 0 0; color:#C9B7C0; font-size:13px; }
.footer-note a { color:#F1E6E9; margin-right:0; text-decoration:underline; }

/* Checkout */
.checkout-page { padding:36px 0 70px; }
.checkout-page h1 { font-size:clamp(26px,4vw,34px); margin-bottom:6px; }
.checkout-sub { color:var(--soft); margin:0 0 24px; font-size:15px; }
.checkout-grid { display:flex; flex-direction:column; gap:28px; }
.paddle-checkout-frame { min-height:200px; }
.checkout-fallback { background:#FBF7F1; border:1px solid var(--line); border-radius:14px; padding:28px; text-align:center; }
.checkout-fallback h2 { font-size:20px; margin-bottom:10px; }
.checkout-fallback p { color:var(--soft); margin:0 0 18px; }
.trust-row { list-style:none; display:flex; flex-wrap:wrap; gap:18px; padding:0; margin:28px 0 20px; }
.trust-row li { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--soft); }
.trust-row svg { width:16px; height:16px; flex-shrink:0; color:var(--mauve); }
.checkout-legal { font-size:12.5px; color:var(--soft); margin:0; }
.checkout-legal a { text-decoration:underline; }

.order-summary { background:#EDE2EA; border-radius:14px; padding:20px 22px; }
.summary-toggle { display:flex; width:100%; justify-content:space-between; align-items:center; gap:10px; background:none; border:none; font:500 15px Poppins, sans-serif; color:var(--dusk); cursor:pointer; padding:4px 0; }
.summary-toggle .chevron { width:16px; height:16px; transition:transform .2s; margin-left:auto; }
.order-summary.open .chevron { transform:rotate(180deg); }
.summary-body { display:none; margin-top:16px; padding-top:16px; border-top:1px solid rgba(60,52,80,.15); }
.order-summary.open .summary-body { display:block; }
.summary-product { display:flex; gap:14px; align-items:flex-start; }
.summary-cover-wrap { position:relative; flex:0 0 64px; }
.summary-cover { width:64px; height:auto; border-radius:4px; display:block; box-shadow:0 8px 18px -8px rgba(60,52,80,.4); }
.qty-badge { position:absolute; top:-8px; right:-8px; background:var(--dusk); color:#fff; font-size:11px; font-weight:600; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.bundle-grid { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:2px; width:64px; height:64px; border-radius:4px; overflow:hidden; box-shadow:0 8px 18px -8px rgba(60,52,80,.4); }
.bundle-grid img { width:100%; height:100%; object-fit:cover; display:block; }
.summary-info { flex:1; min-width:0; }
.summary-title { margin:0 0 2px; font-family:Lora, serif; font-size:16px; color:var(--ink); }
.summary-format { margin:0 0 6px; font-size:13px; color:var(--soft); }
.summary-price { margin:0; font-family:Lora, serif; font-size:16px; color:var(--ink); }
.upsell-card { margin-top:18px; padding:14px 16px; background:#FBF7F1; border-radius:10px; border:1px solid var(--line); }
.upsell-card p { margin:0 0 10px; font-size:14px; color:var(--ink); }
.summary-totals { margin-top:18px; padding-top:14px; border-top:1px solid rgba(60,52,80,.15); }
.summary-row { display:flex; justify-content:space-between; font-size:14px; color:var(--soft); padding:4px 0; }
.summary-row.summary-total { color:var(--ink); font-weight:600; font-size:16px; padding-top:8px; margin-top:4px; border-top:1px solid rgba(60,52,80,.15); }

/* Thank-you page */
.thank-you-page { padding:80px 0 100px; text-align:center; }
.thank-you-page .wrap { max-width:520px; }
.thank-you-page h1 { font-size:clamp(28px,4vw,38px); margin-bottom:14px; }
.thank-you-page p { color:var(--soft); margin:0 0 14px; }
.order-ref { display:inline-block; margin:8px 0 24px; padding:8px 16px; background:#EDE2EA; border-radius:8px; font-size:13px; color:var(--ink); font-family:Lora, serif; }

@media (max-width:880px) {
  .nav-toggle { display:block; }
  nav#site-nav { display:none; }
  nav#site-nav.open { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--dusk); padding:14px 24px 18px; z-index:5; }
  nav#site-nav.open a { margin:10px 0; color:#F6E8E2; }
  .book { grid-template-columns:1fr; gap:24px; }
  .book img { max-width:240px; display:block; margin:0 auto; }
  .book h3, .book .sub { text-align:center; }
  .book .buy { justify-content:center; }
  .steps { grid-template-columns:1fr; }
  .bundle { padding:26px; }
  .review-card { flex-basis:260px; }
}
@media (min-width:881px) {
  .checkout-grid { flex-direction:row; align-items:flex-start; gap:48px; }
  .checkout-main { order:1; flex:1 1 58%; min-width:0; }
  .order-summary { order:2; flex:0 0 42%; position:sticky; top:24px; }
  .summary-toggle { display:none; }
  .summary-body { display:block; margin-top:0; padding-top:0; border-top:none; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
