/* ==========================================================================
   WORLDZER UNIVERSAL GROUP — E-Book Storefront
   Design language: "The Card Catalogue" — parchment, ledger ink, oxblood,
   brass hardware. Built around the drawer-and-index-card vocabulary of a
   real library catalogue, rather than a generic storefront template.
   ========================================================================== */

:root{
  --parchment:      #F1E9D6;
  --parchment-dim:  #E7DBBC;
  --parchment-deep: #DED0A9;
  --ledger-line:    #C7B384;
  --ink:            #271F14;
  --ink-soft:       #5B5138;
  --forest:         #1F3A2E;
  --forest-soft:    #365347;
  --oxblood:        #7C2E2A;
  --oxblood-dark:   #611F1C;
  --brass:          #A9822F;
  --cream:          #FBF6E9;

  --font-display: "Newsreader", "Iowan Old Style", Georgia, serif;
  --font-body:    "Source Serif 4", Georgia, serif;
  --font-type:    "Courier Prime", "Courier New", monospace;

  --radius: 2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  background:var(--parchment);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.65;
  background-image:radial-gradient(ellipse at top left, rgba(255,255,255,.25), transparent 60%);
}

@media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }

h1,h2,h3,h4,.font-display{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--ink);
  letter-spacing:-0.005em;
}
h2 em, h1 em{font-style:italic;color:var(--oxblood);}

.font-type{font-family:var(--font-type);}

a{color:var(--ink);}
a.plain{text-decoration:none;color:inherit;}
::selection{background:var(--oxblood);color:var(--cream);}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--oxblood);
  outline-offset:2px;
}

.text-oxblood{color:var(--oxblood) !important;}
.text-brass{color:var(--brass) !important;}
.bg-forest{background:var(--forest) !important;}
.bg-parchment-dim{background:var(--parchment-dim) !important;}
.eyebrow{
  font-family:var(--font-type);
  font-size:.74rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--oxblood);
}
.dotted-rule{border:none;border-top:2px dotted var(--ledger-line);margin:0;}

.ledger-row{display:flex;align-items:baseline;gap:.5rem;}
.ledger-row .fill{flex:1;border-bottom:1px dotted var(--ink-soft);transform:translateY(-4px);min-width:20px;}

.btn-stamp{
  background:var(--oxblood);
  border:1px solid var(--oxblood);
  color:var(--cream);
  font-family:var(--font-type);
  font-size:.82rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:.7rem 1.5rem;
  border-radius:var(--radius);
  transition:background .15s ease, transform .15s ease;
}
.btn-stamp:hover{background:var(--oxblood-dark);border-color:var(--oxblood-dark);color:var(--cream);transform:translateY(-1px);}
.btn-stamp:disabled{opacity:.5;transform:none;}

.btn-ledger{
  background:transparent;
  border:1px solid var(--ink);
  color:var(--ink);
  font-family:var(--font-type);
  font-size:.82rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:.65rem 1.4rem;
  border-radius:var(--radius);
  transition:background .15s ease, color .15s ease;
}
.btn-ledger:hover{background:var(--ink);color:var(--cream);}
.btn-ledger.on-forest{border-color:rgba(251,246,233,.55);color:var(--cream);}
.btn-ledger.on-forest:hover{background:var(--cream);color:var(--forest);}

.navbar-worldzer{background:var(--forest);padding-top:1.1rem;padding-bottom:1.1rem;border-bottom:3px solid var(--brass);}
.brand-mark{font-family:var(--font-display);font-weight:700;font-style:italic;font-size:1.5rem;color:var(--cream);}
.brand-mark span{color:var(--brass);font-style:normal;}
.nav-link-worldzer{
  font-family:var(--font-type);
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(251,246,233,.75) !important;
  margin:0 .7rem;
}
.nav-link-worldzer:hover, .nav-link-worldzer.active{color:var(--brass) !important;}
.cart-pill{
  font-family:var(--font-type);
  font-size:.78rem;
  background:var(--brass);
  color:var(--forest);
  border-radius:2px;
  padding:.4rem .9rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight:600;
}
.cart-pill:hover{background:var(--cream);color:var(--forest);}
#cartCount{background:var(--forest);color:var(--brass);border-radius:50%;min-width:1.3rem;height:1.3rem;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;}

.hero{background:var(--forest);color:var(--cream);padding:5rem 0 0;position:relative;overflow:hidden;}
.hero-eyebrow{color:var(--brass);font-family:var(--font-type);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;}
.hero h1{color:var(--cream);font-size:clamp(2.3rem, 4.6vw, 3.7rem);line-height:1.08;max-width:13ch;}
.hero p.lead-copy{color:#CFE0D5;max-width:44ch;font-size:1.05rem;font-family:var(--font-body);}
.hero-index-number{font-family:var(--font-type);color:rgba(251,246,233,.35);font-size:.85rem;letter-spacing:.1em;}

.drawer-bank{display:grid;grid-template-columns:repeat(auto-fit, minmax(150px,1fr));gap:14px;margin-top:3rem;}
.drawer{
  background:linear-gradient(180deg, #2C4A3B 0%, #1B342A 100%);
  border:1px solid #0F241C;
  border-radius:3px;
  padding:1.3rem 1rem 1.6rem;
  text-decoration:none;
  position:relative;
  box-shadow:0 3px 0 rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .18s ease, box-shadow .18s ease;
  display:block;
}
.drawer:hover, .drawer:focus-visible{transform:translateY(-6px);box-shadow:0 12px 18px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);}
.drawer .drawer-pull{width:34px;height:8px;background:var(--brass);border-radius:4px;margin:0 auto 1rem;box-shadow:0 1px 2px rgba(0,0,0,.4);}
.drawer .drawer-label{font-family:var(--font-type);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);text-align:center;display:block;}
.drawer .drawer-count{display:block;text-align:center;color:rgba(251,246,233,.5);font-family:var(--font-type);font-size:.68rem;margin-top:.3rem;}

.section-heading{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:.9rem;margin-bottom:2.2rem;}
.section-heading h2{font-size:1.95rem;margin:0;}

.index-card{background:var(--cream);border:1px solid var(--ledger-line);height:100%;position:relative;padding-top:.4rem;transition:box-shadow .18s ease, transform .18s ease;}
.index-card::before{
  content:"";position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--parchment);
  border:1px solid var(--ledger-line);box-shadow:inset 0 1px 2px rgba(0,0,0,.15);
}
.index-card:hover{box-shadow:0 10px 22px rgba(39,31,20,.16);transform:translateY(-3px);}

.card-cover{
  margin:1.6rem 1rem .9rem;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;
  padding:1.2rem;position:relative;color:var(--cream);border:1px solid rgba(0,0,0,.15);
}
.card-cover .catalog-no{position:absolute;top:.55rem;left:.55rem;font-family:var(--font-type);font-size:.64rem;letter-spacing:.04em;color:rgba(255,255,255,.8);}
.card-cover .cover-title{font-family:var(--font-display);font-weight:700;text-align:center;font-size:1rem;line-height:1.25;}
.card-cover .cover-format{position:absolute;bottom:.55rem;right:.55rem;font-family:var(--font-type);font-size:.6rem;background:rgba(0,0,0,.3);padding:.15rem .4rem;letter-spacing:.04em;text-transform:uppercase;}
.card-body{padding:0 1.1rem 1.2rem;}
.card-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin-bottom:.1rem;}
.card-author{font-size:.85rem;color:var(--ink-soft);font-style:italic;margin-bottom:.6rem;}
.card-price{font-family:var(--font-type);font-weight:700;color:var(--ink);}
.card-price .was{text-decoration:line-through;color:#A69A78;font-weight:400;margin-right:.4rem;}

.due-stamp{
  font-family:var(--font-type);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;
  border:2px solid var(--oxblood);color:var(--oxblood);padding:.15rem .5rem;display:inline-block;
  transform:rotate(-5deg);border-radius:2px;
}

.filter-index{border:1px solid var(--ink);background:var(--parchment-dim);}
.filter-index a{
  display:flex;justify-content:space-between;padding:.75rem 1rem;font-family:var(--font-type);
  font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  border-bottom:1px dotted var(--ledger-line);
}
.filter-index a:last-child{border-bottom:none;}
.filter-index a.active, .filter-index a:hover{background:var(--oxblood);color:var(--cream);}
.filter-index a span{color:var(--ink-soft);font-size:.7rem;}
.filter-index a.active span, .filter-index a:hover span{color:rgba(251,246,233,.75);}

.service-entry{border-bottom:1px dotted var(--ledger-line);padding:1.4rem 0;}
.service-entry:last-child{border-bottom:none;}
.service-entry .service-no{font-family:var(--font-type);color:var(--brass);font-size:.78rem;}
.service-entry h4{font-size:1.1rem;margin:.3rem 0 .4rem;}
.service-entry p{color:var(--ink-soft);font-size:.93rem;margin:0;max-width:52ch;}

.site-footer{background:var(--forest);color:#CFE0D5;padding:3.8rem 0 1.6rem;border-top:3px solid var(--brass);}
.site-footer h5{color:var(--brass);font-family:var(--font-type);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;}
.site-footer a{color:#CFE0D5;text-decoration:none;font-size:.92rem;}
.site-footer a:hover{color:var(--brass);}
.footer-fine{color:#93A79B;font-size:.8rem;}

.ledger-sheet{background:var(--cream);border:1px solid var(--ink);}
.cart-line{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border-bottom:1px dotted var(--ledger-line);}
.cart-line .cover-mini{
  width:52px;height:68px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:.58rem;text-align:center;color:var(--cream);
  padding:.3rem;border:1px solid rgba(0,0,0,.2);
}
.qty-input{width:56px;text-align:center;font-family:var(--font-type);}
.summary-box{background:var(--parchment-dim);border:1px solid var(--ink);padding:1.7rem;}
.summary-box .line{display:flex;justify-content:space-between;font-family:var(--font-type);font-size:.86rem;margin-bottom:.7rem;}
.summary-box .total-line{font-family:var(--font-type);font-weight:700;font-size:1.2rem;border-top:2px solid var(--ink);padding-top:1rem;margin-top:1rem;}

.form-control-worldzer{border-radius:2px;border:1px solid var(--ink-soft);background:var(--cream);padding:.65rem .8rem;font-family:var(--font-body);}
.form-control-worldzer:focus{border-color:var(--oxblood);box-shadow:0 0 0 .18rem rgba(124,46,42,.15);}

.empty-state{border:1px dashed var(--ink-soft);padding:3.5rem 1.5rem;text-align:center;color:var(--ink-soft);background:var(--parchment-dim);}

.receipt-stamp{
  display:inline-block;border:3px double var(--forest);color:var(--forest);font-family:var(--font-type);
  text-transform:uppercase;letter-spacing:.14em;padding:.7rem 1.6rem;transform:rotate(-3deg);
}

@media (max-width:767px){
  .hero{padding-top:3rem;}
  .drawer-bank{grid-template-columns:repeat(2, 1fr);}
}

/* ==========================================================================
   Homepage conversion additions: hero carousel, stat strip, quick-read rail,
   benefit cards, testimonials, newsletter capture.
   ========================================================================== */

/* ---------------- Hero carousel ---------------- */
.hero-carousel{background:var(--forest);}
.hero-slide{
  min-height:480px;
  display:flex;
  align-items:center;
  padding:4.5rem 0 5rem;
  position:relative;
  overflow:hidden;
}
.hero-slide-a{background:linear-gradient(120deg, #1F3A2E 0%, #234433 60%, #2C4A3B 100%);}
.hero-slide-b{background:linear-gradient(120deg, #3B211D 0%, #4B2823 55%, #611F1C 100%);}
.hero-slide-c{background:linear-gradient(120deg, #1F3A2E 0%, #2E4A38 100%);}
.hero-slide-d{background:linear-gradient(120deg, #241C10 0%, #3A2D1B 60%, #4A3B22 100%);}
.hero-slide-e{background:linear-gradient(120deg, #1F3A2E 0%, #365347 100%);}

.hero-slide .hero-eyebrow{color:var(--brass);}
.hero-slide h1, .hero-slide h2.slide-heading{
  color:var(--cream);
  font-family:var(--font-display);
  font-size:clamp(2rem, 4.2vw, 3.2rem);
  line-height:1.1;
  max-width:15ch;
}
.hero-slide p.lead-copy{color:#E4E7DC;max-width:44ch;font-size:1.05rem;}
.hero-slide .slide-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-type);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--forest);background:var(--brass);padding:.35rem .8rem;border-radius:2px;margin-bottom:1rem;
}
.slide-figure{
  width:100%;
  max-width:280px;
  aspect-ratio:3/4;
  margin-left:auto;
  border:1px solid rgba(251,246,233,.25);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:var(--cream);
  background:rgba(251,246,233,.06);
  gap:.6rem;
  padding:1.5rem;
}
.slide-figure i{font-size:2.6rem;color:var(--brass);}
.slide-figure span{font-family:var(--font-type);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;text-align:center;color:#E4E7DC;}

.hero-carousel .carousel-indicators{bottom:14px;}
.hero-carousel .carousel-indicators [data-bs-target]{
  width:8px;height:8px;border-radius:50%;background-color:rgba(251,246,233,.4);border:none;margin:0 5px;opacity:1;
}
.hero-carousel .carousel-indicators .active{background-color:var(--brass);}

.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next{width:56px;opacity:1;}
.hero-nav-btn{
  width:42px;height:42px;
  border:1px solid rgba(251,246,233,.4);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--cream);
  background:rgba(0,0,0,.15);
  font-size:1.1rem;
  transition:background .15s ease, border-color .15s ease;
}
.hero-carousel .carousel-control-prev:hover .hero-nav-btn,
.hero-carousel .carousel-control-next:hover .hero-nav-btn{background:var(--brass);border-color:var(--brass);color:var(--forest);}

/* ---------------- Stat strip ---------------- */
.stat-strip{background:var(--ink);border-bottom:3px solid var(--brass);}
.stat-strip .stat{
  text-align:center;
  padding:1.6rem 1rem;
  color:var(--cream);
  border-right:1px dotted rgba(251,246,233,.25);
}
.stat-strip .col:last-child .stat{border-right:none;}
.stat-strip .stat .num{font-family:var(--font-type);font-size:1.5rem;font-weight:700;color:var(--brass);display:block;}
.stat-strip .stat .label{font-family:var(--font-type);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#CFC7B0;}

/* ---------------- Quick-read rail (non-reader hook) ---------------- */
.quick-read-banner{
  background:var(--oxblood);
  color:var(--cream);
  padding:2.6rem 0;
}
.quick-read-banner .eyebrow{color:var(--brass);}
.quick-read-banner h2{color:var(--cream);font-size:1.85rem;}
.quick-read-banner p{color:#F1DCD6;max-width:56ch;}
.quick-card{
  background:var(--cream);
  border:1px solid rgba(0,0,0,.1);
  padding:1.1rem;
  height:100%;
  display:flex;
  gap:1rem;
  align-items:flex-start;
  text-decoration:none;
  color:var(--ink);
  transition:transform .15s ease, box-shadow .15s ease;
}
.quick-card:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.2);}
.quick-card .quick-cover{
  width:56px;height:74px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:.55rem;text-align:center;color:var(--cream);
  padding:.3rem;
}
.quick-card .quick-title{font-family:var(--font-display);font-weight:600;font-size:.95rem;line-height:1.25;margin-bottom:.2rem;}
.quick-card .quick-meta{font-family:var(--font-type);font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;}
.quick-card .quick-price{font-family:var(--font-type);font-weight:700;font-size:.85rem;margin-top:.4rem;}

/* ---------------- Benefit cards (why reading matters) ---------------- */
.benefit-card{text-align:center;padding:1.5rem 1rem;}
.benefit-card i{font-size:2rem;color:var(--oxblood);}
.benefit-card h4{font-size:1.05rem;margin:.9rem 0 .4rem;}
.benefit-card p{color:var(--ink-soft);font-size:.9rem;margin:0;}

/* ---------------- Testimonials ---------------- */
.testimonial-card{
  background:var(--cream);
  border:1px solid var(--ledger-line);
  padding:1.6rem;
  height:100%;
  position:relative;
}
.testimonial-card i.bi-quote{color:var(--brass);font-size:1.6rem;}
.testimonial-card p{font-style:italic;color:var(--ink);margin:.8rem 0 1rem;}
.testimonial-card .who{font-family:var(--font-type);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);}
.testimonial-card .stars{color:var(--brass);font-size:.85rem;margin-bottom:.3rem;}

/* ---------------- Newsletter capture ---------------- */
.newsletter-band{
  background:var(--parchment-deep);
  border-top:1px dotted var(--ledger-line);
  border-bottom:1px dotted var(--ledger-line);
  padding:3rem 0;
}
.newsletter-band h3{font-size:1.5rem;}
.newsletter-band .form-control-worldzer{background:var(--cream);}

/* ---------------- View more ---------------- */
.view-more-wrap{text-align:center;padding-top:1rem;}

@media (max-width:767px){
  .hero-slide{min-height:auto;padding:3rem 0 3.5rem;}
  .slide-figure{display:none;}
  .stat-strip .stat{border-right:none;border-bottom:1px dotted rgba(251,246,233,.2);}
}

/* ==========================================================================
   Legal pages: privacy, disclaimer, terms, sitemap
   ========================================================================== */
.legal-banner{
  background:var(--forest);
  color:var(--cream);
  padding:3rem 0 2.6rem;
  border-bottom:3px solid var(--brass);
}
.legal-banner h1{color:var(--cream);font-size:clamp(1.8rem, 3.4vw, 2.6rem);margin-bottom:.4rem;}
.legal-banner .updated-date{font-family:var(--font-type);font-size:.75rem;letter-spacing:.05em;color:#CFC7B0;text-transform:uppercase;}

.legal-toc{border:1px solid var(--ink);background:var(--parchment-dim);position:sticky;top:90px;}
.legal-toc a{
  display:block;padding:.65rem 1rem;font-family:var(--font-type);font-size:.74rem;letter-spacing:.03em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px dotted var(--ledger-line);
}
.legal-toc a:last-child{border-bottom:none;}
.legal-toc a:hover{background:var(--oxblood);color:var(--cream);}

.clause{border-bottom:1px dotted var(--ledger-line);padding:1.6rem 0;scroll-margin-top:100px;}
.clause:last-child{border-bottom:none;}
.clause .clause-no{font-family:var(--font-type);color:var(--brass);font-size:.85rem;display:block;margin-bottom:.3rem;}
.clause h3{font-size:1.15rem;margin-bottom:.6rem;}
.clause p, .clause li{color:var(--ink-soft);font-size:.95rem;}
.clause ul{padding-left:1.2rem;}
.clause ul li{margin-bottom:.4rem;}
.clause strong{color:var(--ink);}

.footer-legal-row{
  display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;
  font-family:var(--font-type);font-size:.75rem;
}
.footer-legal-row a{color:#93A79B;}
.footer-legal-row a:hover{color:var(--brass);}

/* Sitemap page */
.sitemap-section h3{
  font-family:var(--font-type);
  font-size:.85rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--oxblood);
  border-bottom:1px solid var(--ink);
  padding-bottom:.5rem;
  margin-bottom:.8rem;
}
.sitemap-section ul{list-style:none;padding:0;margin:0;}
.sitemap-section li{border-bottom:1px dotted var(--ledger-line);padding:.55rem 0;}
.sitemap-section li a{text-decoration:none;color:var(--ink);}
.sitemap-section li a:hover{color:var(--oxblood);}
.sitemap-section li .sm-meta{font-family:var(--font-type);font-size:.7rem;color:var(--ink-soft);float:right;}
