/* ============================================================
   WISDOM FORGE PRESS - style.css
   Visual system inherited from thewisdomforge.com, applied with
   publisher discipline (gradients ~5%, lists over heroes, restraint).
   Self-hosted fonts only. No Google Fonts links.
   ============================================================ */

/* ---------- FONTS (self-hosted, verbatim from book site) ---------- */
@font-face{font-family:'Barlow Condensed';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/barlow-condensed-400-italic.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:italic;font-weight:500;font-display:swap;src:url('/fonts/barlow-condensed-500-italic.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/barlow-condensed-400.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/barlow-condensed-500.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/barlow-condensed-600.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('/fonts/barlow-condensed-900.woff2') format('woff2')}
@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/bebas-neue-400.woff2') format('woff2')}
@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/roboto-400-italic.woff2') format('woff2')}
@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/roboto-400.woff2') format('woff2')}
/* Oswald 500 - self-hosted (canonical typeface for the End Goal Media footer credit; no Google Fonts link) */
@font-face{font-family:'Oswald';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/oswald-500.woff2') format('woff2')}

/* ---------- TOKENS ---------- */
:root{
  --black:#0A0A0A; --charcoal:#1A1A1A; --dark-gray:#2A2A2A;
  --mid-gray:#888; --light-gray:#999; --off-white:#F0EDE8; --white:#FAFAF8;
  --gold:#C4A35A; --gold-light:#D4B96A; --bronze:#A0753B; --bronze-light:#B8884A;
  --red:#8B2020; --red-bright:#B83030; --silver:#C0C0C0;

  --font-title:'Barlow Condensed','Oswald',sans-serif;
  --font-author:'Bebas Neue',sans-serif;
  --font-message:'Roboto',sans-serif;

  --steel:linear-gradient(180deg,#D4D4D4 0%,#999 40%,#707070 80%,#555 100%);
  --gold-grad:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 50%,var(--bronze) 100%);

  --wrap:1140px;
  --section:clamp(64px,9vw,128px);
  --nav-h:68px;
}

/* ---------- RESET / BASE ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--black);color:var(--mid-gray);
  font-family:var(--font-message);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-decoration:none;transition:color .25s ease}
a:hover{color:var(--gold-light)}
h1,h2,h3{margin:0;font-family:var(--font-title);color:var(--off-white);font-weight:600;line-height:1.05}
p{margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- UTILITIES ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.eyebrow{
  font-family:var(--font-author);font-weight:400;font-size:14px;
  letter-spacing:3.5px;text-transform:uppercase;color:var(--gold);
}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}
.skip-link{position:absolute;left:-999px;top:0;background:var(--charcoal);color:var(--off-white);padding:10px 16px;z-index:200}
.skip-link:focus{left:8px;top:8px}

/* ---------- HEADER / NAV ---------- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(10,10,10,.86);
  backdrop-filter:saturate(140%) blur(8px);-webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--dark-gray);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}
.brand{display:inline-flex;align-items:center;gap:12px}
.brand img{width:40px;height:40px}
.brand-text{
  font-family:var(--font-title);font-weight:700;font-size:19px;
  letter-spacing:1.5px;text-transform:uppercase;line-height:1;white-space:nowrap;
}
.brand-text .w{color:var(--off-white)}
.brand-text .f{background:var(--steel);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.brand-text .p{color:var(--mid-gray)}

.nav-links{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
.nav-links a{
  font-family:var(--font-author);font-size:15px;letter-spacing:2px;
  text-transform:uppercase;color:var(--light-gray);
}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--off-white)}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;width:44px;height:44px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--off-white);margin:5px auto;transition:.3s}

@media(max-width:880px){
  .nav-toggle{display:block}
  .nav-links{
    position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;
    background:var(--charcoal);border-bottom:1px solid var(--dark-gray);
    max-height:0;overflow:hidden;transition:max-height .35s ease;
  }
  .nav-links.open{max-height:60vh}
  .nav-links li{width:100%;border-top:1px solid var(--dark-gray)}
  .nav-links a{display:block;padding:16px clamp(20px,5vw,40px);font-size:16px}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ---------- HERO ---------- */
.hero{padding:clamp(72px,12vw,150px) 0 clamp(48px,7vw,90px);text-align:center}
.hero .eyebrow{display:block;margin-bottom:30px}
.hero-mark{margin:0 auto;width:clamp(196px,25vw,288px);height:auto}
.hero-lede{
  max-width:600px;margin:38px auto 0;color:var(--off-white);
  font-family:var(--font-title);font-weight:400;
  font-size:clamp(20px,2.5vw,26px);line-height:1.45;
}
.hero-rule{width:64px;height:1px;background:var(--gold);margin:44px auto 0;opacity:.7}

/* ---------- CATALOG ---------- */
.catalog{padding:var(--section) 0 calc(var(--section) + 8px);border-top:1px solid var(--dark-gray)}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  margin-bottom:clamp(36px,5vw,60px);flex-wrap:wrap;
}
.section-head h2{font-size:clamp(30px,4vw,42px);font-weight:700;letter-spacing:.5px}
.section-head .eyebrow{display:block;margin-bottom:12px}
.section-link{
  font-family:var(--font-author);font-size:15px;letter-spacing:2px;text-transform:uppercase;
  color:var(--gold);white-space:nowrap;
}

.book-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,48px) clamp(20px,3vw,40px)}
@media(min-width:760px){.book-grid{grid-template-columns:repeat(3,1fr)}}
.book-grid.cols-4{grid-template-columns:repeat(2,1fr)}
@media(min-width:920px){.book-grid.cols-4{grid-template-columns:repeat(4,1fr)}}

.book-card{display:flex;flex-direction:column}
/* equal-height shelf: every cover shares one height + baseline, widths stay native (no cropping of cover text) */
.book-cover{display:flex;align-items:flex-end;justify-content:flex-start;height:clamp(228px,30vw,330px)}
.book-cover picture{display:contents}
.book-cover img{
  height:100%;width:auto;max-width:100%;
  border:1px solid var(--dark-gray);
  box-shadow:0 10px 30px rgba(0,0,0,.45);transition:transform .3s ease,box-shadow .3s ease;
}
a.book-cover:hover img{transform:translateY(-5px);box-shadow:0 18px 44px rgba(0,0,0,.6)}
.book-cover.is-placeholder .ph{
  height:100%;aspect-ratio:7/10;border:1px dashed var(--dark-gray);background:var(--charcoal);
  display:flex;align-items:center;justify-content:center;
}
.book-cover.is-placeholder .ph span{
  font-family:var(--font-author);font-size:13px;letter-spacing:3px;text-transform:uppercase;
  color:var(--mid-gray);text-align:center;padding:0 16px;line-height:1.6;
}

.book-meta{padding-top:18px}
.book-label{
  font-family:var(--font-author);font-size:12.5px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--mid-gray);display:block;margin-bottom:7px;
}
.book-title{font-family:var(--font-title);font-weight:600;font-size:21px;line-height:1.12;color:var(--off-white)}
a .book-title{transition:color .25s ease}
.book-card a:hover .book-title{color:var(--white)}
.book-author{
  font-family:var(--font-author);font-size:13.5px;letter-spacing:2px;text-transform:uppercase;
  color:var(--light-gray);margin-top:6px;
}
.book-desc{font-size:14.5px;line-height:1.6;color:var(--mid-gray);margin-top:12px}
.book-status{
  margin-top:13px;font-family:var(--font-author);font-size:12.5px;letter-spacing:2px;
  text-transform:uppercase;
}
.book-status.muted{color:var(--mid-gray)}
.book-status.out{color:var(--gold)}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--charcoal);border-top:1px solid var(--dark-gray);padding:clamp(56px,7vw,84px) 0 36px}
.footer-top{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(36px,6vw,72px)}
.footer-mark{width:138px;height:auto;opacity:.82}
.footer-blurb{margin-top:20px;max-width:360px;font-size:14.5px;line-height:1.65;color:var(--mid-gray)}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.footer-cols h3{
  font-family:var(--font-author);font-weight:400;font-size:13px;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--off-white);margin-bottom:14px;
}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols li{margin-bottom:10px}
.footer-cols a{font-size:14.5px;color:var(--light-gray)}
.footer-cols a:hover{color:var(--off-white)}
.footer-base{
  margin-top:clamp(40px,5vw,60px);padding-top:24px;border-top:1px solid var(--dark-gray);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:13px;color:var(--mid-gray);letter-spacing:.3px;
}
@media(max-width:680px){
  .footer-top{grid-template-columns:1fr;gap:40px}
}

/* ---------- 404 / SIMPLE PAGE ---------- */
.simple{min-height:60vh;display:flex;align-items:center;text-align:center;padding:var(--section) 0}
.simple .wrap{max-width:560px}
.simple img{width:72px;height:72px;margin:0 auto 28px}
.simple h1{font-family:var(--font-title);font-weight:700;font-size:clamp(34px,6vw,52px);margin-bottom:18px}
.simple p{color:var(--mid-gray);margin-bottom:14px}

/* ---------- MOTION PREFERENCE ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ============================================================
   CATALOG LIST + PRODUCT DETAIL (v3)
   ============================================================ */
.breadcrumb{padding:26px 0 0;font-family:var(--font-author);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--mid-gray)}
.breadcrumb a{color:var(--light-gray)}
.breadcrumb a:hover{color:var(--off-white)}
.breadcrumb i{font-style:normal;color:var(--mid-gray);margin:0 9px}

.page-head{padding:clamp(46px,7vw,88px) 0 clamp(26px,4vw,46px)}
.page-head .eyebrow{display:block;margin-bottom:14px}
.page-head h1{font-size:clamp(38px,6vw,58px);font-weight:700;letter-spacing:.5px;color:var(--off-white)}
.page-head .lead{max-width:620px;margin-top:20px;font-size:16px;line-height:1.7;color:var(--mid-gray)}
.catalog-list{padding-bottom:var(--section)}

.product{padding:clamp(18px,4vw,38px) 0 var(--section);display:grid;grid-template-columns:1fr;gap:clamp(34px,5vw,60px)}
@media(min-width:860px){.product{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:clamp(48px,6vw,80px)}}
.product-cover img{width:100%;height:auto;border:1px solid var(--dark-gray);box-shadow:0 24px 60px rgba(0,0,0,.55)}
@media(min-width:860px){.product-cover{position:sticky;top:92px}}
@media(max-width:859px){.product-cover{max-width:290px}}

.product-label{font-family:var(--font-author);font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:14px}
.product-title{font-family:var(--font-title);font-weight:700;font-size:clamp(30px,4.4vw,46px);line-height:1.04;color:var(--off-white)}
.product-subtitle{font-family:var(--font-title);font-weight:400;font-size:clamp(17px,2vw,20px);color:var(--light-gray);margin-top:12px;line-height:1.3}
.product-author{font-family:var(--font-author);font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--mid-gray);margin-top:20px}
.product-source{font-style:italic;font-size:14.5px;color:var(--mid-gray);margin-top:6px}

.product-meta-row{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-top:26px}
.product-price{font-family:var(--font-title);font-weight:600;font-size:27px;color:var(--off-white)}
.product-availability{font-family:var(--font-author);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--mid-gray)}

.cta-row{margin-top:24px;display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-block;font-family:var(--font-author);font-size:15px;letter-spacing:2px;text-transform:uppercase;padding:14px 26px;border-radius:2px;transition:transform .2s ease,border-color .2s ease,color .2s ease}
.btn-gold{background:var(--gold-grad);color:#1A1206}
.btn-gold:hover{transform:translateY(-2px);color:#1A1206}
.btn-ghost{border:1px solid var(--mid-gray);color:var(--off-white)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-disabled{border:1px solid var(--dark-gray);color:var(--mid-gray);cursor:default}

.spec-list{margin:32px 0 0;border-top:1px solid var(--dark-gray)}
.spec-list div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--dark-gray)}
.spec-list dt{margin:0;color:var(--mid-gray);font-family:var(--font-author);letter-spacing:1.5px;text-transform:uppercase;font-size:12.5px}
.spec-list dd{margin:0;color:var(--off-white);text-align:right;font-size:14.5px}

.product-desc{margin-top:32px;font-size:16px;line-height:1.75;color:var(--light-gray);max-width:62ch}
.product-desc p+p{margin-top:16px}
.product-note{margin-top:22px;font-size:13.5px;color:var(--mid-gray);font-style:italic;max-width:62ch}

/* ============================================================
   MADE BY END GOAL MEDIA - canonical footer credit (v4)
   Canonical package, installed per its README. Variables carry
   the canonical fallbacks (#CC0001 accent + faint off-white),
   scoped to the maker's mark only. Oswald 500 is self-hosted.
   Domain: endgoalmedia.ca now -> endgoalmedia.com on coordinated flip.
   ============================================================ */
.egm-credit{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  color:var(--text-faint, rgba(237,234,228,0.45));transition:color .25s ease;line-height:1;
}
.egm-credit-icon{
  width:18px;height:18px;object-fit:contain;display:block;opacity:.85;transition:opacity .25s ease;
}
.egm-credit-text{
  font-family:'Oswald','Inter',Helvetica,sans-serif;font-size:11px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-faint, rgba(237,234,228,0.45));transition:color .25s ease;
}
.egm-credit-arrow{
  font-family:var(--font-sans, 'Inter',Helvetica,sans-serif);font-size:12px;
  color:var(--accent-red, #CC0001);margin-left:2px;
  transition:transform .25s ease,color .25s ease;display:inline-block;
}
.egm-credit:hover .egm-credit-text{color:var(--text-secondary, rgba(237,234,228,0.82))}
.egm-credit:hover .egm-credit-icon{opacity:1}
.egm-credit:hover .egm-credit-arrow{transform:translateX(4px)}

/* ============================================================
   TEXT PAGES (about, legal) + CONTACT FORM + AUTHOR (v5)
   ============================================================ */
.prose{max-width:68ch;font-size:16px;line-height:1.75;color:var(--light-gray);padding-bottom:var(--section)}
.prose>*+*{margin-top:16px}
.prose h2{font-family:var(--font-title);font-weight:600;font-size:clamp(22px,3vw,28px);color:var(--off-white);margin-top:40px;line-height:1.15}
.prose h3{font-family:var(--font-author);font-weight:400;font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-top:30px}
.prose strong{color:var(--off-white);font-weight:600}
.prose a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(196,163,90,.4)}
.prose a:hover{border-bottom-color:var(--gold)}
.prose ul{margin:4px 0 0;padding-left:20px}
.prose li{margin-bottom:8px}
.prose .muted{color:var(--mid-gray);font-size:14px}

.form{max-width:560px}
.field{margin-bottom:20px}
.field label{display:block;font-family:var(--font-author);font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--off-white);margin-bottom:8px}
.field input,.field textarea{
  width:100%;background:var(--charcoal);border:1px solid var(--dark-gray);border-radius:2px;
  color:var(--off-white);font-family:var(--font-message);font-size:15px;padding:13px 14px;transition:border-color .2s ease;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--gold)}
.field textarea{min-height:150px;resize:vertical}
.form-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form button{margin-top:4px;border:0;cursor:pointer;font-family:var(--font-author);font-size:15px;letter-spacing:2px;text-transform:uppercase;padding:14px 30px;border-radius:2px;background:var(--gold-grad);color:#1A1206;transition:transform .2s ease}
.form button:hover{transform:translateY(-2px)}
.contact-alt{margin-top:24px;padding-bottom:var(--section);font-size:14.5px;color:var(--mid-gray)}
.contact-alt a{color:var(--gold);text-decoration:none}

.author{padding:clamp(18px,4vw,38px) 0 clamp(40px,5vw,64px);display:grid;grid-template-columns:1fr;gap:clamp(32px,5vw,56px)}
@media(min-width:760px){.author{grid-template-columns:300px 1fr;align-items:start;gap:clamp(40px,5vw,64px)}}
.author-photo img{width:100%;height:auto;border:1px solid var(--dark-gray);box-shadow:0 18px 44px rgba(0,0,0,.5)}
@media(max-width:759px){.author-photo{max-width:280px}}
.author-bio{font-size:16px;line-height:1.75;color:var(--light-gray)}
.author-bio p+p{margin-top:16px}
.author-sections{padding-bottom:var(--section);border-top:1px solid var(--dark-gray);padding-top:clamp(36px,5vw,56px)}
.author-block{margin-bottom:34px}
.author-block h2{font-family:var(--font-author);font-weight:400;font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.author-block .lead{font-family:var(--font-title);font-weight:500;font-size:clamp(17px,2vw,20px);color:var(--off-white);margin-bottom:16px}
.author-block h3{font-family:var(--font-title);font-weight:600;font-size:20px;color:var(--off-white);margin:16px 0 4px}
.author-block p{font-size:15.5px;line-height:1.7;color:var(--light-gray);max-width:64ch}
.author-block a{color:var(--gold);text-decoration:none;font-family:var(--font-author);letter-spacing:1.5px;text-transform:uppercase;font-size:14px}

.author-index{padding-bottom:var(--section)}
.author-card{display:flex;gap:22px;align-items:center;text-decoration:none;max-width:560px;padding:20px;border:1px solid var(--dark-gray);border-radius:3px;transition:border-color .2s ease,transform .2s ease;background:var(--charcoal)}
.author-card:hover{border-color:var(--mid-gray);transform:translateY(-2px)}
.author-card img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:1px solid var(--dark-gray);flex-shrink:0}
.author-card .ac-name{font-family:var(--font-title);font-weight:600;font-size:22px;color:var(--off-white)}
.author-card .ac-role{font-family:var(--font-author);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--mid-gray);margin-top:5px}
.author-card .ac-more{font-family:var(--font-author);font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-top:10px}
.author-card .ac-name,.author-card .ac-role,.author-card .ac-more{display:block}

/* ============================================================
   FAQ (About) + 404 RECOVERY LINKS (v8)
   ============================================================ */
.faq-wrap{padding-top:clamp(18px,3vw,30px)}
.faq{max-width:68ch;padding-bottom:var(--section)}
.faq h2{font-family:var(--font-title);font-weight:600;font-size:clamp(22px,3vw,28px);color:var(--off-white);margin-bottom:10px}
.faq-item{padding:20px 0;border-top:1px solid var(--dark-gray)}
.faq-q{font-family:var(--font-title);font-weight:600;font-size:18px;color:var(--off-white);margin:0 0 6px}
.faq-a{font-size:15.5px;line-height:1.7;color:var(--light-gray);margin:0}
.simple-links{display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center;margin:20px 0 4px}
.simple-links a{font-family:var(--font-author);font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);text-decoration:none}
.simple-links a:hover{color:var(--off-white)}

/* Related edition cross-link (v13) */
.product-related{margin-top:22px;font-size:13.5px;color:var(--mid-gray)}
.product-related a{color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}
.product-related a:hover{border-bottom-color:var(--gold)}

/* v16 - Restore horizontal gutter on product + breadcrumb below the 1140px max-width.
   These blocks carry the .wrap class but their own vertical-padding shorthand
   (padding: X 0 Y) zeroed the sides, so content went edge-to-edge wherever the
   container is full-bleed (phone, tablet, small laptop). Large desktop (>=1140px,
   container centered with margins) is intentionally left unchanged. */
@media(max-width:1139px){
  .breadcrumb,.product{padding-left:clamp(20px,5vw,40px);padding-right:clamp(20px,5vw,40px)}
}

/* ============================================================
   v21 - 3D book (Meditations Complete hardcover) + rich product copy
   ============================================================ */
.product-cover.has-book3d{ overflow:visible; background:none; box-shadow:none; padding:0; }
.book3d-stage{
  --bw:272px; --bh:422px; --bt:31px;
  position:relative; width:100%; min-height:calc(var(--bh) + 96px);
  display:flex; align-items:center; justify-content:center;
  perspective:1600px; perspective-origin:50% 42%;
}
.book3d-stage::before{ content:""; position:absolute; left:50%; top:44%;
  width:460px; height:460px; max-width:120%; transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(139,32,32,.22), rgba(139,32,32,0) 64%);
  pointer-events:none; z-index:0; }
.book3d-float{ position:relative; z-index:2; transform-style:preserve-3d; animation:b3float 6.5s ease-in-out infinite; }
.book3d-tilt{ transform:rotateX(-7deg); transform-style:preserve-3d; }
.book3d{ position:relative; width:var(--bw); height:var(--bh); transform-style:preserve-3d;
  transform:rotateY(-26deg); cursor:grab; will-change:transform; touch-action:pan-y; }
.book3d.grabbing{ cursor:grabbing; }
.b3-face{ position:absolute; top:50%; left:50%; overflow:hidden; }
.b3-face img{ width:100%; height:100%; object-fit:cover; display:block; }
.b3-cover{ width:var(--bw); height:var(--bh); border-radius:2px 5px 5px 2px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.28); }
.b3-gloss{ position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  background:linear-gradient(118deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.04) 18%, rgba(255,255,255,0) 38%, rgba(0,0,0,.12) 90%); }
.b3-front{ transform:translate(-50%,-50%) rotateY(0deg) translateZ(calc(var(--bt)/2)); }
.b3-back { transform:translate(-50%,-50%) rotateY(180deg) translateZ(calc(var(--bt)/2)); }
.b3-spine{ width:var(--bt); height:var(--bh); transform:translate(-50%,-50%) rotateY(-90deg) translateZ(calc(var(--bw)/2)); }
.b3-pages{ background:#efe8d8; }
.b3-fore{ width:var(--bt); height:var(--bh); transform:translate(-50%,-50%) rotateY(90deg) translateZ(calc(var(--bw)/2));
  background:
    repeating-linear-gradient(90deg, rgba(120,108,84,0) 0, rgba(120,108,84,0) 1px, rgba(120,108,84,.22) 1.6px, rgba(120,108,84,0) 2.2px),
    linear-gradient(90deg,#d9d0bc,#efe8d8 30%,#efe8d8 70%,#cdc3ab);
  box-shadow:inset 0 0 14px rgba(120,100,60,.25); }
.b3-top{ width:var(--bw); height:var(--bt); transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(var(--bh)/2));
  background:repeating-linear-gradient(90deg, rgba(120,108,84,0) 0, rgba(120,108,84,0) 1px, rgba(120,108,84,.18) 1.5px, rgba(120,108,84,0) 2px), linear-gradient(180deg,#e7dfca,#d7cdb4); }
.b3-bottom{ width:var(--bw); height:var(--bt); transform:translate(-50%,-50%) rotateX(-90deg) translateZ(calc(var(--bh)/2));
  background:repeating-linear-gradient(90deg, rgba(120,108,84,0) 0, rgba(120,108,84,0) 1px, rgba(120,108,84,.18) 1.5px, rgba(120,108,84,0) 2px), linear-gradient(180deg,#d7cdb4,#c8bd9f); }
.book3d-shadow{ position:absolute; z-index:1; bottom:26px; left:50%; width:calc(var(--bw)*1.12); height:36px;
  transform:translateX(-50%); background:radial-gradient(50% 50%, rgba(0,0,0,.55), rgba(0,0,0,0) 72%);
  filter:blur(11px); animation:b3shadow 6.5s ease-in-out infinite; }
@keyframes b3float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-13px)} }
@keyframes b3shadow{ 0%,100%{opacity:.55; transform:translateX(-50%) scale(1)} 50%{opacity:.32; transform:translateX(-50%) scale(.86)} }
@media (prefers-reduced-motion: reduce){ .book3d-float, .book3d-shadow{ animation:none; } }
@media (max-width:859px){ .book3d-stage{ --bw:248px; --bh:385px; --bt:28px; } }
@media (max-width:480px){ .book3d-stage{ --bw:212px; --bh:329px; --bt:24px; perspective:1300px; } }

/* rich product copy (Complete edition campaign description) */
.product-desc .wf-lead{ font-weight:700; font-size:1.12em; color:var(--off-white); letter-spacing:.3px; margin-top:1.6em; }
.product-desc .wf-h{ font-family:'Barlow Condensed',sans-serif; font-weight:700; text-transform:uppercase;
  letter-spacing:2px; font-size:1.18em; color:var(--gold); margin:1.9em 0 .7em; padding-top:1.1em;
  border-top:1px solid rgba(196,163,90,.22); }
.product-desc ul.wf-inside{ list-style:none; margin:.3em 0 .2em; padding:0; }
.product-desc ul.wf-inside li{ position:relative; padding:.5em 0 .5em 1.1em; line-height:1.5;
  border-bottom:1px solid rgba(255,255,255,.06); }
.product-desc ul.wf-inside li::before{ content:""; position:absolute; left:0; top:1.05em; width:6px; height:6px;
  background:var(--red-bright); transform:rotate(45deg); }
.product-desc ul.wf-inside strong{ color:var(--off-white); font-weight:700; }
.product-desc blockquote.wf-lines{ margin:1em 0 1.3em; padding:.2em 0 .2em 1.1em; border-left:3px solid var(--red); }
.product-desc blockquote.wf-lines p{ font-style:italic; color:#cfc7bb; margin:.55em 0; line-height:1.45; }
.product-desc .wf-close{ font-weight:700; font-size:1.1em; color:var(--off-white); margin-top:1.5em; }
