/* Moonshine Capital Partner Network — visual direction v2.
 * Layout-only override. Existing program registry, routes and attribution stay unchanged. */
:root {
  color-scheme: light;
  --ink: #10172c;
  --ink-soft: #161f36;
  --paper: #f7f9fe;
  --paper-muted: #6b7793;
  --gold: #8b5cf6;
  --gold-bright: #45e68f;
  --line: rgba(22, 31, 54, 0.15);
  --content: 1280px;
  --gutter: clamp(1.1rem, 5vw, 5rem);
  background: #f7f9fe;
  color: #11192d;
}
body { background: #f7f9fe; }
::selection { background: #c9b8ff; color: #121a30; }
a:focus-visible { outline: 3px solid #6943ff; outline-offset: 4px; }
.site-header {
  position: relative;
  inset: auto;
  color: #121c34;
  background: #fff;
  border-bottom: 1px solid #e8ecf7;
}
.nav-shell { min-height: 84px; }
.wordmark { font-size: 0.9rem; color: #121a31; letter-spacing: -0.045em; }
.wordmark::before {
  content: "◆";
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-right: 12px;
  font-size: 1.2rem;
  color: #fff;
  border-radius: 12px;
  background: linear-gradient(135deg, #3065f5, #824cf8);
  box-shadow: 0 10px 22px rgba(57, 77, 214, .18);
}
.nav-link { min-height: 44px; display: inline-flex; align-items: center; color: #56637e; font-weight: 700; }
.nav-link:hover { color: #4935d7; }
.button { min-height: 52px; border-radius: 16px; padding: 0.92rem 1.35rem; font-weight: 800; font-size: .91rem; letter-spacing: -.012em; gap: .8rem; }
.button-small {
  background: #111a30;
  border-color: #111a30;
  color: #fff;
  min-height: 45px;
  padding: .65rem 1.05rem;
  border-radius: 999px;
}
.button-small:hover { background: #354df0; border-color: #354df0; color: #fff; }
.button-primary {
  background: linear-gradient(115deg, #295ff0 0%, #6445f4 100%);
  color: #fff;
  box-shadow: 0 14px 30px rgba(51, 81, 238, .25);
}
.button-primary:hover { color: #fff; background: linear-gradient(115deg, #2154df 0%, #542fdc 100%); }
.button-outline { background: #fff; border-color: #d9e0ef; color: #1a2643; }
.button-outline:hover { border-color: #6c5cf7; color: #4935d7; }
.hero { color: #121a2e; }
.hero-directory {
  min-height: auto;
  padding: clamp(4.5rem, 9vw, 8rem) var(--gutter) clamp(5rem, 9vw, 8rem);
  background: radial-gradient(circle at 82% 23%, rgba(118, 100, 255, .13), transparent 34%),
              radial-gradient(circle at 36% 5%, rgba(64, 153, 253, .07), transparent 43%), #fbfcff;
}
.hero-directory::before { width: 60vw; height: 60vw; top: 48%; right: -27vw; box-shadow: none; border: none; background: radial-gradient(circle, rgba(91, 114, 251, .07), transparent 62%); }
.hero-directory::after { display: none; }
.hero-directory .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  gap: clamp(2.5rem, 5vw, 5.8rem);
  align-items: center;
}
.hero-directory .hero-inner > *:not(.hero-art) { max-width: none; }
.hero-copy { min-width: 0; }
.hero-kicker {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  border: 1px solid #dce5ff;
  color: #3756e7;
  background: #edf3ff;
  border-radius: 999px;
  padding: .55rem .9rem;
  font-weight: 900;
  letter-spacing: .08em;
  font-size: .66rem;
}
.hero-kicker span { opacity: .55; }
.hero-directory h1 {
  max-width: 760px;
  font-weight: 800;
  font-size: clamp(3.15rem, 5.4vw, 5.8rem);
  line-height: 1.04;
  letter-spacing: -.075em;
  white-space: normal;
  color: #111a2f;
}
.gradient-text {
  display: block;
  background: linear-gradient(105deg, #2668f2 0%, #574cf2 54%, #8846e4 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.hero-directory .hero-summary { color: #5b6984; font-weight: 500; margin: 1.65rem 0 1.9rem; max-width: 550px; font-size: clamp(1.05rem, 1.4vw, 1.18rem); }
.hero-cta-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero-context { max-width: 520px; margin: 1.4rem 0 0; color: #737f95; font-size: .77rem; line-height: 1.6; }
.hero-preview {
  position: relative;
  isolation: isolate;
  min-width: 0;
  height: clamp(375px, 39vw, 520px);
  overflow: hidden;
  border-radius: 34px;
  border: 10px solid #fff;
  background: linear-gradient(150deg, #334a6d, #151e37);
  box-shadow: 0 38px 86px rgba(33, 47, 87, .21), 0 2px 5px rgba(25, 38, 76, .08);
}
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: cover; }
.hero-preview::after { content: ""; position: absolute; inset: 0; z-index: -0; background: linear-gradient(160deg, rgba(18, 23, 46, .18), transparent 50%, rgba(12, 20, 46, .48)); pointer-events:none; }
.preview-topline, .preview-panel, .preview-corner { position: absolute; z-index: 1; }
.preview-topline { top: 20px; right: 18px; color: #fff; background: rgba(20, 30, 59, .88); backdrop-filter: blur(10px); padding: 13px 17px; border: 1px solid rgba(255,255,255,.22); border-radius: 13px; letter-spacing: .095em; font-size: .65rem; font-weight: 900; }
.preview-status-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #45e68f; }
.preview-panel {
  width: min(78%, 315px);
  bottom: 25px;
  left: 24px;
  background: rgba(255,255,255,.96);
  border-radius: 23px;
  padding: 23px 25px;
  box-shadow: 0 15px 40px rgba(11, 24, 55, .2);
  display: grid;
  gap: 6px;
}
.preview-eyebrow { color: #3b5ff2; font-size: .65rem; font-weight: 900; letter-spacing: .14em; }
.preview-panel strong { font-family: Manrope, sans-serif; font-size: clamp(1.15rem, 2vw, 1.65rem); letter-spacing: -.055em; }
.preview-panel-small { color: #5a6881; font-size: .77rem; }
.preview-corner {
  left: 20px;
  top: 20px;
  padding: 12px 16px;
  border-radius: 12px;
  color: #151e32;
  background: rgba(255,255,255,.95);
  font-size: .63rem;
  font-weight: 900;
  letter-spacing: .07em;
}
.preview-corner span { color: #3a57ed; }
.journey-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 1.65rem max(var(--gutter), calc((100vw - 1280px)/2));
  background: #121c34;
  color: #fff;
}
.journey-item { display: flex; align-items: center; gap: 17px; padding: .55rem 2.2rem; border-right: 1px solid rgba(255,255,255,.16); min-width: 0; }
.journey-item:first-child { padding-left: 0; }
.journey-item:last-child { border-right: 0; }
.journey-number { display: grid; place-items:center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 12px; color: #a8b6ff; background: #222f54; font-size: .73rem; font-weight: 900; }
.journey-item strong { display: block; font-size: .94rem; font-weight: 900; }
.journey-item small { display: block; margin-top: 4px; color: #97a5c0; font-size: .75rem; line-height: 1.4; }
.content-section { background: #f5f7fc; }
#programs { padding-block: clamp(5rem, 8vw, 8rem); }
.section-heading .section-kicker { color: #4d52e9; }
.section-heading h2, .moonshine-copy h2, .details-inner h2, .separate-path-inner h2 { font-weight: 800; letter-spacing: -.06em; }
.section-heading h2 { color: #121a31; }
.section-intro { color: #64708b; }
.program-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  border-top: 0;
}
.program-row {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  min-height: 265px;
  gap: 1.25rem;
  padding: clamp(1.4rem, 2.3vw, 2.1rem);
  border: 1px solid #e4e8f3;
  border-radius: 23px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(17, 33, 69, .035);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.program-row:hover { transform: translateY(-4px); border-color: #b8c6ff; box-shadow: 0 18px 42px rgba(32, 44, 99, .10); }
.program-row:first-child {
  grid-column: span 2;
  background: linear-gradient(125deg, #172449 0%, #2237a0 100%);
  border-color: #2e47af;
  color: #fff;
  box-shadow: 0 20px 45px rgba(31, 58, 142, .12);
}
.program-number { display: grid; place-items: center; width: 42px; height: 42px; align-self: flex-start; padding: 0; color: #5363d9; background: #edf0ff; border-radius: 13px; font-weight: 900; }
.program-row:first-child .program-number { color: #fff; background: rgba(255,255,255,.14); }
.program-copy h3 { margin: 0.45rem 0 0.5rem; color: #17203b; font-size: clamp(1.35rem, 2.05vw, 1.95rem); font-weight: 800; }
.program-row:first-child h3 { font-size: clamp(1.7rem, 2.9vw, 2.6rem); color: #fff; }
.item-kicker { color: #596bba; font-weight: 800; }
.program-row:first-child .item-kicker { color: #a7baff; }
.item-description { color: #68748f; }
.program-row:first-child .item-description { max-width: 490px; color: #ced7fa; }
.program-actions { margin-top: auto; gap: .45rem; }
.program-actions .text-arrow { color: #294fe5; }
.program-actions .text-arrow:hover { color: #593cf3; }
.program-row:first-child .text-arrow { color: #bde2ff; }
.program-row:first-child .text-arrow::after { color: #fff; }
.resource-link { color: #73809b; }
.moonshine-section { background: radial-gradient(circle at 100% 0%, rgba(117,92,246,.29),transparent 44%),linear-gradient(135deg,#10182f,#210641); color: #fff; }
.moonshine-copy h2 { color: #fff; }
.moonshine-copy .section-kicker { color: #45e68f; }
.moonshine-copy .section-intro { color: #aeb9d2; }
.moonshine-actions .button-light { background: #45e68f; color: #142331; border-radius: 15px; }
.moonshine-actions .button-light:hover { background: #83ffc0; }
.text-arrow-light { color: #edf2ff; }
.text-arrow-light::after { color: #45e68f; }
.site-footer { background: #0b1225; }
.footer-brand { color: #9db0ff; }
.disclosures { color: #8c9bb8; }
.copyright { color: #71809f; }
.hero-campaign {
  background: radial-gradient(circle at 84% 35%, rgba(113,88,255,.22), transparent 39%), linear-gradient(120deg,#111a35,#1d1550);
  color: #fff;
}
.hero-campaign .hero-kicker { color: #a7c0ff; background: rgba(74,105,247,.12); border-color: rgba(137,163,255,.24); }
.hero-campaign h1 { color: #fff; font-weight: 800; }
.hero-campaign .hero-summary { color: #c1c9e2; }
.hero-campaign .button-primary { background: #45e68f; color: #12213d; box-shadow: 0 14px 35px rgba(69,230,143,.15); }
.hero-campaign .button-primary:hover { background: #8cffbd; color: #12213d; }
.hero-campaign .text-arrow.provider-info-link { color: #d6ddff; }
.campaign-graphic { border-radius: 32px; border: 1px solid rgba(155,170,255,.30); color: #b4a4ff; box-shadow: 23px 23px 0 rgba(116,100,245,.08); background: linear-gradient(145deg,rgba(81,72,185,.25),rgba(12,20,55,.65)); }
.hero-note { color: #aeb8d2; }
.steps-section .steps-grid { gap: 1rem; border: 0; }
.step-item, .step-item:first-child { border: 1px solid #e2e8f5; border-radius: 20px; padding: 2rem; background: #fff; }
.step-item h3 { color: #15213c; font-weight: 800; }
.step-number { color: #4358e5; font-weight: 900; }
.details-section { background: #17223d; }
.detail-list li::before { background: #45e68f; }
.separate-path-section { background: #251852; }
.disclosure-content { background: #f7f9fe; }
.disclosure-article h1, .disclosure-article h2 { color: #12203b; font-weight: 800; }
.disclosure-article .section-kicker { color: #584ce7; }
.not-found { color: #131d35; background:#f7f9fe; }
.not-found .hero-kicker { color: #3756e7; }
.not-found .site-footer { color: #e9eeff; }
@media (max-width: 1020px) {
  .hero-directory .hero-inner { grid-template-columns: 1fr; }
  .hero-directory .hero-copy { max-width: 720px; }
  .hero-preview { max-width: 720px; width: 100%; height: 440px; }
  .program-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .program-row:first-child { grid-column: span 2; }
  .journey-item { padding-inline: 1rem; }
}
@media (max-width: 760px) {
  .site-header .nav-shell { min-height: 72px; }
  .nav-link { display: none; }
  .hero-directory { padding-top: 4rem; padding-bottom: 4.5rem; }
  .hero-directory .hero-inner { display: grid; gap: 2rem; }
  .hero-directory h1 { font-size: clamp(2.85rem, 9.5vw, 4.5rem); }
  .hero-directory .hero-summary { font-size: 1rem; }
  .hero-preview { height: clamp(285px, 70vw, 390px); border-width: 7px; border-radius: 27px; }
  .preview-panel { padding: 14px 17px; bottom: 12px; left: 12px; border-radius: 16px; }
  .preview-topline { top: 12px; right: 12px; }
  .preview-corner { left: 12px; top: 12px; }
  .journey-strip { grid-template-columns: 1fr; padding: 1rem var(--gutter); }
  .journey-item, .journey-item:first-child { padding: .8rem .1rem; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .journey-item:last-child { border: 0; }
  .program-list { grid-template-columns: 1fr; }
  .program-row, .program-row:first-child { grid-column: 1; min-height: 235px; }
  .program-actions { grid-column: auto; margin-top: auto; }
  .hero-campaign { padding-top: 5rem; }
  .hero-campaign .hero-inner { display: block; }
  .hero-campaign .campaign-graphic { opacity: .2; }
  .steps-section .steps-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  .step-item, .step-item:first-child { border: 1px solid #e2e8f5; padding: 1.7rem; }
  .moonshine-inner,.separate-path-inner { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .nav-shell { gap: .45rem; }
  .wordmark { font-size: .65rem; }
  .wordmark::before { width: 29px; height: 29px; margin-right: 7px; border-radius: 9px; }
  .nav-actions { gap: .35rem; }
  .button-small { font-size: .68rem; padding: .58rem .68rem; }
  .hero-directory h1 { font-size: clamp(2.6rem, 11vw, 3.2rem); }
  .hero-cta-row { flex-direction: column; }
  .hero-cta-row .button { width: 100%; }
  .preview-topline { font-size: .54rem; }
  .preview-corner { font-size: .5rem; }
  .preview-panel { max-width: 80%; }
}
@media (prefers-reduced-motion: reduce) {
  .program-row,.button { transition: none; }
  .program-row:hover,.button:hover { transform: none; }
}
