:root {
  --ink: #17252b;
  --muted: #5d6a6e;
  --paper: #f5f1e8;
  --cream: #fbf9f4;
  --green: #1f5c50;
  --green-dark: #163f38;
  --sage: #9eb6a8;
  --clay: #c66d4e;
  --line: #d9d4c9;
  --white: #fff;
  --serif: "Fraunces", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans); }
a { color: inherit; }
.concept-bar { display: flex; justify-content: space-between; gap: 20px; padding: 9px 5vw; color: #eaf2ee; background: var(--green-dark); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.site-header { display: flex; align-items: center; justify-content: space-between; min-height: 82px; padding: 0 5vw; background: rgba(251,249,244,.95); border-bottom: 1px solid rgba(23,37,43,.1); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px); }
.brand { display: inline-flex; gap: 11px; align-items: center; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--cream); background: var(--green); font: 600 15px var(--serif); }
.brand strong, .brand small { display: block; }
.brand strong { font: 600 17px var(--serif); }
.brand small { margin-top: 2px; color: var(--clay); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
nav { display: flex; gap: 30px; }
nav a { text-decoration: none; font-size: 13px; font-weight: 600; }
.header-cta { padding: 12px 18px; color: var(--white); background: var(--green); border-radius: 999px; text-decoration: none; font-size: 12px; font-weight: 700; }

.hero { min-height: 690px; display: grid; grid-template-columns: 1.12fr .88fr; align-items: center; gap: 5vw; padding: 80px 7vw 90px; overflow: hidden; background: radial-gradient(circle at 86% 18%, #dbe6df 0, transparent 33%), linear-gradient(135deg, #fbf9f4 45%, #f1ecdf 100%); }
.eyebrow { margin: 0 0 18px; color: var(--clay); font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow.light { color: #e4b29f; }
h1, h2, blockquote { font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; }
h1 { max-width: 780px; margin: 0; font-size: clamp(52px, 6.2vw, 92px); line-height: .99; }
.hero-lede { max-width: 650px; margin: 28px 0; color: var(--muted); font-size: 20px; line-height: 1.55; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 49px; padding: 0 22px; border-radius: 4px; text-decoration: none; font-size: 13px; font-weight: 700; }
.button.primary { color: var(--white); background: var(--green); }
.button.secondary { border: 1px solid var(--line); background: rgba(255,255,255,.5); }
.button.dark { color: var(--white); background: var(--ink); }
.boundary { margin-top: 25px; color: #778286; font-size: 12px; }
.boundary span { color: var(--sage); margin-right: 6px; }

.hero-map { min-height: 480px; position: relative; }
.hero-map svg { width: 100%; height: 100%; position: absolute; inset: 0; fill: none; stroke: rgba(31,92,80,.17); stroke-width: 1; }
.map-center, .orbit { position: absolute; display: grid; place-items: center; border-radius: 50%; text-align: center; z-index: 2; }
.map-center { width: 132px; height: 132px; left: calc(50% - 66px); top: calc(50% - 66px); color: var(--white); background: var(--green); box-shadow: 0 25px 70px rgba(31,92,80,.26); font: 600 23px/1.05 var(--serif); }
.orbit { width: 88px; height: 88px; background: var(--cream); border: 1px solid rgba(31,92,80,.25); font-size: 12px; font-weight: 700; box-shadow: 0 10px 35px rgba(23,37,43,.08); }
.orbit-one { top: 1%; left: 39%; }
.orbit-two { top: 23%; right: 1%; }
.orbit-three { bottom: 3%; right: 20%; }
.orbit-four { bottom: 9%; left: 8%; }
.orbit-five { top: 21%; left: 0; }

.signal-strip { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0 7vw; color: var(--white); background: var(--green); }
.signal-strip div { padding: 27px 28px; border-right: 1px solid rgba(255,255,255,.18); }
.signal-strip div:last-child { border: 0; }
.signal-strip strong, .signal-strip span { display: block; }
.signal-strip strong { font: 500 18px var(--serif); }
.signal-strip span { margin-top: 5px; color: #c7d7d0; font-size: 12px; }

.section { padding: 110px 7vw; }
.section-intro { max-width: 790px; margin-bottom: 48px; }
.section-intro.narrow { max-width: 730px; }
h2 { margin: 0; font-size: clamp(39px, 4.5vw, 65px); line-height: 1.06; }
.section-intro > p:last-child { color: var(--muted); font-size: 17px; line-height: 1.7; }
.choice-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.choice { min-height: 175px; padding: 23px; text-align: left; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: 5px; cursor: pointer; font: inherit; transition: transform .2s, border-color .2s, background .2s; }
.choice:hover { transform: translateY(-3px); border-color: var(--sage); }
.choice.active { color: var(--white); background: var(--green); border-color: var(--green); }
.choice-number { display: block; margin-bottom: 35px; color: var(--clay); font-size: 11px; letter-spacing: .1em; }
.choice.active .choice-number { color: #edb39e; }
.choice strong, .choice small { display: block; }
.choice strong { margin-bottom: 8px; font: 500 20px var(--serif); }
.choice small { color: var(--muted); line-height: 1.5; }
.choice.active small { color: #d7e3de; }
.path-result { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 12px; padding: 32px; background: var(--paper); border-left: 4px solid var(--clay); }
.result-label { margin: 0 0 7px; color: var(--clay); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.path-result h3 { margin: 0 0 8px; font: 500 27px var(--serif); }
.path-result p:last-child { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.6; }
.path-result a, .text-link { flex: 0 0 auto; color: var(--green); font-size: 13px; font-weight: 700; text-decoration: none; }
.path-result a span, .text-link span { margin-left: 8px; }

.decisions { background: var(--paper); }
.decision-flow { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #cfc7b7; }
.decision-flow article { min-height: 255px; padding: 30px 28px; border-right: 1px solid #cfc7b7; }
.decision-flow article:last-child { border: 0; }
.decision-flow span { color: var(--clay); font-size: 11px; }
.decision-flow h3 { margin: 48px 0 12px; font: 500 25px var(--serif); }
.decision-flow p { color: var(--muted); line-height: 1.65; font-size: 14px; }

.home-section { display: grid; grid-template-columns: 1fr 1fr; gap: 7vw; color: var(--white); background: var(--green-dark); }
.home-copy p:not(.eyebrow) { max-width: 650px; color: #c7d7d0; font-size: 16px; line-height: 1.75; }
.home-copy .text-link { display: inline-block; margin-top: 25px; color: #f1b49e; }
.home-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.home-options article { min-height: 185px; padding: 25px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); }
.home-options span { color: #f1b49e; font: 500 23px var(--serif); }
.home-options p { margin-top: 45px; color: #d3dfda; font-size: 13px; line-height: 1.55; }

.workshop { background: var(--cream); }
.workshop-card { display: grid; grid-template-columns: 1.3fr .7fr; border: 1px solid var(--line); background: var(--white); box-shadow: 0 30px 90px rgba(23,37,43,.08); }
.workshop-main { padding: 60px; }
.workshop-main > p:not(.eyebrow) { color: var(--muted); font-size: 17px; line-height: 1.7; }
.workshop-main ul { margin: 30px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 28px; }
.workshop-main li { padding-left: 20px; position: relative; font-size: 13px; line-height: 1.5; }
.workshop-main li::before { content: "•"; color: var(--clay); position: absolute; left: 0; }
.workshop-card aside { padding: 48px; color: var(--white); background: var(--green); }
.status { display: inline-block; padding: 7px 10px; color: #17463e; background: #dce9e3; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.workshop-card aside h3 { margin: 25px 0; font: 500 30px var(--serif); }
.workshop-card dl { margin: 0 0 35px; }
.workshop-card dl div { display: flex; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.17); }
.workshop-card dt { color: #bbd1c8; font-size: 11px; }
.workshop-card dd { margin: 0; font-size: 12px; font-weight: 700; }

.professionals { background: #eef1ec; }
.discipline-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.discipline-grid article { min-height: 210px; padding: 28px; background: var(--white); border-top: 3px solid var(--sage); }
.discipline-grid article.featured { color: var(--white); background: var(--green); border-color: var(--clay); }
.discipline-grid span { font: 500 21px var(--serif); }
.discipline-grid p { min-height: 65px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.discipline-grid small { color: var(--clay); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.discipline-grid .featured p { color: #d6e1dd; }
.discipline-grid .featured small { color: #f0b49f; }

.closing { text-align: center; }
.closing blockquote { max-width: 980px; margin: 0 auto 25px; font-size: clamp(37px, 4.8vw, 67px); line-height: 1.1; }
.closing > p:last-child { color: var(--muted); }
footer { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; gap: 30px; padding: 45px 5vw; color: #b9c7c2; background: var(--ink); font-size: 11px; }
footer p:last-child { text-align: right; }
.footer-brand strong { color: var(--white); }

@media (max-width: 960px) {
  nav { display: none; }
  .hero { grid-template-columns: 1fr; padding-top: 70px; }
  .hero-map { min-height: 420px; max-width: 520px; width: 100%; margin: auto; }
  .choice-grid, .decision-flow { grid-template-columns: 1fr 1fr; }
  .home-section, .workshop-card { grid-template-columns: 1fr; }
  .discipline-grid { grid-template-columns: 1fr 1fr; }
  footer { grid-template-columns: 1fr; }
  footer p:last-child { text-align: left; }
}

@media (max-width: 640px) {
  .concept-bar span:last-child, .header-cta { display: none; }
  .site-header { min-height: 70px; }
  .hero { min-height: auto; padding: 65px 6vw; }
  h1 { font-size: 49px; }
  .hero-lede { font-size: 17px; }
  .hero-map { min-height: 330px; }
  .orbit { width: 70px; height: 70px; font-size: 10px; }
  .map-center { width: 105px; height: 105px; left: calc(50% - 52px); top: calc(50% - 52px); font-size: 19px; }
  .signal-strip, .choice-grid, .decision-flow, .home-options, .discipline-grid { grid-template-columns: 1fr; }
  .signal-strip div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .section { padding: 78px 6vw; }
  .path-result { align-items: start; flex-direction: column; }
  .decision-flow article { min-height: auto; border-right: 0; border-bottom: 1px solid #cfc7b7; }
  .workshop-main, .workshop-card aside { padding: 35px 25px; }
  .workshop-main ul { grid-template-columns: 1fr; }
}
