/* Limited public-site reskin: keeps existing page structures, pushes the field-guide direction. */
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Crimson+Pro:ital,wght@0,400;0,500;1,400;1,500;1,600&family=JetBrains+Mono:wght@400;500;700&display=swap');

:root {
  --fb-page-bg: #F1EFE7;
  --fb-surface-cream: #F8F6EF;
  --fb-surface-paper: #FFFDF7;
  --fb-purple: #483778;
  --fb-dark: #231B3B;
  --fb-pink: #FF7FE8;
  --fb-sage: #6C8F5E;
  --fb-sage-deep: #3F5E36;
  --fb-border: rgba(35,27,59,0.10);
  --fb-display: 'Archivo Black', 'Poppins', sans-serif;
  --fb-serif: 'Crimson Pro', Georgia, serif;
  --fb-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
}

body {
  background: var(--fb-page-bg);
}

.site-header {
  background: var(--fb-surface-cream) !important;
  border-bottom: 1px solid rgba(35,27,59,0.08) !important;
  box-shadow: 0 2px 16px rgba(35,27,59,0.06) !important;
}

.logo,
.footer-logo,
.fl {
  display: inline-block !important;
  width: 150px !important;
  height: 26px !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  background: url("assets/fb-logo-color.png") left center / contain no-repeat !important;
  overflow: hidden !important;
}

.logo img,
.footer-logo img {
  display: none !important;
}

.footer-logo,
.fl {
  background-image: url("assets/fb-logo-white.png") !important;
}

.site-nav a {
  color: var(--color-light-purple, #6F658C) !important;
}

.site-nav a:hover,
.site-nav a.active {
  color: var(--fb-dark) !important;
  background: rgba(108,143,94,0.11) !important;
}

.nav-cta,
.mobile-nav .mobile-nav-cta,
.mobile-nav .mc,
.btn-primary,
.btn-cta,
.btn-submit,
.email-btn {
  color: white !important;
  background: var(--fb-purple) !important;
  border-color: var(--fb-purple) !important;
  box-shadow: 0 10px 26px rgba(72,55,120,0.20);
}

.nav-cta:hover,
.mobile-nav .mobile-nav-cta:hover,
.mobile-nav .mc:hover,
.btn-primary:hover,
.btn-cta:hover,
.btn-submit:hover,
.email-btn:hover {
  background: #5A4592 !important;
}

.nav-hamburger span {
  background: var(--fb-dark) !important;
}

.mobile-nav {
  background: var(--fb-dark) !important;
}

.hero,
.team-banner,
.page-hero,
.legal-hero {
  background:
    linear-gradient(180deg, rgba(248,246,239,0.96) 0%, rgba(241,239,231,0.98) 100%) !important;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--fb-border);
}

.hero::before,
.team-banner::before,
.page-hero::before,
.legal-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  border-radius: 0 !important;
  background: url("assets/topography.svg") center / cover no-repeat !important;
  opacity: 0.18 !important;
  pointer-events: none !important;
}

.hero::after,
.team-banner::after,
.page-hero::after,
.legal-hero::after {
  content: "" !important;
  position: absolute !important;
  top: -90px !important;
  right: -90px !important;
  width: 420px !important;
  height: 420px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(108,143,94,0.12) 0%, rgba(255,127,232,0.08) 36%, transparent 68%) !important;
  pointer-events: none !important;
}

.hero-inner,
.tb-inner,
.page-hero-inner,
.legal-hero-inner {
  position: relative;
  z-index: 1;
}

.hero .reveal,
.team-banner .reveal,
.page-hero .reveal,
.legal-hero .reveal {
  opacity: 1 !important;
  transform: none !important;
}

.hero-label,
.tb-label,
.eyebrow,
.hero-eyebrow-pill,
.sec-eyebrow,
.s-label,
.page-hero .eyebrow,
.legal-hero .eyebrow {
  color: var(--fb-sage-deep) !important;
  letter-spacing: 0.15em !important;
  font-family: var(--fb-mono) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
}

.hero-label,
.tb-label,
.page-hero .eyebrow,
.legal-hero .eyebrow {
  display: inline-block;
  background: rgba(108,143,94,0.16);
  border-left: 2px solid var(--fb-sage);
  border-radius: 4px;
  padding: 7px 14px;
}

.hero-note {
  color: rgba(35,27,59,0.46) !important;
}

.hero-title,
.tb-title,
.page-title,
.legal-title {
  font-family: var(--fb-display) !important;
  font-weight: 400 !important;
  font-size: clamp(42px, 6.6vw, 86px) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.055em !important;
  color: var(--fb-dark) !important;
  max-width: 760px !important;
}

.hero-title::after,
.tb-title::after,
.page-title::after,
.legal-title::after {
  content: "";
  display: block;
  width: min(220px, 42vw);
  height: 14px;
  background: rgba(108,143,94,0.22);
  margin-top: -10px;
  margin-left: 0.08em;
}

.hero-sub,
.tb-sub,
.page-sub,
.legal-sub,
.v2-lede,
.body,
.s-body,
.intro-body,
.cta-sub,
.closing-body {
  font-family: var(--fb-serif) !important;
  font-style: italic;
  font-size: clamp(17px, 1.65vw, 22px) !important;
  line-height: 1.45 !important;
  color: rgba(35,27,59,0.68) !important;
}

.btn-secondary {
  color: var(--fb-dark) !important;
  border-color: rgba(35,27,59,0.22) !important;
  background: rgba(255,255,255,0.28) !important;
}

.hero-media img {
  border-radius: 8px !important;
  border: 1px solid rgba(35,27,59,0.16) !important;
  box-shadow: 0 20px 60px rgba(35,27,59,0.12) !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative;
  z-index: 1;
}

.hero-media::before {
  content: none !important;
}

.hero-chip {
  background: rgba(35,27,59,0.78) !important;
  border-radius: 8px !important;
}

.team-banner .tb-card,
.hero-media,
.intro-blog,
.callout,
.legal-callout {
  box-shadow: 0 14px 36px rgba(35,27,59,0.06);
}

.team-banner .tb-card {
  background: rgba(255,253,247,0.72) !important;
  border-color: rgba(35,27,59,0.10) !important;
}

.team-banner .tb-card-name {
  color: var(--fb-dark) !important;
}

.team-banner .tb-card-bio,
.team-banner .tb-card-link {
  color: rgba(35,27,59,0.66) !important;
}

.team-banner .tb-card-link {
  border-bottom-color: rgba(35,27,59,0.18) !important;
}

.section.light,
.section.bg,
.sec.bg,
.thesis,
.form-section,
.legal-section,
.caps-section {
  background: var(--fb-page-bg) !important;
}

.section.white,
.sec.white,
.approach,
.contact-section,
.team-cta,
.intro {
  background: var(--fb-surface-cream) !important;
}

.stat-card,
.offer,
.contact-card,
.contact-form,
.legal-callout,
.intro-blog,
.book,
.src,
.ap-item,
.focus-list,
.focus-item,
.feature-card,
.journey-step,
.flow-step,
.offer.featured {
  background: var(--fb-surface-paper) !important;
  border-color: var(--fb-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 28px rgba(35,27,59,0.045);
}

.stat-k,
.offer-tag,
.src-org,
.intro-blog-lbl,
.journey-num,
.flow-num,
.feature-title,
.contact-role,
.footer-col-title,
.fct,
.tb-card-role {
  font-family: var(--fb-mono) !important;
  letter-spacing: 0.14em !important;
}

.strip {
  background: var(--fb-surface-cream) !important;
  border-top: 1px solid var(--fb-border);
  border-bottom: 1px solid var(--fb-border);
}

.strip p {
  color: var(--fb-dark) !important;
}

.section.dark,
.principles,
.featured,
.cta,
.cta-section,
.closing {
  background: linear-gradient(180deg, #241C3E 0%, #231B3B 100%) !important;
}

.section.dark::before,
.principles::before,
.featured::before,
.cta::before,
.cta-section::before,
.closing::before {
  background: url("assets/topography.svg") center / cover no-repeat !important;
  opacity: 0.08 !important;
}

.footer-tagline,
.ft {
  max-width: 470px;
}

.site-footer {
  background: #1A1230 !important;
}

@media (max-width: 960px) {
  .logo,
  .footer-logo,
  .fl {
    width: 145px !important;
  }

  .hero-title,
  .tb-title,
  .page-title,
  .legal-title {
    font-size: clamp(38px, 12vw, 58px) !important;
  }
}

/* Homepage V2 field-guide direction */
.hero-vibe {
  min-height: calc(100vh - 68px);
  padding: 80px 48px 48px !important;
  background:
    linear-gradient(90deg, rgba(241,239,231,0.96) 0%, rgba(241,239,231,0.96) 51%, rgba(232,229,216,0.86) 51%, rgba(241,239,231,0.98) 100%) !important;
}

.hero-vibe::before {
  opacity: 0.34 !important;
}

.hero-vibe::after {
  content: none !important;
}

.hero-vibe-inner {
  max-width: 1420px !important;
  min-height: calc(100vh - 196px);
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 68px;
  align-items: center;
}

.hero-vibe-left {
  min-width: 0;
}

.hero-vibe .hero-eyebrow-pill {
  margin-bottom: 34px !important;
  background: rgba(108,143,94,0.12) !important;
}

.hero-manifesto {
  font-size: clamp(52px, 6.9vw, 108px) !important;
  line-height: 0.82 !important;
  letter-spacing: -0.075em !important;
  max-width: 980px !important;
  margin-bottom: 34px !important;
}

.hero-manifesto::after {
  display: none !important;
}

.hero-manifesto span {
  position: relative;
  display: inline-block;
}

.hero-manifesto span::after {
  content: "";
  position: absolute;
  left: 0.06em;
  right: -0.04em;
  bottom: 0.03em;
  height: 0.12em;
  z-index: -1;
  opacity: 0.58;
}

.hero-manifesto .ink {
  color: var(--fb-purple);
}

.hero-manifesto .ink::after {
  background: rgba(108,143,94,0.34);
}

.hero-manifesto .gold {
  color: #C98819;
}

.hero-manifesto .gold::after {
  background: rgba(244,185,66,0.34);
}

.hero-manifesto .pink {
  color: var(--fb-pink);
}

.hero-manifesto .pink::after {
  background: rgba(255,127,232,0.24);
}

.hero-vibe-sub {
  max-width: 560px !important;
  margin-bottom: 96px !important;
}

.hero-vibe-note {
  max-width: 360px;
  border-left: 2px solid var(--fb-sage);
  padding-left: 14px;
  font-family: var(--fb-mono);
  font-size: 11px;
  line-height: 1.72;
  letter-spacing: 0.08em;
  color: var(--fb-sage-deep);
}

.hero-vibe-note strong {
  text-transform: uppercase;
  color: var(--fb-sage-deep);
}

.hero-vibe-right {
  min-width: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 1px solid rgba(35,27,59,0.07);
  padding-left: 52px;
}

.hero-vibe-observation {
  border-left: 2px solid var(--fb-sage);
  background: rgba(108,143,94,0.08);
  padding: 13px 18px;
  font-family: var(--fb-serif);
  font-style: italic;
  font-size: 18px;
  line-height: 1.45;
  color: rgba(35,27,59,0.72);
  margin-bottom: 28px;
}

.hero-vibe-triad {
  border-top: 1px solid rgba(35,27,59,0.09);
}

.hero-vibe-row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 76px;
  gap: 20px;
  align-items: center;
  min-height: 112px;
  border-bottom: 1px solid rgba(35,27,59,0.09);
}

.hero-vibe-no {
  font-family: var(--fb-mono);
  color: var(--fb-sage-deep);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hero-vibe-name {
  font-family: var(--fb-display);
  font-size: clamp(28px, 2.55vw, 42px);
  line-height: 0.9;
  letter-spacing: -0.06em;
  color: var(--fb-dark);
}

.hero-vibe-name span {
  color: var(--fb-sage);
}

.hero-vibe-row:nth-child(1) .hero-vibe-name span {
  color: var(--fb-purple);
}

.hero-vibe-row:nth-child(2) .hero-vibe-name span {
  color: #C98819;
}

.hero-vibe-row:nth-child(3) .hero-vibe-name span {
  color: var(--fb-pink);
}

.hero-vibe-caption {
  margin-top: 6px;
  font-family: var(--fb-serif);
  font-style: italic;
  font-weight: 600;
  color: rgba(35,27,59,0.58);
  font-size: 14px;
}

.hero-vibe-symbol {
  width: 62px;
  height: 62px;
  justify-self: end;
  opacity: 0.86;
}

.hero-vibe-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 42px;
}

.hero-vibe-action .btn-hero {
  background: #A99BBB !important;
  border-color: transparent !important;
  color: white !important;
  box-shadow: none !important;
  border-radius: 999px !important;
  padding: 15px 30px !important;
}

.hero-vibe-action .btn-hero:hover {
  background: var(--fb-purple) !important;
}

.hero-vibe-action .hero-note {
  max-width: 260px;
  margin: 0 !important;
  text-align: right;
  font-family: var(--fb-mono);
  font-size: 10.5px;
  letter-spacing: 0.08em;
  color: rgba(35,27,59,0.48) !important;
}

.site-header .logo,
.site-footer .footer-logo {
  width: auto !important;
  height: auto !important;
  background: none !important;
  font-size: initial !important;
  line-height: initial !important;
  color: inherit !important;
  overflow: visible !important;
}

.site-header .logo img,
.site-footer .footer-logo img {
  display: block !important;
  width: 150px !important;
  height: auto !important;
}

.artifact-section {
  background: var(--fb-surface-cream) !important;
}

.artifact-section::after {
  background: rgba(35,27,59,0.08) !important;
}

.artifact-shot,
.artifact-proof,
.artifact-bridge,
.artifact-triad {
  background: var(--fb-surface-paper) !important;
  border-color: rgba(35,27,59,0.10) !important;
  box-shadow: 0 14px 34px rgba(35,27,59,0.055) !important;
}

.shot-label,
.proof-group-title,
.bridge-title,
.shot-title,
.artifact-triad-heading,
.artifact-triad-name {
  color: var(--fb-dark) !important;
}

.shot-sub,
.proof-copy,
.bridge-copy,
.gap-statement,
.artifact-triad-desc {
  color: rgba(35,27,59,0.68) !important;
}

.shot-bar {
  background: rgba(35,27,59,0.035) !important;
  border-color: rgba(35,27,59,0.08) !important;
}

.shot-bar-label {
  color: var(--fb-dark) !important;
}

.shot-track {
  background: rgba(35,27,59,0.08) !important;
}

.artifact-triad-symbol {
  filter: none !important;
}

@media (max-width: 960px) {
  .hero-vibe {
    min-height: auto;
    padding: 56px 24px 48px !important;
    background: var(--fb-page-bg) !important;
  }

  .hero-vibe-inner {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 44px;
  }

  .hero-manifesto {
    font-size: clamp(43px, 11.5vw, 72px) !important;
    line-height: 0.86 !important;
  }

  .hero-vibe-sub {
    margin-bottom: 42px !important;
  }

  .hero-vibe-right {
    border-left: 0;
    padding-left: 0;
  }

  .hero-vibe-action {
    align-items: stretch;
    flex-direction: column;
  }

  .hero-vibe-action .hero-note {
    max-width: none;
    text-align: left;
  }
}
