/* =====================================================================
   RCM CAPITAL ADVISORS — DESIGN TOKENS
   Hand these to the build. Everything on the site derives from them.
   ---------------------------------------------------------------------
   PALETTE
     --ink      #12293C  headings, primary text on light
     --slate    #3D5B72  secondary text, subheads
     --grey     #6E8093  captions, meta, muted
     --paper    #FBFBFA  page background
     --mist     #EAEFF3  panel fill (pull-quotes, tables, cards)
     --rule     #D3DDE4  hairlines, borders
     --rcm-blue #4E82B0  from the RCM logo — links, secondary marks
     --rcm-rust #DD5F2B  from the RCM logo — accent rules ONLY, never fill
   TYPE
     Display : Newsreader (serif, 300/400) — headlines, pull-quotes
     Body    : IBM Plex Sans (300/400/500) — running text, UI
     Utility : IBM Plex Mono (400/500) — eyebrows, numerals, labels
   SPACING  8px base. Section rhythm: 96px desktop / 56px mobile.
   MOTION   One idea only: a 500ms fade-and-rise on entry. Nothing else.
   ===================================================================== */

:root{
  --ink:#12293C; --slate:#3D5B72; --grey:#6E8093;
  --paper:#FBFBFA; --mist:#EAEFF3; --rule:#D3DDE4;
  --rcm-blue:#4E82B0; --rcm-rust:#DD5F2B;
  --display:"Newsreader",Georgia,serif;
  --body:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --shell:1480px; --gut:clamp(20px,5vw,64px);
  --sect:clamp(56px,8vw,96px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-weight:300; font-size:17px; line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:var(--rcm-blue); text-decoration:none}
a:hover{text-decoration:underline; text-underline-offset:3px}
:focus-visible{outline:2px solid var(--rcm-rust); outline-offset:3px}

/* ---------- shared type ---------- */
.eyebrow{
  font-family:var(--mono); font-size:11px; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--grey);
  margin:0 0 18px;
}
.eyebrow--rust{color:var(--rcm-rust)}
h1,h2,h3,h4{font-family:var(--display); font-weight:300; color:var(--ink); margin:0}
h1{font-size:clamp(2.35rem,5.1vw,3.9rem); line-height:1.08; letter-spacing:-.018em}
h2{font-size:clamp(1.75rem,3.3vw,2.6rem); line-height:1.16; letter-spacing:-.012em}
h3{font-size:clamp(1.2rem,2vw,1.5rem); line-height:1.28}
h4{font-family:var(--body); font-weight:600; font-size:.95rem; letter-spacing:.01em}
p{margin:0 0 1.05em}
.lede{font-size:clamp(1.08rem,1.6vw,1.28rem); line-height:1.62; color:var(--slate); font-weight:300}
em{font-family:var(--display); font-style:italic}
strong{font-weight:500; color:var(--ink)}
.measure{max-width:64ch}

/* ---------- shell ---------- */
.shell{max-width:var(--shell); margin:0 auto; padding-left:var(--gut); padding-right:var(--gut)}

/* ---------- masthead ---------- */
.masthead{
  position:sticky; top:0; z-index:80;
  background:rgba(251,251,250,.94); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
}
.masthead__inner{display:flex; align-items:center; justify-content:space-between; gap:24px; height:78px}
.mark{display:flex; align-items:center; gap:14px}
.mark:hover {text-decoration: none;}
.mark__glyph{display:flex; /*height:34px;*/ border-radius:2px; overflow:hidden}
.mark__glyph span{
  width:34px; display:grid; place-items:center;
  font-family:var(--body); font-weight:600; font-size:17px; color:#fff; letter-spacing:.02em;
}
.mark__glyph span:nth-child(1){background:var(--rcm-rust)}
.mark__glyph span:nth-child(2){background:#93A2AC}
.mark__glyph span:nth-child(3){background:var(--rcm-blue)}
.mark__text{line-height:1.15}
.mark__name{font-family:var(--display); font-size:1.12rem; color:var(--ink); display:block}
.mark__sub{font-family:var(--mono); font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey)}

.nav{display:flex; align-items:center; gap:20px}
.nav a:not(.nav__cta) {
  font-size:13.5px; font-weight:400; color:var(--slate); text-decoration:none;
  padding:6px 0; border-bottom:1.5px solid transparent; white-space:nowrap;
}
.nav a:not(.nav__cta):hover{color:var(--ink); text-decoration:none; border-bottom-color:var(--rule)}
.nav a[aria-current="page"]:not(.nav__cta){color:var(--ink); border-bottom-color:var(--rcm-rust)}
.nav__cta{
  font-family:var(--body); font-size:13px; letter-spacing:.02em;
  border:1px solid var(--ink); color:var(--ink); padding:9px 16px; border-radius:2px;
}
.nav__cta:hover{background:var(--ink); color:#fff; text-decoration: none; border-bottom-color:var(--ink)}
.burger{display:none; background:none; border:1px solid var(--rule); border-radius:2px; padding:9px 12px; cursor:pointer; font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--ink)}

@media(max-width:1490px){
	.nav {
		gap: 15px;
	}
}

@media(max-width:1439px){
  .nav{
    position:fixed; inset:78px 0 auto; flex-direction:column; align-items:stretch; gap:0;
    background:var(--paper); border-bottom:1px solid var(--rule); padding:8px var(--gut) 24px;
    max-height:calc(100vh - 78px); overflow:auto; display:none;
  }
  .nav.is-open{display:flex}
  .nav a:not(.nav__cta){padding:13px 0; border-bottom:1px solid var(--rule); font-size:15px}
  .nav a[aria-current="page"]:not(.nav__cta){border-bottom-color:var(--rcm-rust)}
  .nav__cta{margin-top:16px; text-align:center; border:1px solid var(--ink); border-radius:2px}
  .burger{display:block}
}

@media(max-width:550px){
	.masthead__inner {
		height: 140px;
	}
	.mark {
		flex-direction: column;
	}
	.nav{
		inset:140px 0 auto;
	}
}

/* ---------- page frame ---------- */
.page{display:none}
.page.is-active{display:block}

.pagehead{border-bottom:1px solid var(--rule); padding:clamp(48px,7vw,84px) 0 clamp(36px,5vw,56px)}
.pagehead__grid{display:grid; grid-template-columns:96px 1fr; gap:0 32px; align-items:start}
.folio{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--grey);
  padding-top:10px; border-top:2px solid var(--rcm-rust); display:inline-block; min-width:74px;
}
.pagehead h1{margin-bottom:20px}
.pagehead .lede{max-width:60ch; margin:0}
@media(max-width:760px){ .pagehead__grid{grid-template-columns:1fr; gap:22px} }

.band{padding:var(--sect) 0; border-bottom:1px solid var(--rule)}
.band--mist{background:var(--mist); border-bottom:none}
.band--ink{background:var(--ink); color:#C9D6E0; border-bottom:none}
.band--ink h2,.band--ink h3{color:#fff}
.band--ink .eyebrow{color:#7F9DB6}
.band--ink a{color:#9FC4E2}
.band__head{margin-bottom:clamp(28px,4vw,44px); max-width:62ch}

/* ---------- hero (home) ---------- */
.hero{padding:clamp(64px,9vw,120px) 0 clamp(52px,7vw,88px); border-bottom:1px solid var(--rule)}
.hero__grid{display:grid; grid-template-columns:1.35fr .85fr; gap:clamp(36px,6vw,80px); align-items:start}
.hero h1 .quiet{color:var(--grey)}
.hero h1 em{color:var(--ink)}
.hero__lede{margin-top:26px; max-width:52ch}
.actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px}
.btn{
  font-family:var(--body); font-size:14px; font-weight:400; letter-spacing:.015em;
  padding:13px 22px; border-radius:2px; border:1px solid var(--ink); cursor:pointer;
  background:var(--ink); color:#fff; text-decoration:none; display:inline-block;
}
.btn:hover{background:#0A1C2B; color:#fff; text-decoration:none}
.btn--ghost{background:transparent; color:var(--ink); border-color:var(--rule)}
.btn--ghost:hover{background:transparent; color:var(--ink); border-color:var(--ink); text-decoration:none}

/* SIGNATURE ELEMENT — the questions nobody at the table can answer.
   A margin ledger: hairline column, mono numerals, rust tick per line. */
.ledger{border-top:2px solid var(--ink); padding-top:20px}
.ledger__cap{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey); margin-bottom:14px}
.ledger__item{
  display:grid; grid-template-columns:26px 1fr; gap:14px; align-items:baseline;
  padding:15px 0; border-bottom:1px solid var(--rule);
}
.ledger__n{font-family:var(--mono); font-size:11px; color:var(--rcm-rust); letter-spacing:.06em}
.ledger__q{font-family:var(--display); font-style:italic; font-size:1.12rem; line-height:1.4; color:var(--ink)}
.ledger__foot{font-size:13.5px; color:var(--grey); margin:16px 0 0; line-height:1.6}
@media(max-width:900px){ .hero__grid{grid-template-columns:1fr} }

/* ---------- stat rail ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--rule)}
.stat{background:var(--paper); padding:30px 24px}
.band--ink .stat{background:var(--ink)}
.stat__n{font-family:var(--display); font-size:clamp(2rem,3.6vw,2.9rem); line-height:1; color:var(--ink); display:block}
.band--ink .stat__n{color:#fff}
.stat__l{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); margin-top:12px; display:block; line-height:1.6}
@media(max-width:700px){ .stats{grid-template-columns:repeat(2,1fr)} }

/* ---------- pull statement ---------- */
.statement{border-left:3px solid var(--rcm-rust); padding:4px 0 4px 26px; max-width:70ch}
.statement p{font-family:var(--display); font-size:clamp(1.25rem,2.3vw,1.7rem); line-height:1.42; color:var(--ink); margin:0}

/* ---------- generic grids ---------- */
.grid2{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,3.5vw,44px)}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,40px)}
@media(max-width:860px){ .grid2,.grid3{grid-template-columns:1fr} }

.card{border-top:2px solid var(--ink); padding-top:22px}
.card h3{margin-bottom:12px}
.card p{color:var(--slate); font-size:16px; margin-bottom:0}
.card__tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--rcm-rust); display:block; margin-bottom:14px}

/* ---------- teaching list ---------- */
.teach{list-style:none; margin:0; padding:0}
.teach li{border-top:1px solid var(--rule); padding:26px 0; display:grid; grid-template-columns:150px 1fr; gap:12px 40px}
.teach li:last-child{border-bottom:1px solid var(--rule)}
.teach dt,.teach__k{font-family:var(--mono); font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--rcm-rust); line-height:1.7}
.teach__v{color:var(--slate); font-size:16px}
.teach__v strong{display:block; font-family:var(--display); font-weight:400; font-size:1.2rem; color:var(--ink); margin-bottom:8px; line-height:1.35}
@media(max-width:760px){ .teach li{grid-template-columns:1fr; gap:10px} }

/* ---------- advisor profiles ---------- */
.advisor{border-top:1px solid var(--rule); padding:clamp(32px,4.5vw,52px) 0}
.advisor:first-of-type{border-top:2px solid var(--ink)}
.advisor__grid{display:grid; grid-template-columns:230px 1fr; gap:clamp(20px,4vw,56px)}
.advisor__roman{font-family:var(--display); font-size:2.6rem; color:var(--rcm-rust); line-height:1; display:block; margin-bottom:14px}
.advisor__disc{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); line-height:1.9}
.advisor h3{margin-bottom:18px; max-width:34ch}
.advisor ul{margin:0 0 22px; padding:0; list-style:none}
.advisor ul li{position:relative; padding-left:20px; margin-bottom:13px; color:var(--slate); font-size:16px; line-height:1.68}
.advisor ul li::before{content:""; position:absolute; left:0; top:.72em; width:8px; height:1px; background:var(--rcm-rust)}
.brings{background:var(--mist); padding:18px 22px; border-radius:2px; font-size:15.5px; color:var(--ink); margin:0}
.brings b{font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--rcm-rust); display:block; margin-bottom:6px; font-weight:500}
@media(max-width:820px){ .advisor__grid{grid-template-columns:1fr} .advisor__roman{margin-bottom:6px} }

/* ---------- process ---------- */
.stage{display:grid; grid-template-columns:70px 300px 1fr; gap:0 36px; border-top:1px solid var(--rule); padding:26px 0; align-items:start}
.stage:last-of-type{border-bottom:1px solid var(--rule)}
.stage__n{font-family:var(--mono); font-size:12px; color:var(--rcm-rust); letter-spacing:.08em; padding-top:5px}
.stage__t{font-family:var(--display); font-size:1.22rem; line-height:1.32; color:var(--ink)}
.stage__d{color:var(--slate); font-size:16px}
.stage__d p{margin:0}
@media(max-width:900px){ .stage{grid-template-columns:44px 1fr; gap:6px 18px} .stage__d{grid-column:2} }

/* ---------- lens table ---------- */
.lens{border-top:2px solid var(--ink); padding:28px 0; display:grid; grid-template-columns:200px 1fr; gap:14px 40px}
.lens + .lens{border-top:1px solid var(--rule)}
.lens__name{font-family:var(--display); font-size:1.45rem; color:var(--ink); line-height:1.2}
.lens__q{font-family:var(--display); font-style:italic; color:var(--rcm-blue); font-size:1.02rem; margin-top:8px; display:block; line-height:1.45}
.lens__body{color:var(--slate); font-size:16px}
.lens__body p{margin:0}
@media(max-width:760px){ .lens{grid-template-columns:1fr} }

/* ---------- notes / panels ---------- */
.panel{background:var(--mist); padding:clamp(26px,4vw,40px); border-radius:2px}
.panel h3{margin-bottom:14px}
.panel p:last-child{margin-bottom:0}
.panel--ruled{background:transparent; border:1px solid var(--rule)}

.checks{list-style:none; margin:0; padding:0}
.checks li{position:relative; padding-left:26px; margin-bottom:16px; color:var(--slate); font-size:16px; line-height:1.68}
.checks li::before{content:""; position:absolute; left:0; top:.68em; width:12px; height:1px; background:var(--rcm-rust)}
.checks li b{color:var(--ink); font-weight:500}

/* ---------- next-page rail ---------- */
.onward{padding:clamp(40px,6vw,72px) 0;padding-left: var(--gut); padding-right: var(--gut); display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap}
.onward__k{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--grey); margin-bottom:10px}
.onward__t{font-family:var(--display); font-size:clamp(1.4rem,2.6vw,2rem); color:var(--ink); line-height:1.2}
.onward a.onward__t:hover{text-decoration:none; color:var(--rcm-blue)}

/* ---------- contact ---------- */
.contact__grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:start}
.vcard{border-top:2px solid var(--rcm-rust); padding-top:22px}
.vcard__name{font-family:var(--display); font-size:1.6rem; color:var(--ink); line-height:1.2}
.vcard__role{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey); margin:10px 0 22px}
.vcard__line{display:grid; grid-template-columns:70px 1fr; gap:16px; padding:11px 0; border-top:1px solid var(--rule); font-size:15.5px}
.vcard__line span:first-child{font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--grey); padding-top:4px}
@media(max-width:820px){ .contact__grid{grid-template-columns:1fr} }

.field{margin-bottom:18px}
.field label{display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--grey); margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%; font-family:var(--body); font-size:15px; font-weight:300; color:var(--ink);
  background:#fff; border:1px solid var(--rule); border-radius:2px; padding:11px 13px;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--rcm-blue); outline:none; box-shadow:0 0 0 3px rgba(78,130,176,.14)}
.formnote{font-size:13px; color:var(--grey); line-height:1.6; margin:14px 0 0}
#form-message {
    margin-top: 18px;
    padding: 12px 15px;
    border-radius: 4px;
    display: none;
}

#form-message.success,
#form-message.error {
    display: block;
}

#form-message.success {
    background: #eaf7ee;
    color: #216e39;
}

#form-message.error {
    background: #fbecec;
    color: #a12622;
}

#discussion-form button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ---------- single post page ---------- */
.post-page section h2 {
    margin-bottom: 12px;
}
.post-page section li {
    margin-bottom: 1.05em;
}

/* ---------- footer ---------- */
.foot{background:var(--ink); color:#93A9BC; padding:clamp(44px,6vw,72px) 0 34px; font-size:14.5px}
.foot a{color:#C3D6E5}
.foot__grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.13)}
.foot h4{color:#fff; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; margin-bottom:16px}
.foot ul{list-style:none; margin:0; padding:0}
.foot ul li{margin-bottom:9px}
.foot__mark .mark__name{color:#fff}
.foot__mark p{max-width:38ch; margin-top:16px; color:#8FA6B9; font-size:14px}
.disclaimer{font-size:11.5px; line-height:1.75; color:#6E8598; margin:26px 0 0; max-width:100ch}
@media(max-width:820px){ .foot__grid{grid-template-columns:1fr; gap:30px} }

/* ---------- motion ---------- */
.rise{opacity:0; transform:translateY(14px)}
.rise.in{opacity:1; transform:none; transition:opacity .55s ease, transform .55s cubic-bezier(.2,.7,.3,1)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise,.rise.in{opacity:1; transform:none; transition:none}
}