*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --ink-rich:#0d1522;
  --txt-on-dark:rgba(255,255,255,.90);
  --txt-on-dark-soft:rgba(255,255,255,.72);
  --txt-on-dark-mute:rgba(255,255,255,.52);
  --ink:#16202e;
  --ink-mid:#2a3a52;
  --ink-soft:#4a5a72;
  --ink-ghost:rgba(22,32,46,0.45);
  --gold:#b8860b;
  --gold-bright:#d4a020;
  --gold-pale:#f9f2e0;
  --gold-glow:rgba(184,134,11,0.12);
  --cream:#faf7f2;
  --cream-dark:#f2ede4;
  --white:#ffffff;
  --border:rgba(22,32,46,0.1);
  --border-gold:rgba(184,134,11,0.3);
}
html{font-size:16px;}
/* ── CUSTOM SCROLLBAR ── */
html{
  scrollbar-width:thin;
  scrollbar-color:var(--gold) var(--cream-dark);
}
::-webkit-scrollbar{width:11px;}
::-webkit-scrollbar-track{background:var(--cream-dark);}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--gold-bright),var(--gold));
  border-radius:8px;
  border:2px solid var(--cream-dark);
}
::-webkit-scrollbar-thumb:hover{background:var(--gold-bright);}
::-webkit-scrollbar-corner{background:var(--cream-dark);}
body{
  font-family:'Jost',sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.7;
  overflow-x:hidden;
}
/* ── NAV ── */
nav#mainNav{
  position:fixed;top:0;left:0;right:0;
  z-index:500;
  padding:0 3rem;
  height:68px;
  display:flex;align-items:center;justify-content:space-between;
  transition:background 0.4s,border-color 0.4s,box-shadow 0.4s;
}
nav#mainNav.scrolled{
  background:rgba(250,247,242,0.97);
  border-bottom:1px solid var(--border);
  box-shadow:0 2px 24px rgba(22,32,46,0.06);
  backdrop-filter:blur(12px);
}
.nav-logo{
  font-family:'EB Garamond',serif;
  font-size:1.25rem;font-weight:500;
  color:var(--white);text-decoration:none;
  letter-spacing:0.04em;
  transition:color 0.3s;
  flex-shrink:0;
}
nav#mainNav.scrolled .nav-logo{color:var(--ink);}
.nav-logo span{color:var(--gold-bright);}
.nav-links{display:flex;gap:2.25rem;list-style:none;align-items:center;}
.nav-links a{
  font-size:0.75rem;font-weight:400;
  letter-spacing:0.14em;text-transform:uppercase;
  color:rgba(255,255,255,0.7);text-decoration:none;
  transition:color 0.2s;
}
nav#mainNav.scrolled .nav-links a{color:var(--ink-soft);}
.nav-links a:hover{color:var(--gold-bright)!important;}
.nav-cta{
  font-size:0.72rem!important;font-weight:500!important;
  background:var(--gold)!important;color:var(--white)!important;
  padding:0.45rem 1.1rem!important;letter-spacing:0.1em!important;
  border-radius:1px!important;transition:background 0.2s!important;
}
.nav-cta:hover{background:var(--gold-bright)!important;color:var(--white)!important;}
/* Mobile nav hamburger */
.nav-hamburger{
  display:none;
  flex-direction:column;gap:5px;cursor:pointer;
  background:none;border:none;padding:6px;
}
.nav-hamburger span{
  display:block;width:24px;height:2px;
  background:var(--white);border-radius:2px;
  transition:background 0.3s,transform 0.3s,opacity 0.3s;
}
nav#mainNav.scrolled .nav-hamburger span{background:var(--ink);}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
/* Scroll progress bar */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:linear-gradient(90deg,var(--gold),var(--gold-bright));
  z-index:600;transition:width 0.1s linear;
}
/* Nav dropdown */
.nav-dropdown{position:relative;}
.nav-dropdown > a{display:flex;align-items:center;gap:0.35rem;}
.nav-caret{transition:transform 0.25s;opacity:0.7;}
.nav-dropdown:hover .nav-caret{transform:rotate(180deg);}
.nav-dropdown-menu{
  position:absolute;top:calc(100% + 1rem);left:50%;
  transform:translateX(-50%) translateY(6px);
  background:var(--white);
  border:1px solid var(--border);
  border-radius:2px;
  box-shadow:0 18px 48px rgba(22,32,46,0.14);
  list-style:none;min-width:220px;
  padding:0.5rem;
  opacity:0;visibility:hidden;
  transition:opacity 0.22s ease,transform 0.22s ease,visibility 0.22s;
}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-dropdown-menu a{
  display:block;color:var(--ink-soft)!important;
  font-size:0.78rem!important;letter-spacing:0.04em!important;
  text-transform:none!important;padding:0.7rem 0.85rem;
  border-radius:1px;transition:background 0.18s,color 0.18s!important;
}
.nav-dropdown-menu a:hover{background:var(--gold-pale);color:var(--gold)!important;}
.mobile-menu{
  display:none;
  position:fixed;top:60px;left:0;right:0;
  background:rgba(22,32,46,0.98);
  backdrop-filter:blur(16px);
  padding:2rem 1.5rem;
  z-index:499;
  flex-direction:column;gap:0;
  border-top:1px solid rgba(184,134,11,0.2);
}
.mobile-menu.open{display:flex;}
.mobile-menu a{
  font-size:0.95rem;letter-spacing:0.12em;text-transform:uppercase;
  color:rgba(255,255,255,0.75);text-decoration:none;
  padding:1rem 0;border-bottom:1px solid rgba(255,255,255,0.06);
  transition:color 0.2s;
}
.mobile-menu a:hover{color:var(--gold-bright);}
.mobile-menu .mob-cta{
  background:var(--gold);color:var(--white)!important;
  text-align:center;padding:0.9rem!important;border:none!important;
  border-radius:1px;margin-top:1rem;
}
/* ── HERO ── */

.hero-bg-text{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:'EB Garamond',serif;
  font-size:clamp(14vw,18vw,22vw);
  font-weight:500;
  color:rgba(255,255,255,0.025);
  white-space:nowrap;
  pointer-events:none;
  user-select:none;
  letter-spacing:-0.03em;
  line-height:1;
}
.htw-cursor{
  display:inline-block;
  font-weight:300;
  animation:htwBlink 0.9s step-end infinite;
}
@keyframes htwBlink{0%,49%{opacity:1;}50%,100%{opacity:0;}}
.hero-rule{
  position:absolute;top:0;right:18%;
  width:1px;height:100%;
  background:linear-gradient(to bottom,transparent,rgba(184,134,11,0.2) 30%,rgba(184,134,11,0.2) 70%,transparent);
}
.hero-rule2{
  position:absolute;top:0;left:22%;
  width:1px;height:100%;
  background:linear-gradient(to bottom,transparent,rgba(255,255,255,0.05) 30%,rgba(255,255,255,0.05) 70%,transparent);
}
.hero-kicker{
  display:flex;align-items:center;gap:1rem;
  margin-bottom:2rem;
}
.hero-kicker-line{width:48px;height:1px;background:var(--gold);}
.hero-kicker-text{
  font-size:0.7rem;font-weight:400;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--gold);
}
h1.hero-title em{font-style:italic;color:var(--gold-bright);}
.btn-gold{
  display:inline-flex;align-items:center;gap:0.6rem;
  background:var(--gold);color:var(--white);
  text-decoration:none;font-size:0.78rem;font-weight:500;
  padding:1rem 2rem;letter-spacing:0.12em;text-transform:uppercase;
  border-radius:1px;transition:background 0.2s,transform 0.2s;
}
.btn-gold:hover{background:var(--gold-bright);transform:translateY(-1px);}
.btn-ghost-white{
  display:inline-flex;align-items:center;gap:0.5rem;
  color:rgba(255,255,255,0.55);text-decoration:none;
  font-size:0.78rem;font-weight:400;letter-spacing:0.1em;text-transform:uppercase;
  transition:color 0.2s;
  border-bottom:1px solid rgba(255,255,255,0.15);
  padding-bottom:2px;
}
.btn-ghost-white:hover{color:var(--white);border-color:rgba(255,255,255,0.5);}
.hero-books-sidebar{
  position:absolute;right:3rem;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;gap:1.5rem;
  z-index:2;
}
.hero-book-spine{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(184,134,11,0.2);
  border-left:3px solid var(--gold);
  padding:1.5rem 0.75rem;
  font-family:'EB Garamond',serif;
  font-size:0.85rem;
  color:rgba(255,255,255,0.6);
  letter-spacing:0.05em;
  border-radius:0 2px 2px 0;
  cursor:pointer;
  transition:background 0.2s,color 0.2s,border-color 0.2s;
  text-decoration:none;
  min-height:180px;
  display:flex;align-items:center;
}
.hero-book-spine:hover{background:rgba(184,134,11,0.08);color:var(--white);border-left-color:var(--gold-bright);}
/* ── MARQUEE BAND ── */
.marquee-band{
  background:var(--gold);
  padding:0.75rem 0;
  overflow:hidden;
  white-space:nowrap;
}
.marquee-track{
  display:inline-flex;gap:0;
  animation:marquee 36s linear infinite;
}
.marquee-track span{
  font-size:0.7rem;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink);
  padding:0 2.5rem;
}
.marquee-track span::after{
  content:'◆';margin-left:2.5rem;
  font-size:0.55rem;vertical-align:middle;
  opacity:0.5;
}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
/* ── PULL QUOTE ── */
.pullquote-section{
  padding:7rem 3rem;
  background:var(--cream-dark);
  position:relative;overflow:hidden;
}
.pullquote-section::before{
  content:'\201C';
  position:absolute;top:-2rem;left:2rem;
  font-family:'EB Garamond',serif;
  font-size:22rem;line-height:1;
  color:rgba(184,134,11,0.06);
  pointer-events:none;
}
.pullquote-inner{max-width:900px;margin:0 auto;text-align:center;}
.pullquote-text{
  font-family:'EB Garamond',serif;
  font-size:clamp(1.4rem,3vw,2.6rem);
  font-weight:400;font-style:italic;
  color:var(--ink);line-height:1.4;
  margin-bottom:2rem;
}
.pullquote-text em{color:var(--gold);}
.pullquote-attr{
  font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--ink-ghost);
}
/* ── ABOUT ── */
#about{
  padding:8rem 3rem;
  background:var(--cream);
  position:relative;
}
.about-inner{max-width:1240px;margin:0 auto;}
.about-layout{
  display:grid;grid-template-columns:340px 1fr;
  gap:6rem;align-items:start;
}
.about-portrait{position:sticky;top:100px;}


.about-portrait:hover .portrait-img{transform:scale(1.035);filter:saturate(1) contrast(1.05);}
.eyebrow{
  font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:0.75rem;
  margin-bottom:1.25rem;
}
.eyebrow::before{content:'';width:32px;height:1px;background:var(--gold);}
h2.section-title{
  font-family:'EB Garamond',serif;
  font-size:clamp(2rem,3.5vw,3.5rem);
  font-weight:400;color:var(--ink);
  line-height:1.1;margin-bottom:2.5rem;
  letter-spacing:-0.01em;
}
h2.section-title em{font-style:italic;color:var(--gold);}
.about-lead{
  font-family:'EB Garamond',serif;
  font-size:1.2rem;font-style:italic;
  color:var(--ink-soft);line-height:1.65;
  margin-bottom:2rem;
  padding-bottom:2rem;
  border-bottom:1px solid var(--border);
}
.about-body p{
  font-size:0.97rem;color:var(--ink-soft);
  margin-bottom:1.1rem;line-height:1.8;
}
.timeline{margin-top:3rem;}
.timeline-item{
  display:flex;gap:1.75rem;
  padding:1.5rem 0;
  border-top:1px solid var(--border);
  align-items:flex-start;
}
.timeline-year{
  font-family:'EB Garamond',serif;
  font-size:0.85rem;font-style:italic;
  color:var(--gold);min-width:80px;
  padding-top:2px;
  flex-shrink:0;
}
.timeline-content h4{
  font-size:0.88rem;font-weight:500;
  color:var(--ink);margin-bottom:0.3rem;
  letter-spacing:0.02em;
}
.timeline-content p{font-size:0.82rem;color:var(--ink-soft);line-height:1.7;}
.facts-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1rem;margin-top:2.5rem;
}
.fact-pill{
  display:flex;align-items:center;gap:0.6rem;
  font-size:0.82rem;color:var(--ink-soft);
  padding:0.6rem 0;
  border-bottom:1px solid var(--border);
}
.fact-pill::before{
  content:'';width:5px;height:5px;
  background:var(--gold);border-radius:50%;flex-shrink:0;
}
/* ── BOOKS ── */
#books{
  padding:8rem 3rem;
  background:var(--ink);
  position:relative;overflow:hidden;
}
#books .eyebrow{color:var(--gold);}
#books h2.section-title{color:var(--white);}
.books-intro{
  font-size:0.97rem;color:rgba(255,255,255,0.45);
  max-width:560px;margin-bottom:4rem;
}
.books-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:2px;align-items:stretch;}
.book-feature{display:flex;flex-direction:column;
  position:relative;overflow:hidden;
  padding:4rem 3.5rem;
  background:rgba(255,255,255,0.02);
  border:1px solid rgba(255,255,255,0.05);
  transition:background 0.3s;
  cursor:pointer;
}
.book-feature:hover{background:rgba(184,134,11,0.05);}
.book-feature-num{
  font-family:'EB Garamond',serif;
  font-size:6rem;font-weight:400;
  color:rgba(255,255,255,0.04);
  line-height:1;position:absolute;
  top:2rem;right:2.5rem;
  pointer-events:none;user-select:none;
}
.book-feature-grid{flex:1;align-items:start;
  display:grid;grid-template-columns:160px 1fr;
  gap:2.5rem;align-items:start;position:relative;z-index:1;
}
.book-cover-wrap{
  perspective:1000px;
}
.book-cover-img{
  width:100%;display:block;border-radius:2px;
  box-shadow:0 18px 40px rgba(0,0,0,0.45),0 2px 8px rgba(0,0,0,0.3);
  transition:transform 0.5s cubic-bezier(.16,1,.3,1),box-shadow 0.5s;
  transform:rotateY(0deg);
}
.book-feature:hover .book-cover-img{
  transform:rotateY(-8deg) scale(1.03);
  box-shadow:0 28px 56px rgba(0,0,0,0.55),0 4px 12px rgba(0,0,0,0.35);
}
.book-genre{
  font-size:0.65rem;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--gold);margin-bottom:1.25rem;
  display:flex;align-items:center;gap:0.5rem;
}
.book-genre::before{content:'';width:20px;height:1px;background:var(--gold);}
.book-feature-title{
  font-family:'EB Garamond',serif;
  font-size:clamp(1.4rem,2.2vw,2.1rem);
  font-weight:400;color:var(--white);
  line-height:1.2;margin-bottom:0.75rem;
}
.book-title-link{color:inherit;text-decoration:none;transition:color 0.2s;background-image:linear-gradient(var(--gold-bright),var(--gold-bright));background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;}
.book-title-link:hover{color:var(--gold-bright);background-size:100% 1px;}
.book-feature-author{
  font-size:0.8rem;letter-spacing:0.1em;
  color:rgba(255,255,255,0.35);
  margin-bottom:2rem;
}
.book-feature-desc{
  font-size:0.9rem;color:rgba(255,255,255,0.5);
  line-height:1.75;margin-bottom:2.5rem;
  max-width:420px;
}
.book-divider{
  width:40px;height:1px;
  background:rgba(184,134,11,0.4);
  margin-bottom:2rem;
}
.book-buy-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:auto;padding-top:1.75rem;}
.btn-amazon-dark{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:#FF9900;color:#111;
  text-decoration:none;font-size:0.78rem;font-weight:500;
  padding:0.75rem 1.5rem;letter-spacing:0.06em;text-transform:uppercase;
  border-radius:1px;transition:background 0.2s;
}
.btn-amazon-dark:hover{background:#f0a800;}
.btn-signed-copy{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:transparent;color:var(--gold-bright);
  text-decoration:none;font-size:0.78rem;font-weight:500;
  padding:0.74rem 1.4rem;letter-spacing:0.06em;text-transform:uppercase;
  border-radius:1px;border:1px solid var(--gold-bright);
  transition:background 0.2s,color 0.2s;
}
.btn-signed-copy:hover{background:var(--gold-bright);color:var(--ink);}
.btn-read-more{
  display:inline-flex;align-items:center;gap:0.5rem;
  color:rgba(255,255,255,0.4);text-decoration:none;
  font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,0.15);
  padding-bottom:2px;transition:color 0.2s,border-color 0.2s;
}
.btn-read-more:hover{color:var(--white);border-color:rgba(255,255,255,0.5);}
/* ── EVENTS ── */
#events{
  padding:8rem 3rem;
  background:var(--cream-dark);
}
.events-inner{max-width:1240px;margin:0 auto;}
.events-top{
  display:grid;grid-template-columns:1fr 1fr;
  gap:6rem;align-items:end;margin-bottom:4rem;
}
.events-desc{font-size:0.97rem;color:var(--ink-soft);max-width:500px;line-height:1.8;}
.events-stat-row{
  display:flex;gap:2.5rem;justify-content:flex-end;
  padding-bottom:2rem;
  border-bottom:1px solid var(--border);
}
.events-stat-num{
  font-family:'EB Garamond',serif;
  font-size:2.8rem;font-weight:400;color:var(--gold);
  line-height:1;
}
.events-stat-label{
  font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:0.25rem;
}
.events-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.event-card{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:2px;overflow:hidden;
  transition:transform 0.25s,box-shadow 0.25s,border-color 0.25s;
}
.event-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 48px rgba(22,32,46,0.1);
  border-color:var(--border-gold);
}
.event-card-top{
  background:var(--ink);
  padding:2rem 1.75rem 1.5rem;
  position:relative;overflow:hidden;
}
.event-card-top::after{
  content:'';position:absolute;
  bottom:0;left:0;right:0;
  height:2px;background:var(--gold);
}
.event-icon-wrap{
  width:44px;height:44px;
  background:rgba(184,134,11,0.12);
  border:1px solid var(--border-gold);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1rem;
  color:var(--gold-bright);
}
.event-icon-wrap svg{width:20px;height:20px;}
.event-card-title{
  font-family:'EB Garamond',serif;
  font-size:1.15rem;font-weight:500;color:var(--white);
}
.event-card-body{padding:1.75rem;}
.event-card-body p{font-size:0.875rem;color:var(--ink-soft);margin-bottom:1.5rem;line-height:1.75;}
.btn-outline-ink{
  display:inline-flex;align-items:center;gap:0.4rem;
  border:1px solid var(--ink);color:var(--ink);
  text-decoration:none;font-size:0.75rem;font-weight:500;
  padding:0.55rem 1.1rem;letter-spacing:0.1em;text-transform:uppercase;
  border-radius:1px;transition:background 0.2s,color 0.2s;
}
.btn-outline-ink:hover{background:var(--ink);color:var(--white);}
/* ── FAQ ── */
#faq{padding:8rem 3rem;background:var(--cream);}
.faq-inner{max-width:900px;margin:0 auto;}
.faq-list{margin-top:3rem;}
.faq-item{border-top:1px solid var(--border);overflow:hidden;}
.faq-item:last-child{border-bottom:1px solid var(--border);}
.faq-trigger{
  width:100%;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.5rem 0;text-align:left;gap:1rem;
}
.faq-q{
  font-family:'EB Garamond',serif;
  font-size:1.2rem;font-weight:400;color:var(--ink);
  transition:color 0.2s;
}
.faq-trigger:hover .faq-q{color:var(--gold);}
.faq-icon{
  flex-shrink:0;width:28px;height:28px;
  border:1px solid var(--border);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.9rem;color:var(--ink-soft);
  transition:background 0.2s,border-color 0.2s,transform 0.3s;
}
.faq-item.open .faq-icon{background:var(--gold);color:var(--white);border-color:var(--gold);transform:rotate(45deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease;}
.faq-answer-inner{
  padding:0 0 1.5rem;
  font-size:0.95rem;color:var(--ink-soft);
  line-height:1.8;max-width:720px;
}
.faq-item.open .faq-answer{max-height:400px;}
/* FAQ teaser (homepage) */
.faq-teaser-section{padding:7rem 3rem;background:var(--cream);text-align:center;}
.faq-teaser-inner{max-width:600px;margin:0 auto;}
.faq-teaser-p{font-size:0.97rem;color:var(--ink-soft);line-height:1.8;margin:1.5rem 0 2.25rem;}
/* Contact teaser (homepage) */
.contact-teaser-section{padding:7rem 3rem;background:var(--ink);position:relative;overflow:hidden;text-align:center;}
.contact-teaser-inner{max-width:600px;margin:0 auto;position:relative;z-index:1;}
.contact-teaser-p{font-size:0.97rem;color:rgba(255,255,255,0.5);line-height:1.8;margin:1.5rem 0 2.25rem;}
/* ── CONTACT ── */
#contact{padding:8rem 3rem;background:var(--ink);position:relative;overflow:hidden;}
.contact-bg-text{
  position:absolute;bottom:-4rem;right:-2rem;
  font-family:'EB Garamond',serif;
  font-size:20vw;font-weight:400;
  color:rgba(255,255,255,0.02);
  pointer-events:none;user-select:none;line-height:1;
}
.contact-inner{max-width:1240px;margin:0 auto;position:relative;z-index:1;}
#contact .eyebrow{color:var(--gold);}
#contact h2.section-title{color:var(--white);}
.contact-layout{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:6rem;margin-top:3.5rem;align-items:start;
}
.contact-left p{
  font-size:0.97rem;color:rgba(255,255,255,0.5);
  line-height:1.8;margin-bottom:2.5rem;max-width:400px;
}
.contact-details{display:flex;flex-direction:column;gap:0.85rem;}
.cdetail{
  display:flex;align-items:center;gap:0.875rem;
  font-size:0.875rem;color:rgba(255,255,255,0.6);
}
.cdetail-icon{
  width:32px;height:32px;
  border:1px solid rgba(184,134,11,0.3);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--gold);
}
.cdetail-icon svg{width:15px;height:15px;}
.contact-note{
  margin-top:3rem;padding:1.25rem 1.5rem;
  background:rgba(184,134,11,0.06);
  border-left:2px solid var(--gold);
  font-size:0.82rem;color:rgba(255,255,255,0.4);line-height:1.65;
}
.contact-note strong{color:rgba(255,255,255,0.6);font-weight:500;}
.contact-form{display:flex;flex-direction:column;gap:1.25rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.fg{display:flex;flex-direction:column;gap:0.4rem;}
.fg label{font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.35);}
.fg input,.fg select,.fg textarea{
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:1px;padding:0.875rem 1rem;
  color:var(--white);font-family:'Jost',sans-serif;font-size:0.9rem;
  outline:none;transition:border-color 0.2s,background 0.2s;
  width:100%;-webkit-appearance:none;
}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--gold);background:rgba(184,134,11,0.04);}
.fg textarea{resize:vertical;min-height:120px;}
.fg select option{background:#16202e;}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,0.2);}
.btn-submit{
  align-self:flex-start;
  background:var(--gold);color:var(--white);
  border:none;font-family:'Jost',sans-serif;
  font-size:0.78rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  padding:1rem 2.5rem;border-radius:1px;cursor:pointer;
  transition:background 0.2s,transform 0.2s;
  display:flex;align-items:center;gap:0.6rem;
}
.btn-submit:hover{background:var(--gold-bright);transform:translateY(-1px);}
.btn-submit svg{width:14px;height:14px;}
/* ── FOOTER ── */
footer{background:#0d1624;padding:4rem 3rem 2rem;position:relative;overflow:hidden;}
.footer-inner{max-width:1240px;margin:0 auto;}
.footer-top{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:3rem;margin-bottom:4rem;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.footer-brand-name{font-family:'EB Garamond',serif;font-size:1.6rem;color:var(--white);margin-bottom:0.5rem;display:block;}
.footer-brand-tag{font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.3);margin-bottom:1.25rem;}
.footer-brand-p{font-size:0.82rem;color:rgba(255,255,255,0.3);line-height:1.7;}
.footer-col h4{font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem;}
.footer-col ul{list-style:none;}
.footer-col li{margin-bottom:0.6rem;}
.footer-col a{font-size:0.82rem;color:rgba(255,255,255,0.4);text-decoration:none;transition:color 0.2s;}
.footer-col a:hover{color:var(--gold);}
.footer-col-note{font-size:0.78rem;color:rgba(255,255,255,0.28);line-height:1.6;margin-top:1rem;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;font-size:0.75rem;color:rgba(255,255,255,0.2);flex-wrap:wrap;gap:0.5rem;}
.footer-bottom a{color:var(--gold);text-decoration:none;}
.seo-tags{font-size:0.65rem;color:rgba(255,255,255,0.1);line-height:1.6;margin-top:0.5rem;}
/* ── ANIMATIONS ── */
.js-anim .reveal{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease,transform 0.7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:0.1s;}
.reveal-delay-2{transition-delay:0.2s;}
.reveal-delay-3{transition-delay:0.3s;}
/* ══ HERO (video + showcase) ══════════════════════════════ */
.hero{
  position:relative;overflow:hidden;background:var(--ink);
  min-height:min(100svh,860px);
  display:flex;align-items:center;
  padding:clamp(7rem,12vh,9rem) clamp(1.25rem,5vw,3rem) clamp(3.5rem,8vh,5rem);
}
.hero-media{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero-video{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:.94;
  filter:saturate(1.08) contrast(1.16) brightness(1.02);
  transform:scale(1.04);
  animation:heroDrift 26s ease-in-out infinite alternate;
}
@keyframes heroDrift{from{transform:scale(1.04) translate3d(0,0,0);}to{transform:scale(1.12) translate3d(-1.5%,-1%,0);}}
.hero-media-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(9,14,24,.95) 0%, rgba(9,14,24,.90) 26%, rgba(9,14,24,.62) 48%, rgba(9,14,24,.18) 72%, rgba(9,14,24,.42) 100%),
    linear-gradient(180deg, rgba(9,14,24,.80) 0%, rgba(9,14,24,.06) 34%, rgba(9,14,24,.10) 62%, rgba(9,14,24,.86) 100%);
}
/* Readability guard: a soft scrim only behind the copy column */
.hero-copy{position:relative;}
.hero-copy::before{
  content:'';position:absolute;inset:-2rem -3rem -2rem -3rem;z-index:-1;
  background:radial-gradient(70% 60% at 30% 50%, rgba(9,14,24,.72) 0%, rgba(9,14,24,.34) 55%, transparent 100%);
  pointer-events:none;
}
.hero-inner{
  position:relative;z-index:2;width:100%;max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:clamp(2rem,5vw,5rem);align-items:center;
}
.hero-copy{min-width:0;}
/* Name rotator */




.hero-name-rotator .hn.is-active{opacity:1;transform:translateY(0);}
.hero-name-rotator .hn.is-out{opacity:0;transform:translateY(-.7em);}
h1.hero-title{
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(2.4rem,6.2vw,5.2rem);
  font-weight:400;color:#fff;line-height:1.04;letter-spacing:-.015em;
  margin-bottom:1.5rem;text-wrap:balance;
  animation:heroFade .9s .18s both;
}
h1.hero-title em{font-style:italic;color:var(--gold-bright);}
.hero-sub{
  font-size:clamp(.95rem,1.15vw,1.05rem);font-weight:300;
  color:rgba(255,255,255,.68);max-width:52ch;line-height:1.8;
  margin-bottom:2.25rem;animation:heroFade .9s .26s both;
}
.hero-actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;animation:heroFade .9s .34s both;}
/* At-a-glance strip */
.hero-meta{
  list-style:none;display:flex;gap:clamp(1.25rem,3vw,2.75rem);flex-wrap:wrap;
  margin-top:2.75rem;padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.10);
  animation:heroFade .9s .42s both;
}
.hero-meta li{display:flex;flex-direction:column;gap:.15rem;}
.hero-meta strong{
  font-family:'EB Garamond',Georgia,serif;font-size:1.35rem;font-weight:500;
  color:var(--gold-bright);line-height:1;
}
.hero-meta span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.72);}
/* Floating book showcase */
.hero-showcase{
  position:relative;min-height:clamp(300px,42vw,460px);
  display:flex;align-items:center;justify-content:center;
  animation:heroFade 1s .3s both;
}
.hero-card{
  position:absolute;display:block;text-decoration:none;border-radius:3px;
  transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s;
  will-change:transform;
}
.hero-card img{width:100%;height:auto;display:block;border-radius:3px;}
.hero-card-1{
  width:clamp(160px,20vw,244px);z-index:2;
  transform:rotate(-4deg) translateY(-4%);
  box-shadow:0 28px 60px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.4);
  animation:floatA 7s ease-in-out infinite;
}
.hero-card-2{
  width:clamp(136px,16.5vw,202px);z-index:1;
  transform:rotate(7deg) translate(58%,16%);
  box-shadow:0 22px 48px rgba(0,0,0,.5);
  animation:floatB 8.5s ease-in-out infinite;
}
.hero-card:hover{z-index:5;}
.hero-card-1:hover{transform:rotate(-2deg) translateY(-9%) scale(1.045);}
.hero-card-2:hover{transform:rotate(4deg) translate(58%,10%) scale(1.045);}
.hero-card-label{
  position:absolute;left:0;right:0;bottom:-1.9rem;text-align:center;
  font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.4);opacity:0;transition:opacity .35s;
}
.hero-card:hover .hero-card-label{opacity:1;}
@keyframes floatA{0%,100%{transform:rotate(-4deg) translateY(-4%);}50%{transform:rotate(-4deg) translateY(-8%);}}
@keyframes floatB{0%,100%{transform:rotate(7deg) translate(58%,16%);}50%{transform:rotate(7deg) translate(58%,11%);}}
@keyframes heroFade{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
/* ── PAGE HERO (sub-pages) ── */
.page-hero{
  background:var(--ink);
  padding:11rem 3rem 5rem;
  position:relative;overflow:hidden;
}
.page-hero-bg-text{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'EB Garamond',serif;
  font-size:clamp(10vw,14vw,18vw);font-weight:500;
  color:rgba(255,255,255,0.025);white-space:nowrap;
  pointer-events:none;user-select:none;letter-spacing:-0.03em;line-height:1;
}
.page-hero-inner{max-width:1240px;margin:0 auto;position:relative;z-index:1;}
.page-breadcrumb{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(255,255,255,0.35);margin-bottom:1.5rem;
}
.page-breadcrumb a{color:rgba(255,255,255,0.35);text-decoration:none;transition:color 0.2s;}
.page-breadcrumb a:hover{color:var(--gold-bright);}
.page-hero-title{
  font-family:'EB Garamond',serif;
  font-size:clamp(2.4rem,5vw,4.2rem);
  font-weight:400;color:var(--white);
  line-height:1.08;letter-spacing:-0.01em;
  max-width:780px;
}
.page-hero-title em{font-style:italic;color:var(--gold-bright);}
.page-hero-sub{
  font-size:1rem;font-weight:300;color:rgba(255,255,255,0.5);
  max-width:560px;margin-top:1.5rem;line-height:1.8;
}
/* ── CTA BANNER (sub-pages, reused) ── */
.cta-banner{
  padding:6rem 3rem;background:var(--gold-pale);text-align:center;
}
.cta-banner-inner{max-width:600px;margin:0 auto;}
.cta-banner-p{font-size:0.97rem;color:var(--ink-soft);line-height:1.8;margin:1.25rem 0 2rem;}
.cta-banner-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.form-status{font-size:0.85rem;line-height:1.6;min-height:1.2em;}
.form-status.success{color:#7fd99a;}
.form-status.error{color:#e08a8a;}
.contact-note a{text-decoration:underline;text-underline-offset:2px;}
/* ── BOOK DETAIL PAGE ── */
.book-hero{
  background:var(--ink);
  padding:11rem 3rem 6rem;
  position:relative;overflow:hidden;
}
.book-hero-bg-text{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:'EB Garamond',serif;
  font-size:clamp(8vw,12vw,16vw);font-weight:500;
  color:rgba(255,255,255,0.025);white-space:nowrap;
  pointer-events:none;user-select:none;letter-spacing:-0.03em;line-height:1;
}
.book-hero-inner{
  max-width:1240px;margin:0 auto;position:relative;z-index:1;
  display:grid;grid-template-columns:340px 1fr;gap:5rem;align-items:start;
}
.book-hero-cover{
  perspective:1200px;
}
.book-hero-cover-img{
  width:100%;display:block;border-radius:3px;
  box-shadow:0 30px 70px rgba(0,0,0,0.5),0 6px 16px rgba(0,0,0,0.35);
  animation:bookFloat 5s ease-in-out infinite;
}
@keyframes bookFloat{
  0%,100%{transform:translateY(0) rotateY(-3deg);}
  50%{transform:translateY(-14px) rotateY(-3deg);}
}
.book-hero-text{display:flex;flex-direction:column;gap:.25rem;padding-top:.5rem;min-width:0;}
.book-hero-title{
  font-family:'EB Garamond',serif;
  font-size:clamp(2.2rem,4.4vw,3.6rem);
  font-weight:400;color:var(--white);
  line-height:1.08;letter-spacing:-0.01em;
  margin-bottom:1rem;
}
.book-hero-author{
  font-size:0.85rem;letter-spacing:0.12em;text-transform:uppercase;
  color:rgba(255,255,255,0.4);margin-bottom:1.75rem;
}
.book-hero-desc{
  font-size:1.02rem;color:rgba(255,255,255,0.6);
  line-height:1.85;max-width:560px;margin-bottom:2.25rem;
}
.book-hero-buy{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem;}
.book-hero-meta{display:flex;gap:2rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,0.08);padding-top:1.5rem;}
.book-meta-item{display:flex;flex-direction:column;gap:0.3rem;}
.book-meta-label{font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.3);}
.book-meta-value{font-size:0.88rem;color:rgba(255,255,255,0.7);}
/* Content sections */
.book-content-section{padding:6rem 3rem;background:var(--cream);}
.book-content-inner{max-width:900px;margin:0 auto;}
.book-content-inner p{font-size:0.98rem;color:var(--ink-soft);line-height:1.85;margin-bottom:1.25rem;}
.book-pullquote{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:clamp(1.2rem,2vw,1.6rem);color:var(--ink);
  border-left:3px solid var(--gold);padding-left:1.75rem;
  margin:2.5rem 0;line-height:1.6;
}
.book-pullquote em{color:var(--gold);}
/* Highlights grid */
.book-highlights{padding:6rem 3rem;background:var(--cream-dark);}
.book-highlights-inner{max-width:1100px;margin:0 auto;}
.highlights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.75rem;margin-top:3rem;align-items:stretch;}
.highlight-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:2px;padding:2.25rem;
  transition:transform 0.3s,box-shadow 0.3s;
}
.highlight-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(22,32,46,0.08);}
.highlight-icon{
  width:42px;height:42px;border-radius:50%;
  background:var(--gold-pale);border:1px solid var(--border-gold);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);margin-bottom:1.25rem;
}
.highlight-icon svg{width:19px;height:19px;}
.highlight-card h4{font-family:'EB Garamond',serif;font-size:1.1rem;font-weight:500;color:var(--ink);margin-bottom:0.6rem;}
.highlight-card p{font-size:0.86rem;color:var(--ink-soft);line-height:1.7;}
/* ── ORDER / CHECKOUT PAGE ── */
.order-hero{
  background:var(--ink);padding:9.5rem 3rem 3.5rem;
  position:relative;overflow:hidden;
}
.order-hero-inner{max-width:900px;margin:0 auto;position:relative;z-index:1;text-align:center;}
.order-hero .page-breadcrumb{justify-content:center;}
.order-hero h1{
  font-family:'EB Garamond',serif;font-size:clamp(2rem,4vw,3rem);
  font-weight:400;color:var(--white);line-height:1.1;margin-top:1rem;
}
.order-hero h1 em{color:var(--gold-bright);font-style:italic;}
.order-hero p{font-size:0.95rem;color:rgba(255,255,255,0.5);margin-top:1rem;max-width:560px;margin-left:auto;margin-right:auto;line-height:1.7;}
.order-section{padding:5rem 3rem 7rem;background:var(--cream);}
.order-layout{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 360px;gap:3rem;align-items:start;
}
.order-form-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:3px;padding:3rem;
}
.order-form-section-title{
  font-family:'EB Garamond',serif;font-size:1.3rem;color:var(--ink);
  margin-bottom:1.5rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border);
}
.order-form-section-title:not(:first-child){margin-top:2.5rem;}
.ofg{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1.25rem;}
.ofg label{font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);}
.ofg label .req{color:var(--gold);}
.ofg input,.ofg select{
  background:var(--cream);border:1px solid var(--border);
  border-radius:2px;padding:0.85rem 1rem;
  color:var(--ink);font-family:'Jost',sans-serif;font-size:0.92rem;
  outline:none;transition:border-color 0.2s,background 0.2s;width:100%;
}
.ofg input:focus,.ofg select:focus{border-color:var(--gold);background:var(--white);}
.order-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.order-row-3{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.25rem;}
/* Book selector cards (grid defined once, further down) */
.book-select-card{
  position:relative;border:1.5px solid var(--border);border-radius:2px;
  padding:1rem;cursor:pointer;display:flex;gap:0.85rem;align-items:center;
  transition:border-color 0.2s,background 0.2s;
}
.book-select-card:hover{border-color:var(--border-gold);}
.book-select-card.selected{border-color:var(--gold);background:var(--gold-pale);}
.book-select-card img{width:46px;height:auto;flex-shrink:0;aspect-ratio:var(--ratio-cover);
  object-fit:cover;object-position:center top;border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,.2);}
.book-select-card .bsc-info{display:flex;flex-direction:column;gap:0.15rem;}
.book-select-card .bsc-title{font-size:0.82rem;font-weight:500;color:var(--ink);line-height:1.3;}
.book-select-card .bsc-price{font-size:0.76rem;color:var(--gold-text,#7a5407);}
.book-select-card input[type="radio"]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.book-select-card::after{
  content:'';position:absolute;top:.55rem;right:.6rem;width:19px;height:19px;
  border:1.5px solid var(--border);border-radius:50%;background:var(--white);
  transition:background var(--dur-fast),border-color var(--dur-fast);
}
.book-select-card.selected::after{
  content:'\2713';background:var(--gold);border-color:var(--gold);color:#fff;
  font-size:.66rem;line-height:19px;text-align:center;
}
.book-select-card input[type="radio"]:focus-visible ~ .bsc-info,
.book-select-card:has(input:focus-visible){outline:2px solid var(--gold-bright);outline-offset:2px;}
/* Quantity stepper */
.qty-add-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.qty-add-row .btn-gold{flex:0 1 auto;}
.qty-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:2px;width:fit-content;min-height:48px;background:var(--cream);}
.qty-btn{
  width:40px;height:42px;background:none;border:none;cursor:pointer;
  font-size:1.1rem;color:var(--ink);transition:background 0.2s;
}
.qty-btn:hover{background:var(--gold-pale);}
.qty-stepper input{
  width:52px;text-align:center;border:none;background:none;
  font-size:0.95rem;color:var(--ink);outline:none;padding:0;
}
/* Payment method */
.pay-method-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.pay-method-card{
  border:1.5px solid var(--border);border-radius:2px;
  padding:1.1rem;cursor:pointer;display:flex;align-items:center;gap:0.75rem;
  transition:border-color 0.2s,background 0.2s;
}
.pay-method-card:hover{border-color:var(--border-gold);}
.pay-method-card.selected{border-color:var(--gold);background:var(--gold-pale);}
.pay-method-card svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;}
.pay-method-card span{font-size:0.85rem;color:var(--ink);font-weight:500;}
.pay-method-card input[type="radio"]{margin-left:auto;accent-color:var(--gold);}
.order-submit-btn{
  width:100%;margin-top:2rem;
  background:var(--gold);color:var(--white);border:none;
  font-family:'Jost',sans-serif;font-size:0.85rem;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  padding:1.15rem;border-radius:2px;cursor:pointer;
  transition:background 0.2s,transform 0.2s;
  display:flex;align-items:center;justify-content:center;gap:0.6rem;
}
.order-submit-btn:hover{background:var(--gold-bright);transform:translateY(-1px);}
.order-submit-btn:disabled{opacity:0.6;cursor:not-allowed;transform:none;}
/* Order summary sidebar */
.order-summary{
  background:var(--ink);border-radius:3px;padding:2.25rem;
  position:sticky;top:100px;
}
.order-summary h3{font-family:'EB Garamond',serif;font-size:1.2rem;color:var(--white);margin-bottom:1.5rem;}
.summary-row{display:flex;justify-content:space-between;gap:1rem;font-size:0.86rem;color:rgba(255,255,255,0.6);padding:0.7rem 0;border-bottom:1px solid rgba(255,255,255,0.08);}
.summary-row.total{color:var(--white);font-weight:500;font-size:1rem;border-bottom:none;padding-top:1.1rem;}
.summary-row .sr-val{color:var(--white);}
.summary-row.stacked{flex-direction:column;gap:0.4rem;}
.summary-row.stacked .sr-val{text-align:left;line-height:1.5;}
.summary-note{font-size:0.78rem;color:rgba(255,255,255,0.35);line-height:1.7;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,0.08);}
/* Success state */
.order-success{
  grid-column:1/-1;
  display:none;text-align:center;padding:5rem 2rem;
  max-width:560px;margin:0 auto;
}
.order-success.show{display:block;}
.order-success-icon{
  width:72px;height:72px;border-radius:50%;
  background:var(--gold-pale);border:2px solid var(--gold);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.75rem;color:var(--gold);
}
.order-success-icon svg{width:34px;height:34px;}
.order-success h2{font-family:'EB Garamond',serif;font-size:1.9rem;color:var(--ink);margin-bottom:1rem;}
.order-success p{font-size:0.98rem;color:var(--ink-soft);line-height:1.8;margin-bottom:0.75rem;}
.order-form-wrap.hide{display:none;}
/* ── PUBLISHER PAGE ── */
#publisher{padding:7rem 3rem;background:var(--cream);}
.publisher-layout{
  display:grid;grid-template-columns:1.4fr 1fr;
  gap:5rem;align-items:start;
}
.publisher-aside{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:100px;}
.publisher-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:2px;padding:2rem;
}
.publisher-list{list-style:none;display:flex;flex-direction:column;gap:0.75rem;}
.publisher-list li{
  font-size:0.9rem;color:var(--ink-soft);
  padding-left:1.25rem;position:relative;line-height:1.6;
}
.publisher-list li::before{
  content:'';position:absolute;left:0;top:0.55em;
  width:6px;height:6px;background:var(--gold);border-radius:50%;
}
/* ── EVENTS & BOOKINGS PAGE ── */
.events-hero-stats{
  display:flex;gap:2.5rem;flex-wrap:wrap;margin-top:2rem;
}
.ehs-item{display:flex;flex-direction:column;gap:0.3rem;}
.ehs-num{font-family:'EB Garamond',serif;font-size:2.2rem;color:var(--gold-bright);line-height:1;}
.ehs-label{font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.4);}
#events-detail{padding:7rem 3rem;background:var(--cream);}
.events-detail-inner{max-width:1240px;margin:0 auto;}
.event-types-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.75rem;margin-top:3rem;align-items:stretch;}
.event-type-card{
  background:var(--white);border:1px solid var(--border);
  border-radius:3px;overflow:hidden;
  transition:transform 0.3s,box-shadow 0.3s,border-color 0.3s;
}
.event-type-card:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(22,32,46,0.1);border-color:var(--border-gold);}
.etc-top{background:var(--ink);padding:2.25rem 1.75rem 1.5rem;position:relative;}
.etc-top::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--gold);}
.etc-icon{
  width:48px;height:48px;border-radius:50%;
  background:rgba(184,134,11,0.12);border:1px solid var(--border-gold);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-bright);margin-bottom:1.1rem;
}
.etc-icon svg{width:22px;height:22px;}
.etc-title{font-family:'EB Garamond',serif;font-size:1.25rem;color:var(--white);margin-bottom:0.3rem;}
.etc-subtitle{font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.35);}
.etc-body{padding:1.75rem;}
.etc-body p{font-size:0.88rem;color:var(--ink-soft);line-height:1.75;margin-bottom:1.25rem;}
.etc-list{list-style:none;margin-bottom:1.5rem;}
.etc-list li{
  font-size:0.82rem;color:var(--ink-soft);
  padding-left:1.1rem;position:relative;margin-bottom:0.5rem;line-height:1.5;
}
.etc-list li::before{content:'';position:absolute;left:0;top:0.5em;width:5px;height:5px;background:var(--gold);border-radius:50%;}
/* How it works */
#how-it-works{padding:7rem 3rem;background:var(--cream-dark);}
.hiw-inner{max-width:1000px;margin:0 auto;}
.hiw-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:3rem;}
.hiw-step{position:relative;padding-top:1rem;}
.hiw-num{
  font-family:'EB Garamond',serif;font-size:2.5rem;color:var(--gold);
  opacity:0.35;line-height:1;margin-bottom:0.75rem;
}
.hiw-step h4{font-size:0.95rem;font-weight:500;color:var(--ink);margin-bottom:0.5rem;}
.hiw-step p{font-size:0.82rem;color:var(--ink-soft);line-height:1.65;}
/* Booking form section */
#booking-form{padding:7rem 3rem;background:var(--ink);position:relative;overflow:hidden;}
.booking-bg-text{
  position:absolute;bottom:-3rem;left:-2rem;
  font-family:'EB Garamond',serif;font-size:18vw;font-weight:400;
  color:rgba(255,255,255,0.02);pointer-events:none;user-select:none;line-height:1;
}
.booking-inner{max-width:1240px;margin:0 auto;position:relative;z-index:1;}
.booking-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:5rem;margin-top:3rem;align-items:start;}
.booking-left p{font-size:0.97rem;color:rgba(255,255,255,0.5);line-height:1.8;margin-bottom:2rem;max-width:420px;}
.booking-trust{display:flex;flex-direction:column;gap:1.1rem;}
.bt-item{display:flex;align-items:flex-start;gap:0.85rem;}
.bt-icon{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:rgba(184,134,11,0.1);border:1px solid rgba(184,134,11,0.3);
  display:flex;align-items:center;justify-content:center;color:var(--gold);
}
.bt-icon svg{width:15px;height:15px;}
.bt-text{font-size:0.85rem;color:rgba(255,255,255,0.55);line-height:1.6;padding-top:0.4rem;}
.bt-text strong{color:rgba(255,255,255,0.85);font-weight:500;}
.booking-form-card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:4px;padding:2.5rem;}
.booking-form{display:flex;flex-direction:column;gap:1.25rem;}
.bf-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;}
.bf-row-3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1.25rem;}

/* ══ RESPONSIVE (widest → narrowest) ══ */
/* ── CURSOR (desktop only) ── */
@media(pointer:fine){
  .cursor{
    position:fixed;width:10px;height:10px;
    background:var(--gold);border-radius:50%;
    pointer-events:none;z-index:9999;
    transform:translate(-50%,-50%);
    transition:transform 0.1s,width 0.25s,height 0.25s,opacity 0.25s;
    mix-blend-mode:multiply;
  }
  .cursor-ring{
    position:fixed;width:36px;height:36px;
    border:1px solid var(--gold);border-radius:50%;
    pointer-events:none;z-index:9998;
    transform:translate(-50%,-50%);
    transition:transform 0.18s ease,width 0.3s,height 0.3s,opacity 0.3s;
    opacity:0.5;
  }
}
/* ── RESPONSIVE ── */
@media(pointer:coarse){
  .cursor,.cursor-ring{display:none;}
}
/* ══ RESPONSIVE (widest → narrowest) ══ */
@media(prefers-reduced-motion:reduce){
  .htw-cursor{display:none;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
}
@media(prefers-reduced-motion:reduce){
  .book-hero-cover-img{animation:none;}
}
@media(prefers-reduced-motion:reduce){
  .hero-video{animation:none;}
  .hero-card-1,.hero-card-2{animation:none;}
  .hero-namebar,h1.hero-title,.hero-sub,.hero-actions,.hero-meta,.hero-showcase{animation:none;}
}
/* ── RESPONSIVE ── */

/* Tablet */
@media(max-width:1024px){
  nav#mainNav{padding:0 1.5rem;}
  .hero,.pullquote-section,#about,#books,#events,#faq,#contact{padding-left:2rem;padding-right:2rem;}
  footer{padding-left:2rem;padding-right:2rem;}
  .about-layout{grid-template-columns:260px 1fr;gap:3rem;}
  .hero-books-sidebar{display:none;}
  .events-top{gap:3rem;}
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem;}
}
/* ── HERO RESPONSIVE ── */
@media(max-width:1024px){
  .hero{min-height:auto;padding-top:8rem;}
  .hero-inner{grid-template-columns:1fr;gap:3.5rem;}
  .hero-showcase{min-height:340px;order:2;}
  .hero-books-sidebar{display:none;}
  .hero-card-2{transform:rotate(7deg) translate(54%,14%);}
}
@media(max-width:1024px){
  .book-hero-inner{grid-template-columns:260px 1fr;gap:3rem;}
  .highlights-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:1024px){
  .publisher-layout{grid-template-columns:1fr;gap:3rem;}
  .publisher-aside{position:static;}
}
@media(max-width:1024px){
  .event-types-grid{grid-template-columns:1fr 1fr;}
  .hiw-steps{grid-template-columns:1fr 1fr;}
  .booking-layout{grid-template-columns:1fr;gap:3rem;}
}
@media(max-width:900px){
  .order-layout{grid-template-columns:1fr;}
  .order-summary{position:static;}
}
/* ── PAGE-SPECIFIC STYLES (merged from inline) ── */


/* Mobile */
@media(max-width:768px){
  html{font-size:15px;}

  /* Nav */
  nav#mainNav{padding:0 1.25rem;height:60px;}
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}

  /* Hero */
  .hero{padding:0 1.25rem 4.5rem;min-height:100svh;}
  .hero-inner{grid-template-columns:1fr;gap:0;}
  .hero-books-sidebar,.hero-rule,.hero-rule2{display:none;}
  h1.hero-title{font-size:clamp(2.5rem,9vw,3.8rem);margin-bottom:1.25rem;}
  .hero-sub{font-size:0.9rem;margin-bottom:1.75rem;}
  .hero-kicker{margin-bottom:1.25rem;}
  .hero-actions{flex-direction:column;align-items:stretch;gap:0.875rem;}
  .btn-gold{justify-content:center;}
  .btn-ghost-white{justify-content:center;text-align:center;}

  /* Pull Quote */
  .pullquote-section{padding:4rem 1.25rem;}
  .pullquote-section::before{font-size:10rem;top:0;left:0.5rem;}

  /* About */
  #about{padding:4.5rem 1.25rem;}
  .about-layout{grid-template-columns:1fr;gap:2.5rem;}
  .about-portrait{position:static;}
  .facts-grid{grid-template-columns:1fr;}
  .about-lead{font-size:1.05rem;}
  .timeline-year{min-width:64px;font-size:0.78rem;}

  /* Books */
  #books{padding:4.5rem 1.25rem;}
  .books-layout{grid-template-columns:1fr;gap:2px;}
  .book-feature{padding:2.5rem 1.5rem;}
  .book-feature-num{font-size:4rem;top:1.5rem;right:1.5rem;}
  .book-feature-desc{max-width:100%;}
  .book-feature-grid{grid-template-columns:1fr;gap:1.75rem;}
  .book-cover-wrap{max-width:180px;margin:0 auto;}

  /* Events */
  #events{padding:4.5rem 1.25rem;}
  .events-top{grid-template-columns:1fr;gap:2rem;margin-bottom:2.5rem;}
  .events-stat-row{justify-content:flex-start;gap:1.75rem;}
  .events-cards{grid-template-columns:1fr;gap:1.25rem;}

  /* FAQ */
  #faq{padding:4.5rem 1.25rem;}
  .faq-q{font-size:1.05rem;}
  .faq-trigger{padding:1.25rem 0;}
  .faq-teaser-section{padding:4.5rem 1.25rem;}

  /* Contact */
  #contact{padding:4.5rem 1.25rem;}
  .contact-layout{grid-template-columns:1fr;gap:2.5rem;}
  .contact-left p{max-width:100%;}
  .form-row{grid-template-columns:1fr;}
  .contact-teaser-section{padding:4.5rem 1.25rem;}
  .btn-submit{width:100%;justify-content:center;}
  .contact-bg-text{font-size:28vw;}

  /* Footer */
  footer{padding:3rem 1.25rem 1.5rem;}
  .footer-top{grid-template-columns:1fr;gap:2rem;margin-bottom:2rem;padding-bottom:2rem;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}

  /* Sections */
  h2.section-title{font-size:clamp(1.75rem,7vw,2.5rem);}
  .books-intro{margin-bottom:2rem;}
}
@media(max-width:768px){
  .page-hero{padding:8.5rem 1.25rem 3.5rem;}
  .cta-banner{padding:4rem 1.25rem;}
}
@media(max-width:768px){
  .book-hero{padding:8.5rem 1.25rem 4rem;}
  .book-hero-inner{grid-template-columns:1fr;gap:2.25rem;}
  .book-hero-cover{max-width:220px;margin:0 auto;}
  .book-hero-text{text-align:left;}
  .book-content-section{padding:4rem 1.25rem;}
  .book-highlights{padding:4rem 1.25rem;}
  .highlights-grid{grid-template-columns:1fr;}
  .book-hero-meta{gap:1.5rem;}
}
@media(max-width:768px){
  .order-hero{padding:8rem 1.25rem 3rem;}
  .order-section{padding:3rem 1.25rem 5rem;}
  .order-form-card{padding:1.75rem;}
  .order-row-2,.order-row-3,.book-select-row,.pay-method-row{grid-template-columns:1fr;}
}
@media(max-width:768px){
  #publisher{padding:4.5rem 1.25rem;}
}
@media(max-width:768px){
  #events-detail,#how-it-works,#booking-form{padding:4.5rem 1.25rem;}
  .event-types-grid{grid-template-columns:1fr;}
  .hiw-steps{grid-template-columns:1fr;gap:2rem;}
  .events-hero-stats{gap:1.5rem;}
  .ehs-num{font-size:1.8rem;}
  .booking-form-card{padding:1.75rem;}
  .bf-row-2,.bf-row-3{grid-template-columns:1fr;}
}
@media(max-width:768px){
}
@media(max-width:768px){
  .hero{padding:7rem 1.25rem 3.5rem;min-height:auto;}
  .hero-inner{gap:2.75rem;}
  h1.hero-title{font-size:clamp(2.2rem,9vw,3.2rem);margin-bottom:1.1rem;}
  .hero-sub{font-size:.95rem;margin-bottom:1.75rem;}
  .hero-actions{flex-direction:column;align-items:stretch;gap:.85rem;}
  .hero-actions .btn-gold,.hero-actions .btn-ghost-white{justify-content:center;text-align:center;}
  .hero-meta{gap:1.5rem;margin-top:2rem;padding-top:1.25rem;}
  .hero-meta strong{font-size:1.15rem;}
  .hero-showcase{min-height:270px;}
  .hero-card-1{width:150px;transform:rotate(-4deg) translateX(-26%);}
  .hero-card-2{width:126px;transform:rotate(7deg) translate(46%,12%);}
  .hero-card-1:hover{transform:rotate(-4deg) translateX(-26%) scale(1.03);}
  .hero-card-2:hover{transform:rotate(7deg) translate(46%,12%) scale(1.03);}
  @keyframes floatA{0%,100%{transform:rotate(-4deg) translateX(-26%);}50%{transform:rotate(-4deg) translate(-26%,-5%);}}
  @keyframes floatB{0%,100%{transform:rotate(7deg) translate(46%,12%);}50%{transform:rotate(7deg) translate(46%,7%);}}
  .hero-video{opacity:.22;}
  .hero-namebar{margin-bottom:1rem;}
}
/* Very small */
@media(max-width:380px){
  .hero,.pullquote-section,#about,#books,#events,#faq,#contact{padding-left:1rem;padding-right:1rem;}
  footer{padding-left:1rem;padding-right:1rem;}
  .events-stat-row{gap:1.25rem;}
  .events-stat-num{font-size:2.2rem;}
  .timeline-year{min-width:56px;}
}

.book-feature-text{display:flex;flex-direction:column;height:100%;min-width:0;}

/* Book hero stacking: breadcrumb above genre with real separation */
.book-hero-text .page-breadcrumb{order:-1;margin-bottom:1.25rem;flex-wrap:wrap;}
.book-hero-text .book-genre{margin-bottom:1rem;}

/* Feature cards: equal height, actions pinned to the bottom edge */
.highlight-card,.event-type-card{display:flex;flex-direction:column;height:100%;}
.etc-body{display:flex;flex-direction:column;flex:1;}
.etc-body .btn-outline-ink{margin-top:auto;align-self:flex-start;}
.etc-list{margin-bottom:1.5rem;}


/* ══════════════════════════════════════════════════════════
   RESPONSIVE CORRECTIONS  (widest → narrowest, appended last)
   ══════════════════════════════════════════════════════════ */

/* ── Tablet & small laptop: full nav no longer fits, switch to hamburger.
      Fixes logo/link collision seen between ~769px and 1080px. ── */
@media(max-width:1080px){
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
  nav#mainNav{padding:0 1.5rem;height:64px;}
  .mobile-menu{top:64px;}
}

/* ── Tablet layout rebalance ── */
@media(max-width:1024px){
  .books-layout{grid-template-columns:1fr;}
  .book-feature{padding:3rem 2.5rem;}
  .book-feature-grid{grid-template-columns:180px 1fr;gap:2.5rem;}
  .highlights-grid,.event-types-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));}
  .book-hero-inner{grid-template-columns:260px 1fr;gap:3rem;}
  .section-title{text-wrap:balance;}
}

/* ── Mobile: centre imagery and headings, tighten rhythm ── */
@media(max-width:768px){
  /* Headings and section intros centre for a calmer read */
  .eyebrow{justify-content:center;}
  .section-title,.books-intro,.events-desc,.page-hero-title,.page-hero-sub{text-align:center;}
  .page-hero-inner .page-breadcrumb{justify-content:center;}

  /* Books: single column, cover centred above copy */
  .books-layout{grid-template-columns:1fr;}
  .book-feature{padding:2.5rem 1.5rem;text-align:center;}
  .book-feature-grid{grid-template-columns:1fr;gap:1.5rem;justify-items:center;}
  .book-cover-wrap{width:min(190px,58vw);margin:0 auto;}
  .book-cover-img{width:100%;height:auto;}
  .book-feature-text{align-items:center;text-align:center;}
  .book-genre{justify-content:center;}
  .book-divider{margin-left:auto;margin-right:auto;}
  .book-feature-desc{max-width:38ch;}
  .book-buy-row{justify-content:center;width:100%;padding-top:1.5rem;}
  .book-buy-row .btn-amazon-dark,.book-buy-row .btn-signed-copy{flex:1 1 100%;justify-content:center;}
  .book-feature-num{font-size:3rem;top:1rem;right:1.25rem;opacity:.5;}

  /* Book detail page */
  .book-hero-inner{grid-template-columns:1fr;gap:2rem;justify-items:center;}
  .book-hero-cover{width:min(210px,60vw);margin:0 auto;}
  .book-hero-text{align-items:center;text-align:center;}
  .book-hero-text .page-breadcrumb{justify-content:center;margin-bottom:1rem;}
  .book-hero-text .book-genre{justify-content:center;}
  .book-hero-desc{margin-left:auto;margin-right:auto;}
  .book-hero-buy{justify-content:center;width:100%;}
  .book-hero-buy>a{flex:1 1 100%;justify-content:center;}
  .book-hero-meta{justify-content:center;text-align:center;gap:1.5rem 2rem;}
  .book-content-inner{text-align:center;}
  .book-content-inner p{text-align:left;}
  .book-pullquote{text-align:left;}

  /* Author portrait centred */
  .about-portrait{margin:0 auto;max-width:300px;}

  /* Feature cards full width, content left for readability */
  .highlights-grid,.event-types-grid{grid-template-columns:1fr;}
  .highlight-card,.event-type-card{text-align:left;}
  .etc-body .btn-outline-ink{align-self:stretch;justify-content:center;}

  /* CTA banners */
  .cta-banner-row>a{flex:1 1 100%;justify-content:center;}
}

/* ── Small phones ── */
@media(max-width:400px){
  .book-feature{padding:2rem 1.1rem;}
  .book-cover-wrap{width:min(165px,62vw);}
  .hero-meta{gap:1.1rem;}
  .book-hero-meta{gap:1.1rem 1.5rem;}
}


/* ══ TYPOGRAPHY & CONTRAST ══ */
body{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
h1,h2,h3,h4{text-wrap:balance;}
p{text-wrap:pretty;}

/* Dark sections: lift body copy to an accessible contrast ratio */
.hero-sub{color:var(--txt-on-dark-soft);}
.books-intro{color:rgba(255,255,255,.62);}
.book-feature-desc{color:rgba(255,255,255,.68);line-height:1.8;}
.book-feature-author{color:rgba(255,255,255,.5);}
.book-hero-desc{color:var(--txt-on-dark-soft);}
.book-meta-value{color:var(--txt-on-dark);}
.book-meta-label{color:rgba(255,255,255,.45);}
.contact-left p,.booking-left p{color:var(--txt-on-dark-soft);}
.bt-text{color:rgba(255,255,255,.68);}
.footer-brand-p,.footer-col a{color:rgba(255,255,255,.55);}
.footer-col a:hover{color:var(--gold-bright);}
.fg label{color:rgba(255,255,255,.55);}
.etc-subtitle{color:rgba(255,255,255,.5);}

/* Light sections: richer, deeper black */
.book-content-inner p,.faq-answer-inner,.about-body p,.hiw-step p,
.highlight-card p,.etc-body p,.cta-banner-p{color:#3d4757;}
.section-title,.highlight-card h4,.hiw-step h4{color:var(--ink-rich);}
.etc-list li,.publisher-list li{color:#3d4757;}

/* Focus visibility for keyboard users, sitewide */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold-bright);outline-offset:3px;border-radius:2px;
}
/* Touch targets */
@media(pointer:coarse){
  .nav-links a,.mobile-menu a,.btn-gold,.btn-ghost-white,
  .btn-amazon-dark,.btn-signed-copy,.btn-outline-ink,.faq-trigger{min-height:44px;}
}


/* ══ MOTION SYSTEM (reusable, GPU-friendly) ══ */
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:.28s; --dur-mid:.5s; --dur-slow:.8s;
}

/* Base reveal, driven by IntersectionObserver adding .visible */
.js-anim .reveal{opacity:0;transform:translate3d(0,26px,0);
  transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);
  will-change:opacity,transform;}
.reveal.visible{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:.09s;}
.reveal-delay-2{transition-delay:.18s;}
.reveal-delay-3{transition-delay:.27s;}

/* Auto-stagger children of any grid marked .stagger */
.js-anim .stagger>*{opacity:0;transform:translate3d(0,22px,0);
  transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);}
.stagger.visible>*{opacity:1;transform:none;}
.stagger.visible>*:nth-child(1){transition-delay:.05s;}
.stagger.visible>*:nth-child(2){transition-delay:.14s;}
.stagger.visible>*:nth-child(3){transition-delay:.23s;}
.stagger.visible>*:nth-child(4){transition-delay:.32s;}
.stagger.visible>*:nth-child(5){transition-delay:.41s;}
.stagger.visible>*:nth-child(6){transition-delay:.50s;}

/* Card lift, shared by every card type */
.highlight-card,.event-type-card,.event-card,.publisher-card{
  transition:transform var(--dur-mid) var(--ease-out),
             box-shadow var(--dur-mid) var(--ease-out),
             border-color var(--dur-mid) var(--ease-out);
}
.highlight-card:hover,.event-type-card:hover,.event-card:hover{
  transform:translate3d(0,-6px,0);
  box-shadow:0 22px 50px rgba(13,21,34,.13);
  border-color:var(--border-gold);
}

/* Book covers: float + tilt + shadow bloom, applies to any number of books */
.book-cover-wrap{perspective:1100px;}
.book-cover-img{
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out);
  box-shadow:0 14px 34px rgba(0,0,0,.42);
  will-change:transform;
}
.book-feature:hover .book-cover-img{
  transform:translate3d(0,-8px,0) rotateY(-7deg) rotateX(2deg) scale(1.035);
  box-shadow:0 30px 62px rgba(0,0,0,.55);
}
.book-feature{transition:background var(--dur-mid) var(--ease-out);}

/* Buttons: consistent micro-interaction everywhere */
.btn-gold,.btn-amazon-dark,.btn-signed-copy,.btn-outline-ink,.btn-gold-ink,.btn-submit{
  transition:background var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out);
}
.btn-gold:hover,.btn-gold-ink:hover,.btn-submit:hover{
  transform:translate3d(0,-2px,0);box-shadow:0 10px 24px rgba(184,134,11,.28);
}
.btn-amazon-dark:hover,.btn-signed-copy:hover,.btn-outline-ink:hover{transform:translate3d(0,-2px,0);}
.btn-gold:active,.btn-amazon-dark:active,.btn-signed-copy:active,
.btn-outline-ink:active,.btn-submit:active{transform:translate3d(0,0,0);}

/* Link underline sweep */
.book-title-link{
  background-image:linear-gradient(var(--gold-bright),var(--gold-bright));
  background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;
  transition:background-size var(--dur-mid) var(--ease-out),color var(--dur-fast);
}
.book-title-link:hover{background-size:100% 1px;color:var(--gold-bright);}

@media(prefers-reduced-motion:reduce){
  .reveal,.stagger>*{opacity:1!important;transform:none!important;transition:none!important;}
  .highlight-card:hover,.event-type-card:hover,.event-card:hover,
  .book-feature:hover .book-cover-img,.btn-gold:hover{transform:none!important;}
}


/* ══════════════════════════════════════════════════════════
   GLOBAL CARD + BUTTON CONTRACT
   Any card, any component, any future section inherits this.
   Cards stretch to equal height; the last action pins to the
   bottom so rows never stagger because of text length.
   ══════════════════════════════════════════════════════════ */
.event-card,.event-type-card,.highlight-card,.publisher-card,.book-feature{
  display:flex;flex-direction:column;height:100%;
}
.event-card-body,.etc-body,.highlight-card,.publisher-card{
  display:flex;flex-direction:column;flex:1;
}
/* Push the trailing action to the bottom edge of every card */
.event-card-body>.btn-outline-ink,
.event-card-body>a:last-child,
.etc-body>.btn-outline-ink,
.etc-body>a:last-child,
.publisher-card>.btn-outline-ink{
  margin-top:auto;align-self:flex-start;
}
/* Copy above the action should not fight for the leftover space */
.event-card-body>p:last-of-type,.etc-body>p:last-of-type{margin-bottom:1.5rem;}
.event-card-body>.etc-list:last-of-type,.etc-body>.etc-list:last-of-type{margin-bottom:1.5rem;}

/* Grids that hold cards must stretch their children */
.events-cards,.event-types-grid,.highlights-grid,.books-layout{align-items:stretch;}
.events-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1.5rem;}

/* ── Uniform button metrics sitewide ── */
.btn-gold,.btn-ghost-white,.btn-amazon-dark,.btn-signed-copy,
.btn-outline-ink,.btn-gold-ink,.btn-submit,.btn-read-more{
  display:inline-flex;align-items:center;justify-content:center;
  gap:.5rem;min-height:46px;padding:.85rem 1.6rem;
  font-size:.78rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  line-height:1;border-radius:2px;text-decoration:none;white-space:nowrap;
}
.btn-read-more{min-height:auto;padding:.4rem 0;background:none;border:none;}
.btn-ghost-white{padding-left:0;padding-right:0;background:none;}
/* Action rows share one baseline and wrap predictably */
.book-buy-row,.book-hero-buy,.cta-banner-row,.hero-actions{
  display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;
}
.cta-banner-row{justify-content:center;}


/* ══ REUSABLE VIDEO SECTION LAYER ══ */
.section-video{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.section-video-el{
  width:100%;height:100%;object-fit:cover;display:block;
  opacity:var(--vbg-opacity,.52);
  filter:saturate(1.0) contrast(1.10) brightness(.95);
  transform:scale(1.06);
  animation:heroDrift 34s ease-in-out infinite alternate;
}
.section-video-veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(9,14,24,.93) 0%,rgba(9,14,24,.50) 28%,rgba(9,14,24,.50) 72%,rgba(9,14,24,.93) 100%);
}
#books{position:relative;}
#books>*:not(.section-video){position:relative;z-index:1;}

/* ══ CASSELL PUBLISHERS BRANDING ══ */
.publisher-mark{display:inline-block;margin-bottom:1rem;transition:transform var(--dur-mid) var(--ease-out),opacity var(--dur-fast);}
.publisher-mark img{display:block;width:100%;height:auto;}
.publisher-mark:hover{transform:translate3d(0,-3px,0);}
.publisher-mark:hover img{opacity:1;}

.publisher-strip{padding:clamp(3.5rem,7vw,5rem) clamp(1.25rem,5vw,3rem);background:var(--cream-dark);border-top:1px solid var(--border);}
.publisher-strip-inner{
  max-width:1000px;margin:0 auto;display:flex;align-items:center;
  gap:clamp(1.5rem,4vw,3rem);flex-wrap:wrap;justify-content:center;text-align:left;
}
.publisher-strip-mark{flex-shrink:0;transition:transform var(--dur-mid) var(--ease-out);}
.publisher-strip-mark img{display:block;width:clamp(72px,9vw,96px);height:auto;}
.publisher-strip-mark:hover{transform:translate3d(0,-4px,0) rotate(-2deg);}
.publisher-strip-copy{flex:1;min-width:min(260px,100%);}
.publisher-strip-eyebrow{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.35rem;}
.publisher-strip-name{
  font-family:'EB Garamond',Georgia,serif;font-size:1.5rem;color:var(--ink-rich);
  text-decoration:none;display:inline-block;margin-bottom:.4rem;
  background-image:linear-gradient(var(--gold),var(--gold));background-position:0 100%;
  background-repeat:no-repeat;background-size:0% 1px;transition:background-size var(--dur-mid) var(--ease-out),color var(--dur-fast);
}
.publisher-strip-name:hover{background-size:100% 1px;color:var(--gold);}
.publisher-strip-copy p{font-size:.9rem;color:#3d4757;line-height:1.7;margin:0;}

.publisher-lockup{margin-bottom:1.75rem;}
.publisher-lockup img{
  width:clamp(96px,13vw,140px);height:auto;display:block;
  transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-mid);
  animation:markBreathe 9s ease-in-out infinite;
}
.publisher-lockup a:hover img{opacity:1;transform:scale(1.04);}
@keyframes markBreathe{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-6px,0);}}

@media(max-width:768px){
  .publisher-strip-inner{flex-direction:column;text-align:center;}
  .publisher-strip-copy{text-align:center;}
  .publisher-strip-inner>.btn-outline-ink{align-self:stretch;}
  .publisher-lockup{display:flex;justify-content:center;}
}
@media(prefers-reduced-motion:reduce){
  .section-video-el,.publisher-lockup img{animation:none;}
}


/* ══════════════════════════════════════════════════════════
   LIVING BOOK COVERS — universal, inherited by every cover
   anywhere on the site, now and in future.
   ══════════════════════════════════════════════════════════ */
.book-cover-img,.book-hero-cover-img,.hero-card img{
  transform-origin:center center;
  backface-visibility:hidden;
  transition:transform var(--dur-mid) var(--ease-out),
             box-shadow var(--dur-mid) var(--ease-out),
             filter var(--dur-mid) var(--ease-out);
  will-change:transform;
}
/* Continuous gentle breathing, offset so covers never move in lockstep */
.book-cover-wrap,.book-hero-cover{perspective:1200px;}
.book-cover-img{animation:coverBreathe 7.5s ease-in-out infinite;}
.book-feature:nth-child(even) .book-cover-img{animation-duration:8.6s;animation-delay:-2.2s;}
.book-feature:nth-child(3n) .book-cover-img{animation-duration:9.4s;animation-delay:-4.1s;}
.book-hero-cover-img{animation:coverBreathe 8s ease-in-out infinite;}

@keyframes coverBreathe{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg);}
  50%    {transform:translate3d(0,-9px,0) rotate(-.4deg);}
}

/* Hover: lift, tilt, bloom */
.book-feature:hover .book-cover-img,
.book-cover-wrap:hover .book-cover-img{
  animation-play-state:paused;
  transform:translate3d(0,-12px,0) rotateY(-8deg) rotateX(3deg) scale(1.045);
  box-shadow:0 34px 70px rgba(0,0,0,.55),0 6px 18px rgba(0,0,0,.4);
  filter:saturate(1.06);
}
.book-hero-cover:hover .book-hero-cover-img{
  animation-play-state:paused;
  transform:translate3d(0,-10px,0) rotateY(-6deg) scale(1.03);
  box-shadow:0 38px 78px rgba(0,0,0,.6);
}
/* Entrance for covers as they scroll in */
.reveal .book-cover-img,.stagger.visible .book-cover-img{will-change:transform;}

@media(max-width:768px){
  /* Lighter motion on phones: vertical only, no 3D */
  .book-cover-img,.book-hero-cover-img{animation-duration:9s;}
  .book-feature:hover .book-cover-img{transform:translate3d(0,-6px,0) scale(1.02);}
  @keyframes coverBreathe{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-6px,0);}}
}
@media(prefers-reduced-motion:reduce){
  .book-cover-img,.book-hero-cover-img{animation:none!important;}
  .book-feature:hover .book-cover-img,.book-hero-cover:hover .book-hero-cover-img{transform:none!important;}
}

/* ══ ICON & CTA MICRO-INTERACTIONS ══ */
.event-icon-wrap,.etc-icon,.highlight-icon,.bt-icon,.cdetail-icon{
  transition:transform var(--dur-mid) var(--ease-out),background var(--dur-mid),border-color var(--dur-mid);
}
.event-card:hover .event-icon-wrap,
.event-type-card:hover .etc-icon,
.highlight-card:hover .highlight-icon{
  transform:translate3d(0,-2px,0) scale(1.08) rotate(-4deg);
  border-color:var(--gold);
}
.btn-read-more svg,.btn-ghost-white{transition:transform var(--dur-fast) var(--ease-out);}
.btn-read-more:hover,.btn-ghost-white:hover{transform:translate3d(3px,0,0);}


/* ══════════════════════════════════════════════════════════
   BRAND MARK — original artwork, never inverted.
   On dark surfaces the seal sits on a warm plate so the
   engraving keeps its detail and reads as a real medallion.
   ══════════════════════════════════════════════════════════ */
.brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--cream);
  padding:clamp(.55rem,1vw,.85rem);
  box-shadow:0 8px 26px rgba(0,0,0,.34), 0 0 0 1px rgba(184,134,11,.28);
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out);
  overflow:hidden;
}
.brand-mark img{display:block;width:100%;height:auto;}
.brand-mark:hover{
  transform:translate3d(0,-4px,0);
  box-shadow:0 16px 38px rgba(0,0,0,.42), 0 0 0 1px rgba(184,134,11,.55);
}
/* On light surfaces no plate is needed */
.brand-mark--plain{background:none;box-shadow:none;padding:0;}

/* Sizes */
.brand-mark--sm{width:72px;height:72px;}
.brand-mark--md{width:clamp(80px,10vw,104px);height:clamp(80px,10vw,104px);}
.brand-mark--lg{width:clamp(104px,14vw,148px);height:clamp(104px,14vw,148px);}

/* Publisher page lockup keeps the gentle float */
.publisher-lockup{margin-bottom:1.75rem;display:flex;}
.publisher-lockup .brand-mark{animation:markBreathe 9s ease-in-out infinite;}
@media(max-width:768px){.publisher-lockup{justify-content:center;}}
@media(prefers-reduced-motion:reduce){.publisher-lockup .brand-mark{animation:none;}}


/* ══ HERO TYPEWRITER (zero layout shift) ══ */
.typewriter{position:relative;}
/* Ghost reserves the final block size; never visible, never read aloud */
.typewriter .tw-ghost{visibility:hidden;display:block;pointer-events:none;}
/* Live layer paints over the reserved space */
.typewriter .tw-live{position:absolute;inset:0;display:block;}
/* Screen readers get the whole sentence at once, no character spam */
.tw-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.tw-caret{
  display:inline-block;width:.06em;height:.86em;margin-left:.06em;
  background:var(--gold-bright);vertical-align:-.06em;border-radius:1px;
  animation:twBlink 1s steps(1,end) infinite;
}
@keyframes twBlink{0%,50%{opacity:1;}50.01%,100%{opacity:0;}}
/* If JS is unavailable or motion is reduced, show the real text */
.no-tw .typewriter .tw-ghost{visibility:visible;}
.no-tw .typewriter .tw-live{display:none;}

/* ══ DECORATIVE BACKGROUND TYPOGRAPHY — writing sweep ══
   A gradient mask travels across the word so it appears to be
   written in, then rests. CSS-driven, no JS, no repaint cost. */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
  background:linear-gradient(90deg,
    rgba(255,255,255,.105) 0%,
    rgba(255,255,255,.105) 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
  -webkit-mask-image:linear-gradient(90deg,#000 0 20%,rgba(0,0,0,.62) 30%,rgba(0,0,0,.22) 40%,rgba(0,0,0,0) 50%);
  mask-image:linear-gradient(90deg,#000 0 20%,rgba(0,0,0,.62) 30%,rgba(0,0,0,.22) 40%,rgba(0,0,0,0) 50%);
  -webkit-mask-size:260% 100%;mask-size:260% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:inkWrite 6.5s cubic-bezier(.42,.02,.28,1) infinite;
  will-change:mask-position;
}
@keyframes inkWrite{
  0%   {-webkit-mask-position:112% 0;mask-position:112% 0;}
  38%  {-webkit-mask-position:-38% 0;mask-position:-38% 0;}
  70%  {-webkit-mask-position:-38% 0;mask-position:-38% 0;}
  100% {-webkit-mask-position:112% 0;mask-position:112% 0;}
}
/* Slight offset per page so it never feels synchronised */
.page-hero-bg-text{animation-duration:7.4s;animation-delay:-1.6s;}
.book-hero-bg-text{animation-duration:7s;animation-delay:-3.1s;}
.contact-bg-text,.booking-bg-text{animation-duration:8s;animation-delay:-.8s;}

@media(prefers-reduced-motion:reduce){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
    animation:none;-webkit-mask-image:none;mask-image:none;
  }
  .tw-caret{animation:none;}
}


/* ══ READABILITY PASS ══ */
:root{
  --txt-on-dark:rgba(255,255,255,.94);
  --txt-on-dark-soft:rgba(255,255,255,.80);
  --txt-on-dark-mute:rgba(255,255,255,.60);
  --txt-on-light:#111a27;
  --txt-on-light-soft:#354152;
}
/* Dark surfaces */
h1.hero-title,.section-title,.book-hero-title,.page-hero-title{color:#fff;}
.hero-sub,.book-hero-desc,.contact-left p,.booking-left p,.page-hero-sub{color:var(--txt-on-dark-soft);}
.book-feature-desc{color:rgba(255,255,255,.78);}
/* surface-scoped below */
.bt-text,.footer-brand-p{color:rgba(255,255,255,.66);}
.footer-col a,.cdetail{color:rgba(255,255,255,.72);}
.book-feature-author,.etc-subtitle,.book-meta-label{color:rgba(255,255,255,.58);}
.fg label{color:rgba(255,255,255,.64);}
/* Light surfaces: deeper, richer black */
.book-content-inner p,.about-body p,.faq-answer-inner,
.highlight-card p,.etc-body p,.hiw-step p,.cta-banner-p,
.etc-list li,.publisher-list li,.publisher-strip-copy p{color:var(--txt-on-light-soft);}
.section-title,.highlight-card h4,.hiw-step h4,.faq-q,.etc-title{color:var(--txt-on-light);}
#books .section-title,#books .book-feature-title{color:#fff;}

/* Emphasis: strong text carries real weight and colour, used sparingly */
strong,b{font-weight:600;}
.book-content-inner strong,.about-body strong,.faq-answer-inner strong{color:var(--txt-on-light);}
.bt-text strong,.contact-note strong{color:#fff;font-weight:500;}
em{font-style:italic;}

/* Measure and rhythm */
.book-content-inner p,.about-body p,.faq-answer-inner{max-width:68ch;line-height:1.85;}
.hero-sub,.page-hero-sub{line-height:1.8;}
.eyebrow{font-weight:500;}


/* ══════════════════════════════════════════════════════════
   SCROLL MOTION SYSTEM — applied automatically by main.js to
   every section, so new pages inherit it with no extra work.
   ══════════════════════════════════════════════════════════ */
.js-anim [data-anim]{opacity:0;will-change:opacity,transform;}
.js-anim [data-anim="up"]     {transform:translate3d(0,28px,0);}
.js-anim [data-anim="fade"]   {transform:none;}
.js-anim [data-anim="left"]   {transform:translate3d(-26px,0,0);}
.js-anim [data-anim="right"]  {transform:translate3d(26px,0,0);}
.js-anim [data-anim="scale"]  {transform:scale(.965);}
.js-anim [data-anim].in{
  opacity:1;transform:none;
  transition:opacity .75s var(--ease-out),transform .75s var(--ease-out);
}
.js-anim [data-anim].in{transition-delay:var(--anim-delay,0ms);}

/* Section entrance: heading group leads, content follows */
.js-anim .eyebrow[data-anim].in{transition-duration:.6s;}

/* Image reveal: a soft clip wipe rather than a plain fade */
.js-anim [data-anim="reveal-img"]{
  opacity:0;transform:scale(1.02);
  clip-path:inset(0 0 0 0);
}
.js-anim [data-anim="reveal-img"].in{
  opacity:1;transform:scale(1);
  transition:opacity .85s var(--ease-out),transform 1s var(--ease-out);
}

/* Gentle parallax drift on decorative words while scrolling */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text{
  transform:translate3d(-50%,calc(-50% + var(--par,0px)),0);
}

/* Page enter: content settles in on first paint */
body{opacity:1;}
.page-enter{animation:pageIn .55s var(--ease-out) both;}
@keyframes pageIn{from{opacity:0;transform:translate3d(0,10px,0);}to{opacity:1;transform:none;}}

@media(prefers-reduced-motion:reduce){
  .js-anim [data-anim]{opacity:1!important;transform:none!important;clip-path:none!important;}
  .page-enter{animation:none;}
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text{transform:translate3d(-50%,-50%,0);}
}


/* ══ SAFETY: media must never be hidden by the motion layer ══ */
img{opacity:1;}
.js-anim [data-anim="reveal-img"] img{opacity:1;}
noscript ~ * [data-anim]{opacity:1!important;transform:none!important;}


/* ══════════════════════════════════════════════════════════
   SURFACE-SCOPED TEXT COLOUR
   Colour follows the section background, never the component
   name. This is why .events-desc appeared white on cream.
   ══════════════════════════════════════════════════════════ */
/* Dark surfaces */
.hero, #books, #contact, #booking-form, footer,
.book-hero, .page-hero, .contact-teaser-section, .order-hero{
  --txt-body:rgba(255,255,255,.82);
  --txt-heading:#ffffff;
  --txt-muted:rgba(255,255,255,.60);
}
/* Light surfaces */
#about, #events, #faq, #publisher, #how-it-works, #events-detail,
.book-content-section, .book-highlights, .cta-banner,
.faq-teaser-section, .publisher-strip, .order-section, .pullquote-section{
  --txt-body:#354152;
  --txt-heading:#111a27;
  --txt-muted:#5a6578;
}
/* Components inherit from the surface */
.books-intro,.events-desc,.hero-sub,.page-hero-sub,.cta-banner-p,
.book-feature-desc,.book-hero-desc,.contact-left p,.booking-left p,
.about-body p,.book-content-inner p,.faq-answer-inner,
.highlight-card p,.etc-body p,.hiw-step p,.etc-list li,
.publisher-list li,.publisher-strip-copy p,.events-stat-label{
  color:var(--txt-body,#354152);
}
.section-title,.book-feature-title,.highlight-card h4,.hiw-step h4,
.faq-q,.etc-title,.book-hero-title,.page-hero-title{
  color:var(--txt-heading,#111a27);
}
.book-feature-author,.etc-subtitle,.book-meta-label,.timeline-content p{
  color:var(--txt-muted,#5a6578);
}
/* Dark-surface specifics that must stay bright */
#books .book-feature-title a,#books .book-feature-title{color:#fff;}
footer .footer-col a{color:rgba(255,255,255,.88);}
footer .footer-brand-p{color:rgba(255,255,255,.80);}


/* ══ COVER STRIP — reusable book artwork band ══ */
.cover-strip{padding:clamp(4rem,8vw,6.5rem) clamp(1.25rem,5vw,3rem);background:var(--ink);position:relative;overflow:hidden;}
.cover-strip-inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center;}
.cover-strip-copy .section-title{color:#fff;margin-bottom:1rem;}
.cover-strip-copy .section-title em{color:var(--gold-bright);font-style:italic;}
.cover-strip-sub{color:rgba(255,255,255,.72);font-size:.97rem;line-height:1.8;max-width:44ch;}
.cover-strip-list{list-style:none;display:flex;gap:clamp(1rem,3vw,2.25rem);flex-wrap:wrap;justify-content:center;align-items:flex-end;margin:0;padding:0;}
.cover-strip-item{flex:0 0 auto;width:clamp(112px,14vw,158px);}
.cover-strip-item a{display:block;text-decoration:none;}
.cover-strip-item img{
  width:100%;height:auto;display:block;border-radius:3px;
  box-shadow:0 18px 40px rgba(0,0,0,.5);
  animation:coverBreathe 8s ease-in-out infinite;
  animation-delay:calc(var(--i,0) * -1.7s);
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out);
}
.cover-strip-item a:hover img{
  animation-play-state:paused;
  transform:translate3d(0,-10px,0) rotateY(-7deg) scale(1.04);
  box-shadow:0 32px 64px rgba(0,0,0,.6);
}
.cover-strip-name{
  display:block;margin-top:.85rem;text-align:center;
  font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;
  color:rgba(255,255,255,.55);transition:color var(--dur-fast);
}
.cover-strip-item a:hover .cover-strip-name{color:var(--gold-bright);}
@media(max-width:900px){
  .cover-strip-inner{grid-template-columns:1fr;gap:2.5rem;text-align:center;}
  .cover-strip-copy .eyebrow{justify-content:center;}
  .cover-strip-sub{margin-left:auto;margin-right:auto;}
}
@media(prefers-reduced-motion:reduce){
  .cover-strip-item img{animation:none;}
}

/* ══ TEXT LEGIBILITY ON BUSY BACKDROPS ══ */
.hero-title,.hero-sub,.hero-kicker-text,.hero-namebar,.hero-meta{
  text-shadow:0 1px 24px rgba(9,14,24,.55);
}
.book-hero-title,.book-hero-desc{text-shadow:0 1px 18px rgba(9,14,24,.45);}
#books .section-title,#books .books-intro,#books .book-feature-title{text-shadow:0 1px 16px rgba(9,14,24,.5);}


/* ══════════════════════════════════════════════════════════
   MEDIA SYSTEM — aspect-ratio based, one contract for every
   photo and cover on the site. Replaces the padding-bottom
   hack, which silently letterboxed the portrait on mobile.
   ══════════════════════════════════════════════════════════ */
:root{
  --ratio-portrait:4 / 5;    /* author photography */
  --ratio-cover:1 / 1.414;   /* book covers, ISO trim */
}

/* Author portrait */
.portrait-frame{
  position:relative;
  width:100%;
  aspect-ratio:var(--ratio-portrait);
  background:var(--ink-mid);
  border-radius:3px;
  overflow:hidden;
}
.portrait-img{
  width:100%;height:100%;display:block;
  object-fit:cover;object-position:center 22%;
  filter:saturate(.95) contrast(1.04);
  transition:transform .7s var(--ease-out),filter .7s var(--ease-out);
}
.about-portrait:hover .portrait-img{transform:scale(1.04);filter:saturate(1.02) contrast(1.06);}

/* Book covers — every cover, everywhere, same contract */
.book-cover-wrap,.book-hero-cover,.cover-strip-item a,.hero-card{
  display:block;width:100%;
}
.book-cover-img,.book-hero-cover-img,.cover-strip-item img,.hero-card img{
  width:100%;height:auto;display:block;
  aspect-ratio:var(--ratio-cover);
  object-fit:cover;object-position:center top;
  border-radius:3px;
}

/* Consistent sizing per context, fluid, no magic numbers */
.book-cover-wrap{width:clamp(150px,17vw,200px);}
.book-hero-cover{width:clamp(190px,24vw,320px);}
.cover-strip-item{width:clamp(104px,13vw,150px);}

/* ── Responsive media ── */
@media(max-width:1024px){
  .about-portrait{max-width:300px;}
  .book-cover-wrap{width:clamp(150px,22vw,190px);}
  .book-hero-cover{width:clamp(190px,30vw,260px);}
}
@media(max-width:768px){
  .about-portrait{max-width:min(320px,74vw);margin-inline:auto;}
  .portrait-frame{aspect-ratio:var(--ratio-portrait);}
  .book-cover-wrap{width:min(200px,56vw);margin-inline:auto;}
  .book-hero-cover{width:min(230px,62vw);margin-inline:auto;}
  .cover-strip-item{width:min(132px,38vw);}
}
@media(max-width:400px){
  .about-portrait{max-width:82vw;}
  .book-cover-wrap{width:min(180px,62vw);}
  .book-hero-cover{width:min(210px,68vw);}
  .cover-strip-item{width:min(120px,40vw);}
}


/* ══════════════════════════════════════════════════════════
   VIDEO LAYER — never letterbox, never stretch, never shift.
   The 16:9 source is cover-fitted with a focal point tuned
   per breakpoint so the book art stays in frame.
   ══════════════════════════════════════════════════════════ */
.hero-media,.section-video{
  position:absolute;inset:0;overflow:hidden;
  background:var(--ink);              /* paints before the video decodes */
  contain:paint;
}
.hero-video,.section-video-el{
  position:absolute;inset:0;
  width:100%;height:100%;
  min-width:100%;min-height:100%;     /* guarantees full bleed */
  object-fit:cover;
  display:block;
}
/* Focal point: art sits right-of-centre in the source */
.hero-video{object-position:50% 42%;}   /* motion centre of the new clip: y .42, x .51 */
.section-video-el{object-position:50% 50%;}

/* Desktop: full bleed, subtle drift */
@media(min-width:1025px){
  .hero-video{object-position:50% 40%;transform:scale(1.02);}
}
/* Tablet: pull the focal point inward so art is not cropped out */
@media(max-width:1024px){
  .hero-video{object-position:50% 42%;opacity:.86;transform:scale(1.04);}
  .section-video-el{object-position:50% 50%;opacity:.52;}
}
/* Mobile: portrait viewport vs 16:9 source needs a tighter crop.
   Scale up slightly so no edge gap can ever appear. */
@media(max-width:768px){
  .hero-video{
    object-position:50% 40%;
    transform:scale(1.10);
    opacity:.72;
    animation-duration:32s;           /* calmer on small screens */
  }
  .section-video-el{object-position:50% 50%;transform:scale(1.06);opacity:.46;}
  /* Stronger veil because text sits directly over the art on mobile */
  .hero-media-veil{
    background:linear-gradient(180deg,
      rgba(9,14,24,.90) 0%,
      rgba(9,14,24,.62) 30%,
      rgba(9,14,24,.72) 62%,
      rgba(9,14,24,.95) 100%);
  }
  .hero-copy::before{inset:-1.25rem -1.5rem;
    background:radial-gradient(90% 70% at 50% 50%, rgba(9,14,24,.78) 0%, rgba(9,14,24,.44) 60%, transparent 100%);}
}
@media(max-width:480px){
  .hero-video{transform:scale(1.14);object-position:50% 40%;}
}
/* Very wide screens: avoid over-cropping */
@media(min-width:1800px){
  .hero-video{object-position:50% 42%;transform:scale(1.01);}
}
/* Reserve space so the video can never cause a layout shift */
.hero{contain:layout paint;}
@media(prefers-reduced-motion:reduce){
  .hero-video,.section-video-el{transform:none!important;animation:none!important;}
}


/* ══ HERO NAMEBAR — stable rotator, no overlap, no shift ══ */
.hero-kicker{margin-bottom:1.5rem;}
.hero-namebar{
  display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  margin:0 0 1.5rem;line-height:1.2;
}
.hero-name-static{
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.52);white-space:nowrap;
}
/* Grid stacks every name in the same cell: height is the tallest, always */
.hero-name-rotator{
  display:inline-grid;align-items:center;
  min-height:1.6em;
}
.hero-name-rotator .hn{
  grid-area:1 / 1;
  font-family:'EB Garamond',Georgia,serif;
  font-size:clamp(1rem,1.5vw,1.18rem);
  line-height:1.6;color:var(--gold-bright);white-space:nowrap;
  opacity:0;transform:translateY(.45em);
  transition:opacity .45s var(--ease-out),transform .45s var(--ease-out);
}
.hero-name-rotator .hn.is-active{opacity:1;transform:none;}
.hero-name-rotator .hn.is-out{opacity:0;transform:translateY(-.45em);}

@media(max-width:768px){
  .hero-kicker{margin-bottom:1.1rem;}
  .hero-namebar{gap:.5rem;margin-bottom:1.25rem;}
  .hero-kicker-text{font-size:.62rem;letter-spacing:.15em;}
  .hero-name-static{font-size:.6rem;letter-spacing:.16em;}
}

/* ══ BUG: book hero breadcrumb sat on top of the genre label ══ */
.book-hero-text{display:flex;flex-direction:column;align-items:flex-start;}
.book-hero-text > .page-breadcrumb{order:1;margin:0 0 1.1rem;}
.book-hero-text > .book-genre{order:2;margin:0 0 .9rem;}
.book-hero-text > .book-hero-title{order:3;margin:0 0 .6rem;}
.book-hero-text > .book-hero-author{order:4;margin:0 0 1.5rem;}
.book-hero-text > .book-hero-desc{order:5;margin:0 0 2rem;}
.book-hero-text > .book-hero-buy{order:6;margin:0 0 2rem;}
.book-hero-text > .book-hero-meta{order:7;margin:0;}
@media(max-width:768px){
  .book-hero-text{align-items:center;text-align:center;}
  .book-hero-text > .page-breadcrumb{justify-content:center;}
  .book-hero-text > .book-genre{justify-content:center;}
}

/* ══ Decorative background words must never sit over content ══ */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
.contact-bg-text,.booking-bg-text{z-index:0;}
.hero-inner,.page-hero-inner,.book-hero-inner,
.contact-inner,.booking-inner{position:relative;z-index:2;}
/* ══ CHECKOUT: five payment methods + bundle card ══ */
.pay-method-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));
  gap:.85rem;
}
.pay-method-card{
  display:flex;align-items:center;gap:.7rem;
  border:1.5px solid var(--line,rgba(22,32,46,.10));border-radius:4px;
  padding:.95rem 1rem;cursor:pointer;min-height:58px;
  transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast);
}
.pay-method-card:hover{border-color:var(--border-gold);transform:translate3d(0,-1px,0);}
.pay-method-card.selected{border-color:var(--gold);background:var(--gold-pale);}
.pay-method-card svg{width:20px;height:20px;color:var(--gold);flex-shrink:0;}
.pay-method-card span{font-size:.84rem;font-weight:500;line-height:1.3;}
.pay-method-card input[type=radio]{margin-left:auto;accent-color:var(--gold);flex-shrink:0;}
.pay-note{font-size:.78rem;color:var(--txt-muted,#5a6578);line-height:1.6;margin-top:.9rem;}

/* Book selector: three options including the bundle */
.book-select-row{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));
  gap:1rem;margin-bottom:1.5rem;
}
.book-select-card{min-height:96px;align-items:center;}
.bsc-covers{display:flex;gap:.25rem;flex-shrink:0;}
.bsc-covers img{width:30px;height:auto;aspect-ratio:var(--ratio-cover);object-fit:cover;border-radius:1px;
  box-shadow:0 3px 10px rgba(0,0,0,.25);}
.bsc-covers img:last-child{margin-left:-14px;transform:rotate(6deg);}
.bsc-info{display:flex;flex-direction:column;gap:.15rem;min-width:0;}

@media(max-width:768px){
  .pay-method-row,.book-select-row{grid-template-columns:1fr;}
  .pay-method-card{min-height:54px;}
}

/* ══ Buttons centred where the section is centred ══ */
.cta-banner-row,.faq-teaser-inner .btn-gold,.contact-teaser-inner .btn-gold{margin-inline:auto;}
.publisher-strip-inner > .btn-outline-ink{margin-inline:auto;}
@media(max-width:768px){
  .book-buy-row,.book-hero-buy,.hero-actions,.cta-banner-row{justify-content:center;}
}


/* ══ CHANNEL PAGES (Blog / Media) — reusable for any future channel ══ */
.channel-section{padding:clamp(4rem,8vw,6.5rem) clamp(1.25rem,5vw,3rem);background:var(--cream);}
.channel-inner{max-width:1140px;margin:0 auto;}
.channel-empty{text-align:center;padding:3rem 1rem;color:var(--txt-muted,#5a6578);}
.channel-empty p{margin-bottom:1.5rem;}

.channel-featured{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3rem);align-items:center;
  background:#fff;border:1px solid var(--border,rgba(22,32,46,.10));
  border-radius:5px;overflow:hidden;margin-bottom:clamp(2rem,5vw,3.5rem);
}
.cf-media{display:block;overflow:hidden;height:100%;min-height:260px;}
.cf-media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s var(--ease-out);}
.channel-featured:hover .cf-media img{transform:scale(1.04);}
.cf-copy{padding:clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,3vw,2.5rem) 0;}
.cf-copy h2{font-family:'EB Garamond',Georgia,serif;font-size:clamp(1.4rem,2.6vw,2rem);
  line-height:1.2;margin:.5rem 0 .6rem;}
.cf-copy h2 a{color:var(--txt-on-light,#111a27);text-decoration:none;transition:color var(--dur-fast);}
.cf-copy h2 a:hover{color:var(--gold);}
.cf-meta,.cc-meta{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;}
.cf-copy p{color:var(--txt-on-light-soft,#354152);line-height:1.8;margin-bottom:1.5rem;}

.channel-grid{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
  gap:clamp(1.25rem,3vw,2rem);align-items:stretch;
}
.channel-card{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--border,rgba(22,32,46,.10));border-radius:5px;overflow:hidden;
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out),border-color var(--dur-mid);
}
.channel-card:hover{transform:translate3d(0,-6px,0);box-shadow:0 22px 50px rgba(13,21,34,.13);border-color:var(--border-gold);}
.cc-media{display:block;aspect-ratio:3 / 2;overflow:hidden;}
.cc-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease-out);}
.channel-card:hover .cc-media img{transform:scale(1.05);}
.cc-copy{display:flex;flex-direction:column;flex:1;padding:1.5rem;}
.cc-copy h3{font-family:'EB Garamond',Georgia,serif;font-size:1.18rem;line-height:1.3;margin-bottom:.6rem;}
.cc-copy h3 a{color:var(--txt-on-light,#111a27);text-decoration:none;transition:color var(--dur-fast);}
.cc-copy h3 a:hover{color:var(--gold);}
.cc-copy p{font-size:.9rem;color:var(--txt-on-light-soft,#354152);line-height:1.75;margin-bottom:1.25rem;}
.cc-copy .btn-read-more{margin-top:auto;align-self:flex-start;color:var(--gold-text,#7a5407);}

/* Single post */
.post-hero{padding-bottom:clamp(2.5rem,5vw,3.5rem);}
.post-meta{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-bright);margin-top:1rem;}
.post-body-section{padding:clamp(3rem,7vw,5rem) clamp(1.25rem,5vw,3rem);background:var(--cream);}
.post-body-inner{max-width:760px;margin:0 auto;}
.post-figure{margin:0 0 clamp(2rem,4vw,3rem);border-radius:5px;overflow:hidden;}
.post-figure img{width:100%;height:auto;display:block;aspect-ratio:16 / 10;object-fit:cover;}
.post-prose p{font-size:1.02rem;line-height:1.9;color:var(--txt-on-light-soft,#354152);margin-bottom:1.4rem;max-width:68ch;}
.post-prose em{color:var(--txt-on-light,#111a27);}
.post-back{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border,rgba(22,32,46,.10));}

@media(max-width:860px){
  .channel-featured{grid-template-columns:1fr;}
  .cf-media{min-height:200px;aspect-ratio:16 / 9;}
  .cf-copy{padding:1.5rem;}
}
@media(max-width:768px){
  .channel-featured,.channel-card{text-align:left;}
  .cf-copy .eyebrow{justify-content:flex-start;}
}

/* ══ FOOTER contact block ══ */
@media(max-width:768px){
  .footer-contact{align-items:flex-start;text-align:left;margin-top:1rem;}
}


/* ══ PUBLISHER: services, genres, process ══ */
.pub-section{padding:clamp(4rem,8vw,6.5rem) clamp(1.25rem,5vw,3rem);background:var(--cream);}
.pub-section--alt{background:var(--cream-dark);}
.pub-inner{max-width:1180px;margin:0 auto;}
.pub-head{max-width:70ch;margin-bottom:clamp(2rem,4vw,3rem);}
.pub-head--center{margin-inline:auto;text-align:center;}
.pub-head--center .eyebrow{justify-content:center;}
.pub-sub{color:var(--txt-on-light-soft,#354152);font-size:1rem;line-height:1.85;margin-top:1rem;}

.pub-services-grid{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
  gap:clamp(1rem,2.5vw,1.75rem);align-items:stretch;
}
.pub-service{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--border,rgba(22,32,46,.10));border-radius:5px;
  padding:1.75rem 1.5rem;
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out),border-color var(--dur-mid);
}
.pub-service:hover{transform:translate3d(0,-5px,0);box-shadow:0 18px 42px rgba(13,21,34,.11);border-color:var(--border-gold);}
.pub-service-icon{
  width:44px;height:44px;border-radius:50%;background:var(--gold-pale);
  border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;
  color:var(--gold);margin-bottom:1.1rem;flex-shrink:0;
  transition:transform var(--dur-mid) var(--ease-out);
}
.pub-service:hover .pub-service-icon{transform:scale(1.08) rotate(-4deg);}
.pub-service-icon svg{width:20px;height:20px;}
.pub-service h3{font-family:'EB Garamond',Georgia,serif;font-size:1.12rem;color:var(--txt-on-light,#111a27);margin-bottom:.5rem;}
.pub-service p{font-size:.88rem;line-height:1.75;color:var(--txt-on-light-soft,#354152);margin:0;}

.pub-genres-grid{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:1.5rem;
}
.pub-genre{border-left:2px solid var(--gold);padding:.25rem 0 .25rem 1.25rem;}
.pub-genre h3{font-family:'EB Garamond',Georgia,serif;font-size:1.1rem;color:var(--txt-on-light,#111a27);margin-bottom:.45rem;}
.pub-genre p{font-size:.88rem;line-height:1.75;color:var(--txt-on-light-soft,#354152);margin:0;}

.pub-process{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
  gap:clamp(1.5rem,3vw,2.5rem);counter-reset:step;
}
.pub-step{position:relative;padding-top:.5rem;}
.pub-step-num{
  display:block;font-family:'EB Garamond',Georgia,serif;font-size:2.2rem;
  color:var(--gold);opacity:.42;line-height:1;margin-bottom:.6rem;
}
.pub-step h3{font-size:1rem;font-weight:500;color:var(--txt-on-light,#111a27);margin-bottom:.5rem;}
.pub-step p{font-size:.88rem;line-height:1.75;color:var(--txt-on-light-soft,#354152);margin:0;}

/* ══ HOMEPAGE: latest writing & media ══ */
.latest-section{padding:clamp(4rem,8vw,6.5rem) clamp(1.25rem,5vw,3rem);background:var(--cream-dark);}
.latest-inner{max-width:1180px;margin:0 auto;}
.latest-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3rem);}
.latest-sub{color:var(--txt-on-light-soft,#354152);line-height:1.8;margin-top:1rem;max-width:52ch;}
.latest-links{display:flex;gap:.75rem;flex-wrap:wrap;}
.latest-grid{
  list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
  gap:clamp(1.25rem,3vw,2rem);align-items:stretch;
}
.latest-card{
  display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--border,rgba(22,32,46,.10));border-radius:5px;overflow:hidden;
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out),border-color var(--dur-mid);
}
.latest-card:hover{transform:translate3d(0,-6px,0);box-shadow:0 22px 50px rgba(13,21,34,.13);border-color:var(--border-gold);}
.lc-media{display:block;position:relative;aspect-ratio:3 / 2;overflow:hidden;}
.lc-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease-out);}
.latest-card:hover .lc-media img{transform:scale(1.05);}
.lc-tag{
  position:absolute;top:.85rem;left:.85rem;
  background:rgba(9,14,24,.82);color:var(--gold-bright);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.35rem .7rem;border-radius:20px;backdrop-filter:blur(4px);
}
.lc-copy{display:flex;flex-direction:column;flex:1;padding:1.4rem;}
.lc-meta{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;}
.lc-copy h3{font-family:'EB Garamond',Georgia,serif;font-size:1.1rem;line-height:1.3;margin-bottom:.55rem;}
.lc-copy h3 a{color:var(--txt-on-light,#111a27);text-decoration:none;transition:color var(--dur-fast);}
.lc-copy h3 a:hover{color:var(--gold);}
.lc-copy p{font-size:.86rem;line-height:1.75;color:var(--txt-on-light-soft,#354152);margin-bottom:1.1rem;}
.lc-copy .btn-read-more{margin-top:auto;align-self:flex-start;color:var(--gold-text,#7a5407);}

/* ══ Four highlight cards stay on one row where space allows ══ */
.highlights-grid{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));}
@media(min-width:1100px){ .highlights-grid{grid-template-columns:repeat(4,1fr);} }
@media(min-width:760px) and (max-width:1099px){ .highlights-grid{grid-template-columns:repeat(2,1fr);} }

@media(max-width:768px){
  .pub-section{padding:3.5rem 1.25rem;}
  .pub-head{text-align:center;margin-inline:auto;}
  .pub-head .eyebrow{justify-content:center;}
  .pub-sub{margin-inline:auto;}
  .pub-genre{border-left:none;border-top:2px solid var(--gold);padding:1rem 0 0;text-align:center;}
  .pub-step{text-align:center;}
  .latest-head{flex-direction:column;align-items:center;text-align:center;}
  .latest-head .eyebrow{justify-content:center;}
  .latest-sub{margin-inline:auto;}
  .latest-links{justify-content:center;width:100%;}
  .latest-links > a{flex:1 1 100%;justify-content:center;}
}


/* ══ ROOT-CAUSE GUARD: bare `nav` styling must never leak.
   .page-breadcrumb is a <nav>, which was inheriting the fixed
   header rule and detaching into the footer on mobile. ══ */
.page-breadcrumb{
  position:static!important;top:auto!important;left:auto!important;right:auto!important;
  z-index:auto!important;height:auto!important;background:none!important;
  box-shadow:none!important;backdrop-filter:none!important;border:0!important;
  display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:0;
}
.footer-col[aria-label]{position:static;height:auto;background:none;box-shadow:none;padding:0;}

/* ══ HERO: smaller covers, better balance ══ */
.hero-showcase{min-height:clamp(260px,34vw,400px);}
.hero-card-1{width:clamp(132px,15vw,196px);}
.hero-card-2{width:clamp(112px,12.5vw,162px);}
.hero-video{opacity:1;}
.hero-media-veil{
  background:
    linear-gradient(90deg, rgba(9,14,24,.94) 0%, rgba(9,14,24,.88) 28%, rgba(9,14,24,.55) 50%, rgba(9,14,24,.14) 74%, rgba(9,14,24,.38) 100%),
    linear-gradient(180deg, rgba(9,14,24,.72) 0%, rgba(9,14,24,.02) 34%, rgba(9,14,24,.06) 62%, rgba(9,14,24,.82) 100%);
}
@media(max-width:1024px){
  .hero-card-1{width:clamp(126px,18vw,168px);}
  .hero-card-2{width:clamp(106px,15vw,140px);}
}
@media(max-width:768px){
  .hero-card-1{width:min(136px,38vw);}
  .hero-card-2{width:min(114px,32vw);}
  .hero-showcase{min-height:240px;}
}

/* ══ ANIMATED BACKGROUND TYPOGRAPHY — brighter, smoother, faster ══ */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
  background:linear-gradient(90deg, rgba(255,255,255,.20) 0%, rgba(255,255,255,.20) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-mask-image:linear-gradient(100deg,
    #000 0 16%, rgba(0,0,0,.78) 26%, rgba(0,0,0,.38) 36%, rgba(0,0,0,.10) 44%, rgba(0,0,0,0) 52%);
  mask-image:linear-gradient(100deg,
    #000 0 16%, rgba(0,0,0,.78) 26%, rgba(0,0,0,.38) 36%, rgba(0,0,0,.10) 44%, rgba(0,0,0,0) 52%);
  -webkit-mask-size:250% 100%;mask-size:250% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:inkWrite 5.2s cubic-bezier(.38,.02,.24,1) infinite;
  text-shadow:0 0 60px rgba(255,255,255,.06);
  will-change:mask-position;
}
@keyframes inkWrite{
  0%   {-webkit-mask-position:108% 0;mask-position:108% 0;}
  34%  {-webkit-mask-position:-34% 0;mask-position:-34% 0;}
  72%  {-webkit-mask-position:-34% 0;mask-position:-34% 0;}
  100% {-webkit-mask-position:108% 0;mask-position:108% 0;}
}
.page-hero-bg-text{animation-duration:5.8s;animation-delay:-1.4s;}
.book-hero-bg-text{animation-duration:5.5s;animation-delay:-2.6s;}
.contact-bg-text,.booking-bg-text{
  animation-duration:6.2s;animation-delay:-.7s;
  background:linear-gradient(90deg, rgba(255,255,255,.26) 0%, rgba(255,255,255,.26) 100%);
  -webkit-background-clip:text;background-clip:text;
}

/* Mobile menu grouping label */
.mobile-menu-label{
  display:block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.32);margin:1.25rem 0 .25rem;
}

/* ══ Homepage CTA buttons centred ══ */
.events-top .btn-outline-ink,.contact-teaser-inner .btn-gold,
.faq-teaser-inner .btn-gold{margin-inline:auto;}
.events-top > div:first-child{display:flex;flex-direction:column;align-items:flex-start;}
@media(max-width:768px){
  .events-top > div:first-child{align-items:center;text-align:center;}
  .events-top .btn-outline-ink{align-self:stretch;justify-content:center;}
}




/* ══════════════════════════════════════════════════════════
   FOOTER — single source of truth. Aligned columns, compact
   rhythm, left-aligned at every breakpoint.
   ══════════════════════════════════════════════════════════ */
footer{
  position:relative;overflow:hidden;background:var(--ink-rich,#0d1522);
  padding:clamp(2.5rem,4.5vw,3.75rem) clamp(1.25rem,5vw,3rem) clamp(1.1rem,1.8vw,1.5rem);
  /* The footer was 564px tall at 1440 while the video is 16:9, so cover was
     discarding 30% of the frame — 122px off the top, which is what cut the
     heads off. Taller footer = far less crop. */
  min-height:clamp(600px,50vw,820px);
  display:flex;flex-direction:column;justify-content:center;
}
.footer-video{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.footer-video-el{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  /* Motion analysis puts this clip's action at y=0.48, so hold slightly high
     and the remaining crop takes from the empty foreground, not the subjects. */
  object-position:50% 44%;
  opacity:.92;filter:saturate(1.08) contrast(1.06) brightness(1.06);
}
/* Much lighter than before: the video should read as footage, not wallpaper.
   Legibility is handled by the panel behind the text, not by drowning the art. */
.footer-video-veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(13,21,34,.34) 0%,rgba(13,21,34,.06) 34%,rgba(13,21,34,.12) 66%,rgba(13,21,34,.48) 100%);
}
.footer-inner{
  position:relative;z-index:1;max-width:1200px;margin:0 auto;width:100%;
  text-shadow:0 1px 3px rgba(6,11,20,.75);
  background:linear-gradient(180deg,rgba(9,14,24,.62),rgba(9,14,24,.72));
  border:1px solid rgba(255,255,255,.07);
  border-radius:4px;
  padding:clamp(1.5rem,3vw,2.5rem) clamp(1.25rem,3vw,2.5rem) clamp(1rem,1.6vw,1.35rem);
}
@supports (backdrop-filter:blur(6px)){
  .footer-inner{backdrop-filter:blur(7px) saturate(1.1);background:linear-gradient(180deg,rgba(9,14,24,.52),rgba(9,14,24,.64));}
}

.footer-top{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr) minmax(0,.95fr) minmax(0,1.2fr);
  gap:clamp(1.5rem,3vw,2.5rem);
  align-items:start;
  padding-bottom:clamp(1.5rem,2.5vw,2rem);
  border-bottom:1px solid rgba(255,255,255,.09);
}
.footer-brand,.footer-col{display:flex;flex-direction:column;min-width:0;}

/* All four headings share one baseline so columns line up exactly */
.footer-col-title,.footer-brand-name{
  min-height:1.75rem;display:flex;align-items:flex-end;
  margin:0 0 .85rem;padding:0;line-height:1.2;
}
.footer-col-title{
  font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold);font-weight:600;
}
.footer-brand-name{font-family:'EB Garamond',Georgia,serif;font-size:1.3rem;color:#fff;}
.footer-brand-name span{color:var(--gold-bright);}
.footer-brand-tag{
  font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin:0 0 .7rem;line-height:1.65;
}
.footer-brand-p{font-size:.82rem;line-height:1.7;color:rgba(255,255,255,.8);margin:0;max-width:40ch;}

.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;}
.footer-col a{font-size:.84rem;line-height:1.45;color:rgba(255,255,255,.88);text-decoration:none;transition:color var(--dur-fast);}
.footer-col a:hover{color:var(--gold-bright);}

/* Publisher column: seal beside the name, details beneath */
.footer-col-publisher .footer-pub-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.6rem;}
.footer-col-publisher .brand-mark{
  width:52px;height:52px;padding:.35rem;flex-shrink:0;margin:0;
  box-shadow:0 4px 14px rgba(0,0,0,.32),0 0 0 1px rgba(184,134,11,.26);
}
.footer-pub-name{margin:0;}
.footer-pub-name a{font-family:'EB Garamond',Georgia,serif;font-size:1rem;color:#fff;text-decoration:none;line-height:1.25;}
.footer-pub-name a:hover{color:var(--gold-bright);}
.footer-col-note{font-size:.77rem;line-height:1.6;color:rgba(255,255,255,.74);margin:0 0 .75rem;max-width:32ch;}
.footer-contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;}
.footer-contact-list a{font-size:.83rem;color:var(--gold-bright);text-decoration:none;}
.footer-contact-list a:hover{text-decoration:underline;}

.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  gap:.6rem 1.5rem;flex-wrap:wrap;padding-top:clamp(.9rem,1.6vw,1.2rem);
}
.footer-bottom p{font-size:.75rem;color:rgba(255,255,255,.66);margin:0;}
.seo-tags{font-size:.63rem;line-height:1.6;color:rgba(255,255,255,.16);margin:.8rem 0 0;text-shadow:none;}

/* Tablet: 2 columns, brand spans */
@media(max-width:1024px){
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 2.25rem;}
  .footer-brand{grid-column:1 / -1;}
  .footer-brand-p{max-width:62ch;}
}

/* Mobile: LEFT aligned, separated bands, two-up link lists */
@media(max-width:640px){
  footer{padding:2rem 1.25rem 1.1rem;}
  .footer-top{grid-template-columns:1fr;gap:0;text-align:left;padding-bottom:1rem;}
  .footer-brand{grid-column:auto;padding-bottom:1.25rem;}
  .footer-col{padding:1.1rem 0;border-top:1px solid rgba(255,255,255,.07);}
  .footer-col-title,.footer-brand-name{min-height:auto;margin-bottom:.7rem;align-items:center;}
  .footer-brand-name{font-size:1.2rem;}
  .footer-brand-p{max-width:none;}
  .footer-col:not(.footer-col-publisher) ul{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;
  }
  .footer-col-note{max-width:none;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:.3rem;}
  .seo-tags{text-align:left;}
}
@media(max-width:380px){
  .footer-col:not(.footer-col-publisher) ul{grid-template-columns:1fr;}
}

/* ══ BACKGROUND TYPOGRAPHY — fully visible on every device ══ */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
  max-width:96vw;                     /* never overflow the viewport */
  white-space:nowrap;
  text-align:center;
  background:linear-gradient(90deg, rgba(255,255,255,.24) 0%, rgba(255,255,255,.24) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-mask-image:linear-gradient(100deg,#000 0 14%,rgba(0,0,0,.82) 24%,rgba(0,0,0,.42) 34%,rgba(0,0,0,.12) 43%,rgba(0,0,0,0) 52%);
  mask-image:linear-gradient(100deg,#000 0 14%,rgba(0,0,0,.82) 24%,rgba(0,0,0,.42) 34%,rgba(0,0,0,.12) 43%,rgba(0,0,0,0) 52%);
  -webkit-mask-size:240% 100%;mask-size:240% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:inkWrite 5s cubic-bezier(.36,.02,.22,1) infinite;
  will-change:mask-position;
}
@media(max-width:768px){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
    font-size:clamp(3.2rem,17vw,6rem);
    left:50%;transform:translate(-50%,-50%);
    max-width:100vw;
    background:linear-gradient(90deg, rgba(255,255,255,.30) 0%, rgba(255,255,255,.30) 100%);
    -webkit-background-clip:text;background-clip:text;
  }
}
@media(max-width:420px){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,.contact-bg-text,.booking-bg-text{
    font-size:clamp(2.6rem,19vw,4.6rem);
  }
}

/* ══ BUTTONS — one system, everywhere ══ */
.btn-gold,.btn-ghost-white,.btn-amazon-dark,.btn-signed-copy,
.btn-outline-ink,.btn-gold-ink,.btn-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:48px;padding:.9rem 1.7rem;
  font-family:'Jost',system-ui,sans-serif;
  font-size:.78rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  line-height:1;border-radius:2px;text-decoration:none;text-align:center;
  cursor:pointer;white-space:nowrap;
}
.btn-ghost-white{padding-inline:0;background:none;border:0;}
.btn-read-more{display:inline-flex;align-items:center;gap:.4rem;min-height:auto;
  padding:.4rem 0;background:none;border:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;}
@media(max-width:768px){
  .btn-gold,.btn-amazon-dark,.btn-signed-copy,.btn-outline-ink,.btn-gold-ink,.btn-submit{
    width:100%;max-width:340px;
  }
  .cta-banner-row,.book-buy-row,.book-hero-buy,.hero-actions,.latest-links{
    flex-direction:column;align-items:center;width:100%;
  }
  /* Publisher page Contact Us centred on mobile */
  .cta-banner-row > a{margin-inline:auto;}
}


/* ══════════════════════════════════════════════════════════
   DECORATIVE BACKGROUND TYPOGRAPHY
   Root cause of the clipping: the word was centred with a
   translate on a fixed font-size, so on narrow viewports the
   glyphs ran past both edges. Now it is width-constrained and
   scales to the container instead of the viewport.
   ══════════════════════════════════════════════════════════ */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
.contact-bg-text,.booking-bg-text{
  position:absolute;left:50%;top:50%;
  transform:translate3d(-50%,calc(-50% + var(--par,0px)),0);
  width:max-content;max-width:96vw;
  font-family:'EB Garamond',Georgia,serif;font-weight:500;
  font-size:min(17vw, 13rem);
  line-height:.92;letter-spacing:-.02em;white-space:nowrap;
  pointer-events:none;user-select:none;z-index:0;
  /* Scale down rather than overflow when the word is long */
  transform-origin:center center;
}
/* Long words need a tighter cap so nothing is cut off */
.book-hero-bg-text{font-size:min(15vw, 11rem);}
.contact-bg-text,.booking-bg-text{font-size:min(14vw, 10rem);}

@media(max-width:1024px){
  .hero-bg-text,.page-hero-bg-text{font-size:min(18vw, 9rem);}
  .book-hero-bg-text{font-size:min(16vw, 8rem);}
  .contact-bg-text,.booking-bg-text{font-size:min(15vw, 7.5rem);}
}
@media(max-width:768px){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
  .contact-bg-text,.booking-bg-text{
    font-size:min(19vw, 6rem);
    max-width:94vw;
  }
}
@media(max-width:420px){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
  .contact-bg-text,.booking-bg-text{font-size:min(20vw, 4.6rem);}
}

/* Brighter, more elegant ink sweep with a soft trailing glow */
.hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
.contact-bg-text,.booking-bg-text{
  background:linear-gradient(100deg,
    rgba(255,255,255,.30) 0%, rgba(255,255,255,.22) 45%,
    rgba(212,160,32,.26) 62%, rgba(255,255,255,.22) 80%, rgba(255,255,255,.30) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-mask-image:linear-gradient(100deg,
    #000 0 14%, rgba(0,0,0,.82) 24%, rgba(0,0,0,.44) 34%, rgba(0,0,0,.12) 43%, rgba(0,0,0,0) 51%);
  mask-image:linear-gradient(100deg,
    #000 0 14%, rgba(0,0,0,.82) 24%, rgba(0,0,0,.44) 34%, rgba(0,0,0,.12) 43%, rgba(0,0,0,0) 51%);
  -webkit-mask-size:240% 100%;mask-size:240% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  animation:inkWrite 5s cubic-bezier(.36,.02,.22,1) infinite;
}
@media(prefers-reduced-motion:reduce){
  .hero-bg-text,.page-hero-bg-text,.book-hero-bg-text,
  .contact-bg-text,.booking-bg-text{
    animation:none;-webkit-mask-image:none;mask-image:none;
    color:rgba(255,255,255,.10);background:none;-webkit-text-fill-color:currentColor;
  }
}

/* ══════════════════════════════════════════════════════════
   BUTTON SYSTEM — single source of truth
   ══════════════════════════════════════════════════════════ */
.btn-gold,.btn-ghost-white,.btn-amazon-dark,.btn-signed-copy,
.btn-outline-ink,.btn-gold-ink,.btn-submit,.order-submit-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:48px;padding:.9rem 1.7rem;
  font-family:'Jost',system-ui,sans-serif;
  font-size:.78rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  line-height:1;border-radius:2px;text-decoration:none;text-align:center;
  cursor:pointer;border:1px solid transparent;white-space:nowrap;
  transition:background var(--dur-fast) var(--ease-out),
             color var(--dur-fast) var(--ease-out),
             border-color var(--dur-fast) var(--ease-out),
             transform var(--dur-fast) var(--ease-out),
             box-shadow var(--dur-fast) var(--ease-out);
}
.btn-read-more{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.76rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;background:none;border:none;padding:.4rem 0;min-height:auto;
  transition:transform var(--dur-fast) var(--ease-out),color var(--dur-fast);
}
.btn-ghost-white{background:none;border:none;padding-left:0;padding-right:0;}
/* Rows share one alignment contract */
.hero-actions,.book-buy-row,.book-hero-buy,.cta-banner-row,.latest-links{
  display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;
}
.cta-banner-row{justify-content:center;}

/* Mobile: buttons go full width and centre, everywhere, once */
@media(max-width:768px){
  .hero-actions,.book-buy-row,.book-hero-buy,.cta-banner-row,.latest-links{
    justify-content:center;width:100%;
  }
  .hero-actions > a,.book-buy-row > a,.book-hero-buy > a,
  .cta-banner-row > a,.latest-links > a,
  .etc-body .btn-outline-ink,.event-card-body .btn-outline-ink,
  .publisher-strip-inner > .btn-outline-ink{
    flex:1 1 100%;width:100%;justify-content:center;
  }
  .btn-ghost-white{padding:.9rem 1rem;}
  /* Publisher page CTA centred on mobile */
  .cta-banner-row{flex-direction:column;align-items:stretch;}
}


/* ══ CART ══ */
.cart{background:var(--cream);border:1px solid var(--border,rgba(22,32,46,.10));border-radius:4px;padding:1.1rem 1.25rem;margin-bottom:1.5rem;}
.cart-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem;}
.cart-item{
  display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.75rem 1rem;
  padding:.75rem 0;border-bottom:1px solid var(--border,rgba(22,32,46,.08));
}
.cart-item:last-child{border-bottom:none;}
.cart-item-main{display:flex;flex-direction:column;gap:.15rem;min-width:0;}
.cart-item-title{font-size:.9rem;font-weight:500;color:var(--txt-on-light,#111a27);line-height:1.35;}
.cart-item-unit{font-size:.74rem;color:var(--txt-muted,#5a6578);}
.cart-item-qty{display:flex;align-items:center;border:1px solid var(--border,rgba(22,32,46,.12));border-radius:3px;background:#fff;}
.cart-item-qty .qty-btn{width:32px;height:34px;background:none;border:none;cursor:pointer;font-size:1rem;color:var(--ink);}
.cart-item-qty .qty-btn:hover{background:var(--gold-pale);}
.cart-item-count{min-width:28px;text-align:center;font-size:.88rem;font-variant-numeric:tabular-nums;}
.cart-item-line{font-size:.92rem;font-weight:600;color:var(--txt-on-light,#111a27);font-variant-numeric:tabular-nums;}
.cart-remove{background:none;border:none;cursor:pointer;font-size:1.2rem;line-height:1;color:var(--txt-muted,#5a6578);padding:.25rem .4rem;border-radius:3px;transition:color var(--dur-fast),background var(--dur-fast);}
.cart-remove:hover{color:#b91c1c;background:rgba(185,28,28,.08);}
.cart-empty{font-size:.86rem;color:var(--txt-muted,#5a6578);margin:.25rem 0;}
.cart-totals{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border,rgba(22,32,46,.12));display:flex;flex-direction:column;gap:.4rem;}
.cart-row{display:flex;justify-content:space-between;font-size:.86rem;color:var(--txt-muted,#5a6578);}
.cart-row--total{font-size:1.02rem;font-weight:600;color:var(--txt-on-light,#111a27);}
.order-submit-btn:disabled{opacity:.5;cursor:not-allowed;}

@media(max-width:560px){
  .cart-item{grid-template-columns:1fr auto;grid-template-areas:'main rm' 'qty line';row-gap:.6rem;}
  .cart-item-main{grid-area:main;}
  .cart-remove{grid-area:rm;justify-self:end;}
  .cart-item-qty{grid-area:qty;}
  .cart-item-line{grid-area:line;justify-self:end;}
}


/* ══════════════════════════════════════════════════════════
   BUY-ROW BUTTON SIZING — authoritative, appended last
   Root cause of the oversized Amazon button: the unified
   button system applies 48px / .9rem 1.7rem / .78rem to every
   button on the site. Buy rows carry two buttons side by side
   and need a compact variant, not a different button system.
   ══════════════════════════════════════════════════════════ */
.book-buy-row .btn-amazon-dark,.book-buy-row .btn-signed-copy,
.book-hero-buy .btn-amazon-dark,.book-hero-buy .btn-signed-copy{
  min-height:42px;padding:.68rem 1.2rem;
  font-size:.72rem;letter-spacing:.075em;
}

/* Mobile: the two buy buttons PAIR at 50% instead of stacking
   full-width (convention 6). Overrides the generic
   flex:1 1 100% / max-width:340px rules above. */
@media(max-width:768px){
  /* These rows can carry two buy buttons OR two buttons plus a text link.
     Pair the two solid buttons at 50%; any third child takes its own row. */
  .book-buy-row,.book-hero-buy{
    flex-direction:row;flex-wrap:wrap;align-items:stretch;
    justify-content:center;gap:.55rem;width:100%;
  }
  .book-buy-row > .btn-amazon-dark,.book-buy-row > .btn-signed-copy,
  .book-hero-buy > .btn-amazon-dark,.book-hero-buy > .btn-signed-copy{
    flex:1 1 calc(50% - .3rem);width:auto;min-width:0;max-width:none;
    padding-inline:.6rem;
    font-size:.68rem;letter-spacing:.04em;
    white-space:normal;line-height:1.25;text-align:center;
    min-height:46px;
  }
  .book-buy-row > .btn-read-more,.book-hero-buy > .btn-read-more{
    flex:1 1 100%;width:100%;max-width:none;justify-content:center;
    min-height:44px;white-space:nowrap;
  }
}
@media(max-width:360px){
  .book-buy-row > a,.book-hero-buy > a{font-size:.62rem;padding-inline:.45rem;}
}


/* ══════════════════════════════════════════════════════════
   ORDER PAGE — summary mirror, inline error, heading level
   ══════════════════════════════════════════════════════════ */
.order-summary h2{
  font-family:'EB Garamond',Georgia,serif;font-size:1.2rem;font-weight:500;
  color:#fff;margin:0 0 1.35rem;line-height:1.25;
}
.summary-lines{
  display:flex;flex-direction:column;gap:.5rem;
  margin-bottom:1.1rem;padding-bottom:1.1rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.summary-line{
  display:flex;justify-content:space-between;gap:1rem;align-items:baseline;
  font-size:.84rem;color:rgba(255,255,255,.78);line-height:1.45;
}
.summary-line-t{min-width:0;}
.summary-line-v{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;}
.summary-line--empty{color:rgba(255,255,255,.45);font-style:italic;}

.order-error{
  margin:1.5rem 0 0;padding:.85rem 1rem;
  background:rgba(185,28,28,.07);border-left:3px solid #b91c1c;border-radius:3px;
  font-size:.86rem;line-height:1.6;color:#8f1d1d;
}
.order-error[hidden]{display:none;}


/* ══════════════════════════════════════════════════════════
   v12 — FOOTER MEDIA, CONTRAST TOKENS, TAP TARGETS
   Appended last: this block is authoritative.
   ══════════════════════════════════════════════════════════ */

/* ── Footer video on mobile ──────────────────────────────
   A 390x1036 footer against 16:9 footage means cover throws
   away ~78% of the width — you saw a meaningless sliver.
   Below 768px the media becomes a real 16:9 band pinned to
   the top of the footer, so the WHOLE frame is visible.     */
@media(max-width:768px){
  footer{
    min-height:0;
    display:block;
    padding-top:0;
  }
  .footer-video{
    position:relative;inset:auto;
    width:100%;aspect-ratio:16/9;
    margin:0 calc(-1 * clamp(1.25rem,5vw,3rem)) clamp(1.25rem,4vw,2rem);
    width:calc(100% + 2 * clamp(1.25rem,5vw,3rem));
  }
  .footer-video-el{object-position:50% 50%;opacity:1;}
  .footer-video-veil{
    background:linear-gradient(180deg,
      rgba(13,21,34,.28) 0%,rgba(13,21,34,.06) 42%,rgba(13,21,34,.55) 100%);
  }
  /* Text no longer sits over the footage, so the panel is not needed */
  .footer-inner{
    background:none;border:none;backdrop-filter:none;padding-inline:0;
    text-shadow:none;
  }
}

/* ── Accessible gold, SURFACE-SCOPED ─────────────────────
   #b8860b measured 3.2:1 as text on cream and 3.19:1 on navy;
   white-on-gold buttons measured 3.25:1. All below AA 4.5.
   Assigning gold per component was the original mistake — the
   same component appears on both light and dark bands, so the
   token has to follow the SURFACE, exactly like --txt-body.   */
:root{
  --gold-on-light:#7a5407;      /* 5.4:1 on cream */
  --gold-on-dark:#eec257;       /* 8.4:1 on navy  */
  --gold-btn-text:#141d2b;      /* 5.6:1 on gold  */
  --gold-text:var(--gold-on-light);
}
.hero,#books,#contact,#booking-form,footer,
.book-hero,.page-hero,.contact-teaser-section,.order-hero,
.cta-banner--dark,.publisher-hero{
  --gold-text:var(--gold-on-dark);
}
#about,#events,#faq,#publisher,#how-it-works,#events-detail,
.book-content-section,.book-highlights,.cta-banner,
.faq-teaser-section,.publisher-strip,.order-section,
.pullquote-section,.latest-section,.channel-section{
  --gold-text:var(--gold-on-light);
}

/* Every gold text component now consumes the surface token */
.eyebrow,.bsc-price,.events-stat-label,.pullquote-attr,
.section-title em,h2.section-title em,h1.hero-title em,
.about-lead em,.page-hero-title em,.book-hero-title em,
.cover-strip-copy .section-title em,
.btn-read-more,.btn-signed-copy,
.footer-contact-list a,.footer-bottom a,
.page-breadcrumb a{
  color:var(--gold-text);
}
.btn-read-more,.btn-signed-copy{border-color:currentColor;}

/* Nav logo flips with the nav's own background */
.nav-logo span{color:var(--gold-on-dark);}
nav#mainNav.scrolled .nav-logo span{color:var(--gold-on-light);}

/* Muted labels on the dark book hero */
.book-hero .book-meta-label{color:rgba(255,255,255,.74);}

/* Solid gold buttons: ink text rather than white */
.btn-gold,.nav-cta,.btn-submit,.order-submit-btn,.btn-gold-ink{
  color:var(--gold-btn-text)!important;
  background:var(--gold-bright);
}
.btn-gold:hover,.nav-cta:hover,.btn-submit:hover,.order-submit-btn:hover{
  background:#e0ae2c;color:var(--gold-btn-text)!important;
}
.btn-gold svg,.btn-submit svg,.order-submit-btn svg{stroke:var(--gold-btn-text);}

/* Footer keyword line was 1.6:1 — invisible text is both an
   accessibility failure and a search-spam signal. */
.seo-tags{color:rgba(255,255,255,.58);}

/* ── Tap targets (WCAG 2.5.8 / 44px) ────────────────────── */
.nav-hamburger{min-width:44px;min-height:44px;padding:10px 8px;
  align-items:center;justify-content:center;}
.nav-logo{display:inline-flex;align-items:center;min-height:44px;}
.footer-col li a,.footer-contact-list a{
  display:inline-block;padding-block:.42rem;min-height:32px;
}
.page-breadcrumb a,.page-breadcrumb span{display:inline-block;padding-block:.4rem;}
.btn-read-more{min-height:44px;display:inline-flex;align-items:center;}
.qty-stepper input{min-height:44px;align-self:stretch;}
.pay-method-card input[type="radio"]{width:18px;height:18px;}
.latest-item a,.channel-card-title a,.book-title-link{
  display:inline-block;padding-block:.25rem;
}
@media(pointer:coarse){
  .footer-col li a,.footer-contact-list a{padding-block:.55rem;min-height:40px;}
}

/* ── Remaining tap targets ─────────────────────────────── */
.footer-col li a,.footer-contact-list a{padding-block:.6rem;min-height:42px;}
.page-breadcrumb a,.page-breadcrumb span{padding-block:.62rem;min-height:42px;}
.book-title-link,.latest-item a,.channel-card-title a,.cc-title a,.lc-title a{
  display:inline-block;padding-block:.5rem;min-height:42px;
}
.contact-note a{display:inline-block;padding-block:.4rem;}
/* Payment radios: the whole card is the target, the input is decorative */
.pay-method-card{position:relative;}
.pay-method-card input[type="radio"]{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;margin:0;cursor:pointer;
}
.pay-method-card::after{
  content:'';position:absolute;top:.7rem;right:.7rem;width:18px;height:18px;
  border:1.5px solid var(--border);border-radius:50%;background:var(--white);
}
.pay-method-card.selected::after{
  content:'\2713';background:var(--gold);border-color:var(--gold);color:#fff;
  font-size:.62rem;line-height:18px;text-align:center;
}

/* ── v12 final pass: surfaces and targets the sweep still flagged ── */

/* .cover-strip is a dark aside sitting inside a light section, so it needs
   its own dark token or its italic emphasis inherits the light gold. */
.cover-strip,.publisher-strip--dark{--gold-text:var(--gold-on-dark);}

/* Breadcrumb: the current-page span and separators, not just the links */
.page-breadcrumb span{color:var(--gold-text);}
.page-breadcrumb span:not([class]){color:rgba(255,255,255,.68);}
.page-breadcrumb a{color:var(--gold-on-dark);}

.publisher-strip-eyebrow{color:var(--gold-text);}

/* Footer text must not depend on which video frame is behind it. The panel
   carries the contrast; the footage stays vivid around and outside it. */
.footer-inner{background:linear-gradient(180deg,rgba(9,14,24,.86),rgba(9,14,24,.90));}
@supports (backdrop-filter:blur(6px)){
  .footer-inner{background:linear-gradient(180deg,rgba(9,14,24,.80),rgba(9,14,24,.86));}
}
.footer-pub-name a,.footer-bottom p a{
  display:inline-block;padding-block:.5rem;min-height:40px;
}
h3 a,.cc-title a,.lc-title a,.latest-title a{
  display:inline-block;padding-block:.45rem;min-height:40px;
}

/* ── v12: last three ─────────────────────────────────────── */
.book-pullquote em,blockquote em,.pullquote-text em{color:var(--gold-text);}

/* Card headings that are links need a real target height */
.cf-copy h2 a,.cc-copy h2 a,.lc-copy h2 a,
.cf-copy h3 a,.cc-copy h3 a,.lc-copy h3 a{
  display:inline-block;padding-block:.5rem;min-height:42px;
}

/* The logo mark must stay legible in BOTH nav states. The scrolled nav paints
   cream, so the dark-surface gold would drop to 1.6:1 there. */
nav#mainNav .nav-logo span{color:var(--gold-on-dark);}
nav#mainNav.scrolled .nav-logo span,
nav#mainNav.is-solid .nav-logo span{color:var(--gold-on-light);}

/* ── Books section video: the section runs ~1418px tall, so a 16:9 clip in a
   full-height box was cropping ~40% horizontally. Cap the media layer and fade
   it into the section colour so the composition survives and less is wasted. */
#books .section-video{
  bottom:auto;height:min(100%,900px);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 100%);
}
@media(max-width:768px){
  #books .section-video{height:min(100%,520px);}
}

/* Last two touch targets */
.publisher-strip-name{display:inline-block;padding-block:.4rem;min-height:44px;}
.contact-note a{padding-block:.55rem;min-height:42px;}


/* ══════════════════════════════════════════════════════════
   v13 — footer panel, hero gloss, book-page backgrounds
   ══════════════════════════════════════════════════════════ */

/* 1. The footer panel was reading as a solid blue box and hiding the
      footage entirely. Drop it to a soft scrim: legible, but the video
      reads through it everywhere. */
.footer-inner{
  background:none;border-color:transparent;
  text-shadow:0 1px 4px rgba(4,8,16,.92),0 0 18px rgba(4,8,16,.55);
}
@supports (backdrop-filter:blur(6px)){
  .footer-inner{
    background:none;backdrop-filter:none;
  }
}
/* Text carries its own weight now that the panel is see-through */
footer .footer-col a,footer .footer-contact-list a{color:rgba(255,255,255,.95);}
footer .footer-brand-p,.footer-col-note{color:rgba(255,255,255,.88);}
.footer-bottom p{color:rgba(255,255,255,.80);}
.footer-brand-tag{color:rgba(255,255,255,.86);}

/* 2. Hero: shading only — no sheen, no sparkle, no animation.
      A soft top-down grade plus a frame vignette, tuned to the footage
      so the book stays lit and the copy sits on depth rather than glare. */
.hero-media::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(6,11,20,.44) 0%,rgba(6,11,20,.10) 26%,
      rgba(6,11,20,.06) 50%,rgba(6,11,20,.34) 78%,rgba(6,11,20,.62) 100%),
    radial-gradient(118% 86% at 50% 44%,transparent 46%,rgba(6,11,20,.52) 100%);
}

/* 3. Book pages carry background footage in the DARK hero band at the top,
      reusing the existing partial and lazy machinery — no new JS. */
.book-hero{position:relative;overflow:hidden;}
.book-page-media{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.book-page-media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:50% 44%;opacity:.42;
  filter:saturate(1.06) contrast(1.05);
}
/* Dark scrim: the hero copy and cover sit on top, so this protects them
   while leaving the footage clearly readable at the edges. */
.book-page-media .veil{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(22,32,46,.62) 0%,rgba(22,32,46,.40) 34%,rgba(22,32,46,.58) 74%,rgba(22,32,46,.92) 100%),
    linear-gradient(90deg,rgba(22,32,46,.55) 0%,transparent 46%);
}
/* Everything in the hero rides above the media layer */
.book-hero-inner,.book-hero-bg-text{position:relative;z-index:1;}
@media(max-width:768px){
  .book-page-media video{opacity:.34;}
  .book-page-media .veil{
    background:linear-gradient(180deg,rgba(22,32,46,.70) 0%,rgba(22,32,46,.52) 40%,rgba(22,32,46,.90) 100%);
  }
}


/* ══════════════════════════════════════════════════════════
   v14 — footer treated like the books band: shaded, calm, no panel
   ══════════════════════════════════════════════════════════ */
.footer-video-el{
  opacity:.42;
  filter:saturate(1.04) contrast(1.02) brightness(1.0);
  object-position:50% 44%;
}
.footer-video-veil{
  background:
    linear-gradient(180deg,rgba(11,17,28,.72) 0%,rgba(11,17,28,.52) 30%,
      rgba(11,17,28,.58) 66%,rgba(11,17,28,.86) 100%),
    radial-gradient(120% 84% at 50% 44%,rgba(11,17,28,.18) 0%,rgba(11,17,28,.62) 100%);
}
.footer-inner{
  background:none;border:none;backdrop-filter:none;
  padding-inline:0;
  text-shadow:0 1px 3px rgba(4,8,16,.7);
}
footer .footer-col a,footer .footer-contact-list a{color:rgba(255,255,255,.90);}
footer .footer-brand-p,.footer-col-note{color:rgba(255,255,255,.80);}
.footer-bottom p{color:rgba(255,255,255,.72);}
.footer-brand-tag{color:rgba(255,255,255,.80);}
.seo-tags{color:rgba(255,255,255,.50);}

@media(max-width:768px){
  /* the mobile band shows the full frame, so it needs less veil than the
     full-bleed desktop treatment */
  .footer-video-el{opacity:.9;}
  .footer-video-veil{
    background:linear-gradient(180deg,rgba(11,17,28,.30) 0%,rgba(11,17,28,.10) 42%,rgba(11,17,28,.58) 100%);
  }
  .footer-inner{text-shadow:none;}
}

/* ── Book hero meta: a fixed grid, not a wrapping flex row.
   With four items a flex row wraps 2+2 or 3+1 depending on how long the
   values happen to be, so the two book pages did not line up with each
   other. A grid makes the layout independent of the content length. */
.book-hero-meta{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.5rem;align-items:start;
}
@media(max-width:900px){
  .book-hero-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.35rem 1.5rem;}
}
@media(max-width:768px){
  .book-hero-meta{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.15rem 1.25rem;justify-content:stretch;text-align:center;
  }
  .book-meta-item{align-items:center;}
}

/* Book hero footage on narrow screens: a 390x1288 hero against 16:9 footage
   crops ~83% of the frame. Cap the media to a band at the top of the hero and
   fade it out, so the clip reads as a real image rather than a sliver. */
@media(max-width:768px){
  .book-page-media{
    height:min(100%,430px);bottom:auto;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
            mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
  }
  .book-page-media video{object-position:50% 42%;}
}

/* MOBILE TAP TARGETS: WCAG-safe minimum hit area */
@media(max-width:768px){
  .qty-btn,.cart-remove,.social-link,.nav-toggle,.pagination a,.footer-social a,
  .site-footer a[aria-label],.site-header a[aria-label],a.icon-link{
    min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  }
  .btn-gold,.btn-ghost-white{justify-content:center;text-align:center;}
  .cart-item-qty{gap:0.35rem;}
  .site-footer a,.site-header a,nav a{min-height:44px;}
  .footer-col a,.footer-col li a{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;}
  .footer-col li{margin-left:-8px;}
}
