/* ─── EMOTO — Black & Gold ──────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,600;0,700;0,800;0,900;1,700&family=Barlow:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;600&display=swap');

:root {
  /* eBikes Palette — black + gold, performance/adventure energy */
  --lr-green:      #B8943B;   /* deep gold */
  --lr-green-mid:  #D4AA50;   /* PRIMARY gold */
  --lr-green-lt:   #F0CB6E;   /* highlight gold */
  --lr-green-glow: #FFD66B;
  --lr-gold:       #D4AA50;   /* CTA gold */
  --lr-gold-lt:    #F0CB6E;   /* CTA hover */
  --lr-bronze:     #8B6A30;   /* deep gold accent */
  --lr-mud:        #4A4035;   /* warm dark neutral */
  --lr-cream:      #FFF6D9;   /* warm off-white */
  --lr-sand:       #C4A45F;   /* burnished gold */

  /* UI — pure black so the logo floats; cards lift slightly */
  --bg:        #000000;       /* PURE black so the EMOTO logo blends seamlessly */
  --bg-2:      #0A0A0A;       /* card / section surfaces */
  --bg-3:      #131313;       /* deeper section */
  --bg-4:      #1C1C1C;       /* deepest section */
  --bg-card:   #0A0A0A;       /* card surface */
  --border:    rgba(212,170,80,0.16);
  --border-2:  rgba(212,170,80,0.28);
  --border-g:  rgba(212,170,80,0.40);
  --text:      #F5F0E0;       /* warm off-white text */
  --text-2:    #B8B0A0;       /* secondary */
  --text-3:    #6F6A5C;       /* muted */
  --red:       #E04444;
  --radius:    10px;
  --shadow:    0 8px 32px rgba(0,0,0,0.6);
  --shadow-g:  0 4px 24px rgba(212,170,80,0.25);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
html, body { height: 100%; background: var(--bg); color: var(--text); font-family: 'Barlow', sans-serif; font-size: 15px; line-height: 1.6; }
a { color: var(--lr-green-lt); text-decoration: none; }
a:hover { color: var(--lr-gold-lt); }
img { max-width: 100%; }

/* ─── App Shell ───────────────────────────────────────────────────────────── */
#app { min-height: 100vh; display: flex; flex-direction: column; }
.app-shell { display: flex; flex: 1; min-height: 0; }
.main-area { flex: 1; min-width: 0; max-width: 740px; margin: 0 auto; padding: 24px 20px 80px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.main-area.messages-active { padding-bottom: 24px; overflow: hidden; }

/* ─── Pull-to-Refresh ─────────────────────────────────────────────────────── */
#ptr-indicator { display: flex; align-items: center; justify-content: center; gap: 10px; height: 0; overflow: hidden; opacity: 0; transition: height .15s ease, opacity .15s ease; background: transparent; }
#ptr-indicator.ready .ptr-spinner { border-top-color: var(--lr-gold-lt); animation: ptr-spin .6s linear infinite; }
#ptr-indicator.refreshing .ptr-spinner { border-top-color: var(--lr-green-lt); animation: ptr-spin .5s linear infinite; }
.ptr-spinner { width: 22px; height: 22px; border: 3px solid rgba(255,255,255,0.1); border-top: 3px solid var(--lr-green-lt); border-radius: 50%; transition: border-top-color .2s; }
.ptr-label { font-size: 12px; color: var(--text-3); font-family: 'Barlow Condensed', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; transition: color .2s; }
#ptr-indicator.ready .ptr-label { color: var(--lr-gold-lt); }
#ptr-indicator.refreshing .ptr-label { color: var(--lr-green-lt); }
@keyframes ptr-spin { to { transform: rotate(360deg); } }
.right-rail { width: 270px; flex-shrink: 0; padding: 24px 16px; }
@media (max-width: 1100px) { .right-rail { display: none; } }

/* ─── Top Bar ─────────────────────────────────────────────────────────────── */
.topbar {
  background: rgba(10,12,9,0.97);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-g);
  padding: 0 20px;
  height: 58px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 100;
}
.topbar-brand { display: flex; align-items: center; gap: 10px; cursor: pointer; font-family: 'Barlow Condensed', sans-serif; font-size: 17px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; color: #FFFFFF; }
.topbar-brand:hover { opacity: 0.85; }
.topbar-wordmark { display: flex; flex-direction: column; line-height: 1; }
.topbar-wordmark .line1 { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; color: #FFFFFF; }
.topbar-wordmark .line2 { font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--lr-gold-lt); }
.lr-badge { width: 36px; height: 36px; background: var(--lr-green); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; border: 1px solid rgba(240,203,110,0.4); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.notif-btn { position: relative; background: none; border: none; color: var(--text-2); cursor: pointer; font-size: 18px; padding: 7px; border-radius: 8px; transition: all .15s; }
.notif-btn:hover { background: var(--bg-4); color: var(--text); }
.notif-badge { position: absolute; top: 1px; right: 1px; background: #C94444; color: #fff; font-size: 9px; font-weight: 700; border-radius: 10px; padding: 1px 4px; min-width: 16px; text-align: center; }
.avatar-sm { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--bg-4); border: 2px solid var(--border-g); cursor: pointer; }
.avatar-sm.placeholder { display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: var(--lr-gold-lt); background: rgba(212,170,80,0.3); }
.avatar-xs { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; background: var(--bg-4); border: 1px solid var(--border-g); flex-shrink: 0; }
.avatar-xs.placeholder { display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; color: var(--lr-gold-lt); background: rgba(212,170,80,0.3); }

/* ─── Language Picker ─────────────────────────────────────────────────────── */
.lang-picker-wrap { position: relative; }
.lang-btn { font-size: 20px !important; }
.lang-opt.active { background: rgba(212,170,80,0.18); color: var(--lr-green-lt); font-weight: 700; }
.lang-dropdown {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 200px;
  background: var(--bg-2);
  border: 1px solid var(--border-g);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.6);
  z-index: 200;
  overflow: hidden;
  animation: menu-pop .15s ease;
  max-height: 70vh;
  overflow-y: auto;
}
.lang-dropdown-title { padding: 10px 14px 6px; font-size: 10px; text-transform: uppercase; letter-spacing: 2px; color: var(--text-3); font-weight: 700; font-family: 'Barlow Condensed', sans-serif; border-bottom: 1px solid var(--border); }
.lang-opt { display: flex; align-items: center; gap: 10px; width: 100%; background: none; border: none; padding: 9px 14px; font-size: 13px; font-weight: 600; color: var(--text-2); cursor: pointer; text-align: left; transition: background .12s; font-family: inherit; }
.lang-opt:hover { background: var(--bg-3); color: var(--text); }

/* ─── Topbar User Menu ────────────────────────────────────────────────────── */
.topbar-avatar-wrap { position: relative; }
.user-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 220px;
  background: var(--bg-2);
  border: 1px solid var(--border-g);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.6);
  z-index: 200;
  overflow: hidden;
  animation: menu-pop .15s ease;
}
@keyframes menu-pop {
  from { opacity: 0; transform: translateY(-6px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.user-menu.hidden { display: none; }
.user-menu-name { padding: 12px 16px 8px; font-size: 13px; font-weight: 700; color: var(--text); border-bottom: 1px solid var(--border); font-family: 'Barlow Condensed', sans-serif; letter-spacing: .03em; font-size: 15px; }
.user-menu-item { display: flex; align-items: center; gap: 8px; padding: 11px 16px; font-size: 13px; font-weight: 600; color: var(--text-2); cursor: pointer; transition: background .12s; }
.user-menu-item:hover { background: var(--bg-3); color: var(--text); }
.user-menu-item.danger { color: var(--red); }
.user-menu-item.danger:hover { background: rgba(201,68,68,0.1); }
.user-menu-divider { height: 1px; background: var(--border); margin: 4px 0; }

/* ─── Sidebar ─────────────────────────────────────────────────────────────── */
.sidebar {
  width: 240px;
  background: var(--bg-2);
  border-right: 1px solid var(--border-g);
  padding: 0;
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  position: sticky;
  top: 58px;
  height: calc(100vh - 58px);
  overflow-y: auto;
}
.sidebar-header {
  padding: 18px 16px 14px;
  border-bottom: 1px solid var(--border);
  background:
    linear-gradient(135deg, rgba(5,10,5,0.75) 0%, rgba(10,18,10,0.65) 100%),
    url('/public/images/emoto-collage.jpg') center 30% / cover no-repeat;
}
.sidebar-logo { font-family: 'Barlow Condensed', sans-serif; font-size: 14px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; color: #FFFFFF; display: flex; align-items: center; text-shadow: 0 1px 4px rgba(0,0,0,0.4); }
.sidebar-tagline { font-size: 11px; color: var(--lr-gold-lt); margin-top: 2px; font-style: italic; text-shadow: 0 1px 3px rgba(0,0,0,0.4); }
.sidebar-nav { padding: 10px 8px; flex: 1; }
.nav-section { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--text-3); padding: 12px 10px 5px; }
.nav-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; color: var(--text-2); transition: all .15s; margin-bottom: 2px; user-select: none; }
.nav-item:hover { background: var(--bg-3); color: var(--text); }
.nav-item.active { background: rgba(212,170,80,0.25); color: var(--lr-green-lt); border-left: 3px solid var(--lr-green-mid); padding-left: 7px; }
.nav-item .ni { font-size: 16px; width: 20px; text-align: center; }
.sidebar-user { padding: 14px 14px 18px; border-top: 1px solid var(--border); background: rgba(212,170,80,0.06); display: flex; align-items: center; gap: 10px; cursor: pointer; }
.sidebar-user:hover { background: rgba(212,170,80,0.12); }
.sidebar-user-name { font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-user-role { font-size: 10px; color: var(--lr-gold); text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }

/* ─── Home Page / Landing ─────────────────────────────────────────────────── */
.home-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}

/* ── Top Nav ── */
.home-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px;
  height: 64px;
  background: rgba(10,12,9,0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(212,170,80,0.2);
  position: sticky;
  top: 0;
  z-index: 100;
  flex-shrink: 0;
}
.home-nav::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--lr-green) 0%, var(--lr-gold) 50%, var(--lr-green) 100%);
}
.home-nav-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  filter: drop-shadow(0 0 12px rgba(212,170,80,0.5));
}
.home-nav-wordmark {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.hnw-main {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--text);
}
.hnw-sub {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: var(--lr-gold);
  margin-top: 2px;
}
.home-nav-actions { display: flex; align-items: center; gap: 10px; }

/* ── Hero ── */
.home-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}
.home-hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(5,10,5,0.55) 0%, rgba(5,10,5,0.3) 40%, rgba(5,10,5,0.75) 100%),
    url('/public/images/emoto-bike.jpg') center center / cover no-repeat;
}
.home-hero-grid {
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(212,170,80,0.06) 40px, rgba(212,170,80,0.06) 41px),
    repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(212,170,80,0.06) 40px, rgba(212,170,80,0.06) 41px);
  pointer-events: none;
}
.home-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 60px;
  padding: 80px 80px 40px;
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
}
.home-hero-shield {
  flex-shrink: 0;
  filter: drop-shadow(0 0 40px rgba(212,170,80,0.7)) drop-shadow(0 0 80px rgba(212,170,80,0.25));
  animation: shieldPulse 4s ease-in-out infinite;
}
@keyframes shieldPulse {
  0%, 100% { filter: drop-shadow(0 0 40px rgba(212,170,80,0.7)) drop-shadow(0 0 80px rgba(212,170,80,0.25)); }
  50%       { filter: drop-shadow(0 0 60px rgba(212,170,80,0.9)) drop-shadow(0 0 100px rgba(212,170,80,0.4)); }
}
.home-hero-copy { flex: 1; }
.home-hero-eyebrow {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .25em;
  color: var(--lr-gold);
  margin-bottom: 16px;
}
.home-hero-title {
  display: flex;
  flex-direction: column;
  line-height: 0.9;
  margin-bottom: 20px;
}
.hht-line1 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(52px, 8vw, 96px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--text);
}
.hht-line2 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(52px, 8vw, 96px);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--lr-gold);
  text-shadow: 0 0 60px rgba(212,170,80,0.4);
}
.hht-line3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(28px, 4.5vw, 54px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .2em;
  color: var(--lr-green-lt);
}
.home-hero-tagline {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 600;
  font-style: italic;
  color: rgba(255,255,255,0.55);
  letter-spacing: .05em;
  margin-bottom: 32px;
}
.home-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-outline-green {
  background: none;
  border: 2px solid var(--lr-green-mid);
  color: var(--lr-green-lt);
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  cursor: pointer;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .2s;
}
.btn-outline-green:hover { background: rgba(212,170,80,0.2); border-color: var(--lr-green-lt); }

/* Era tabs at hero bottom */
.home-hero-bottom-bar {
  position: relative;
  z-index: 2;
  display: flex;
  border-top: 1px solid rgba(255,255,255,0.07);
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(8px);
  overflow-x: auto;
  scrollbar-width: none;
}
.home-hero-bottom-bar::-webkit-scrollbar { display: none; }
.home-era-tab {
  flex: 1;
  min-width: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 14px 10px;
  border-top: 3px solid var(--ec, var(--lr-green));
  cursor: default;
  transition: background .15s;
}
.home-era-tab:not(:last-child) { border-right: 1px solid rgba(255,255,255,0.06); }
.home-era-tab:hover { background: rgba(255,255,255,0.04); }
.het-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text);
  white-space: nowrap;
}
.het-years {
  font-size: 10px;
  color: rgba(255,255,255,0.35);
  white-space: nowrap;
}

/* ── Photo Strip ── */
.home-photo-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  height: 220px;
  overflow: hidden;
}
.home-photo-tile {
  overflow: hidden;
  display: block;
}
.home-photo-tile img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
  filter: brightness(0.85) saturate(1.1);
}
.home-photo-tile:hover img { transform: scale(1.05); filter: brightness(1) saturate(1.2); }
@media (max-width: 600px) {
  .home-photo-strip { grid-template-columns: repeat(2, 1fr); height: 280px; }
  .home-photo-tile img { height: 140px; }
}

/* ── About / Feature Strip ── */
.home-about {
  background: var(--bg-2);
  border-top: 1px solid var(--border-g);
  border-bottom: 1px solid var(--border-g);
}
.home-about-inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.home-feature {
  padding: 36px 32px;
  border-right: 1px solid var(--border);
  transition: background .2s;
}
.home-feature:last-child { border-right: none; }
.home-feature:hover { background: rgba(212,170,80,0.06); }
.home-feature-icon {
  font-size: 28px;
  margin-bottom: 12px;
}
.home-feature-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--text);
  margin-bottom: 8px;
}
.home-feature-desc {
  font-size: 13px;
  color: var(--text-3);
  line-height: 1.7;
}

/* ── Mission Statement inline in quote band (login page) ── */
.home-quote-mission {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 500;
  font-style: italic;
  color: var(--text-2);
  line-height: 1.7;
  max-width: 760px;
  margin: 0 auto 28px;
  text-align: center;
  letter-spacing: 0.01em;
}
.home-quote-divider {
  width: 60px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--lr-gold), transparent);
  margin: 0 auto 28px;
  border-radius: 2px;
}

/* ── Mission Statement inline in quote block (logged-in home) ── */
.home-dash-mission-inline {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 500;
  font-style: italic;
  color: var(--text-2);
  line-height: 1.75;
  margin-bottom: 14px;
  letter-spacing: 0.01em;
}
.home-dash-quote-divider {
  width: 40px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--lr-gold), transparent);
  margin: 0 0 12px;
  border-radius: 2px;
}

/* ── Quote Band ── */
.home-quote-band {
  background:
    linear-gradient(135deg, rgba(5,10,5,0.78) 0%, rgba(10,18,10,0.72) 100%),
    url('/public/images/emoto-rider.jpg') center 70% / cover no-repeat;
  border-top: 1px solid rgba(212,170,80,0.25);
  border-bottom: 1px solid rgba(212,170,80,0.25);
  padding: 48px 40px;
  text-align: center;
  position: relative;
}
.home-quote-mark {
  font-family: Georgia, serif;
  font-size: 80px;
  color: var(--lr-gold);
  opacity: 0.2;
  line-height: 1;
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
}
.home-quote-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(22px, 4vw, 36px);
  font-weight: 700;
  font-style: italic;
  color: var(--text);
  max-width: 800px;
  margin: 0 auto 14px;
  position: relative;
  z-index: 1;
}
.home-quote-attr {
  font-size: 12px;
  color: var(--lr-gold);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .15em;
  position: relative;
  z-index: 1;
}

/* ── Auth Section ── */
.home-auth-section {
  padding: 64px 20px 80px;
  display: flex;
  justify-content: center;
  background:
    linear-gradient(to bottom, rgba(5,10,5,0.88) 0%, rgba(5,10,5,0.82) 100%),
    url('/public/images/web_IMG_4192.jpeg') center 40% / cover no-repeat;
}
.home-auth-card {
  background: var(--bg-2);
  border: 1px solid var(--border-g);
  border-radius: 16px;
  padding: 40px 40px 36px;
  width: 100%;
  max-width: 480px;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.home-auth-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--lr-green) 0%, var(--lr-gold) 100%);
  border-radius: 16px 16px 0 0;
}
.home-auth-shield {
  text-align: center;
  margin-bottom: 16px;
  filter: drop-shadow(0 0 20px rgba(212,170,80,0.6));
}
.home-auth-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 26px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  text-align: center;
  color: var(--text);
  margin-bottom: 22px;
}

/* ── Auth shared ── */
.auth-tabs { display: flex; background: var(--bg-3); border-radius: 8px; padding: 3px; margin-bottom: 22px; border: 1px solid var(--border); }
.auth-tab { flex: 1; text-align: center; padding: 9px; font-size: 14px; font-weight: 700; cursor: pointer; border-radius: 6px; transition: all .15s; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; font-family: 'Barlow Condensed', sans-serif; }
.auth-tab.active { background: var(--lr-green); color: #fff; }
.auth-link { text-align: center; font-size: 12px; color: var(--text-3); margin-top: 16px; }
.auth-link a { color: var(--lr-gold-lt); }

/* ── Footer ── */
.home-footer {
  background: var(--bg-2);
  border-top: 1px solid var(--border);
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.home-footer-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--text-3);
  opacity: 0.7;
}
.home-footer-copy {
  font-size: 12px;
  color: var(--text-3);
}

/* ── btn-gold ── */
.btn-gold { background: var(--lr-gold); color: #fff; font-family: 'Barlow Condensed', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; border: none; border-radius: 8px; cursor: pointer; transition: all .15s; display: inline-flex; align-items: center; }
.btn-gold:hover { background: var(--lr-gold-lt); box-shadow: 0 4px 20px rgba(212,170,80,0.4); }

/* ── Mobile ── */
@media (max-width: 800px) {
  .home-hero-inner { flex-direction: column; padding: 60px 24px 20px; gap: 32px; text-align: center; }
  .home-hero-shield svg { width: 80px; height: auto; }
  .home-hero-ctas { justify-content: center; }
  .home-about-inner { grid-template-columns: 1fr; }
  .home-feature { border-right: none; border-bottom: 1px solid var(--border); padding: 24px 24px; }
  .home-feature:last-child { border-bottom: none; }
  .home-nav { padding: 0 16px; }
  .home-auth-card { padding: 28px 20px 24px; }
  .home-era-tab { min-width: 90px; padding: 10px 8px; }
  .het-name { font-size: 11px; }
}

/* ─── Buttons ─────────────────────────────────────────────────────────────── */
.btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 18px; border-radius: 8px; border: none; font-size: 13px; font-weight: 700; cursor: pointer; transition: all .15s; font-family: 'Barlow Condensed', sans-serif; letter-spacing: 0.05em; text-transform: uppercase; }
.btn-primary { background: var(--lr-green); color: #fff; border: 1px solid rgba(240,203,110,0.3); }
.btn-primary:hover { background: var(--lr-green-mid); box-shadow: var(--shadow-g); }
.btn-secondary { background: var(--bg-4); color: var(--text); border: 1px solid var(--border-2); }
.btn-secondary:hover { background: var(--bg-3); border-color: var(--border-g); }
.btn-gold { background: var(--lr-gold); color: #fff; }
.btn-gold:hover { background: var(--lr-gold-lt); }
.btn-ghost { background: none; color: var(--text-2); border: 1px solid var(--border); }
.btn-ghost:hover { background: var(--bg-4); color: var(--text); border-color: var(--border-g); }
.btn-danger { background: var(--red); color: #fff; }
.btn-danger:hover { opacity: .85; }
.btn-sm { padding: 6px 12px; font-size: 12px; }
.btn-full { width: 100%; justify-content: center; }
.btn-icon { background: none; border: none; color: var(--text-3); cursor: pointer; font-size: 16px; padding: 5px 7px; border-radius: 6px; transition: all .15s; font-family: inherit; }
.btn-icon:hover { background: var(--bg-4); color: var(--text); }

/* ─── Cards ───────────────────────────────────────────────────────────────── */
.card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; margin-bottom: 14px; }
.card-inset { background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; padding: 14px; margin-bottom: 10px; }

/* ─── Section Titles ──────────────────────────────────────────────────────── */
.section-title { font-family: 'Barlow Condensed', sans-serif; font-size: 24px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 16px; display: flex; align-items: center; gap: 10px; color: var(--text); }
.section-title span { font-family: 'Barlow', sans-serif; font-size: 13px; color: var(--text-3); font-weight: 400; text-transform: none; letter-spacing: 0; }

/* ─── Heritage Banner (feed top) ─────────────────────────────────────────── */
.heritage-banner {
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 18px;
  position: relative;
  border: 1px solid var(--border-g);
  background:
    linear-gradient(to right, rgba(5,10,5,0.82) 0%, rgba(5,10,5,0.5) 50%, rgba(5,10,5,0.7) 100%),
    url('/public/images/web_IMG_1073.JPG') center 60% / cover no-repeat;
}
.heritage-banner::before { display: none; }
.heritage-banner-content {
  position: relative;
  z-index: 1;
  padding: 16px 18px 14px;
}

/* Era strip (scrollable chips) */
.heritage-era-strip {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.heritage-era-strip::-webkit-scrollbar { display: none; }
.heritage-era-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  flex-shrink: 0;
  cursor: default;
  transition: background .15s;
  border-top: 2px solid var(--era-col, var(--lr-green));
}
.heritage-era-chip:hover { background: rgba(255,255,255,0.07); }
.era-chip-label {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text);
  white-space: nowrap;
}
.era-chip-years {
  font-size: 10px;
  color: var(--text-3);
  font-weight: 600;
  white-space: nowrap;
}

/* Quote line */
.heritage-quote-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.heritage-qmark {
  font-family: Georgia, serif;
  font-size: 28px;
  color: var(--lr-gold);
  opacity: 0.7;
  line-height: 1;
  flex-shrink: 0;
}
.heritage-qtext {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  font-style: italic;
  color: rgba(255,255,255,0.8);
  flex: 1;
}
.heritage-qattr {
  font-size: 11px;
  color: var(--lr-gold);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  white-space: nowrap;
}

/* ─── Post Cards ──────────────────────────────────────────────────────────── */
.post-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 14px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.post-card:hover { border-color: var(--border-g); box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.post-card.pinned { border-color: rgba(212,170,80,0.4); }
.post-card.pinned::before {
  content: '📌 PINNED';
  display: block;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--lr-gold);
  background: rgba(212,170,80,0.08);
  padding: 6px 16px;
  border-bottom: 1px solid rgba(212,170,80,0.2);
}
.post-header { display: flex; align-items: center; gap: 10px; padding: 14px 16px 8px; }
.post-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--border-g); }
.post-avatar-placeholder { width: 42px; height: 42px; border-radius: 50%; background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; color: var(--lr-gold-lt); flex-shrink: 0; border: 2px solid var(--border-g); font-family: 'Barlow Condensed', sans-serif; }
.post-meta { flex: 1; min-width: 0; }
.post-author { font-size: 14px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.post-author a { color: var(--text); }
.post-author a:hover { color: var(--lr-gold-lt); }
.post-time { color: var(--text-3); font-weight: 400; font-size: 12px; }
.post-cat { display: inline-flex; align-items: center; font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; padding: 2px 8px; border-radius: 4px; background: rgba(212,170,80,0.2); color: var(--lr-green-lt); border: 1px solid rgba(212,170,80,0.35); }
.post-cat.race { background: rgba(212,170,80,0.15); color: var(--lr-gold-lt); border-color: rgba(212,170,80,0.35); }
.post-cat.build { background: rgba(139,106,58,0.15); color: #d4956a; border-color: rgba(139,106,58,0.3); }
.post-cat.media { background: rgba(80,120,170,0.15); color: #7ab0d4; border-color: rgba(80,120,170,0.3); }
.post-cat.team { background: rgba(150,80,80,0.12); color: #de9090; border-color: rgba(150,80,80,0.25); }
.post-cat.heritage { background: rgba(139,106,58,0.2); color: var(--lr-sand); border-color: rgba(139,106,58,0.4); }
.post-title { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.02em; color: var(--text); margin: 2px 16px 6px; line-height: 1.2; }
.post-body { color: var(--text-2); font-size: 14px; line-height: 1.75; padding: 0 16px 12px; white-space: pre-wrap; }
.post-body.collapsed { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }

/* Media grid */
.post-media-grid { display: grid; gap: 3px; margin-bottom: 12px; }
.post-media-grid.single { grid-template-columns: 1fr; }
.post-media-grid.dual { grid-template-columns: 1fr 1fr; }
.post-media-grid.triple { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.post-media-grid img, .post-media-grid video { width: 100%; height: 100%; object-fit: cover; display: block; cursor: pointer; }
.post-media-grid.single img, .post-media-grid.single video { max-height: 460px; object-fit: contain; background: #000; }
.post-media-grid.triple > :first-child { grid-row: 1/3; }

/* Post actions */
.post-actions { display: flex; align-items: center; gap: 2px; padding: 8px 10px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.post-action-btn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 12px; border-radius: 7px; border: none; background: none; color: var(--text-3); font-size: 13px; font-weight: 600; cursor: pointer; transition: all .15s; font-family: inherit; }
.post-action-btn:hover { background: var(--bg-3); color: var(--text); }
.post-action-btn.liked { color: var(--lr-green-lt); }
.post-actions-right { margin-left: auto; display: flex; gap: 2px; }

/* ─── Emoji Reaction Bar ──────────────────────────────────────────────────── */
.rxn-bar { position: relative; display: inline-flex; align-items: center; flex-direction: column; }
.rxn-main { display: inline-flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.rxn-add-btn { font-size: 18px !important; padding: 5px 9px !important; border-radius: 20px !important; border: 1px solid var(--border) !important; background: var(--bg-2) !important; color: var(--text) !important; transition: transform .12s, background .15s !important; }
.rxn-add-btn:hover { background: var(--bg-3) !important; transform: scale(1.1); }
.rxn-add-btn.liked { border-color: var(--lr-green-lt) !important; background: rgba(120,220,120,0.08) !important; }
.rxn-total { font-size: 11px !important; font-weight: 700; color: var(--text-3); margin-left: 2px; }
.rxn-bubble { display: inline-flex; align-items: center; gap: 3px; padding: 3px 8px; border-radius: 16px; background: var(--bg-2); border: 1px solid var(--border); font-size: 14px; cursor: pointer; transition: all .12s; white-space: nowrap; }
.rxn-bubble:hover { background: var(--bg-3); transform: scale(1.05); }
.rxn-bubble.rxn-mine { border-color: var(--lr-green-lt); background: rgba(120,220,120,0.1); }
.rxn-cnt { font-size: 11px; font-weight: 700; color: var(--text-2); }
.rxn-picker { position: absolute; bottom: calc(100% + 6px); left: 0; display: flex; gap: 4px; padding: 8px 10px; background: var(--bg-1); border: 1px solid var(--border); border-radius: 24px; box-shadow: 0 6px 24px rgba(0,0,0,0.35); z-index: 200; white-space: nowrap; animation: rxnPopIn .12s ease; }
@keyframes rxnPopIn { from { opacity:0; transform: scale(.85) translateY(6px); } to { opacity:1; transform: scale(1) translateY(0); } }
.rxn-pick-btn { font-size: 22px; padding: 5px; border: none; background: none; cursor: pointer; border-radius: 50%; transition: transform .1s, background .1s; }
.rxn-pick-btn:hover { transform: scale(1.3); background: var(--bg-3); }
.rxn-pick-btn.rxn-mine { background: rgba(120,220,120,0.15); }

/* ─── Post timestamp ────────────────────────────────────────────────────────── */
.post-time { cursor: default; }
.comment-time { cursor: default; }

/* ─── Comments ────────────────────────────────────────────────────────────── */
.inline-comments { border-top: 1px solid var(--border); padding: 12px 16px 14px; }
.comment-list-inline { margin-bottom: 0; }
.view-more-comments { margin-bottom: 10px; }
.view-more-comments a { font-size: 13px; font-weight: 700; color: var(--text-3); }
.view-more-comments a:hover { color: var(--lr-green-lt); }
.comments-section { border-top: 1px solid var(--border); padding: 14px 16px; }
.comment { display: flex; gap: 10px; margin-bottom: 12px; }
.comment-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 1px solid var(--border-g); }
.comment-avatar-ph { width: 32px; height: 32px; border-radius: 50%; background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: var(--lr-gold-lt); flex-shrink: 0; font-family: 'Barlow Condensed', sans-serif; }
.comment-bubble { background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; flex: 1; min-width: 0; }
.comment-name { font-size: 13px; font-weight: 700; margin-bottom: 3px; font-family: 'Barlow Condensed', sans-serif; letter-spacing: .03em; }
.comment-body { font-size: 13px; color: var(--text-2); white-space: pre-wrap; line-height: 1.6; }
.comment-meta { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 11px; color: var(--text-3); }
.comment-input-row { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; }
.comment-input { flex: 1; background: var(--bg-3); border: 1px solid var(--border); border-radius: 18px; padding: 9px 14px; color: var(--text); font-size: 13px; font-family: inherit; resize: none; outline: none; transition: border .15s; min-height: 38px; max-height: 120px; overflow-y: auto; line-height: 1.5; }
.comment-input:focus { border-color: var(--border-g); box-shadow: 0 0 0 3px rgba(212,170,80,0.1); }

/* ─── New Post Box ────────────────────────────────────────────────────────── */
.new-post-box { background: var(--bg-card); border: 1px solid var(--border-g); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 16px; }
.new-post-row { display: flex; gap: 10px; align-items: center; }
.new-post-input { flex: 1; background: var(--bg-3); border: 1px solid var(--border); border-radius: 22px; padding: 10px 18px; color: var(--text-2); font-size: 14px; cursor: pointer; transition: all .15s; font-style: italic; }
.new-post-input:hover { border-color: var(--border-g); color: var(--text); }

/* Category filter */
.feed-sort-row { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.feed-sort-btns { display: flex; gap: 4px; flex-shrink: 0; align-items: center; }
.feed-sort-btn { padding: 5px 11px; border-radius: 6px; border: 1px solid var(--border-2); background: var(--bg-3); color: var(--text-2); font-size: 11px; font-weight: 700; cursor: pointer; transition: all .15s; white-space: nowrap; }
.feed-sort-btn:hover, .feed-sort-btn.active { background: var(--lr-gold); border-color: var(--lr-gold); color: #fff; }
.cat-filter { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 0; }
.cat-pill { padding: 5px 14px; border-radius: 6px; border: 1px solid var(--border-2); background: var(--bg-3); color: var(--text-2); font-size: 12px; font-weight: 700; cursor: pointer; transition: all .15s; font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.cat-pill:hover, .cat-pill.active { background: var(--lr-green); border-color: var(--lr-green); color: #fff; }

/* ─── Forms ───────────────────────────────────────────────────────────────── */
.field { margin-bottom: 14px; }
.field label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--text-3); margin-bottom: 6px; font-family: 'Barlow Condensed', sans-serif; }
.field input, .field textarea, .field select { width: 100%; background: var(--bg-3); border: 1px solid var(--border-2); border-radius: 8px; padding: 10px 12px; color: var(--text); font-size: 14px; font-family: inherit; outline: none; transition: border .15s; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: rgba(212,170,80,0.6); box-shadow: 0 0 0 3px rgba(212,170,80,0.1); }
.field textarea { resize: vertical; min-height: 90px; line-height: 1.6; }
.field select option { background: var(--bg-3); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-error { color: #f87171; font-size: 13px; margin-top: 4px; }
.form-hint { color: var(--text-3); font-size: 11px; margin-top: 3px; }

/* ─── Form utilities (used in modals) ───────────────────────────────────── */
.form-group { margin-bottom: 14px; }
.form-label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--text-3); margin-bottom: 6px; font-family: 'Barlow Condensed', sans-serif; }
.form-control { width: 100%; background: var(--bg-3); border: 1px solid var(--border-2); border-radius: 8px; padding: 10px 12px; color: var(--text); font-size: 14px; font-family: inherit; outline: none; transition: border .15s; resize: vertical; }
.form-control:focus { border-color: rgba(74,124,69,.7); box-shadow: 0 0 0 3px rgba(74,124,69,.1); }
.form-control option { background: var(--bg-3); }
textarea.form-control { min-height: 80px; line-height: 1.65; }

/* ─── Modal ───────────────────────────────────────────────────────────────── */
.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.75); z-index: 200; backdrop-filter: blur(6px); }
.modal-box { position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 201; background: var(--bg-2); border: 1px solid var(--border-g); border-radius: 14px; width: 92%; max-width: 660px; max-height: 92vh; overflow-y: auto; box-shadow: var(--shadow); }
.modal-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--lr-green) 0%, var(--lr-gold) 100%); border-radius: 14px 14px 0 0; }
.modal-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 20px 14px; border-bottom: 1px solid var(--border); }
.modal-title { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.modal-body { padding: 20px; }
.modal-footer { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border); }
.hidden { display: none !important; }

/* Post Composer */
.composer-textarea { width: 100%; background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; color: var(--text); font-size: 14px; font-family: inherit; resize: vertical; min-height: 100px; line-height: 1.75; outline: none; transition: border .15s; }
.composer-textarea:focus { border-color: var(--border-g); }
.composer-actions { display: flex; align-items: center; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.media-preview { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; padding: 4px 0; }

/* Staged upload item — shown in the composer before posting */
.upload-staged-item {
  position: relative;
  width: 100px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--bg-3);
  border: 1px solid var(--border-g);
  display: flex;
  flex-direction: column;
}
.upload-staged-thumb { width: 100%; height: 80px; object-fit: cover; display: block; }
.upload-staged-name { font-size: 10px; color: var(--text-3); padding: 4px 6px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.upload-staged-badge {
  font-size: 10px; font-weight: 800; font-family: 'Barlow Condensed', sans-serif;
  text-transform: uppercase; letter-spacing: .05em;
  color: #4ade80; padding: 3px 6px 5px; opacity: .9;
}
.upload-staged-remove {
  position: absolute; top: 4px; right: 4px;
  background: rgba(0,0,0,0.75); border: none; color: #fff;
  width: 18px; height: 18px; border-radius: 50%; font-size: 10px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.upload-staged-remove:hover { background: var(--red); }

/* Ready-to-upload summary bar */
.upload-ready-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #4ade80;
  font-weight: 700;
  padding: 5px 2px 2px;
}
.upload-ready-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #4ade80;
  animation: readyPulse 1.4s ease-in-out infinite;
  flex-shrink: 0;
}
.upload-ready-note { color: var(--text-3); font-weight: 400; }
@keyframes readyPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .4; transform: scale(.7); }
}

/* Legacy small preview items (marketplace / trail) */
.media-preview-item { position: relative; width: 80px; height: 80px; border-radius: 8px; overflow: hidden; }
.media-preview-item img, .media-preview-item video { width: 100%; height: 100%; object-fit: cover; }
.media-preview-item .remove { position: absolute; top: 3px; right: 3px; background: rgba(0,0,0,0.8); border: none; color: #fff; width: 18px; height: 18px; border-radius: 50%; font-size: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; }

/* ─── Members ─────────────────────────────────────────────────────────────── */
.member-count-banner { background: linear-gradient(135deg, rgba(212,170,80,0.25) 0%, rgba(212,170,80,0.12) 100%); border: 1px solid rgba(240,203,110,0.3); border-radius: var(--radius); padding: 20px 24px; margin-bottom: 16px; text-align: center; position: relative; overflow: hidden; }
.member-count-banner::before { content: ''; position: absolute; inset: 0; background: url('/public/images/emoto-collage.jpg') center / cover no-repeat; opacity: 0.08; }
.member-count-number { font-family: 'Barlow Condensed', sans-serif; font-size: 64px; font-weight: 900; color: var(--lr-gold-lt); line-height: 1; position: relative; text-shadow: 0 4px 20px rgba(212,170,80,0.3); }
.member-count-label { font-family: 'Barlow Condensed', sans-serif; font-size: 14px; font-weight: 700; color: var(--lr-green-lt); text-transform: uppercase; letter-spacing: .12em; position: relative; margin-top: 2px; }
.member-count-sub { font-size: 12px; color: var(--text-3); position: relative; margin-top: 6px; }
.members-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.member-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 14px; text-align: center; cursor: pointer; transition: all .2s; }
.member-card:hover { border-color: var(--border-g); box-shadow: var(--shadow-g); transform: translateY(-2px); }
.member-avatar-lg { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; display: block; border: 3px solid var(--border-g); }
.member-avatar-ph { width: 68px; height: 68px; border-radius: 50%; background: rgba(212,170,80,0.25); display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 900; color: var(--lr-gold-lt); margin: 0 auto 10px; border: 3px solid var(--border-g); font-family: 'Barlow Condensed', sans-serif; }
.member-name { font-family: 'Barlow Condensed', sans-serif; font-size: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 2px; }
.member-sub { font-size: 12px; color: var(--text-3); }
.role-badge { display: inline-block; font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; background: rgba(212,170,80,0.2); color: var(--lr-green-lt); border: 1px solid rgba(212,170,80,0.3); text-transform: uppercase; letter-spacing: .08em; margin-top: 6px; }
.role-badge.admin { background: rgba(212,170,80,0.15); color: var(--lr-gold-lt); border-color: rgba(212,170,80,0.35); }
.role-badge.contributor { background: rgba(100,100,120,0.15); color: var(--text-3); border-color: rgba(100,100,120,0.25); }

/* ─── Competed Badge ──────────────────────────────────────────────────────── */
.competed-badge { display: inline-flex; align-items: center; gap: 3px; font-family: 'Barlow Condensed', sans-serif; font-size: 11px; font-weight: 800; padding: 2px 7px; border-radius: 4px; background: linear-gradient(135deg, rgba(212,170,80,0.25), rgba(212,170,80,0.15)); color: var(--lr-gold-lt); border: 1px solid rgba(212,170,80,0.45); text-transform: uppercase; letter-spacing: .08em; vertical-align: middle; margin-left: 5px; white-space: nowrap; }
.competed-badge-sm { display: inline-block; font-family: 'Barlow Condensed', sans-serif; font-size: 10px; font-weight: 800; padding: 2px 6px; border-radius: 4px; background: linear-gradient(135deg, rgba(212,170,80,0.25), rgba(212,170,80,0.15)); color: var(--lr-gold-lt); border: 1px solid rgba(212,170,80,0.45); text-transform: uppercase; letter-spacing: .06em; margin-top: 5px; }
.competed-badge-profile { display: inline-flex; align-items: center; gap: 4px; font-family: 'Barlow Condensed', sans-serif; font-size: 14px; font-weight: 800; padding: 3px 10px; border-radius: 6px; background: linear-gradient(135deg, rgba(212,170,80,0.3), rgba(212,170,80,0.18)); color: var(--lr-gold-lt); border: 1px solid rgba(212,170,80,0.5); text-transform: uppercase; letter-spacing: .07em; vertical-align: middle; margin-left: 8px; box-shadow: 0 2px 8px rgba(212,170,80,0.15); }
.btn-competed { background: linear-gradient(135deg, #B8943B, #8B6A2A); color: #fff; border: 1px solid rgba(212,170,80,0.6); font-weight: 700; }
.btn-competed:hover { background: linear-gradient(135deg, #D4AA50, #B8943B); }

/* ─── Marketplace ─────────────────────────────────────────────────────────── */
.mkt-header { margin-bottom: 16px; }
.mkt-search-bar { margin-bottom: 10px; }
.mkt-search-bar input { width: 100%; background: var(--bg-3); border: 1px solid var(--border); border-radius: 20px; padding: 9px 16px; color: var(--text); font-size: 14px; outline: none; }
.mkt-search-bar input:focus { border-color: var(--lr-green-lt); }
.mkt-cats { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
.mkt-cat-btn { background: var(--bg-3); border: 1px solid var(--border); border-radius: 16px; padding: 5px 13px; font-size: 12px; font-weight: 600; color: var(--text-2); cursor: pointer; transition: all .15s; white-space: nowrap; }
.mkt-cat-btn:hover { border-color: var(--border-2); color: var(--text); }
.mkt-cat-btn.active { background: var(--lr-green); color: #fff; border-color: var(--lr-green); }
.mkt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.mkt-loading { grid-column: 1/-1; text-align: center; padding: 40px; color: var(--text-3); }
.mkt-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; cursor: pointer; transition: all .2s; }
.mkt-card:hover { border-color: var(--border-g); box-shadow: var(--shadow-g); transform: translateY(-2px); }
.mkt-card-img { position: relative; aspect-ratio: 1; background: var(--bg-3); }
.mkt-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mkt-no-img { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 32px; color: var(--text-3); background: var(--bg-3); }
.mkt-sold-badge { position: absolute; top: 8px; left: 8px; background: var(--red); color: #fff; font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 4px; text-transform: uppercase; letter-spacing: .06em; }

/* External listings section */
.mkt-ext-section { margin-top: 32px; }
.mkt-ext-header  { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--border-g); }
.mkt-ext-title   { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; color: var(--text); }
.mkt-ext-sub     { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.mkt-ext-card    { text-decoration: none; color: inherit; display: block; }
.mkt-ext-card:hover { border-color: var(--lr-gold) !important; }
.mkt-ext-source-badge { position: absolute; top: 8px; left: 8px; background: rgba(10,12,9,0.82); color: var(--lr-gold-lt); font-size: 9px; font-weight: 800; padding: 2px 7px; border-radius: 4px; text-transform: uppercase; letter-spacing: .06em; backdrop-filter: blur(3px); }

/* Quick-search links grid (shown while eBay key pending) */
.mkt-ext-search-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.mkt-ext-link { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; text-decoration: none; color: var(--text); transition: border-color .15s, background .15s; }
.mkt-ext-link:hover { border-color: var(--lr-gold); background: var(--bg-3); }
.mkt-ext-link-icon { font-size: 24px; flex-shrink: 0; }
.mkt-ext-link strong { font-size: 13px; font-weight: 700; display: block; }
.mkt-ext-link div > div { font-size: 11px; color: var(--text-3); margin-top: 2px; }
@media (max-width: 600px) { .mkt-ext-search-links { grid-template-columns: 1fr 1fr; } }
.mkt-cat-tag { position: absolute; bottom: 6px; right: 6px; background: rgba(10,12,9,0.75); color: var(--text-2); font-size: 10px; padding: 2px 7px; border-radius: 4px; text-transform: capitalize; }
.mkt-card-body { padding: 10px 12px 12px; }
.mkt-price { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 900; color: var(--lr-gold-lt); line-height: 1; }
.mkt-title { font-size: 13px; font-weight: 600; color: var(--text); margin: 4px 0 2px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mkt-loc { font-size: 11px; color: var(--text-3); margin-top: 2px; }
.mkt-meta { font-size: 11px; color: var(--text-3); margin-top: 4px; }
/* Listing modal */
.mkt-modal-photos { margin-bottom: 4px; }
.mkt-photo-main { border-radius: 8px; overflow: hidden; background: var(--bg-3); }
.mkt-photo-main img { width: 100%; max-height: 320px; object-fit: contain; display: block; background: var(--bg-3); }
.mkt-photo-thumbs { display: flex; gap: 6px; margin-top: 6px; overflow-x: auto; padding-bottom: 2px; }
.mkt-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: 6px; border: 2px solid transparent; cursor: pointer; flex-shrink: 0; }
.mkt-thumb.active { border-color: var(--lr-green-lt); }
.mkt-modal-price { font-family: 'Barlow Condensed', sans-serif; font-size: 28px; font-weight: 900; color: var(--lr-gold-lt); line-height: 1; }
.mkt-tag { display: inline-block; background: var(--bg-3); border: 1px solid var(--border); border-radius: 12px; padding: 3px 10px; font-size: 12px; color: var(--text-2); text-transform: capitalize; }
.mkt-seller-card { display: flex; align-items: center; gap: 12px; background: var(--bg-3); border: 1px solid var(--border-g); border-radius: 10px; padding: 12px 14px; }
.mkt-seller-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--border-g); }
.mkt-seller-avatar.placeholder { display: flex; align-items: center; justify-content: center; background: rgba(212,170,80,0.3); color: var(--lr-gold-lt); font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 900; }
.mkt-seller-info { flex: 1; min-width: 0; }
@media (max-width: 600px) { .mkt-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; } }

/* ─── Verified Check (blue, X/IG style) ──────────────────────────────────── */
.verified-check { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: #3b82f6; color: #fff; font-size: 9px; font-weight: 900; font-style: normal; vertical-align: middle; margin-left: 3px; line-height: 1; flex-shrink: 0; box-shadow: 0 1px 4px rgba(59,130,246,0.5); }
.verified-check-lg { width: 20px; height: 20px; font-size: 11px; margin-left: 5px; box-shadow: 0 2px 8px rgba(59,130,246,0.45); }

/* ─── Profile ─────────────────────────────────────────────────────────────── */
.profile-hero { background: var(--bg-card); border: 1px solid var(--border-g); border-radius: var(--radius); overflow: hidden; margin-bottom: 16px; }
.profile-hero-banner { height: 120px; background: linear-gradient(135deg, var(--lr-green) 0%, #1A1A1A 50%, #0A0A0A 100%); position: relative; overflow: hidden; }
.profile-hero-banner img { width: 100%; height: 100%; object-fit: cover; opacity: 0.5; }
.profile-hero-body { padding: 0 24px 20px; display: flex; gap: 18px; align-items: flex-end; flex-wrap: wrap; }
.profile-avatar-xl { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; border: 4px solid var(--bg-2); margin-top: -45px; flex-shrink: 0; }
.profile-avatar-ph { width: 90px; height: 90px; border-radius: 50%; background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 900; color: var(--lr-gold-lt); border: 4px solid var(--bg-2); margin-top: -45px; flex-shrink: 0; font-family: 'Barlow Condensed', sans-serif; }
.profile-avatar-edit-wrap { position: relative; width: 90px; flex-shrink: 0; margin-top: -45px; cursor: pointer; }
.profile-avatar-edit-wrap .profile-avatar-xl,
.profile-avatar-edit-wrap .profile-avatar-ph { margin-top: 0; width: 90px; height: 90px; }
.profile-avatar-cam { position: absolute; bottom: 2px; right: 2px; width: 26px; height: 26px; border-radius: 50%; background: var(--lr-green); border: 2px solid var(--bg-2); display: flex; align-items: center; justify-content: center; font-size: 13px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transition: transform .15s; }
.profile-avatar-edit-wrap:hover .profile-avatar-cam { transform: scale(1.15); }
.profile-avatar-edit-wrap:hover .profile-avatar-xl { border-color: var(--lr-green-lt); }
.profile-info { flex: 1; padding-top: 12px; }
.profile-name { font-family: 'Barlow Condensed', sans-serif; font-size: 24px; font-weight: 900; text-transform: uppercase; letter-spacing: .03em; }
.profile-handle { font-size: 13px; color: var(--text-3); }
.profile-bio { font-size: 14px; color: var(--text-2); margin-top: 8px; line-height: 1.6; }
.profile-details { display: flex; gap: 16px; margin-top: 8px; flex-wrap: wrap; }
.profile-detail { font-size: 12px; color: var(--text-3); }
.profile-stats { display: flex; gap: 24px; margin-top: 12px; }
.profile-stat-n { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 800; color: var(--lr-gold-lt); }
.profile-stat-l { font-size: 11px; color: var(--text-3); text-transform: uppercase; letter-spacing: .07em; }

/* ─── Admin ───────────────────────────────────────────────────────────────── */
.admin-tabs { display: flex; gap: 6px; margin-bottom: 20px; flex-wrap: wrap; }
.admin-tab { padding: 7px 16px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg-3); color: var(--text-2); font-size: 13px; font-weight: 700; cursor: pointer; transition: all .15s; font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .05em; }
.admin-tab.active { background: var(--lr-green); border-color: var(--lr-green); color: #fff; }
.admin-table { width: 100%; border-collapse: collapse; }
.admin-table th { text-align: left; font-family: 'Barlow Condensed', sans-serif; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--text-3); padding: 8px 12px; border-bottom: 1px solid var(--border); }
.admin-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 13px; vertical-align: middle; }
.admin-table tr:hover td { background: var(--bg-3); }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; margin-bottom: 20px; }
.stat-card { background: var(--bg-3); border: 1px solid var(--border-g); border-radius: 10px; padding: 16px; }
.stat-n { font-family: 'Barlow Condensed', sans-serif; font-size: 30px; font-weight: 900; color: var(--lr-gold-lt); }
.stat-l { font-size: 11px; color: var(--text-3); margin-top: 2px; text-transform: uppercase; letter-spacing: .07em; font-family: 'Barlow Condensed', sans-serif; }

/* ─── Toast ───────────────────────────────────────────────────────────────── */
.toast { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: var(--bg-4); border: 1px solid var(--border-g); border-radius: 10px; padding: 12px 22px; font-size: 13px; font-weight: 700; z-index: 300; max-width: 340px; text-align: center; box-shadow: var(--shadow); transition: opacity .3s; pointer-events: none; font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .05em; }
.toast.error { border-color: rgba(201,68,68,0.4); color: #f87171; }
.toast.success { border-color: var(--border-g); color: var(--lr-green-lt); }

/* ─── Right Rail ──────────────────────────────────────────────────────────── */
.rail-section { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; margin-bottom: 14px; }
.rail-title { font-family: 'Barlow Condensed', sans-serif; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--text-3); margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom: 8px; }
.rail-member { display: flex; align-items: center; gap: 9px; padding: 6px 0; cursor: pointer; transition: opacity .15s; }
.rail-member:hover { opacity: .8; }
.rail-member img, .rail-member .rail-member-ph { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 1px solid var(--border-g); }
.rail-member-ph { background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: var(--lr-gold-lt); font-family: 'Barlow Condensed', sans-serif; }
.rail-member-name { font-size: 13px; font-weight: 700; }
.rail-member-sub { font-size: 11px; color: var(--text-3); }

/* Heritage quote */
.lr-quote { background: linear-gradient(135deg, rgba(212,170,80,0.15) 0%, rgba(212,170,80,0.08) 100%); border: 1px solid var(--border-g); border-left: 3px solid var(--lr-gold); border-radius: 8px; padding: 14px 16px; margin-bottom: 14px; }
.lr-quote-text { font-family: 'Barlow Condensed', sans-serif; font-size: 17px; font-weight: 700; color: var(--text); font-style: italic; line-height: 1.4; }
.lr-quote-attr { font-size: 11px; color: var(--lr-gold); font-weight: 600; margin-top: 6px; text-transform: uppercase; letter-spacing: .08em; }

/* Rail quote card */
.rail-quote-card {
  background: linear-gradient(135deg, rgba(212,170,80,0.18) 0%, rgba(212,170,80,0.06) 100%);
  border: 1px solid rgba(212,170,80,0.25);
  border-left: 3px solid var(--lr-gold);
  border-radius: var(--radius);
  padding: 14px 16px;
  margin-bottom: 14px;
  position: relative;
}
.rail-quote-mark {
  font-family: Georgia, serif;
  font-size: 36px;
  color: var(--lr-gold);
  opacity: 0.4;
  line-height: 1;
  position: absolute;
  top: 8px;
  left: 12px;
}
.rail-quote-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 15px;
  font-weight: 700;
  font-style: italic;
  color: var(--text);
  line-height: 1.4;
  padding-top: 10px;
}
.rail-quote-attr {
  font-size: 10px;
  color: var(--lr-gold);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-top: 8px;
}

/* Rail heritage spotlight card */
.rail-heritage-card {
  background: linear-gradient(135deg, color-mix(in srgb, var(--heritage-col, var(--lr-green)) 18%, transparent) 0%, rgba(10,12,9,0) 100%);
  border: 1px solid rgba(255,255,255,0.08);
  border-top: 3px solid var(--heritage-col, var(--lr-green));
  border-radius: var(--radius);
  padding: 14px 16px;
  margin-bottom: 14px;
}
.rail-heritage-era {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 18px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text);
  line-height: 1;
}
.rail-heritage-years {
  font-size: 11px;
  color: var(--lr-gold);
  font-weight: 600;
  margin: 4px 0 8px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.rail-heritage-desc {
  font-size: 12px;
  color: var(--text-2);
  line-height: 1.6;
  font-style: italic;
}

/* ─── Settings ────────────────────────────────────────────────────────────── */
.settings-section { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-bottom: 14px; }
.settings-section h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }

/* ─── Divider ─────────────────────────────────────────────────────────────── */
.divider { border: none; border-top: 1px solid var(--border); margin: 16px 0; }

/* ─── Toggle ──────────────────────────────────────────────────────────────── */
.toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; }
.toggle-row label { font-size: 14px; }
.toggle { position: relative; width: 42px; height: 24px; flex-shrink: 0; }
.toggle input { opacity: 0; width: 0; height: 0; }
.toggle-slider { position: absolute; inset: 0; background: var(--bg-4); border: 1px solid var(--border-2); border-radius: 24px; cursor: pointer; transition: .2s; }
.toggle-slider::before { content: ''; position: absolute; width: 18px; height: 18px; left: 2px; top: 2px; background: var(--text-3); border-radius: 50%; transition: .2s; }
.toggle input:checked + .toggle-slider { background: var(--lr-green); border-color: var(--lr-green); }
.toggle input:checked + .toggle-slider::before { transform: translateX(18px); background: #fff; }

/* ─── Lightbox ────────────────────────────────────────────────────────────── */
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,0.96); z-index: 500; display: flex; align-items: center; justify-content: center; }
.lightbox img, .lightbox video { max-width: 92vw; max-height: 92vh; object-fit: contain; border-radius: 6px; }
.lightbox-close { position: absolute; top: 20px; right: 20px; font-size: 28px; color: #fff; cursor: pointer; background: none; border: none; }

/* ─── Empty State ─────────────────────────────────────────────────────────── */
.empty-state { text-align: center; padding: 60px 20px; color: var(--text-3); }
.empty-state .empty-icon { font-size: 52px; margin-bottom: 14px; opacity: .4; display: block; }
.empty-state h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 18px; font-weight: 800; color: var(--text-2); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }

/* ─── Share Panel ────────────────────────────────────────────────────────── */
.share-panel { padding: 0 16px 16px; }
.share-panel-inner { background: var(--bg-3); border: 1px solid var(--border-g); border-radius: 12px; padding: 16px; position: relative; }
.share-panel-title { font-family: 'Barlow Condensed', sans-serif; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--text-2); margin-bottom: 12px; }
.share-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.share-btn { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 8px; font-size: 13px; font-weight: 700; border: none; cursor: pointer; text-decoration: none; transition: opacity .15s; }
.share-btn:hover { opacity: .85; }
.share-fb   { background: #1877F2; color: #fff; }
.share-x    { background: #000; color: #fff; }
.share-wa   { background: #25D366; color: #fff; }
.share-copy { background: var(--bg-4); color: var(--text); border: 1px solid var(--border-2); }
.share-close { position: absolute; top: 10px; right: 12px; background: none; border: none; color: var(--text-3); font-size: 16px; cursor: pointer; padding: 2px 6px; }
.share-close:hover { color: var(--text); }

/* ─── Direct Messages ────────────────────────────────────────────────────── */
.dm-shell { display: flex; height: calc(100vh - 162px); gap: 0; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: var(--bg-card); }
.dm-list { width: 280px; flex-shrink: 0; border-right: 1px solid var(--border); overflow-y: auto; display: flex; flex-direction: column; }
.dm-list-header { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg-card); z-index: 1; }
.dm-thread-item { display: flex; align-items: center; gap: 10px; padding: 12px 16px; cursor: pointer; border-bottom: 1px solid var(--border); transition: background .15s; }
.dm-thread-item:hover { background: var(--bg-3); }
.dm-thread-item.active { background: rgba(212,170,80,0.15); border-right: 3px solid var(--lr-green); }
.dm-thread-info { flex: 1; min-width: 0; }
.dm-thread-name { font-size: 13px; font-weight: 700; }
.dm-thread-preview { font-size: 12px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dm-avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 1px solid var(--border-g); }
.dm-avatar.placeholder { background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; color: var(--lr-gold-lt); font-family: 'Barlow Condensed', sans-serif; }
.dm-chat { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.dm-chat-header { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border); }
.dm-messages { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.dm-msg { display: flex; align-items: flex-end; gap: 8px; }
.dm-msg.mine { flex-direction: row-reverse; }
.dm-msg-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.dm-msg-avatar.placeholder { background: rgba(212,170,80,0.3); display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; color: var(--lr-gold-lt); font-family: 'Barlow Condensed', sans-serif; }
.dm-bubble { max-width: 70%; background: var(--bg-3); border: 1px solid var(--border); border-radius: 16px 16px 16px 4px; padding: 9px 13px; font-size: 13px; line-height: 1.5; word-break: break-word; }
.dm-msg.mine .dm-bubble { background: var(--lr-green); border-color: var(--lr-green); color: #fff; border-radius: 16px 16px 4px 16px; }
.dm-time { display: block; font-size: 10px; opacity: .5; margin-top: 4px; }
.dm-input-row { display: flex; align-items: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); }
.dm-empty-state { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--text-3); font-size: 14px; }
.dm-chat-loading { flex: 1; display: flex; align-items: center; justify-content: center; }
@media (max-width: 700px) {
  .dm-shell { height: calc(100vh - 162px); flex-direction: column; }
  .dm-list { width: 100%; height: auto; max-height: 35vh; min-height: 80px; border-right: none; border-bottom: 1px solid var(--border); flex-shrink: 0; }
  .dm-chat { flex: 1; min-height: 0; }
  .dm-chat-header { padding: 10px 14px; }
  .dm-input-row { padding: 8px 12px; }
}

/* ─── YouTube Embed ──────────────────────────────────────────────────────── */
.yt-embed-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  margin: 10px 0 4px;
}
.yt-embed-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* ─── Members filter bar ──────────────────────────────────────────────────── */
.members-filter-bar {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 14px 12px;
  margin: 0 0 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.mem-search-input {
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 14px;
}
.mem-search-input:focus { outline: none; border-color: var(--lr-green-lt); }
.mem-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.mem-filter-select {
  flex: 1 1 160px;
  min-width: 140px;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
}
.mem-filter-select:hover { border-color: var(--lr-green-lt); }
/* Open-menu options: browsers render the popup with a white background, so force black text */
.mem-filter-select option {
  color: #000;
  background: #fff;
}
.mem-result-count { font-size: 12px; color: var(--text-3); }

/* ─── What's New banner (home dash) ───────────────────────────────────────── */
.whats-new-banner {
  background: linear-gradient(140deg, rgba(212,170,80,.06), rgba(74,124,69,.04));
  border: 1px solid rgba(212,170,80,0.35);
  border-radius: 14px;
  padding: 22px 22px 18px;
  margin: 0 0 22px;
}
.whats-new-header { text-align:center; margin-bottom: 18px; }
.whats-new-pill {
  display:inline-block; padding:5px 14px; background:#B8943B; color:#0A0C09;
  font-size:11px; font-weight:900; letter-spacing:2px; text-transform:uppercase;
  border-radius:20px; margin-bottom:10px;
}
.whats-new-title { font-size:22px; font-weight:900; color:var(--text); letter-spacing:.5px; }
.whats-new-subtitle { font-size:13px; color:var(--text-3); margin-top:4px; }
.whats-new-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.whats-new-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, transform .15s, background .2s;
}
.whats-new-item:hover {
  border-color: var(--lr-gold-lt);
  transform: translateY(-1px);
  background: rgba(212,170,80,0.06);
}
.wn-icon { font-size: 24px; flex-shrink:0; line-height:1; }
.wn-body { flex: 1; min-width: 0; }
.wn-h { font-size: 14px; font-weight: 800; color: var(--text); margin-bottom: 3px; }
.wn-d { font-size: 12px; color: var(--text-2); line-height: 1.45; }

/* ─── Blog ────────────────────────────────────────────────────────────────── */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
  margin-top: 14px;
}
.blog-card {
  display: flex;
  flex-direction: column;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: border-color .2s, transform .15s;
}
.blog-card:hover { border-color: var(--lr-green-lt); transform: translateY(-2px); }
.blog-card-img {
  width: 100%; aspect-ratio: 16/9; background: var(--bg-4); overflow: hidden;
}
.blog-card-img img { width:100%; height:100%; object-fit:cover; display:block; }
.blog-card-body { padding: 14px 16px 16px; display:flex; flex-direction:column; gap:6px; }
.blog-card-cat { font-size:11px; color: var(--lr-gold-lt); font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.blog-card-title { font-size:17px; font-weight:800; line-height:1.3; color: var(--text); }
.blog-card-subtitle { font-size:13px; color: var(--text-2); line-height:1.45;
  display: -webkit-box; -webkit-line-clamp:3; -webkit-box-orient: vertical; overflow:hidden; }
.blog-card-meta { font-size:11px; color: var(--text-3); margin-top: 6px; }

.blog-detail-img { width:100%; aspect-ratio: 21/9; overflow: hidden; border-radius: 12px; margin-bottom: 18px; }
.blog-detail-img img { width:100%; height:100%; object-fit: cover; }
.blog-detail-cat { font-size:12px; color: var(--lr-gold-lt); font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.blog-detail-title { font-size:32px; font-weight:800; line-height:1.2; color: var(--text); margin: 0 0 14px; }
.blog-detail-subtitle { font-size:18px; color: var(--text-2); line-height:1.5; margin: 0 0 14px; font-weight:400; }
.blog-detail-meta { font-size:13px; color: var(--text-3); border-bottom: 1px solid var(--border); padding-bottom: 14px; margin-bottom: 22px; }
.blog-detail-body { font-size:16px; color: var(--text); line-height:1.7; }
.blog-detail-body h2 { font-size:23px; font-weight:800; margin: 32px 0 12px; color: var(--text); }
.blog-detail-body h3 { font-size:18px; font-weight:700; margin: 22px 0 8px; color: var(--text); }
.blog-detail-body p  { margin: 0 0 14px; }
.blog-detail-body ul,
.blog-detail-body ol { margin: 0 0 16px; padding-left: 24px; }
.blog-detail-body li { margin-bottom: 6px; line-height: 1.6; }
.blog-detail-body a  { color: var(--lr-green-lt); text-decoration: underline; }
.blog-detail-body strong { color: var(--text); font-weight:800; }
.blog-detail-body table { width:100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
.blog-detail-body table th,
.blog-detail-body table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--border); }
@media (max-width: 600px) {
  .blog-detail-title { font-size:25px; }
  .blog-detail-subtitle { font-size:16px; }
  .blog-detail-body { font-size:15px; }
}

/* ─── Trail Member Trip Photos ──────────────────────────────────────────── */
.trail-member-photos-section {
  margin: 16px 0 8px;
  padding: 14px 0;
  border-top: 1px solid var(--border);
}
.trail-mp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  margin: 10px 0 14px;
}
.trail-mp-card {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface-2);
  border: 1px solid var(--border);
}
.trail-mp-card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
  cursor: pointer;
}
.trail-mp-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 8px;
  font-size: 11px;
  background: rgba(0,0,0,0.3);
}
.trail-mp-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.trail-mp-avatar.placeholder {
  background: rgba(74,124,69,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--lr-green-lt);
  font-size: 9px;
}
.trail-mp-name {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--text-2);
}
.trail-mp-del {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: none;
  background: rgba(201,68,68,0.85);
  color: #fff;
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.trail-mp-empty {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--text-3);
  font-size: 13px;
  padding: 16px 0;
}
.trail-mp-upload {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* ─── Link Preview Card ──────────────────────────────────────────────────── */
.link-preview-card {
  display: flex;
  align-items: stretch;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  margin: 8px 0 4px;
  background: var(--surface-2);
  position: relative;
  transition: border-color .2s;
}
.link-preview-card:hover { border-color: var(--lr-green-lt); }
.link-preview-img {
  width: 110px;
  min-height: 80px;
  object-fit: cover;
  flex-shrink: 0;
}
.link-preview-body {
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.link-preview-domain {
  font-size: 11px;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.link-preview-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  line-clamp: 2;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.link-preview-desc {
  font-size: 12px;
  color: var(--text-2);
  line-clamp: 2;
  -webkit-line-clamp: 2;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.link-preview-dismiss {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,.5);
  color: #fff;
  font-size: 11px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.link-preview-loading {
  font-size: 12px;
  color: var(--text-3);
  padding: 6px 0;
}
#cp-link-preview { margin: 4px 0; }
@media (max-width: 480px) {
  .link-preview-img { width: 80px; }
}

/* ─── New Post Banner (SSE live update) ──────────────────────────────────── */
.new-post-banner {
  position: sticky;
  top: 0;
  z-index: 90;
  background: var(--lr-green);
  color: #fff;
  text-align: center;
  padding: 10px 16px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  cursor: pointer;
  border-radius: 8px;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 4px 20px rgba(212,170,80,0.4);
  animation: npb-slide-in 0.3s ease;
}
.new-post-banner:hover { background: var(--lr-green-mid); }
.npb-x { margin-left: auto; opacity: 0.7; font-size: 16px; padding: 0 4px; line-height: 1; }
.npb-x:hover { opacity: 1; }
@keyframes npb-slide-in {
  from { transform: translateY(-40px); opacity: 0; }
  to   { transform: translateY(0);     opacity: 1; }
}

/* ─── Mobile Hamburger + Drawer ───────────────────────────────────────────── */
.mob-hamburger {
  display: none;
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.22);
  color: #FFFFFF;
  font-size: 26px;
  cursor: pointer;
  padding: 8px 14px;
  line-height: 1;
  border-radius: 8px;
  flex-shrink: 0;
  min-height: 42px;
  min-width: 48px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(255,255,255,0.35);
  transition: background .15s, transform .1s;
}
.mob-hamburger:hover, .mob-hamburger:active { background: rgba(255,255,255,0.22); transform: scale(0.97); }

/* Mobile floating compose FAB */
.mobile-fab {
  display: none;
  position: fixed;
  bottom: max(24px, env(safe-area-inset-bottom, 0px) + 16px);
  right: 20px;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--lr-green);
  border: 2.5px solid var(--lr-gold-lt);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(212,170,80,0.6), 0 2px 8px rgba(0,0,0,0.4);
  z-index: 40;
  transition: transform .15s, box-shadow .15s;
  align-items: center;
  justify-content: center;
}
.mobile-fab:active { transform: scale(0.92); }
body:has(.main-area.messages-active) .mobile-fab { display: none; }

/* Drawer overlay */
.mob-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  z-index: 199;
  backdrop-filter: blur(2px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s;
}
.mob-drawer-overlay.open { opacity: 1; pointer-events: all; }

/* Slide-in nav drawer */
.mob-nav-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(300px, 88vw);
  background: var(--bg-2);
  border-right: 1px solid var(--border-g);
  z-index: 200;
  transform: translateX(-100%);
  transition: transform .28s cubic-bezier(.4,0,.2,1);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  -webkit-overflow-scrolling: touch;
}
.mob-nav-drawer.open { transform: translateX(0); }
.mob-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-3);
  position: sticky;
  top: 0;
  z-index: 1;
  padding-top: max(16px, env(safe-area-inset-top, 0px) + 10px);
}
.mob-drawer-user {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.mob-drawer-nav { padding: 10px 8px 24px; flex: 1; }
.mob-drawer-section {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--text-3);
  padding: 14px 10px 6px;
}
.mob-drawer-section:first-child { padding-top: 6px; }
.mob-drawer-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 12px;
  border-radius: 8px;
  color: var(--text-2);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s;
  user-select: none;
}
.mob-drawer-item:hover, .mob-drawer-item:active { background: var(--bg-4); color: var(--text); }

@media (max-width: 700px) {
  .mob-hamburger { display: flex; align-items: center; }
  .mobile-fab { display: flex; }
  .topbar { padding: 0 12px; padding-top: env(safe-area-inset-top); }
  .main-area { padding: 14px 12px 90px; }
  .sidebar { display: none; }
  .form-row { grid-template-columns: 1fr; }
  .auth-panel { max-width: 100%; padding: 28px 24px; border-left: none; }
  .heritage-banner-bg { height: 140px; }
  .heritage-banner-text h2 { font-size: 26px; }
}

/* ─── Trail → Event inline section ────────────────────────────────────────── */
.trail-event-section {
  border: 1px solid var(--border-g);
  border-radius: 12px;
  padding: 14px 16px;
  background: rgba(212,170,80,0.06);
  margin-bottom: 4px;
}
.trail-event-toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  user-select: none;
}
.trail-event-toggle-row:hover { opacity: 0.9; }

/* ─── Events & Meetups ─────────────────────────────────────────────────────── */
.event-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
.event-tab-btn { padding: 7px 18px; border-radius: 20px; border: 1px solid var(--border); background: var(--bg-3); color: var(--text-2); font-size: 13px; font-weight: 700; cursor: pointer; transition: all .15s; font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.event-tab-btn:hover { border-color: var(--border-g); color: var(--text); }
.event-tab-btn.active { background: var(--lr-green); border-color: var(--lr-green); color: #fff; }

.events-list { display: flex; flex-direction: column; gap: 12px; }
.event-card { display: flex; align-items: center; gap: 16px; background: var(--bg-2); border: 1px solid var(--border); border-radius: 14px; padding: 16px 18px; cursor: pointer; transition: transform .15s, box-shadow .15s, border-color .15s; }
.event-card:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,0.3); border-color: var(--border-g); }
.event-card-date { text-align: center; min-width: 52px; flex-shrink: 0; background: var(--lr-green); border-radius: 10px; padding: 8px 6px; }
.event-date-mon { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--lr-gold-lt); }
.event-date-day { font-size: 28px; font-weight: 900; color: #fff; line-height: 1; font-family: 'Barlow Condensed', sans-serif; }
.event-date-year { font-size: 10px; color: rgba(255,255,255,0.6); margin-top: 2px; }
.event-card-body { flex: 1; min-width: 0; }
.event-card-title { font-weight: 700; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 5px; }
.event-card-meta { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: var(--text-3); margin-bottom: 7px; }
.event-card-rsvp { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.event-rsvp-count { font-size: 12px; font-weight: 600; color: var(--text-3); }
.event-rsvp-count.going { color: var(--lr-green-lt); }
.event-rsvp-count.maybe { color: var(--lr-gold-lt); }
.event-rsvp-count.limit { color: var(--text-3); }
.event-my-rsvp { font-size: 12px; font-weight: 700; margin-left: auto; }
.event-card-arrow { font-size: 22px; color: var(--text-3); flex-shrink: 0; }

/* Event modal */
.event-modal-date-banner { background: linear-gradient(135deg, var(--lr-green) 0%, #1A1A1A 100%); border-radius: 12px; padding: 18px 20px; margin-bottom: 16px; border: 1px solid var(--border-g); }
.event-modal-day-name { font-size: 12px; font-weight: 700; color: var(--lr-gold-lt); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 4px; }
.event-modal-full-date { font-size: 20px; font-weight: 800; color: #fff; font-family: 'Barlow Condensed', sans-serif; letter-spacing: .02em; }
.event-modal-time { font-size: 14px; color: rgba(255,255,255,0.75); margin-top: 4px; }
.event-modal-details { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.event-detail-row { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; color: var(--text-2); }
.event-detail-icon { flex-shrink: 0; font-size: 16px; }
.event-modal-desc { font-size: 14px; color: var(--text-2); line-height: 1.7; margin-bottom: 16px; white-space: pre-wrap; padding: 12px 14px; background: var(--bg-3); border-radius: 8px; border: 1px solid var(--border); }

.event-rsvp-section { margin: 16px 0; padding: 14px 16px; background: rgba(212,170,80,0.08); border: 1px solid var(--border-g); border-radius: 12px; }
.event-rsvp-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--text-3); margin-bottom: 10px; }
.event-rsvp-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.event-rsvp-btn { padding: 9px 16px; border-radius: 8px; border: 1px solid var(--border-2); background: var(--bg-3); color: var(--text-2); font-size: 13px; font-weight: 700; cursor: pointer; transition: all .15s; }
.event-rsvp-btn:hover { border-color: var(--border-g); color: var(--text); }
.event-rsvp-btn.active-going { background: rgba(212,170,80,0.35); border-color: var(--lr-green-lt); color: var(--lr-green-lt); }
.event-rsvp-btn.active-maybe { background: rgba(212,170,80,0.2); border-color: var(--lr-gold-lt); color: var(--lr-gold-lt); }
.event-rsvp-btn.active-not   { background: rgba(201,68,68,0.15); border-color: var(--red); color: var(--red); }

.event-attendees-section { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 14px; }
.event-attendee-group { margin-bottom: 14px; }
.event-attendee-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-3); margin-bottom: 8px; }
.event-attendee-list { display: flex; flex-wrap: wrap; gap: 8px; }
.rsvp-user { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.rsvp-avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 2px solid var(--border-2); }
.rsvp-avatar.placeholder { display: flex; align-items: center; justify-content: center; background: var(--bg-4); font-size: 12px; font-weight: 700; color: var(--text-3); }
.rsvp-name { font-size: 10px; color: var(--text-3); text-align: center; max-width: 56px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 700px) {
  .event-card { padding: 12px 14px; gap: 12px; }
  .event-card-date { min-width: 44px; }
  .event-date-day { font-size: 22px; }
  .event-rsvp-btns { flex-direction: column; }
  .event-rsvp-btn { width: 100%; text-align: center; }
}

/* ─── Trails & Routes ─────────────────────────────────────────────────────── */
.trail-header { margin-bottom: 20px; }
.trail-search-bar { margin-bottom: 12px; }
.trail-search-bar input { width: 100%; padding: 10px 14px; background: var(--bg-3); border: 1px solid var(--border); border-radius: 10px; color: var(--text); font-size: 14px; box-sizing: border-box; }
.trail-search-bar input:focus { outline: none; border-color: var(--border-g); }
.trail-filters { display: flex; flex-direction: column; gap: 8px; }
.trail-filter-group { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.trail-filter-label { font-size: 11px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; margin-right: 2px; white-space: nowrap; }
.trail-filter-btn { padding: 4px 12px; border-radius: 20px; border: 1px solid var(--border); background: var(--bg-3); color: var(--text-2); font-size: 12px; font-weight: 600; cursor: pointer; transition: all .15s; }
.trail-filter-btn:hover { border-color: var(--border-g); color: var(--text); }
.trail-filter-btn.active { background: var(--lr-green); border-color: var(--lr-green); color: #fff; }

.trail-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.trail-loading { grid-column: 1/-1; text-align: center; color: var(--text-3); padding: 40px; font-size: 14px; }

.trail-card { background: var(--bg-2); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.trail-card:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(0,0,0,0.35); }
.trail-card-img { position: relative; height: 160px; background: var(--bg-3); }
.trail-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.trail-no-img { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 52px; opacity: 0.25; }
.trail-diff-badge { position: absolute; top: 10px; left: 10px; padding: 3px 10px; border-radius: 20px; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; color: #000; }
.trail-cond-dot { position: absolute; top: 10px; right: 10px; width: 13px; height: 13px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.85); }
.trail-card-body { padding: 13px 14px; }
.trail-card-title { font-weight: 700; font-size: 15px; margin-bottom: 6px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.trail-card-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--text-3); margin-bottom: 6px; }
.trail-card-terrain { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 10px; font-weight: 700; background: var(--bg-4); color: var(--text-3); text-transform: capitalize; margin-bottom: 8px; letter-spacing: .04em; }
.trail-card-stats { display: flex; gap: 12px; font-size: 12px; color: var(--text-3); }

/* Trail detail modal */
.trail-modal-photos { margin-bottom: 14px; }
.trail-photo-main { border-radius: 10px; overflow: hidden; max-height: 260px; background: var(--bg-3); }
.trail-photo-main img { width: 100%; max-height: 260px; object-fit: cover; display: block; }
.trail-photo-thumbs { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; padding-bottom: 4px; }
.trail-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: 6px; cursor: pointer; border: 2px solid transparent; transition: border-color .15s; flex-shrink: 0; }
.trail-thumb.active { border-color: var(--lr-gold-lt); }

.trail-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: 14px 0 10px; flex-wrap: wrap; }
.trail-modal-title { font-size: 20px; font-weight: 800; font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; letter-spacing: .04em; line-height: 1.2; }
.trail-modal-badges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 7px; align-items: center; }
.trail-diff-badge-lg { padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; color: #000; }
.trail-terrain-tag { padding: 3px 10px; border-radius: 8px; font-size: 12px; font-weight: 600; background: var(--bg-3); color: var(--text-2); }
.trail-modal-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }
.trail-action-btn { padding: 8px 14px; border-radius: 8px; border: 1px solid var(--border-g); background: var(--bg-3); color: var(--text-2); font-size: 13px; font-weight: 600; cursor: pointer; transition: all .15s; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.trail-action-btn:hover { border-color: var(--lr-gold-lt); color: var(--text); }
.trail-action-btn.saved { background: rgba(212,170,80,0.15); border-color: var(--lr-gold-lt); color: var(--lr-gold-lt); }
.trail-action-btn.done  { background: rgba(34,197,94,0.15);  border-color: #22c55e; color: #22c55e; }

.trail-modal-desc { font-size: 14px; color: var(--text-2); line-height: 1.7; margin-bottom: 14px; white-space: pre-wrap; }

.trail-map-container { border-radius: 10px; overflow: hidden; margin: 14px 0; border: 1px solid var(--border); }
.trail-leaflet-map { height: 240px; width: 100%; }
/* Leaflet dark-mode fixes */
.trail-leaflet-map .leaflet-popup-content-wrapper { background: var(--bg-2); color: var(--text); border: 1px solid var(--border); border-radius: 8px; }
.trail-leaflet-map .leaflet-popup-tip { background: var(--bg-2); }

.trail-section-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--text-3); margin-bottom: 10px; }

.trail-done-by { margin: 14px 0; padding: 12px 14px; background: rgba(34,197,94,0.06); border: 1px solid rgba(34,197,94,0.2); border-radius: 10px; }
.trail-done-avatars { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.trail-done-avatar { width: 34px; height: 34px; border-radius: 50%; overflow: hidden; border: 2px solid var(--bg-2); flex-shrink: 0; }
.trail-done-avatar img { width: 100%; height: 100%; object-fit: cover; }
.trail-done-initials { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--bg-4); font-size: 11px; font-weight: 700; color: var(--text-3); }

.trail-reports-section { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 16px; }
.trail-report-form { margin-bottom: 14px; }
.trail-cond-select { padding: 8px 10px; background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-size: 13px; margin-bottom: 8px; width: 100%; box-sizing: border-box; }
.trail-report-textarea { width: 100%; min-height: 72px; padding: 10px 12px; background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-size: 13px; resize: vertical; margin-bottom: 8px; font-family: inherit; box-sizing: border-box; }
.trail-report-textarea:focus { outline: none; border-color: var(--border-g); }
.trail-reports-list { display: flex; flex-direction: column; gap: 12px; margin-top: 6px; }
.trail-report-item { display: flex; gap: 10px; align-items: flex-start; }
.trail-report-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.trail-report-avatar.placeholder { display: flex; align-items: center; justify-content: center; background: var(--bg-4); font-size: 11px; font-weight: 700; color: var(--text-3); }
.trail-report-body { flex: 1; }
.trail-report-header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; font-size: 13px; }
.trail-cond-pill { padding: 2px 8px; border-radius: 20px; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.trail-report-text { font-size: 13px; color: var(--text-2); line-height: 1.6; }

.trail-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; border-top: 1px solid var(--border); padding-top: 12px; flex-wrap: wrap; gap: 8px; }

@media (max-width: 700px) {
  .trail-grid { grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 10px; }
  .trail-card-img { height: 120px; }
  .trail-modal-header { flex-direction: column; }
  .trail-modal-actions { flex-direction: row; }
  .trail-leaflet-map { height: 200px; }
}

/* (mobile styles moved above, to Mobile Hamburger + Drawer section) */

/* ─── Discussions Forum ───────────────────────────────────────────────────── */
.disc-header    { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:18px; }
.disc-title     { font-size:22px; font-weight:900; color:var(--text-1); margin:0 0 4px; }
.disc-subtitle  { font-size:13px; color:var(--text-3); }
.disc-cat-row   { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
.disc-cat-btn   { padding:5px 13px; border-radius:6px; border:1px solid var(--border-2); background:var(--bg-3); color:var(--text-2); font-size:12px; font-weight:700; cursor:pointer; transition:all .15s; }
.disc-cat-btn:hover, .disc-cat-btn.active { background:var(--lr-green); border-color:var(--lr-green); color:#fff; }
.disc-thread-row { display:flex; align-items:flex-start; gap:12px; background:var(--bg-2); border:1px solid var(--border-1); border-radius:12px; padding:16px; margin-bottom:10px; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.disc-thread-row:hover { border-color:var(--lr-green); box-shadow:0 4px 16px rgba(0,0,0,.3); }
.disc-thread-avatar { flex-shrink:0; }
.disc-thread-main { flex:1; min-width:0; }
.disc-thread-top { display:flex; align-items:center; gap:6px; margin-bottom:4px; }
.disc-thread-cat { font-size:11px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.06em; }
.disc-pin       { font-size:13px; }
.disc-thread-title { font-size:16px; font-weight:700; color:var(--text-1); margin-bottom:4px; }
.disc-thread-preview { font-size:13px; color:var(--text-3); line-height:1.5; margin-bottom:6px; }
.disc-thread-meta { font-size:12px; color:var(--text-3); display:flex; gap:5px; }
.disc-thread-count { flex-shrink:0; text-align:center; background:var(--bg-3); border-radius:8px; padding:8px 12px; min-width:52px; }
.disc-reply-num { font-size:20px; font-weight:900; color:var(--text-1); line-height:1; }
.disc-reply-lbl { font-size:10px; color:var(--text-3); text-transform:uppercase; letter-spacing:.05em; }
.disc-cat-selector { display:flex; flex-wrap:wrap; gap:6px; }
.disc-cat-opt { display:flex; align-items:center; gap:5px; padding:7px 13px; border-radius:8px; border:2px solid var(--border-2); background:var(--bg-3); cursor:pointer; font-size:13px; font-weight:600; color:var(--text-2); transition:all .15s; user-select:none; }
.disc-cat-opt input[type=radio] { display:none; }
.disc-cat-opt.selected { border-color:var(--lr-green); background:rgba(74,124,69,.15); color:var(--lr-green); }
.disc-cat-opt:hover { border-color:var(--lr-green); }
@media (max-width:700px) {
  .disc-header { flex-direction:column; }
  .disc-thread-count { display:none; }
}

/* ─── Heritage Page ───────────────────────────────────────────────────────── */
.heritage-page { max-width:860px; }
.heritage-hero { position:relative; height:320px; border-radius:14px; overflow:hidden; margin-bottom:32px; }
.heritage-hero-img { width:100%; height:100%; object-fit:cover; display:block; }
.heritage-hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.75) 100%); }
.heritage-hero-text { position:absolute; bottom:28px; left:28px; }
.heritage-hero-sub { font-size:11px; font-weight:700; letter-spacing:4px; color:var(--lr-gold-lt); text-transform:uppercase; margin-bottom:6px; }
.heritage-hero-title { font-size:36px; font-weight:900; color:#fff; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.04em; line-height:1.1; }
.heritage-hero-tagline { font-size:14px; color:rgba(255,255,255,.75); margin-top:6px; letter-spacing:1px; }
.heritage-section { margin-bottom:28px; }
.heritage-lead { font-size:17px; color:var(--text-2); line-height:1.85; border-left:3px solid var(--lr-gold); padding-left:18px; }
.heritage-era-block { background:var(--bg-2); border:1px solid var(--border-1); border-radius:14px; padding:28px 30px; margin-bottom:20px; }
.heritage-era-block.alt { background:var(--bg-3); }
.heritage-era-badge { display:inline-block; padding:4px 14px; border-radius:20px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:12px; }
.heritage-era-title { font-size:24px; font-weight:900; color:var(--text-1); font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.03em; margin:0 0 14px; }
.heritage-era-body { font-size:15px; color:var(--text-2); line-height:1.85; margin-bottom:14px; }
.heritage-era-body:last-child { margin-bottom:0; }
.heritage-era-stat-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; padding-top:18px; border-top:1px solid var(--border-1); }
.heritage-stat { background:var(--bg-1); border:1px solid var(--border-2); border-radius:8px; padding:12px 16px; min-width:100px; flex:1; }
.heritage-stat-num { font-size:22px; font-weight:900; color:var(--lr-gold); font-family:'Barlow Condensed',sans-serif; }
.heritage-stat-lbl { font-size:11px; color:var(--text-3); margin-top:2px; }
.heritage-inline-img { width:100%; border-radius:10px; margin:16px 0; object-fit:cover; max-height:400px; display:block; }

/* Camel Trophy */
.camel-hero { background:linear-gradient(135deg, #3d2b0a 0%, #1a1200 100%); border:2px solid #8B6914; border-radius:14px; padding:36px; text-align:center; margin:28px 0 0; }
.camel-hero-inner {}
.camel-logo { font-size:48px; margin-bottom:10px; }
.camel-hero-title { font-size:32px; font-weight:900; color:#D4AA50; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.camel-hero-sub { font-size:13px; color:rgba(212,170,80,.7); letter-spacing:2px; margin-top:6px; }
.camel-country-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; margin-top:20px; }
.camel-country-card { background:rgba(139,105,20,.15); border:1px solid rgba(139,105,20,.4); border-radius:8px; padding:10px 12px; transition:background .15s, border-color .15s, transform .1s; }
.camel-country-card:hover { background:rgba(139,105,20,.3); border-color:#D4AA50; transform:translateY(-2px); }
.camel-year { font-size:18px; font-weight:900; color:#D4AA50; font-family:'Barlow Condensed',sans-serif; }
.camel-place { font-size:13px; font-weight:700; color:var(--text-1); }
.camel-terrain { font-size:11px; color:var(--text-3); margin-top:2px; }
.heritage-camel-click-hint { font-size:12px; color:rgba(212,170,80,.6); letter-spacing:1px; text-align:right; margin:8px 0 -4px; font-style:italic; }

/* Camel Trophy detail modal */
.camel-modal-img-wrap { width:100%; height:200px; overflow:hidden; border-radius:10px; margin-bottom:18px; }
.camel-modal-img { width:100%; height:100%; object-fit:cover; display:block; }
.camel-modal-winner { display:flex; align-items:center; gap:14px; background:rgba(139,105,20,.12); border:1px solid rgba(139,105,20,.35); border-radius:10px; padding:12px 16px; margin-bottom:14px; }
.camel-modal-flag { font-size:36px; line-height:1; }
.camel-modal-winner-label { font-size:10px; text-transform:uppercase; letter-spacing:2px; color:var(--text-3); }
.camel-modal-winner-name  { font-size:18px; font-weight:800; color:#D4AA50; font-family:'Barlow Condensed',sans-serif; }
.camel-modal-section { margin-bottom:14px; }
.camel-modal-label { font-size:10px; text-transform:uppercase; letter-spacing:2px; color:var(--text-3); margin-bottom:4px; }
.camel-modal-value { font-size:14px; color:var(--text-2); }
.camel-modal-body  { font-size:14px; line-height:1.7; color:var(--text); }
.camel-modal-vehicle { background:var(--bg-3); border-radius:8px; padding:12px 14px; margin-top:4px; }
.camel-modal-vname { font-size:14px; font-weight:700; color:var(--lr-gold-lt); display:block; margin-bottom:6px; }
.camel-modal-vdesc { font-size:13px; color:var(--text-2); line-height:1.6; }

/* Heritage footer */
.heritage-page-footer { text-align:center; padding:40px 20px; border-top:1px solid var(--border-1); margin-top:20px; }
.heritage-page-quote  { font-size:28px; font-style:italic; color:var(--lr-gold-lt); font-family:'Barlow Condensed',sans-serif; letter-spacing:.02em; margin-bottom:8px; }
.heritage-page-attr   { font-size:13px; color:var(--text-3); letter-spacing:2px; text-transform:uppercase; }

@media (max-width:700px) {
  .heritage-hero { height:200px; }
  .heritage-hero-title { font-size:24px; }
  .camel-country-grid { grid-template-columns:repeat(2, 1fr); }
  .heritage-era-block { padding:18px; }
  .heritage-stat { min-width:80px; }
}

/* ─── Workshop ────────────────────────────────────────────────────────────── */
.ws-header  { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.ws-title   { font-size:22px; font-weight:900; color:var(--text-1); margin:0 0 4px; }
.ws-subtitle{ font-size:13px; color:var(--text-3); }
.ws-loading { padding:40px; text-align:center; color:var(--text-3); }

/* Controls panel */
.ws-controls       { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:14px 16px; margin-bottom:22px; display:flex; flex-direction:column; gap:10px; }
.ws-search-input   { width:100%; background:var(--bg-3); border:1px solid var(--border); border-radius:8px; padding:9px 14px; color:var(--text); font-size:14px; font-family:inherit; outline:none; box-sizing:border-box; }
.ws-search-input:focus { border-color:var(--border-g); }
.ws-control-row    { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ws-ctrl-label     { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--text-3); font-family:'Barlow Condensed',sans-serif; white-space:nowrap; min-width:46px; }
.ws-chips          { display:flex; gap:5px; flex-wrap:wrap; }
.ws-chip           { padding:4px 11px; border-radius:20px; border:1px solid var(--border-2); background:var(--bg-3); color:var(--text-2); font-size:11px; font-weight:700; cursor:pointer; transition:all .13s; white-space:nowrap; }
.ws-chip:hover     { border-color:var(--lr-green); color:var(--lr-green-lt); }
.ws-chip.active    { background:var(--lr-green); border-color:var(--lr-green); color:#fff; }

/* Era section banners */
.ws-era-section        { margin-bottom:30px; }
.ws-era-banner         { position:relative; height:110px; border-radius:12px; overflow:hidden; cursor:pointer; margin-bottom:12px; }
.ws-era-banner-img     { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.ws-era-banner:hover .ws-era-banner-img { transform:scale(1.03); }
.ws-era-banner-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,10,5,0.85) 0%,rgba(5,10,5,0.25) 70%); display:flex; flex-direction:column; justify-content:center; padding:0 20px; }
.ws-era-banner-name    { font-family:'Barlow Condensed',sans-serif; font-size:24px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; color:#fff; line-height:1; }
.ws-era-banner-years   { font-size:12px; color:var(--lr-gold-lt); font-weight:700; margin-top:3px; }
.ws-era-banner-count   { font-size:11px; color:rgba(255,255,255,0.55); margin-top:3px; }

/* Workshop card grid */
.ws-grid            { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.ws-card            { background:var(--bg-2); border:1px solid var(--border-1); border-radius:12px; overflow:hidden; cursor:pointer; transition:border-color .15s,box-shadow .15s; display:flex; flex-direction:column; }
.ws-card:hover      { border-color:var(--lr-green); box-shadow:0 4px 18px rgba(0,0,0,.3); }
.ws-card-img-wrap   { position:relative; width:100%; height:140px; overflow:hidden; flex-shrink:0; }
.ws-card-img        { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
.ws-card:hover .ws-card-img { transform:scale(1.05); }
.ws-card-img-overlay{ position:absolute; bottom:0; left:0; right:0; padding:6px 8px; background:linear-gradient(transparent,rgba(5,8,5,0.88)); display:flex; gap:5px; flex-wrap:wrap; }
.ws-cat-chip        { font-size:10px; font-weight:800; padding:2px 7px; border-radius:4px; background:rgba(212,170,80,0.88); color:#000; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.03em; }
.ws-type-chip       { font-size:10px; font-weight:800; padding:2px 7px; border-radius:4px; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.03em; }
.ws-type-chip.tip      { background:rgba(245,158,11,0.88); color:#fff; }
.ws-type-chip.guide    { background:rgba(74,124,69,0.92); color:#fff; }
.ws-type-chip.question { background:rgba(99,102,241,0.88); color:#fff; }
.ws-card-body       { padding:11px 12px; flex:1; display:flex; flex-direction:column; gap:5px; }
.ws-card-title      { font-size:13px; font-weight:700; color:var(--text-1); line-height:1.3; }
.ws-card-preview    { font-size:11px; color:var(--text-3); line-height:1.5; flex:1; }
.ws-card-foot       { display:flex; align-items:center; gap:8px; font-size:11px; color:var(--text-3); padding-top:4px; border-top:1px solid var(--border); }
.ws-pin-chip        { font-size:11px; }
.ws-type-badge      { font-size:11px; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:.05em; }
.ws-cat-badge       { font-size:11px; color:var(--text-3); margin-left:4px; }
.ws-pin-badge       { margin-left:auto; font-size:11px; color:var(--lr-gold); font-weight:700; }
.ws-dot             { color:var(--border-2); }

/* Modal hero image */
.ws-modal-hero        { position:relative; width:100%; height:200px; overflow:hidden; border-radius:8px; margin-bottom:16px; }
.ws-modal-hero-img    { width:100%; height:100%; object-fit:cover; display:block; }
.ws-modal-hero-badges { position:absolute; bottom:10px; left:12px; display:flex; gap:6px; flex-wrap:wrap; }

/* Workshop modal */
.ws-modal-meta  { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.ws-modal-author{ font-weight:700; font-size:14px; color:var(--text-1); }
.ws-modal-date  { font-size:12px; color:var(--text-3); }
.ws-modal-body  { font-size:15px; color:var(--text-1); line-height:1.75; background:var(--bg-3); border-radius:8px; padding:16px; margin-bottom:20px; white-space:pre-wrap; }

/* Workshop form */
.ws-type-selector { display:flex; gap:8px; flex-wrap:wrap; }
.ws-type-opt { display:flex; align-items:center; gap:6px; padding:8px 14px; border-radius:8px; border:2px solid var(--border-2); background:var(--bg-3); cursor:pointer; font-size:14px; font-weight:600; color:var(--text-2); transition:all .15s; user-select:none; }
.ws-type-opt input[type=radio] { display:none; }
.ws-type-opt.selected { border-color:var(--lr-green); background:rgba(74,124,69,.15); color:var(--lr-green); }
.ws-type-opt:hover { border-color:var(--lr-green); }

/* Workshop comments */
.ws-comments-section { border-top:1px solid var(--border-1); padding-top:16px; }
.ws-comments-title   { font-size:13px; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; }
.ws-comment { display:flex; gap:10px; margin-bottom:14px; align-items:flex-start; }
.ws-comment-body { flex:1; min-width:0; background:var(--bg-3); border-radius:8px; padding:10px 12px; }
.ws-comment-author { font-weight:700; font-size:13px; color:var(--text-1); margin-right:6px; }
.ws-comment-time   { font-size:11px; color:var(--text-3); }
.ws-comment-text   { font-size:14px; color:var(--text-1); line-height:1.6; margin-top:4px; }
.ws-comment-del    { color:var(--text-3); font-size:12px; flex-shrink:0; align-self:flex-start; margin-top:2px; }
.ws-reply-form     { margin-top:12px; }

/* ─── Gapp Tool ───────────────────────────────────────────────────────────── */
.gapp-header   { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:20px; }
.gapp-title    { font-size:22px; font-weight:900; color:var(--text-1); margin:0 0 4px; }
.gapp-subtitle { font-size:13px; color:var(--text-3); }

.gapp-explainer { display:flex; gap:16px; align-items:flex-start; background:var(--bg-2); border:1px solid var(--border-1); border-left:4px solid var(--lr-gold); border-radius:10px; padding:18px 20px; margin-bottom:16px; font-size:14px; color:var(--text-2); line-height:1.75; }
.gapp-explainer-icon { font-size:28px; flex-shrink:0; }
.gapp-explainer strong { color:var(--text-1); }

.gapp-ref-card  { background:var(--bg-2); border:1px solid var(--border-1); border-radius:10px; padding:16px 20px; margin-bottom:20px; }
.gapp-ref-title { font-size:12px; font-weight:700; color:var(--text-3); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
.gapp-ref-grid  { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:8px; }
.gapp-ref-row   { display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--text-2); background:var(--bg-3); border-radius:6px; padding:6px 10px; }
.gapp-spec      { font-weight:700; color:var(--lr-gold); font-size:13px; }

.gapp-log-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.gapp-log-title { font-size:14px; font-weight:700; color:var(--text-2); text-transform:uppercase; letter-spacing:.06em; }

.gapp-entry-card   { background:var(--bg-2); border:1px solid var(--border-1); border-radius:12px; padding:18px 20px; margin-bottom:12px; }
.gapp-entry-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.gapp-entry-who    { display:flex; align-items:center; gap:10px; }
.gapp-entry-name   { font-weight:700; font-size:14px; color:var(--text-1); }
.gapp-entry-vehicle{ font-size:12px; color:var(--text-3); }
.gapp-entry-time   { font-size:12px; color:var(--text-3); display:flex; align-items:center; }
.gapp-entry-notes  { font-size:13px; color:var(--text-3); border-top:1px solid var(--border-1); margin-top:12px; padding-top:10px; font-style:italic; }

.gapp-vals       { display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:8px; }
.gapp-val        { background:var(--bg-3); border-radius:8px; padding:10px 12px; border:1px solid var(--border-1); display:flex; flex-direction:column; gap:3px; }
.gapp-val-label  { font-size:11px; color:var(--text-3); font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.gapp-val-num    { font-size:18px; font-weight:900; color:var(--text-1); }
.gapp-val-good   { border-color:#22c55e44; }
.gapp-val-good .gapp-val-num { color:#22c55e; }
.gapp-val-ok     { border-color:#f59e0b44; }
.gapp-val-ok .gapp-val-num   { color:#f59e0b; }
.gapp-val-warn   { border-color:#ef444444; }
.gapp-val-warn .gapp-val-num { color:#ef4444; }

.gapp-type-filter  { display:flex; flex-wrap:wrap; gap:5px; }
.gapp-log-header   { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.gapp-buy-link     { color:var(--lr-gold-lt); font-weight:700; text-decoration:none; display:inline-block; margin-top:6px; }
.gapp-buy-link:hover { text-decoration:underline; }

/* IID entry card */
.gapp-entry-desc       { font-size:14px; color:var(--text-1); line-height:1.7; margin:10px 0 6px; white-space:pre-wrap; }
.gapp-entry-resolution { font-size:13px; color:var(--text-2); background:rgba(74,124,69,.1); border-left:3px solid var(--lr-green); border-radius:0 6px 6px 0; padding:8px 12px; margin:6px 0; line-height:1.6; }
.iid-codes   { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.iid-code    { background:rgba(239,68,68,.15); border:1px solid rgba(239,68,68,.4); color:#f87171; font-family:'JetBrains Mono',monospace; font-size:12px; font-weight:700; border-radius:5px; padding:3px 8px; }
.iid-type-pill { font-size:11px; font-weight:700; padding:3px 9px; border-radius:12px; background:var(--bg-3); color:var(--text-2); border:1px solid var(--border-2); white-space:nowrap; }
.iid-type-pill.iid-fault       { background:rgba(239,68,68,.12); color:#f87171; border-color:rgba(239,68,68,.3); }
.iid-type-pill.iid-adaptation  { background:rgba(99,102,241,.12); color:#818cf8; border-color:rgba(99,102,241,.3); }
.iid-type-pill.iid-calibration { background:rgba(245,158,11,.12); color:#fbbf24; border-color:rgba(245,158,11,.3); }
.iid-type-pill.iid-tip         { background:rgba(74,124,69,.12); color:var(--lr-green); border-color:rgba(74,124,69,.3); }
.iid-outcome { font-size:12px; font-weight:700; margin-top:8px; }
.iid-outcome.resolved { color:#22c55e; }
.iid-outcome.ongoing  { color:#f59e0b; }
.iid-outcome.info     { color:var(--text-3); }

/* Gapp tool tabs */
.gapp-tabs { display:flex; gap:6px; margin:0 0 18px; border-bottom:1px solid var(--border); padding-bottom:2px; }
.gapp-tab  { background:none; border:none; padding:8px 16px; font-size:14px; font-weight:700; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.06em; color:var(--text-3); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .15s; }
.gapp-tab.active { color:var(--lr-gold-lt); border-bottom-color:var(--lr-gold); }
.gapp-tab:hover  { color:var(--text-1); }

/* CCF tab */
.ccf-intro { background:rgba(139,105,20,.1); border:1px solid rgba(139,105,20,.3); border-radius:10px; padding:14px 16px; font-size:13px; color:var(--text-2); line-height:1.65; margin-bottom:16px; }
.ccf-cat-filter { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.ccf-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:12px; }
.ccf-card { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:14px 16px; cursor:pointer; transition:border-color .15s, transform .1s; }
.ccf-card:hover { border-color:var(--lr-gold); transform:translateY(-2px); }
.ccf-card-cat   { font-size:10px; text-transform:uppercase; letter-spacing:2px; color:var(--lr-gold-lt); margin-bottom:6px; font-weight:700; }
.ccf-card-title { font-size:14px; font-weight:800; color:var(--text); margin-bottom:8px; line-height:1.35; font-family:'Barlow Condensed',sans-serif; }
.ccf-card-codes { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:8px; }
.ccf-code-chip  { background:rgba(239,68,68,.12); border:1px solid rgba(239,68,68,.3); color:#f87171; font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; border-radius:4px; padding:2px 6px; }
.ccf-card-desc  { font-size:12px; color:var(--text-3); line-height:1.55; }

/* CCF modal */
.ccf-modal-cat    { font-size:11px; text-transform:uppercase; letter-spacing:2px; color:var(--lr-gold-lt); margin-bottom:10px; font-weight:700; }
.ccf-modal-desc   { font-size:14px; color:var(--text); line-height:1.65; margin-bottom:16px; }
.ccf-modal-section{ margin-bottom:16px; }
.ccf-modal-label  { font-size:10px; text-transform:uppercase; letter-spacing:2px; color:var(--text-3); margin-bottom:8px; font-weight:700; }
.ccf-modal-codes  { display:flex; flex-direction:column; gap:6px; }
.ccf-modal-code-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ccf-modal-code-name { font-size:13px; color:var(--text-2); }
.ccf-modal-body   { background:var(--bg-3); border:1px solid var(--border-2); border-radius:8px; padding:12px 14px; font-size:13px; font-family:'JetBrains Mono',monospace; color:var(--text); white-space:pre-wrap; line-height:1.7; overflow-x:auto; }
.ccf-modal-warn   { background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.3); border-radius:8px; padding:10px 14px; font-size:12px; color:#fbbf24; margin-top:12px; }

/* ─── Home Dashboard ─────────────────────────────────────────────────────── */
.home-dash-hero { display:flex; align-items:center; gap:20px; background:linear-gradient(135deg, var(--bg-card) 0%, rgba(212,170,80,.18) 100%); border:1px solid var(--border-g); border-radius:16px; padding:24px; margin-bottom:20px; }
.home-dash-shield { flex-shrink:0; }
.home-dash-hero-text { flex:1; min-width:0; }
.home-dash-welcome { font-size:13px; color:var(--text-3); font-weight:600; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.home-dash-site { font-size:26px; font-weight:900; color:var(--text); font-family:'Barlow Condensed',sans-serif; line-height:1.15; text-transform:uppercase; letter-spacing:.04em; }
.home-dash-tagline { font-size:13px; color:var(--lr-gold-lt); margin-top:4px; font-style:italic; }
.home-dash-quote { background:var(--bg-card); border-left:3px solid var(--lr-gold); border-radius:0 10px 10px 0; padding:14px 18px; margin-bottom:24px; }
.home-dash-quote-text { font-size:14px; color:var(--text-2); font-style:italic; line-height:1.65; }
.home-dash-quote-attr { font-size:11px; color:var(--text-3); font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-top:6px; }
.home-dash-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:14px; }
.home-dash-card { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:20px; cursor:pointer; transition:border-color .15s, transform .1s, box-shadow .15s; }
.home-dash-card:hover { border-color:var(--lr-gold); transform:translateY(-2px); box-shadow:0 6px 24px rgba(0,0,0,.4); }
.home-dash-card-icon { font-size:28px; margin-bottom:10px; }
.home-dash-card-title { font-size:15px; font-weight:800; color:var(--text); font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; }
.home-dash-card-desc { font-size:12px; color:var(--text-2); line-height:1.6; }
.home-dash-card-admin { border-color:rgba(212,170,80,.3); background:rgba(212,170,80,.06); }
.home-dash-card-admin:hover { border-color:var(--lr-gold); }

@media (max-width:700px) {
  .home-dash-hero { flex-direction:column; text-align:center; gap:14px; padding:18px; }
  .home-dash-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .home-dash-card { padding:16px 14px; }
}

/* ─── Events — How It Works ───────────────────────────────────────────────── */
.event-hiw-wrap { background:var(--bg-card); border:1px solid var(--border-g); border-radius:12px; margin-bottom:20px; overflow:hidden; }
.event-hiw-toggle { width:100%; background:none; border:none; display:flex; align-items:center; justify-content:space-between; padding:14px 18px; cursor:pointer; color:var(--lr-gold-lt); font-size:14px; font-weight:700; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.event-hiw-toggle:hover { background:rgba(212,170,80,.06); }
.event-hiw-chevron { font-size:16px; transition:transform .2s; }
.event-hiw-body { padding:4px 18px 18px; }
.event-hiw-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:12px; margin-top:8px; }
.event-hiw-card { background:var(--bg-3); border:1px solid var(--border); border-radius:10px; padding:14px 16px; }
.event-hiw-icon { font-size:22px; margin-bottom:8px; }
.event-hiw-title { font-size:13px; font-weight:800; color:var(--lr-gold-lt); margin-bottom:6px; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.event-hiw-desc { font-size:12px; color:var(--text-2); line-height:1.65; }

/* ─── Events — Status & staff badges ─────────────────────────────────────── */
.event-status-badge { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; border:1px solid; border-radius:6px; padding:2px 8px; white-space:nowrap; }
.event-staff-badge  { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; background:rgba(240,203,110,.15); color:var(--lr-green-lt); border:1px solid rgba(240,203,110,.3); border-radius:6px; padding:2px 8px; white-space:nowrap; }

/* ─── Events — Dedicated full page ───────────────────────────────────────── */
.event-page-back { background:none; border:none; color:var(--lr-gold-lt); font-size:13px; font-weight:700; cursor:pointer; padding:0 0 16px; display:flex; align-items:center; gap:6px; letter-spacing:.04em; }
.event-page-back:hover { color:var(--lr-gold); }
.event-page-hero { background:var(--bg-card); border:1px solid var(--border-g); border-radius:14px; padding:20px; display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; margin-bottom:20px; }
.event-page-hero-date { background:var(--bg-3); border-radius:10px; padding:10px 16px; text-align:center; min-width:64px; flex-shrink:0; }
.event-page-hero-mon  { font-size:12px; font-weight:800; text-transform:uppercase; color:var(--lr-gold-lt); letter-spacing:.1em; }
.event-page-hero-day  { font-size:36px; font-weight:900; color:var(--text); line-height:1.1; font-family:'Barlow Condensed',sans-serif; }
.event-page-hero-year { font-size:12px; color:var(--text-3); font-weight:600; }
.event-page-hero-info { flex:1; min-width:180px; }
.event-page-title { font-size:22px; font-weight:900; color:var(--text); font-family:'Barlow Condensed',sans-serif; line-height:1.2; margin:0; }
.event-page-meta  { display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; font-size:13px; color:var(--text-2); }
.event-page-admin-controls { margin-left:auto; }
.event-page-desc { background:var(--bg-card); border:1px solid var(--border); border-radius:10px; padding:16px 18px; font-size:14px; color:var(--text-2); line-height:1.75; margin-bottom:20px; white-space:pre-wrap; }

/* ─── Events — Staff section ─────────────────────────────────────────────── */
.event-staff-section { background:var(--bg-card); border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin-bottom:20px; }
.event-staff-header  { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.event-staff-title   { font-size:14px; font-weight:800; color:var(--lr-gold-lt); font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.event-staff-list    { display:flex; flex-wrap:wrap; gap:10px; }
.event-staff-card    { display:flex; align-items:center; gap:10px; background:var(--bg-3); border:1px solid var(--border); border-radius:8px; padding:10px 12px; min-width:160px; }
.event-staff-avatar  { width:36px; height:36px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.event-staff-avatar.placeholder { background:var(--bg-4); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:var(--lr-gold-lt); }
.event-staff-info    {}
.event-staff-name    { font-size:13px; font-weight:700; color:var(--text); }
.event-staff-role    { font-size:11px; color:var(--text-3); text-transform:capitalize; margin-top:2px; }
.event-staff-mgmt-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--border); }
.event-staff-mgmt-row:last-child { border-bottom:none; }

/* ─── Events — Staff chat ────────────────────────────────────────────────── */
.event-chat-wrap { background:var(--bg-card); border:1px solid var(--lr-gold);border-left:3px solid var(--lr-gold); border-radius:12px; overflow:hidden; margin-bottom:20px; }
.event-chat-header { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:rgba(212,170,80,.08); border-bottom:1px solid rgba(212,170,80,.2); font-size:13px; font-weight:700; color:var(--lr-gold-lt); }
.event-chat-msgs { min-height:180px; max-height:320px; overflow-y:auto; padding:12px 14px; display:flex; flex-direction:column; gap:10px; }
.event-chat-msg { display:flex; align-items:flex-end; gap:8px; }
.event-chat-msg.mine { flex-direction:row-reverse; }
.event-chat-avatar { flex-shrink:0; }
.event-chat-bubble-wrap { display:flex; flex-direction:column; max-width:72%; }
.event-chat-msg.mine .event-chat-bubble-wrap { align-items:flex-end; }
.event-chat-sender { font-size:11px; color:var(--text-3); font-weight:700; margin-bottom:3px; }
.event-chat-bubble { background:var(--bg-3); border:1px solid var(--border-2); border-radius:12px 12px 12px 4px; padding:8px 12px; font-size:13px; color:var(--text); line-height:1.55; word-break:break-word; }
.event-chat-msg.mine .event-chat-bubble { background:rgba(212,170,80,.35); border-color:rgba(240,203,110,.4); border-radius:12px 12px 4px 12px; }
.event-chat-time { font-size:10px; color:var(--text-3); margin-top:3px; }
.event-chat-input-row { display:flex; gap:8px; padding:10px 14px; border-top:1px solid var(--border); background:var(--bg-3); }
.event-chat-input { flex:1; background:var(--bg-4); border:1px solid var(--border-2); border-radius:8px; padding:9px 12px; font-size:14px; color:var(--text); outline:none; }
.event-chat-input:focus { border-color:var(--lr-gold); }

@media (max-width:700px) {
  .event-page-hero { flex-direction:column; gap:14px; }
  .event-page-admin-controls { margin-left:0; width:100%; }
  .event-hiw-grid { grid-template-columns:1fr; }
  .event-staff-list { flex-direction:column; }
}

/* ─── Profile Edit — Vehicle cards & helpers ──────────────────────────────── */
.ep-section-divider {
  font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em;
  color: var(--lr-gold-lt); border-bottom: 1px solid var(--border-g);
  padding-bottom: 8px; margin: 22px 0 14px;
  font-family: 'Barlow Condensed', sans-serif;
}
.ep-required { font-size: 10px; color: var(--red); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-left: 4px; }
.ep-vehicle-card {
  background: var(--bg-3); border: 1px solid var(--border-2); border-radius: 10px;
  padding: 14px 16px; margin-bottom: 10px;
}
.ep-vehicle-header {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px;
}
.ep-vehicle-num { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--lr-gold-lt); }
.ep-vehicle-del {
  background: none; border: none; color: var(--text-3); font-size: 16px; cursor: pointer;
  width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s;
}
.ep-vehicle-del:hover { background: rgba(201,68,68,.15); color: var(--red); }
.ep-pass-match { font-size: 13px; font-weight: 700; margin-top: 4px; min-height: 20px; }
.ep-pass-match.ok { color: #4ade80; }
.ep-pass-match.no { color: var(--red); }

@media (max-width:700px) {
  .ws-header, .gapp-header, .disc-header { flex-direction:column; }
  .gapp-explainer { flex-direction:column; gap:8px; }
  .gapp-vals, .gapp-ref-grid { grid-template-columns:repeat(2, 1fr); }
  .gapp-log-header { flex-direction:column; align-items:flex-start; }
}

/* ─── @ Mention Picker ───────────────────────────────────────────────────── */
.mention-picker { background:var(--bg-2); border:1px solid var(--border-g); border-radius:10px; box-shadow:0 6px 24px rgba(0,0,0,0.4); z-index:600; overflow:hidden; animation:rxnPopIn .1s ease; }
.mention-item { display:flex; align-items:center; gap:10px; padding:9px 12px; cursor:pointer; transition:background .12s; }
.mention-item:hover { background:var(--bg-3); }
.mention-avatar { width:32px; height:32px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.mention-avatar-ph { width:32px; height:32px; border-radius:50%; background:rgba(212,170,80,0.35); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:var(--lr-gold-lt); font-family:'Barlow Condensed',sans-serif; flex-shrink:0; }
.mention-name { font-size:13px; font-weight:700; color:var(--text); }
.mention-handle { font-size:11px; color:var(--text-3); }

/* Inline @mention link inside rendered post/comment/reply bodies */
.mention-link {
  color: var(--lr-green-lt);
  background: rgba(74,124,69,0.15);
  padding: 1px 6px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}
.mention-link:hover {
  background: rgba(74,124,69,0.28);
  text-decoration: none;
}

/* ─── Photo Tagging ──────────────────────────────────────────────────────── */
.photo-tag-wrap { position: relative; display: block; overflow: hidden; }
.photo-tag-wrap img { display: block; width: 100%; cursor: pointer; user-select: none; -webkit-user-drag: none; }

.photo-tag-dot {
  position: absolute;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2.5px solid #fff;
  background: rgba(212,170,80,0.75);
  transform: translate(-50%, -50%);
  cursor: default;
  z-index: 5;
  transition: transform .15s;
}
.photo-tag-dot:hover { transform: translate(-50%,-50%) scale(1.15); }
.photo-tag-dot:hover .photo-tag-label,
.photo-tag-dot:focus-within .photo-tag-label { opacity: 1; pointer-events: all; transform: translateX(-50%) translateY(0); }

.photo-tag-label {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: rgba(10,12,9,0.92);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s, transform .15s;
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: .03em;
}
.photo-tag-remove {
  background: none;
  border: none;
  color: rgba(255,255,255,0.7);
  font-size: 12px;
  cursor: pointer;
  padding: 0 2px;
  line-height: 1;
  font-family: inherit;
}
.photo-tag-remove:hover { color: #fff; }

/* Tag picker dropdown */
.tag-picker {
  background: var(--bg-2);
  border: 1px solid var(--border-g);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
  z-index: 500;
  width: 210px;
  overflow: hidden;
  animation: rxnPopIn .12s ease;
}
.tag-picker-header { padding: 10px 14px 6px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; color: var(--text-3); font-family: 'Barlow Condensed', sans-serif; border-bottom: 1px solid var(--border); }
.tag-picker-input { width: 100%; background: var(--bg-3); border: none; border-bottom: 1px solid var(--border); padding: 8px 12px; color: var(--text); font-size: 13px; font-family: inherit; outline: none; box-sizing: border-box; }
.tag-picker-results { max-height: 220px; overflow-y: auto; }
.tag-picker-item { display: flex; align-items: center; gap: 9px; padding: 8px 12px; cursor: pointer; transition: background .12s; }
.tag-picker-item:hover { background: var(--bg-3); }
.tag-picker-avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.tag-picker-avatar-ph { width: 30px; height: 30px; border-radius: 50%; background: rgba(212,170,80,0.4); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: var(--lr-gold-lt); font-family: 'Barlow Condensed', sans-serif; flex-shrink: 0; }
.tag-picker-name { font-size: 13px; font-weight: 700; color: var(--text); }
.tag-picker-user { font-size: 11px; color: var(--text-3); }

/* ─── Drag & Drop Upload Zones ───────────────────────────────────────────── */
.drop-zone {
  border: 2px dashed var(--border-g);
  border-radius: 10px;
  padding: 14px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  min-height: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-bottom: 6px;
}
.drop-zone:hover { border-color: var(--lr-gold); background: rgba(212,170,80,0.04); }
.drop-zone.drag-over {
  border-color: var(--lr-gold);
  background: rgba(212,170,80,0.10);
  box-shadow: 0 0 0 3px rgba(212,170,80,0.18);
}

/* Full-modal drop overlay */
.modal-drop-overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(10,12,9,0.82);
  backdrop-filter: blur(3px);
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .18s;
  pointer-events: none;
  border: 3px dashed var(--lr-gold);
}
.modal-drop-overlay.visible { opacity: 1; pointer-events: all; }
.modal-drop-inner { text-align: center; }
.modal-drop-icon { font-size: 52px; line-height: 1; margin-bottom: 12px; animation: dropBounce .6s ease infinite alternate; }
.modal-drop-label { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; color: var(--lr-gold-lt); }
@keyframes dropBounce { from { transform: translateY(0); } to { transform: translateY(-8px); } }
.drop-zone-sm { min-height: 60px; padding: 10px 14px; }
.drop-zone-hint {
  font-size: 13px;
  color: var(--text-3);
  text-align: center;
  pointer-events: none;
  user-select: none;
}
.drop-zone-hint u { color: var(--lr-gold-lt); }
/* When files are added, the preview takes over — hint hides via JS */
.drop-zone .media-preview { width: 100%; justify-content: flex-start; }

/* ─── Spread the Word ───────────────────────────────────────────────────────── */
.spread-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.spread-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; }
.spread-card-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 2px solid; }
.spread-platform-icon { flex-shrink: 0; margin-top: 2px; }
.spread-platform-name { font-family: 'Barlow Condensed', sans-serif; font-size: 20px; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; color: var(--text); }
.spread-platform-sub { font-size: 11px; color: var(--text-3); margin-top: 2px; }
.spread-copy-text { background: var(--bg-3); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; font-size: 12px; color: var(--text-2); white-space: pre-wrap; word-break: break-word; font-family: inherit; line-height: 1.6; flex: 1; margin: 0; max-height: 260px; overflow-y: auto; }
.spread-dl-btn { position: absolute; bottom: 5px; right: 5px; background: rgba(10,12,9,0.8); color: #fff; border-radius: 5px; padding: 2px 7px; font-size: 13px; text-decoration: none; backdrop-filter: blur(3px); }
.spread-dl-btn:hover { background: var(--lr-green); }
@media (max-width: 700px) { .spread-grid { grid-template-columns: 1fr; } }

/* Workshop model + year badges */
.ws-model-badge { display:inline-block; background:rgba(212,170,80,0.25); color:var(--lr-green-lt); border:1px solid rgba(212,170,80,0.4); border-radius:4px; font-size:10px; font-weight:800; padding:1px 7px; letter-spacing:.03em; font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; }
.ws-year-badge  { display:inline-block; background:rgba(212,170,80,0.15); color:var(--lr-gold-lt); border:1px solid rgba(212,170,80,0.3); border-radius:4px; font-size:10px; font-weight:800; padding:1px 7px; letter-spacing:.03em; font-family:'Barlow Condensed',sans-serif; }
.ws-search-bar { margin-bottom:14px; }
.ws-search-bar input { width:100%; max-width:520px; background:var(--bg-3); border:1px solid var(--border); border-radius:8px; padding:9px 14px; color:var(--text); font-size:14px; font-family:inherit; outline:none; }
.ws-search-bar input:focus { border-color:var(--border-g); }

/* Satellite thumbnail on trail cards */
.trail-satellite-thumb { width:100%; height:100%; object-fit:cover; display:block; image-rendering:auto; }

/* Trail state badge */
.trail-state-badge { display: inline-block; background: rgba(212,170,80,0.18); color: var(--lr-gold-lt); border: 1px solid rgba(212,170,80,0.35); border-radius: 4px; font-size: 10px; font-weight: 800; padding: 1px 6px; letter-spacing: .05em; font-family: 'Barlow Condensed', sans-serif; }

/* ─── Shop / Gear ─────────────────────────────────────────────────────────── */
.shop-hero { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 24px 26px; margin-bottom: 18px; }
.shop-search { display: flex; align-items: center; background: var(--bg-2); border: 1px solid var(--border); border-radius: 999px; padding: 0 14px; height: 44px; gap: 8px; }
.shop-search-icon { font-size: 16px; opacity: .6; }
.shop-search input { flex: 1; border: 0; background: transparent; outline: none; font-size: 15px; color: var(--text); padding: 0; height: 44px; }
.shop-search input::placeholder { color: var(--text-3); }
.shop-search-clear { background: transparent; border: 0; color: var(--text-3); cursor: pointer; font-size: 14px; padding: 4px 8px; border-radius: 999px; }
.shop-search-clear:hover { background: var(--bg-3); color: var(--text); }
.shop-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.shop-tab { background: var(--bg-card); border: 1px solid var(--border); border-radius: 999px; padding: 8px 16px; font-size: 13px; font-weight: 600; color: var(--text-2); cursor: pointer; transition: all .15s; }
.shop-tab:hover { background: var(--bg-2); color: var(--text); }
.shop-tab.active { background: var(--lr-gold); color: #fff; border-color: var(--lr-gold); }
.shop-cat-blurb { color: var(--text-2); font-size: 14px; margin: 4px 4px 18px; }
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.shop-card { display: flex; flex-direction: column; background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; text-decoration: none; color: var(--text); transition: all .15s; cursor: pointer; }
.shop-card:hover { border-color: var(--lr-gold); box-shadow: 0 4px 16px rgba(58,110,165,0.12); transform: translateY(-2px); }
.shop-card-img    { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.shop-card-visual { width: 100%; aspect-ratio: 16/10; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.shop-card-visual::after { content:''; position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,255,255,0.18) 0%, transparent 40%, rgba(0,0,0,0.06) 100%); }
.shop-card-visual-icon { font-size: 64px; filter: drop-shadow(0 2px 8px rgba(0,0,0,0.2)); position: relative; z-index: 1; }
.shop-card-visual.cat-recovery  { background: linear-gradient(135deg,#8B5A2B 0%,#D2956C 100%); }
.shop-card-visual.cat-rooftop   { background: linear-gradient(135deg,#264653 0%,#E76F51 100%); }
.shop-card-visual.cat-tires     { background: linear-gradient(135deg,#2B2B2B 0%,#888888 100%); }
.shop-card-visual.cat-lighting  { background: linear-gradient(135deg,#1F2A44 0%,#FFD66B 100%); }
.shop-card-visual.cat-comms     { background: linear-gradient(135deg,#0F4C5C 0%,#5BC0BE 100%); }
.shop-card-visual.cat-kitchen   { background: linear-gradient(135deg,#386641 0%,#F4A261 100%); }
.shop-card-visual.cat-apparel   { background: linear-gradient(135deg,#5C4A32 0%,#A38560 100%); }
.shop-card-body { display:flex; flex-direction:column; padding: 14px 16px; flex: 1; }
.shop-card-name { font-weight: 700; font-size: 15px; line-height: 1.35; margin-bottom: 8px; }
.shop-card-why  { font-size: 13px; color: var(--text-2); line-height: 1.55; flex: 1; margin-bottom: 12px; }
.shop-card-foot { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; border-top: 1px solid var(--border); }
.shop-card-price { font-size: 13px; font-weight: 700; color: var(--lr-green); }
.shop-card-cta   { font-size: 12px; font-weight: 700; color: var(--lr-gold); }
.shop-disclosure { margin-top: 24px; font-size: 12px; color: var(--text-3); text-align: center; line-height: 1.6; }
.shop-search-summary { font-size: 14px; color: var(--text-2); margin: 0 4px 14px; }
.shop-search-group { margin-bottom: 24px; }
.shop-search-group-title { font-size: 13px; font-weight: 700; color: var(--text); text-transform: uppercase; letter-spacing: .08em; margin: 0 4px 10px; }
.shop-search-fallback { display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg,#FF9900 0%,#FFB84D 100%); color: #1A1A1A; border-radius: 12px; padding: 16px 18px; text-decoration: none; transition: transform .15s, box-shadow .15s; margin-top: 18px; }
.shop-search-fallback:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(255,153,0,0.30); }
.shop-search-fallback-icon { font-size: 32px; }
.shop-search-fallback-body { flex: 1; }
.shop-search-fallback-title { font-weight: 800; font-size: 15px; margin-bottom: 2px; }
.shop-search-fallback-sub   { font-size: 12px; color: rgba(0,0,0,0.7); }
.shop-search-fallback-cta   { font-size: 13px; font-weight: 800; }
/* Detail page */
.shop-detail-hero { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr); gap: 24px; align-items: start; }
@media (max-width: 720px) { .shop-detail-hero { grid-template-columns: 1fr; } }
.shop-detail-cat { font-size: 13px; color: var(--text-2); margin-bottom: 6px; }
.shop-detail-name { font-size: 28px; line-height: 1.2; margin: 0 0 12px; }
.shop-detail-price { font-size: 16px; color: var(--text-2); margin-bottom: 14px; }
.shop-detail-price strong { color: var(--lr-gold); font-size: 22px; }
.shop-detail-why { font-size: 16px; line-height: 1.7; color: var(--text); margin-bottom: 22px; }
.shop-buy-btn { display: inline-block; background: linear-gradient(135deg,#FF9900 0%,#FFB84D 100%); color: #1A1A1A; padding: 14px 32px; border-radius: 10px; font-weight: 800; font-size: 16px; text-decoration: none; box-shadow: 0 4px 14px rgba(255,153,0,0.30); transition: transform .15s, box-shadow .15s; }
.shop-buy-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(255,153,0,0.40); }
.shop-detail-disclosure { font-size: 12px; color: var(--text-3); margin-top: 16px; line-height: 1.6; }
.shop-card-vote-badge { position: absolute; top: 10px; right: 10px; background: rgba(0,0,0,0.55); color: #FFD66B; font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 999px; backdrop-filter: blur(4px); z-index: 2; }
.shop-card-cta-btn { display: inline-block; background: linear-gradient(135deg,#FF9900 0%,#FFB84D 100%); color: #1A1A1A; padding: 7px 14px; border-radius: 6px; font-weight: 700; font-size: 12px; text-decoration: none; }
.shop-vote-btn { background: var(--bg-2); border: 1px solid var(--border); color: var(--text-2); border-radius: 6px; padding: 7px 12px; font-size: 12px; font-weight: 700; cursor: pointer; transition: all .15s; }
.shop-vote-btn:hover { background: var(--lr-gold); color: #fff; border-color: var(--lr-gold); }
.community-card .shop-card-foot { gap: 6px; }
.btn-cta { background: var(--lr-gold); color: #fff; border: 0; padding: 9px 18px; border-radius: 8px; font-weight: 700; font-size: 13px; cursor: pointer; transition: all .15s; }
.btn-cta:hover { background: var(--lr-gold-lt); transform: translateY(-1px); }
.btn-voted { background: var(--lr-gold) !important; color: #fff !important; border-color: var(--lr-gold) !important; }

/* ─── Push enrollment banner ──────────────────────────────────────────────── */
/* Author display:flex must NOT win over [hidden] — be explicit so the dismiss sticks. */
.push-banner[hidden] { display: none !important; }
.push-banner { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: linear-gradient(135deg,#3A6EA5 0%,#5286BD 100%); color: #FFFFFF; box-shadow: 0 2px 10px rgba(0,0,0,0.08); position: sticky; top: 58px; z-index: 95; pointer-events: auto; }
.push-banner-icon { font-size: 22px; line-height: 1; flex-shrink: 0; pointer-events: none; }
.push-banner-body { flex: 1; min-width: 0; pointer-events: none; }
.push-banner-title { font-size: 14px; font-weight: 700; line-height: 1.3; }
.push-banner-sub   { font-size: 12px; opacity: .9; margin-top: 2px; line-height: 1.3; }
.push-banner-cta { background: #FFFFFF; color: #3A6EA5; border: 0; padding: 10px 18px; border-radius: 999px; font-weight: 800; font-size: 14px; cursor: pointer; flex-shrink: 0; transition: transform .15s, box-shadow .15s; min-height: 40px; min-width: 80px; touch-action: manipulation; -webkit-tap-highlight-color: rgba(255,255,255,0.3); }
.push-banner-cta:hover, .push-banner-cta:active { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.18); }
.push-banner-dismiss { background: transparent; border: 0; color: rgba(255,255,255,0.95); cursor: pointer; font-size: 18px; padding: 8px 12px; border-radius: 999px; flex-shrink: 0; min-height: 40px; min-width: 40px; line-height: 1; touch-action: manipulation; -webkit-tap-highlight-color: rgba(255,255,255,0.3); }
.push-banner-dismiss:hover, .push-banner-dismiss:active { background: rgba(255,255,255,0.22); color: #FFFFFF; }
@media (max-width: 600px) {
  .push-banner { padding: 10px 12px; gap: 10px; }
  .push-banner-icon { font-size: 20px; }
  .push-banner-title { font-size: 13px; }
  .push-banner-sub { display: none; }
  .push-banner-cta { padding: 9px 14px; font-size: 13px; }
}

/* ─── EMOTO marketing landing — black & shiny gold ─────────────────────── */
@keyframes emoto-shimmer {
  0%, 100% { filter: drop-shadow(0 0 24px rgba(212,170,80,0.35)) drop-shadow(0 0 60px rgba(212,170,80,0.15)); }
  50%      { filter: drop-shadow(0 0 36px rgba(240,203,110,0.55)) drop-shadow(0 0 90px rgba(212,170,80,0.30)); }
}
@keyframes emoto-glow-pulse {
  0%, 100% { opacity: 0.45; transform: scale(1); }
  50%      { opacity: 0.75; transform: scale(1.08); }
}
@keyframes emoto-gold-sweep {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

.emoto-hero {
  position: relative;
  text-align: center;
  padding: 52px 24px 64px;
  margin: -24px -20px 32px;
  background:
    radial-gradient(ellipse at center top, rgba(212,170,80,0.12) 0%, transparent 65%),
    #000000;
  border-bottom: 1px solid rgba(212,170,80,0.20);
  overflow: hidden;
}

/* ─── EMOTO collage band ─── */
.emoto-collage {
  position: relative;
  margin: 28px -20px;
  border-top: 1px solid rgba(212,170,80,0.22);
  border-bottom: 1px solid rgba(212,170,80,0.22);
  background: #000;
  overflow: hidden;
}
.emoto-collage img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0 40px rgba(212,170,80,0.10));
}
.emoto-collage::before, .emoto-collage::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.emoto-collage::before { background: linear-gradient(90deg, #000 0%, transparent 6%, transparent 94%, #000 100%); }
.emoto-collage::after  { background: linear-gradient(180deg, transparent 70%, rgba(0,0,0,0.55) 100%); }
.emoto-collage-caption {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #F0CB6E;
  text-shadow: 0 2px 8px rgba(0,0,0,0.85);
}
@media (max-width: 600px) {
  .emoto-collage { margin: 22px -16px; }
  .emoto-collage-caption { font-size: 12px; bottom: 12px; letter-spacing: 0.14em; }
}
.emoto-hero-glow {
  position: absolute;
  width: 720px; height: 720px;
  top: -180px; left: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(212,170,80,0.18) 0%, rgba(212,170,80,0) 60%);
  pointer-events: none;
  animation: emoto-glow-pulse 4.5s ease-in-out infinite;
  z-index: 0;
}
.emoto-hero-logo {
  position: relative;
  z-index: 1;
  width: 220px; height: 220px;
  max-width: 60vw;
  margin: 0 auto 18px;
  display: block;
  filter: drop-shadow(0 0 30px rgba(212,170,80,0.40));
  animation: emoto-shimmer 4s ease-in-out infinite;
}
.emoto-hero-title {
  position: relative;
  z-index: 1;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(48px, 9vw, 96px);
  font-weight: 900;
  letter-spacing: 0.08em;
  margin: 0 0 8px;
  background: linear-gradient(110deg,
    #B8943B 0%, #D4AA50 30%, #FFD66B 50%, #D4AA50 70%, #B8943B 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
          color: transparent;
  animation: emoto-gold-sweep 3.5s linear infinite;
  text-shadow: 0 4px 20px rgba(212,170,80,0.20);
}
.emoto-hero-tagline {
  position: relative;
  z-index: 1;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: clamp(18px, 2.4vw, 24px);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #F0CB6E;
  margin: 0 0 22px;
}
.emoto-hero-sub {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto 28px;
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.7;
}
.emoto-hero-ctas {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.emoto-cta {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 8px;
  cursor: pointer;
  transition: transform .15s, box-shadow .2s;
  border: 0;
  min-height: 48px;
  touch-action: manipulation;
}
.emoto-cta-gold {
  background: linear-gradient(135deg, #D4AA50 0%, #F0CB6E 50%, #B8943B 100%);
  color: #0A0A0A;
  box-shadow: 0 4px 20px rgba(212,170,80,0.35);
}
.emoto-cta-gold:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(212,170,80,0.55); }
.emoto-cta-outline {
  background: transparent;
  color: #F0CB6E;
  border: 1.5px solid rgba(212,170,80,0.5);
}
.emoto-cta-outline:hover { background: rgba(212,170,80,0.10); border-color: #F0CB6E; transform: translateY(-2px); }

.emoto-hero-stats {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
}
.emoto-stat { text-align: center; }
.emoto-stat-num {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 32px;
  font-weight: 900;
  color: #F0CB6E;
  line-height: 1;
}
.emoto-stat-lbl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-top: 4px;
}
.emoto-stat-sep { width: 1px; height: 36px; background: rgba(212,170,80,0.35); }

.emoto-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin: 32px 0;
}
.emoto-feature {
  background: linear-gradient(160deg, var(--bg-card) 0%, var(--bg-2) 100%);
  border: 1px solid rgba(212,170,80,0.18);
  border-radius: 14px;
  padding: 22px 20px;
  cursor: pointer;
  transition: transform .15s, border-color .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}
.emoto-feature::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(212,170,80,0.08) 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s;
}
.emoto-feature:hover { transform: translateY(-3px); border-color: rgba(212,170,80,0.55); box-shadow: 0 8px 32px rgba(0,0,0,0.5), 0 0 0 1px rgba(212,170,80,0.25); }
.emoto-feature:hover::before { opacity: 1; }
.emoto-feature-icon { font-size: 32px; margin-bottom: 12px; }
.emoto-feature-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #F5F0E0;
  margin-bottom: 6px;
}
.emoto-feature-badge {
  background: linear-gradient(135deg, #D4AA50 0%, #F0CB6E 100%);
  color: #0A0A0A;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.15em;
  padding: 2px 7px;
  border-radius: 999px;
  margin-left: 6px;
  vertical-align: middle;
}
.emoto-feature-hot { border-color: rgba(240,203,110,0.40); }
.emoto-feature-text { font-size: 13px; color: var(--text-2); line-height: 1.6; }

.emoto-section-h {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 28px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #F0CB6E;
  text-align: center;
  margin: 36px 0 20px;
}
.emoto-classes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin-bottom: 36px;
}
.emoto-class-card {
  background: var(--bg-card);
  border: 1px solid rgba(212,170,80,0.20);
  border-radius: 14px;
  padding: 24px;
}
.emoto-class-card h3 {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #F5F0E0;
  margin: 8px 0;
}
.emoto-class-card p { font-size: 13px; color: var(--text-2); line-height: 1.7; }
.emoto-class-pill {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  padding: 4px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #D4AA50 0%, #F0CB6E 100%);
  color: #0A0A0A;
  margin-bottom: 4px;
}
.emoto-class-pill-blue {
  background: linear-gradient(135deg, #3A6EA5 0%, #5286BD 100%);
  color: #FFFFFF;
}

.emoto-cta-strip {
  background: linear-gradient(135deg, rgba(212,170,80,0.10) 0%, rgba(212,170,80,0.04) 100%);
  border: 1px solid rgba(212,170,80,0.30);
  border-radius: 14px;
  padding: 22px 26px;
  margin: 16px 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.emoto-cta-strip-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: #F5F0E0;
  letter-spacing: 0.05em;
}

@media (max-width: 600px) {
  .emoto-hero { padding: 36px 18px 40px; margin: -18px -16px 24px; }
  .emoto-hero-logo { width: 160px; height: 160px; }
  .emoto-hero-stats { gap: 8px; }
  .emoto-stat-num { font-size: 26px; }
}
