/* Credit simulation banner. Copy and CTA stay live HTML; the phone is decorative. */
.simulation-banner {
  padding: clamp(2.5rem, 4vw, 5rem) clamp(.25rem, .3vw, .75rem) clamp(2.5rem, 3vw, 4rem);
  background: #fff;
  font-family: var(--font-text);
}

.simulation-banner__panel {
  position: relative;
  isolation: isolate;
  container: simulation-banner / inline-size;
  overflow: hidden;
  max-width: 128rem;
  min-height: 26.6cqw;
  margin-inline: auto;
  border-radius: clamp(1.25rem, 1.8vw, 2.5rem);
  background:
    radial-gradient(ellipse 48% 75% at 55% -6%, #115393 0%, transparent 90%),
    linear-gradient(180deg, #07315c 0%, #05264b 46%, #021d3d 100%);
  color: #fff;
}

.simulation-banner__panel::before {
  content: '';
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  width: 29%;
  height: 33%;
  background: linear-gradient(168deg, #f9d284 0%, #c69a4d 48%, #f7d184 64%, #a87733 100%);
  clip-path: polygon(100% 0, 100% 16%, 0 100%, 0 88%);
  pointer-events: none;
}

.simulation-banner__panel::after {
  content: '';
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(145deg, transparent 46%, rgb(0 13 35 / .18) 46.1%, transparent 69%);
  pointer-events: none;
}

.simulation-banner__growth {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.simulation-banner__growth span {
  position: absolute;
  bottom: 0;
  width: 6.5%;
  border-radius: .25rem .25rem 0 0;
  background: linear-gradient(160deg, rgb(49 116 177 / .48), rgb(12 64 119 / .24));
  transform: skewY(-29deg);
  transform-origin: bottom left;
}

.simulation-banner__growth span:nth-child(1) { left: 45%; height: 25%; }
.simulation-banner__growth span:nth-child(2) { left: 53%; height: 40%; }
.simulation-banner__growth span:nth-child(3) { right: 2.5%; height: 72%; }

.simulation-banner__content {
  position: relative;
  z-index: 2;
  width: 59%;
  padding: 4.65cqw 0 4.5cqw 5.3cqw;
}

.simulation-banner h2 {
  margin: 0;
  font-size: 3.6cqw;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.035em;
  white-space: nowrap;
}

.simulation-banner__description {
  margin: .7cqw 0 0;
  color: #d1d9e6;
  font-size: 1.7cqw;
  line-height: 1.25;
  letter-spacing: -.015em;
}

.simulation-banner__actions { margin-top: 1.75cqw; }

.simulation-banner__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  width: 25cqw;
  min-height: max(44px, 4.55cqw);
  padding: .75cqw 2cqw;
  border: 1px solid #e4e8ef;
  border-radius: 1.1cqw;
  background: #fff;
  color: #071f50;
  font-size: 1.55cqw;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.03em;
  text-decoration: none;
  transition: background-color 200ms ease, transform 200ms ease;
}

.simulation-banner__button svg {
  flex: 0 0 1.7cqw;
  width: 1.7cqw;
  height: 1.7cqw;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.simulation-banner__button:hover { background: #edf4ff; transform: translateY(-2px); }
.simulation-banner__button span { white-space: nowrap; }
.simulation-banner__button:active { transform: translateY(1px); }
.simulation-banner__button:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }

.simulation-banner__phone {
  position: absolute;
  z-index: 1;
  top: -1.25cqw;
  left: 56.7%;
  width: 30.3%;
  max-width: none;
  height: auto;
  clip-path: polygon(1% 100%, 3% 80%, 7% 55%, 11% 30%, 13% 20%, 16% 15%, 21% 11%, 26% 9.5%, 35% 9.5%, 75% 11.5%, 85% 12.5%, 90% 14.5%, 94% 18.5%, 96% 22.5%, 97% 28%, 96% 39%, 94% 55%, 89% 75%, 84% 95%, 83% 100%);
  pointer-events: none;
}

@media (max-width: 56.25rem) {
  .simulation-banner { padding: 2.5rem 1rem; }
  .simulation-banner__panel { min-height: 17rem; border-radius: 1.25rem; }
  .simulation-banner__content { width: 59%; padding: 2.25rem 0 2.25rem 2rem; }
  .simulation-banner h2 { font-size: clamp(1.75rem, 3.5vw, 2.3rem); white-space: normal; }
  .simulation-banner__description { margin-top: .75rem; font-size: clamp(.9rem, 2vw, 1.15rem); }
  .simulation-banner__actions { margin-top: 1.25rem; }
  .simulation-banner__button { width: min(100%, 18rem); min-height: 3.25rem; padding: .65rem 1.25rem; border-radius: .75rem; font-size: 1rem; }
  .simulation-banner__button svg { flex-basis: 1.25rem; width: 1.25rem; height: 1.25rem; }
  .simulation-banner__phone { width: 43%; top: -.7rem; left: auto; right: 1%; }
  .simulation-banner__panel::before { width: 36%; }
}

@media (max-width: 37.5rem) {
  .simulation-banner { padding: 1.25rem .75rem; }
  .simulation-banner__panel { height: clamp(15rem, 69vw, 17rem); min-height: 0; border-radius: 1rem; }
  .simulation-banner__panel::before { display: none; }
  .simulation-banner__content { width: 100%; height: 100%; padding: 1.15rem 1.2rem; }
  .simulation-banner h2 { font-size: clamp(1.25rem, 5vw, 1.75rem); }
  .simulation-banner__description { max-width: 52%; margin-top: .65rem; font-size: .83rem; line-height: 1.35; }
  .simulation-banner__break { display: none; }
  .simulation-banner__actions { position: absolute; right: 1.2rem; bottom: 1rem; left: 1.2rem; margin: 0; }
  .simulation-banner__button { width: 100%; min-height: 3.25rem; padding: .65rem 1rem; gap: .75rem; border-radius: .8rem; font-size: 1rem; }
  .simulation-banner__button svg { flex-basis: 1.25rem; width: 1.25rem; height: 1.25rem; }
  .simulation-banner__phone { position: absolute; width: min(52%, 15rem); top: 2rem; right: -7%; left: auto; margin: 0; }
  .simulation-banner__growth span:nth-child(1), .simulation-banner__growth span:nth-child(2) { display: none; }
  .simulation-banner__growth span:nth-child(3) { width: 20%; }
}

@media (prefers-reduced-motion: reduce) {
  .simulation-banner__button { transition: none; }
  .simulation-banner__button:hover, .simulation-banner__button:active { transform: none; }
}
