/* Cortessian homepage — Analyst iteration
   Loaded after the existing site-wide stylesheet so this can be reviewed
   without yet changing the other production pages. */

:root {
  --analyst-bg: #FAFFF2;
  --analyst-surface: #E5E7E1;
  --analyst-text: #111814;
  --analyst-green: #2E4A3F;
  --analyst-secondary: #8CA695;
  --analyst-rule: rgba(46, 74, 63, .18);
  --analyst-dark: #101915;
  --analyst-muted: #536159;
}

body.analyst-home {
  background: var(--analyst-bg);
  color: var(--analyst-text);
  font-family: "DM Sans", sans-serif;
}

.analyst-home h1,
.analyst-home h2,
.analyst-home h3,
.analyst-home .brand span {
  color: var(--analyst-text);
  font-family: "Newsreader", serif;
}

.analyst-home .eyebrow,
.analyst-home .route-num,
.analyst-home .route-type,
.analyst-home .hero-meta,
.analyst-home .footer-col h4,
.analyst-home .footer-bottom {
  font-family: "IBM Plex Mono", monospace;
}

.analyst-home .site-nav {
  background: rgba(250,255,242,.96);
  border-bottom: 1px solid var(--analyst-rule);
}

.analyst-home .site-nav .bar {
  max-width: 1560px;
}

.analyst-home .site-nav .brand,
.analyst-home .site-nav .mark {
  color: var(--analyst-green);
}

.analyst-home .nav-links > li > a:not(.btn) {
  color: var(--analyst-text);
}

.analyst-home .btn {
  border-radius: 4px;
}

.analyst-home .btn-primary {
  background: var(--analyst-green);
  border-color: var(--analyst-green);
  color: #fff;
}

.analyst-home .btn-primary:hover {
  background: #1f352d;
  border-color: #1f352d;
}

.analyst-home .btn-outline {
  background: transparent;
  border-color: rgba(17,24,20,.38);
  color: var(--analyst-text);
}

.analyst-home a:focus-visible,
.analyst-home button:focus-visible {
  outline: 3px solid var(--analyst-secondary);
  outline-offset: 4px;
}

/* Hero */
.analyst-home .analyst-hero {
  min-height: min(820px, calc(100vh - 72px));
  padding: clamp(84px, 9vw, 150px) 0 clamp(88px, 10vw, 160px);
  border-bottom: 1px solid var(--analyst-rule);
  background:
    linear-gradient(rgba(46,74,63,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46,74,63,.055) 1px, transparent 1px),
    var(--analyst-bg);
  background-size: 82px 82px;
}

.analyst-home .hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(300px, 4fr);
  gap: clamp(60px, 8vw, 130px);
  align-items: center;
  max-width: 1500px;
}

.analyst-home .hero-copy {
  max-width: 900px;
}

.analyst-home .hero-copy h1 {
  margin: 22px 0 46px;
  max-width: 10ch;
  font-size: clamp(4.7rem, 7.7vw, 8.4rem);
  font-weight: 400;
  line-height: .87;
  letter-spacing: -.045em;
}

.analyst-home .hero-sub {
  max-width: 760px;
  margin: 0;
  font-size: clamp(1.16rem, 1.45vw, 1.38rem);
  line-height: 1.55;
  color: var(--analyst-text);
}

.analyst-home .hero-ctas {
  margin-top: 34px;
}

.analyst-home .hero-meta {
  margin-top: 38px;
  color: var(--analyst-muted);
  font-size: .82rem;
  letter-spacing: .035em;
}

.analyst-home .eyebrow {
  color: var(--analyst-green);
  font-size: .77rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.analyst-home .hero-figure {
  position: relative;
  min-height: 570px;
  border-left: 1px solid var(--analyst-rule);
  border-right: 1px solid var(--analyst-rule);
  background: linear-gradient(180deg, rgba(229,231,225,.12), rgba(140,166,149,.12));
  overflow: hidden;
}

.analyst-home .hero-figure--signals {
  display:flex;
  align-items:stretch;
  justify-content:center;
}

.analyst-home .signal-diagram {
  width:100%;
  height:100%;
  min-height:570px;
}

.analyst-home .signal-grid {
  fill:none;
  stroke:rgba(46,74,63,.075);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}

.analyst-home .signal-paths {
  fill:none;
  stroke:rgba(46,74,63,.42);
  stroke-width:1.35;
  vector-effect:non-scaling-stroke;
}

.analyst-home .signal-sources {
  fill:var(--analyst-secondary);
}

.analyst-home .decision-ring {
  fill:rgba(250,255,242,.72);
  stroke:rgba(46,74,63,.52);
  stroke-width:1.35;
  vector-effect:non-scaling-stroke;
}

.analyst-home .decision-core,
.analyst-home .formed-view-point {
  fill:var(--analyst-green);
}

.analyst-home .decision-axis {
  fill:none;
  stroke:rgba(46,74,63,.18);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}

.analyst-home .formed-view {
  fill:none;
  stroke:var(--analyst-green);
  stroke-width:1.6;
  vector-effect:non-scaling-stroke;
}

/* Shared sections */
.analyst-home .block {
  padding: clamp(90px, 9vw, 150px) 0;
  border-bottom: 1px solid var(--analyst-rule);
}

.analyst-home .block h2 {
  font-weight: 400;
  letter-spacing: -.025em;
}

/* Problem */
.analyst-home .problem-grid {
  display:grid;
  grid-template-columns: minmax(0, 7fr) minmax(300px, 4fr);
  gap: clamp(70px, 10vw, 170px);
  align-items:start;
  max-width: 1500px;
}

.analyst-home .problem-heading h2 {
  max-width: 13ch;
  margin: 24px 0 0;
  font-size: clamp(3.4rem, 5.3vw, 6.2rem);
  line-height: .98;
}

.analyst-home .problem-copy {
  padding-top: 52px;
  max-width: 540px;
  font-size: 1.12rem;
  line-height: 1.68;
}
.analyst-home .problem-copy .lede { font-size:1.22rem; }
.analyst-home .problem-copy p + p { margin-top: 28px; }

/* Ways of working */
.analyst-home .work-section {
  background: rgba(229,231,225,.24);
}

.analyst-home .work-intro {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:60px;
  align-items:end;
  margin-bottom:72px;
}

.analyst-home .work-intro h2 {
  margin:20px 0 0;
  font-size:clamp(3rem,4.5vw,5rem);
  line-height:1;
}
.analyst-home .work-intro > p {
  max-width:560px;
  margin:0 0 6px auto;
  font-size:1.12rem;
  line-height:1.6;
  color:var(--analyst-muted);
}

.analyst-home .routes {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--analyst-rule);
  border-bottom:1px solid var(--analyst-rule);
}

.analyst-home .route {
  position:relative;
  min-height:390px;
  padding:34px 42px 40px 0;
}
.analyst-home .route + .route {
  border-left:1px solid var(--analyst-rule);
  padding-left:42px;
}
.analyst-home .route-num {
  display:block;
  margin-bottom:44px;
  font-size:2.4rem;
  line-height:1;
  color:var(--analyst-secondary);
}
.analyst-home .route-type {
  display:block;
  margin-bottom:16px;
  color:var(--analyst-green);
  font-size:.76rem;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.analyst-home .route h3 {
  margin:0 0 20px;
  font-size:clamp(1.7rem,2vw,2.2rem);
  font-weight:500;
}
.analyst-home .route p {
  max-width:31ch;
  color:var(--analyst-muted);
  line-height:1.65;
}
.analyst-home .text-link {
  display:inline-block;
  margin-top:18px;
  color:var(--analyst-green);
  font-weight:600;
  text-decoration:none;
}
.analyst-home .text-link:hover { text-decoration:underline; text-underline-offset:4px; }

/* Audience */
.analyst-home .audience-layout {
  display:grid;
  grid-template-columns:minmax(250px, 4fr) minmax(0, 8fr);
  gap:clamp(70px,9vw,150px);
  max-width:1500px;
}
.analyst-home .audience-heading {
  position:sticky;
  top:130px;
  align-self:start;
}
.analyst-home .audience-heading h2 {
  max-width:9ch;
  margin:22px 0 0;
  font-size:clamp(3rem,4.5vw,5rem);
  line-height:1;
}
.analyst-home .audience-matrix {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--analyst-rule);
}
.analyst-home .audience-matrix article {
  min-height:250px;
  padding:36px 40px 38px 0;
  border-bottom:1px solid var(--analyst-rule);
}
.analyst-home .audience-matrix article:nth-child(even) {
  border-left:1px solid var(--analyst-rule);
  padding-left:40px;
}
.analyst-home .audience-matrix h3 {
  margin:0 0 18px;
  font-size:1.75rem;
  font-weight:500;
}
.analyst-home .audience-matrix p {
  margin:0;
  color:var(--analyst-muted);
  line-height:1.65;
}

/* CTA */
.analyst-home .cta-band {
  padding:clamp(80px,8vw,125px) 0;
  background:var(--analyst-dark);
  color:#f4f8ef;
}
.analyst-home .cta-grid {
  display:grid;
  grid-template-columns:minmax(0,7fr) minmax(240px,3fr);
  gap:80px;
  align-items:end;
  max-width:1500px;
}
.analyst-home .cta-band h2 {
  max-width:17ch;
  margin:0 0 22px;
  color:#f4f8ef;
  font-size:clamp(3rem,4.5vw,5rem);
  font-weight:400;
  line-height:1;
}
.analyst-home .cta-band p {
  max-width:620px;
  margin:0;
  color:#cbd4cb;
  font-size:1.12rem;
  line-height:1.65;
}

.analyst-home .cta-band .btn { justify-self:end; }
.analyst-home .cta-band .btn {
  margin-top: 32px;
  justify-self: auto;
}

/* Footer: no Oxford Review badge */
.analyst-home .site-footer {
  background:var(--analyst-bg);
  color:var(--analyst-text);
  border-top:0;
}
.analyst-home .site-footer .brand,
.analyst-home .site-footer .mark { color:var(--analyst-green); }
.analyst-home .site-footer .brand span { color:var(--analyst-text); }
.analyst-home .site-footer p,
.analyst-home .site-footer a,
.analyst-home .footer-bottom { color:var(--analyst-muted); }
.analyst-home .footer-bottom { border-top:1px solid var(--analyst-rule); }

@media (max-width: 900px) {
  .analyst-home .hero-grid,
  .analyst-home .problem-grid,
  .analyst-home .work-intro,
  .analyst-home .audience-layout,
  .analyst-home .cta-grid { grid-template-columns:1fr; }

  .analyst-home .analyst-hero { min-height:0; }
  .analyst-home .hero-copy h1 { max-width:9ch; font-size:clamp(4rem,12vw,6.4rem); }
  .analyst-home .hero-figure { min-height:360px; margin-top:10px; }
  .analyst-home .signal-diagram { min-height:360px; }
  .analyst-home .problem-copy { padding-top:0; }
  .analyst-home .work-intro > p { margin:0; }
  .analyst-home .routes { grid-template-columns:1fr; }
  .analyst-home .route { min-height:0; padding:34px 0 42px; }
  .analyst-home .route + .route { border-left:0; border-top:1px solid var(--analyst-rule); padding-left:0; }
  .analyst-home .route-num { margin-bottom:24px; }
  .analyst-home .audience-heading { position:static; }
  .analyst-home .cta-band .btn { justify-self:start; }
}

@media (max-width: 620px) {
  .analyst-home .analyst-hero { padding-top:68px; }
  .analyst-home .hero-copy h1 { font-size:clamp(3.6rem,17vw,5rem); }
  .analyst-home .hero-figure { min-height:300px; }
  .analyst-home .signal-diagram { min-height:300px; }
  .analyst-home .audience-matrix { grid-template-columns:1fr; }
  .analyst-home .audience-matrix article,
  .analyst-home .audience-matrix article:nth-child(even) {
    min-height:0;
    padding:30px 0;
    border-left:0;
  }
  .analyst-home .cta-grid { gap:42px; }
}
