.partners {
  padding: 88px max(6vw, calc((100vw - 1240px) / 2));
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 70px;
  align-items: center;
  background: #fff;
}
.partners-copy h2 { margin: 18px 0; color: var(--deep); font-size: 48px; line-height: 1.02; letter-spacing: -.04em; }
.partners-copy p { margin: 0; color: var(--muted); line-height: 1.65; }
.partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.partner { min-height: 148px; padding: 23px; display: flex; flex-direction: column; justify-content: space-between; border-radius: 12px; box-shadow: 0 12px 28px rgba(9, 46, 69, .1); overflow: hidden; position: relative; }
.partner::after { content: ""; width: 110px; height: 110px; position: absolute; right: -35px; bottom: -48px; border: 24px solid currentColor; border-radius: 50%; opacity: .1; }
.partner span { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .72; }
.partner strong { position: relative; z-index: 1; font-size: 34px; line-height: 1; letter-spacing: -.05em; }
.partner.win { color: #fff; background: #301d19; border-bottom: 6px solid #ff5a0a; }
.partner.win strong { color: #ff5a0a; font-size: 42px; }
.partner.mifibra { color: #102d4f; background: #f1f7e4; border-bottom: 6px solid #9bc53d; }
.partner.mifibra strong { color: #07569b; }
.partner.perufibra { color: #fff; background: #164a70; border-bottom: 6px solid #ef4444; }
.partner.perufibra strong { font-size: 30px; }
.partner.perufibra b { color: #ffcb45; }
.partner.movistar { color: #fff; background: #019df4; border-bottom: 6px solid #5cb615; }
.partner.movistar strong { font-size: 35px; font-weight: 500; }
.provider-choice { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.provider-option { min-height: 86px; position: relative; cursor: pointer; }
.provider-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.provider-option > span { height: 100%; padding: 16px 17px; display: flex; flex-direction: column; justify-content: center; gap: 4px; background: #fff; border: 2px solid #d4dddf; border-radius: 9px; transition: .18s; }
.provider-option b { font-size: 18px; }
.provider-option small { color: var(--muted); font-weight: 600; }
.provider-option:hover > span { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(7, 53, 83, .09); }
.provider-option > input:focus-visible + span { outline: 3px solid rgba(7, 86, 155, .2); }
.provider-option > input:checked + span { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7, 86, 155, .1); }
.win-option > input:checked + span { color: #301d19; border-color: #ff5a0a; background: #fff7f2; }
.mifibra-option > input:checked + span { color: #07569b; border-color: #9bc53d; background: #f7faef; }
.perufibra-option > input:checked + span { color: #164a70; border-color: #164a70; background: #f1f7fb; }
.movistar-option > input:checked + span { color: #0176b7; border-color: #019df4; background: #f1faff; }
@media (max-width: 900px) {
  .partners { grid-template-columns: 1fr; }
  .partners-copy { max-width: 620px; }
}
@media (max-width: 620px) {
  .partners { padding: 65px 22px; gap: 35px; }
  .partners-copy h2 { font-size: 42px; }
  .partner-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .partner { min-height: 122px; padding: 17px; }
  .partner strong, .partner.win strong, .partner.mifibra strong, .partner.movistar strong { font-size: 27px; }
  .partner.perufibra strong { font-size: 23px; }
  .provider-choice { grid-template-columns: 1fr; }
  .provider-option { min-height: 76px; }
}
