.section {
  padding: 88px 0;
}
.workflow {
  background: #fff;
}
.section-number {
  color: #8b97ab;
  margin-right: 12px;
  font-variant-numeric: tabular-nums;
}
.section-intro {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  column-gap: 90px;
  align-items: end;
  margin-bottom: 42px;
}
.section-intro .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: 18px;
}
h2 {
  font-size: clamp(2rem, 3.1vw, 3rem);
  font-weight: 450;
  letter-spacing: -0.048em;
  line-height: 1.15;
}
.section-intro h2 {
  margin: 0;
}
.section-intro > p:last-child {
  max-width: 365px;
  margin: 0 0 3px;
  color: var(--muted);
  font-size: 1rem;
}
.workflow-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.workflow-list li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 21px 0 0;
  border-top: 1px solid #b3c1d9;
}
.step-index {
  color: #788cad;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
}
.workflow-list h3 {
  margin: 24px 0 12px;
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.4;
}
.workflow-list p {
  max-width: 360px;
  margin: 0 0 25px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.65;
}
.step-tag {
  margin-top: auto;
  color: #4a6087;
  font-size: 0.75rem;
}
.step-tag::before {
  content: "↳";
  margin-right: 10px;
  color: #8799b7;
}
.framework.section {
  padding-bottom: 0;
}
.framework {
  background: #f2f4f8;
  border-top: 1px solid #e5e9ef;
}
.framework-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
  gap: 48px 100px;
  align-items: center;
}
.framework-copy h2 {
  margin: 0;
}
.framework-copy h2 > span {
  color: #6c7f9f;
}
.framework-copy > p:not(.eyebrow) {
  max-width: 570px;
  margin: 24px 0 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}
.trace-note {
  display: flex;
  gap: 15px;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid #d5dde8;
}
.trace-note > span {
  color: #617dac;
}
.trace-note p {
  margin: 0;
  max-width: 450px;
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1.6;
}
.trace-note strong {
  display: block;
  color: #334b73;
  font-weight: 500;
}
.framework-map {
  padding: 24px 28px;
  border: 1px solid #d4ddea;
  border-radius: 5px;
  background: linear-gradient(120deg, #ffffffb0, #fafcff40);
}
.map-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 25px;
  border-bottom: 1px solid #dce3ec;
  color: #6e83a6;
}
.map-origin,
.map-output {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 0;
}
.map-origin h3,
.map-output h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.map-origin p,
.map-output p {
  margin: 4px 0 0;
  color: #627189;
  font-size: 0.75rem;
}
.map-node {
  width: 9px;
  height: 9px;
  margin: 0 5px;
  border: 1px solid #6e89b5;
  border-radius: 50%;
}
.map-code {
  margin-left: auto;
  color: #7386a6;
  font-size: 0.75rem;
}
.map-layers {
  position: relative;
  display: grid;
  gap: 12px;
  padding: 0 0 0 49px;
}
.map-rail {
  position: absolute;
  inset: -20px auto -12px 9px;
  width: 1px;
  background: #b0bed5;
}
.map-layers > div {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 9px 0;
  border-bottom: 1px solid #dce3ec;
  font-size: 0.875rem;
}
.map-layers > div::before {
  content: "";
  position: absolute;
  left: -40px;
  top: 50%;
  width: 26px;
  height: 1px;
  background: #b0bed5;
}
.map-layers > div > span {
  width: 22px;
  color: #6a80a5;
  font-size: 0.75rem;
}
.map-output {
  padding-bottom: 0;
}
.map-output > span:first-child {
  width: 19px;
  text-align: center;
  color: #6b81a6;
}
.map-output p > span {
  margin-inline: 7px;
}
.professional-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  gap: 32px;
  font-size: 0.875rem;
  line-height: 1.65;
}
.professional-note > span {
  color: #405371;
}
.professional-note p {
  margin: 0;
  color: #627086;
}
.closing {
  position: relative;
  overflow: clip;
  background: #e4eaf4;
}
.closing::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 63%,
    #f9fbff60 63.1%,
    transparent 70%,
    transparent 81%,
    #f9fbff80 81.1%,
    transparent 88%
  );
}
.closing-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
}
.closing .eyebrow {
  margin-bottom: 20px;
}
.closing h2 {
  margin: 0;
  font-size: clamp(2.2rem, 3.8vw, 3.7rem);
}
.closing-inner > div > p:not(.eyebrow) {
  margin: 22px 0 0;
  color: #536783;
  font-size: 1rem;
}
.closing-actions {
  flex-shrink: 0;
  text-align: center;
}
.button-large {
  min-height: 55px;
  background: #304b7e;
}
.email-link {
  display: block;
  margin-top: 18px;
  color: #4e6180;
  font-size: 0.875rem;
  text-underline-offset: 4px;
}
.site-footer {
  padding: 29px 0;
  background: #fff;
}
.footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  color: #67748a;
  font-size: 0.75rem;
}
.brand-footer .brand-image {
  width: 155px;
}
.footer-inner p {
  margin: 0;
}
.footer-inner > a:last-child {
  flex-shrink: 0;
  text-decoration: none;
}
.footer-inner > a:last-child:hover {
  color: var(--ink);
}

.benefit-band {
  padding: 36px 0;
  border-top: 1px solid #e2e8f0;
  background: #fff;
}
.benefit-band h2 {
  margin: 0;
  color: #334b73;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.3;
  letter-spacing: -0.035em;
}
.benefit-band p {
  max-width: 980px;
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.65;
}
.professional-strip {
  margin-top: 66px;
  padding: 24px 0;
  border-top: 1px solid #d4dce8;
  background: #edf1f7;
}
.footer-legal {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #e2e7ee;
  color: #627086;
  font-size: 0.875rem;
  line-height: 1.6;
}
.footer-legal ul {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.footer-legal li {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.legal-separator {
  color: #96a1b3;
}
.footer-legal a {
  color: #405a80;
  text-decoration: none;
  text-underline-offset: 4px;
}
.footer-legal a:hover {
  text-decoration: underline;
}
.map-layers > div > .map-layer-label {
  width: auto;
  color: inherit;
  font-size: inherit;
}
.map-layers > div:nth-of-type(1) {
  --trace-delay: 600ms;
}
.map-layers > div:nth-of-type(2) {
  --trace-delay: 1040ms;
}
.map-layers > div:nth-of-type(3) {
  --trace-delay: 1480ms;
}
.map-layers > div:nth-of-type(4) {
  --trace-delay: 1920ms;
}
.trace-ready .map-origin,
.trace-ready .map-layers > div > span,
.trace-ready .map-output {
  opacity: 0;
  transform: translateY(5px);
}
.trace-ready .map-rail {
  transform: scaleY(0);
  transform-origin: top;
}
.trace-ready .map-layers > div {
  border-color: transparent;
}
.trace-ready .map-layers > div::before {
  transform: scaleX(0);
  transform-origin: left;
}
.trace-playing .map-origin {
  animation: trace-reveal 450ms ease-out both;
}
.trace-playing .map-rail {
  animation: trace-rail 2100ms 300ms linear both;
}
.trace-playing .map-layers > div::before {
  animation: trace-branch 320ms var(--trace-delay) ease-out both;
}
.trace-playing .map-layers > div {
  animation: trace-row 440ms var(--trace-delay) ease-out both;
}
.trace-playing .map-layers > div > span {
  animation: trace-reveal 440ms calc(var(--trace-delay) + 140ms) ease-out both;
}
.trace-playing .map-output {
  animation: trace-reveal 500ms 2520ms ease-out both;
}
.trace-playing .map-output h3 {
  animation: trace-output-emphasis 900ms 2520ms ease-in-out both;
}
@keyframes trace-reveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes trace-rail {
  to {
    transform: scaleY(1);
  }
}
@keyframes trace-branch {
  to {
    transform: scaleX(1);
  }
}
@keyframes trace-row {
  to {
    border-color: #dce3ec;
  }
}
@keyframes trace-output-emphasis {
  0%,
  100% {
    color: var(--ink);
  }
  50% {
    color: #506f9f;
  }
}
@media (max-width: 700px) {
  .benefit-band {
    padding: 30px 0;
  }
  .professional-strip {
    margin-top: 32px;
    padding: 20px 0;
  }
  .footer-legal ul {
    justify-content: flex-start;
  }
}
@media (prefers-reduced-motion: reduce), print {
  .trace-ready .map-origin,
  .trace-ready .map-layers > div > span,
  .trace-ready .map-output {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .trace-ready .map-rail,
  .trace-ready .map-layers > div::before {
    transform: none;
    animation: none;
  }
  .trace-ready .map-layers > div {
    border-color: #dce3ec;
    animation: none;
  }
  .trace-ready .map-output h3 {
    animation: none;
  }
}
