/* Vidro sobre a curva da marca; as fontes e a largura acompanham o restante do site. */
.rb-contracts {
  --rb-navy: #0c153e;
  --rb-blue: #3273bd;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--paper);
  color: var(--rb-navy);
  font-family: var(--body);
  padding-block: clamp(64px, 7.8vw, 120px) clamp(72px, 8.5vw, 132px);
}

.rb-contracts__curve {
  position: absolute;
  z-index: -2;
  width: 88%;
  height: 95%;
  top: -3%;
  right: -7%;
  border: clamp(50px, 8vw, 130px) solid #e9edf4;
  border-radius: 48% 54% 40% 55%;
  transform: rotate(-29deg);
  pointer-events: none;
}

.rb-contracts__wash {
  position: absolute;
  z-index: -1;
  inset: 38% -12% -22%;
  pointer-events: none;
  filter: blur(30px);
  background:
    radial-gradient(ellipse at 7% 92%, #12224e 0%, #203361 16%, transparent 37%),
    radial-gradient(ellipse at 52% 63%, #7a88a5 0%, #b6bfd0 21%, transparent 42%),
    radial-gradient(ellipse at 96% 46%, #82afe4 0%, #a6c9ee 25%, transparent 47%);
}

.rb-contracts__inner { max-width: 1320px; }

.rb-contracts__divider {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 74px;
  fill: var(--paper);
  pointer-events: none;
}

.rb-contracts__eyebrow {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0 0 35px;
  font-size: .8125rem;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: .14em;
}

.rb-contracts__eyebrow::before {
  content: '';
  width: 36px;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

.rb-contracts__header {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 60px;
  align-items: end;
  margin-bottom: 60px;
}

.rb-contracts__title {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(2.75rem, 5.4vw, 5.25rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.055em;
}

.rb-contracts__title > .rb-contracts__highlight {
  display: block;
  color: var(--rb-blue);
}

.rb-contracts__description {
  max-width: 460px;
  margin: 0 0 4px auto;
  color: #596475;
  font-size: clamp(1.0625rem, 1.65vw, 1.5rem);
  line-height: 1.65;
}

.rb-contracts__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

/* A entrada na tela e o movimento do mouse usam camadas independentes. */
.rb-contracts__card-motion { min-width: 0; }

.rb-contracts__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
  min-height: 370px;
  padding: clamp(24px, 3.3vw, 52px);
  border: 2px solid rgba(255, 255, 255, .87);
  border-radius: 36px;
  background: rgba(243, 247, 253, .88);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, .95), 0 16px 38px rgba(30, 48, 82, .09);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .rb-contracts__card { transition: transform .25s var(--ease); }
  .rb-contracts__card-motion:hover > .rb-contracts__card {
    transform: translateY(-4px) scale(1.015);
  }
}

/* A camada clara mantém o contraste mesmo sobre as manchas mais escuras. */
@supports ((backdrop-filter: blur(24px)) or (-webkit-backdrop-filter: blur(24px))) {
  .rb-contracts__card {
    background: linear-gradient(125deg, rgba(255, 255, 255, .76), rgba(240, 246, 255, .66));
    -webkit-backdrop-filter: blur(24px) saturate(115%);
    backdrop-filter: blur(24px) saturate(115%);
  }
}

.rb-contracts__card-label {
  margin: 0 0 44px;
  font-size: 1rem;
  line-height: 1.6;
  color: #2c3b56;
}

.rb-contracts__client {
  margin: 0 0 62px;
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(2.75rem, 5vw, 4.875rem);
  line-height: 1.1;
  letter-spacing: -.055em;
}

.rb-contracts__link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  align-self: flex-start;
  gap: 30px;
  max-width: 100%;
  min-height: 44px;
  margin-top: auto;
  padding-bottom: 12px;
  border-bottom: 1px solid #667896;
  color: var(--rb-navy);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: none;
  transition: color .2s, border-color .2s;
}

.rb-contracts__link > .rb-contracts__arrow {
  width: 27px;
  height: 27px;
  flex-shrink: 0;
  transition: transform .25s var(--ease);
}

.rb-contracts__link:hover { color: #1a3966; border-color: currentColor; }
.rb-contracts__link:hover > .rb-contracts__arrow { transform: translate(2px, -2px); }
.rb-contracts__link:focus-visible { outline: 3px solid #3273bd; outline-offset: 6px; border-radius: 3px; }

@media (max-width: 1000px) {
  .rb-contracts__header { gap: 36px; margin-bottom: 46px; }
  .rb-contracts__card { min-height: 330px; }
  .rb-contracts__card-label { font-size: .875rem; }
  .rb-contracts__link { gap: 20px; font-size: .875rem; }
}

@media (max-width: 800px) {
  .rb-contracts__divider { height: 39px; }
  .rb-contracts__header { grid-template-columns: 1fr; gap: 26px; margin-bottom: 36px; }
  .rb-contracts__description { margin: 0; max-width: 540px; }
  .rb-contracts__eyebrow { margin-bottom: 26px; font-size: .75rem; letter-spacing: .11em; gap: 12px; }
  .rb-contracts__eyebrow::before { width: 28px; }
  .rb-contracts__grid { grid-template-columns: 1fr; gap: 20px; }
  .rb-contracts__card { min-height: 310px; border-radius: 28px; }
  .rb-contracts__card-label { margin-bottom: 32px; font-size: .9375rem; }
  .rb-contracts__client { margin-bottom: 46px; }
  .rb-contracts__link { font-size: .9375rem; gap: 18px; }
  .rb-contracts__curve { width: 150%; right: -65%; }
  .rb-contracts__wash { inset: 35% -45% -10%; }
}

@media (max-width: 380px) {
  .rb-contracts__card { padding: 24px 20px; }
  .rb-contracts__eyebrow { font-size: .6875rem; letter-spacing: .08em; }
  .rb-contracts__link { font-size: .875rem; gap: 14px; }
  .rb-contracts__link > .rb-contracts__arrow { width: 23px; height: 23px; }
}

@media (prefers-reduced-transparency: reduce) {
  .rb-contracts__card { background: #edf2fa; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (prefers-reduced-motion: reduce) {
  .rb-contracts__link, .rb-contracts__link > .rb-contracts__arrow { transition: none; }
  .rb-contracts__link:hover > .rb-contracts__arrow { transform: none; }
}
