
/* EMOLiA Speaking Club: keep lead capture and recurring Stripe payments separate. */
.hero .hero-register .register-section-label { margin-top: 0; }
.hero .hero-register .register-checkout-row { padding-top: 7px; }
.hero .hero-register .register-secure-label { white-space: normal; }
.hero .hero-register .register-checkout .consent { line-height: 1.6; }
.hero .hero-register .register-checkout .consent strong { font-weight: 700; }
.hero .hero-register #reserve-spot-button { cursor: pointer; font-family: Manrope, Arial, sans-serif; }
.hero .hero-register #reserve-spot-button:focus-visible { outline: 3px solid #6d3cc7; outline-offset: 4px; }
.hero .hero-register .form-status.error { color: #a32e3c; }
.hero .hero-register .form-status.success { color: #236b43; }
.hero .hero-register .membership-offers__form-link {
  display: inline-flex; width: fit-content; color: #5c2ba1;
  font: 700 12px/1.5 Manrope, Arial, sans-serif;
  text-decoration: underline; text-underline-offset: 4px;
}
.membership-offers {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 90% 8%, #e6d5f5, transparent 42%), #f7f1fb;
  color: #2c1c39;
  padding: clamp(80px, 9vw, 135px) clamp(20px, 5vw, 82px);
}
.membership-offers__inner { max-width: 1260px; margin-inline: auto; }
.membership-offers__intro { max-width: 800px; margin-bottom: clamp(34px, 5vw, 64px); }
.membership-offers__intro .eyebrow {
  color: #673dc3; font: 800 11px/1.5 Manrope, Arial, sans-serif; letter-spacing: .16em;
}
.membership-offers__intro h2 {
  color: #281936; font-size: clamp(48px, 5.5vw, 82px); line-height: 1.08;
  letter-spacing: -.055em; margin: 13px 0 19px;
}
.membership-offers__intro h2 em { color: #6d3cc7; }
.membership-offers__intro>p:last-child { color: #685575; font-size: clamp(16px, 1.55vw, 19px); line-height: 1.65; max-width: 700px; }
.membership-offers .plan-choice-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch;
  gap: clamp(14px, 2vw, 26px);
}
.membership-offers .plan-option {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid #d9c5e9; border-radius: 24px;
  background: #fff; box-shadow: 0 18px 45px rgba(61, 27, 98, .065);
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.membership-offers .plan-option:hover { transform: translateY(-5px); border-color: #a781d1; box-shadow: 0 23px 55px rgba(61, 27, 98, .12); }
.membership-offers .plan-choice { display: block; width: 100%; }
.membership-offers .plan-choice-content {
  display: flex; flex-direction: column; gap: 17px; padding: clamp(23px, 2.6vw, 37px);
  background: transparent; border-bottom: 1px solid #e9ddef; min-height: 260px;
}
.membership-offers .plan-choice-meta {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 9px;
  color: #6d3cc7; font: 800 12px/1.4 Manrope, Arial, sans-serif; letter-spacing: .11em;
}
.membership-offers .plan-choice-tag {
  background: #6d3cc7; color: #fff; padding: 6px 10px; border-radius: 99px;
  font-size: 10px; letter-spacing: .04em;
}
.membership-offers .plan-choice-price {
  display: block; color: #24152f; font: 800 clamp(48px, 5vw, 69px)/1.05 Manrope, Arial, sans-serif;
  letter-spacing: -.06em;
}
.membership-offers .plan-choice-price small { font: 800 16px/1.4 Manrope, Arial, sans-serif; letter-spacing: 0; color: #624b72; }
.membership-offers .plan-billing-frequency { display: block; color: #6331ad; font-size: 13px; line-height: 1.5; font-weight: 800; }
.membership-offers .plan-choice-note { display: block; color: #786b85; font-size: 14px; line-height: 1.4; }
.membership-offers .plan-choice-highlight {
  display: block; padding-top: 12px; margin-top: auto; border-top: 1px solid #e8ddec;
  color: #593493; font-size: 14px; font-weight: 800;
}
.membership-offers .plan-benefits-details { display: block; border: none; border-bottom: 1px solid #eee4f3; background: #faf7fd; }
.membership-offers .plan-benefits-details summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 21px clamp(22px, 2.6vw, 36px); cursor: pointer; list-style: none;
  color: #5f329f; font: 800 13px/1.35 Manrope, Arial, sans-serif;
}
.membership-offers .plan-benefits-details summary::-webkit-details-marker { display: none; }
.membership-offers .plan-benefits-details summary span { font-size: 23px; transition: transform .2s ease; }
.membership-offers .plan-benefits-details[open] summary span { transform: rotate(45deg); }
.membership-offers .plan-benefits-details summary:focus-visible,
.membership-offers .membership-offers__pay:focus-visible { outline: 3px solid #6d3cc7; outline-offset: -4px; }
.membership-offers .plan-benefits-body { padding: 0 clamp(22px, 2.6vw, 36px) 24px; color: #594d68; font-size: 13px; line-height: 1.65; }
.membership-offers .plan-benefits-intro { margin-bottom: 13px; font-weight: 700; }
.membership-offers .plan-benefits-body ul { padding-left: 19px; margin: 0; }
.membership-offers .plan-benefits-body li { margin-bottom: 8px; }
.membership-offers .membership-offers__pay {
  display: flex; align-items: center; justify-content: space-between; gap: 15px;
  min-height: 62px; margin: auto 23px 23px; padding: 15px 23px; border-radius: 99px;
  background: linear-gradient(110deg, #b98c44, #f0d48c); color: #26162f;
  font: 800 13px/1.4 Manrope, Arial, sans-serif; text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
.membership-offers .membership-offers__pay span { font-size: 20px; }
.membership-offers .membership-offers__pay:hover { transform: translateY(-2px); box-shadow: 0 12px 22px rgba(94, 62, 30, .17); }
.membership-offers__renewal, .membership-offers__note {
  max-width: 1000px; margin: 26px 0 0; color: #645370; font-size: 13px; line-height: 1.7;
}
.membership-offers__note { margin-top: 12px; font-size: 12px; }
.membership-offers__renewal a { color: #6031aa; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 990px) {
  .membership-offers .plan-choice-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .membership-offers .plan-option:last-child { grid-column: 1 / -1; max-width: 560px; width: 100%; justify-self: center; }
}
@media (max-width: 620px) {
  .membership-offers { padding: 75px 19px 85px; }
  .membership-offers .plan-choice-grid { grid-template-columns: minmax(0,1fr); }
  .membership-offers .plan-option:last-child { grid-column: auto; max-width: none; }
  .membership-offers .plan-choice-content { min-height: 240px; padding: 25px; }
  .membership-offers .plan-choice-price { font-size: 58px; }
  .hero .hero-register .register-checkout-row { align-items: flex-start; flex-direction: column; }
  .hero .hero-register #reserve-spot-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .membership-offers .plan-option,.membership-offers .membership-offers__pay { transition: none; }
}


/* Alignment refinement: equal card rows and consistent checkout buttons. */
@media (min-width: 621px) {
  .membership-offers .plan-option {
    display: grid;
    grid-template-rows: minmax(320px, auto) minmax(68px, 1fr) auto;
    align-content: stretch;
  }
  .membership-offers .plan-choice { align-self: stretch; }
  .membership-offers .plan-choice-content {
    display: grid;
    grid-template-rows: minmax(28px, auto) 75px minmax(36px, auto) minmax(26px, auto) minmax(52px, 1fr);
    align-content: stretch;
    gap: 11px;
    height: 100%;
    min-height: 0;
  }
  .membership-offers .plan-choice-price {
    margin: 0;
    align-self: center;
  }
  .membership-offers .plan-billing-frequency,
  .membership-offers .plan-choice-note {
    margin: 0;
    align-self: start;
  }
  .membership-offers .plan-choice-highlight {
    align-self: end;
    margin: 0;
  }
}
.membership-offers .plan-benefits-details { align-self: stretch; }
.membership-offers .plan-benefits-details summary { min-height: 68px; }
.membership-offers .membership-offers__pay {
  box-sizing: border-box;
  flex: none;
  width: auto;
  min-height: 60px;
  margin: 18px 22px 22px;
  align-self: end;
}
@media (max-width: 990px) and (min-width: 621px) {
  .membership-offers .plan-option {
    grid-template-rows: minmax(320px, auto) minmax(68px, 1fr) auto;
  }
}
@media (max-width: 620px) {
  .membership-offers .plan-option {
    display: grid;
    grid-template-rows: auto minmax(68px, auto) auto;
  }
  .membership-offers .plan-choice-content {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 260px;
  }
  .membership-offers .membership-offers__pay {
    width: auto;
    margin: 14px 18px 19px;
  }
}

/* Editorial highlight v2: slim ribbon, no glow, no animated effect.
   Scoped strictly to the six-month membership card. */
.membership-offers .plan-choice-grid .plan-option--popular {
  position: relative;
  isolation: isolate;
  z-index: 3;
  overflow: hidden;
  border: 1.5px solid #6E48A5;
  background: #fcfaff;
  transform: translateY(-18px) scale(1.025);
  transform-origin: center center;
  box-shadow:
    0 34px 68px rgba(42, 23, 69, .24),
    0 11px 24px rgba(42, 23, 69, .11);
}
.membership-offers .plan-choice-grid .plan-option--popular .plan-recommendation {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 11px;
  min-height: 38px;
  padding: 9px 16px;
  background: #4D326D;
  color: #fff;
  font: 800 11px/1.35 Manrope, Arial, sans-serif;
  letter-spacing: .15em;
  text-align: center;
}
.membership-offers .plan-choice-grid .plan-option--popular .plan-recommendation span {
  color: #E9C97E;
  font-size: 12px;
}
.membership-offers .plan-choice-grid .plan-option--popular .plan-choice-content {
  padding-top: calc(clamp(23px, 2.6vw, 37px) + 38px);
  background: linear-gradient(180deg, #F7F1FD 0%, #FFF 85%);
}
.membership-offers .plan-choice-grid .plan-option--popular .plan-choice-meta {
  color: #624287;
}
.membership-offers .plan-choice-grid .plan-option--popular:hover {
  transform: translateY(-22px) scale(1.03);
  border-color: #6E48A5;
  box-shadow:
    0 40px 74px rgba(42, 23, 69, .27),
    0 14px 26px rgba(42, 23, 69, .13);
}
@media (min-width: 621px) {
  .membership-offers .plan-choice-grid .plan-option--popular .plan-choice-content {
    grid-template-rows: minmax(28px, auto) 75px minmax(36px, auto) minmax(26px, auto) minmax(52px, 1fr);
  }
}
/* The staggered grid becomes two columns on tablets and one on mobile.
   Reduce lift to avoid colliding cards or horizontal overflow. */
@media (max-width: 990px) and (min-width: 621px) {
  .membership-offers .plan-choice-grid .plan-option--popular {
    transform: translateY(-8px) scale(1.01);
  }
  .membership-offers .plan-choice-grid .plan-option--popular:hover {
    transform: translateY(-11px) scale(1.015);
  }
}
@media (max-width: 620px) {
  .membership-offers .plan-choice-grid .plan-option--popular .plan-choice-content {
    padding-top: 68px;
  }
  .membership-offers .plan-choice-grid .plan-option--popular,
  .membership-offers .plan-choice-grid .plan-option--popular:hover {
    transform: none;
  }
  .membership-offers .plan-choice-grid .plan-option--popular {
    box-shadow: 0 19px 44px rgba(42, 23, 69, .2);
  }
}
@media (prefers-reduced-motion: reduce) {
  .membership-offers .plan-choice-grid .plan-option--popular {
    transition: none;
  }
  .membership-offers .plan-choice-grid .plan-option--popular:hover {
    transform: translateY(-18px) scale(1.025);
  }
}
@media (max-width: 990px) and (min-width: 621px) and (prefers-reduced-motion: reduce) {
  .membership-offers .plan-choice-grid .plan-option--popular:hover {
    transform: translateY(-8px) scale(1.01);
  }
}
@media (max-width: 620px) and (prefers-reduced-motion: reduce) {
  .membership-offers .plan-choice-grid .plan-option--popular:hover {
    transform: none;
  }
}
