.membership.wrap.membership-plans {
  max-width: 900px;
  padding: 32px 30px 26px;
  border-radius: 32px;
  background: linear-gradient(135deg, #f9f5fff7, #f3fbfff7 55%, #fff7e9f7);
  box-shadow: 0 6px 0 #ad9cc82b, 0 18px 40px #3e4c6c1a;
}
.membership-plans .plans-heading { margin-bottom: 15px; }
.membership-plans .plans-heading h2 { font-size: clamp(27px, 3.5vw, 36px); margin: 8px 0; color: #573b78; }
.membership-plans .plans-heading > p { font-size: 14px; line-height: 1.7; }
.membership-plans .plans-preview { margin: 0 0 18px; padding: 9px 15px; border-radius: 16px; color: #4d5367; font-size: 13px; line-height: 1.7; background: #fffffff0; }
.pricing-table-frame { border: 1px solid #d8cce7; border-radius: 22px; background: #fff; box-shadow: 0 4px 0 #cbbddb26; }
.pricing-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; text-align: right; color: #493760; }
.pricing-table th,.pricing-table td { padding: 17px 22px; vertical-align: middle; border-bottom: 1px solid #e7deed; }
.pricing-table thead th { font: 600 17px/1.4 'Fredoka', Arial, sans-serif; background: #ede2f8; color: #51386d; padding-block: 12px; }
.pricing-table thead th:first-child { border-start-start-radius: 21px; }
.pricing-table thead th:last-child { border-start-end-radius: 21px; }
.pricing-table th:first-child { width: 35%; }
.pricing-table th:nth-child(2) { width: 38%; }
.pricing-table th:last-child { width: 27%; }
.pricing-table tbody th { font-weight: 400; }
.pricing-table .pricing-name { display: block; font: 600 23px/1.3 'Fredoka', Arial, sans-serif; }
.pricing-table small { display: block; font: 13px/1.6 'Varela Round', Arial, sans-serif; color: #4d5367; margin-top: 5px; }
.pricing-table .pricing-number { display: block; font: 600 27px/1.2 'Fredoka', Arial, sans-serif; font-variant-numeric: tabular-nums; color: #493760; white-space: nowrap; }
.pricing-table .pricing-annual { background: #f6f0fc; }
.pricing-equivalent { display: inline-block; color: #67478a; font-size: 12px; line-height: 1.6; margin-top: 4px; }
.pricing-table tbody tr:last-child :is(th,td) { border-bottom: 0; }
.pricing-table tbody tr:last-child th { border-end-start-radius: 21px; }
.pricing-table tbody tr:last-child td:last-child { border-end-end-radius: 21px; }
.pricing-details { display: inline-flex; justify-content: center; align-items: center; gap: 10px; min-height: 44px; padding: 8px 17px; border: 1px solid #fff; border-radius: 24px; color: #fff; background: #76519c; box-shadow: 0 3px 0 #54366f; font: 500 16px/1.3 'Fredoka', Arial, sans-serif; cursor: pointer; }
.pricing-details:hover { background: #664681; }
.pricing-gift-choice { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 13px 18px; background: #fff4e2; border: 1px solid #ead4b2; border-radius: 20px; color: #684b2c; }
.pricing-gift-choice label { font: 500 19px/1.4 'Fredoka', Arial, sans-serif; }
.pricing-gift-choice label span { display: block; font: 12px/1.6 'Varela Round', Arial, sans-serif; margin-top: 3px; }
.pricing-gift-choice select { width: auto; max-width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid #bca07c; border-radius: 13px; background: #fffdfa; color: #493760; font: 14px 'Varela Round', Arial, sans-serif; }
.membership-plans .plans-footer { margin-top: 15px; font-size: 12px; line-height: 1.8; }
@media (max-width: 620px) {
  .membership.wrap.membership-plans { padding: 25px 14px 21px; border-radius: 26px; }
  .pricing-table th,.pricing-table td { padding: 14px 10px; }
  .pricing-table thead th { font-size: 15px; }
  .pricing-table .pricing-name { font-size: 21px; }
  .pricing-table .pricing-number { font-size: 23px; }
  .pricing-table small { font-size: 12px; }
  .pricing-details { padding-inline: 11px; font-size: 15px; gap: 6px; }
  .pricing-gift-choice { flex-wrap: wrap; justify-content: center; text-align: center; padding: 12px; gap: 10px; }
  .pricing-gift-choice label { font-size: 18px; }
  .pricing-gift-choice select { width: 100%; }
}
@media (max-width: 370px) {
  .pricing-table th,.pricing-table td { padding-inline: 7px; }
  .pricing-table .pricing-name { font-size: 19px; }
  .pricing-table .pricing-number { font-size: 21px; }
  .pricing-details { padding-inline: 9px; }
  .pricing-details > span { display: none; }
}
