/* ============================================================
   Infinite Advisors Design System
   Fonts: Fraunces (display), Inter (body), IBM Plex Mono (labels)
   ============================================================ */

:root{
  /* Brand color system */
  --ink:#0B0B0C;
  --charcoal:#1C1B19;
  --charcoal-soft:#25231F;
  --gold:#C9A646;
  --gold-bright:#E8C878;
  --gold-dim:#8A7230;
  --cream:#F6F1E7;
  --paper:#FBFAF7;
  --stone:#8C8880;
  --stone-light:#D8D3C7;
  --text:#1A1A18;
  --text-soft:#4A473F;
  --text-on-dark:#F3EEE1;
  --text-on-dark-soft:#B8B2A0;
  --line:#E4DCC8;
  --line-dark:rgba(246,241,231,.14);
  --white:#fff;

  /* Type */
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",-apple-system,Segoe UI,Helvetica,Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;

  --radius:3px;
  --radius-lg:6px;
  --maxw:1240px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.08;margin:0 0 .5em;letter-spacing:-.01em}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Type utilities ---------- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  font-weight:500;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--gold)}
.section-dark .eyebrow,.hero .eyebrow{color:var(--gold-bright)}

h1{font-size:clamp(38px,5.6vw,74px)}
h2.display{font-size:clamp(30px,4vw,50px)}
h3.display{font-size:clamp(22px,2.6vw,30px)}
.lead{font-size:clamp(17px,1.6vw,20px);color:var(--text-soft);max-width:720px}
.section-dark .lead,.section-charcoal .lead,.hero .lead,.page-hero .lead{color:var(--text-on-dark-soft)}

.mono-num{font-family:var(--font-mono);color:var(--gold);font-size:14px}

/* ============================================================
   Header
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(11,11,12,.92);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line-dark);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:84px;padding-top:12px;padding-bottom:12px;gap:18px;flex-wrap:wrap}
.brand-link{display:inline-flex;align-items:center;gap:12px;min-width:0}
.brand-mark{height:36px;width:auto;flex-shrink:0}
.brand-word{font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--text-on-dark);letter-spacing:.01em;line-height:1.15}
.main-nav{display:flex;align-items:center;gap:14px}
.main-nav a{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--text-on-dark-soft);
  padding:6px 0;
  border-bottom:1px solid transparent;
  transition:color .15s ease,border-color .15s ease;
  text-align:center;
  line-height:1.35;
}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--text-on-dark);border-color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:18px}
.nav-toggle{display:none;background:none;border:1px solid var(--line-dark);color:var(--text-on-dark);width:42px;height:42px;border-radius:var(--radius);cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:20px;height:20px}

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:15px 26px;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  white-space:nowrap;
  transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold-bright)}
.btn-outline-dark{border-color:rgba(255,255,255,.35);color:var(--text-on-dark)}
.btn-outline-dark:hover{border-color:var(--gold-bright);color:var(--gold-bright)}
.btn-outline-light{border-color:var(--ink);color:var(--ink)}
.btn-outline-light:hover{border-color:var(--gold-dim);color:var(--gold-dim)}
.btn-block{width:100%}

/* ============================================================
   Hero
   ============================================================ */
.hero{
  position:relative;
  background:linear-gradient(160deg,#0A0A0B 0%,#151310 60%,#1B1712 100%);
  color:var(--text-on-dark);
  padding:104px 0 96px;
  overflow:hidden;
  isolation:isolate;
}
.hero-mark{
  position:absolute;
  right:-6%;
  top:50%;
  transform:translateY(-50%);
  width:min(720px,60vw);
  opacity:.10;
  z-index:-1;
  filter:drop-shadow(0 0 80px rgba(201,166,70,.25));
}
.hero-inner{max-width:900px}
.hero p.lead{margin-top:20px;margin-bottom:36px}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:56px}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);max-width:920px}
.hero-stats div{background:#100F0D;padding:22px 20px}
.hero-stats b{display:block;font-family:var(--font-display);font-size:28px;color:var(--gold-bright);margin-bottom:6px;font-weight:600}
.hero-stats span{font-size:13px;color:var(--text-on-dark-soft);line-height:1.4}

.page-hero{
  position:relative;
  background:linear-gradient(160deg,#0A0A0B 0%,#151310 65%,#1B1712 100%);
  color:var(--text-on-dark);
  padding:88px 0 76px;
  overflow:hidden;
  isolation:isolate;
}
.page-hero .hero-mark{opacity:.08;width:min(560px,55vw)}
.page-hero h1{font-size:clamp(34px,4.6vw,58px);max-width:820px}
.page-hero .lead{margin-top:16px}

/* ============================================================
   Sections
   ============================================================ */
.section{padding:clamp(64px,9vw,112px) 0}
.section-cream{background:var(--cream)}
.section-paper{background:var(--paper)}
.section-dark{background:var(--ink);color:var(--text-on-dark)}
.section-dark h2,.section-dark h3{color:var(--text-on-dark)}
.section-charcoal{background:var(--charcoal);color:var(--text-on-dark)}

.section-head{max-width:760px;margin-bottom:52px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head.center .eyebrow::before{display:none}

/* ---------- Split / editorial layout ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.split.reverse .split-media{order:2}
.split.reverse .split-text{order:1}
.split-media img{border-radius:var(--radius-lg)}
.media-frame{
  position:relative;
  border:1px solid var(--line);
  padding:14px;
  background:var(--paper);
}
.section-dark .media-frame,.section-charcoal .media-frame{border-color:var(--line-dark);background:rgba(255,255,255,.02)}
.media-duotone{position:relative;overflow:hidden;border-radius:var(--radius)}
.media-duotone img{filter:grayscale(.35) sepia(.18) saturate(1.3) brightness(.92);transform:scale(1.01)}
.media-duotone::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(11,11,12,.35),rgba(201,166,70,.12) 55%,rgba(11,11,12,.28));mix-blend-mode:multiply}

/* ---------- Cards ---------- */
.grid{display:grid;gap:1px;background:var(--line)}
.section-dark .grid,.section-charcoal .grid{background:var(--line-dark)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--paper);padding:36px 32px;position:relative}
.section-dark .card,.section-charcoal .card{background:var(--charcoal)}
.section-cream .card{background:var(--paper)}
.card .mono-num{display:block;margin-bottom:22px}
.card h3{font-size:21px;margin-bottom:12px}
.card p{color:var(--text-soft);margin-bottom:0;font-size:15px}
.section-dark .card p,.section-charcoal .card p{color:var(--text-on-dark-soft)}
.card ul{margin-top:10px}
.card li{color:var(--text-soft);font-size:15px;padding:6px 0 6px 18px;position:relative}
.section-dark .card li,.section-charcoal .card li{color:var(--text-on-dark-soft)}
.card li::before{content:"\00b7";position:absolute;left:0;color:var(--gold)}

.gap-cards{display:grid;gap:22px}
.gap-cards.cols-2{grid-template-columns:repeat(2,1fr)}
.gap-cards.cols-3{grid-template-columns:repeat(3,1fr)}
.gap-cards .card{border:1px solid var(--line)}
.section-dark .gap-cards .card,.section-charcoal .gap-cards .card{border-color:var(--line-dark)}

/* ---------- Process / numbered list ---------- */
.process-list{border-top:1px solid var(--line)}
.section-dark .process-list,.section-charcoal .process-list{border-color:var(--line-dark)}
.process-item{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:28px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
}
.section-dark .process-item,.section-charcoal .process-item{border-color:var(--line-dark)}
.process-item .mono-num{font-size:20px;padding-top:4px}
.process-item h4{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0 0 6px}
.process-item p{color:var(--text-soft);margin:0;font-size:15px;max-width:640px}
.section-dark .process-item p,.section-charcoal .process-item p{color:var(--text-on-dark-soft)}

/* ---------- Pull band / CTA ---------- */
.band{
  background:var(--charcoal);
  color:var(--text-on-dark);
  padding:64px 0;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.band-inner{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.band h2{font-size:clamp(26px,3.2vw,40px);max-width:640px;margin:0}
.band-mark{position:absolute;left:-4%;top:50%;transform:translateY(-50%);width:340px;opacity:.09;z-index:-1}

/* ---------- Stat strip ---------- */
.stat-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.stat-strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat-strip .stat{padding:34px 20px;border-left:1px solid var(--line)}
.stat-strip .stat:first-child{border-left:none}
.stat-strip b{display:block;font-family:var(--font-display);font-size:34px;color:var(--gold-dim);margin-bottom:6px}
.stat-strip span{font-size:13.5px;color:var(--text-soft)}

/* ---------- Tags / pills ---------- */
.tag{
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid var(--gold);
  color:var(--gold-dim);
  padding:5px 12px;
  border-radius:999px;
}
.section-dark .tag,.section-charcoal .tag{color:var(--gold-bright);border-color:var(--gold-bright)}

/* ---------- Quote ---------- */
.quote{
  font-family:var(--font-display);
  font-size:clamp(22px,2.6vw,32px);
  line-height:1.35;
  max-width:900px;
  font-weight:500;
}
.quote cite{display:block;font-family:var(--font-mono);font-size:13px;color:var(--gold);font-style:normal;margin-top:20px;text-transform:uppercase;letter-spacing:.08em}

/* ============================================================
   Team / Bio
   ============================================================ */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.bio-card{text-align:left}
.bio-photo{
  position:relative;
  width:100%;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:200px 200px 8px 8px;
  border:1px solid var(--line-dark);
  margin-bottom:24px;
  background:var(--charcoal);
}
.bio-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.05) brightness(.97)}
.bio-photo::after{content:"";position:absolute;inset:0;border-radius:200px 200px 8px 8px;box-shadow:inset 0 0 0 1px rgba(201,166,70,.5);pointer-events:none}
.bio-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(200deg,rgba(201,166,70,.35),transparent 45%,rgba(11,11,12,.45));mix-blend-mode:color;z-index:1}
.bio-card h3{font-size:23px;margin-bottom:2px}
.bio-role{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:16px}
.section-dark .bio-role,.section-charcoal .bio-role{color:var(--gold-bright)}
.bio-card p{color:var(--text-soft);font-size:15px}
.section-dark .bio-card p,.section-charcoal .bio-card p{color:var(--text-on-dark-soft)}

/* ============================================================
   Forms
   ============================================================ */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{margin-bottom:22px;display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft)}
.section-dark .field label{color:var(--text-on-dark-soft)}
.field input,.field select,.field textarea{
  font-family:var(--font-body);
  font-size:15.5px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  color:var(--text);
  outline:none;
  transition:border-color .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold)}
.field textarea{resize:vertical;min-height:120px}
.form-note{font-size:13.5px;color:var(--text-soft);margin-top:-6px}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{background:var(--ink);color:var(--text-on-dark-soft);padding:72px 0 32px;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid var(--line-dark)}
.footer-brand-mark{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.footer-brand-mark img{height:28px;width:auto}
.footer-brand-mark span{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--text-on-dark)}
.footer-brand p{font-size:14px;max-width:280px;color:var(--text-on-dark-soft)}
.footer-col h4{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-on-dark);margin-bottom:16px}
.footer-col a{display:block;font-size:14.5px;padding:6px 0;color:var(--text-on-dark-soft);transition:color .15s ease}
.footer-col a:hover{color:var(--gold-bright)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;font-size:13px;flex-wrap:wrap;gap:12px}

/* ============================================================
   Misc
   ============================================================ */
.divider-img{position:relative;height:clamp(220px,32vw,420px);overflow:hidden}
.divider-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) sepia(.15) saturate(1.2) brightness(.85)}
.divider-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.55),rgba(201,166,70,.08) 50%,rgba(11,11,12,.6))}
.divider-img .divider-caption{position:absolute;left:0;right:0;bottom:28px;z-index:2;text-align:center;color:var(--text-on-dark);font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}

.list-check{list-style:none}
.list-check li{position:relative;padding:9px 0 9px 26px;color:var(--text-soft);font-size:15.5px}
.section-dark .list-check li,.section-charcoal .list-check li{color:var(--text-on-dark-soft)}
.list-check li::before{content:"";position:absolute;left:0;top:15px;width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg)}

.link-arrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dim);border-bottom:1px solid currentColor;padding-bottom:2px}
.section-dark .link-arrow,.section-charcoal .link-arrow{color:var(--gold-bright)}

.resource-card{background:var(--paper);border:1px solid var(--line);padding:34px;display:flex;flex-direction:column;gap:16px}
.resource-card .tag{align-self:flex-start}

table.pricing-simple{width:100%;border-collapse:collapse}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1180px){
  .main-nav{display:none}
  .nav-toggle{display:flex}
}
@media (max-width:980px){
  .split{grid-template-columns:1fr}
  .split.reverse .split-media{order:1}
  .split.reverse .split-text{order:2}
  .team-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto}
  .cols-3{grid-template-columns:1fr 1fr}
  .cols-4{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr;row-gap:36px}
  .hero-stats{grid-template-columns:1fr 1fr}
  .stat-strip .wrap{grid-template-columns:1fr 1fr}
  .stat-strip .stat:nth-child(3){border-left:none}
}
@media (max-width:640px){
  .cols-2,.cols-3,.cols-4,.gap-cards.cols-2,.gap-cards.cols-3{grid-template-columns:1fr}
  .process-item{grid-template-columns:56px 1fr}
  .form-grid{grid-template-columns:1fr}
  .band-inner{flex-direction:column;align-items:flex-start}
  .hero-stats{grid-template-columns:1fr}
  .stat-strip .wrap{grid-template-columns:1fr}
  .stat-strip .stat{border-left:none;border-top:1px solid var(--line)}
  .stat-strip .stat:first-child{border-top:none}
  .footer-grid{grid-template-columns:1fr}
  .hero{padding:80px 0 64px}
}

/* Mobile nav drawer */
.mobile-nav{
  display:none;
  position:fixed;top:84px;right:0;bottom:0;left:0;
  background:var(--ink);
  z-index:49;
  padding:32px clamp(20px,5vw,56px);
  overflow-y:auto;
}
.mobile-nav.open{display:block}
.mobile-nav a{display:block;font-family:var(--font-mono);font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-on-dark);padding:16px 0;border-bottom:1px solid var(--line-dark)}
.mobile-nav .btn{margin-top:24px}
