:root {
  --ink: #15231e;
  --muted: #60706a;
  --paper: #f7f7f2;
  --surface: #ffffff;
  --line: rgba(21, 35, 30, 0.12);
  --green: #1f6b52;
  --green-dark: #174d3d;
  --mint: #d9efe4;
  --lime: #dbe96e;
  --blue: #4463d8;
  --coral: #f27d63;
  --shadow: 0 24px 70px rgba(23, 58, 45, 0.12);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); }
a { color: inherit; }
button, input, textarea { font: inherit; }
img, svg { display: block; max-width: 100%; }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 100;
  border-radius: .7rem; background: var(--ink); color: white; padding: .75rem 1rem;
}
.skip-link:focus { top: 1rem; }

.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.site-header { position: relative; z-index: 20; padding: 20px 0; }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: 1.03rem; font-weight: 800; text-decoration: none; letter-spacing: -.03em; }
.brand-mark { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 13px; color: white; background: var(--green); box-shadow: 5px 6px 0 var(--lime); }
.brand-mark svg { width: 21px; height: 21px; }
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-links a { color: var(--muted); font-size: .9rem; font-weight: 650; text-decoration: none; }
.nav-links a:hover, .nav-links a:focus-visible { color: var(--green); }
.legal-nav { display: flex; }
.nav-cta { border: 1px solid var(--line); border-radius: 999px; padding: .72rem 1rem; background: rgba(255,255,255,.72); }
.menu-button { display: none; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); padding: 9px; }
.menu-button svg { width: 22px; height: 22px; }

.hero { position: relative; overflow: hidden; padding: 72px 0 92px; }
.hero::before { content: ""; position: absolute; width: 560px; height: 560px; right: -170px; top: -240px; border-radius: 50%; background: radial-gradient(circle, rgba(219,233,110,.6), rgba(217,239,228,.18) 58%, transparent 70%); }
.hero-grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 72px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--green); font-size: .75rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 24px; height: 2px; background: currentColor; }
h1, h2, h3 { margin: 0; letter-spacing: -.045em; }
h1 { max-width: 760px; margin-top: 22px; font-size: clamp(3rem, 6.4vw, 6rem); line-height: .98; }
.hero-copy { max-width: 650px; margin: 26px 0 0; color: var(--muted); font-size: clamp(1.05rem, 1.7vw, 1.3rem); line-height: 1.7; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; border-radius: 999px; padding: .85rem 1.25rem; font-weight: 760; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--green); box-shadow: 0 12px 26px rgba(31,107,82,.22); }
.button-primary:hover { background: var(--green-dark); }
.button-secondary { border-color: var(--line); background: rgba(255,255,255,.78); }
.button svg { width: 18px; height: 18px; }
.microcopy { margin: 18px 0 0; color: var(--muted); font-size: .82rem; }

.compass-visual { position: relative; min-height: 510px; }
.visual-card { position: absolute; inset: 30px 0 30px 44px; overflow: hidden; border: 1px solid rgba(255,255,255,.7); border-radius: 38px; background: linear-gradient(150deg, #204f41, #152e27); box-shadow: var(--shadow); }
.visual-card::before { content: ""; position: absolute; inset: 24px; border: 1px solid rgba(255,255,255,.12); border-radius: 26px; }
.orbit { position: absolute; left: 50%; top: 49%; width: 330px; height: 330px; transform: translate(-50%,-50%); border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.orbit::before, .orbit::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.orbit::before { inset: 46px; }.orbit::after { inset: 100px; }
.needle { position: absolute; left: 50%; top: 49%; width: 13px; height: 250px; transform: translate(-50%,-50%) rotate(28deg); border-radius: 999px; background: linear-gradient(to bottom, var(--coral) 0 48%, #e7f4ec 48% 100%); box-shadow: 0 0 34px rgba(242,125,99,.35); }
.needle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 29px; height: 29px; transform: translate(-50%,-50%); border: 6px solid #17392f; border-radius: 50%; background: var(--lime); }
.visual-label { position: absolute; z-index: 2; color: white; font-size: .77rem; font-weight: 780; letter-spacing: .04em; }
.label-learn { left: 10%; top: 16%; }.label-grow { right: 9%; top: 24%; }.label-move { right: 12%; bottom: 15%; }.label-strengths { left: 7%; bottom: 22%; }
.signal-card { position: absolute; z-index: 3; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: 0 16px 34px rgba(15,42,33,.15); padding: 15px 17px; backdrop-filter: blur(14px); }
.signal-card strong { display: block; font-size: .9rem; }.signal-card span { display: block; margin-top: 4px; color: var(--muted); font-size: .73rem; }
.signal-one { left: 0; top: 55px; }.signal-two { right: -8px; bottom: 52px; }
.signal-dot { display: inline-block !important; width: 8px; height: 8px; margin: 0 6px 0 0 !important; border-radius: 50%; background: var(--green); }

.section { padding: 100px 0; }
.section-soft { background: #eef4ef; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 42px; }
.section-heading h2 { max-width: 710px; margin-top: 14px; font-size: clamp(2.2rem, 4.5vw, 4.1rem); line-height: 1.05; }
.section-heading > p { max-width: 430px; margin: 0; color: var(--muted); line-height: 1.7; }

.service-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.service-card { position: relative; display: flex; min-height: 430px; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 30px; background: var(--surface); padding: 34px; box-shadow: 0 18px 48px rgba(26,55,44,.07); }
.service-card::after { content: ""; position: absolute; width: 250px; height: 250px; right: -85px; top: -90px; border-radius: 50%; background: var(--mint); opacity: .75; }
.service-card.career::after { background: #dce4ff; }
.service-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.service-icon { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 17px; background: var(--mint); color: var(--green); }
.career .service-icon { background: #e4e9ff; color: var(--blue); }
.service-icon svg { width: 27px; height: 27px; }
.service-status { border-radius: 999px; background: #eef7f0; color: var(--green); padding: .45rem .7rem; font-size: .72rem; font-weight: 820; }
.service-card h3 { margin-top: 62px; font-size: clamp(2rem, 3vw, 3rem); }
.service-card p { max-width: 520px; margin: 16px 0 0; color: var(--muted); line-height: 1.65; }
.feature-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 32px; padding: 0; list-style: none; }
.feature-list li { border: 1px solid var(--line); border-radius: 999px; padding: .48rem .7rem; color: #46564f; background: #fbfcfa; font-size: .77rem; font-weight: 680; }
.service-link { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; color: var(--green); font-weight: 820; text-decoration: none; }
.career .service-link { color: var(--blue); }
.service-link svg { width: 18px; transition: transform .2s ease; }.service-link:hover svg { transform: translateX(4px); }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; counter-reset: step; }
.step { counter-increment: step; border-top: 1px solid var(--line); padding-top: 24px; }
.step::before { content: "0" counter(step); display: block; margin-bottom: 34px; color: var(--green); font-size: .76rem; font-weight: 850; letter-spacing: .12em; }
.step h3 { font-size: 1.4rem; }.step p { color: var(--muted); line-height: 1.65; }

.promise { display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: start; }
.promise h2 { margin-top: 14px; font-size: clamp(2.3rem,4vw,3.8rem); line-height: 1.05; }
.promise-list { display: grid; gap: 12px; }
.promise-item { display: grid; grid-template-columns: 44px 1fr; gap: 15px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.72); padding: 19px; }
.promise-item svg { width: 22px; color: var(--green); margin: 3px auto 0; }.promise-item h3 { font-size: 1.05rem; }.promise-item p { margin: 6px 0 0; color: var(--muted); line-height: 1.55; font-size: .9rem; }

.cta-panel { position: relative; overflow: hidden; border-radius: 34px; background: var(--ink); color: white; padding: clamp(36px, 7vw, 76px); }
.cta-panel::after { content: ""; position: absolute; width: 390px; height: 390px; right: -100px; bottom: -230px; border-radius: 50%; background: var(--lime); opacity: .75; }
.cta-panel h2 { position: relative; z-index: 1; max-width: 720px; font-size: clamp(2.3rem,5vw,4.6rem); line-height: 1.02; }
.cta-panel p { position: relative; z-index: 1; max-width: 580px; margin: 20px 0 0; color: rgba(255,255,255,.72); line-height: 1.7; }
.cta-panel .actions { position: relative; z-index: 1; }.cta-panel .button-primary { background: var(--lime); color: var(--ink); }.cta-panel .button-primary:hover { background: #eef68d; }

.site-footer { padding: 56px 0 32px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr .7fr; gap: 48px; border-top: 1px solid var(--line); padding-top: 42px; }
.footer-copy { max-width: 410px; margin: 18px 0 0; color: var(--muted); line-height: 1.6; font-size: .9rem; }
.footer-column h3 { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }.footer-column a { display: block; width: fit-content; margin-top: 13px; color: var(--muted); font-size: .88rem; text-decoration: none; }.footer-column a:hover { color: var(--green); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 42px; color: var(--muted); font-size: .78rem; }

.page-hero { padding: 74px 0 50px; }.page-hero h1 { max-width: 900px; font-size: clamp(2.8rem,6vw,5rem); }.page-hero p { max-width: 720px; margin: 24px 0 0; color: var(--muted); font-size: 1.1rem; line-height: 1.7; }
.prose-layout { display: grid; grid-template-columns: 240px minmax(0,760px); gap: 64px; align-items: start; padding-bottom: 110px; }
.prose-nav { position: sticky; top: 28px; border: 1px solid var(--line); border-radius: 18px; background: white; padding: 18px; }.prose-nav a { display: block; border-radius: 9px; padding: 8px 10px; color: var(--muted); font-size: .83rem; text-decoration: none; }.prose-nav a:hover { background: var(--mint); color: var(--green); }
.prose { border: 1px solid var(--line); border-radius: 26px; background: white; padding: clamp(26px,5vw,54px); box-shadow: 0 20px 54px rgba(26,55,44,.06); }.prose section + section { margin-top: 42px; padding-top: 42px; border-top: 1px solid var(--line); }.prose h2 { scroll-margin-top: 24px; font-size: 1.55rem; }.prose h3 { margin-top: 24px; font-size: 1.05rem; }.prose p, .prose li { color: var(--muted); line-height: 1.78; }.prose ul { padding-left: 1.25rem; }.effective { display: inline-flex; margin-bottom: 30px; border-radius: 999px; background: var(--mint); color: var(--green-dark); padding: .5rem .75rem; font-size: .75rem; font-weight: 750; }
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 26px; padding-bottom: 100px; }.contact-card { border: 1px solid var(--line); border-radius: 25px; background: white; padding: 30px; }.contact-card h2 { font-size: 1.6rem; }.contact-card p { color: var(--muted); line-height: 1.65; }.contact-email { display: inline-block; margin-top: 22px; color: var(--green); font-size: 1.1rem; font-weight: 800; }
.not-found { display: grid; min-height: 70vh; place-items: center; text-align: center; }.not-found h1 { font-size: clamp(4rem,12vw,9rem); }.not-found p { color: var(--muted); }

.consent { position: fixed; z-index: 80; right: 18px; bottom: 18px; width: min(440px, calc(100% - 36px)); border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.97); box-shadow: 0 24px 70px rgba(9,35,25,.2); padding: 20px; backdrop-filter: blur(18px); }.consent[hidden] { display: none; }.consent h2 { font-size: 1.1rem; }.consent p { margin: 8px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.55; }.consent-actions { display: flex; gap: 9px; margin-top: 15px; }.consent button { min-height: 39px; border: 1px solid var(--line); border-radius: 999px; background: white; padding: .55rem .85rem; font-size: .78rem; font-weight: 750; }.consent .accept { border-color: var(--green); background: var(--green); color: white; }

@media (max-width: 900px) {
  .hero { padding-top: 42px; }.hero-grid, .promise { grid-template-columns: 1fr; gap: 48px; }.hero-grid { text-align: left; }.compass-visual { min-height: 460px; max-width: 620px; width: 100%; }.visual-card { inset-inline: 24px; }.service-grid { grid-template-columns: 1fr; }.section-heading { display: block; }.section-heading > p { margin-top: 18px; }.footer-grid { grid-template-columns: 1fr 1fr; }.footer-grid > :first-child { grid-column: 1 / -1; }.prose-layout { grid-template-columns: 1fr; gap: 22px; }.prose-nav { position: static; display: flex; overflow-x: auto; }.prose-nav a { white-space: nowrap; }.contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .shell { width: min(100% - 28px, 1180px); }.site-header { padding: 14px 0; }.menu-button { display: block; }.nav-links { position: absolute; left: 14px; right: 14px; top: 68px; display: none; align-items: stretch; flex-direction: column; gap: 4px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow); padding: 10px; }.nav-links.open { display: flex; }.nav-links a { border-radius: 10px; padding: 11px 12px; }.legal-nav { position: static; display: flex; align-items: center; flex-direction: row; gap: 2px; border: 0; background: transparent; box-shadow: none; padding: 0; }.legal-nav a { padding: 7px; font-size: .78rem; }.nav-cta { border: 0; background: var(--mint); }.hero { padding: 45px 0 70px; }.hero-grid { gap: 36px; }.hero-copy { font-size: 1rem; }.actions { align-items: stretch; flex-direction: column; }.button { width: 100%; }.compass-visual { min-height: 370px; }.visual-card { inset: 20px 14px; border-radius: 28px; }.orbit { width: 250px; height: 250px; }.needle { height: 190px; }.signal-card { padding: 11px 13px; }.signal-one { top: 4px; }.signal-two { right: 0; bottom: 8px; }.section { padding: 72px 0; }.section-heading { margin-bottom: 30px; }.service-card { min-height: 450px; padding: 25px; }.service-card h3 { margin-top: 50px; }.steps { grid-template-columns: 1fr; gap: 36px; }.step::before { margin-bottom: 16px; }.footer-grid { grid-template-columns: 1fr; gap: 30px; }.footer-grid > :first-child { grid-column: auto; }.footer-bottom { align-items: flex-start; flex-direction: column; }.page-hero { padding-top: 48px; }.prose-layout { padding-bottom: 72px; }.prose { border-radius: 20px; }.consent-actions { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
