/* ============================================================
   BPM-GRIMOIRE.CSS · v1.1 · Sacred Chaos skin for Turtle Oracle
   Ported from Black Poppy Universe theme.css (grimoire v22).
   Loads LAST. One authoritative layer — repaints the design
   tokens and settles the layout. Do not patch bpm.css again;
   patch here.
   v1.1: readability pass (nothing under 11px), philosophy band.
   ============================================================ */

:root {
  --sc-paper: #f0e8d4;
  --sc-paper-2: #e8dec6;
  --sc-paper-3: #f6efdc;
  --sc-paper-warm: #f5eedd;
  --sc-paper-aged: #ddd0b3;
  --sc-ink: #1a1612;
  --sc-ink-deep: #0a0807;
  --sc-soft-ink: rgba(26, 22, 18, 0.78);
  --sc-line: rgba(26, 22, 18, 0.22);
  --sc-line-strong: rgba(26, 22, 18, 0.42);
  --sc-pink: #ff2d8e;
  --sc-pink-2: #ff007a;
  --sc-pink-soft: #ffb3d4;
  --sc-rose: #6b1f2e;
  --sc-rose-deep: #4a1018;
  --sc-purple: #2a1740;
  --sc-purple-deep: #14082a;
  --sc-silver: #c8c4c0;
  --sc-silver-deep: #8a8680;
  --sc-moon: #f9f5e6;
  --sc-charcoal: #3d3530;
  --sc-faded: #7a6f65;
  --sc-shadow-press: 0 1px 0 rgba(255,250,235,0.4) inset, 0 3px 6px rgba(20,15,10,0.22);
  --sc-font-display: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
  --sc-font-body: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --sc-font-label: 'Bebas Neue', 'Arial Narrow', sans-serif;

  --card: var(--sc-paper-3) !important;
  --white: var(--sc-moon) !important;
  --off-white: var(--sc-paper-warm) !important;
  --paper: var(--sc-paper-aged) !important;
  --ink: var(--sc-ink) !important;
  --ink3: var(--sc-soft-ink) !important;
  --ink4: var(--sc-faded) !important;
  --sage: var(--sc-faded) !important;
  --purple: var(--sc-purple) !important;
  --purple-hi: var(--sc-silver) !important;
  --purple-lo: rgba(42, 23, 64, 0.05) !important;
  --purple-mid: rgba(42, 23, 64, 0.16) !important;
  --purple-deep: var(--sc-purple) !important;
  --teal: var(--sc-silver-deep) !important;
  --rose: var(--sc-rose) !important;
  --border: rgba(26, 22, 18, 0.18) !important;
  --border2: var(--sc-line) !important;
  --shadow: 0 2px 4px rgba(20,15,10,0.05) !important;
  --shadow2: 0 2px 4px rgba(20,15,10,0.05), 0 8px 22px rgba(20,15,10,0.07) !important;
  --playfair: var(--sc-font-display) !important;
  --cinzel: 'Cormorant Garamond', Georgia, serif !important;
  --jost: var(--sc-font-body) !important;
  --radius: 3px !important;
  --radius-sm: 2px !important;
}

body {
  color: var(--sc-ink) !important;
  font-family: var(--sc-font-body) !important;
  background:
    radial-gradient(ellipse 80px 60px at 8% 15%, rgba(80,40,20,0.06), transparent 70%),
    radial-gradient(ellipse 60px 40px at 92% 35%, rgba(80,40,20,0.05), transparent 70%),
    radial-gradient(ellipse 100px 70px at 50% 92%, rgba(80,40,20,0.04), transparent 70%),
    radial-gradient(ellipse 40px 30px at 22% 70%, rgba(90,26,31,0.04), transparent 70%),
    radial-gradient(circle 1px at 25% 25%, rgba(20,15,10,0.08) 1px, transparent 1px),
    radial-gradient(circle 1px at 75% 75%, rgba(20,15,10,0.06) 1px, transparent 1px),
    repeating-linear-gradient(91deg, transparent 0, transparent 2px, rgba(60,40,20,0.018) 2px, rgba(60,40,20,0.018) 3px),
    repeating-linear-gradient(179deg, transparent 0, transparent 3px, rgba(60,40,20,0.012) 3px, rgba(60,40,20,0.012) 4px),
    radial-gradient(ellipse at 30% 20%, var(--sc-paper-warm) 0%, var(--sc-paper) 50%, var(--sc-paper-2) 100%) !important;
  background-size: auto, auto, auto, auto, 14px 14px, 18px 18px, auto, auto, auto !important;
}
html { overflow-x: clip; }

.bpm-nav-inner, .bpm-section-inner, .page-width,
.bpm-about-layout, .bpm-contact-layout, .bpm-readings-grid,
.bpm-cat-grid, .bpm-trust-grid, .bpm-faq-grid, .bpm-process-grid,
.bpm-oracle-two, .bpm-oracle-panel, .bpm-blessing-card,
.bpm-newsletter-box, .bpm-howmade-panel,
cart-items .page-width, .cart__footer-wrapper .page-width {
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}
main#main-content { overflow-x: clip; }

.bpm-frame, .botanical-frame {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  pointer-events: none !important;
  z-index: 6 !important;
  opacity: 0.9 !important;
}
@media (max-width: 740px) { .bpm-frame, .botanical-frame { opacity: 0.6 !important; } }

.bpm-hero-title, .bpm-title, .bpm-contact-title, .bpm-newsletter-title,
.bpm-oracle-card .bpm-title, .collection-hero__title,
cart-items .title, cart-items .title--primary,
.bpm-about-sig-name, .bpm-reading-price {
  font-family: var(--sc-font-display) !important;
  color: var(--sc-ink-deep) !important;
  font-weight: 400 !important;
}
.bpm-eyebrow, .bpm-hero-eyebrow, .bpm-footer-col-title,
.bpm-reading-cta, .bpm-reading-badge, .bpm-product-reviews-label,
.bpm-about-portrait-caption, .bpm-founder-trust-name,
.bpm-hero-tagline, .bpm-nav-links a, .bpm-nav-cart,
.bpm-about-sig-title, .bpm-trust-label, .bpm-cat-name, .bpm-reading-name,
.bpm-about-subhead, .bpm-love-share__title {
  font-family: var(--sc-font-label) !important;
  font-weight: 400 !important;
}
.bpm-eyebrow, .bpm-hero-eyebrow { color: var(--sc-rose) !important; opacity: 1 !important; letter-spacing: .3em !important; }
.bpm-desc, .bpm-about-body p, .bpm-oracle-panel p, .bpm-oracle-card p,
.bpm-faq-card p, .bpm-contact-desc, .bpm-newsletter-desc, .bpm-blessing-body p,
.bpm-howmade-step p, .bpm-reading-desc, .bpm-cat-desc, .bpm-trust-desc {
  font-family: var(--sc-font-display) !important;
  color: var(--sc-charcoal) !important;
}
.bpm-rule { background: var(--sc-line-strong) !important; }
.bpm-hero-rule span, .divider-glyph { color: var(--sc-pink) !important; opacity: .7 !important; }

.bpm-reading-card, .bpm-cat-card, .bpm-oracle-panel, .bpm-oracle-card,
.bpm-faq-card, .bpm-process-step, .bpm-contact-box, .bpm-newsletter-box,
.bpm-blessing-card, .bpm-howmade-standard, .bpm-about-portrait-outer,
.bpm-product-review, .bpm-post-order-note, .bpm-love-share,
.bpm-intake-note--optionc, .cart-items tr.cart-item, .bpm-review-card, .bpm-sample-card {
  background:
    radial-gradient(ellipse at top left, rgba(255,250,235,0.5), transparent 60%),
    linear-gradient(180deg, var(--sc-paper-3) 0%, var(--sc-paper-2) 100%) !important;
  border: 1px solid rgba(26, 22, 18, 0.18) !important;
  border-left: 3px solid transparent !important;
  border-radius: 3px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,250,235,0.6),
    0 2px 4px rgba(20,15,10,0.05),
    0 8px 22px rgba(20,15,10,0.07) !important;
  transition: border-left-color 150ms ease, transform 150ms ease, box-shadow 150ms ease !important;
}
.bpm-reading-card:hover, .bpm-cat-card:hover, .bpm-faq-card:hover {
  border-left-color: var(--sc-pink) !important;
  transform: translateY(-2px) !important;
  background:
    radial-gradient(ellipse at top left, rgba(255,45,142,0.06), transparent 60%),
    linear-gradient(180deg, var(--sc-paper-3) 0%, var(--sc-paper-2) 100%) !important;
}
.bpm-reading-card::before {
  background: linear-gradient(90deg, var(--sc-pink), var(--sc-rose)) !important;
}
.bpm-reading-price { color: var(--sc-rose) !important; }
.bpm-reading-badge { color: var(--sc-rose) !important; border-color: rgba(107,31,46,0.35) !important; }
.bpm-mothers-day-badge { color: var(--sc-rose) !important; }

.btn-primary, .btn-ghost, .bpm-newsletter-btn, .cart__checkout-button,
.button, .bpm-cart-update-row .button, .cart-item__action .button {
  font-family: var(--sc-font-label) !important;
  letter-spacing: 0.24em !important;
  border-radius: 2px !important;
}
.btn-primary, .bpm-newsletter-btn, .cart__checkout-button, .btn-primary--hero {
  background: linear-gradient(180deg, #2a2420 0%, var(--sc-ink-deep) 100%) !important;
  color: var(--sc-paper-3) !important;
  border: 1px solid var(--sc-ink-deep) !important;
  box-shadow: inset 0 1px 0 rgba(255,240,220,0.08), inset 0 -1px 0 rgba(0,0,0,0.4),
    0 1px 2px rgba(20,15,10,0.25), 0 4px 8px rgba(20,15,10,0.12) !important;
}
.btn-primary:hover, .bpm-newsletter-btn:hover, .cart__checkout-button:hover, .btn-primary--hero:hover {
  background: linear-gradient(180deg, var(--sc-pink) 0%, var(--sc-pink-2) 100%) !important;
  color: var(--sc-ink-deep) !important;
  transform: translateY(-1px) !important;
  box-shadow: inset 0 1px 0 rgba(255,240,220,0.18), 0 2px 4px rgba(20,15,10,0.3),
    0 6px 14px rgba(255,45,142,0.35) !important;
}
.btn-ghost, .btn-ghost--hero {
  background: transparent !important;
  color: var(--sc-ink) !important;
  border: 1px solid var(--sc-line-strong) !important;
  box-shadow: none !important;
}
.btn-ghost:hover, .btn-ghost--hero:hover {
  background: var(--sc-ink) !important;
  color: var(--sc-paper) !important;
  border-color: var(--sc-ink) !important;
}

.bpm-contact-input, .bpm-contact-textarea, .bpm-newsletter-input, .field__input {
  font-family: var(--sc-font-body) !important;
  background: rgba(255, 250, 235, 0.55) !important;
  border: 1px solid var(--sc-line) !important;
  border-bottom: 1px solid var(--sc-line-strong) !important;
  color: var(--sc-ink-deep) !important;
  border-radius: 2px !important;
  box-shadow: inset 0 1px 2px rgba(20,15,10,0.04) !important;
}
.bpm-contact-input:focus, .bpm-contact-textarea:focus, .bpm-newsletter-input:focus {
  border-color: var(--sc-rose) !important;
  background: rgba(255, 250, 235, 0.85) !important;
  box-shadow: 0 0 0 1px rgba(107,31,46,0.25) !important;
}

.bpm-hl, .bpm-highlight, mark.bpm {
  background: linear-gradient(transparent 58%, rgba(255,45,142,0.30) 58%) !important;
  padding: 0 2px !important;
  color: inherit !important;
}

.bpm-nav { background: rgba(240, 232, 212, 0.96) !important; border-bottom: 1px solid var(--sc-line) !important; }
.bpm-nav-logo-main { font-family: var(--sc-font-display) !important; color: var(--sc-ink-deep) !important; }
.bpm-nav-logo-sub { font-family: var(--sc-font-display) !important; font-style: italic !important; }
.bpm-nav-links a:hover, .bpm-nav-cart:hover { color: var(--sc-pink) !important; border-color: var(--sc-pink) !important; }
.bpm-nav-eleven { display: inline !important; color: var(--sc-pink) !important; opacity: .45 !important; }
.bpm-marquee-wrap { background: linear-gradient(180deg, #1a1220 0%, var(--sc-purple-deep) 100%) !important; }
.bpm-marquee-item { color: rgba(249, 245, 230, 0.82) !important; font-family: var(--sc-font-label) !important; }
.bpm-marquee-dot { color: var(--sc-pink) !important; opacity: .9 !important; }
.bpm-marquee-wrap::before { background: linear-gradient(to right, rgba(20,8,42,0.98), rgba(20,8,42,0)) !important; }
.bpm-marquee-wrap::after { background: linear-gradient(to left, rgba(20,8,42,0.98), rgba(20,8,42,0)) !important; }
.bpm-footer { background: linear-gradient(180deg, #1a1220 0%, var(--sc-purple-deep) 100%) !important; }
.bpm-footer-brand-name { font-family: var(--sc-font-display) !important; color: var(--sc-moon) !important; }
.bpm-footer-col-title { color: var(--sc-silver) !important; opacity: .8 !important; }
.bpm-footer-links a { color: rgba(249,245,230,0.45) !important; font-family: var(--sc-font-display) !important; }
.bpm-footer-links a:hover { color: var(--sc-pink) !important; }
.bpm-footer-tagline { color: var(--sc-silver) !important; opacity: .55 !important; }
.bpm-footer-eleven, .bpm-contact-eleven { color: var(--sc-pink) !important; opacity: .5 !important; }
.bpm-footer-copy { color: rgba(249,245,230,0.3) !important; }

.bpm-process-step span { background: var(--sc-ink-deep) !important; color: var(--sc-paper-3) !important; border-radius: 2px !important; }
.bpm-oracle-panel::before { color: var(--sc-silver) !important; opacity: .3 !important; }
.bpm-oracle-list li::before { color: var(--sc-pink) !important; }
.bpm-oracle-kicker { color: var(--sc-rose) !important; }
.bpm-founder-trust { border-left: 3px solid var(--sc-pink) !important; background: rgba(255,45,142,0.04) !important; }
.bpm-about-origin { border-left: 2px solid var(--sc-pink) !important; color: var(--sc-rose) !important; font-family: var(--sc-font-display) !important; }

html { scrollbar-color: var(--sc-silver-deep) var(--sc-paper-2) !important; }
body::-webkit-scrollbar-track { background: var(--sc-paper-2) !important; border-left: 1px solid var(--sc-line) !important; }
body::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--sc-silver) 0%, var(--sc-silver-deep) 100%) !important; border: 3px solid var(--sc-paper-2) !important; }
body::-webkit-scrollbar-thumb:hover { background: var(--sc-pink) !important; }

.bpm-nav-logo-main { font-size: 19px !important; letter-spacing: .06em !important; }
.bpm-nav-logo-sub { font-size: 12.5px !important; }
.bpm-nav-links { gap: clamp(16px, 2.4vw, 30px) !important; }
.bpm-nav-links a, .bpm-nav-cart {
  font-size: 13px !important;
  letter-spacing: .2em !important;
}
.bpm-nav-eleven { font-size: 12px !important; }
.bpm-eyebrow, .bpm-hero-eyebrow { font-size: 13px !important; }
.bpm-hero-tagline { font-size: 12px !important; }
.bpm-reading-name { font-size: 16px !important; }
.bpm-reading-cta { font-size: 12px !important; }
.bpm-reading-badge, .bpm-mothers-day-badge { font-size: 11px !important; }
.bpm-cat-name, .bpm-trust-label { font-size: 14px !important; }
.bpm-about-sig-title, .bpm-about-portrait-caption { font-size: 12px !important; }
.bpm-about-portrait-caption span { font-size: 11px !important; }
.bpm-footer-col-title { font-size: 12px !important; letter-spacing: .24em !important; }
.bpm-footer-links a { font-size: 14px !important; }
.bpm-footer-brand-name { font-size: 17px !important; }
.bpm-footer-brand-sub, .bpm-footer-brand-desc { font-size: 13px !important; }
.bpm-footer-tagline { font-size: 11px !important; }
.bpm-footer-copy { font-size: 12px !important; }
.bpm-marquee-item { font-size: 12px !important; }
.bpm-product-reviews-label, .bpm-founder-trust-name, .bpm-love-share__title { font-size: 12px !important; }
.bpm-product-review cite { font-size: 11px !important; }
.bpm-oracle-list li, .bpm-reading-desc, .bpm-cat-desc, .bpm-trust-desc { font-size: 15px !important; }
.bpm-desc, .bpm-about-body p, .bpm-oracle-panel p, .bpm-oracle-card p,
.bpm-faq-card p, .bpm-contact-desc, .bpm-newsletter-desc { font-size: 17px !important; }

.bpm-philosophy { padding: 38px 0 4px; }
.bpm-philosophy .bpm-oracle-panel { text-align: center; max-width: 720px !important; }
.bpm-philosophy .bpm-oracle-panel p {
  font-family: var(--sc-font-display) !important;
  font-size: 19px !important;
  line-height: 2.05 !important;
  margin: 0 !important;
  color: var(--sc-charcoal) !important;
}
.bpm-philosophy .bpm-philosophy-vow {
  font-family: var(--sc-font-label) !important;
  font-size: 12px !important;
  letter-spacing: .3em !important;
  color: var(--sc-rose) !important;
  display: block;
  margin-bottom: 14px !important;
}
