.vertical-page {
  --vertical-accent: #f3b395;
  --vertical-light: #ffdcc7;
  --vertical-glow: #b954344d;
  --vertical-base: #231410;
}

.vertical-local {
  --vertical-accent: #a4d7c1;
  --vertical-light: #d5f3e5;
  --vertical-glow: #3d91784d;
  --vertical-base: #12221c;
}

.vertical-saas {
  --vertical-accent: #c7b5fa;
  --vertical-light: #e2d9ff;
  --vertical-glow: #7760b959;
  --vertical-base: #1e1830;
}

.vertical-e-commerce {
  --vertical-accent: #f6ca8c;
  --vertical-light: #ffe8c1;
  --vertical-glow: #ad713e59;
  --vertical-base: #271b12;
}

.vertical-page .shell {
  max-width: 1200px;
}

.vertical-trail {
  padding-top: 112px;
}

.vertical-trail .seo-breadcrumb ol {
  margin-bottom: 0;
}

.vertical-hero.hero {
  min-height: 0;
  padding: clamp(30px, 3.1vw, 46px) var(--gutter) clamp(48px, 6vw, 80px);
}

.vertical-hero .hero-content > p {
  max-width: 660px;
  font-weight: 400;
  text-wrap: pretty;
}

.vertical-hero h1 em {
  color: var(--vertical-light);
}

.vertical-hero .hero-actions {
  flex-wrap: wrap;
  gap: 12px;
}

.vertical-emblem {
  display: grid;
  flex: none;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid #ffffff30;
  border-radius: 50%;
  background: linear-gradient(150deg, var(--vertical-glow), var(--vertical-base) 70%, #0b0b0b);
}

.vertical-showcase {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.64fr) minmax(0, 1fr);
  border: 1px solid #ffffff24;
  border-radius: 26px;
  background: #101010;
}

.vertical-showcase::before {
  position: absolute;
  z-index: -1;
  inset: -70px 8% auto;
  height: 200px;
  background: radial-gradient(ellipse closest-side, var(--vertical-glow), transparent);
  filter: blur(30px);
  content: '';
  pointer-events: none;
}

.vertical-art {
  display: grid;
  overflow: hidden;
  align-items: center;
  border-radius: 25px 0 0 25px;
  background: linear-gradient(145deg, var(--vertical-base), #101114);
}

.vertical-art img {
  width: 100%;
  height: auto;
}

.vertical-example {
  padding: clamp(24px, 2.4vw, 35px);
  border-left: 1px solid #ffffff16;
  border-radius: 0 25px 25px 0;
  background: linear-gradient(155deg, var(--vertical-base), #111 68%);
}

.vertical-label {
  color: var(--vertical-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.vertical-example h2 {
  margin: 9px 0 10px;
  font-size: clamp(24px, 2.8vw, 34px);
  font-weight: 500;
  line-height: 1.07;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.vertical-example > p:not(.vertical-label) {
  color: var(--seo-copy);
}

.vertical-example dl {
  margin: 16px 0 13px;
}

.vertical-example dl > div {
  display: grid;
  grid-template-columns: minmax(92px, .44fr) minmax(0, 1fr);
  gap: 10px;
  padding: 9px 0;
  border-top: 1px solid #ffffff22;
  font-size: 14px;
}

.vertical-example dl > div:last-child {
  border-bottom: 1px solid #ffffff22;
}

.vertical-example dt {
  color: var(--vertical-accent);
  font-weight: 500;
}

.vertical-example dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.vertical-note {
  font-size: 14px;
}

.vertical-body {
  display: grid;
  gap: clamp(72px, 10vw, 128px);
  padding-top: clamp(72px, 10vw, 128px);
}

.vertical-section-heading {
  max-width: 720px;
  margin: 0 auto 38px;
  text-align: center;
}

.vertical-section-heading .section-heading {
  margin-top: 19px;
}

.vertical-section-heading > p:not(.eyebrow) {
  max-width: 560px;
  margin: 17px auto 0;
  color: var(--seo-copy);
  font-size: clamp(16px, 1.5vw, 19px);
}

.vertical-scope {
  gap: 16px;
  margin-top: 0;
  counter-reset: deliverable;
}

.vertical-scope .seo-scope-card {
  min-height: 248px;
  padding: clamp(23px, 3vw, 35px);
  border-radius: 23px;
  background:
    radial-gradient(ellipse 220px 145px at 100% 0%, var(--vertical-glow), transparent),
    #111;
  counter-increment: deliverable;
}

.vertical-scope .seo-scope-card::before {
  display: grid;
  width: 41px;
  height: 41px;
  margin-bottom: 26px;
  place-items: center;
  border: 1px solid #ffffff23;
  border-radius: 50%;
  background: #0d0d0d;
  color: var(--vertical-accent);
  content: counter(deliverable, decimal-leading-zero);
  font-size: 13px;
  font-weight: 700;
}

.vertical-scope h3 {
  font-size: clamp(23px, 2.5vw, 31px);
  letter-spacing: -.04em;
}

.vertical-scope p {
  margin-top: 14px;
}

.vertical-method {
  display: grid;
  grid-template-columns: minmax(0, .87fr) minmax(0, 1.13fr);
  gap: clamp(24px, 7vw, 104px);
  align-items: start;
  padding-top: clamp(32px, 5vw, 64px);
  border-top: 1px solid var(--line);
}

.vertical-method .vertical-section-heading {
  margin: 0;
  text-align: left;
}

.vertical-method .vertical-section-heading p {
  margin-inline: 0;
}

.vertical-method .section-heading {
  text-wrap: initial;
}

.vertical-steps {
  gap: 0;
  padding: 0;
  list-style: none;
  counter-reset: phase;
}

.vertical-steps li {
  position: relative;
  min-height: 92px;
  padding: 22px 0 22px 64px;
  border-color: #ffffff24;
  counter-increment: phase;
}

.vertical-steps li:first-child {
  padding-top: 0;
}

.vertical-steps li::before {
  position: absolute;
  top: 22px;
  left: 0;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid #ffffff23;
  border-radius: 13px;
  background: var(--vertical-base);
  color: var(--vertical-light);
  content: counter(phase, decimal-leading-zero);
  font-size: 13px;
  font-weight: 700;
}

.vertical-steps li:first-child::before {
  top: 0;
}

.vertical-steps h3 {
  font-size: clamp(22px, 2.4vw, 28px);
}

.vertical-measurement {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 24px clamp(30px, 5vw, 70px);
  padding: clamp(30px, 5vw, 68px);
  border: 1px solid #ffffff29;
  border-radius: 25px;
  background:
    radial-gradient(ellipse 500px 260px at 0 100%, var(--vertical-glow), transparent),
    #111;
}

.vertical-measurement .section-heading {
  margin-top: 10px;
  font-size: clamp(34px, 4vw, 53px);
  text-wrap: initial;
}

.vertical-measurement > p {
  color: #dedad7;
  font-size: clamp(17px, 1.55vw, 20px);
}

.vertical-faq > div {
  max-width: 800px;
  margin-inline: auto;
  border-top: 1px solid #ffffff24;
}

.vertical-faq details {
  border-bottom: 1px solid #ffffff24;
}

.vertical-faq summary {
  position: relative;
  min-height: 64px;
  padding: 19px 44px 19px 0;
  list-style: none;
  font-size: clamp(17px, 1.8vw, 21px);
  font-weight: 500;
}

.vertical-faq summary::-webkit-details-marker {
  display: none;
}

.vertical-faq summary::after {
  position: absolute;
  top: 15px;
  right: 0;
  display: grid;
  width: 33px;
  height: 33px;
  place-items: center;
  border: 1px solid #ffffff24;
  border-radius: 50%;
  color: var(--vertical-accent);
  content: '+';
  font-size: 18px;
  line-height: 1;
}

.vertical-faq details[open] summary::after {
  content: '−';
}

.vertical-faq details p {
  max-width: 68ch;
  padding-bottom: 20px;
  color: var(--seo-copy);
}

.vertical-related .seo-directory-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 16px;
}

.vertical-related .seo-text-link,
.vertical-related .seo-directory-card h3 span {
  color: var(--vertical-accent);
}

@media (min-width: 851px) {
  .vertical-art img {
    mask-image: linear-gradient(transparent, #000 8%, #000 92%, transparent);
  }
}

@media (max-width: 1099px) {
  .vertical-trail {
    padding-top: 86px;
  }
}

@media (max-width: 850px) {
  .vertical-showcase,
  .vertical-method,
  .vertical-measurement {
    grid-template-columns: minmax(0, 1fr);
  }

  .vertical-showcase::before {
    inset: -38px 4% auto;
    height: 132px;
  }

  .vertical-art {
    border-radius: 25px 25px 0 0;
  }

  .vertical-example {
    border-top: 1px solid #ffffff16;
    border-left: 0;
    border-radius: 0 0 25px 25px;
  }

  .vertical-steps li:first-child {
    padding-top: 18px;
  }

  .vertical-steps li:first-child::before {
    top: 18px;
  }
}

@media (max-width: 680px) {
  .vertical-emblem {
    width: 35px;
    height: 35px;
  }

  .vertical-hero .hero-actions {
    margin-top: 25px;
  }

  .vertical-section-heading {
    margin-bottom: 28px;
  }

  .vertical-scope .seo-scope-card {
    min-height: auto;
  }

  .vertical-scope .seo-scope-card::before {
    margin-bottom: 19px;
  }

  .vertical-steps li {
    padding-left: 53px;
  }
}
