/* ============ SOULQORA — shared styles ============ */
:root{
  --bg:#0a0a0d;
  --bg2:#111114;
  --panel:#15131a;
  --gold:#c9a15a;
  --gold-soft:#e8cf9c;
  --text:#f2eee6;
  --muted:#9a958c;
  --line: rgba(255,255,255,.08);
  --maroon:#3a1418;
  --navy:#101826;
  --radius:8px;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Georgia','Times New Roman',serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* Site-wide faint starfield so no stretch of the page ever feels empty */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 8% 12%, rgba(232,207,156,.5), transparent),
    radial-gradient(1px 1px at 22% 68%, rgba(255,255,255,.35), transparent),
    radial-gradient(1.5px 1.5px at 38% 24%, rgba(255,255,255,.3), transparent),
    radial-gradient(1px 1px at 52% 82%, rgba(232,207,156,.4), transparent),
    radial-gradient(1px 1px at 66% 14%, rgba(255,255,255,.3), transparent),
    radial-gradient(1.5px 1.5px at 78% 58%, rgba(255,255,255,.25), transparent),
    radial-gradient(1px 1px at 91% 38%, rgba(232,207,156,.4), transparent),
    radial-gradient(1px 1px at 14% 90%, rgba(255,255,255,.25), transparent),
    radial-gradient(1.5px 1.5px at 85% 82%, rgba(255,255,255,.3), transparent);
  background-repeat:repeat; background-size:100% 2400px;
  opacity:.55;
}
body > *{ position:relative; z-index:1; }
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 20px;}
.serif{font-family:'Georgia','Times New Roman',serif;}
.sans{font-family:'Helvetica Neue',Arial,sans-serif;}

/* ---------- TOPBAR ---------- */
.topbar{
  position:relative; overflow:hidden;
  background:linear-gradient(90deg,#dcb975,#f3e2b8,#dcb975);
  background-size:220% 100%;
  animation:topbarSheen 7s ease-in-out infinite;
  color:#1a1006;
  font-family:'Helvetica Neue',Arial,sans-serif;
  text-align:center; font-size:.78rem; letter-spacing:.06em;
  padding:8px 12px;
}
@keyframes topbarSheen{
  0%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}
@media (prefers-reduced-motion:reduce){
  .topbar{ animation:none; }
}

/* ---------- NAV ---------- */
header.site-nav{
  position:sticky; top:0; z-index:50;
  border-bottom:1px solid var(--line);
}
/* Blur lives on a pseudo-element, not the header itself — a filter/backdrop-filter on
   header.site-nav would create a new containing block for its position:fixed descendants
   (the mobile nav drawer), collapsing the drawer down to the header's own height instead
   of the full viewport. Keeping it on ::before avoids that entirely. */
header.site-nav::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(10,10,13,.85);
  backdrop-filter:blur(10px);
}
.nav-inner{
  max-width:var(--maxw); margin:0 auto; padding:16px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.logo{
  font-size:1.3rem; letter-spacing:.15em; text-transform:uppercase;
  text-decoration:none; color:var(--text); white-space:nowrap;
}
.logo span{color:var(--gold-soft);}

nav.main-links{ display:flex; align-items:center; gap:30px; font-family:'Helvetica Neue',Arial,sans-serif; font-size:.92rem; }
nav.main-links a{ text-decoration:none; color:var(--text); opacity:.85; transition:opacity .15s; position:relative; }
nav.main-links a:hover{ opacity:1; }

.has-dropdown{ position:relative; }
.dropdown{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%);
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  min-width:240px; padding:10px; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
  box-shadow:0 20px 40px rgba(0,0,0,.5);
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
}
.dropdown a{ display:block; padding:9px 12px; border-radius:6px; font-size:.88rem; opacity:.9; }
.dropdown a:hover{ background:rgba(255,255,255,.05); opacity:1; }

.nav-actions{ display:flex; align-items:center; gap:16px; }
.icon-btn{
  background:none; border:none; color:var(--text); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; position:relative;
  transition:background .15s;
}
.icon-btn:hover{ background:rgba(255,255,255,.06); }
.cart-count{
  position:absolute; top:-2px; right:-2px;
  background:var(--gold-soft); color:#1a1006;
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:.68rem; font-weight:700;
  min-width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; padding:0 3px;
}
.currency-tag{
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:.78rem; color:var(--muted);
  border:1px solid var(--line); padding:6px 10px; border-radius:999px; white-space:nowrap;
}

.hamburger{ display:none; background:none; border:none; color:var(--text); font-size:1.5rem; cursor:pointer; }

/* ---------- MOBILE NAV (right-side drawer) ---------- */
/* z-index must stay BELOW header.site-nav's own z-index (50). header creates its
   own stacking context (position:sticky + z-index), which traps its position:fixed
   descendant (nav.main-links, the drawer) inside it — so the drawer's z-index:70 only
   wins against siblings *inside* the header, never against this overlay if the overlay
   sits higher than 50 at the body level. That mismatch is what made every link in the
   open drawer visible but unclickable: taps were landing on this overlay instead. */
.nav-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:45;
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.nav-overlay.open{ opacity:1; visibility:visible; }

@media (max-width: 860px){
  nav.main-links{
    position:fixed !important; top:0; right:0; bottom:0;
    width:min(300px, 82vw); height:100%;
    background:var(--panel) !important; background-color:#15131a !important;
    border-left:1px solid var(--line);
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; font-size:1.02rem;
    padding:88px 26px 30px; overflow-y:auto;
    transform:translateX(100%); transition:transform .3s ease;
    z-index:70; box-shadow:-20px 0 50px rgba(0,0,0,.4);
    opacity:1 !important; isolation:isolate;
  }
  nav.main-links.open{ transform:translateX(0); }
  nav.main-links > a, nav.main-links .has-dropdown{
    width:100%; padding:14px 0; border-bottom:1px solid var(--line);
    background:#15131a;
  }
  nav.main-links .has-dropdown > a{ display:flex; align-items:center; justify-content:space-between; padding:0; border-bottom:none; }
  nav.main-links .close-menu{
    position:absolute; top:22px; right:22px; font-size:1.6rem;
    background:none; border:none; color:var(--text); line-height:1; z-index:2;
  }
  .has-dropdown{ text-align:left; }
  .dropdown{
    position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
    box-shadow:none; min-width:0; width:100%;
    /* Reads as a nested sub-list flush with the rest of the drawer (indented, left
       border accent) rather than a separate floating card sitting off to the side.
       The parent drawer (nav.main-links) already has a hardened opaque background,
       so this no longer needs its own solid fill to avoid the old bleed-through bug. */
    background:transparent !important; border-radius:0;
    border:none; border-left:2px solid rgba(201,161,90,.35);
    padding:6px 0 6px 16px; margin:2px 0 4px; display:none;
  }
  .has-dropdown.open .dropdown{ display:flex; flex-direction:column; gap:2px; }
  .dropdown a{ padding:9px 4px; font-size:.9rem; border-left:none; opacity:.8; }
  .hamburger{ display:block; }
  .currency-tag{ display:none; }
}

/* ---------- SEARCH OVERLAY ---------- */
.search-overlay{
  position:fixed; inset:0; background:rgba(8,8,10,.96); z-index:80;
  display:flex; align-items:flex-start; justify-content:center; padding-top:14vh;
  opacity:0; visibility:hidden; transition:opacity .2s ease;
}
.search-overlay.open{ opacity:1; visibility:visible; }
.search-box{ width:min(600px,90vw); position:relative; }
.search-box input{
  width:100%; background:none; border:none; border-bottom:2px solid var(--gold-soft);
  color:var(--text); font-size:1.6rem; padding:10px 4px; font-family:'Georgia',serif;
  outline:none;
}
.search-box input::placeholder{ color:var(--muted); }
.search-close{ position:absolute; top:24px; right:28px; background:none; border:none; color:var(--text); font-size:1.8rem; cursor:pointer; }
#searchResults{ margin-top:26px; display:flex; flex-direction:column; gap:14px; max-height:50vh; overflow:auto; }
#searchResults a{ text-decoration:none; display:flex; justify-content:space-between; padding:10px 4px; border-bottom:1px solid var(--line); }
#searchResults .r-title{ font-size:1rem; }
#searchResults .r-price{ color:var(--gold-soft); font-family:'Helvetica Neue',Arial,sans-serif; }
.search-empty{ color:var(--muted); font-size:.9rem; margin-top:20px; }

/* ---------- CART DRAWER ---------- */
.cart-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:90;
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.cart-overlay.open{ opacity:1; visibility:visible; }
.cart-drawer{
  position:fixed; top:0; right:0; height:100%; width:min(420px,92vw);
  background:var(--panel); z-index:95; border-left:1px solid var(--line);
  display:flex; flex-direction:column;
  transform:translateX(100%); transition:transform .3s ease;
}
.cart-drawer.open{ transform:translateX(0); }
.cart-head{ display:flex; justify-content:space-between; align-items:center; padding:22px 22px 16px; border-bottom:1px solid var(--line); }
.cart-head h3{ font-weight:400; letter-spacing:.05em; }
.cart-close{ background:none; border:none; color:var(--text); font-size:1.5rem; cursor:pointer; }
.cart-items{ flex:1; overflow-y:auto; padding:14px 22px; }
.cart-item{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); align-items:center; }
.cart-item .swatch{ width:48px; height:64px; border-radius:4px; flex-shrink:0; background-size:cover; background-position:center; }
.cart-item .ci-info{ flex:1; }
.cart-item .ci-title{ font-size:.92rem; margin-bottom:6px; }
.cart-item .ci-controls{ display:flex; align-items:center; gap:10px; font-family:'Helvetica Neue',Arial,sans-serif; font-size:.85rem; color:var(--muted); }
.cart-item .qty-btn{ background:rgba(255,255,255,.06); border:none; color:var(--text); width:22px; height:22px; border-radius:4px; cursor:pointer; }
.cart-item .remove{ background:none; border:none; color:var(--muted); text-decoration:underline; cursor:pointer; font-size:.8rem; margin-left:auto; }
.cart-item .ci-price{ font-family:'Helvetica Neue',Arial,sans-serif; color:var(--gold-soft); white-space:nowrap; }
.cart-empty{ color:var(--muted); text-align:center; margin-top:40px; font-size:.95rem; }
.cart-upsell{
  margin:0 22px 4px; padding:14px 16px; border-radius:8px;
  background:linear-gradient(135deg, rgba(201,161,90,.14), rgba(201,161,90,.04));
  border:1px solid rgba(201,161,90,.35);
}
.cart-upsell p{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:.85rem; color:var(--text); line-height:1.5; margin-bottom:10px; }
.cart-upsell .up-price{ color:var(--gold-soft); font-weight:700; }
.cart-upsell .up-old{ color:var(--muted); text-decoration:line-through; font-size:.82rem; }
.cart-upsell .up-btn{
  width:100%; background:var(--gold-soft); color:#1a1006; border:none; border-radius:5px;
  padding:10px; font-family:'Helvetica Neue',Arial,sans-serif; font-weight:700; font-size:.85rem; cursor:pointer;
}
.cart-upsell .up-btn:hover{ filter:brightness(1.06); }

.cart-foot{ padding:20px 22px 26px; border-top:1px solid var(--line); }
.cart-subtotal{ display:flex; justify-content:space-between; font-family:'Helvetica Neue',Arial,sans-serif; margin-bottom:14px; font-size:1.02rem; }
.checkout-btn{
  width:100%; background:var(--gold-soft); color:#1a1006; border:none; border-radius:5px;
  padding:15px; font-family:'Helvetica Neue',Arial,sans-serif; font-weight:700; font-size:1rem;
  cursor:pointer; letter-spacing:.02em;
}
.checkout-btn:disabled{ opacity:.5; cursor:not-allowed; }
.cart-fine{ text-align:center; color:var(--muted); font-size:.78rem; margin-top:10px; }

/* ---------- BUTTONS / CTA ---------- */
.cta, .btn-primary{
  display:inline-block; background:var(--gold-soft); color:#1a1006;
  font-family:'Helvetica Neue',Arial,sans-serif; font-weight:700; letter-spacing:.03em;
  padding:16px 38px; border-radius:5px; text-decoration:none; font-size:1rem; border:none; cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:0 10px 26px rgba(201,161,90,.22);
}
.cta:hover, .btn-primary:hover{ transform:translateY(-2px); }
.btn-ghost{
  display:inline-block; background:transparent; color:var(--text); border:1px solid var(--line);
  font-family:'Helvetica Neue',Arial,sans-serif; padding:14px 30px; border-radius:5px; text-decoration:none;
}

/* ---------- PRODUCT GRID ---------- */
.grid-toolbar{
  display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between;
  margin-bottom:34px; font-family:'Helvetica Neue',Arial,sans-serif;
}
.filter-pills{ display:flex; gap:10px; flex-wrap:wrap; }
.pill{
  background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:8px 16px; border-radius:999px; font-size:.85rem; cursor:pointer; transition:all .15s;
}
.pill.active, .pill:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }

.product-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:26px;
}
@media (max-width:980px){ .product-grid{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:720px){ .product-grid{ grid-template-columns:repeat(2, 1fr); gap:18px; } }
@media (max-width:460px){ .product-grid{ grid-template-columns:1fr; max-width:320px; margin:0 auto; } }
.product-card{
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  background:var(--panel); display:flex; flex-direction:column;
}
.product-cover{
  aspect-ratio:2/3; position:relative; display:flex; flex-direction:column; justify-content:space-between;
  padding:20px 16px; text-decoration:none; color:inherit; overflow:hidden;
}
.product-cover.has-img{ transition:transform .3s ease, filter .3s ease; }
.product-cover.has-img:hover, .product-cover.has-img:active{ transform:scale(1.035); filter:brightness(1.1); }
.product-body .p-title a{ text-decoration:none; color:inherit; }
.product-body .p-title a:hover{ color:var(--gold-soft); }
.product-cover::before{
  content:""; position:absolute; inset:0;
  background-image:radial-gradient(1px 1px at 30% 20%, rgba(255,255,255,.4), transparent),
    radial-gradient(1px 1px at 70% 50%, rgba(255,255,255,.3), transparent),
    radial-gradient(1px 1px at 50% 80%, rgba(255,255,255,.3), transparent);
  opacity:.5;
}
.product-cover .icon{ font-size:1.5rem; z-index:1; }
.product-cover .title{ font-size:1rem; line-height:1.3; z-index:1; }
.product-cover.has-img{
  background-size:cover; background-position:center; padding:0;
}
.product-cover.has-img::before{ display:none; }
.product-cover.has-img::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom, rgba(0,0,0,.32) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 68%, rgba(21,19,26,.85) 100%);
}
.product-cover.has-img .badge{ z-index:2; box-shadow:0 2px 8px rgba(0,0,0,.4); }
.product-card:hover .product-cover.has-img{ filter:brightness(1.06); }
.product-body{ padding:16px; font-family:'Helvetica Neue',Arial,sans-serif; display:flex; flex-direction:column; flex:1; }
.product-body .p-title{
  font-family:'Georgia',serif; font-weight:400; font-size:1rem; line-height:1.3;
  color:var(--text); margin-bottom:8px;
}
.product-body .p-desc{ color:var(--muted); font-size:.85rem; line-height:1.5; margin-bottom:14px; flex:1; }
.product-body .p-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; }
.product-body .p-price{ color:var(--gold-soft); font-size:1.1rem; }
.product-body .p-price .p-old{ color:var(--muted); text-decoration:line-through; font-size:.85rem; margin-right:6px; }
.add-btn{
  background:rgba(232,207,156,.1); border:1px solid var(--gold-soft); color:var(--gold-soft);
  padding:8px 16px; border-radius:5px; font-size:.85rem; cursor:pointer; transition:background .15s; white-space:nowrap;
}
.add-btn:hover{ background:var(--gold-soft); color:#1a1006; }
.badge{
  position:absolute; top:12px; right:12px; z-index:2;
  background:var(--gold-soft); color:#1a1006; font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:.68rem; font-weight:700; padding:4px 9px; border-radius:999px; letter-spacing:.04em;
}

.cover-1{ background:linear-gradient(160deg,#1a1015,#3a1418); }
.cover-2{ background:linear-gradient(160deg,#0d1420,#152238); }
.cover-3{ background:linear-gradient(160deg,#141118,#241a30); }
.cover-4{ background:linear-gradient(160deg,#1c1710,#332512); }
.cover-5{ background:linear-gradient(160deg,#101616,#1c2b28); }
.cover-bundle{ background:linear-gradient(160deg,#241a10,#3a2410); border:1px solid rgba(201,161,90,.4); }
.cover-love{ background:linear-gradient(160deg,#21141b,#431625); }
.cover-finance{ background:linear-gradient(160deg,#0e1b18,#0b2f25); }
.cover-career{ background:linear-gradient(160deg,#16120b,#2e2010); }
.cover-complete{ background:linear-gradient(160deg,#19110a,#3a2408); border:1px solid rgba(201,161,90,.4); }

/* ---------- BOOK CAROUSEL ---------- */
.book-carousel{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x proximity;
  padding:6px 4px 22px; margin-bottom:6px;
  -webkit-overflow-scrolling:touch;
}
.book-carousel::-webkit-scrollbar{ height:6px; }
.book-carousel::-webkit-scrollbar-thumb{ background:var(--line); border-radius:3px; }
.carousel-card{
  scroll-snap-align:start; flex:0 0 auto; width:240px;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  background:var(--panel); display:flex; flex-direction:column; text-align:left;
}
.carousel-card .product-cover{ aspect-ratio:2/3; }
.carousel-card .product-body{ padding:14px; }
.carousel-actions{ display:flex; gap:8px; margin-top:12px; }
.carousel-actions .add-btn{ flex:1; text-align:center; }
.carousel-actions .learn-btn{
  flex:1; background:transparent; border:1px solid var(--line); color:var(--muted);
  padding:8px 10px; border-radius:5px; font-size:.82rem; cursor:pointer; font-family:'Helvetica Neue',Arial,sans-serif;
  transition:border-color .15s, color .15s;
}
.carousel-actions .learn-btn:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }
@media (max-width:480px){
  .carousel-card{ width:200px; }
}

/* ---------- BOOK DETAIL MODAL ---------- */
.book-modal-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.7); z-index:98;
  opacity:0; visibility:hidden; transition:opacity .25s ease;
}
.book-modal-overlay.open{ opacity:1; visibility:visible; }
.book-modal{
  position:fixed; top:50%; left:50%; transform:translate(-50%,-48%) scale(.97);
  width:min(680px, 92vw); max-height:86vh; overflow-y:auto;
  background:var(--panel); border:1px solid var(--line); border-radius:12px;
  z-index:99; opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
  display:flex;
}
.book-modal.open{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,-50%) scale(1); }
.book-modal-close{
  position:absolute; top:16px; right:16px; z-index:2;
  background:rgba(0,0,0,.4); border:none; color:#fff; width:32px; height:32px;
  border-radius:50%; font-size:1.3rem; cursor:pointer; line-height:1;
}
.book-modal-inner{ display:flex; width:100%; flex-wrap:wrap; }
.book-modal-cover{ flex:0 0 240px; aspect-ratio:2/3; }
.book-modal-body{ flex:1; min-width:260px; padding:34px 32px; font-family:'Helvetica Neue',Arial,sans-serif; }
.book-modal-body h3{ font-family:'Georgia',serif; font-weight:400; font-size:1.5rem; margin-bottom:16px; line-height:1.3; }
.book-modal-desc{ color:#d8d3c8; line-height:1.7; font-size:.95rem; margin-bottom:20px; }
.book-modal-excerpt{
  font-family:'Georgia',serif; font-style:italic; color:var(--gold-soft);
  border-left:2px solid var(--gold-soft); padding-left:16px; line-height:1.7; font-size:.98rem;
}
.book-modal-excerpt span{ display:block; font-family:'Helvetica Neue',Arial,sans-serif; font-style:normal; color:var(--muted); font-size:.75rem; margin-top:8px; letter-spacing:.03em; }
@media (max-width:600px){
  .book-modal{ width:94vw; max-height:90vh; }
  .book-modal-cover{ flex-basis:100%; aspect-ratio:16/9; }
  .book-modal-body{ padding:26px 22px; }
}

/* ---------- GENERIC SECTIONS ---------- */
.section{ padding:80px 20px; }
.section h2{ font-size:clamp(1.6rem,4vw,2.4rem); font-weight:400; margin-bottom:16px; }
.section .lede{ color:var(--muted); max-width:600px; line-height:1.6; margin-bottom:40px; }
.center{ text-align:center; }
.mx-auto{ margin-left:auto; margin-right:auto; }

/* ---------- POLICY / CONTACT PAGES ---------- */
.policy-page, .contact-page{ padding:70px 20px 100px; max-width:760px; margin:0 auto; }
.policy-page h1, .contact-page h1{ font-size:clamp(1.8rem,4vw,2.6rem); font-weight:400; margin-bottom:26px; }
.policy-page h2{ font-size:1.2rem; font-weight:700; font-family:'Helvetica Neue',Arial,sans-serif; margin:34px 0 12px; color:var(--gold-soft); }
.policy-page p, .contact-page p{ color:#d8d3c8; line-height:1.75; margin-bottom:14px; font-size:1rem; }
.policy-page ul{ color:#d8d3c8; line-height:1.75; padding-left:22px; margin-bottom:14px; }

.contact-form{ font-family:'Helvetica Neue',Arial,sans-serif; margin-top:30px; display:flex; flex-direction:column; gap:16px; }
.contact-form label{ font-size:.85rem; color:var(--muted); margin-bottom:6px; display:block; }
.contact-form input, .contact-form textarea{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; border-radius:6px; font-family:inherit; font-size:.95rem; outline:none;
}
.contact-form input:focus, .contact-form textarea:focus{ border-color:var(--gold-soft); }
.contact-form textarea{ min-height:140px; resize:vertical; }
.contact-alt{ margin-top:36px; padding-top:26px; border-top:1px solid var(--line); color:var(--muted); font-size:.92rem; }

/* ---------- FOOTER ---------- */
footer.site-footer{
  border-top:1px solid var(--line); padding:50px 20px 30px; margin-top:40px;
  font-family:'Helvetica Neue',Arial,sans-serif;
}
.footer-grid{
  max-width:var(--maxw); margin:0 auto; display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; margin-bottom:34px;
}
.footer-col h4{ font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.footer-col a{ display:block; text-decoration:none; color:var(--text); opacity:.8; font-size:.9rem; margin-bottom:10px; }
.footer-col a:hover{ opacity:1; }
.footer-bottom{
  max-width:var(--maxw); margin:0 auto; padding-top:24px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; color:var(--muted); font-size:.8rem;
}
@media (max-width:700px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

/* ---------- TOAST ---------- */
.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--gold-soft); color:#1a1006; font-family:'Helvetica Neue',Arial,sans-serif;
  padding:12px 22px; border-radius:6px; font-size:.9rem; font-weight:600;
  opacity:0; pointer-events:none; transition:all .25s ease; z-index:100;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* ---------- ICONS ---------- */
.icn{ width:1em; height:1em; display:inline-block; vertical-align:-0.14em; stroke:currentColor; fill:none; stroke-width:1.6; }
.icon-btn .icn{ width:20px; height:20px; }

/* ---------- SCROLL REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-stagger.in > *{ transition-delay:calc(var(--i,0) * 80ms); }

/* ---------- TRUST BADGES ---------- */
.trust-row{
  display:flex; flex-wrap:wrap; justify-content:center; gap:22px;
  padding:16px 20px; font-family:'Helvetica Neue',Arial,sans-serif;
  color:var(--muted); font-size:.74rem; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.trust-row .trust-item{ display:flex; align-items:center; gap:6px; }
.trust-row .icn{ color:var(--gold-soft); width:13px; height:13px; flex-shrink:0; }
@media (max-width:600px){
  .trust-row{ gap:10px 16px; padding:12px 16px; font-size:.68rem; }
  .trust-row .icn{ width:11px; height:11px; }
}
@media (max-width:380px){
  .trust-row .trust-item:nth-child(3){ display:none; }
}

/* ---------- LEAD MAGNET ---------- */
.lead-magnet{
  padding:80px 20px; text-align:center;
  background:radial-gradient(ellipse at 50% 0%, rgba(201,161,90,.08), transparent 60%), var(--bg2);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.lead-magnet .icn-big{ width:38px; height:38px; color:var(--gold-soft); margin-bottom:18px; }
.lead-magnet h2{ font-size:clamp(1.5rem,3.6vw,2.1rem); font-weight:400; margin-bottom:12px; }
.lead-magnet p{ color:var(--muted); max-width:480px; margin:0 auto 30px; line-height:1.6; }
.lead-form{
  display:flex; gap:10px; max-width:440px; margin:0 auto; flex-wrap:wrap; justify-content:center;
  font-family:'Helvetica Neue',Arial,sans-serif;
}
.lead-form input[type=email]{
  flex:1; min-width:220px; background:var(--panel); border:1px solid var(--line); color:var(--text);
  padding:14px 16px; border-radius:5px; font-size:.95rem; outline:none;
}
.lead-form input[type=email]:focus{ border-color:var(--gold-soft); }
.lead-form button{ white-space:nowrap; }
.lead-fine{ margin-top:14px; font-size:.78rem; color:var(--muted); }

/* ---------- FAQ ---------- */
.faq{ padding:80px 20px; max-width:760px; margin:0 auto; }
.faq h2{ text-align:center; font-size:clamp(1.6rem,4vw,2.2rem); font-weight:400; margin-bottom:44px; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; color:var(--text);
  font-family:'Georgia',serif; font-size:1.05rem; padding:22px 4px; cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-q .icn{ color:var(--gold-soft); flex-shrink:0; transition:transform .25s ease; }
.faq-item.open .faq-q .icn{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.open .faq-a{ max-height:200px; }
.faq-a p{ color:var(--muted); padding:0 4px 22px; line-height:1.6; font-size:.95rem; }

/* ---------- BENEFITS / WHY ---------- */
.why-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:30px;
  max-width:var(--maxw); margin:0 auto;
}
.why-item{ text-align:center; padding:20px; }
.why-item .icn{ width:30px; height:30px; color:var(--gold-soft); margin-bottom:16px; }
.why-item h3{ font-weight:400; font-size:1.1rem; margin-bottom:8px; }
.why-item p{ color:var(--muted); font-size:.88rem; line-height:1.5; }

/* ---------- MOON DIVIDER ---------- */
.moon-divider{
  display:flex; justify-content:center; align-items:center; gap:14px;
  padding:30px 20px; opacity:.7;
}
.moon-divider svg{ width:15px; height:15px; stroke-width:1.3; }
.moon-divider .phase{ color:var(--gold-soft); }
.moon-divider .phase.dim{ color:rgba(232,207,156,.3); }
@media (max-width:600px){
  .moon-divider{ gap:10px; padding:22px 20px; }
  .moon-divider svg{ width:12px; height:12px; }
}

/* ---------- HOW IT WORKS ---------- */
.how-it-works{ padding:90px 20px; text-align:center; }
.how-it-works h2{ font-size:clamp(1.6rem,4vw,2.3rem); font-weight:400; margin-bottom:56px; }
.steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:36px; max-width:900px; margin:0 auto;
  position:relative;
}
.steps::before{
  content:""; position:absolute; top:26px; left:16%; right:16%; height:1px;
  background:linear-gradient(90deg, transparent, var(--line), transparent);
}
.step{ position:relative; }
.step .step-num{
  width:54px; height:54px; margin:0 auto 20px; border-radius:50%;
  background:var(--panel); border:1px solid var(--gold-soft); color:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; font-family:'Helvetica Neue',Arial,sans-serif;
  font-size:1.1rem; position:relative; z-index:1;
}
.step h3{ font-weight:400; font-size:1.05rem; margin-bottom:8px; }
.step p{ color:var(--muted); font-size:.86rem; line-height:1.5; max-width:220px; margin:0 auto; }
@media (max-width:700px){
  .steps{ grid-template-columns:1fr; gap:34px; }
  .steps::before{ display:none; }
}

/* ---------- BRAND STORY ---------- */
.brand-story{
  padding:90px 20px; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
  max-width:var(--maxw); margin:0 auto;
}
.brand-story .story-art{ display:flex; align-items:center; justify-content:center; }
.brand-story .story-art svg{ width:100%; max-width:320px; height:auto; }
.brand-story .story-text h2{ font-size:clamp(1.5rem,3.6vw,2.1rem); font-weight:400; margin-bottom:18px; }
.brand-story .story-text p{ color:#cfc9bd; line-height:1.75; margin-bottom:14px; }
.brand-story .story-text a{ color:var(--gold-soft); text-decoration:none; border-bottom:1px solid rgba(232,207,156,.4); }
@media (max-width:800px){
  .brand-story{ grid-template-columns:1fr; text-align:center; gap:34px; }
  .brand-story .story-art svg{ max-width:220px; }
}
@media (max-width:600px){
  .brand-story{ padding:48px 20px 40px; }
}

/* ---------- SOCIAL STRIP ---------- */
.social-strip{ padding:70px 20px; text-align:center; }
.social-strip h2{ font-size:clamp(1.4rem,3.4vw,1.9rem); font-weight:400; margin-bottom:32px; }
.social-cards{ display:flex; gap:18px; justify-content:center; flex-wrap:wrap; max-width:600px; margin:0 auto; }
.social-card{
  flex:1; min-width:180px; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 20px; text-decoration:none; color:var(--text); transition:border-color .2s;
}
.social-card:hover{ border-color:var(--gold-soft); }
.social-card svg{ width:26px; height:26px; color:var(--gold-soft); margin-bottom:14px; }
.social-card .sc-title{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:.92rem; margin-bottom:4px; }
.social-card .sc-sub{ color:var(--muted); font-size:.8rem; font-family:'Helvetica Neue',Arial,sans-serif; }

/* ---------- STICKY MOBILE CTA (compact floating pill, not a full-width bar) ---------- */
.sticky-cta{
  position:fixed; right:16px; bottom:16px; z-index:40; max-width:264px;
  background:rgba(16,14,10,.94); backdrop-filter:blur(10px);
  border:1px solid rgba(201,161,90,.45); border-radius:14px;
  padding:13px 15px; display:none; align-items:center; gap:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.45), 0 0 22px rgba(201,161,90,.1);
  transform:translateY(140%); opacity:0; transition:transform .35s ease, opacity .35s ease;
}
.sticky-cta.show{ transform:translateY(0); opacity:1; }
.sticky-cta .sc-info{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:.72rem; line-height:1.35; }
.sticky-cta .sc-info strong{ display:block; font-size:.85rem; color:var(--gold-soft); font-weight:600; margin-bottom:3px; letter-spacing:.01em; }
.sticky-cta .sc-info span{ display:block; color:var(--muted); }
.sticky-cta .cta{ padding:9px 14px; font-size:.78rem; white-space:nowrap; }
.sticky-cta .sc-close{
  position:absolute; top:-8px; right:-8px; width:20px; height:20px; border-radius:50%;
  background:var(--panel); border:1px solid var(--line); color:var(--muted);
  display:flex; align-items:center; justify-content:center; font-size:13px; line-height:1; cursor:pointer; padding:0;
}
.sticky-cta .sc-close:hover{ color:var(--text); }
@media (max-width:860px){ .sticky-cta{ display:flex; } }
@media (max-width:400px){ .sticky-cta{ right:10px; bottom:10px; left:10px; max-width:none; } }

/* ---------- RESPONSIVE FINE-TUNING ---------- */
@media (max-width:480px){
  .section{ padding:56px 16px; }
  .product-grid{ grid-template-columns:repeat(2,1fr); gap:14px; }
  .product-cover{ padding:14px 12px; }
  .cta, .btn-primary{ padding:15px 26px; font-size:.95rem; width:100%; text-align:center; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:22px; }
  .lead-form{ flex-direction:column; }
  .lead-form button{ width:100%; }
  body{ padding-bottom:70px; } /* room for sticky cta */
}

/* ---------- WELCOME / 10% OFF POPUP ---------- */
.welcome-popup-overlay{
  position:fixed; inset:0; z-index:90; background:rgba(6,6,8,.72); backdrop-filter:blur(4px);
  display:none; align-items:center; justify-content:center; padding:20px;
  opacity:0; transition:opacity .3s ease;
}
.welcome-popup-overlay.open{ display:flex; }
.welcome-popup-overlay.show{ opacity:1; }
.welcome-popup{
  position:relative; max-width:420px; width:100%; text-align:center;
  background:var(--panel); border:1px solid rgba(201,161,90,.35); border-radius:14px;
  padding:40px 32px 32px; box-shadow:0 30px 70px rgba(0,0,0,.55);
  transform:translateY(16px) scale(.97); transition:transform .3s ease;
}
.welcome-popup-overlay.show .welcome-popup{ transform:translateY(0) scale(1); }
.welcome-popup .wp-close{
  position:absolute; top:14px; right:14px; width:28px; height:28px; border-radius:50%;
  background:none; border:1px solid var(--line); color:var(--muted);
  display:flex; align-items:center; justify-content:center; font-size:16px; cursor:pointer; padding:0;
}
.welcome-popup .wp-close:hover{ color:var(--text); }
.welcome-popup .wp-eyebrow{ letter-spacing:.3em; text-transform:uppercase; font-size:.72rem; color:var(--gold-soft); font-family:'Helvetica Neue',Arial,sans-serif; margin-bottom:14px; }
.welcome-popup h3{ font-size:clamp(1.3rem,4vw,1.7rem); font-weight:400; margin-bottom:12px; line-height:1.3; }
.welcome-popup p{ color:var(--muted); font-size:.9rem; line-height:1.6; margin-bottom:22px; }
.welcome-popup .wp-form{ display:flex; gap:8px; flex-wrap:wrap; font-family:'Helvetica Neue',Arial,sans-serif; }
.welcome-popup .wp-form input[type=email]{
  flex:1; min-width:180px; background:var(--bg2); border:1px solid var(--line); color:var(--text);
  padding:13px 14px; border-radius:5px; font-size:.92rem; outline:none;
}
.welcome-popup .wp-form input[type=email]:focus{ border-color:var(--gold-soft); }
.welcome-popup .wp-form button{ white-space:nowrap; }
.welcome-popup .wp-fine{ margin-top:14px; font-size:.72rem; color:var(--muted); opacity:.8; }
.welcome-popup .wp-code{
  margin-top:16px; padding:10px 14px; border:1px dashed rgba(201,161,90,.5); border-radius:6px;
  color:var(--gold-soft); font-family:'Helvetica Neue',Arial,sans-serif; letter-spacing:.15em; font-size:.9rem;
  display:none;
}
.welcome-popup .wp-code.show{ display:block; }
@media (max-width:480px){
  .welcome-popup{ padding:32px 22px 26px; }
  .welcome-popup .wp-form{ flex-direction:column; }
  .welcome-popup .wp-form button{ width:100%; }
}

/* ---------- PREMIUM TIERS (coaching / programs) ----------
   A soft gold glow marks this as the higher-ticket line — tasteful, not flashing or
   oversold, but it should visually read as "premium" the moment you land on it. */
.premium-section{
  padding:70px 20px;
  background:radial-gradient(ellipse at 50% 0%, rgba(201,161,90,.07), transparent 65%), var(--bg2);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.premium-section-head{ max-width:640px; margin:0 auto 40px; text-align:center; }
.premium-section-head .eyebrow{ letter-spacing:.3em; text-transform:uppercase; font-size:.7rem; color:var(--gold-soft); opacity:.85; margin-bottom:12px; font-family:'Helvetica Neue',Arial,sans-serif; }
.premium-section-head h2{ font-size:clamp(1.4rem,3.4vw,1.9rem); font-weight:400; margin-bottom:10px; }
.premium-section-head p{ color:var(--muted); font-size:.92rem; line-height:1.6; }
.premium-tiers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:var(--maxw); margin:0 auto; }
@media (max-width:900px){ .premium-tiers-grid{ grid-template-columns:1fr; max-width:420px; } }

.premium-tier-card{
  position:relative; background:linear-gradient(160deg, var(--panel), #1b1710);
  border:1px solid rgba(201,161,90,.22); border-radius:10px;
  padding:28px 24px; text-align:center;
  box-shadow:0 0 0 rgba(201,161,90,0);
  transition:border-color .25s, box-shadow .25s, transform .25s;
}
.premium-tier-card:hover{
  border-color:rgba(201,161,90,.5); transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(0,0,0,.35), 0 0 34px rgba(201,161,90,.14);
}
.premium-tier-card.pt-featured{
  border-color:rgba(201,161,90,.45);
  box-shadow:0 0 30px rgba(201,161,90,.1);
}
.premium-tier-card .pt-badge{
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background:#1b1710; border:1px solid rgba(201,161,90,.5); color:var(--gold-soft);
  font-family:'Helvetica Neue',Arial,sans-serif; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  padding:3px 10px; border-radius:20px; white-space:nowrap;
}
.premium-tier-card .pt-icon{
  font-size:1.3rem; color:var(--gold-soft); margin-bottom:14px;
  text-shadow:0 0 16px rgba(201,161,90,.5);
}
.premium-tier-card .pt-title{ font-weight:400; font-size:1.1rem; margin-bottom:10px; }
.premium-tier-card .pt-desc{ color:#c8c3b8; font-size:.85rem; line-height:1.55; margin-bottom:18px; min-height:78px; }
.premium-tier-card .pt-price{ font-family:'Helvetica Neue',Arial,sans-serif; font-size:1.15rem; color:var(--text); margin-bottom:16px; }
.premium-tier-card .pt-price .p-old{ color:var(--muted); text-decoration:line-through; font-size:.85rem; margin-right:6px; }
.premium-tier-card .pt-btn{
  width:100%; background:none; border:1px solid var(--gold-soft); color:var(--gold-soft);
  padding:11px; border-radius:5px; font-family:'Helvetica Neue',Arial,sans-serif; font-weight:600; font-size:.85rem; cursor:pointer;
  transition:background .2s, color .2s, box-shadow .2s;
}
.premium-tier-card .pt-btn:hover{ background:var(--gold-soft); color:#1a1006; box-shadow:0 0 22px rgba(201,161,90,.35); }
.premium-section-fine{ max-width:640px; margin:28px auto 0; text-align:center; color:var(--muted); font-size:.76rem; line-height:1.6; }

/* Small, non-first-position teaser banner pointing at the premium section from
   inside the Books / Predictions areas of the page. */
.premium-teaser{
  max-width:var(--maxw); margin:10px auto 0; padding:20px 24px; border-radius:10px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:linear-gradient(120deg, rgba(201,161,90,.08), rgba(201,161,90,.02));
  border:1px solid rgba(201,161,90,.25);
  box-shadow:0 0 26px rgba(201,161,90,.06);
  font-family:'Helvetica Neue',Arial,sans-serif;
  text-decoration:none; color:var(--text); transition:border-color .2s, box-shadow .2s;
}
.premium-teaser:hover{ border-color:rgba(201,161,90,.5); box-shadow:0 0 34px rgba(201,161,90,.12); }
.premium-teaser .pte-text strong{ display:block; color:var(--gold-soft); font-size:.95rem; font-weight:600; margin-bottom:4px; }
.premium-teaser .pte-text span{ color:var(--muted); font-size:.82rem; }
.premium-teaser .pte-arrow{ color:var(--gold-soft); font-size:1.1rem; flex-shrink:0; }
@media (max-width:600px){
  .premium-teaser{ padding:16px 18px; }
}
