/*
Theme Name: BNPC — Basic Needs Production Chain
Theme URI: https://bnpcltd.com
Author: BNPC Ltd
Author URI: https://bnpcltd.com
Description: Official WordPress theme for the Basic Needs Production Chain (BNPC) — an integrated African-led development model. Features a professional dark aesthetic with earth-green-gold palette, sector bento grid, production chain diagram, audience journey sections, and full WooCommerce support.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: flavor-starter
Tags: development, africa, custom-menu, featured-images, threaded-comments, one-column, custom-logo
*/

/* ============================================
   CUSTOM PROPERTIES
   ============================================ */
:root {
  /* BNPC palette — warm cream base, green accent, gold highlight */
  --c-bg:          #f7f4ef;
  --c-bg-raised:   #f2ede6;
  --c-surface:     #ebe5dc;
  --c-surface-2:   #e3ddd3;
  --c-border:      #cfc8bb;
  --c-border-light:#bbb4a8;
  --c-text:        #2c3a28;
  --c-text-muted:  #57704e;
  --c-text-dim:    #8a9e80;
  --c-heading:     #1a2818;
  --c-accent:      #2f8c3a;
  --c-accent-2:    #247030;
  --c-accent-glow: rgba(47,140,58,0.15);
  --c-accent-dim:  rgba(47,140,58,0.09);
  --c-gold:        #b5820f;
  --c-gold-light:  #d4a020;
  --c-hot:         #c45838;
  --c-sale:        #c45838;
  --c-success:     #2f8c3a;
  --c-warning:     #b5820f;
  --c-error:       #c45838;
  --c-white:       #ffffff;

  /* Typography */
  --f-display: 'Outfit', system-ui, sans-serif;
  --f-body:    'Source Sans 3', system-ui, sans-serif;
  --f-mono:    'JetBrains Mono', 'Fira Code', monospace;

  /* Spacing / Layout */
  --max-w:    1240px;
  --gap:      2rem;
  --radius:   8px;
  --radius-lg:16px;

  /* Shadows */
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:  0 4px 20px rgba(0,0,0,0.10);
  --shadow-lg:  0 12px 48px rgba(0,0,0,0.14);
  --shadow-glow:0 0 30px rgba(47,140,58,0.12);

  --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
}

/* ============================================
   RESET & BASE
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:18px}

body{
  font-family:var(--f-body);
  font-size:18px;
  line-height:1.7;
  color:var(--c-text);
  background:var(--c-bg);
}

/* Subtle noise overlay on body */
body::before{
  content:'';
  position:fixed;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events:none;
  z-index:0;
}

body>*{position:relative;z-index:1}

::selection{background:var(--c-accent);color:var(--c-bg)}

img{max-width:100%;height:auto;display:block}

a{
  color:var(--c-accent);
  text-decoration:none;
  transition:color var(--transition);
}
a:hover{color:var(--c-accent-2)}

h1,h2,h3,h4,h5,h6{
  font-family:var(--f-display);
  font-weight:700;
  line-height:1.2;
  color:var(--c-heading);
  letter-spacing:-0.02em;
}
h1{font-size:clamp(2.25rem,5vw,3.5rem)}
h2{font-size:clamp(1.75rem,3.5vw,2.5rem)}
h3{font-size:1.375rem}
h4{font-size:1.125rem}

p+p{margin-top:1rem}

code,pre{font-family:var(--f-mono);font-size:0.9em}

pre{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  padding:1.25rem;
  overflow-x:auto;
}

/* ============================================
   LAYOUT
   ============================================ */
.site-container{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

.container{
  width:100%;
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 1.5rem;
}

.container--narrow{max-width:800px}

.site-content{flex:1}

/* Utility: section spacing */
.section{padding:5rem 0}
.section--sm{padding:3rem 0}

/* ============================================
   HEADER — TWO-PILL FLOATING BAR (Hyprland-style)
   ============================================ */
.site-header{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  padding:0.65rem 1.25rem 0;
  pointer-events:none;
  transition:top 0.35s ease;
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:var(--max-w);
  margin:0 auto;
  gap:0.75rem;
}

/* ── Shared pill base — blur lives HERE on the element itself ── */
.header-pill{
  position:relative;
  pointer-events:auto;
  border-radius:50px;
  background:rgba(242,237,230,0.85);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  backdrop-filter:blur(16px) saturate(1.4);
  transition:background 0.35s ease,box-shadow 0.35s ease;
}

/* Teal gradient border */
.header-pill::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:50px;
  border-top:1.5px solid rgba(0,212,170,0.5);
  border-left:1px solid rgba(0,212,170,0.15);
  border-right:1px solid rgba(0,212,170,0.15);
  border-bottom:1px solid rgba(0,212,170,0.03);
  box-shadow:
    0 -1px 12px rgba(0,212,170,0.08),
    0 8px 32px rgba(0,0,0,0.25),
    inset 0 1px 0 rgba(0,0,0,0.04);
  pointer-events:none;
}

/* ── Left pill — branding ── */
.header-pill--brand{
  padding:0 1.25rem;
  height:52px;
  display:flex;
  align-items:center;
  flex-shrink:0;
}

/* ── Right pill — nav + actions ── */
.header-pill--nav{
  display:flex;
  align-items:center;
  height:52px;
  padding:0 0.5rem 0 1.25rem;
  gap:0.25rem;
}

/* ── Scrolled state — both pills ── */
.site-header.scrolled .header-pill{
  background:rgba(242,237,230,0.92);
}
.site-header.scrolled .header-pill::after{
  border-top-color:rgba(0,212,170,0.6);
  border-left-color:rgba(0,212,170,0.2);
  border-right-color:rgba(0,212,170,0.2);
  box-shadow:
    0 -1px 16px rgba(0,212,170,0.1),
    0 8px 40px rgba(0,0,0,0.35),
    0 0 60px rgba(0,212,170,0.04),
    inset 0 1px 0 rgba(0,0,0,0.05);
}

/* Push page content below the fixed header */
.site-content{
  flex:1;
  padding-top:5rem;
}

/* Front page: hero bleeds under the floating nav */
.home .site-content,
.page-template-front-page .site-content{
  padding-top:0;
}
.hero{
  padding-top:6rem; /* account for floating header overlap */
}

/* Branding */
.site-branding{display:flex;align-items:center;gap:0.75rem}

.site-branding .custom-logo-link img{height:36px;width:auto}

.site-branding .site-title{
  font-family:var(--f-display);
  font-size:1.35rem;
  font-weight:800;
  letter-spacing:-0.03em;
  line-height:1;
}

.site-branding .site-title a{color:var(--c-heading)}
.site-branding .site-title a:hover{color:var(--c-accent)}

.site-description{display:none}

/* Navigation */
.main-navigation ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:0.25rem;
}

.main-navigation a{
  display:block;
  padding:0.5rem 0.9rem;
  color:var(--c-text-muted);
  font-family:var(--f-body);
  font-size:0.9rem;
  font-weight:500;
  border-radius:var(--radius);
  transition:color var(--transition), background var(--transition);
}

.main-navigation a:hover,
.main-navigation .current-menu-item>a,
.main-navigation .current_page_item>a{
  color:var(--c-heading);
  background:var(--c-surface);
}

/* Sub-menus */
.main-navigation li{position:relative}

.main-navigation ul ul{
  display:none;
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-lg);
  padding:0.5rem;
  min-width:220px;
  flex-direction:column;
  gap:0;
  z-index:100;
}

.main-navigation li:hover>ul{display:flex}

.main-navigation ul ul a{
  padding:0.6rem 0.75rem;
  border-radius:calc(var(--radius) - 2px);
  white-space:nowrap;
}

.main-navigation ul ul a:hover{background:var(--c-accent-dim)}

/* Header actions */
.header-actions{
  display:flex;
  align-items:center;
  gap:0.75rem;
}

.header-cta{
  display:inline-flex;
  align-items:center;
  gap:0.4rem;
  padding:0.5rem 1.35rem;
  font-family:var(--f-body);
  font-size:0.85rem;
  font-weight:600;
  color:var(--c-bg);
  background:linear-gradient(135deg, #00d4aa 0%, #00b4d8 100%);
  border:none;
  border-radius:50px;
  cursor:pointer;
  transition:background var(--transition),transform var(--transition),box-shadow var(--transition);
}

.header-cta:hover{
  background:linear-gradient(135deg, #00e4ba 0%, #00c4e8 100%);
  color:var(--c-bg);
  transform:translateY(-1px);
  box-shadow:0 4px 20px rgba(0,212,170,0.3);
}

.cart-link{
  display:flex;
  align-items:center;
  gap:0.35rem;
  color:var(--c-text-muted);
  font-size:0.85rem;
  font-weight:500;
  padding:0.5rem 0.75rem;
  border-radius:var(--radius);
  transition:color var(--transition),background var(--transition);
}

.cart-link:hover{color:var(--c-heading);background:var(--c-surface)}

.cart-link svg{width:18px;height:18px}

.cart-count{
  background:var(--c-accent);
  color:var(--c-bg);
  font-size:0.65rem;
  font-weight:800;
  border-radius:50%;
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}

/* Mobile toggle */
.menu-toggle{
  display:none;
  background:none;
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  cursor:pointer;
  padding:0.5rem;
  color:var(--c-text);
  transition:background var(--transition);
}
.menu-toggle:hover{background:var(--c-surface)}
.menu-toggle svg{width:22px;height:22px}

@media(max-width:900px){
  .menu-toggle{display:flex}
  .site-header{padding:0.5rem 0.75rem 0}
  .header-pill--nav{padding:0 0.5rem;gap:0.15rem}
  .main-navigation{display:none!important}
  .header-cta .cta-label{display:none}
}

/* ── Mobile dropdown — independent blur layer ── */
.mobile-navigation{
  display:none;
  max-width:var(--max-w);
  margin:0.6rem auto 0;
  padding:0.75rem 1.25rem 1rem;
  border-radius:20px;
  background:rgba(242,237,230,0.85);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  backdrop-filter:blur(16px) saturate(1.4);
  border-top:1.5px solid rgba(0,212,170,0.35);
  border-left:1px solid rgba(0,212,170,0.1);
  border-right:1px solid rgba(0,212,170,0.1);
  border-bottom:1px solid rgba(0,212,170,0.03);
  box-shadow:0 12px 48px rgba(0,0,0,0.12);
  pointer-events:auto;
}
.mobile-navigation.toggled{display:block}
.mobile-navigation ul{
  list-style:none;
  margin:0;padding:0;
  display:flex;
  flex-direction:column;
}
.mobile-navigation li{
  border-bottom:1px solid rgba(0,0,0,0.08);
}
.mobile-navigation li:last-child{border-bottom:none}
.mobile-navigation a{
  display:block;
  padding:0.85rem 0.5rem;
  color:var(--c-text-muted);
  font-size:0.95rem;
  font-weight:500;
  text-decoration:none;
  transition:color 0.2s ease;
}
.mobile-navigation a:hover{color:var(--c-accent)}
.mobile-navigation ul ul{padding:0 0 0 1rem}
@media(min-width:901px){
  .mobile-navigation{display:none!important}
}
/* --- Screenshot deck that always hovers on all layers --- */
/* --- 2D Screenshot deck: all 3 layers hover correctly --- */
.deck-parallax{
  --radius: 18px;
  --shadow: 0 30px 90px rgba(0,0,0,0.15);
  --border: 1px solid rgba(0,0,0,0.10);

  width: min(1100px, 100%);
  margin-inline: auto;
  padding: 5rem 0 4rem;

  position: relative;
  z-index: 50;
}

/* Give lots of vertical room + prevent next sections overlapping */
.deck-parallax__stage{
  position: relative;
  height: clamp(980px, 95vw, 1500px);
}

/* Card container does NOT take pointer events */
.deck-card{
  position: absolute;
  left: 50%;
  margin: 0;
  width: min(980px, 100%);
  pointer-events: none; /* prevents blocking other layers */
}

/* Only the visible card box is hoverable */
.deck-card__hit{
  pointer-events: auto;

  width: 100%;
  aspect-ratio: 16 / 9;

  border-radius: var(--radius);
  overflow: hidden;
  border: var(--border);
  box-shadow: var(--shadow);

  transition: transform 220ms ease, opacity 220ms ease, filter 220ms ease;
  will-change: transform;
}

.deck-card__hit img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* MUCH more vertical spacing (use px for predictable spacing) */
.deck-card--top{
  top: 0px;
  transform: translateX(-50%) scale(.86);
  z-index: 1;
}
.deck-card--mid{
  top: clamp(280px, 28vw, 220px);
  transform: translateX(-50%) scale(.92);
  z-index: 2;
}
.deck-card--front{
  top: clamp(600px, 62vw, 600px);
  transform: translateX(-50%) scale(1);
  z-index: 3;
}

/* Styling differences */
.deck-card--top  .deck-card__hit{ opacity:.35; filter: blur(1px) saturate(.9) brightness(.78); }
.deck-card--mid  .deck-card__hit{ opacity:.62; filter: blur(.7px) saturate(.95) brightness(.86); }
.deck-card--front .deck-card__hit{ opacity:1; filter:none; }

/* Hover: ONLY hovered card lifts 20% and comes to front */
.deck-card__hit:hover{
  transform: translateY(-20%);
  opacity: 1;
  filter: none;
}

/* Make hovered card render on top */
.deck-card__hit:hover{
  position: relative;
  z-index: 999;
}

/* Mobile */
@media (max-width: 700px){
  .deck-parallax__stage{
    height: clamp(900px, 130vw, 1500px);
  }
}


.hero-canvas,
.perspective-grid,
.orb-container,
.light-rays,
.ring-halos,
.glow-core,
.streaks,
.hero-noise{
  pointer-events: none !important;
}

/* ============================================
   BUTTONS
   ============================================ */
.btn,
button,
input[type="submit"],
.wp-block-button__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.75rem 1.75rem;
  font-family:var(--f-body);
  font-size:0.9rem;
  font-weight:600;
  border:none;
  border-radius:var(--radius);
  cursor:pointer;
  background:var(--c-accent);
  color:var(--c-bg);
  transition:all var(--transition);
  text-decoration:none;
  line-height:1.4;
}

.btn:hover,
button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover{
  background:var(--c-accent-2);
  color:var(--c-bg);
  transform:translateY(-1px);
  box-shadow:var(--shadow-glow);
}

.btn--outline{
  background:transparent;
  color:var(--c-text);
  border:1px solid var(--c-border);
}
.btn--outline:hover{
  border-color:var(--c-accent);
  color:var(--c-accent);
  background:var(--c-accent-dim);
  box-shadow:none;
}

.btn--lg{padding:0.95rem 2.5rem;font-size:1rem}
.btn--sm{padding:0.5rem 1rem;font-size:0.8rem}

.btn--ghost{
  background:transparent;
  color:var(--c-accent);
  padding:0.75rem 0;
}
.btn--ghost:hover{
  background:transparent;
  color:var(--c-accent-2);
  box-shadow:none;
  transform:none;
}
.btn--ghost::after{
  content:'→';
  transition:transform var(--transition);
}
.btn--ghost:hover::after{transform:translateX(4px)}

/* ============================================
   FORMS
   ============================================ */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="tel"],
input[type="number"],
textarea,
select{
  width:100%;
  padding:0.7rem 1rem;
  font-family:var(--f-body);
  font-size:0.95rem;
  color:var(--c-text);
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  transition:border-color var(--transition),box-shadow var(--transition);
}
input:focus,textarea:focus,select:focus{
  outline:none;
  border-color:var(--c-accent);
  box-shadow:0 0 0 3px var(--c-accent-glow);
}

label{
  font-weight:500;
  font-size:0.9rem;
  color:var(--c-text);
  display:block;
  margin-bottom:0.35rem;
}

/* ============================================
   HERO SECTION (front-page.php)
   ============================================ */
.hero{
  position:relative;
  padding:0;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
}

/* ── Particle Canvas ── */
.hero-canvas{
  position:absolute;
  inset:0;
  z-index:1;
}

/* ── Hero bottom fade — prevents hard cut-off ── */
.hero::after{
  content:'';
  position:absolute;
  bottom:0;left:0;right:0;
  height:200px;
  background:linear-gradient(to bottom, transparent 0%, var(--c-bg) 100%);
  z-index:8;
  pointer-events:none;
}

/* ============================================
   HERO → DECK BRIDGE (smooth background flow)
   ============================================ */
.hero-bridge{
  position:relative;
  overflow:hidden;
  /* Pull up into the hero fade zone for seamless blend */
  margin-top:-80px;
  padding-top:80px;
}

/* Continuing perspective grid — fades in at top, fades out at bottom */
.hero-bridge__grid{
  position:absolute;
  top:0;left:50%;
  transform:translateX(-50%) perspective(600px) rotateX(55deg);
  width:200%;height:70%;
  z-index:0;
  background:
    linear-gradient(90deg,rgba(0,212,170,0.035) 1px,transparent 1px),
    linear-gradient(0deg,rgba(0,212,170,0.035) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:linear-gradient(to bottom, black 0%, black 30%, transparent 80%);
  -webkit-mask-image:linear-gradient(to bottom, black 0%, black 30%, transparent 80%);
  animation:gridScroll 20s linear infinite;
  pointer-events:none;
}

/* Ambient glow orbs that float behind the deck */
.hero-bridge__glow{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(100px);
  z-index:0;
}

.hero-bridge__glow--1{
  width:500px;height:500px;
  top:5%;left:40%;
  background:radial-gradient(circle, rgba(0,212,170,0.1) 0%, rgba(0,212,170,0.03) 40%, transparent 70%);
  animation:bridgeGlow1 10s ease-in-out infinite;
}

.hero-bridge__glow--2{
  width:400px;height:400px;
  top:20%;right:15%;
  background:radial-gradient(circle, rgba(124,58,237,0.07) 0%, rgba(124,58,237,0.02) 40%, transparent 70%);
  animation:bridgeGlow2 12s ease-in-out infinite;
}

@keyframes bridgeGlow1{
  0%,100%{transform:translate(0,0) scale(1);opacity:0.7}
  50%{transform:translate(30px,-20px) scale(1.1);opacity:1}
}
@keyframes bridgeGlow2{
  0%,100%{transform:translate(0,0) scale(1);opacity:0.5}
  50%{transform:translate(-20px,15px) scale(1.08);opacity:0.8}
}

/* Scattered particle dots via radial gradients */
.hero-bridge__particles{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(1px 1px at 15% 20%, rgba(0,212,170,0.4) 50%, transparent 100%),
    radial-gradient(1px 1px at 35% 45%, rgba(0,212,170,0.25) 50%, transparent 100%),
    radial-gradient(1.5px 1.5px at 60% 15%, rgba(0,212,170,0.35) 50%, transparent 100%),
    radial-gradient(1px 1px at 80% 35%, rgba(124,58,237,0.3) 50%, transparent 100%),
    radial-gradient(1px 1px at 25% 65%, rgba(0,212,170,0.2) 50%, transparent 100%),
    radial-gradient(1.5px 1.5px at 70% 55%, rgba(59,130,246,0.25) 50%, transparent 100%),
    radial-gradient(1px 1px at 90% 20%, rgba(0,212,170,0.3) 50%, transparent 100%),
    radial-gradient(1px 1px at 50% 80%, rgba(124,58,237,0.2) 50%, transparent 100%),
    radial-gradient(1px 1px at 10% 50%, rgba(0,212,170,0.25) 50%, transparent 100%);
  mask-image:linear-gradient(to bottom, black 0%, black 40%, transparent 75%);
  -webkit-mask-image:linear-gradient(to bottom, black 0%, black 40%, transparent 75%);
  animation:bridgeParticlesDrift 25s linear infinite alternate;
}

@keyframes bridgeParticlesDrift{
  0%{background-position:0 0}
  100%{background-position:30px 20px}
}

/* Ensure deck-parallax sits above the bridge effects */
.hero-bridge .deck-parallax{
  position:relative;
  z-index:1;
}

/* ── Perspective Grid Floor ── */
.perspective-grid{
  position:absolute;
  bottom:-10%;left:50%;
  transform:translateX(-50%) perspective(600px) rotateX(55deg);
  width:200%;height:80vh;
  z-index:2;
  background:
    linear-gradient(90deg,rgba(0,212,170,0.04) 1px,transparent 1px),
    linear-gradient(0deg,rgba(0,212,170,0.04) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 50% 80% at 50% 100%,black 20%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse 50% 80% at 50% 100%,black 20%,transparent 70%);
  animation:gridScroll 20s linear infinite;
}
@keyframes gridScroll{0%{background-position:0 0}100%{background-position:0 60px}}

/* ── Mesh Gradient Orbs ── */
.orb-container{
  position:absolute;inset:0;z-index:3;overflow:hidden;
  filter:blur(80px);
}
.orb{position:absolute;border-radius:50%}
.orb--primary{
  width:600px;height:600px;top:10%;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle at 40% 40%,rgba(0,212,170,0.18) 0%,rgba(0,212,170,0.06) 40%,transparent 70%);
  animation:orbFloat1 8s ease-in-out infinite;
}
.orb--secondary{
  width:500px;height:500px;top:20%;left:35%;
  background:radial-gradient(circle at 60% 30%,rgba(124,58,237,0.14) 0%,rgba(124,58,237,0.04) 45%,transparent 70%);
  animation:orbFloat2 10s ease-in-out infinite;
}
.orb--tertiary{
  width:450px;height:450px;top:5%;right:20%;
  background:radial-gradient(circle at 30% 60%,rgba(59,130,246,0.12) 0%,rgba(59,130,246,0.03) 50%,transparent 70%);
  animation:orbFloat3 12s ease-in-out infinite;
}
.orb--accent{
  width:300px;height:300px;top:35%;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(0,230,195,0.1) 0%,transparent 60%);
  animation:orbPulse 4s ease-in-out infinite;
}
@keyframes orbFloat1{0%,100%{transform:translateX(-50%) translate(0,0) scale(1)}33%{transform:translateX(-50%) translate(30px,-20px) scale(1.05)}66%{transform:translateX(-50%) translate(-20px,15px) scale(0.95)}}
@keyframes orbFloat2{0%,100%{transform:translate(0,0) scale(1)}25%{transform:translate(-40px,20px) scale(1.08)}50%{transform:translate(20px,-30px) scale(0.92)}75%{transform:translate(30px,10px) scale(1.04)}}
@keyframes orbFloat3{0%,100%{transform:translate(0,0) scale(1)}40%{transform:translate(25px,30px) scale(1.06)}70%{transform:translate(-35px,-15px) scale(0.94)}}
@keyframes orbPulse{0%,100%{opacity:.6;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.2)}}

/* ── Rotating Light Rays ── */
.light-rays{
  position:absolute;top:-20%;left:50%;transform:translateX(-50%);
  width:1200px;height:900px;z-index:4;opacity:.5;
  mix-blend-mode:screen;
  animation:raysRotate 30s linear infinite;
}
@keyframes raysRotate{0%{transform:translateX(-50%) rotate(0deg)}100%{transform:translateX(-50%) rotate(360deg)}}

/* ── Ring Halos ── */
.ring-halos{position:absolute;top:25%;left:50%;transform:translate(-50%,-50%);z-index:4;pointer-events:none}
.ring{position:absolute;border-radius:50%;border:1px solid;top:50%;left:50%;transform:translate(-50%,-50%)}
.ring--1{width:300px;height:300px;border-color:rgba(0,212,170,0.06);animation:ringExpand 6s ease-in-out infinite}
.ring--2{width:500px;height:500px;border-color:rgba(0,212,170,0.03);animation:ringExpand 6s ease-in-out infinite 1s}
.ring--3{width:700px;height:700px;border-color:rgba(124,58,237,0.025);animation:ringExpand 6s ease-in-out infinite 2s}
@keyframes ringExpand{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.08);opacity:.5}}

/* ── Central Glow Core ── */
.glow-core{
  position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);
  width:500px;height:500px;z-index:5;pointer-events:none;
}
.glow-core::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle,rgba(0,212,170,0.08) 0%,rgba(0,212,170,0.03) 30%,transparent 60%);
  animation:corePulse 5s ease-in-out infinite;
}
.glow-core::after{
  content:'';position:absolute;top:50%;left:50%;width:2px;height:2px;
  transform:translate(-50%,-50%);border-radius:50%;
  background:rgba(0,230,195,0.9);
  box-shadow:0 0 20px 8px rgba(0,212,170,0.3),0 0 60px 20px rgba(0,212,170,0.15),0 0 120px 40px rgba(0,212,170,0.06);
  animation:coreGlow 3s ease-in-out infinite;
}
@keyframes corePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}
@keyframes coreGlow{0%,100%{box-shadow:0 0 20px 8px rgba(0,212,170,.3),0 0 60px 20px rgba(0,212,170,.15),0 0 120px 40px rgba(0,212,170,.06)}50%{box-shadow:0 0 30px 12px rgba(0,212,170,.4),0 0 80px 30px rgba(0,212,170,.2),0 0 160px 60px rgba(0,212,170,.1)}}

/* ── Horizontal Light Streaks ── */
.streaks{position:absolute;top:30%;left:0;right:0;height:200px;z-index:5;pointer-events:none;overflow:hidden}
.streak{position:absolute;height:1px;border-radius:50%}
.streak--1{top:30%;left:10%;width:30%;background:linear-gradient(90deg,transparent,rgba(0,212,170,0.15),transparent);animation:streakMove 7s ease-in-out infinite}
.streak--2{top:55%;left:40%;width:45%;background:linear-gradient(90deg,transparent,rgba(124,58,237,0.1),transparent);animation:streakMove 9s ease-in-out infinite 2s}
.streak--3{top:75%;left:20%;width:25%;background:linear-gradient(90deg,transparent,rgba(59,130,246,0.08),transparent);animation:streakMove 6s ease-in-out infinite 4s}
@keyframes streakMove{0%,100%{transform:translateX(0);opacity:.4}50%{transform:translateX(60px);opacity:1}}

/* ── Noise Texture ── */
.hero-noise{
  position:absolute;inset:0;z-index:6;opacity:0.035;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  pointer-events:none;
}

/* ── Gradient Text Glow ── */
.hero__title{
  text-shadow:0 0 80px rgba(0,212,170,0.08),0 0 40px rgba(0,212,170,0.04);
}
.highlight{
  background-size:200% 200%;
  animation:gradientShift 6s ease infinite;
  position:relative;
}
.highlight::after{
  content:attr(data-text);
  position:absolute;inset:0;
  background:linear-gradient(135deg,#00d4aa 0%,#00e6c3 30%,#7c3aed 70%,#a855f7 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  background-size:200% 200%;
  animation:gradientShift 6s ease infinite;
  filter:blur(30px);opacity:0.4;z-index:-1;
}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

.hero__badge{
  display:inline-flex;
  align-items:center;
  gap:0.5rem;
  padding:0.4rem 1rem;
  font-size:0.8rem;
  font-weight:600;
  color:var(--c-accent);
  background:var(--c-accent-dim);
  border:1px solid rgba(0,212,170,0.2);
  border-radius:100px;
  margin-bottom:1.75rem;
  letter-spacing:0.02em;
}

.hero__badge::before{
  content:'';
  width:6px;height:6px;
  background:var(--c-accent);
  border-radius:50%;
  animation:pulse 2s infinite;
}

@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.5;transform:scale(1.5)}
}

.hero__title{
  font-size:clamp(2.5rem,6vw,4rem);
  font-weight:800;
  letter-spacing:-0.035em;
  line-height:1.1;
  margin-bottom:1.25rem;
  max-width:800px;
  margin-left:auto;
  margin-right:auto;
}

.hero__title .highlight{
  background:linear-gradient(135deg,var(--c-accent) 0%,#00e6c3 50%,#7c3aed 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

.hero__subtitle{
  font-size:1.2rem;
  color:var(--c-text-muted);
  max-width:560px;
  margin:0 auto 2.5rem;
  line-height:1.7;
}

.hero__actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  flex-wrap:wrap;
}

.hero__proof{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2rem;
  margin-top:3rem;
  font-size:0.85rem;
  color:var(--c-text-dim);
}

.hero__proof-item{display:flex;align-items:center;gap:0.5rem}

.hero__proof-item strong{color:var(--c-text-muted);font-weight:600}

/* Product showcase / screenshot area */
.hero__showcase{
  margin-top:4rem;
  position:relative;
}

.hero__showcase-img{
  width:100%;
  max-width:960px;
  margin:0 auto;
  border-radius:var(--radius-lg);
  border:1px solid var(--c-border);
  box-shadow:var(--shadow-lg),0 0 80px rgba(0,212,170,0.06);
  overflow:hidden;
}

.hero__showcase-img img{width:100%;display:block}

/* Floating glow under showcase */
.hero__showcase::after{
  content:'';
  position:absolute;
  bottom:-40px;left:50%;
  transform:translateX(-50%);
  width:60%;height:80px;
  background:radial-gradient(ellipse,rgba(0,212,170,0.1),transparent 70%);
  pointer-events:none;
}

/* ============================================
   FEATURES GRID
   ============================================ */
.features{
  padding:5rem 0;
}

.features__header{
  text-align:center;
  max-width:600px;
  margin:0 auto 3.5rem;
}

.features__header .overline{
  display:block;
  font-family:var(--f-mono);
  font-size:0.75rem;
  font-weight:600;
  color:var(--c-accent);
  text-transform:uppercase;
  letter-spacing:0.12em;
  margin-bottom:0.75rem;
}

.features__header p{
  color:var(--c-text-muted);
  margin-top:1rem;
  font-size:1.05rem;
}

.features__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}

/* ══════════════════════════════════════
   BENTO GRID — HYPRLAND-STYLE CARDS
   ══════════════════════════════════════ */
.bento-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:1.25rem;
}

/* Large card spans left column, both rows */
.bento-card--large{
  grid-row:1 / 3;
}

/* ── Card base ── */
.bento-card{
  position:relative;
  border-radius:18px;
  padding:2px;
  background:rgba(0,0,0,0.04);
  cursor:default;
  transition:transform 0.4s cubic-bezier(0.19,1,0.22,1),box-shadow 0.4s ease;
}
.bento-card:hover{
  box-shadow:
    0 0 30px rgba(0,212,170,0.15),
    0 0 80px rgba(0,212,170,0.08);
}

/* ── Mouse-tracking glow overlay ── */
.bento-card__glow{
  position:absolute;
  inset:-1px;
  border-radius:18px;
  opacity:0;
  transition:opacity 0.3s ease;
  pointer-events:none;
  z-index:1;
}
.bento-card:hover .bento-card__glow{
  opacity:1;
}

/* ── Inner body ── */
.bento-card__inner{
  position:relative;
  background:linear-gradient(165deg,rgba(235,229,220,0.6) 0%,rgba(242,237,230,0.5) 100%);
  border-radius:16.5px;
  padding:2rem 2rem 2.25rem;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  z-index:2;
}

/* Large card has more space */
.bento-card--large .bento-card__inner{
  padding:2.5rem 2.5rem 2.75rem;
}

/* ── Icon ── */
.bento-card__icon{
  position:relative;
  width:64px;height:64px;
  display:flex;align-items:center;justify-content:center;
  border-radius:16px;
  margin-bottom:auto;
  background:linear-gradient(135deg,rgba(0,212,170,0.1) 0%,rgba(124,58,237,0.08) 100%);
  border:1px solid rgba(0,212,170,0.15);
  color:var(--c-accent);
  transition:all 0.4s ease;
}
.bento-card__icon svg{width:28px;height:28px}
.bento-card--large .bento-card__icon{
  width:80px;height:80px;border-radius:20px;
}
.bento-card--large .bento-card__icon svg{width:36px;height:36px}
.bento-card:hover .bento-card__icon{
  border-color:rgba(0,212,170,0.35);
  box-shadow:0 0 24px rgba(0,212,170,0.12);
}

/* ── Text ── */
.bento-card__text{
  position:relative;z-index:2;
  margin-top:2rem;
}
.bento-card--large .bento-card__text{
  margin-top:3rem;
}
.bento-card h3{
  font-size:1.5rem;font-weight:800;color:var(--c-heading);
  margin-bottom:0.65rem;letter-spacing:-0.02em;
  transition:color 0.3s ease;
}
.bento-card--large h3{
  font-size:2.25rem;
}
.bento-card p{
  font-size:0.95rem;color:var(--c-text-muted);line-height:1.7;
  transition:color 0.3s ease;
}
.bento-card:hover p{color:var(--c-text)}

/* ── Ambient gradient blob inside cards ── */
.bento-card__inner::before{
  content:'';
  position:absolute;
  top:-30%;right:-20%;
  width:70%;height:70%;
  background:radial-gradient(circle,rgba(0,212,170,0.06) 0%,rgba(124,58,237,0.04) 40%,transparent 70%);
  pointer-events:none;
  filter:blur(40px);
  transition:opacity 0.5s ease;
  opacity:0.5;
}
.bento-card:hover .bento-card__inner::before{
  opacity:1;
}

@media(max-width:768px){
  .bento-grid{grid-template-columns:1fr}
  .bento-card--large{grid-row:auto}
  .bento-card--large h3{font-size:1.75rem}
}

/* ============================================
   SOCIAL PROOF / LOGOS BAR
   ============================================ */
.logos-bar{
  padding:3rem 0;
  border-top:1px solid var(--c-border);
  border-bottom:1px solid var(--c-border);
}

.logos-bar__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3rem;
  flex-wrap:wrap;
  opacity:0.4;
  filter:grayscale(1) brightness(2);
}

.logos-bar__inner img{height:28px;width:auto}

.logos-bar__label{
  font-size:0.8rem;
  color:var(--c-text-dim);
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-weight:600;
  text-align:center;
  margin-bottom:1.5rem;
}

/* ============================================
   TESTIMONIAL
   ============================================ */
.testimonial-section{
  padding:5rem 0;
}

.testimonial-card{
  max-width:700px;
  margin:0 auto;
  text-align:center;
}

.testimonial-card blockquote{
  font-size:1.3rem;
  line-height:1.6;
  color:var(--c-text);
  font-style:italic;
  position:relative;
  padding:0 2rem;
  margin-bottom:1.5rem;
}

.testimonial-card blockquote::before{
  content:'"';
  font-size:4rem;
  font-family:Georgia,serif;
  color:var(--c-accent);
  position:absolute;
  top:-0.5rem;left:0;
  line-height:1;
  opacity:0.5;
}

.testimonial-card cite{
  font-style:normal;
  font-size:0.9rem;
  color:var(--c-text-muted);
}

.testimonial-card cite strong{
  display:block;
  color:var(--c-heading);
  font-weight:600;
  margin-bottom:0.15rem;
}

/* ============================================
   TESTIMONIAL + COMMUNITY + CTA — SHARED WRAPPER
   ============================================ */
.community-cta-wrapper{
  position:relative;
  overflow:hidden;
  background:var(--c-bg);
}
.community-cta-wrapper__bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(500px circle at 20% 75%, rgba(220,50,50,0.18) 0%, transparent 100%),
    radial-gradient(450px circle at 45% 80%, rgba(255,160,40,0.15) 0%, transparent 100%),
    radial-gradient(400px circle at 70% 72%, rgba(255,200,50,0.12) 0%, transparent 100%),
    radial-gradient(500px circle at 85% 65%, rgba(80,180,80,0.10) 0%, transparent 100%),
    radial-gradient(350px circle at 10% 60%, rgba(180,60,200,0.12) 0%, transparent 100%),
    radial-gradient(400px circle at 55% 68%, rgba(60,100,220,0.10) 0%, transparent 100%),
    radial-gradient(600px circle at 50% 72%, rgba(255,120,60,0.08) 0%, transparent 100%);
  pointer-events:none;
  /* Colors only bloom in lower half, fading out at bottom and sides */
  mask-image:
    linear-gradient(to bottom, transparent 0%, transparent 25%, black 50%, black 80%, transparent 100%),
    linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
  -webkit-mask-image:
    linear-gradient(to bottom, transparent 0%, transparent 25%, black 50%, black 80%, transparent 100%),
    linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
  mask-composite:intersect;
  -webkit-mask-composite:source-in;
}

/* Testimonial inherits the wrapper bg seamlessly */
.community-cta-wrapper .testimonial-section{
  position:relative;
  z-index:1;
}

.community-section{
  position:relative;
  padding:8rem 0 4rem;
  background:none;
}

.community-section__content{
  position:relative;
  z-index:2;
  text-align:center;
}

.community-section__title{
  font-family:var(--f-display);
  font-size:clamp(2.5rem, 6vw, 4.5rem);
  font-weight:800;
  letter-spacing:-0.03em;
  line-height:1.05;
  color:#7a5c3f;
  margin-bottom:1.25rem;
}

.community-section__subtitle{
  font-size:1.1rem;
  color:var(--c-text-muted);
  max-width:580px;
  margin:0 auto 3rem;
  line-height:1.6;
}

.community-section__logo{
  margin-bottom:2.5rem;
  opacity:0.9;
}
.community-section__logo svg{
  filter:drop-shadow(0 0 25px rgba(47,140,58,0.20));
  transition:filter 0.4s ease;
}
.community-section__logo:hover svg{
  filter:drop-shadow(0 0 35px rgba(88,101,242,0.4));
}

.btn--discord{
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  padding:0.85rem 2.2rem;
  border:1.5px solid var(--c-accent);
  color:var(--c-accent);
  background:transparent;
  border-radius:var(--radius);
  font-family:var(--f-body);
  font-weight:600;
  font-size:1rem;
  letter-spacing:0.01em;
  cursor:pointer;
  transition:all 0.3s ease;
  text-decoration:none;
}
.btn--discord:hover{
  background:var(--c-accent);
  color:var(--c-bg);
  box-shadow:0 0 30px rgba(0,212,170,0.25), 0 0 60px rgba(0,212,170,0.1);
}

/* ── Floating Avatar Bubbles ── */
.community-avatars{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

.c-avatar{
  position:absolute;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:2.5px solid hsl(var(--hue,160) 70% 55%);
  background:var(--c-surface);
  box-shadow:
    0 0 12px hsl(var(--hue,160) 70% 55% / 0.25),
    inset 0 0 8px hsl(var(--hue,160) 70% 55% / 0.08);
  animation:avatarFloat 6s ease-in-out infinite;
}
.c-avatar--sm{ width:44px; height:44px; font-size:1.1rem; }
.c-avatar--md{ width:60px; height:60px; font-size:1.4rem; }
.c-avatar--lg{ width:80px; height:80px; font-size:1.8rem; }

.c-avatar__inner{
  line-height:1;
}

@keyframes avatarFloat{
  0%, 100%{ transform:translateY(0) rotate(0deg); }
  33%{ transform:translateY(-10px) rotate(2deg); }
  66%{ transform:translateY(6px) rotate(-1.5deg); }
}

/* Responsive */
@media(max-width:768px){
  .community-section{padding:5rem 0;}
  .community-section__title{font-size:2.2rem;}
  .c-avatar--sm{width:32px;height:32px;font-size:0.85rem;}
  .c-avatar--md{width:44px;height:44px;font-size:1.1rem;}
  .c-avatar--lg{width:58px;height:58px;font-size:1.35rem;}
}

@media(max-width:480px){
  .community-avatars{display:none;}
  .community-section{padding:4rem 0;}
}

/* ============================================
   CTA BANNER
   ============================================ */
.cta-banner{
  position:relative;
  padding:2rem 0 5rem;
  background:none;
}

.cta-banner__inner{
  background:rgba(23,29,42,0.55);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
  padding:2.5rem 2rem;
  text-align:center;
  position:relative;
  z-index:1;
  overflow:hidden;
  max-width:700px;
  margin:0 auto;
}

.cta-banner__inner::before{
  content:'';
  position:absolute;
  top:-50%;left:50%;transform:translateX(-50%);
  width:600px;height:600px;
  background:radial-gradient(circle,rgba(0,212,170,0.06) 0%,transparent 70%);
  pointer-events:none;
}

.cta-banner__inner h2{margin-bottom:1rem}
.cta-banner__inner p{color:var(--c-text-muted);margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto}

/* ============================================
   FOOTER
   ============================================ */
.site-footer{
  background:var(--c-bg-raised);
  border-top:1px solid var(--c-border);
  padding:4rem 0 0;
  margin-top:auto;
}

.footer-inner{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 1.5rem;
}

.footer-top{
  display:grid;
  grid-template-columns:1.5fr repeat(3,1fr);
  gap:3rem;
  padding-bottom:3rem;
}

.footer-brand .site-title{
  font-family:var(--f-display);
  font-size:1.25rem;
  font-weight:800;
  color:var(--c-heading);
  margin-bottom:0.75rem;
}

.footer-brand p{
  font-size:0.9rem;
  color:var(--c-text-muted);
  line-height:1.6;
  max-width:280px;
}

.footer-widgets{
  display:contents;
}

.footer-widget-area{}

.footer-widget-area .widget-title,
.footer-col-title{
  font-family:var(--f-body);
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--c-text-dim);
  margin-bottom:1rem;
}

.footer-widget-area ul{list-style:none}
.footer-widget-area ul li{margin-bottom:0.4rem}
.footer-widget-area a{
  font-size:0.9rem;
  color:var(--c-text-muted);
  transition:color var(--transition);
}
.footer-widget-area a:hover{color:var(--c-accent)}

.footer-bottom{
  border-top:1px solid var(--c-border);
  padding:1.5rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
}

.footer-bottom p{
  font-size:0.8rem;
  color:var(--c-text-dim);
}

.footer-bottom nav ul{
  list-style:none;
  display:flex;
  gap:1.5rem;
}

.footer-bottom nav a{
  font-size:0.8rem;
  color:var(--c-text-dim);
}

.footer-bottom nav a:hover{color:var(--c-text-muted)}

@media(max-width:768px){
  .footer-top{grid-template-columns:1fr 1fr;gap:2rem}
  .footer-brand{grid-column:1/-1}
  .footer-bottom{flex-direction:column;text-align:center}
}

/* ============================================
   POSTS & BLOG
   ============================================ */
.page-header{margin-bottom:2.5rem}

.page-title{margin-bottom:0.5rem}

.posts-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:1.5rem;
}

.post-card{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);
}

.post-card:hover{
  border-color:var(--c-border-light);
  box-shadow:var(--shadow-md);
  transform:translateY(-3px);
}

.post-card .post-thumbnail img{width:100%;height:210px;object-fit:cover}

.post-card .post-body{padding:1.5rem}

.post-card .post-title{font-size:1.1rem;margin-bottom:0.5rem}
.post-card .post-title a{color:var(--c-heading)}
.post-card .post-title a:hover{color:var(--c-accent)}

.post-card .post-excerpt{font-size:0.9rem;color:var(--c-text-muted);margin-bottom:1rem;line-height:1.6}

.post-card .post-meta{font-size:0.8rem;color:var(--c-text-dim)}

/* Single post */
.single-content,.page-content{max-width:720px;margin:0 auto}

.entry-header{margin-bottom:2.5rem;text-align:center}

.entry-title{margin-bottom:0.75rem}

.entry-meta{font-size:0.85rem;color:var(--c-text-muted)}

.entry-content{font-size:1.05rem;line-height:1.85;color:var(--c-text)}

.entry-content p{margin-bottom:1.5rem}
.entry-content h2{margin:3rem 0 1rem}
.entry-content h3{margin:2.5rem 0 0.75rem}
.entry-content ul,.entry-content ol{margin:0 0 1.5rem 1.5rem}

.entry-content blockquote{
  border-left:3px solid var(--c-accent);
  padding:1.25rem 1.5rem;
  margin:2rem 0;
  background:var(--c-accent-dim);
  border-radius:0 var(--radius) var(--radius) 0;
  font-style:italic;
  color:var(--c-text);
}

.entry-content img{border-radius:var(--radius);margin:2rem 0}

/* Pagination */
.pagination,.post-navigation{margin-top:3rem;display:flex;justify-content:center;gap:0.5rem}

.pagination .page-numbers{
  padding:0.5rem 0.9rem;
  border:1px solid var(--c-border);
  border-radius:var(--radius);
  font-size:0.9rem;
  color:var(--c-text-muted);
  transition:all var(--transition);
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover{
  background:var(--c-accent);
  color:var(--c-bg);
  border-color:var(--c-accent);
}

/* ============================================
   SIDEBAR / WIDGETS
   ============================================ */
.widget{margin-bottom:2rem}

.widget-title{
  font-size:0.95rem;
  font-weight:700;
  margin-bottom:1rem;
  padding-bottom:0.5rem;
  border-bottom:2px solid var(--c-accent);
}

/* ============================================
   WOOCOMMERCE — PRODUCT GRID
   ============================================ */
.woocommerce ul.products{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:1.5rem;
  list-style:none;
  padding:0;
}

.woocommerce ul.products li.product{
  background:var(--c-surface);
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);
  float:none!important;width:100%!important;margin:0!important;padding:0!important;
  position:relative;
}

.woocommerce ul.products li.product:hover{
  border-color:var(--c-accent);
  box-shadow:var(--shadow-glow);
  transform:translateY(-4px);
}

.woocommerce ul.products li.product a img{
  width:100%;height:260px;object-fit:cover;margin:0!important;
  transition:transform 0.4s ease;
}

.woocommerce ul.products li.product:hover a img{transform:scale(1.03)}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product a h2{
  font-family:var(--f-display)!important;
  font-size:1rem!important;font-weight:600;
  padding:1rem 1.25rem 0.25rem!important;
  color:var(--c-heading);
}

.woocommerce ul.products li.product .price{
  padding:0 1.25rem;font-size:1.1rem;font-weight:700;color:var(--c-accent);
}

.woocommerce ul.products li.product .price del{color:var(--c-text-dim);font-weight:400;font-size:0.9rem}
.woocommerce ul.products li.product .price ins{text-decoration:none;color:var(--c-hot);font-weight:700}

.woocommerce ul.products li.product .star-rating{margin:0.25rem 1.25rem;font-size:0.8rem;color:var(--c-warning)}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button{
  margin:1rem 1.25rem 1.25rem!important;
  width:calc(100% - 2.5rem);
  text-align:center;
  font-size:0.85rem;
  padding:0.65rem 1rem;
  border-radius:var(--radius);
}

/* Sale badge */
.woocommerce span.onsale{
  background:var(--c-hot)!important;color:#fff;
  font-size:0.7rem;font-weight:800;
  padding:0.25rem 0.7rem;
  border-radius:100px;
  position:absolute;top:1rem;left:1rem;z-index:5;
  min-width:auto;min-height:auto;line-height:1.5;
  text-transform:uppercase;letter-spacing:0.04em;
}

/* ============================================
   WOOCOMMERCE — SINGLE PRODUCT
   ============================================ */
.woocommerce div.product div.images{
  border-radius:var(--radius-lg);
  overflow:hidden;
  border:1px solid var(--c-border);
  background:var(--c-surface);
}

.woocommerce div.product .product_title{
  font-family:var(--f-display);
  font-size:2rem;font-weight:800;
  letter-spacing:-0.02em;
  margin-bottom:0.5rem;
}

.woocommerce div.product p.price{
  font-size:1.5rem!important;color:var(--c-accent);font-weight:700;margin-bottom:1.25rem;
}

.woocommerce div.product .woocommerce-product-details__short-description{
  font-size:1rem;color:var(--c-text-muted);margin-bottom:1.5rem;line-height:1.7;
}

.woocommerce div.product form.cart{
  display:flex;align-items:center;gap:0.75rem;margin-bottom:2rem;
}

.woocommerce div.product form.cart .quantity input{width:72px;text-align:center}

.woocommerce div.product form.cart .single_add_to_cart_button{
  flex:1;padding:0.85rem 2rem;font-size:1rem;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs{margin-top:3rem}

.woocommerce div.product .woocommerce-tabs ul.tabs{
  list-style:none;display:flex;gap:0;
  border-bottom:1px solid var(--c-border);
  padding:0;margin:0 0 1.5rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:none!important;border:none!important;padding:0!important;margin:0!important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:block;padding:0.8rem 1.25rem;
  font-weight:600;font-size:0.9rem;
  color:var(--c-text-muted);
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:color var(--transition),border-color var(--transition);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{
  color:var(--c-accent);border-bottom-color:var(--c-accent);
}

.woocommerce div.product .related.products>h2,
.woocommerce div.product .upsells.products>h2{
  font-family:var(--f-display);font-size:1.5rem;margin-bottom:1.5rem;
}

/* ============================================
   WOOCOMMERCE — CART
   ============================================ */
.woocommerce table.shop_table{
  border:1px solid var(--c-border)!important;
  border-radius:var(--radius-lg);
  overflow:hidden;border-collapse:collapse;
  background:var(--c-surface);
}

.woocommerce table.shop_table th{
  background:var(--c-surface-2);
  font-weight:700;font-size:0.8rem;
  text-transform:uppercase;letter-spacing:0.06em;
  padding:0.9rem 1rem!important;color:var(--c-text-muted);
  border-bottom:1px solid var(--c-border)!important;
}

.woocommerce table.shop_table td{
  padding:1rem!important;border-top:1px solid var(--c-border)!important;vertical-align:middle;
}

.woocommerce .cart_totals{
  background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--radius-lg);padding:1.5rem;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button{
  width:100%;padding:1rem;font-size:1rem;font-weight:700;border-radius:var(--radius);
}

/* ============================================
   WOOCOMMERCE — CHECKOUT
   ============================================ */
.woocommerce form .form-row label{font-weight:500;font-size:0.9rem;margin-bottom:0.3rem;display:block;color:var(--c-text)}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  padding:0.7rem 1rem;background:var(--c-surface);border-color:var(--c-border);color:var(--c-text);
}

.woocommerce #payment{
  background:var(--c-surface)!important;
  border:1px solid var(--c-border);
  border-radius:var(--radius-lg);
}

.woocommerce #payment #place_order{width:100%;padding:1rem;font-size:1.05rem}

/* ============================================
   WOOCOMMERCE — MY ACCOUNT
   ============================================ */
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0}

.woocommerce-MyAccount-navigation ul li{border-bottom:1px solid var(--c-border)}

.woocommerce-MyAccount-navigation ul li a{
  display:block;padding:0.75rem 0;color:var(--c-text-muted);font-weight:500;
}
.woocommerce-MyAccount-navigation ul li.is-active a{color:var(--c-accent)}

/* ============================================
   WOOCOMMERCE — NOTICES
   ============================================ */
.woocommerce-message{
  border-top-color:var(--c-success)!important;
  background:rgba(0,212,170,0.08);color:var(--c-text);
  padding:1rem 1.25rem!important;border-radius:var(--radius);
}
.woocommerce-error{
  border-top-color:var(--c-error)!important;
  background:rgba(255,107,107,0.08);
  border-radius:var(--radius);
}
.woocommerce-info{
  border-top-color:var(--c-accent)!important;
  background:var(--c-accent-dim);
  border-radius:var(--radius);
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb{font-size:0.85rem;color:var(--c-text-dim);margin-bottom:1.5rem;padding:0}
.woocommerce .woocommerce-breadcrumb a{color:var(--c-text-dim)}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--c-accent)}

/* Result count & ordering */
.woocommerce .woocommerce-result-count{font-size:0.9rem;color:var(--c-text-muted)}
.woocommerce .woocommerce-ordering select{padding:0.5rem 0.75rem;font-size:0.9rem;width:auto}

/* ============================================
   SEARCH
   ============================================ */
.search-form{display:flex;gap:0.5rem}
.search-form .search-field{flex:1}
.search-form .search-submit{flex-shrink:0}

/* ============================================
   COMMENTS
   ============================================ */
.comments-area{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--c-border)}
.comment-list{list-style:none;padding:0}

.comment-body{
  padding:1.25rem;margin-bottom:1rem;
  background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);
}
.comment-meta{font-size:0.85rem;margin-bottom:0.75rem;color:var(--c-text-muted)}
.comment-author .fn{font-weight:600;color:var(--c-heading)}

/* ============================================
   404
   ============================================ */
.error-404{text-align:center;padding:6rem 0}

.error-404 .page-title{
  font-size:7rem;
  font-weight:900;
  letter-spacing:-0.05em;
  background:linear-gradient(135deg,var(--c-accent),#7c3aed);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:0.5rem;
}

/* ============================================
   UNLOCK FULL POWER (Hyprland-style section)
   ============================================ */
.unlock-power{
  position:relative;
  padding:6rem 0;
  overflow:hidden;
  border-top:1px solid var(--c-border);
}

/* Subtle tech grid background */
.unlock-power__grid-bg{
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg,rgba(0,212,170,0.03) 1px,transparent 1px),
    linear-gradient(0deg,rgba(0,212,170,0.03) 1px,transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 20%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 20%,transparent 80%);
}

.unlock-power__layout{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:start;
}

/* Left: text content */
.unlock-power__title{
  font-size:clamp(2.25rem,5vw,3.5rem);
  font-weight:800;
  letter-spacing:-0.035em;
  color:var(--c-heading);
  margin-bottom:1.25rem;
}

.unlock-power__subtitle{
  font-size:1.1rem;
  color:var(--c-text-muted);
  line-height:1.7;
  max-width:520px;
  margin-bottom:2.5rem;
}

/* Feature cards */
.unlock-card{
  display:flex;
  align-items:flex-start;
  gap:1.25rem;
  padding:1.5rem 1.75rem;
  border-radius:16px;
  border:1px solid rgba(0,212,170,0.15);
  background:rgba(0,212,170,0.03);
  margin-bottom:1.25rem;
  transition:border-color 0.3s ease,background 0.3s ease,box-shadow 0.3s ease;
}

.unlock-card:hover{
  border-color:rgba(0,212,170,0.3);
  background:rgba(0,212,170,0.06);
  box-shadow:0 0 30px rgba(0,212,170,0.08);
}

.unlock-card__icon{
  flex-shrink:0;
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  color:var(--c-accent);
  background:rgba(0,212,170,0.08);
  border:1px solid rgba(0,212,170,0.15);
  margin-top:2px;
}

.unlock-card__icon--alt{
  color:#00b4d8;
  background:rgba(0,180,216,0.08);
  border-color:rgba(0,180,216,0.15);
}

.unlock-card__text{
  font-size:0.95rem;
  color:var(--c-text-muted);
  line-height:1.7;
}

.unlock-card__text strong{
  color:var(--c-heading);
  font-weight:700;
}

.unlock-power__actions{
  margin-top:0.5rem;
  margin-bottom:1.75rem;
}

.unlock-power__also{
  font-size:0.95rem;
  color:var(--c-text-muted);
  margin-bottom:0.35rem;
}

.unlock-power__also a{
  color:var(--c-accent);
  font-weight:600;
}

.unlock-power__also a svg{
  display:inline;
  vertical-align:middle;
  margin-left:0.2rem;
}

.unlock-power__community{
  font-size:0.9rem;
  color:var(--c-text-dim);
}

/* Right: terminal + config visual */
.unlock-power__visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:440px;
}

/* ============================================
   OPEN BOOK MOCKUP
   ============================================ */
.book-mockup{
  display:flex;
  align-items:stretch;
  width:100%;
  max-width:520px;
  border-radius:18px 18px 18px 18px;
  overflow:visible;
  filter:drop-shadow(0 24px 60px rgba(0,0,0,0.18));
  position:relative;
}

/* Pages */
.book-mockup__page{
  background:#f5f0e8;
  flex:1;
  padding:1.4rem 1.3rem 1.2rem;
  display:flex;
  flex-direction:column;
  gap:0.65rem;
  position:relative;
  min-height:420px;
}

.book-mockup__page--left{
  border-radius:18px 0 0 18px;
  background: linear-gradient(110deg,#f7f2ea 70%,#ede8df 100%);
  box-shadow:inset -6px 0 14px rgba(0,0,0,0.07);
}

.book-mockup__page--right{
  border-radius:0 18px 18px 0;
  background: linear-gradient(250deg,#f7f2ea 70%,#ede8df 100%);
  box-shadow:inset 6px 0 14px rgba(0,0,0,0.07);
}

/* Spine */
.book-mockup__spine{
  width:18px;
  background:linear-gradient(180deg,#c8b99a 0%,#a89070 50%,#c8b99a 100%);
  position:relative;
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  box-shadow:0 0 0 1px rgba(0,0,0,0.12);
}

.book-spine__shadow-left{
  position:absolute;
  left:0; top:0; bottom:0;
  width:7px;
  background:linear-gradient(to right, rgba(0,0,0,0.18), transparent);
}

.book-spine__shadow-right{
  position:absolute;
  right:0; top:0; bottom:0;
  width:7px;
  background:linear-gradient(to left, rgba(0,0,0,0.18), transparent);
}

/* Page header */
.book-page__header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:0.4rem;
  border-bottom:1.5px solid rgba(0,0,0,0.12);
  margin-bottom:0.2rem;
}

.book-page__chapter{
  font-size:0.6rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:#6b5a3e;
}

.book-page__num{
  font-size:0.6rem;
  color:#9e8c70;
  font-style:italic;
}

/* Title */
.book-page__title{
  font-size:0.85rem;
  font-weight:800;
  color:#1a1208;
  line-height:1.3;
  margin:0 0 0.1rem;
}

/* Skeleton lines */
.book-page__lines{
  display:flex;
  flex-direction:column;
  gap:5px;
}

.book-line{
  display:block;
  height:6px;
  border-radius:3px;
  background:rgba(0,0,0,0.1);
}

.book-line--full{ width:100%; }
.book-line--md  { width:74%; }
.book-line--sm  { width:52%; }
.book-line--xs  { width:36%; }

/* Pull quote */
.book-page__pull-quote{
  display:flex;
  gap:0.5rem;
  align-items:flex-start;
  background:rgba(0,0,0,0.05);
  border-radius:6px;
  padding:0.5rem 0.6rem;
}

.book-pq__bar{
  display:block;
  width:3px;
  border-radius:2px;
  background:var(--c-accent,#00d4aa);
  flex-shrink:0;
  align-self:stretch;
}

.book-pq__text{
  font-size:0.6rem;
  font-style:italic;
  color:#4a3a22;
  margin:0;
  line-height:1.5;
}

/* Image placeholder */
.book-page__image-block{
  margin-top:0.2rem;
}

.book-img-placeholder{
  background:rgba(0,0,0,0.07);
  border-radius:6px;
  height:60px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  color:#9e8c70;
  font-size:0.55rem;
}

.book-img-placeholder svg{
  opacity:0.5;
}

/* Two column layout */
.book-page__two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0.6rem;
}

.book-col{
  display:flex;
  flex-direction:column;
  gap:5px;
}

/* Badges */
.book-page__badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:0.4rem;
  margin-top:0.3rem;
}

.book-badge{
  font-size:0.55rem;
  font-weight:600;
  padding:3px 7px;
  border-radius:20px;
  white-space:nowrap;
}

.book-badge--template{
  background:rgba(0,212,170,0.15);
  color:#007a62;
  border:1px solid rgba(0,212,170,0.25);
}

.book-badge--pdf{
  background:rgba(139,92,246,0.12);
  color:#5b35b5;
  border:1px solid rgba(139,92,246,0.2);
}

/* Footer */
.book-page__footer{
  margin-top:auto;
  padding-top:0.5rem;
  border-top:1px solid rgba(0,0,0,0.08);
}

.book-footer__ai{
  font-size:0.52rem;
  color:#9e8c70;
  letter-spacing:0.03em;
}

@media(max-width:900px){
  .unlock-power__layout{
    grid-template-columns:1fr;
    gap:2.5rem;
  }
  .unlock-power__visual{
    min-height:320px;
  }
}

@media(max-width:600px){
  .book-mockup{
    max-width:100%;
  }
  .book-mockup__page{
    min-height:320px;
    padding:1rem;
  }
}

/* ============================================
   SCROLL ANIMATIONS
   ============================================ */
.fade-up{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.6s ease,transform 0.6s ease;
}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* staggered delays */
.fade-up:nth-child(2){transition-delay:0.08s}
.fade-up:nth-child(3){transition-delay:0.16s}
.fade-up:nth-child(4){transition-delay:0.24s}
.fade-up:nth-child(5){transition-delay:0.32s}
.fade-up:nth-child(6){transition-delay:0.4s}

/* ============================================
   ACCESSIBILITY
   ============================================ */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  height:1px;margin:-1px;overflow:hidden;padding:0;
  position:absolute;width:1px;word-wrap:normal!important;
}
.screen-reader-text:focus{
  background-color:var(--c-surface);clip:auto!important;clip-path:none;
  color:var(--c-text);display:block;font-size:0.9rem;height:auto;
  left:5px;padding:1rem;top:5px;width:auto;z-index:100000;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:768px){
  .section{padding:3.5rem 0}
  .hero{padding:4rem 0 2.5rem;min-height:auto}
  .hero__title{font-size:2rem}
  .perspective-grid{display:none}

  .posts-grid{grid-template-columns:1fr}

  .woocommerce ul.products{grid-template-columns:repeat(2,1fr)!important;gap:1rem}
  .woocommerce ul.products li.product a img{height:180px}

  .cta-banner__inner{padding:2rem 1.25rem}
}

@media(max-width:480px){
  .woocommerce ul.products{grid-template-columns:1fr!important}
  .hero__actions{flex-direction:column;align-items:stretch}
  .hero__proof{flex-direction:column;gap:0.75rem}
}

/* ============================================================
   BNPC CUSTOM COMPONENTS
   ============================================================ */

/* ── bento-card--accent variant ─────────────────────────── */
.bento-card--accent {
  border-color: var(--c-gold);
  background: linear-gradient(135deg, var(--c-surface) 60%, rgba(201,150,42,0.08) 100%);
}
.bento-card--accent .bento-card__glow {
  background: radial-gradient(ellipse at top left, rgba(201,150,42,0.18), transparent 70%);
}
.bento-card--accent .bento-card__icon {
  background: rgba(201,150,42,0.12);
  color: var(--c-gold-light);
  border-color: rgba(201,150,42,0.25);
}

/* ── BNPC System Diagram ─────────────────────────────────── */
.bnpc-system-diagram {
  background: linear-gradient(135deg, var(--c-surface) 0%, var(--c-surface-2) 100%);
  border: 1px solid var(--c-border-light);
  border-radius: var(--radius-lg);
  padding: 2rem 1.5rem;
  box-shadow: var(--shadow-lg);
}

.bnpc-system-diagram__title {
  font-family: var(--f-display);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--c-text-muted);
  margin-bottom: 1.5rem;
}

.bnpc-chain {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
}

.bnpc-chain__node {
  flex: 1;
  min-width: 70px;
  text-align: center;
  background: var(--c-bg-raised);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 0.75rem 0.5rem;
  transition: border-color var(--transition), transform var(--transition);
}
.bnpc-chain__node:hover { border-color: var(--c-accent); transform: translateY(-2px); }
.bnpc-chain__node--active { border-color: var(--c-accent); background: rgba(47,140,58,0.09); }
.bnpc-chain__node--glow { border-color: var(--c-gold); background: rgba(201,150,42,0.08); }

/* Four-sector colour coding — matches the legend dots below */
.bnpc-chain__node--charity { border-color: var(--c-hot); background: rgba(196,88,56,0.08); }
.bnpc-chain__node--charity:hover { border-color: var(--c-hot); }
.bnpc-chain__node--social { border-color: var(--c-accent); background: rgba(47,140,58,0.09); }
.bnpc-chain__node--social:hover { border-color: var(--c-accent); }
.bnpc-chain__node--business { border-color: var(--c-gold); background: rgba(181,130,15,0.09); }
.bnpc-chain__node--business:hover { border-color: var(--c-gold); }
.bnpc-chain__node--governance { border-color: #7b9ce8; background: rgba(123,156,232,0.10); }
.bnpc-chain__node--governance:hover { border-color: #7b9ce8; }

.bnpc-chain__icon { font-size: 1.5rem; margin-bottom: 0.35rem; }
.bnpc-chain__label { font-family: var(--f-display); font-size: 0.8rem; font-weight: 700; color: var(--c-heading); }
.bnpc-chain__sub { font-size: 0.65rem; color: var(--c-text-muted); margin-top: 0.2rem; }

.bnpc-chain__arrow {
  color: var(--c-accent);
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
}

/* ── Pillars ─────────────────────────────────────────────── */
.bnpc-pillars {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.bnpc-pillar {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.72rem;
  color: var(--c-text-muted);
}

.bnpc-pillar__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.bnpc-pillar__dot--1 { background: var(--c-hot); }
.bnpc-pillar__dot--2 { background: var(--c-accent); }
.bnpc-pillar__dot--3 { background: var(--c-gold); }
.bnpc-pillar__dot--4 { background: #7b9ce8; }

.bnpc-system-diagram__footer {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* ── BNPC Model Grid ─────────────────────────────────────── */
.bnpc-model-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-top: 1rem;
}

.bnpc-model-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem;
  position: relative;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.bnpc-model-card:hover {
  border-color: var(--c-accent);
  transform: translateY(-3px);
  box-shadow: var(--shadow-glow);
}

.bnpc-model-card__num {
  font-family: var(--f-display);
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--c-accent);
  opacity: 0.25;
  line-height: 1;
  margin-bottom: 0.75rem;
  letter-spacing: -0.04em;
}

.bnpc-model-card h3 {
  font-size: 1.1rem;
  margin-bottom: 0.6rem;
  color: var(--c-heading);
}
.bnpc-model-card p {
  font-size: 0.9rem;
  color: var(--c-text-muted);
  line-height: 1.65;
}

/* ── Liberia grid ────────────────────────────────────────── */
.bnpc-liberia-grid {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-top: 2rem;
}

/* ── Audience Cards ──────────────────────────────────────── */
.bnpc-audience-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.bnpc-audience-card {
  background: rgba(0,0,0,0.03);
  border: 1px solid rgba(0,0,0,0.09);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  backdrop-filter: blur(12px);
  transition: border-color var(--transition), transform var(--transition);
}
.bnpc-audience-card:hover {
  border-color: rgba(74,169,84,0.5);
  transform: translateY(-3px);
}

.bnpc-audience-card--featured {
  background: rgba(74,169,84,0.10);
  border-color: rgba(74,169,84,0.40);
  box-shadow: 0 0 40px rgba(74,169,84,0.12);
}

.bnpc-audience-card__icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.bnpc-audience-card h3 {
  font-family: var(--f-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--c-heading);
  margin-bottom: 0.6rem;
}

.bnpc-audience-card p {
  font-size: 0.9rem;
  color: var(--c-text-muted);
  line-height: 1.65;
  flex: 1;
}

/* ── RE-UP Grid ──────────────────────────────────────────── */
.bnpc-reup-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin: 1.25rem 0;
}

.bnpc-reup-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  background: var(--c-bg-raised);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 0.6rem 0.75rem;
  font-size: 0.78rem;
  color: var(--c-text);
  transition: border-color var(--transition), background var(--transition);
}
.bnpc-reup-item:hover {
  border-color: var(--c-accent);
  background: rgba(74,169,84,0.06);
}

.bnpc-reup-icon { font-size: 1.1rem; flex-shrink: 0; }

/* ── Override hero glow colours ──────────────────────────── */
.orb--primary   { background: radial-gradient(circle, rgba(74,169,84,0.35) 0%, transparent 70%); }
.orb--secondary { background: radial-gradient(circle, rgba(201,150,42,0.20) 0%, transparent 70%); }
.orb--tertiary  { background: radial-gradient(circle, rgba(60,130,55,0.22) 0%, transparent 70%); }
.orb--accent    { background: radial-gradient(circle, rgba(47,140,58,0.12) 0%, transparent 70%); }

.glow-core {
  background: radial-gradient(ellipse, rgba(74,169,84,0.14) 0%, transparent 60%);
}

/* ── Overline label ──────────────────────────────────────── */
.overline {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--c-accent);
  margin-bottom: 0.6rem;
  padding: 0.2rem 0.75rem;
  border-radius: 99px;
  border: 1px solid rgba(74,169,84,0.3);
  background: rgba(47,140,58,0.09);
}

/* ── book-badge repurposed for BNPC tags ─────────────────── */
.book-badge--template {
  background: rgba(74,169,84,0.12);
  border: 1px solid rgba(74,169,84,0.3);
  color: var(--c-accent);
}
.book-badge--pdf {
  background: rgba(201,150,42,0.12);
  border: 1px solid rgba(201,150,42,0.3);
  color: var(--c-gold-light);
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 640px) {
  .bnpc-chain { gap: 0.3rem; }
  .bnpc-chain__arrow { font-size: 0.9rem; }
  .bnpc-chain__node { min-width: 60px; padding: 0.6rem 0.3rem; }
  .bnpc-reup-grid { grid-template-columns: 1fr; }
  .bnpc-audience-cards { grid-template-columns: 1fr; }
  .bnpc-liberia-grid { flex-direction: column; }
}

/* ============================================================
   BNPC SHOP — Product Cards
   ============================================================ */

.bnpc-shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1.5rem;
  margin-top: 2.5rem;
}

/* ── Single product card ─────────────────────────────────── */
.bnpc-product-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
  transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}
.bnpc-product-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top right, rgba(74,169,84,0.07), transparent 70%);
  pointer-events: none;
}
.bnpc-product-card:hover {
  border-color: var(--c-accent);
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(74,169,84,0.12);
}

/* ── Featured variant ───────────────────────────────────── */
.bnpc-product-card--featured {
  border-color: var(--c-gold);
  background: linear-gradient(160deg, var(--c-surface) 60%, rgba(201,150,42,0.07) 100%);
}
.bnpc-product-card--featured::before {
  background: radial-gradient(ellipse at top right, rgba(201,150,42,0.1), transparent 70%);
}
.bnpc-product-card--featured:hover {
  border-color: var(--c-gold-light);
  box-shadow: 0 12px 40px rgba(201,150,42,0.15);
}

/* ── Badge (top-left label) ─────────────────────────────── */
.bnpc-product-card__badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--c-accent);
  background: rgba(74,169,84,0.1);
  border: 1px solid rgba(74,169,84,0.25);
  border-radius: 99px;
  padding: 0.2rem 0.65rem;
  margin-bottom: 1rem;
  width: fit-content;
}
.bnpc-product-card__badge--gold {
  color: var(--c-gold-light);
  background: rgba(201,150,42,0.1);
  border-color: rgba(201,150,42,0.3);
}

/* ── Icon ───────────────────────────────────────────────── */
.bnpc-product-card__icon {
  font-size: 2.6rem;
  line-height: 1;
  margin-bottom: 1rem;
}

/* ── Body ───────────────────────────────────────────────── */
.bnpc-product-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.bnpc-product-card__title {
  font-family: var(--f-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--c-heading);
  line-height: 1.3;
  margin: 0;
}

.bnpc-product-card__desc {
  font-size: 0.85rem;
  color: var(--c-text-muted);
  line-height: 1.65;
  flex: 1;
}

/* ── Meta tags ──────────────────────────────────────────── */
.bnpc-product-card__meta {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.25rem;
}

.bnpc-product-card__tag {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--c-text-muted);
  background: var(--c-bg-raised);
  border: 1px solid var(--c-border);
  border-radius: 6px;
  padding: 0.2rem 0.55rem;
}

/* ── Footer: price + CTA ────────────────────────────────── */
.bnpc-product-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--c-border);
}

.bnpc-product-card__price {
  font-family: var(--f-display);
  font-size: 1.7rem;
  font-weight: 800;
  color: var(--c-heading);
  letter-spacing: -0.03em;
  line-height: 1;
}
.bnpc-product-card__price span {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--c-text-muted);
  letter-spacing: 0;
}

/* ── btn--sm helper ─────────────────────────────────────── */
.btn--sm {
  padding: 0.45rem 1rem;
  font-size: 0.8rem;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width: 900px) {
  .bnpc-shop-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }
}
@media (max-width: 560px) {
  .bnpc-shop-grid {
    grid-template-columns: 1fr;
  }
}
