.fv-utility-page {
  --fv-utility-ink: #17181c;
  --fv-utility-copy: #626773;
  --fv-utility-muted: #858b97;
  --fv-utility-accent: #ff7014;
  --fv-utility-accent-dark: #e85b00;
  --fv-utility-soft: #fff2e8;
  --fv-utility-surface: #f5f6f8;
  --fv-utility-line: #e5e7eb;
  overflow: hidden;
  color: var(--fv-utility-ink);
}

.fv-utility-page *,
.fv-utility-page *::before,
.fv-utility-page *::after { box-sizing: border-box; }

.fv-utility-page h1,
.fv-utility-page h2,
.fv-utility-page h3,
.fv-utility-page p,
.fv-utility-page ol,
.fv-utility-page ul { margin: 0; }

.fv-utility-hero {
  padding-block: clamp(70px, 7vw, 120px) clamp(58px, 5.5vw, 92px);
  text-align: center;
}

.fv-utility-eyebrow {
  color: var(--fv-utility-accent-dark);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .1em;
  line-height: 1.45;
  text-transform: uppercase;
}

.fv-utility-eyebrow span { margin-inline: 8px; }

.fv-utility-hero__title {
  margin-top: 18px !important;
  font-size: clamp(46px, 5.2vw, 76px);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.04;
}

.fv-utility-hero__lead {
  max-width: 790px;
  margin: 22px auto 0 !important;
  color: var(--fv-utility-copy);
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.65;
}

.fv-utility-content {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.7vw, 30px);
  padding-bottom: clamp(76px, 7vw, 124px);
}

.fv-utility-content > .fv-utility-card:only-child,
.fv-utility-content > .fv-utility-card:first-child:nth-last-child(2),
.fv-utility-content > .fv-utility-card:first-child:nth-last-child(2) ~ .fv-utility-card {
  grid-column: span 1;
}

.fv-utility-content:has(> .fv-utility-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fv-utility-card {
  position: relative;
  min-width: 0;
  min-height: 260px;
  padding: clamp(30px, 2.5vw, 46px);
  border: 1px solid var(--fv-utility-line);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(28, 32, 42, .07);
}

.fv-utility-card--accent { background: linear-gradient(145deg, #fff7f0, #fff); }
.fv-utility-card__number { display: inline-flex; min-width: 48px; min-height: 34px; align-items: center; justify-content: center; border-radius: 999px; background: var(--fv-utility-soft); color: var(--fv-utility-accent-dark); font-size: 15px; font-weight: 800; }
.fv-utility-card__title { margin-top: 26px !important; font-size: clamp(24px, 1.75vw, 31px); font-weight: 800; line-height: 1.2; }
.fv-utility-card__text { margin-top: 18px !important; color: var(--fv-utility-copy); font-size: 16px; line-height: 1.7; }

.fv-utility-process { padding-block: clamp(76px, 7vw, 124px); background: var(--fv-utility-surface); }
.fv-utility-section-head { max-width: 780px; margin: 0 auto clamp(38px, 4vw, 62px); text-align: center; }
.fv-utility-section-head__title { margin-top: 16px !important; font-size: clamp(34px, 3.2vw, 52px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.fv-utility-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.6vw, 28px); padding: 0; list-style: none; }
.fv-utility-step { min-width: 0; padding: clamp(24px, 2vw, 36px); border: 1px solid var(--fv-utility-line); border-radius: 24px; background: #fff; }
.fv-utility-step__number { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; background: var(--fv-utility-ink); color: #fff; font-size: 15px; font-weight: 800; }
.fv-utility-step__title { margin-top: 24px !important; font-size: 23px; font-weight: 800; line-height: 1.25; }
.fv-utility-step__text { margin-top: 13px !important; color: var(--fv-utility-copy); font-size: 15px; line-height: 1.65; }
.fv-utility-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; padding: 0; list-style: none; }
.fv-utility-fact { display: grid; min-width: 0; padding: clamp(26px, 2.3vw, 40px); border: 1px solid var(--fv-utility-line); border-radius: 24px; background: #fff; gap: 12px; }
.fv-utility-fact strong { color: var(--fv-utility-ink); font-size: 21px; line-height: 1.3; }
.fv-utility-fact span { color: var(--fv-utility-copy); font-size: 15px; line-height: 1.65; }

.fv-utility-cta { display: flex; min-height: 210px; align-items: center; justify-content: space-between; gap: 30px; margin-block: clamp(72px, 7vw, 124px); padding: clamp(34px, 4vw, 64px); border-radius: 30px; background: var(--fv-utility-soft); }
.fv-utility-cta__title { max-width: 760px; margin-top: 12px !important; font-size: clamp(30px, 2.7vw, 46px); font-weight: 800; letter-spacing: -.03em; line-height: 1.12; }
.fv-utility-cta__button { max-width: 100%; flex: 0 1 auto; padding-block: 14px; text-align: center; white-space: normal; }

@media (max-width: 991px) {
  .fv-utility-content { grid-template-columns: 1fr; }
  .fv-utility-content:has(> .fv-utility-card:nth-child(2):last-child) { grid-template-columns: 1fr; }
  .fv-utility-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 599.98px) {
  .fv-utility-page .fv-container { width: calc(100% - 36px); }
  .fv-utility-hero { padding-block: 48px 42px; }
  .fv-utility-eyebrow { font-size: 15px; letter-spacing: .06em; }
  .fv-utility-hero__title { margin-top: 13px !important; font-size: 40px; }
  .fv-utility-hero__lead { margin-top: 16px !important; font-size: 16px; }
  .fv-utility-content { gap: 14px; padding-bottom: 60px; }
  .fv-utility-card { min-height: 0; padding: 26px 22px; border-radius: 22px; }
  .fv-utility-card__title { margin-top: 20px !important; font-size: 25px; }
  .fv-utility-card__text { margin-top: 13px !important; font-size: 15px; }
  .fv-utility-process { padding-block: 58px; }
  .fv-utility-section-head { margin-bottom: 30px; }
  .fv-utility-section-head__title { font-size: 31px; }
  .fv-utility-steps,
  .fv-utility-facts { grid-template-columns: 1fr; gap: 14px; }
  .fv-utility-step,
  .fv-utility-fact { padding: 24px 21px; border-radius: 20px; }
  .fv-utility-cta { width: calc(100% - 36px); min-height: 0; flex-direction: column; align-items: stretch; margin-block: 58px; padding: 28px 22px; border-radius: 24px; }
  .fv-utility-cta__title { font-size: 29px; }
  .fv-utility-cta__button { width: 100%; }
}
