:root {
  --purple-950: #270059;
  --purple-900: #35006f;
  --purple-800: #4a1280;
  --purple-700: #63299a;
  --purple-500: #8b5bb8;
  --purple-200: #dfcfee;
  --purple-100: #f0e8f7;
  --purple-50: #faf7fd;
  --navy: var(--purple-950);
  --navy2: var(--purple-900);
  --gold: var(--purple-200);
  --cream: var(--purple-50);
  --ink: var(--purple-950);
  --muted: #633f7e;
  --line: var(--purple-200);
}

body {
  color: var(--purple-950);
  background: #fff;
}

h1 {
  max-width: 650px;
  font-size: clamp(2.35rem, 4vw, 3.75rem);
  line-height: 1.08;
  letter-spacing: -0.035em;
  margin-bottom: 1.1rem;
}

h2 {
  font-size: clamp(1.9rem, 3vw, 2.8rem);
  line-height: 1.15;
  margin-bottom: 1rem;
}

h3 {
  font-size: 1.25rem;
}

.section {
  padding: 72px 0;
}

.topbar,
.site-header,
footer {
  background: var(--purple-950);
}

.topbar {
  color: var(--purple-100);
}

.nav {
  height: 76px;
}

.navlinks > a:not(.btn):hover,
.eyebrow,
.eyebrow.gold,
.text-link.light,
.contact-list b {
  color: var(--purple-200);
}

.btn {
  background: #fff;
  color: var(--purple-950);
  border: 1px solid #fff;
  padding: 13px 20px;
}

.btn:hover {
  background: var(--purple-100);
}

.nav .btn,
form .btn {
  background: var(--purple-700);
  border-color: var(--purple-700);
  color: #fff;
}

.nav .btn:hover,
form .btn:hover {
  background: var(--purple-800);
}

.hero {
  min-height: 540px;
  background: var(--purple-950);
}

.hero-copy {
  padding-top: 56px;
  padding-bottom: 56px;
}

.hero-content {
  width: min(100%, 560px);
}

.hero-content > p:not(.eyebrow) {
  max-width: 520px;
  font-size: 1.05rem;
  color: var(--purple-100);
}

.hero-visual {
  min-height: 540px;
  background: var(--purple-100);
}

.actions {
  gap: 20px;
  margin-top: 24px;
}

.intro,
.trust {
  background: #fff;
}

.services,
.faq {
  background: var(--purple-50);
}

.split {
  gap: 56px;
}

.section-head {
  gap: 40px;
  margin-bottom: 34px;
}

.eyebrow.navy {
  color: var(--purple-700);
}

.service-grid {
  gap: 1px;
  border-color: var(--purple-200);
  background: var(--purple-200);
}

.service-grid article {
  min-height: 230px;
  padding: 28px;
  background: #fff;
}

.service-grid article:hover,
.founder,
.contact {
  background: var(--purple-900);
}

.founder,
.contact,
footer {
  color: var(--purple-100);
}

.founder .lead,
.founder h2,
.contact h2,
.service-grid article:hover h3 {
  color: #fff;
}

.service-grid span {
  color: var(--purple-700);
}

.service-grid article:hover span,
.service-grid article:hover p {
  color: var(--purple-100);
}

.founder-grid,
.contact-grid {
  gap: 56px;
}

.portrait img {
  height: 500px;
}

.trust-grid {
  margin-top: 28px;
}

.trust-grid div {
  border-top-color: var(--purple-500);
  padding: 20px 0;
}

.trust-grid strong {
  color: var(--purple-950);
  font-size: 2.6rem;
}

details {
  border-color: var(--purple-200);
  padding: 17px 0;
}

summary,
summary::after {
  color: var(--purple-950);
}

form {
  color: var(--purple-950);
  background: #fff;
  padding: 32px;
}

input,
textarea {
  border-color: var(--purple-200);
}

input:focus,
textarea:focus {
  border-color: var(--purple-700);
  outline-color: rgba(99, 41, 154, 0.25);
}

.footer-grid img {
  background: var(--purple-950);
}

.copyright {
  border-top-color: var(--purple-800);
}

@media (max-width: 900px) {
  .navlinks {
    background: var(--purple-950);
  }

  .menu {
    background: #fff;
    color: var(--purple-950);
  }

  .hero {
    min-height: auto;
  }

  .hero-copy {
    padding: 52px 28px;
  }

  .hero-visual {
    min-height: 0;
  }

  .founder-grid,
  .contact-grid {
    gap: 38px;
  }
}

@media (max-width: 640px) {
  h1 {
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  h2 {
    font-size: clamp(1.7rem, 8vw, 2.25rem);
  }

  .section {
    padding: 56px 0;
  }

  .hero-copy {
    padding: 48px 20px;
  }

  .service-grid article {
    padding: 24px;
  }

  .portrait img {
    height: 390px;
  }
}
