:root{
  --ccf-bg:#000000;
  --ccf-fg:#ffffff;
  --ccf-muted: rgba(255,255,255,.72);
  --ccf-muted2: rgba(255,255,255,.55);
  --ccf-accent:#9D1A01;
  --ccf-card: rgba(255,255,255,.06);
  --ccf-border: rgba(255,255,255,.12);
}

html, body { height: 100%; }

body {
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--ccf-bg);
  color: var(--ccf-fg);
} 

.ccf-meta {
  color: var(--ccf-muted2);
  font-size: .9rem;
}
 
.ccf-capitalize {
    text-transform: capitalize;
}

body.theme-light .ccf-lead .ccf-kicker {
    color: #111 !important; /* or var(--cc-fg) */
}

/* Kicker must always stay white (even in light mode) */
body.theme-light .ccf-hero  {
    color: #ffffff !important;
}

/* Kicker must always stay white (even in light mode) */
body.theme-light .ccf-meta  {
    color: #000 !important;
}

/* Kicker must always stay white (even in light mode) */
body.theme-light {
    color: #000 !important;
}

.ccf-active {
    color: var(--ccf-accent) !important;
}

.text-warning {
    color: #ffc107 !important;
}

body.theme-light {
    color: #ffffff !important;
}

/* Back + Theme toggle icons must always be white */
.back-btn i,
.theme-toggle-btn i {
    color: #ffffff !important;
}

/* Layout */
.ccf-nav {
  border-bottom: 1px solid var(--ccf-border);
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(10px);
}

.ccf-hero {
  position: relative;
  padding: 4.5rem 0 2.5rem;
  border-bottom: 1px solid var(--ccf-border);
  background:
    radial-gradient(1200px 500px at 20% 0%, rgba(157,26,1,.18), transparent 60%),
    radial-gradient(900px 500px at 90% 10%, rgba(255,255,255,.06), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.03), transparent 35%);
}

/* Typography */
.ccf-kicker {
    color: var(--ccf-muted2) !important;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: .85rem;
}

 
.ccf-small {
    color: #fff; 
    font-size: .95rem;
    line-height: 1.7;
}
 

ul.header-nav li {
    display: inline;
}

.dot {
    height: 25px;
    width: 25px;
    background-color: #bbb;
    border-radius: 50%;
    display: inline-block;
}

.text-grey { color: var(--ccf-muted2); }

/* Links */
a{ color: rgba(255,255,255,.88); }
a:hover{ color: #fff; }

.book-link { text-decoration: none; }
.header-link {
    text-decoration: dotted;
    font-weight: bold; 
}

.ccf-red:hover {
    color: var(--ccf-accent);
    font-weight: bold; 
}

/* Buttons */
.ccf-btn{
  --bs-btn-padding-y: .95rem;
  --bs-btn-padding-x: 1.15rem;
  --bs-btn-font-weight: 700;
  --bs-btn-border-radius: 1rem;
  background: var(--ccf-bg);
  border-color: var(--ccf-fg);
  color: var(--ccf-fg);
}
.ccf-btn:hover{
  background-color: var(--ccf-accent);
  border-color: var(--ccf-fg);
  color: var(--ccf-fg);
}

.ccf-outline{
  --bs-btn-padding-y: .95rem;
  --bs-btn-padding-x: 1.15rem;
  --bs-btn-font-weight: 700;
  --bs-btn-border-radius: 1rem;
  color: var(--ccf-fg);
  border-color: rgba(255,255,255,.22);
  background: transparent;
  text-decoration: underline; 
}

.ccf-outline:hover{
  border-color: rgba(255,255,255,.38);
  background: rgba(255,255,255,.06);
}

/* Cards / separators */
.ccf-card{
  background: var(--ccf-card);
  border: 1px solid var(--ccf-border);
  border-radius: 1.25rem;
}

.ccf-card:hover{
  border-color: rgba(255,255,255,.18);
}

/* Keep subtle hover fill only for non-gradient cards */
.ccf-card:not(.ccf-gradient):hover{
  background: rgba(255,255,255,.07);
}

/* Tiles are selectable: remove gradient on hover */
.ccf-card.ccf-tile.ccf-gradient:hover{
  background: rgba(255,255,255,.07);
}

.ccf-hr{
  border-top: 1px solid var(--ccf-border);
  opacity: 1;
}

.ccf-bullets li{ margin-bottom: .5rem; }

.ccf-callout {
  border-left: 3px solid var(--ccf-accent);
  padding-left: 1rem;
  color: var(--ccf-muted);
}

.ccf-footer {
  border-top: 1px solid var(--ccf-border);
  color: var(--ccf-muted2);
}

/* Forms */
.form-control, .form-control:focus {
    background: rgba(255, 255, 255, .06);
    border: 1px solid var(--bs-border-color);
    color: #000;
    box-shadow: none;
    border-radius: 0; 
    outline: 1px solid var(--bs-border-color);
}

.form-control::placeholder{
  color: rgba(255,255,255,.9);
  opacity: 1;
}

.form-text{
  color: var(--ccf-muted2) !important;
  width: 100%;
  text-align: center;
}

/* Accents */
.algo-highlight{ border-bottom: 2px solid var(--ccf-accent); }
.unlock-header{ font-size: 1.45rem; }

/* Landing page cover image */
img.book-cover{
  width: 30%;
  display: inline-block;
  outline: 2px solid var(--ccf-muted2);
}

/* ===== Video Preview Buttons (shared across index + books) =====
   - index.html uses .play-now-btn
   - books.html uses .play-circle-btn
   We keep them visually consistent by sharing the same styling.
*/
.play-now-btn,
.play-circle-btn{
  margin-top: 12px;
  border: 1px solid rgba(255,255,255,.3);
  background: transparent;
  color: var(--ccf-fg);
  border-radius: 1rem;
  padding: .5rem 1rem;
  font-weight: 600;
  transition: all .15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  line-height: 1;
}

.play-now-btn:hover,
.play-circle-btn:hover{
  background: var(--ccf-accent);
  border-color: var(--ccf-accent);
  color: #fff;
}

/* Keeps icon-only play buttons from collapsing too small */
.play-circle-btn i,
.play-now-btn i{
  font-size: 1.05rem;
  margin-left: 0;
}

/* Books page specific */
.badge-ccf{
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.88);
  font-weight: 700;
}

.ccf-cover{
  aspect-ratio: 3 / 4;
  border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.14);
  background:
    radial-gradient(600px 320px at 30% 10%, rgba(157,26,1,.20), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}

.ccf-cover {
    aspect-ratio: 3 / 4;
    background-size: cover;
    background-position: center;
}


.ccf-cover .ccf-cover-inner{
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.25rem;
  gap: .6rem;
}

.ccf-cover .ccf-cover-title{
  font-weight: 800;
  line-height: 1.15;
  font-size: 1.05rem;
  letter-spacing: .01em;
}

.ccf-cover .ccf-cover-sub{
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  line-height: 1.4;
}

.ccf-status{
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 800;
  letter-spacing: .02em;
  font-size: .85rem;
  text-transform: uppercase;
}

.dot{
  width: .55rem;
  height: .55rem;
  border-radius: 999px;
  background: rgba(255,255,255,.35);
  box-shadow: 0 0 0 1px rgba(255,255,255,.12) inset;
}
.dot.open{
  background: var(--ccf-accent);
  box-shadow: 0 0 0 1px rgba(157,26,1,.35) inset;
}

.lock-overlay{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(0,0,0,.58);
  border-radius: 1.25rem;
  border: 1px solid rgba(255,255,255,.06);
  opacity: 0;
  transition: opacity .12s ease;
  pointer-events: none;
}

.ccf-tile.locked:hover .lock-overlay{ opacity: 1; }

.lock-chip{
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.55);
  color: rgba(255,255,255,.9);
  font-weight: 800;
}

.play-button{ position: relative; top: 25px; }

#bookZeroCardLink .ccf-tile{ cursor: pointer; }
#bookZeroCardLink:hover .ccf-card{
  border-color: var(--ccf-accent);
  box-shadow: 0 0 0 2px rgba(157,26,1,.25);
}

.ccf-cover.has-poster{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.ccf-cover.has-poster::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.75),
    rgba(0,0,0,.35) 45%,
    rgba(0,0,0,.15)
  );
  border-radius: 1rem;
}

.ccf-cover.has-poster > *{
  position: relative;
  z-index: 1;
}

.book-title{ display: inline-block; width: 85%;  }

/* Book Zero clickable indicator (book icon) — subtle, lower third */
.book-icon-indicator{
  
  right: 20px;
  display: block;
  align-items: center;
  justify-content: center;
  z-index: 3;
  pointer-events: none; 
}

.book-icon-indicator {
  font-size: 1.45rem;
  color: rgba(255,255,255,.78);
  opacity: .78;
  transition: color .15s ease, transform .15s ease, opacity .15s ease;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.55));
}

#bookZeroCardLink:hover .book-icon-indicator i{
  color: var(--ccf-accent);
  opacity: .95;
  transform: translateY(-1px);
}


.text-base {
    display: block; 
}

.form-check-input {
  accent-color:#157347;
}

input[type='radio'] { 
  accent-color:#157347;
} 
 
.form-check-input.input[type='radio'] { 
  accent-color:#157347;
} 
.form-check-input:checked 
 {
    background-color: #157347;
    border-color: #157347;
}

/* === Extracted from books_updated_coupon_baby_ace_discount.html === */
.ccf-price-btn .ccf-price-hover{display:none;}
    .ccf-price-btn{
      transition: all .25s ease;
    }
    .ccf-price-btn:hover,
    .ccf-price-btn:focus-visible{
      background-color:#198754 !important;
      border-color:#198754 !important;
      color:#ffffff !important;
    }
    .ccf-price-btn:hover .ccf-price-default,
    .ccf-price-btn:focus-visible .ccf-price-default{display:none;}
    .ccf-price-btn:hover .ccf-price-hover,
    .ccf-price-btn:focus-visible .ccf-price-hover{display:inline;}

#purchaseModal .modal-content{
      background-color:#121212 !important;
      border:1px solid #2a2a2a !important;
      color:#ffffff !important;
    }
    #purchaseModal .modal-header,
    #purchaseModal .modal-footer{
      background-color:#121212 !important;
      border-color:#2a2a2a !important;
    }

/* Receipt aesthetic for purchase modal */
    #purchaseModal .modal-content{
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
      letter-spacing: .2px;
    }
    #purchaseModal .ccf-receipt{
      background: #0b0b0b;
      border: 1px dashed #3a3a3a;
      border-radius: 12px;
      padding: 16px;
    }
    #purchaseModal .ccf-receipt-header{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      padding-bottom:12px;
      margin-bottom:12px;
      border-bottom: 1px dashed #2f2f2f;
    }
    #purchaseModal .ccf-receipt-brand{ line-height:1.15; }
    #purchaseModal .ccf-receipt-company{
      font-weight:700;
      font-size: 0.95rem;
      text-transform: uppercase;
    }
    #purchaseModal .ccf-receipt-tagline{
      font-size: 0.78rem;
      color:#cfcfcf;
      margin-top:4px;
    }
    #purchaseModal .ccf-receipt-meta{
      text-align:right;
      font-size: 0.75rem;
      color:#cfcfcf;
      white-space:nowrap;
    }
    #purchaseModal .ccf-line{
      display:flex;
      justify-content:space-between;
      gap:12px;
      font-size: 0.85rem;
      padding: 6px 0;
      border-bottom: 1px dotted #222;
    }
    #purchaseModal .ccf-label{ color:#cfcfcf; }
    #purchaseModal .ccf-value{
      color:#ffffff;
      text-align:right;
      max-width: 62%;
    }
    #purchaseModal .ccf-product{ padding: 10px 0 6px 0; }
    #purchaseModal .ccf-product-name{
      font-weight:700;
      font-size: 0.92rem;
      margin-bottom: 6px;
    }
    #purchaseModal .ccf-product-desc{
      color:#cfcfcf;
      font-size: 0.78rem;
      line-height:1.35;
    }
    #purchaseModal .ccf-total{
      margin-top:10px;
      padding-top:10px;
      border-top: 1px dashed #2f2f2f;
    }
    #purchaseModal .ccf-total .ccf-line{
      border-bottom:none;
      font-size: 0.95rem;
      font-weight:700;
    }
    #purchaseModal .ccf-footnote{
      margin-top: 10px;
      padding-top: 10px;
      border-top: 1px dashed #2f2f2f;
      color:#cfcfcf;
      font-size: 0.75rem;
      line-height:1.35;
    }
    #purchaseModal #purchasePayBtn{
      border-radius: 999px !important;
      font-weight: 700;
      letter-spacing: .2px;
    }

/* Purchase modal width: match premium layout (similar to books.html target) */
    @media (min-width: 992px){
      #purchaseModal .modal-dialog{ max-width: 860px; }
    }
    @media (min-width: 1200px){
      #purchaseModal .modal-dialog{ max-width: 920px; }
    }


/* === Inline style refactor (coupon/checkout modal) === */
.ccf-dashed-divider {
  border-bottom: 1px dashed #2f2f2f;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.ccf-clickable { cursor: pointer; }

.ccf-coupon-msg { color: #cfcfcf; }

.ccf-savings-line {
  border-bottom: none;
  padding: 0 0 8px 0;
}

.ccf-risk-reversal {
  border-top: none;
  padding-top: 0;
}

/* Due today highlight (keeps original color) */
.ccf-due-today-amount, .ccf-money { color: #9ad3a7; }
 
 

  .ccf-price-btn .ccf-price-hover, .ccf-hover-price .ccf-price-hover{display:none;}
  .ccf-price-btn, .ccf-hover-price{
    transition: all .25s ease;
  }
  .ccf-price-btn:hover,
  .ccf-price-btn:focus-visible,
  .ccf-hover-price:hover,
  .ccf-hover-price:focus-visible{
    background-color:#198754 !important;
    border-color:#198754 !important;
    color:#ffffff !important;
  }
  .ccf-price-btn:hover .ccf-price-default,
  .ccf-price-btn:focus-visible .ccf-price-default,
  .ccf-hover-price:hover .ccf-price-default,
  .ccf-hover-price:focus-visible .ccf-price-default{display:none;}
  .ccf-price-btn:hover .ccf-price-hover,
  .ccf-price-btn:focus-visible .ccf-price-hover,
  .ccf-hover-price:hover .ccf-price-hover,
  .ccf-hover-price:focus-visible .ccf-price-hover{display:inline;}
  
  #purchaseModal .modal-content{
    background-color:#121212 !important;
    border:1px solid #2a2a2a !important;
    color:#ffffff !important;
  }
  #purchaseModal .modal-header,
  #purchaseModal .modal-footer{
    background-color:#121212 !important;
    border-color:#2a2a2a !important;
  }
  
  /* Receipt aesthetic for purchase modal */
  #purchaseModal .modal-content{
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
    letter-spacing: .2px;
  }
  #purchaseModal .ccf-receipt{
    background: #0b0b0b;
    border: 1px dashed #3a3a3a;
    border-radius: 12px;
    padding: 16px;
  }
  #purchaseModal .ccf-receipt-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-bottom:12px;
    margin-bottom:12px;
    border-bottom: 1px dashed #2f2f2f;
  }
  #purchaseModal .ccf-receipt-brand{ line-height:1.15; }
  #purchaseModal .ccf-receipt-company{
    font-weight:700;
    font-size: 0.95rem;
    text-transform: uppercase;
  }
  #purchaseModal .ccf-receipt-tagline{
    font-size: 0.78rem;
    color:#cfcfcf;
    margin-top:4px;
  }
  #purchaseModal .ccf-receipt-meta{
    text-align:right;
    font-size: 0.75rem;
    color:#cfcfcf;
    white-space:nowrap;
  }
  #purchaseModal .ccf-line{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size: 0.85rem;
    padding: 6px 0;
    border-bottom: 1px dotted #222;
  }
  #purchaseModal .ccf-label{ color:#cfcfcf; }
  #purchaseModal .ccf-value{
    color:#ffffff;
    text-align:right;
    max-width: 62%;
  }
  #purchaseModal .ccf-product{ padding: 10px 0 6px 0; }
  #purchaseModal .ccf-product-name{
    font-weight:700;
    font-size: 0.92rem;
    margin-bottom: 6px;
  }
  #purchaseModal .ccf-product-desc{
    color:#cfcfcf;
    font-size: 0.78rem;
    line-height:1.35;
  }
  #purchaseModal .ccf-total{
    margin-top:10px;
    padding-top:10px;
    border-top: 1px dashed #2f2f2f;
  }
  #purchaseModal .ccf-total .ccf-line{
    border-bottom:none;
    font-size: 0.95rem;
    font-weight:700;
  }
  #purchaseModal .ccf-footnote{
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #2f2f2f;
    color:#cfcfcf;
    font-size: 0.75rem;
    line-height:1.35;
  }
  #purchaseModal #purchasePayBtn{
    border-radius: 999px !important;
    font-weight: 700;
    letter-spacing: .2px;
  } 

  /* Purchase modal width: match premium layout (similar to books.html target) */
  @media (min-width: 992px){
    #purchaseModal .modal-dialog{ max-width: 860px; }
  }
  @media (min-width: 1200px){
    #purchaseModal .modal-dialog{ max-width: 920px; }
  } 

.ccf-gradient { 
    padding: 4.5rem 0 2.5rem;
    border-bottom: 1px solid var(--ccf-border);
    background: radial-gradient(1200px 500px at 20% 0%, rgba(157, 26, 1, .18), transparent 60%), radial-gradient(900px 500px at 90% 10%, rgba(255, 255, 255, .06), transparent 55%), linear-gradient(180deg, rgba(255, 255, 255, .03), transparent 35%);
}

.max-w-315 {
    max-width: 315px;
}

/* === Free Preview Modal: ensure solid background (no transparency) === */
#freePreviewModal .modal-content{
  background-color:#121212 !important;
  border:1px solid #2a2a2a !important;
  color:#ffffff !important;
}
#freePreviewModal .modal-header,
#freePreviewModal .modal-footer{
  background-color:#121212 !important;
  border-color:#2a2a2a !important;
}

.ccf-book-desc {
  height:195px; 
}

.ccf-space {
    padding: 25px;
    margin-top: 25px;
}

.ccf-footer-bottom {
    position: absolute;
    bottom: 40px;
    width: 100%;
}

.ccf-card-premium {
    border-radius: 20px;
    background: linear-gradient(145deg, #0e0e0e, #1a1a1a);
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    transition: all 0.3s ease;
    overflow: hidden;
    position: relative;
}

    .ccf-card-premium:hover {
        transform: translateY(-6px);
        box-shadow: 0 20px 50px rgba(0,0,0,0.7);
    }

.ccf-cover-premium {
    aspect-ratio: 3/4;
    background-size: cover;
    background-position: center;
    border-radius: 14px;
    position: relative;
}

.ccf-cover-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
    border-radius: 14px;
}

.ccf-lock-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(6px);
    padding: 6px 8px;
    border-radius: 999px;
    font-size: 12px;
}

.ccf-card-body {
    padding: 16px;
}

.ccf-book-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 6px;
}

.ccf-book-desc {
    font-size: 0.85rem;
    color: #bfbfbf;
    line-height: 1.4;
    min-height: 40px;
}

.ccf-card-footer {
    margin-top: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ccf-btn-premium {
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 0.85rem;
    background: #111;
    border: 1px solid #333;
    color: white;
    transition: all 0.2s ease;
}
 