/* Composição dos preços: preço anterior, valor principal e parcelamento.
   Escopo restrito aos dois módulos de oferta. */
.plan > div > .offer-price {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 10px;
  margin: 0 0 22px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid #c4e4d5;
  border-top: 3px solid #08784e;
  border-radius: 14px;
  background: radial-gradient(ellipse at 100% 0, #c9f0dd80, transparent 70%), #eff9f4;
  color: #075d3d;
  text-align: left;
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
}
.plan > div > .offer-price p {
  margin: 0;
  padding: 0;
  color: inherit;
}
.plan > div > .offer-price .offer-previous {
  color: #5e7168;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
}
.offer-previous s {
  text-decoration-thickness: 1.5px;
  text-decoration-color: #7b8e84;
}
.plan > div > .offer-price .offer-current {
  display: flex;
  align-items: baseline;
  gap: 10px;
  line-height: 1;
  white-space: nowrap;
}
.plan > div > .offer-price .offer-prefix {
  display: inline;
  font-size: 1rem;
  font-weight: 500;
}
.offer-total {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: inherit;
  font-weight: 800;
}
.plan > div > .offer-price .offer-currency {
  display: inline;
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -.03em;
}
.plan > div > .offer-price .offer-amount {
  display: inline;
  font-size: 4.5rem;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.065em;
}
.plan > div > .offer-price .offer-installment {
  padding-top: 13px;
  border-top: 1px solid #c4e4d5;
  color: #365b48;
  font-size: .94rem;
  font-weight: 400;
  line-height: 1.5;
  white-space: nowrap;
}
.offer-installment strong { font-weight: 700; }
.plan > div > .offer-price .offer-installment span { display: inline; }
.plan.complete > div > .offer-price {
  border-color: #ffffff38;
  border-top-color: #f5cf5b;
  background: radial-gradient(ellipse at 100% 0, #ffffff14, transparent 75%), #ffffff0d;
  color: #fff;
}
.plan.complete > div > .offer-price .offer-previous { color: #d1e6dc; }
.complete .offer-previous s { text-decoration-color: #bfd8cb; }
.plan.complete > div > .offer-price .offer-installment {
  border-color: #ffffff30;
  color: #e1f0e8;
}
@media (max-width: 900px) and (min-width: 651px) {
  .plan > div > .offer-price { padding: 20px 16px; }
  .plan > div > .offer-price .offer-amount { font-size: 3.7rem; }
  .plan > div > .offer-price .offer-installment { font-size: .82rem; }
}
@media (max-width: 650px) {
  .plan > div > .offer-price { padding: 22px 20px; gap: 10px; }
  .plan > div > .offer-price .offer-amount { font-size: 4.25rem; }
  .plan > div > .offer-price .offer-current { gap: 8px; }
  .plan > div > .offer-price .offer-currency { font-size: 1.5rem; }
  .plan > div > .offer-price .offer-installment { font-size: .9rem; }
}
@media (max-width: 360px) {
  .plan > div > .offer-price { padding: 20px 14px; }
  .plan > div > .offer-price .offer-amount { font-size: 3.8rem; }
  .plan > div > .offer-price .offer-installment { font-size: .82rem; }
}
/* Permite ampliação do texto sem cortar o parcelamento. */
@media (max-width: 300px) {
  .plan > div > .offer-price .offer-installment { white-space: normal; }
  .plan > div > .offer-price .offer-current { flex-wrap: wrap; }
}
.plan > div > .offer-price .offer-previous s {
  font-size: 1.4rem !important;
}
