/* Legacy subscribe pay styles extracted from Rookie.Live lcc-base.css */
.field-validation-error {
  color: #f00 !important; }

.cart-input-wrapper {
  padding: 0 15px;
  margin-bottom: 30px; }
  @media screen and (min-width: 768px) {
    .cart-input-wrapper {
      width: 50%;
      margin-bottom: 80px; } }
  .cart-input-wrapper.full {
    width: 100%; }

.cart-input-row {
  flex-wrap: wrap;
  margin-bottom: 25px; }
  @media screen and (min-width: 768px) {
    .cart-input-row {
      display: flex;
      flex-wrap: nowrap;
      align-items: center; } }
  .cart-input-row .input-label {
    width: 100%; }
    @media screen and (min-width: 768px) {
      .cart-input-row .input-label {
        width: 120px; } }
    .cart-input-row .input-label label {
      font-size: 16px;
      font-weight: normal;
      color: #000;
      margin: 0; }
    .cart-input-row .input-label.required {
      position: relative; }
      .cart-input-row .input-label.required:before {
        content: '*';
        display: block;
        color: #f00;
        position: absolute;
        top: 0;
        left: -10px; }
  .cart-input-row .input-content {
    width: 100%; }
    @media screen and (min-width: 768px) {
      .cart-input-row .input-content {
        width: calc( 100% - 120px);
        padding-left: 10px; }
        .cart-input-row .input-content.coupon {
          max-width: 300px; } }
    .cart-input-row .input-content input[type="text"] {
      display: block;
      width: 100%;
      padding: 3px 5px; }
    .cart-input-row .input-content textarea {
      display: block;
      width: 100%;
      padding: 3px 5px;
      resize: none; }
    .cart-input-row .input-content select {
      display: block;
      width: 100%;
      padding: 3px 5px;
      margin-bottom: 10px; }
      @media screen and (min-width: 768px) {
        .cart-input-row .input-content select {
          display: inline-block;
          width: calc( 50% - 20px); }
          .cart-input-row .input-content select.full {
            width: 100%;
            margin-bottom: 0; } }
  .cart-input-row .input-submit {
    width: 100%;
    padding-top: 10px; }
    @media screen and (min-width: 768px) {
      .cart-input-row .input-submit {
        width: 90px;
        padding-top: 0;
        padding-left: 10px; } }
    .cart-input-row .input-submit a.submit {
      display: inline-block;
      font-size: 15px;
      width: 100%;
      height: 31px;
      line-height: 31px;
      text-align: center;
      color: #fff;
      background-color: #28ABC2;
      border-radius: 3px; }
      .cart-input-row .input-submit a.submit.border {
        border: 1px solid #28ABC2;
        background-color: #28ABC2;
        color: #fff; }
        .cart-input-row .input-submit a.submit.border:hover {
          background-color: #44c2d9; }
  .cart-input-row .cart-input-bridge {
    font-size: 14px;
    color: #000;
    text-align: center;
    margin: 10px 0; }
    @media screen and (min-width: 768px) {
      .cart-input-row .cart-input-bridge {
        margin: 0 0 0 20px; } }
  .cart-input-row .cart-social-btn {
    display: block;
    font-size: 15px;
    width: 100%;
    height: 31px;
    line-height: 31px;
    text-align: center;
    color: #fff;
    border: 1px solid #000;
    border-radius: 3px;
    margin-top: 10px; }
    @media screen and (min-width: 768px) {
      .cart-input-row .cart-social-btn {
        width: 120px;
        font-size: 14px;
        margin-left: 10px;
        margin-top: 0; } }
    @media screen and (min-width: 992px) {
      .cart-input-row .cart-social-btn {
        font-size: 15px;
        margin-left: 20px; } }
    .cart-input-row .cart-social-btn.facebook {
      background-color: #4f71b6;
      border-color: #4f71b6;
      color: #fff; }
      .cart-input-row .cart-social-btn.facebook:hover {
        background-color: #738ec5; }
    .cart-input-row .cart-social-btn.line {
      background-color: #00C200;
      border-color: #00C200;
      color: #fff; }
      .cart-input-row .cart-social-btn.line:hover {
        background-color: #52cf52; }
    .cart-input-row .cart-social-btn.google {
      background-color: #DF4B31;
      border-color: #DF4B31;
      color: #fff; }
      .cart-input-row .cart-social-btn.google:hover {
        background-color: #ea6750; }
    .cart-input-row .cart-social-btn.apple {
      background-color: #000;
      border-color: #000;
      color: #fff; }
      .cart-input-row .cart-social-btn.apple:hover {
        background-color: #555; }
  .cart-input-row.mt {
    margin-top: 25px; }
  .cart-input-row.discount {
    font-size: 14px;
    padding-left: 40px;
    margin-top: -10px;
    margin-bottom: 10px;
    position: relative; }
    .cart-input-row.discount.isShow {
      display: flex; }
    .cart-input-row.discount.isHide {
      display: none; }
    .cart-input-row.discount .input-label label {
      font-size: 14px; }
    .cart-input-row.discount .input-content {
      max-width: 180px; }
      @media screen and (min-width: 768px) {
        .cart-input-row.discount .input-content {
          max-width: 300px; } }
    .cart-input-row.discount.discount-item .remove-discount {
      display: inline-block;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background-color: #F76F6F;
      color: #fff;
      font-size: 14px;
      line-height: 14px;
      font-weight: bold;
      cursor: pointer;
      text-align: center;
      position: absolute;
      top: 4px;
      left: 15px;
      z-index: 2; }
    .cart-input-row.discount.discount-item .input-label label {
      color: #888; }

.modal-dialog .modal-content {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: none; }
  .modal-dialog .modal-content .modal-header {
    border-radius: 5px;
    border-bottom: none;
    background-color: #28ABC2;
    padding: 5px 0;
    min-height: auto; }
    .modal-dialog .modal-content .modal-header .close {
      width: 20px;
      height: 20px;
      border-radius: 10px;
      background-color: #F76F6F;
      text-shadow: none;
      color: #fff;
      opacity: 1;
      position: relative;
      top: 4px;
      right: 0;
      z-index: 2; }
      .modal-dialog .modal-content .modal-header .close span {
        display: inline-block;
        transform: translateY(-2px); }
  .modal-dialog .modal-content .modal-footer {
    border-radius: 5px;
    border-top: none;
    background-color: #28ABC2;
    padding: 5px 0;
    min-height: auto; }
  .modal-dialog .modal-content .modal-body {
    margin-left: 10px;
    margin-right: 10px;
    background-color: #fff; }
  .modal-dialog .modal-content .panel-body {
    padding: 0; }
  @media screen and (min-width: 768px) {
    .modal-dialog .modal-content .modal-plus-title, .modal-dialog .modal-content .modal-plus-intro {
      float: right;
      width: 250px;
      padding-left: 15px; } }
  .modal-dialog .modal-content .modal-plus-title {
    font-size: 16px;
    font-weight: bold;
    color: #000;
    margin-bottom: 20px; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-plus-title {
        padding-top: 30px; } }
  .modal-dialog .modal-content .modal-plus-photo {
    text-align: center; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-plus-photo {
        float: left;
        width: 300px; } }
  .modal-dialog .modal-content .modal-plus-content {
    margin-top: 20px; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-plus-content {
        float: left;
        width: 100%;
        font-size: 13px;
        line-height: 1.7;
        padding: 20px 10px 0;
        color: #666;
        border-top: 1px solid #666; } }
  .modal-dialog .modal-content .intro-title {
    display: block;
    font-size: 13px;
    color: #666;
    position: relative;
    padding-left: 10px;
    margin-bottom: 5px; }
    .modal-dialog .modal-content .intro-title:before {
      content: attr(data-intro);
      display: block; }
    .modal-dialog .modal-content .intro-title:after {
      content: '';
      display: block;
      width: 5px;
      height: 5px;
      background-color: #2889D4;
      position: absolute;
      top: 7px;
      left: 0;
      transform: rotate(45deg); }
  .modal-dialog .modal-content .modal-main-title {
    font-size: 20px;
    text-align: center;
    margin-top: 15px;
    margin-bottom: 15px; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-main-title {
        font-size: 24px; } }
    .modal-dialog .modal-content .modal-main-title span {
      display: inline-block;
      font-size: 28px;
      font-style: italic;
      letter-spacing: 0.08em;
      position: relative;
      z-index: 1; }
      .modal-dialog .modal-content .modal-main-title span:before {
        content: '';
        display: block;
        width: 103%;
        height: 10px;
        background-color: #eef9fb;
        position: absolute;
        left: -3px;
        bottom: 2px;
        z-index: -1; }
  .modal-dialog .modal-content .modal-intro {
    font-size: 12px;
    text-align: center;
    margin-bottom: 10px; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-intro {
        margin-bottom: 25px; } }
  .modal-dialog .modal-content .modal-blocks {
    text-align: justify;
    margin-bottom: 20px; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-blocks {
        margin-bottom: 35px; } }
    .modal-dialog .modal-content .modal-blocks .modal-blocks-title {
      text-align: left;
      font-size: 16px;
      color: #2889D4;
      margin-bottom: 5px; }
      .modal-dialog .modal-content .modal-blocks .modal-blocks-title span {
        display: block; }
      @media screen and (min-width: 768px) {
        .modal-dialog .modal-content .modal-blocks .modal-blocks-title {
          font-size: 18px; }
          .modal-dialog .modal-content .modal-blocks .modal-blocks-title span {
            display: inline-block; } }
    .modal-dialog .modal-content .modal-blocks .modal-blocks-intro {
      font-size: 14px;
      color: #206da9;
      padding: 0 7px;
      margin-bottom: 5px; }
      @media screen and (min-width: 768px) {
        .modal-dialog .modal-content .modal-blocks .modal-blocks-intro {
          font-size: 16px;
          padding: 0 30px; } }
    .modal-dialog .modal-content .modal-blocks .modal-blocks-text {
      padding: 0 7px;
      line-height: 1.8; }
      @media screen and (min-width: 768px) {
        .modal-dialog .modal-content .modal-blocks .modal-blocks-text {
          padding: 0 30px; } }
  .modal-dialog .modal-content .modal-method-desc {
    margin-bottom: 30px; }
    .modal-dialog .modal-content .modal-method-desc ol {
      padding-left: 1em; }
      .modal-dialog .modal-content .modal-method-desc ol li {
        text-align: justify; }
  .modal-dialog .modal-content .modal-content-footer {
    font-size: 12px;
    text-align: center;
    position: relative;
    padding-top: 20px; }
    .modal-dialog .modal-content .modal-content-footer:before {
      content: '---';
      display: block;
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%); }
    .modal-dialog .modal-content .modal-content-footer p {
      margin: 0; }
  .modal-dialog .modal-content .modal-contract .well {
    max-height: 50vh;
    overflow-x: auto;
    padding-bottom: 1px;
    -webkit-overflow-scrolling: touch; }
    @media screen and (min-width: 768px) {
      .modal-dialog .modal-content .modal-contract .well {
        max-height: 70vh; } }
    .modal-dialog .modal-content .modal-contract .well::-webkit-scrollbar {
      width: 5px;
      background-color: #aaa; }
    .modal-dialog .modal-content .modal-contract .well::-webkit-scrollbar-thumb {
      background: #000; }
  .modal-dialog .modal-content .modal-contract .modal-contract-note {
    font-size: 14px;
    text-align: center;
    color: #F69495;
    opacity: 0; }
    .modal-dialog .modal-content .modal-contract .modal-contract-note.show {
      opacity: 1; }
  .modal-dialog .modal-content .modal-contract .modal-contract-check {
    text-align: center; }
    .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox {
      display: inline-block;
      font-weight: normal;
      cursor: pointer;
      padding-top: 5px;
      margin-top: 0;
      margin-right: 15px;
      margin-bottom: 5px; }
      .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox input[type="checkbox"] {
        display: none; }
      .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox .checkboxText {
        display: block;
        font-size: 16px;
        position: relative;
        padding-left: 25px; }
        .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox .checkboxText::before, .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox .checkboxText::after {
          content: '';
          display: block;
          position: absolute; }
        .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox .checkboxText::before {
          width: 20px;
          height: 20px;
          border: 2px solid #28ABC2;
          border-radius: 4px;
          top: 2px;
          left: 0px; }
        .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox .checkboxText::after {
          content: '\f00c';
          font-size: 14px;
          line-height: 1;
          font-family: fontAwesome;
          color: #fff;
          top: 5px;
          left: 3px;
          transform: scale(0);
          transition: .2s; }
      .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox input[type="checkbox"]:checked ~ .checkboxText::before {
        background-color: #28ABC2; }
      .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox input[type="checkbox"]:checked ~ .checkboxText::after {
        transform: scale(1); }
      .modal-dialog .modal-content .modal-contract .modal-contract-check label.checkbox.disabled {
        filter: contrast(30%);
        opacity: 0.8;
        pointer-events: none; }

.subscribeSection {
  padding: 5rem 20px;
  text-align: center;
  position: relative; }
  .subscribeSection.bannerSection {
    min-height: 30rem;
    padding: 7.5rem 0 2rem;
    border-bottom: 0.5rem solid #232323; }
    .subscribeSection.bannerSection.video {
      width: 100%;
      aspect-ratio: 1080/1520; }
      .subscribeSection.bannerSection.video .bannerVideo {
        position: relative;
        top: -15%; }
      @media screen and (min-width: 768px) {
        .subscribeSection.bannerSection.video {
          aspect-ratio: 1920/720; } }
    @media screen and (min-width: 992px) {
      .subscribeSection.bannerSection {
        min-height: 43.75rem;
        padding: 20rem 0 10rem;
        margin-bottom: 10rem; } }
    .subscribeSection.bannerSection .bannerBgWrapper {
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0; }
      .subscribeSection.bannerSection .bannerBgWrapper .bannerBg {
        width: 100%;
        height: 100%;
        position: relative;
        overflow: hidden; }
        .subscribeSection.bannerSection .bannerBgWrapper .bannerBg img, .subscribeSection.bannerSection .bannerBgWrapper .bannerBg iframe {
          width: 100%;
          height: 100%;
          object-fit: cover;
          max-width: 1920px; }
        .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo {
          aspect-ratio: 1080/1920; }
          @media screen and (min-width: 768px) {
            .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo {
              aspect-ratio: 1920/1080; } }
          .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo video {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: 50% 20%; }
            .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo video.mb {
              display: block; }
              @media screen and (min-width: 768px) {
                .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo video.mb {
                  display: none; } }
            .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo video.pc {
              display: none; }
              @media screen and (min-width: 768px) {
                .subscribeSection.bannerSection .bannerBgWrapper .bannerBg .bannerVideo video.pc {
                  display: block; } }
        .subscribeSection.bannerSection .bannerBgWrapper .bannerBg::after {
          content: '';
          display: block;
          width: 100%;
          height: 100%;
          background-color: rgba(0, 0, 0, 0.4);
          background-image: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.8) 100%);
          position: absolute;
          top: 0;
          left: 0; }
  .subscribeSection h2, .subscribeSection h3 {
    font-size: 28px;
    color: #fff;
    line-height: 1.5em;
    margin: 0; }
    @media screen and (min-width: 992px) {
      .subscribeSection h2, .subscribeSection h3 {
        font-size: 48px; } }
  .subscribeSection p {
    font-size: 18px;
    line-height: 1.5em;
    margin: 1em 0 0; }
    @media screen and (min-width: 992px) {
      .subscribeSection p {
        font-size: 24px; } }
  .subscribeSection .alertText {
    display: inline-block;
    font-size: 16px;
    color: #ea1517;
    text-align: justify; }
  .subscribeSection h2.plansTitle {
    font-size: 24px;
    margin-bottom: 20px; }
    @media screen and (min-width: 992px) {
      .subscribeSection h2.plansTitle {
        font-size: 36px; } }
    .subscribeSection h2.plansTitle span {
      display: inline-block;
      background-color: #28ABC2;
      padding: 5px 12px;
      border-radius: 5px; }
  .subscribeSection h3.plansSubTitle {
    font-size: 16px;
    margin-bottom: 20px; }
    @media screen and (min-width: 992px) {
      .subscribeSection h3.plansSubTitle {
        font-size: 22px; } }

.subscribeStepWrapper {
  max-width: 1000px;
  margin: auto;
  display: flex;
  justify-content: center; }
  .subscribeStepWrapper .subscribeStep {
    display: block;
    width: 200px;
    position: relative; }
    .subscribeStepWrapper .subscribeStep + .subscribeStep::before {
      content: '\e5d3';
      width: 100%;
      display: flex;
      justify-content: center;
      font-size: 50px;
      font-family: 'Material Symbols Outlined';
      color: #ccc;
      position: absolute;
      top: 20%;
      left: -50%; }
    .subscribeStepWrapper .subscribeStep .stepText {
      color: #ccc;
      margin-bottom: 5px; }
    .subscribeStepWrapper .subscribeStep .stepIcon {
      width: 40%;
      aspect-ratio: 1;
      background-color: #ccc;
      border-radius: 50%;
      margin: auto;
      position: relative;
      z-index: 2; }
      .subscribeStepWrapper .subscribeStep .stepIcon::before {
        content: '';
        display: block;
        font-size: 50px;
        font-family: 'Material Symbols Outlined';
        color: #a2a2a2;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); }
      .subscribeStepWrapper .subscribeStep .stepIcon.step1::before {
        content: '\e745'; }
      .subscribeStepWrapper .subscribeStep .stepIcon.step2::before {
        content: '\f041'; }
      .subscribeStepWrapper .subscribeStep .stepIcon.step3::before {
        content: '\e7e6'; }
    .subscribeStepWrapper .subscribeStep .stepTitle {
      font-size: 22px;
      color: #fff; }
    .subscribeStepWrapper .subscribeStep.done::before {
      color: #28ABC2; }
    .subscribeStepWrapper .subscribeStep.done .stepIcon {
      background-color: #28ABC2; }
      .subscribeStepWrapper .subscribeStep.done .stepIcon::before {
        color: #fff; }
    .subscribeStepWrapper .subscribeStep.fail .stepIcon {
      background-color: #F76F6F; }
      .subscribeStepWrapper .subscribeStep.fail .stepIcon::before {
        content: '\e811';
        color: #fff; }

.subscribePayWrapper {
  max-width: 1000px;
  margin: 40px auto 0px;
  display: flex;
  flex-direction: column;
  border: 1px solid #28ABC2;
  border-radius: 10px;
  text-align: left;
  overflow: hidden; }
  @media screen and (min-width: 992px) {
    .subscribePayWrapper {
      flex-direction: row; } }
  .subscribePayWrapper .subscribePayInfo {
    flex-basis: 30%;
    border-right: 1px solid #bbbbbb;
    background-color: #fff;
    padding: 20px 30px; }
    .subscribePayWrapper .subscribePayInfo .infoTitle {
      font-size: 18px;
      font-weight: bold;
      position: relative;
      padding-left: 2em;
      margin-bottom: 20px; }
      .subscribePayWrapper .subscribePayInfo .infoTitle::before {
        content: '\f0f6';
        display: block;
        font-size: 24px;
        font-family: FontAwesome;
        line-height: 1;
        position: absolute;
        top: 0;
        left: 0; }
      .subscribePayWrapper .subscribePayInfo .infoTitle.fail::before {
        content: '\f071';
        color: #F0CD30; }
    .subscribePayWrapper .subscribePayInfo .infoRow {
      margin-bottom: 20px; }
      .subscribePayWrapper .subscribePayInfo .infoRow label {
        display: block;
        font-weight: normal;
        color: #999999; }
      .subscribePayWrapper .subscribePayInfo .infoRow span {
        display: inline-block;
        font-weight: bold; }
      .subscribePayWrapper .subscribePayInfo .infoRow .highlight {
        color: #F76F6F; }
  .subscribePayWrapper .subscribePayContent {
    flex-basis: 100%;
    padding: 30px 20px;
    background-color: #fff; }
    @media screen and (min-width: 992px) {
      .subscribePayWrapper .subscribePayContent {
        padding: 30px 40px; } }
  .subscribePayWrapper .subscribePayRow {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    margin-bottom: 20px; }
    .subscribePayWrapper .subscribePayRow .subscribePayLabel {
      flex-basis: 80px; }
      .subscribePayWrapper .subscribePayRow .subscribePayLabel label {
        font-size: 17px;
        line-height: 42px;
        margin-bottom: 0; }
    .subscribePayWrapper .subscribePayRow .subscribePayInput {
      display: flex;
      flex-wrap: wrap;
      flex-basis: calc( 100% - 80px);
      gap: 2%; }
      .subscribePayWrapper .subscribePayRow .subscribePayInput input, .subscribePayWrapper .subscribePayRow .subscribePayInput select {
        display: block;
        width: 100%;
        height: 42px;
        background: #fff;
        border: 1px solid rgba(128, 128, 128, 0.7);
        box-shadow: none;
        border-radius: 4px;
        padding: 3px 5px; }
        .subscribePayWrapper .subscribePayRow .subscribePayInput input:disabled, .subscribePayWrapper .subscribePayRow .subscribePayInput select:disabled {
          background: #b7b7b7;
          cursor: not-allowed;
          color: #8f8f8f; }
      .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayInputAddress1, .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayInputAddress2 {
        width: 100%;
        margin-bottom: 2%; }
        @media screen and (min-width: 500px) {
          .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayInputAddress1, .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayInputAddress2 {
            width: 49%; } }
      .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayInputAddress3 {
        width: 100%; }
      .subscribePayWrapper .subscribePayRow .subscribePayInput .vehicleInput {
        margin-top: 10px; }
      .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayPrice {
        line-height: 42px; }
        .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayPrice .dollarSign {
          display: inline-block; }
        .subscribePayWrapper .subscribePayRow .subscribePayInput .subscribePayPrice .price {
          display: inline-block;
          font-family: Arial;
          font-size: 20px;
          font-weight: bold;
          color: #28ABC2; }
    .subscribePayWrapper .subscribePayRow .subscribePayRadios {
      display: flex;
      flex-direction: column;
      flex-basis: calc(100% - 80px); }
      .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 0; }
        .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio:first-child {
          padding-top: 6px; }
        .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio + .subscribePayRadio {
          border-top: 1px solid rgba(0, 0, 0, 0.06); }
        .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption {
          font-weight: normal;
          margin-bottom: 0;
          cursor: pointer; }
          .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption input[type="radio"] {
            display: none; }
          .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption .paymentText {
            display: inline-block;
            position: relative;
            padding-left: 2em; }
            .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption .paymentText::before {
              content: '';
              display: block;
              position: absolute;
              width: 20px;
              height: 20px;
              border: 2px solid #28ABC2;
              border-radius: 50%;
              top: 1px;
              left: 0px;
              transition: .2s; }
          .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption input[type="radio"]:checked ~ .paymentText {
            color: #28ABC2; }
            .subscribePayWrapper .subscribePayRow .subscribePayRadios .subscribePayRadio .paymentOption input[type="radio"]:checked ~ .paymentText::before {
              border-width: 6px; }
    .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox {
      display: inline-block;
      font-weight: normal;
      cursor: pointer;
      padding-top: 5px;
      margin-top: 0;
      margin-right: 15px;
      margin-bottom: 5px; }
      .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox input[type="checkbox"] {
        display: none; }
      .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox .checkboxText {
        display: block;
        font-size: 16px;
        position: relative;
        padding-left: 25px; }
        .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox .checkboxText::before, .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox .checkboxText::after {
          content: '';
          display: block;
          position: absolute; }
        .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox .checkboxText::before {
          width: 20px;
          height: 20px;
          border: 2px solid #28ABC2;
          border-radius: 4px;
          top: 2px;
          left: 0px; }
        .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox .checkboxText::after {
          content: '\f00c';
          font-size: 14px;
          line-height: 1;
          font-family: fontAwesome;
          color: #fff;
          top: 5px;
          left: 3px;
          transform: scale(0);
          transition: .2s; }
      .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox input[type="checkbox"]:checked ~ .checkboxText::before {
        background-color: #28ABC2; }
      .subscribePayWrapper .subscribePayRow .subscribePayCheck label.checkbox input[type="checkbox"]:checked ~ .checkboxText::after {
        transform: scale(1); }
  .subscribePayWrapper .member-btn-wrapper {
    padding-bottom: 0; }
  .subscribePayWrapper .accountLinkWrapper {
    text-align: center;
    margin-top: 30px; }
  .subscribePayWrapper .accountLink.line {
    display: inline-block;
    vertical-align: middle;
    border: 1px solid #000;
    position: relative;
    color: #fff;
    border-color: #00C200;
    background-color: #00C200;
    padding: 8px 20px 8px 40px;
    border-radius: 50px; }
    .subscribePayWrapper .accountLink.line:before {
      content: '';
      display: block;
      width: 18px;
      height: 18px;
      background-image: url(../img/line.png);
      background-size: 18px;
      background-repeat: no-repeat;
      position: absolute;
      top: 10px;
      left: 12px; }

.member-btn-wrapper {
  text-align: center;
  padding-bottom: 60px; }
  .member-btn-wrapper .member-btn {
    display: inline-block;
    font-size: 15px;
    width: 100%;
    height: 45px;
    line-height: 45px;
    margin: 5px 0;
    color: #fff;
    border: none;
    background-color: #28ABC2;
    border-radius: 3px; }
    .member-btn-wrapper .member-btn:hover {
      background-color: #44c2d9; }
    @media screen and (min-width: 768px) {
      .member-btn-wrapper .member-btn {
        width: 130px;
        margin: 5px; }
        .member-btn-wrapper .member-btn.full {
          width: 100%; } }
    .member-btn-wrapper .member-btn.register {
      background-color: #2889D4; }
      .member-btn-wrapper .member-btn.register:hover {
        background-color: #51a1de; }
    .member-btn-wrapper .member-btn.line {
      background-color: #00C200; }
      .member-btn-wrapper .member-btn.line:hover {
        background-color: #52cf52; }
    .member-btn-wrapper .member-btn.facebook {
      background-color: #4f71b6; }
      .member-btn-wrapper .member-btn.facebook:hover {
        background-color: #738ec5; }
    .member-btn-wrapper .member-btn.google {
      background-color: #DF4B31; }
      .member-btn-wrapper .member-btn.google:hover {
        background-color: #ea6750; }
    .member-btn-wrapper .member-btn.apple {
      color: #fff;
      background-color: #000; }
      .member-btn-wrapper .member-btn.apple:hover {
        background-color: #555; }
    .member-btn-wrapper .member-btn.disabled {
      background-color: #ccc;
      pointer-events: none; }
    .member-btn-wrapper .member-btn.jakopay {
      background-color: #E50A0E;}
      .member-btn-wrapper .member-btn.jakopay:hover {
        background: #f82225;}
      
  .member-btn-wrapper .or-bar {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-left: 10px;
    margin-top: 20px;
    margin-bottom: 20px; }
    .member-btn-wrapper .or-bar:before, .member-btn-wrapper .or-bar:after {
      content: '';
      border-top: 1px solid #eee;
      flex: 1 0 20px; }
    .member-btn-wrapper .or-bar.withOr:before {
      margin-right: 20px; }
    .member-btn-wrapper .or-bar.withOr:after {
      margin-left: 20px; }

/* Minimal bootstrap modal shell (layout has no Bootstrap CSS) */
.modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; display: none; overflow: hidden; outline: 0; }
.modal.fade { opacity: 0; transition: opacity .15s linear; }
.modal.fade.in { opacity: 1; }
.modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000; }
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.fade.in { opacity: .5; }
.modal-open { overflow: hidden; }
.modal-dialog { position: relative; width: auto; margin: 10px; }
@media (min-width: 768px) {
  .modal-dialog { width: 600px; margin: 30px auto; }
}
.modal-content { position: relative; background-clip: padding-box; outline: 0; }

body.subscribe-pay-page {
  background: linear-gradient(180deg, #0b1220 0%, #1a2332 40%, #0f172a 100%) !important;
  min-height: 100vh;
}
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep .stepIcon::before {
  font-family: "Material Symbols Outlined" !important;
  font-weight: normal !important;
  font-style: normal !important;
  line-height: 1 !important;
  display: block !important;
  -webkit-font-feature-settings: "liga" !important;
  font-feature-settings: "liga" !important;
}
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep .stepIcon.step1::before { content: "edit_note" !important; }
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep .stepIcon.step2::before { content: "credit_card" !important; }
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep .stepIcon.step3::before { content: "verified" !important; }
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep.done .stepIcon::before { color: #fff !important; }
body.subscribe-pay-page .subscribeStepWrapper .subscribeStep + .subscribeStep::before {
  content: "chevron_right" !important;
  font-family: "Material Symbols Outlined" !important;
  line-height: 1 !important;
}
body.subscribe-pay-page .member-btn-wrapper .member-btn,
body.subscribe-pay-page button.member-btn,
body.subscribe-pay-page a.member-btn {
  display: inline-block !important;
  font-size: 15px !important;
  width: 100% !important;
  max-width: 100%;
  height: 45px !important;
  line-height: 45px !important;
  margin: 5px 0 !important;
  padding: 0 16px !important;
  color: #fff !important;
  border: none !important;
  background-color: #28ABC2 !important;
  border-radius: 3px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
@media screen and (min-width: 768px) {
  body.subscribe-pay-page .member-btn-wrapper .member-btn,
  body.subscribe-pay-page button.member-btn,
  body.subscribe-pay-page a.member-btn {
    width: 130px !important;
    margin: 5px !important;
  }
}
body.subscribe-pay-page .member-btn-wrapper .member-btn:hover,
body.subscribe-pay-page button.member-btn:hover,
body.subscribe-pay-page a.member-btn:hover {
  background-color: #44c2d9 !important;
  color: #fff !important;
}
body.subscribe-pay-page #contract_Modal:not(.in) {
  display: none !important;
}

/* New Schooler-style contract modal */
body.subscribe-pay-page #contract_Modal.in {
  display: block !important;
}
body.subscribe-pay-page #contract_Modal .modal-dialog {
  width: auto !important;
  max-width: 720px !important;
  margin: 4vh auto !important;
  padding: 0 16px;
}
body.subscribe-pay-page #contract_Modal .modal-content {
  background: #fff !important;
  border: 1px solid #E5E5E5 !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.12) !important;
  overflow: hidden;
}
body.subscribe-pay-page #contract_Modal .modal-header {
  border: none !important;
  padding: 16px 20px 0 !important;
  min-height: 0 !important;
  text-align: right;
}
body.subscribe-pay-page #contract_Modal .modal-header .close {
  float: none !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  color: #9CA3AF !important;
  opacity: 1 !important;
  background: transparent !important;
  border: none !important;
  padding: 4px 8px !important;
  cursor: pointer !important;
}
body.subscribe-pay-page #contract_Modal .modal-header .close:hover {
  color: #2D3031 !important;
}
body.subscribe-pay-page #contract_Modal .modal-body {
  padding: 8px 24px 24px !important;
}
body.subscribe-pay-page #contract_Modal .modal-main-title {
  font-family: Poppins, "Noto Sans TC", sans-serif !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #2D3031 !important;
  text-align: center !important;
  margin: 0 0 16px !important;
  line-height: 1.4 !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract .well {
  background: #F9F9F9 !important;
  border: 1px solid #E5E5E5 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  max-height: min(52vh, 480px) !important;
  overflow-y: auto !important;
  padding: 16px 18px !important;
  margin-bottom: 12px !important;
  color: #5C6062 !important;
  font-size: 14px !important;
  line-height: 1.7 !important;
  text-align: left !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract .well .term-main-subTitle {
  color: #2D3031 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  margin: 8px 0 !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract .well a {
  color: #008bee !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-note {
  font-size: 13px !important;
  text-align: center !important;
  color: #EF4444 !important;
  opacity: 0;
  margin: 8px 0 !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-note.show {
  opacity: 1;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check {
  text-align: center !important;
  padding: 8px 0 4px !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox {
  display: inline-flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  cursor: pointer !important;
  font-weight: 400 !important;
  color: #5C6062 !important;
  font-size: 14px !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox input[type="checkbox"] {
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: 2px !important;
  flex-shrink: 0 !important;
  accent-color: #0C98FA !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox .checkboxText {
  display: inline !important;
  position: static !important;
  padding-left: 0 !important;
  font-size: 14px !important;
  color: #5C6062 !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox .checkboxText::before,
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox .checkboxText::after {
  display: none !important;
  content: none !important;
}
body.subscribe-pay-page #contract_Modal .modal-contract-check label.checkbox.disabled {
  opacity: 0.45 !important;
  filter: none !important;
  pointer-events: none !important;
}
body.subscribe-pay-page #contract_Modal .modal-footer {
  display: none !important;
}

/* 訂閱付款欄位檢核訊息（對抗 Tailwind／隱藏 span） */
body.subscribe-pay-page .field-validation-error,
body.subscribe-pay-page span.field-validation-error {
  display: block !important;
  color: #EF4444 !important;
  font-size: 13px !important;
  margin-top: 6px !important;
  text-align: left !important;
  visibility: visible !important;
  opacity: 1 !important;
}