/* ============================================================
   YOUTH FORCE GHANA — GREEN PLATFORM v4.0
   Verdant-inspired · BuddyPress-integrated · Dark Forest theme
   ============================================================ */
/* ============================================================
   YOUTH FORCE GHANA — GREEN PLATFORM v3.0
   Verdant-inspired · BuddyPress-integrated · Dark Forest theme
   ============================================================ */

/* ── Design tokens ──────────────────────────────────────────── */
:root {
  --soil:   #0f1a09;
  --deep:   #162410;
  --moss:   #1e3a14;
  --grove:  #2d5a1e;
  --leaf:   #3d7a2e;
  --sprout: #5a9e42;
  --lime:   #8fd44a;
  --mist:   #c8e8a0;
  --cream:  #f4f0e6;
  --gold:   #f0c040;
  --amber:  #e8962a;
  --clay:   #c4714a;
  --navy:   #1a2b5e;
  --white:  #ffffff;
  --glass:  rgba(255,255,255,.06);
  --border: rgba(143,212,74,.18);
  --radius: 14px;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --font-mono:    'Space Mono', monospace;
}

/* ── Reset ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  background: var(--soil);
  color: var(--cream);
  font-family: var(--font-body);
  line-height: 1.7;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--lime); text-decoration: none; transition: color .2s; }
a:hover { color: var(--mist); }

/* ── Noise texture overlay ────────────────────────────────── */
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' 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)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events: none; z-index: 9999; opacity: .5;
}

/* ── Typography ─────────────────────────────────────────────── */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: 1.08;
  font-weight: 700;
  color: var(--cream);
}
h1 { font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 900; }
h2 { font-size: clamp(1.8rem, 3.5vw, 3rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.6rem); }
em { font-style: italic; color: var(--lime); }
p  { color: rgba(244,240,230,.75); }

/* ── Layout helpers ─────────────────────────────────────────── */
.yfg-wrap    { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.yfg-section { padding: 6rem 0; }
.yfg-grid-2  { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.yfg-grid-3  { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
.yfg-grid-4  { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; }

/* ── Section labels ─────────────────────────────────────────── */
.yfg-eyebrow {
  font-family: var(--font-mono);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--sprout);
  display: block;
  margin-bottom: .8rem;
}

/* ── Buttons ────────────────────────────────────────────────── */
.btn, button.btn, input[type=submit].btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .75rem 1.8rem;
  border-radius: 100px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: .9rem;
  border: none;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s;
  text-decoration: none;
}
.btn:hover { transform: translateY(-2px); }
.btn-lime  { background: var(--lime); color: var(--soil); }
.btn-lime:hover { box-shadow: 0 8px 28px rgba(143,212,74,.35); color: var(--soil); }
.btn-gold  { background: var(--gold); color: var(--soil); }
.btn-gold:hover { box-shadow: 0 8px 28px rgba(240,192,64,.35); color: var(--soil); }
.btn-ghost { background: transparent; color: var(--cream); border: 1.5px solid rgba(244,240,230,.25); }
.btn-ghost:hover { border-color: var(--lime); color: var(--lime); }
.btn-green { background: var(--grove); color: var(--cream); }
.btn-green:hover { background: var(--leaf); }

/* ── Cards ──────────────────────────────────────────────────── */
.yfg-card {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.8rem;
  transition: border-color .25s, transform .25s;
}
.yfg-card:hover { border-color: rgba(143,212,74,.45); transform: translateY(-3px); }
.yfg-card-gold  { border-top: 3px solid var(--gold); }
.yfg-card-lime  { border-top: 3px solid var(--lime); }
.yfg-card-navy  { border-top: 3px solid var(--navy); }

/* ── Tags / badges ──────────────────────────────────────────── */
.tag {
  display: inline-block;
  padding: .2rem .75rem;
  border-radius: 100px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.tag-lime  { background: rgba(143,212,74,.15); color: var(--lime); }
.tag-gold  { background: rgba(240,192,64,.15); color: var(--gold); }
.tag-navy  { background: rgba(26,43,94,.6);    color: #a8bfff; }
.tag-amber { background: rgba(232,150,42,.18); color: var(--amber); }
.tag-open  { background: rgba(90,158,66,.2);   color: var(--sprout); }

/* ── Alerts ─────────────────────────────────────────────────── */
.alert { padding: 1rem 1.2rem; border-radius: 10px; font-size: .9rem; margin-bottom: 1.2rem; }
.alert-success { background: rgba(90,158,66,.15); border: 1px solid rgba(90,158,66,.4); color: var(--mist); }
.alert-error   { background: rgba(196,113,74,.15); border: 1px solid rgba(196,113,74,.4); color: #ffb49a; }
.alert-info    { background: rgba(26,43,94,.4);    border: 1px solid rgba(168,191,255,.3); color: #a8bfff; }

/* ── Stat boxes ─────────────────────────────────────────────── */
.stat-box { text-align: center; padding: 1.5rem; }
.stat-num  { font-family: var(--font-display); font-size: 3rem; font-weight: 900; color: var(--lime); display: block; line-height: 1; }
.stat-lbl  { font-size: .78rem; color: rgba(244,240,230,.5); text-transform: uppercase; letter-spacing: .08em; margin-top: .4rem; display: block; font-family: var(--font-mono); }

/* ── XP bar ─────────────────────────────────────────────────── */
.xp-bar { height: 5px; background: var(--moss); border-radius: 100px; overflow: hidden; margin-top: .6rem; }
.xp-fill { height: 100%; background: linear-gradient(90deg, var(--sprout), var(--lime)); border-radius: 100px; }

/* ═══════════════════════════════════════════════════════════════
   SITE HEADER
   ═══════════════════════════════════════════════════════════════ */
.site-topbar {
  background: var(--deep);
  border-bottom: 1px solid rgba(143,212,74,.08);
  padding: .45rem 0;
}
.site-topbar-inner {
  display: flex; justify-content: space-between; align-items: center;
}
.topbar-notice {
  font-size: .7rem; font-family: var(--font-mono);
  color: rgba(244,240,230,.4); letter-spacing: .06em;
}
.topbar-links { display: flex; gap: 1.5rem; }
.topbar-links a {
  font-size: .72rem; font-weight: 600; color: rgba(244,240,230,.5);
  transition: color .15s;
}
.topbar-links a:hover { color: var(--lime); }

.site-header {
  position: sticky; top: 0; z-index: 200;
  background: rgba(15,26,9,.92);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
}
.site-header-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: .9rem 0;
}
.site-logo {
  font-family: var(--font-display);
  font-size: 1.35rem; font-weight: 900;
  color: var(--cream);
  text-decoration: none;
  letter-spacing: -.02em;
}
.site-logo span { color: var(--lime); }
.site-logo img,
.site-logo-img,
.site-logo .custom-logo,
.custom-logo-link img,
.custom-logo-link .custom-logo { height: 38px; width: auto; display: block; max-width: 160px; object-fit: contain; }

.main-nav { display: flex; align-items: center; gap: .2rem; }
.nav-link {
  font-size: .83rem; font-weight: 500;
  color: rgba(244,240,230,.65);
  padding: .45rem .85rem;
  border-radius: 8px;
  transition: background .15s, color .15s;
}
.nav-link:hover, .nav-link.active { background: rgba(143,212,74,.1); color: var(--lime); }
.nav-cta {
  background: var(--lime); color: var(--soil) !important;
  padding: .5rem 1.2rem; border-radius: 100px;
  font-weight: 700; font-size: .83rem;
  margin-left: .5rem;
  transition: transform .15s, box-shadow .15s;
}
.nav-cta:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(143,212,74,.3); }

/* BP logged-in nav items */
.nav-user { display: flex; align-items: center; gap: .6rem; margin-left: .5rem; }
.nav-avatar img {
  width: 34px; height: 34px; border-radius: 50%;
  border: 2px solid var(--border);
}
.nav-username { font-size: .82rem; font-weight: 600; color: var(--cream); }

/* ═══════════════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════════════ */
.hero {
  min-height: 90vh;
  display: grid; grid-template-columns: 1fr 1fr;
  align-items: center;
  padding: 5rem 0;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 70% at 70% 40%, rgba(45,90,30,.5) 0%, transparent 65%),
    radial-gradient(ellipse 50% 50% at 20% 80%, rgba(143,212,74,.06) 0%, transparent 55%);
  pointer-events: none;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(143,212,74,.1);
  border: 1px solid rgba(143,212,74,.3);
  padding: .38rem 1rem; border-radius: 100px;
  font-size: .72rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--lime); margin-bottom: 1.8rem;
}
.hero-badge::before {
  content: ''; width: 6px; height: 6px;
  background: var(--lime); border-radius: 50%;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }

.hero h1 { margin-bottom: 1.2rem; }
.hero-sub {
  font-size: 1.05rem; line-height: 1.75;
  color: rgba(244,240,230,.7);
  max-width: 480px; margin-bottom: 2.2rem;
}
.hero-actions { display: flex; gap: .9rem; margin-bottom: 3rem; }
.hero-stats    { display: flex; gap: 2.5rem; }
.hero-stat     { border-left: 2px solid var(--moss); padding-left: 1.1rem; }

/* Right side floating cards */
.hero-cards { position: relative; height: 480px; }
.float-card {
  position: absolute;
  background: rgba(30,58,20,.85);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.2rem 1.4rem;
  animation: floatCard 6s ease-in-out infinite;
  max-width: 300px;
}
.float-card:nth-child(1) { top: 20px; left: 0; animation-delay: 0s; }
.float-card:nth-child(2) { top: 45%; left: 60px; animation-delay: -2s; }
.float-card:nth-child(3) { bottom: 30px; left: 10px; animation-delay: -4s; }
@keyframes floatCard { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.fc-icon  { font-size: 1.6rem; margin-bottom: .4rem; }
.fc-title { font-size: .78rem; font-weight: 700; color: var(--lime); text-transform: uppercase; letter-spacing: .08em; margin-bottom: .2rem; }
.fc-desc  { font-size: .75rem; color: rgba(244,240,230,.6); line-height: 1.5; }

/* Hero decorative ring */
.hero-ring {
  position: absolute; right: -80px; top: 50%;
  transform: translateY(-50%);
  width: 520px; height: 520px; border-radius: 50%;
  background: radial-gradient(circle at 40%, rgba(45,90,30,.45), transparent 60%);
  pointer-events: none;
}
.hero-ring::after {
  content: ''; position: absolute; inset: 30px; border-radius: 50%;
  border: 1px dashed rgba(143,212,74,.18);
  animation: spin 40s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════
   SKILLS GRID
   ═══════════════════════════════════════════════════════════════ */
.skills-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1.5px;
  background: var(--moss);
  border: 1.5px solid var(--moss);
  border-radius: 18px; overflow: hidden;
}
.skill-card {
  background: var(--deep);
  padding: 2rem;
  transition: background .25s;
  cursor: pointer;
  position: relative;
}
.skill-card::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(143,212,74,.05), transparent);
  opacity: 0; transition: opacity .25s;
}
.skill-card:hover { background: rgba(45,90,30,.6); }
.skill-card:hover::before { opacity: 1; }
.sk-emoji { font-size: 2rem; margin-bottom: .8rem; display: block; }
.sk-name  { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color: var(--cream); margin-bottom: .4rem; }
.sk-desc  { font-size: .8rem; color: rgba(244,240,230,.5); line-height: 1.6; margin-bottom: .8rem; }
.sk-count { font-family: var(--font-mono); font-size: .68rem; color: var(--sprout); }

/* ═══════════════════════════════════════════════════════════════
   VOLUNTEER OPPORTUNITIES
   ═══════════════════════════════════════════════════════════════ */
.opp-list { display: grid; gap: .9rem; }
.opp-row {
  display: grid;
  grid-template-columns: 56px 1fr auto auto;
  align-items: center; gap: 1.8rem;
  padding: 1.4rem 1.8rem;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: border-color .2s, transform .2s;
  text-decoration: none; color: inherit;
}
.opp-row:hover { border-color: var(--lime); transform: translateX(6px); }
.opp-icon {
  width: 52px; height: 52px;
  background: rgba(143,212,74,.1); border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.4rem; flex-shrink: 0;
}
.opp-name { font-family: var(--font-display); font-size: 1rem; font-weight: 700; margin-bottom: .25rem; }
.opp-meta { font-size: .75rem; color: rgba(244,240,230,.45); }
.opp-tags { display: flex; gap: .4rem; flex-wrap: wrap; }
.opp-arr  { color: var(--lime); font-size: 1.2rem; transition: transform .2s; flex-shrink: 0; }
.opp-row:hover .opp-arr { transform: translateX(5px); }

/* ═══════════════════════════════════════════════════════════════
   IMPACT METRICS
   ═══════════════════════════════════════════════════════════════ */
.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.metric-card {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius); padding: 2rem;
}
.metric-num  { font-family: var(--font-display); font-size: 3rem; font-weight: 900; line-height: 1; display: block; margin-bottom: .25rem; }
.metric-lbl  { font-size: .78rem; color: rgba(244,240,230,.5); text-transform: uppercase; letter-spacing: .06em; font-family: var(--font-mono); }
.metric-card:nth-child(1) .metric-num { color: var(--lime); }
.metric-card:nth-child(2) .metric-num { color: var(--gold); }
.metric-card:nth-child(3) .metric-num { color: var(--amber); }
.metric-card:nth-child(4) .metric-num { color: var(--sprout); }

/* ═══════════════════════════════════════════════════════════════
   TESTIMONIAL
   ═══════════════════════════════════════════════════════════════ */
.testimonial-section {
  background: var(--grove);
  text-align: center;
  padding: 6rem 0;
  position: relative; overflow: hidden;
}
.testimonial-section::before {
  content: 'C'; font-family: var(--font-display);
  font-size: 22rem; font-weight: 900;
  color: rgba(255,255,255,.04);
  position: absolute; top: -3rem; left: 50%;
  transform: translateX(-50%);
  line-height: 1; pointer-events: none; user-select: none;
}
.testimonial-quote {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  font-weight: 400; font-style: italic;
  max-width: 780px; margin: 0 auto 2rem;
  line-height: 1.5; position: relative; z-index: 1;
}
.t-author { display: flex; align-items: center; justify-content: center; gap: 1rem; position: relative; z-index: 1; }
.t-avatar { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg,var(--lime),var(--sprout)); display:flex;align-items:center;justify-content:center; font-weight:900;color:var(--soil); overflow:hidden; }
.t-avatar img { width: 100%; height: 100%; object-fit: cover; }
.t-name { font-weight: 700; font-size: .92rem; }
.t-role { font-size: .78rem; opacity: .65; }

/* ═══════════════════════════════════════════════════════════════
   CTA SECTION
   ═══════════════════════════════════════════════════════════════ */
.cta-section { padding: 7rem 0; text-align: center; position: relative; }
.cta-glow {
  position: absolute; width: 700px; height: 400px;
  background: radial-gradient(ellipse, rgba(143,212,74,.1), transparent 65%);
  left: 50%; top: 50%; transform: translate(-50%,-50%);
  pointer-events: none;
}
.cta-section h2 { font-size: clamp(2.2rem, 4vw, 3.8rem); margin-bottom: 1rem; position: relative; z-index: 1; }
.cta-section p  { max-width: 500px; margin: 0 auto 2rem; position: relative; z-index: 1; }
.cta-btns { display: flex; gap: 1rem; justify-content: center; position: relative; z-index: 1; }

/* ═══════════════════════════════════════════════════════════════
   SITE FOOTER
   ═══════════════════════════════════════════════════════════════ */
.site-footer { background: var(--deep); border-top: 1px solid var(--border); padding: 4rem 0 1.5rem; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.footer-brand { font-family: var(--font-display); font-size: 1.2rem; font-weight: 900; color: var(--cream); margin-bottom: .8rem; }
.footer-brand span { color: var(--lime); }
.footer-tagline { font-size: .82rem; color: rgba(244,240,230,.45); line-height: 1.75; max-width: 300px; margin-bottom: 1.2rem; }
.footer-badges { display: flex; gap: .4rem; flex-wrap: wrap; }
.footer-col-title { font-family: var(--font-mono); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--sprout); margin-bottom: .9rem; }
.footer-links { list-style: none; display: grid; gap: .5rem; }
.footer-links a { font-size: .82rem; color: rgba(244,240,230,.45); transition: color .15s; }
.footer-links a:hover { color: var(--lime); }
.footer-bottom { border-top: 1px solid rgba(143,212,74,.08); padding-top: 1.2rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .8rem; }
.footer-copy { font-family: var(--font-mono); font-size: .7rem; color: rgba(244,240,230,.25); }

/* ═══════════════════════════════════════════════════════════════
   BUDDYPRESS GLOBAL OVERRIDES
   ═══════════════════════════════════════════════════════════════ */
#buddypress { color: var(--cream); }

/* BP Page Headers */
#buddypress .bp-nav, .bp-wrap { max-width: 100%; }
#buddypress h2, #buddypress h3 { font-family: var(--font-display); color: var(--cream); }

/* ── BP Profile Header ────────────────────────────────────────── */
.bp-user .profile-header {
  background: linear-gradient(135deg, var(--deep), var(--moss));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2.5rem;
  margin-bottom: 1.5rem;
  position: relative; overflow: hidden;
}
.bp-user .profile-header::before {
  content: ''; position: absolute; top: -60px; right: -60px;
  width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(143,212,74,.12), transparent 65%);
}
.bp-user #item-header-content { position: relative; z-index: 1; }
.bp-user #item-header-avatar img,
.bp-user .avatar { border-radius: 50%; border: 3px solid var(--border); }
.bp-user #item-header-content h2 a { color: var(--cream); font-family: var(--font-display); font-size: 1.8rem; font-weight: 900; }
.bp-user .user-nicename { color: var(--sprout); font-size: .85rem; font-family: var(--font-mono); }
.bp-user #profile-nav, .bp-user .item-nav {
  background: transparent;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1.5rem;
}
.bp-user #profile-nav li a,
.bp-user .item-nav li a {
  color: rgba(244,240,230,.55); font-size: .85rem; font-weight: 600;
  padding: .6rem 1rem; display: inline-block;
  border-bottom: 2px solid transparent; transition: all .2s;
}
.bp-user #profile-nav li a:hover,
.bp-user #profile-nav li.current a,
.bp-user .item-nav li a:hover,
.bp-user .item-nav li.current a {
  color: var(--lime); border-bottom-color: var(--lime); background: transparent;
}

/* ── BP Activity Stream ───────────────────────────────────────── */
#buddypress #activity-stream li.activity-item {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.4rem 1.6rem;
  margin-bottom: 1rem;
  list-style: none;
  transition: border-color .2s;
}
#buddypress #activity-stream li.activity-item:hover { border-color: rgba(143,212,74,.35); }
#buddypress .activity-avatar img { border-radius: 50%; border: 2px solid var(--border); }
#buddypress .activity-content { margin-left: 60px; }
#buddypress .activity-header { font-size: .88rem; color: rgba(244,240,230,.7); margin-bottom: .5rem; }
#buddypress .activity-header a { color: var(--lime); font-weight: 700; }
#buddypress .activity-content .activity-inner p { color: rgba(244,240,230,.75); font-size: .9rem; }
#buddypress .activity-meta a {
  font-size: .75rem; color: rgba(244,240,230,.4);
  background: var(--glass); padding: .25rem .7rem;
  border-radius: 100px; border: 1px solid var(--border);
  transition: color .15s, border-color .15s;
}
#buddypress .activity-meta a:hover { color: var(--lime); border-color: var(--lime); }
#buddypress #whats-new-form textarea,
#buddypress .activity-form textarea {
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  border-radius: 10px;
  color: var(--cream); padding: .85rem 1rem;
  font-family: var(--font-body); font-size: .9rem; width: 100%;
  resize: vertical; min-height: 80px;
  transition: border-color .2s;
}
#buddypress #whats-new-form textarea:focus,
#buddypress .activity-form textarea:focus {
  outline: none; border-color: var(--lime);
  box-shadow: 0 0 0 3px rgba(143,212,74,.1);
}
#buddypress #aw-whats-new-submit,
#buddypress .activity-form input[type=submit] {
  background: var(--lime); color: var(--soil);
  border: none; border-radius: 100px;
  padding: .55rem 1.4rem; font-weight: 700;
  font-family: var(--font-body); cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
#buddypress #aw-whats-new-submit:hover { transform: translateY(-1px); box-shadow: 0 6px 18px rgba(143,212,74,.3); }

/* ── BP Members Directory ─────────────────────────────────────── */
#buddypress #members-list { padding: 0; }
#buddypress #members-list li {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.4rem;
  transition: border-color .2s, transform .2s;
  list-style: none;
}
#buddypress #members-list li:hover { border-color: rgba(143,212,74,.4); transform: translateY(-3px); }
#buddypress #members-list li .item-avatar img { border-radius: 50%; border: 2px solid var(--border); width: 56px; height: 56px; object-fit: cover; }
#buddypress #members-list li .item-title a { font-family: var(--font-display); font-weight: 700; color: var(--cream); font-size: 1rem; }
#buddypress #members-list li .item-meta { font-size: .75rem; color: rgba(244,240,230,.45); font-family: var(--font-mono); }
#buddypress #members-list li .action a {
  background: var(--grove); color: var(--mist);
  padding: .35rem .9rem; border-radius: 100px;
  font-size: .78rem; font-weight: 600; border: none;
  transition: background .15s;
}
#buddypress #members-list li .action a:hover { background: var(--leaf); }

/* ── BP Groups ────────────────────────────────────────────────── */
#buddypress #groups-list li {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.4rem;
  list-style: none; transition: border-color .2s, transform .2s;
}
#buddypress #groups-list li:hover { border-color: rgba(240,192,64,.4); transform: translateY(-2px); }
#buddypress #groups-list li .item-title a { font-family: var(--font-display); font-weight: 700; color: var(--cream); }
#buddypress #groups-list li .item-meta { font-size: .75rem; color: rgba(244,240,230,.4); font-family: var(--font-mono); }
#buddypress .group-cover-image { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }

/* ── BP Navigation pills ──────────────────────────────────────── */
#buddypress div.item-list-tabs,
#buddypress div.item-list-tabs ul,
.bp-list-tab-nav { background: transparent; border: none; }
#buddypress div.item-list-tabs ul li a {
  font-size: .82rem; font-weight: 600;
  color: rgba(244,240,230,.5);
  padding: .45rem .9rem;
  border-radius: 8px; transition: background .15s, color .15s;
}
#buddypress div.item-list-tabs ul li.selected a,
#buddypress div.item-list-tabs ul li a:hover {
  background: rgba(143,212,74,.12); color: var(--lime);
}
#buddypress div.item-list-tabs ul li span {
  background: rgba(143,212,74,.2); color: var(--lime);
  font-size: .68rem; padding: .1rem .4rem; border-radius: 100px;
  margin-left: .3rem; font-family: var(--font-mono);
}

/* ── BP Search ────────────────────────────────────────────────── */
#buddypress #members-dir-search,
#buddypress #groups-dir-search {
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  border-radius: 100px; overflow: hidden;
  display: flex; align-items: center;
  transition: border-color .2s;
}
#buddypress #members-dir-search:focus-within,
#buddypress #groups-dir-search:focus-within { border-color: var(--lime); }
#buddypress #members-dir-search input[type=text],
#buddypress #groups-dir-search input[type=text] {
  background: transparent; border: none;
  padding: .6rem 1.2rem; color: var(--cream);
  font-family: var(--font-body); font-size: .88rem;
  flex: 1; outline: none;
}
#buddypress #members-dir-search input[type=submit],
#buddypress #groups-dir-search input[type=submit] {
  background: var(--grove); border: none;
  color: var(--mist); padding: .6rem 1.2rem;
  font-family: var(--font-body); font-size: .82rem;
  font-weight: 700; cursor: pointer; transition: background .15s;
}
#buddypress #members-dir-search input[type=submit]:hover,
#buddypress #groups-dir-search input[type=submit]:hover { background: var(--leaf); }

/* ── BP xProfile fields ───────────────────────────────────────── */
#buddypress table.profile-fields { width: 100%; border-collapse: collapse; }
#buddypress table.profile-fields th {
  text-align: left; font-size: .78rem; font-weight: 700;
  color: var(--sprout); text-transform: uppercase; letter-spacing: .08em;
  padding: .7rem 1rem .7rem 0; width: 30%;
  font-family: var(--font-mono); border-bottom: 1px solid var(--border);
}
#buddypress table.profile-fields td {
  font-size: .9rem; color: rgba(244,240,230,.75);
  padding: .7rem 0; border-bottom: 1px solid rgba(143,212,74,.06);
}

/* ── BP Forms ─────────────────────────────────────────────────── */
#buddypress form input[type=text],
#buddypress form input[type=email],
#buddypress form input[type=password],
#buddypress form textarea,
#buddypress form select {
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  border-radius: 9px; color: var(--cream);
  font-family: var(--font-body); font-size: .9rem;
  padding: .65rem .9rem; width: 100%;
  transition: border-color .2s;
}
#buddypress form input:focus,
#buddypress form textarea:focus,
#buddypress form select:focus {
  outline: none; border-color: var(--lime);
  box-shadow: 0 0 0 3px rgba(143,212,74,.1);
}
#buddypress form label {
  font-size: .8rem; font-weight: 700; color: var(--sprout);
  display: block; margin-bottom: .4rem;
  text-transform: uppercase; letter-spacing: .06em; font-family: var(--font-mono);
}
#buddypress form input[type=submit],
#buddypress form button[type=submit] {
  background: var(--lime); color: var(--soil); border: none;
  border-radius: 100px; padding: .75rem 2rem;
  font-family: var(--font-body); font-weight: 700; font-size: .9rem;
  cursor: pointer; transition: transform .15s, box-shadow .15s;
}
#buddypress form input[type=submit]:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(143,212,74,.3); }

/* ── BP Notifications & Messages ─────────────────────────────── */
#buddypress #message-threads li,
#buddypress #notifications-list li {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 10px; padding: 1rem 1.2rem;
  margin-bottom: .7rem; list-style: none;
  transition: border-color .15s;
}
#buddypress #message-threads li:hover,
#buddypress #notifications-list li:hover { border-color: rgba(143,212,74,.4); }
#buddypress #message-threads li.unread,
#buddypress #notifications-list li.unread { border-left: 3px solid var(--lime); }
#buddypress #message-threads li .thread-from a { color: var(--lime); font-weight: 700; }
#buddypress .notifications .read { opacity: .55; }

/* ── BP Pagination ────────────────────────────────────────────── */
#buddypress div.pagination { margin: 1.5rem 0; }
#buddypress div.pagination span.current,
#buddypress div.pagination a.page-numbers {
  display: inline-block; padding: .35rem .75rem;
  border-radius: 7px; font-size: .82rem; margin: 0 .15rem;
}
#buddypress div.pagination span.current { background: var(--lime); color: var(--soil); font-weight: 700; }
#buddypress div.pagination a.page-numbers { background: var(--glass); border: 1px solid var(--border); color: var(--cream); }
#buddypress div.pagination a.page-numbers:hover { border-color: var(--lime); color: var(--lime); }

/* ── BP User bar / logged-in notice ──────────────────────────── */
#user-online-status { display: none; }

/* ── BP Cover Photo ───────────────────────────────────────────── */
#header-cover-image {
  background: linear-gradient(135deg, var(--deep), var(--moss));
  border-radius: var(--radius) var(--radius) 0 0;
  min-height: 160px;
}

/* ── Generic BP element fixes ─────────────────────────────────── */
#buddypress .generic-button a,
#buddypress div.action a {
  display: inline-block; padding: .4rem 1rem;
  background: var(--grove); color: var(--mist);
  border-radius: 100px; font-size: .8rem; font-weight: 600;
  transition: background .15s; border: none;
}
#buddypress .generic-button a:hover,
#buddypress div.action a:hover { background: var(--leaf); color: var(--cream); }
#buddypress #item-header-content .pending,
#buddypress .pending-count {
  background: rgba(240,192,64,.18); color: var(--gold);
  padding: .2rem .65rem; border-radius: 100px;
  font-size: .72rem; font-weight: 700; font-family: var(--font-mono);
}

/* ── BP Sidebar / Secondary Column ───────────────────────────── */
#buddypress #sidebar,
#buddypress .bp-sidebar {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.4rem;
}
#buddypress .widget_bp_core_login_widget h3,
#buddypress .widgettitle { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .15em; color: var(--sprout); text-transform: uppercase; margin-bottom: .8rem; }

/* ── Member Dashboard Page ────────────────────────────────────── */
.yfg-portal-wrap { max-width: 1000px; margin: 0 auto; }
.portal-welcome {
  background: linear-gradient(135deg, var(--deep), var(--moss));
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.8rem 2.2rem;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem;
}
.portal-welcome-text h3 { font-family: var(--font-display); font-size: 1.5rem; color: var(--cream); }
.portal-welcome-text p  { font-size: .85rem; color: rgba(244,240,230,.6); margin-top: .25rem; }
.portal-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-bottom: 1.5rem; }
.portal-stat {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 10px; padding: 1rem 1.2rem;
}
.portal-stat-icon { font-size: 1.2rem; margin-bottom: .3rem; }
.portal-stat-val  { font-size: .95rem; font-weight: 700; color: var(--cream); }
.portal-stat-lbl  { font-size: .7rem; color: rgba(244,240,230,.45); text-transform: uppercase; letter-spacing: .06em; font-family: var(--font-mono); }
.portal-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.portal-card {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.4rem;
  transition: border-color .2s, transform .2s;
}
.portal-card:hover { border-color: rgba(143,212,74,.4); transform: translateY(-3px); }
.portal-card-icon  { font-size: 1.8rem; margin-bottom: .6rem; }
.portal-card-title { font-family: var(--font-display); font-weight: 700; color: var(--cream); margin-bottom: .4rem; }
.portal-card-desc  { font-size: .82rem; color: rgba(244,240,230,.55); line-height: 1.65; margin-bottom: 1rem; }

/* ── Registration form ────────────────────────────────────────── */
.reg-form-wrap {
  max-width: 660px; margin: 0 auto;
  background: var(--glass); border: 1px solid var(--border);
  border-top: 4px solid var(--gold);
  border-radius: var(--radius); padding: 2.4rem;
}
.reg-form-wrap h3 { font-family: var(--font-display); color: var(--cream); margin-bottom: .3rem; }
.reg-form-wrap .sub { font-size: .83rem; color: rgba(244,240,230,.5); margin-bottom: 1.8rem; }
.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }
.form-group  { margin-bottom: 1rem; }
.form-label  { display: block; font-size: .74rem; font-weight: 700; color: var(--sprout); text-transform: uppercase; letter-spacing: .08em; margin-bottom: .35rem; font-family: var(--font-mono); }
.form-input  {
  width: 100%; padding: .65rem .9rem;
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  border-radius: 9px; color: var(--cream);
  font-family: var(--font-body); font-size: .9rem;
  box-sizing: border-box; transition: border-color .2s;
}
.form-input:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(143,212,74,.1); }
.form-input option { background: var(--deep); color: var(--cream); }
.form-textarea { min-height: 90px; resize: vertical; }
.form-submit {
  width: 100%; background: linear-gradient(135deg, var(--grove), var(--leaf));
  color: var(--cream); border: none; border-radius: 100px;
  padding: .9rem; font-family: var(--font-body); font-size: .95rem;
  font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .15s;
  margin-top: .5rem;
}
.form-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(45,90,30,.4); }
.form-consent { display: flex; align-items: flex-start; gap: .6rem; font-size: .83rem; color: rgba(244,240,230,.65); cursor: pointer; }
.form-consent input { margin-top: 3px; flex-shrink: 0; accent-color: var(--lime); }

/* ── Page hero (inner pages) ──────────────────────────────────── */
.page-hero {
  background: linear-gradient(160deg, var(--deep) 0%, var(--moss) 100%);
  padding: 4rem 0 3rem;
  border-bottom: 1px solid var(--border);
  position: relative; overflow: hidden;
}
.page-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 100% at 80% 50%, rgba(143,212,74,.08), transparent 60%);
}
.page-hero .yfg-wrap { position: relative; z-index: 1; }
.page-hero h1 { font-size: clamp(2rem, 4vw, 3.5rem); margin-bottom: .6rem; }
.page-hero .sub { font-size: 1rem; color: rgba(244,240,230,.7); max-width: 600px; }

/* ── Inner page body ──────────────────────────────────────────── */
.page-body { padding: 4rem 0; }
.inner-section { margin-bottom: 4rem; }
.inner-section h2 { margin-bottom: 1.2rem; }
.inner-section p  { margin-bottom: 1rem; max-width: 680px; }

/* ── Process steps ────────────────────────────────────────────── */
.steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; position: relative; }
.steps::before {
  content: ''; position: absolute; top: 28px; left: 10%; right: 10%;
  height: 1px; background: linear-gradient(90deg, transparent, var(--border), transparent);
}
.step { text-align: center; padding: 1.5rem 1rem; }
.step-num {
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--grove); border: 2px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-weight: 700; font-size: 1.1rem;
  color: var(--lime); margin: 0 auto 1rem; position: relative; z-index: 1;
}
.step-title { font-family: var(--font-display); font-weight: 700; font-size: .95rem; margin-bottom: .4rem; }
.step-desc  { font-size: .78rem; color: rgba(244,240,230,.5); line-height: 1.6; }

/* ── Value cards ──────────────────────────────────────────────── */
.val-card { display: flex; gap: 1rem; align-items: flex-start; }
.val-icon { font-size: 1.6rem; flex-shrink: 0; margin-top: .2rem; }
.val-title { font-family: var(--font-display); font-weight: 700; color: var(--cream); margin-bottom: .25rem; }
.val-desc  { font-size: .85rem; color: rgba(244,240,230,.6); line-height: 1.7; }

/* ── Training modules ─────────────────────────────────────────── */
.module-card { display: flex; gap: 1.4rem; align-items: flex-start; }
.mod-icon { font-size: 2rem; flex-shrink: 0; }
.mod-num  { font-family: var(--font-mono); font-size: .68rem; color: var(--amber); letter-spacing: .1em; margin-bottom: .2rem; }
.mod-title { font-family: var(--font-display); font-weight: 700; color: var(--cream); margin-bottom: .35rem; }
.mod-desc  { font-size: .85rem; color: rgba(244,240,230,.6); line-height: 1.7; }
.cert-badge {
  display: inline-flex; align-items: center; gap: .6rem;
  background: rgba(240,192,64,.12); border: 1px solid rgba(240,192,64,.3);
  border-radius: 10px; padding: 1rem 1.4rem;
  font-size: .85rem; color: var(--gold); margin-top: 1.5rem;
}

/* ── Partner value props ──────────────────────────────────────── */
.vp-list { display: grid; gap: .8rem; }
.vp-item { display: flex; align-items: flex-start; gap: .8rem; font-size: .9rem; color: rgba(244,240,230,.75); }
.vp-item::before { content: '✓'; color: var(--lime); font-weight: 700; margin-top: .05rem; flex-shrink: 0; }

/* ── Scroll reveal ────────────────────────────────────────────── */
.reveal { opacity: 1; transform: translateY(0); }
.js-loaded .reveal { opacity: 0; transform: translateY(36px); transition: opacity .7s ease, transform .7s ease; }
.js-loaded .reveal.visible { opacity: 1; transform: translateY(0); }

/* ── Animations ───────────────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 960px) {
  .hero          { grid-template-columns: 1fr; }
  .hero-right    { display: none; }
  .yfg-grid-3    { grid-template-columns: 1fr 1fr; }
  .yfg-grid-4    { grid-template-columns: 1fr 1fr; }
  .skills-grid   { grid-template-columns: 1fr 1fr; }
  .footer-grid   { grid-template-columns: 1fr 1fr; }
  .portal-cards  { grid-template-columns: 1fr 1fr; }
  .portal-stats  { grid-template-columns: 1fr 1fr; }
  .steps         { grid-template-columns: 1fr; }
  .opp-row       { grid-template-columns: 56px 1fr; }
  .opp-tags, .opp-arr { display: none; }
  .metric-grid   { grid-template-columns: 1fr 1fr; }
  .form-grid-2   { grid-template-columns: 1fr; }
  .form-grid-3   { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .yfg-section   { padding: 4rem 0; }
  .yfg-grid-2    { grid-template-columns: 1fr; }
  .yfg-grid-3    { grid-template-columns: 1fr; }
  .skills-grid   { grid-template-columns: 1fr; }
  .footer-grid   { grid-template-columns: 1fr; }
  .portal-cards  { grid-template-columns: 1fr; }
  .portal-stats  { grid-template-columns: 1fr 1fr; }
  .hero-stats    { gap: 1.5rem; }
  .main-nav .nav-link { display: none; }
  .site-topbar   { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   BUDDYPRESS DEEP TEMPLATE STYLES
   ═══════════════════════════════════════════════════════════════ */

/* ── Activity feed ──────────────────────────────────────────── */
.bp-activity-page { max-width: 760px; margin: 0 auto; }

.bp-post-form-wrap {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.2rem 1.5rem;
  margin-bottom: 1.8rem;
}
.bp-post-form {
  display: flex; gap: 1rem; align-items: flex-start;
}
.bp-post-form-avatar img {
  width: 44px; height: 44px; border-radius: 50%;
  border: 2px solid var(--border);
  flex-shrink: 0;
}
.bp-post-form-inner { flex: 1; }

/* Activity filters bar */
.bp-activity-filters {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.bp-activity-filter-tabs { display: flex; gap: .4rem; }
.bp-filter-tab {
  padding: .4rem .9rem; border-radius: 100px;
  font-size: .8rem; font-weight: 600;
  color: rgba(244,240,230,.55);
  border: 1px solid var(--border);
  transition: all .15s; text-decoration: none;
}
.bp-filter-tab:hover, .bp-filter-tab.active {
  background: rgba(143,212,74,.12);
  border-color: rgba(143,212,74,.4);
  color: var(--lime);
}
#activity-filter-select {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 8px; color: var(--cream);
  padding: .4rem .8rem; font-family: var(--font-body);
  font-size: .82rem; cursor: pointer;
}

/* Activity stream items */
.bp-activity-stream { display: grid; gap: 1rem; }
.bp-activity-item {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.4rem 1.6rem;
  transition: border-color .2s;
}
.bp-activity-item:hover { border-color: rgba(143,212,74,.35); }
.bp-activity-avatar-wrap {
  float: left; margin-right: 1rem;
  position: relative;
}
.bp-activity-avatar-wrap img {
  width: 44px; height: 44px; border-radius: 50%;
  border: 2px solid var(--border);
  display: block;
}
.bp-online-indicator {
  position: absolute; bottom: 1px; right: 1px;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--lime); border: 2px solid var(--soil);
}
.bp-activity-content-wrap { overflow: hidden; }
.bp-activity-header { font-size: .88rem; color: rgba(244,240,230,.7); margin-bottom: .5rem; line-height: 1.5; }
.bp-activity-header a { color: var(--lime); font-weight: 700; }
.bp-activity-body { font-size: .9rem; color: rgba(244,240,230,.8); line-height: 1.7; margin-bottom: .8rem; }
.bp-activity-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
}
.bp-activity-time { font-size: .72rem; color: rgba(244,240,230,.35); font-family: var(--font-mono); }
.bp-activity-actions { display: flex; gap: .4rem; }
.bp-activity-actions a {
  font-size: .75rem; color: rgba(244,240,230,.45);
  background: var(--glass); padding: .22rem .7rem;
  border-radius: 100px; border: 1px solid var(--border);
  transition: color .15s, border-color .15s;
}
.bp-activity-actions a:hover { color: var(--lime); border-color: rgba(143,212,74,.4); }

/* Activity comments */
.activity-comments { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(143,212,74,.08); }
.activity-comments li { display: flex; gap: .8rem; margin-bottom: .8rem; }
.activity-comments .acomment-avatar img { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--border); }
.activity-comments .acomment-content { background: rgba(255,255,255,.03); border-radius: 8px; padding: .6rem .9rem; flex: 1; }
.activity-comments .acomment-meta { font-size: .72rem; color: rgba(244,240,230,.4); margin-bottom: .25rem; }
.activity-comments .acomment-meta a { color: var(--lime); font-weight: 700; }

/* Comment form */
.ac-form { display: flex; gap: .7rem; margin-top: .8rem; align-items: flex-start; }
.ac-form img { width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; }
.ac-form textarea {
  flex: 1; background: rgba(255,255,255,.04); border: 1.5px solid var(--border);
  border-radius: 8px; color: var(--cream); padding: .5rem .8rem;
  font-family: var(--font-body); font-size: .85rem; resize: none; min-height: 50px;
}
.ac-form textarea:focus { outline: none; border-color: var(--lime); }
.ac-form .ac-reply-submit {
  background: var(--lime); color: var(--soil); border: none;
  border-radius: 100px; padding: .45rem .9rem;
  font-family: var(--font-body); font-weight: 700; font-size: .78rem; cursor: pointer;
}

/* ── Members directory ──────────────────────────────────────── */
.bp-members-page { max-width: 100%; }
.bp-dir-header {
  display: flex; align-items: center; gap: 1rem;
  margin-bottom: 1.5rem; flex-wrap: wrap;
  justify-content: space-between;
}
.bp-dir-search { flex: 1; min-width: 220px; }
.bp-dir-count { font-size: .78rem; color: rgba(244,240,230,.4); font-family: var(--font-mono); margin-bottom: 1rem; }

.bp-members-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.2rem; list-style: none; padding: 0;
}
.bp-member-card {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  transition: border-color .2s, transform .2s;
  display: flex; flex-direction: column; gap: .8rem;
}
.bp-member-card:hover { border-color: rgba(143,212,74,.4); transform: translateY(-3px); }
.bp-member-avatar-wrap { position: relative; width: fit-content; }
.bp-member-avatar-wrap img {
  width: 72px; height: 72px; border-radius: 50%;
  border: 2px solid var(--border); display: block;
}
.bp-online-indicator {
  position: absolute; bottom: 2px; right: 2px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--lime); border: 2px solid var(--soil);
}
.bp-member-name a {
  font-family: var(--font-display); font-size: 1.05rem; font-weight: 700;
  color: var(--cream); text-decoration: none;
}
.bp-member-name a:hover { color: var(--lime); }
.bp-member-meta { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; margin-top: .3rem; }
.bp-member-region { font-size: .78rem; color: rgba(244,240,230,.55); }
.bp-member-last-active { font-size: .72rem; color: rgba(244,240,230,.3); font-family: var(--font-mono); }
.bp-member-actions { margin-top: auto; padding-top: .6rem; }
.bp-view-profile { width: 100%; text-align: center; font-size: .82rem !important; padding: .45rem 1rem !important; }

/* ── Groups directory ───────────────────────────────────────── */
.bp-groups-page { max-width: 100%; }
.bp-yfg-groups-banner {
  background: rgba(45,90,30,.35);
  border: 1px solid rgba(143,212,74,.2);
  border-left: 4px solid var(--lime);
  border-radius: var(--radius);
  padding: 1.2rem 1.5rem;
  margin-bottom: 1.8rem;
}
.bp-groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.2rem; list-style: none; padding: 0;
}
.bp-group-card {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  transition: border-color .2s, transform .2s;
  display: flex; flex-direction: column; gap: .8rem;
}
.bp-group-card:hover { border-color: rgba(240,192,64,.4); transform: translateY(-2px); }
.bp-group-avatar-wrap img,
.bp-group-avatar img {
  width: 60px; height: 60px; border-radius: 10px;
  border: 2px solid var(--border); object-fit: cover;
}
.bp-group-name a {
  font-family: var(--font-display); font-weight: 700; font-size: 1rem;
  color: var(--cream); text-decoration: none;
}
.bp-group-name a:hover { color: var(--gold); }
.bp-group-desc { font-size: .82rem; color: rgba(244,240,230,.55); line-height: 1.6; }
.bp-group-meta { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; margin-top: .3rem; }
.bp-group-last-active { margin-left: auto; }
.bp-group-actions { margin-top: auto; padding-top: .6rem; }
.bp-group-actions .btn { width: 100%; text-align: center; font-size: .82rem !important; }

/* ── Member profile page ────────────────────────────────────── */
.bp-member-profile-page { }
.bp-profile-header {
  background: linear-gradient(160deg, var(--deep), var(--moss));
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 0;
  border: 1px solid var(--border);
}
.bp-cover-photo {
  height: 160px; width: 100%;
  background: linear-gradient(135deg, var(--moss), var(--grove));
  overflow: hidden;
}
.bp-cover-photo img { width: 100%; height: 100%; object-fit: cover; }
.bp-cover-default {
  background: linear-gradient(135deg, var(--deep), var(--moss));
  position: relative;
}
.bp-cover-default::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 50%, rgba(143,212,74,.12), transparent 60%);
}
.bp-profile-header-inner {
  display: flex; align-items: flex-start; gap: 1.5rem;
  padding: 1.5rem 2rem 2rem;
  position: relative;
}
.bp-profile-avatar-wrap {
  margin-top: -50px; flex-shrink: 0;
}
.bp-profile-avatar-wrap img {
  width: 96px; height: 96px; border-radius: 50%;
  border: 4px solid var(--moss);
  display: block;
}
.bp-profile-name { font-size: clamp(1.3rem,2.5vw,1.8rem); margin-bottom: .2rem; }
.bp-profile-username { font-family: var(--font-mono); font-size: .78rem; color: var(--sprout); }
.bp-profile-badges { display: flex; gap: .4rem; flex-wrap: wrap; margin: .6rem 0; }
.bp-profile-bio { font-size: .88rem; color: rgba(244,240,230,.7); line-height: 1.7; margin-top: .5rem; max-width: 500px; }
.bp-profile-skills { font-size: .82rem; color: rgba(244,240,230,.55); margin-top: .4rem; }
.bp-skills-label { color: var(--sprout); font-weight: 700; margin-right: .3rem; }
.bp-profile-header-actions { margin-left: auto; display: flex; gap: .5rem; flex-wrap: wrap; padding-top: .5rem; }

/* Profile nav */
.bp-profile-nav {
  background: rgba(15,26,9,.6);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 64px; z-index: 100;
  backdrop-filter: blur(12px);
}
.bp-member-nav { display: flex; gap: 0; overflow-x: auto; }
.bp-member-nav li { list-style: none; }
.bp-member-nav li a {
  display: inline-block; padding: .75rem 1.1rem;
  font-size: .84rem; font-weight: 600;
  color: rgba(244,240,230,.5);
  border-bottom: 2px solid transparent;
  transition: all .15s; white-space: nowrap;
}
.bp-member-nav li.current a,
.bp-member-nav li a:hover {
  color: var(--lime); border-bottom-color: var(--lime);
  background: transparent;
}
.bp-member-nav li span { display: none; } /* hide count badges in nav */

/* Profile content */
.bp-profile-content { padding: 2rem 0; }

/* xProfile fields */
.bp-profile-actions-bar { margin-bottom: 1.5rem; }
.bp-xprofile-view { max-width: 700px; }
.bp-xprofile-group { margin-bottom: 2rem; }
.bp-xprofile-group-title {
  font-family: var(--font-mono); font-size: .72rem;
  color: var(--sprout); letter-spacing: .14em;
  text-transform: uppercase; margin-bottom: 1rem;
  padding-bottom: .5rem; border-bottom: 1px solid var(--border);
}
.bp-xprofile-fields { display: grid; gap: .8rem; }
.bp-xprofile-field { display: flex; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid rgba(143,212,74,.06); }
.bp-field-label {
  font-family: var(--font-mono); font-size: .72rem; font-weight: 700;
  color: rgba(244,240,230,.4); text-transform: uppercase; letter-spacing: .06em;
  min-width: 140px; flex-shrink: 0; margin-top: .1rem;
}
.bp-field-value { font-size: .9rem; color: rgba(244,240,230,.85); line-height: 1.6; }

/* xProfile edit form */
.bp-xprofile-edit-wrap { max-width: 640px; }
.bp-form-section { margin-bottom: 2rem; }
.bp-form-section-title {
  font-family: var(--font-mono); font-size: .72rem; color: var(--sprout);
  letter-spacing: .14em; text-transform: uppercase;
  margin-bottom: 1.2rem; padding-bottom: .5rem; border-bottom: 1px solid var(--border);
}
.bp-form-fields { display: grid; gap: 1rem; }
.bp-form-field-wrap { }
.bp-form-field-label {
  display: block; font-size: .74rem; font-weight: 700;
  color: var(--sprout); text-transform: uppercase;
  letter-spacing: .08em; font-family: var(--font-mono); margin-bottom: .4rem;
}
.bp-required { color: var(--amber); margin-left: .2rem; }
.bp-field-description { font-size: .78rem; color: rgba(244,240,230,.4); margin-top: .3rem; }
.bp-form-submit { padding-top: 1.5rem; border-top: 1px solid var(--border); }

/* ── Group profile page ─────────────────────────────────────── */
.bp-group-profile-page { }
.bp-group-header {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); overflow: hidden; margin-bottom: 0;
}
.bp-group-header-inner {
  display: flex; align-items: flex-start; gap: 1.5rem;
  padding: 1.5rem 2rem 2rem; flex-wrap: wrap;
}
.bp-group-avatar-wrap { margin-top: -30px; flex-shrink: 0; }
.bp-group-avatar-wrap img { width: 80px; height: 80px; border-radius: 10px; border: 3px solid var(--moss); }
.bp-group-title { font-size: clamp(1.3rem,2.5vw,1.8rem); margin-bottom: .4rem; }
.bp-group-header-meta { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; margin: .5rem 0; }
.bp-group-description { font-size: .9rem; color: rgba(244,240,230,.7); line-height: 1.7; max-width: 600px; margin-top: .6rem; }
.bp-group-header-actions { margin-left: auto; }

/* ── Messages ───────────────────────────────────────────────── */
#buddypress #message-threads li,
#buddypress .message-threads li {
  background: var(--glass);
  border: 1px solid var(--border);
  border-radius: 10px; padding: 1rem 1.2rem;
  margin-bottom: .7rem; list-style: none;
  transition: border-color .15s;
}
#buddypress #message-threads li:hover { border-color: rgba(143,212,74,.4); }
#buddypress #message-threads li.unread { border-left: 3px solid var(--lime); }
#buddypress .thread-from a { color: var(--lime); font-weight: 700; font-size: .9rem; }
#buddypress .thread-info { font-size: .8rem; color: rgba(244,240,230,.5); }
#buddypress .thread-subject a { color: var(--cream); font-size: .88rem; }
#buddypress .thread-date { font-size: .72rem; color: rgba(244,240,230,.3); font-family: var(--font-mono); }
#buddypress .message-content { color: rgba(244,240,230,.75); font-size: .9rem; line-height: 1.7; }

/* Compose message */
#buddypress #compose-subject,
#buddypress #send-to-input,
#buddypress #message-content {
  background: rgba(255,255,255,.04) !important;
  border: 1.5px solid var(--border) !important;
  border-radius: 9px !important; color: var(--cream) !important;
  font-family: var(--font-body) !important; font-size: .9rem !important;
}
#buddypress #message-content { min-height: 180px; }

/* ── Notifications ──────────────────────────────────────────── */
#buddypress #notifications-list li { list-style: none; }
#buddypress .notification-description a { color: var(--lime); font-weight: 700; }
#buddypress .read { opacity: .5; }

/* ── Settings pages ─────────────────────────────────────────── */
#buddypress .settings-form,
#buddypress #settings-form {
  max-width: 560px;
}
#buddypress table.account-settings-table { width: 100%; border-collapse: collapse; }
#buddypress table.account-settings-table th {
  font-family: var(--font-mono); font-size: .72rem;
  color: var(--sprout); text-transform: uppercase;
  letter-spacing: .08em; padding: .7rem 0;
  text-align: left; border-bottom: 1px solid var(--border);
}
#buddypress table.account-settings-table td {
  padding: .7rem 0; border-bottom: 1px solid rgba(143,212,74,.06);
  font-size: .88rem; color: rgba(244,240,230,.75);
}
#buddypress .delete-account-wrap { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(196,113,74,.2); }
#buddypress .delete-account-wrap p { color: rgba(196,113,74,.8); font-size: .85rem; margin-bottom: 1rem; }

/* ── Registration page ──────────────────────────────────────── */
#buddypress #signup-form,
#buddypress .register-page {
  max-width: 600px; margin: 0 auto;
}
#buddypress #signup-form fieldset {
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.5rem; margin-bottom: 1.5rem; background: var(--glass);
}
#buddypress #signup-form legend {
  font-family: var(--font-mono); font-size: .72rem;
  color: var(--sprout); text-transform: uppercase;
  letter-spacing: .12em; padding: 0 .5rem; font-weight: 700;
}

/* ── Empty states ───────────────────────────────────────────── */
.bp-empty-state {
  text-align: center; padding: 4rem 2rem;
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius);
}
.bp-empty-icon { font-size: 3rem; margin-bottom: 1rem; }
.bp-empty-state h3 { color: var(--cream); margin-bottom: .5rem; font-size: 1.1rem; }
.bp-empty-state p  { font-size: .88rem; color: rgba(244,240,230,.5); }
.bp-empty-state a  { color: var(--lime); }

/* ── Pagination ─────────────────────────────────────────────── */
.bp-pagination {
  display: flex; gap: .35rem; justify-content: center;
  flex-wrap: wrap; margin-top: 2rem; padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}
.bp-pagination a,
.bp-pagination span {
  display: inline-block; padding: .4rem .8rem;
  border-radius: 7px; font-size: .82rem; text-decoration: none;
}
.bp-pagination a { background: var(--glass); border: 1px solid var(--border); color: var(--cream); transition: all .15s; }
.bp-pagination a:hover { border-color: var(--lime); color: var(--lime); }
.bp-pagination .current { background: var(--lime); color: var(--soil); font-weight: 700; border: none; }
.bp-pagination .prev, .bp-pagination .next { color: rgba(244,240,230,.55); }

/* ── BP directory search forms ──────────────────────────────── */
.bp-dir-search form { display: flex; gap: 0; overflow: hidden; }
.bp-dir-search input[type=text],
.bp-dir-search input[type=search] {
  flex: 1; padding: .6rem 1rem;
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  border-right: none; border-radius: 100px 0 0 100px;
  color: var(--cream); font-family: var(--font-body); font-size: .88rem;
  outline: none;
}
.bp-dir-search input[type=text]:focus,
.bp-dir-search input[type=search]:focus { border-color: var(--lime); }
.bp-dir-search input[type=submit],
.bp-dir-search button[type=submit] {
  background: var(--grove); border: 1.5px solid var(--border); border-left: none;
  color: var(--mist); padding: .6rem 1.2rem;
  font-family: var(--font-body); font-weight: 700; font-size: .82rem;
  cursor: pointer; border-radius: 0 100px 100px 0;
  transition: background .15s;
}
.bp-dir-search input[type=submit]:hover { background: var(--leaf); }

/* ── BP filter dropdowns (dir views) ────────────────────────── */
#buddypress div.item-list-tabs { background: transparent; border: none; margin-bottom: 1rem; }
#buddypress div.item-list-tabs ul { display: flex; gap: .3rem; flex-wrap: wrap; padding: 0; }
#buddypress div.item-list-tabs ul li { list-style: none; }
#buddypress div.item-list-tabs ul li a {
  display: inline-block; padding: .38rem .85rem;
  border-radius: 100px; font-size: .8rem; font-weight: 600;
  color: rgba(244,240,230,.5); border: 1px solid var(--border);
  transition: all .15s;
}
#buddypress div.item-list-tabs ul li.selected a,
#buddypress div.item-list-tabs ul li a:hover {
  background: rgba(143,212,74,.12); border-color: rgba(143,212,74,.4);
  color: var(--lime);
}
#buddypress div.item-list-tabs ul li span {
  background: rgba(143,212,74,.2); color: var(--lime);
  font-size: .65rem; padding: .1rem .4rem; border-radius: 100px;
  margin-left: .25rem; font-family: var(--font-mono);
}

/* ── BP order select ────────────────────────────────────────── */
#buddypress .activity-type-select select,
#buddypress .item-list-tabs select {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 8px; color: var(--cream); padding: .45rem .8rem;
  font-family: var(--font-body); font-size: .82rem; cursor: pointer;
  appearance: none;
}

/* ── "whats new" post form ───────────────────────────────────── */
#buddypress #whats-new-avatar img {
  width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--border);
}
#buddypress #whats-new-content { display: flex; gap: .8rem; align-items: flex-start; }
#buddypress #whats-new { flex: 1; }
#buddypress #aw-whats-new-options {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; margin-top: .8rem; flex-wrap: wrap;
}
#buddypress #aw-whats-new-options select {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 8px; color: var(--cream); padding: .4rem .7rem;
  font-family: var(--font-body); font-size: .82rem;
}

/* ── BP cover image upload button ───────────────────────────── */
.bp-cover-image-status { font-size: .8rem; color: rgba(244,240,230,.5); }
.cover-image-action a {
  display: inline-block; padding: .35rem .8rem;
  background: rgba(0,0,0,.4); color: var(--cream) !important;
  border-radius: 6px; font-size: .75rem; font-weight: 600;
  border: 1px solid rgba(255,255,255,.15);
}

/* ── Avatar upload ──────────────────────────────────────────── */
#avatar-upload-ui, #bp-existing-avatar { text-align: center; }
#avatar-crop-pane { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }

/* ── BP page wrap ───────────────────────────────────────────── */
.bp-page-wrap { }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 768px) {
  .bp-members-grid { grid-template-columns: 1fr 1fr; }
  .bp-groups-grid  { grid-template-columns: 1fr; }
  .bp-profile-header-inner { flex-direction: column; gap: 1rem; }
  .bp-profile-avatar-wrap { margin-top: -40px; }
  .bp-profile-header-actions { margin-left: 0; }
  .bp-activity-filters { flex-direction: column; align-items: flex-start; }
  .bp-group-header-inner { flex-direction: column; }
  .bp-group-header-actions { margin-left: 0; }
  .bp-xprofile-field { flex-direction: column; gap: .3rem; }
  .bp-field-label { min-width: unset; }
}
@media (max-width: 480px) {
  .bp-members-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   GYC PLUGIN — SHARED FRONTEND STYLES
   ═══════════════════════════════════════════════════════════════ */

/* ── Registration / forms ───────────────────────────────────────── */
.gyc-reg-wrap, .gyc-courses-wrap, .gyc-certs-wrap,
.gyc-my-training, .gyc-dashboard { max-width: 100%; }

.gyc-form .form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.gyc-form .form-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }
.gyc-form .form-group  { margin-bottom: .9rem; }

/* ── Dashboard ──────────────────────────────────────────────── */
.gyc-dashboard { max-width: 1060px; margin: 0 auto; }

.gyc-dash-welcome {
  background: linear-gradient(135deg, var(--deep), var(--moss));
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.6rem 2rem;
  display: flex; align-items: center; gap: 1.2rem;
  flex-wrap: wrap; margin-bottom: 1.4rem;
}
.gyc-dash-welcome-avatar img { width: 56px; height: 56px; border-radius: 50%; border: 2px solid var(--border); }
.gyc-dash-welcome-text h2 { font-family: var(--font-display); font-size: 1.3rem; color: var(--cream); margin-bottom: .3rem; }
.gyc-dash-welcome-text p  { font-size: .85rem; color: rgba(244,240,230,.55); display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.gyc-dash-welcome-actions { margin-left: auto; }

.gyc-dash-stats {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1rem; margin-bottom: 1.4rem;
}
.gyc-dash-stat {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 10px; padding: 1rem 1.2rem; text-align: center;
}
.gyc-dash-stat-num { font-family: var(--font-display); font-size: 1.8rem; font-weight: 900; color: var(--gold); display: block; line-height: 1; }
.gyc-dash-stat-lbl { font-size: .68rem; color: rgba(244,240,230,.4); text-transform: uppercase; letter-spacing: .06em; font-family: var(--font-mono); margin-top: .3rem; display: block; }

.gyc-dash-cols { display: grid; grid-template-columns: 1fr 340px; gap: 1.4rem; }
.gyc-dash-main  { display: grid; gap: 1.2rem; align-content: start; }
.gyc-dash-sidebar { display: grid; gap: 1rem; align-content: start; }

.gyc-dash-widget {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.3rem 1.5rem;
}
.gyc-dash-widget h4 { font-family: var(--font-display); font-size: .95rem; font-weight: 700; color: var(--cream); margin-bottom: .8rem; }
.gyc-dash-widget-hd { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.gyc-dash-widget-hd h4 { margin-bottom: 0; }

/* ── Courses ─────────────────────────────────────────────────── */
.gyc-courses-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.2rem;
}
.gyc-course-card {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem;
  transition: border-color .2s, transform .2s;
  display: flex; flex-direction: column;
}
.gyc-course-card:hover { border-color: rgba(143,212,74,.4); transform: translateY(-3px); }
.gyc-course-type-badge { font-size: .7rem; color: rgba(244,240,230,.4); font-family: var(--font-mono); margin-bottom: .5rem; }
.gyc-course-title { font-family: var(--font-display); font-weight: 700; color: var(--cream); font-size: 1rem; margin-bottom: .5rem; }
.gyc-course-desc  { font-size: .82rem; color: rgba(244,240,230,.55); line-height: 1.65; flex: 1; margin-bottom: .8rem; }
.gyc-course-meta  { display: flex; align-items: center; gap: .5rem; font-size: .75rem; color: rgba(244,240,230,.4); font-family: var(--font-mono); }

/* ── Training rows ───────────────────────────────────────────── */
.gyc-training-row {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: 10px; padding: 1.1rem 1.3rem;
  transition: border-color .2s;
}
.gyc-training-row:hover { border-color: rgba(143,212,74,.35); }

/* ── Certificates ────────────────────────────────────────────── */
.gyc-cert-card { background: var(--glass); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 1.2rem; }
.gyc-cert-visual {
  background: linear-gradient(160deg, #0a1a06, #1e3a14);
  border-bottom: 1px solid var(--border); padding: 2rem 2.2rem;
  position: relative;
}
.gyc-cert-visual::before {
  content: ''; position: absolute; top: -40px; right: -40px;
  width: 180px; height: 180px; border-radius: 50%;
  background: radial-gradient(circle, rgba(143,212,74,.1), transparent 65%);
}
.gyc-cert-header { margin-bottom: 1.5rem; }
.gyc-cert-body   { text-align: center; padding: .5rem 0 1.5rem; position: relative; z-index: 1; }
.gyc-cert-footer { display: flex; justify-content: space-between; align-items: flex-end; padding-top: 1rem; border-top: 1px solid rgba(143,212,74,.15); position: relative; z-index: 1; }
.gyc-cert-actions { padding: 1rem 1.5rem; display: flex; gap: .7rem; align-items: center; }

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 860px) {
  .gyc-dash-stats  { grid-template-columns: 1fr 1fr; }
  .gyc-dash-cols   { grid-template-columns: 1fr; }
  .gyc-form .form-grid-2, .gyc-form .form-grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .gyc-dash-stats  { grid-template-columns: 1fr 1fr; }
  .gyc-dash-welcome { flex-direction: column; gap: .8rem; }
  .gyc-dash-welcome-actions { margin-left: 0; }
}

/* ── MISSING BP TEMPLATE CLASSES (v4.0 complete) ────────────── */

/* Scope select dropdown */
.bp-activity-scope-select select {
  background: var(--glass); border: 1.5px solid var(--border);
  border-radius: 8px; color: var(--cream); padding: .42rem .8rem;
  font-family: var(--font-body); font-size: .82rem; cursor: pointer;
  outline: none;
}

/* Member info block */
.bp-member-info { display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.bp-member-track { font-size: .72rem; margin-left: .3rem; }

/* Member/Group profile page wrappers */
.bp-member-profile-page, .bp-group-profile-page { }

/* Profile user info */
.bp-profile-user-info { flex: 1; min-width: 0; }

/* Member activity & groups tabs */
.bp-member-activity-wrap,
.bp-member-groups-wrap { padding-top: .5rem; }

/* Group info block */
.bp-group-info { flex: 1; min-width: 0; }

/* Group header info */
.bp-group-header-info { flex: 1; min-width: 0; }

/* BP notifications wrap */
.bp-notifications-wrap { max-width: 760px; margin: 0 auto; }
.bp-notifications-wrap .bp-empty-state { max-width: 100%; }

/* BP messages wrap */
.bp-messages-wrap { max-width: 100%; }
.bp-friends-wrap  { max-width: 100%; }
.bp-settings-wrap { max-width: 640px; }
.bp-register-wrap, .bp-activate-wrap { max-width: 520px; margin: 2rem auto; }

/* Group members wrap */
.bp-group-members-wrap { max-width: 100%; }
.bp-group-admin-wrap   { max-width: 700px; }
.bp-send-invites-wrap  { max-width: 640px; }

/* Fix: group avatar display in member card */
.bp-group-avatar img,
.bp-group-avatar-wrap img {
  width: 60px; height: 60px; border-radius: 10px;
  border: 2px solid var(--border); object-fit: cover; display: block;
}

/* BP search forms custom */
.bp-dir-filters { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }

/* Community page tiles */
.community-tile {
  background: var(--glass); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 2rem;
  text-align: center; transition: transform .2s, border-color .2s;
  text-decoration: none; display: block;
}
.community-tile:hover { transform: translateY(-4px); border-color: rgba(143,212,74,.4); }

/* Fix BP form selects */
#buddypress select option { background: var(--deep); color: var(--cream); }

/* BP send message button */
#buddypress #send_message_button,
#buddypress a.send-message {
  background: var(--lime); color: var(--soil);
  border: none; border-radius: 100px;
  padding: .5rem 1.2rem; font-weight: 700; font-size: .85rem;
  cursor: pointer; display: inline-block; text-decoration: none;
}

/* Fix BP avatar upload forms */
#avatar-upload,
#group-avatar-upload,
#group-cover-image-upload {
  border: 2px dashed var(--border); border-radius: var(--radius);
  padding: 2rem; text-align: center; cursor: pointer;
  background: rgba(255,255,255,.02);
  transition: border-color .2s;
}
#avatar-upload:hover, #group-avatar-upload:hover { border-color: rgba(143,212,74,.4); }

/* BP pending/accepted friend buttons */
#buddypress .friendship-button .button,
#buddypress .friendship-button .pending,
#buddypress .add-friend a {
  display: inline-block; padding: .38rem .9rem;
  background: var(--grove); color: var(--mist);
  border-radius: 100px; font-size: .78rem; font-weight: 600;
  border: none; cursor: pointer; transition: background .15s;
  text-decoration: none;
}
#buddypress .friendship-button .button:hover,
#buddypress .add-friend a:hover { background: var(--leaf); color: var(--cream); }
#buddypress .friendship-button .pending { background: rgba(240,192,64,.15); color: var(--gold); }
#buddypress .remove-friend a { background: rgba(220,38,38,.1); color: #fca5a5; }

/* BP group join/leave buttons */
#buddypress .join-group a,
#buddypress .leave-group a,
#buddypress .request-membership a {
  display: inline-block; padding: .45rem 1.1rem;
  border-radius: 100px; font-size: .82rem; font-weight: 600;
  transition: all .15s; text-decoration: none;
}
#buddypress .join-group a { background: var(--lime); color: var(--soil); }
#buddypress .join-group a:hover { background: var(--sprout); }
#buddypress .leave-group a { background: var(--glass); color: rgba(244,240,230,.5); border: 1px solid var(--border); }
#buddypress .leave-group a:hover { border-color: rgba(220,38,38,.4); color: #fca5a5; }

/* Progress bars in member dashboard */
.gyc-progress-bar {
  background: rgba(255,255,255,.06); border-radius: 100px;
  height: 8px; overflow: hidden;
}
.gyc-progress-fill {
  height: 100%; border-radius: 100px;
  background: linear-gradient(90deg, var(--grove), var(--lime));
  transition: width .6s ease;
}

/* Announcement items */
.yfg-announcement {
  display: flex; align-items: flex-start; gap: .8rem;
  padding: .7rem 0; border-bottom: 1px solid rgba(143,212,74,.06);
  font-size: .85rem;
}
.yfg-announcement:last-child { border-bottom: none; }
.yfg-announcement-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); flex-shrink: 0; margin-top: .45rem; }
.yfg-announcement-text { color: rgba(244,240,230,.75); line-height: 1.6; flex: 1; }
.yfg-announcement-date { font-size: .7rem; color: rgba(244,240,230,.3); font-family: var(--font-mono); white-space: nowrap; }

/* LMS progress items */
.gyc-enroll-item {
  display: grid; grid-template-columns: 1fr auto;
  gap: .5rem; align-items: center;
  padding: .8rem 0; border-bottom: 1px solid rgba(143,212,74,.06);
}
.gyc-enroll-item:last-child { border-bottom: none; }

/* Verify certificate form */
.yfg-verify-form {
  background: var(--glass); border: 1px solid var(--border);
  border-top: 4px solid var(--gold); border-radius: var(--radius);
  padding: 2.5rem; max-width: 520px; margin: 0 auto;
}

/* Certificate card visual fixes */
.gyc-cert-org { font-family: var(--font-mono); font-size: .68rem; color: var(--sprout); letter-spacing: .2em; text-transform: uppercase; }
.gyc-cert-title { font-family: var(--font-display); font-size: 1.1rem; font-weight: 700; color: var(--cream); margin: .3rem 0; }
.gyc-cert-name  { font-size: 1.5rem; font-weight: 900; color: var(--gold); font-family: var(--font-display); margin: 1rem 0; }
.gyc-cert-code  { font-family: var(--font-mono); font-size: .82rem; color: var(--lime); letter-spacing: .12em; margin-top: .6rem; }

/* Page section headings fix */
.page-hero h1 em, h1 em, h2 em { color: var(--lime); font-style: italic; }
h2 em { color: var(--lime); }

/* Button ghost variant */
.btn-ghost {
  background: transparent;
  border: 1.5px solid rgba(143,212,74,.3);
  color: rgba(244,240,230,.7);
}
.btn-ghost:hover {
  background: rgba(143,212,74,.08);
  border-color: rgba(143,212,74,.6);
  color: var(--lime);
}

/* Fix portal BP section */
.yfg-bp-portal-bar {
  display: flex; gap: .8rem; flex-wrap: wrap;
  padding: 1.2rem 1.5rem;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-top: 1.5rem;
}

/* LMS course page */
.yfg-lms-wrap { max-width: 1060px; margin: 0 auto; }

/* Admin bar fix for subscribers */
html { margin-top: 0 !important; }
#wpadminbar { display: none !important; }

/* ── Responsive BP fixes ─────────────────────────────────────── */
@media (max-width: 640px) {
  .bp-activity-page { max-width: 100%; }
  .bp-profile-header-inner { padding: 1rem; }
  .bp-profile-avatar-wrap { margin-top: -36px; }
  .bp-profile-avatar-wrap img { width: 72px; height: 72px; }
  .bp-member-nav li a { padding: .6rem .7rem; font-size: .78rem; }
  .bp-members-grid { grid-template-columns: 1fr; }
  .bp-groups-grid  { grid-template-columns: 1fr; }
  .bp-yfg-groups-banner .tag { font-size: .65rem; }
  .gyc-dash-cols { grid-template-columns: 1fr; }
}

