form.lc-sms-login-form.lc-otp-card,
form.lc-sms-register-form.lc-otp-card {
  position: relative;
  background: #fff !important;
  border: none !important;
  box-shadow: 0 12px 40px rgba(10, 70, 80, 0.08) !important;
  padding: 36px 32px 28px !important;
  border-radius: 28px !important;
  max-width: 440px !important;
  margin: 24px auto 40px !important;
}

.lc-otp-wait {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 28px;
}

.lc-otp-wait[hidden] {
  display: none !important;
}

.lc-otp-wait__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  text-align: center;
}

.lc-otp-wait__spin {
  width: 36px;
  height: 36px;
  border: 3px solid rgba(10, 70, 80, 0.18);
  border-top-color: #0a4650;
  border-radius: 50%;
  animation: lc-otp-spin 0.8s linear infinite;
}

.lc-otp-wait__text {
  margin: 0;
  color: #0a4650;
  font-weight: 600;
  font-size: 1rem;
}

@keyframes lc-otp-spin {
  to {
    transform: rotate(360deg);
  }
}

.lc-otp-ajax-notice {
  margin: 0 0 16px !important;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 0.95rem;
}

.lc-otp-ajax-notice.lc-sms-success {
  background: #e8f6f0;
  color: #0a4650;
}

.lc-otp-ajax-notice.lc-sms-error {
  background: #fdecea;
  color: #8a1f11;
}

form.lc-sms-login-form.lc-otp-card > p,
form.lc-sms-register-form.lc-otp-card > p {
  margin: 0;
}

form.lc-sms-register-form.lc-otp-card > p:has(input[name="full_name"]) {
  margin: 0 0 18px;
}

form.lc-sms-register-form .lc-a11y-required-note {
  display: none !important;
}

form.lc-sms-login-form.lc-otp-card .lc-otp-send,
form.lc-sms-login-form.lc-otp-card button.lc-otp-send[type="submit"],
form.lc-sms-register-form.lc-otp-card .lc-otp-send,
form.lc-sms-register-form.lc-otp-card button[type="submit"] {
  width: 100%;
  margin: 6px 0 22px !important;
  padding: 14px 16px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #0a4650 !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-size: 1.05rem !important;
  box-shadow: none !important;
  transform: none !important;
}

form.lc-sms-login-form.lc-otp-card .lc-otp-send:hover,
form.lc-sms-login-form.lc-otp-card button.lc-otp-send[type="submit"]:hover,
form.lc-sms-register-form.lc-otp-card .lc-otp-send:hover,
form.lc-sms-register-form.lc-otp-card button[type="submit"]:hover {
  background: #137578 !important;
}

body.page-sign-in .page__title,
body.page-sign-in h1.lc-a11y-page-title,
body.page-registration .page__title,
body.page-registration h1.lc-a11y-page-title,
body:has(.lc-sms-login-form) .page__title,
body:has(.lc-sms-login-form) h1.lc-a11y-page-title,
body:has(.lc-sms-register-form) .page__title,
body:has(.lc-sms-register-form) h1.lc-a11y-page-title {
  display: none !important;
}

@media (max-width: 768px) {
  body.page-sign-in .entry-content,
  body.page-registration .entry-content,
  body:has(.lc-sms-login-form) .entry-content,
  body:has(.lc-sms-register-form) .entry-content {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
}

.lc-otp-card__logo {
  text-align: center;
  margin: 0 0 18px;
}

.lc-otp-card__logo a {
  display: inline-block;
}

.lc-otp-card__logo img,
.lc-otp-card__logo .custom-logo {
  max-height: 64px;
  width: auto;
  max-width: 280px;
}

.lc-otp-card__wordmark {
  font-weight: 700;
  color: #0a4650;
  font-size: 1.4rem;
}

.lc-otp-card .lc-sms-form-title {
  color: #111;
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0 0 0.35rem;
  text-align: center;
  line-height: 1.3;
}

.lc-otp-card .lc-sms-form-subtitle {
  color: #8a8a8a;
  font-size: 0.95rem;
  margin: 0 0 1.6rem;
  text-align: center;
}

.lc-otp-phone {
  margin: 0 0 18px;
}

.lc-otp-phone label,
.lc-otp-pin-label {
  display: block;
  font-weight: 600;
  color: #4a4a4a;
  margin: 0 0 8px;
  font-size: 0.95rem;
}

.lc-otp-phone__row {
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1.5px solid #0a4650;
  border-radius: 999px;
  padding: 6px 10px 6px 8px;
  background: #fff;
}

.lc-otp-phone__prefix {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  background: #e8eef0;
  color: #0a4650;
  font-weight: 700;
  border-radius: 999px;
  white-space: nowrap;
  font-size: 0.95rem;
}

.lc-otp-card input[name="full_name"] {
  width: 100%;
  border: 1.5px solid #0a4650;
  border-radius: 999px;
  padding: 12px 16px;
  font-size: 1rem;
}

.lc-otp-phone__input {
  flex: 1;
  width: auto;
  min-width: 0;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 10px 8px 10px 0 !important;
  font-size: 1rem;
  background: transparent !important;
  box-shadow: none !important;
  color: #111;
}

.lc-otp-phone__input:focus {
  outline: none;
}

.lc-otp-card .lc-otp-send {
  width: 100%;
  margin: 6px 0 22px;
  padding: 14px 16px;
  border: 0;
  border-radius: 999px;
  background: #0a4650 !important;
  color: #fff !important;
  font-weight: 600;
  font-size: 1.05rem;
  cursor: pointer;
  box-shadow: none;
}

.lc-otp-card .lc-otp-send:hover {
  background: #137578 !important;
}

.lc-otp-card .lc-otp-verify-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.lc-otp-pin {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 0 0 18px;
}

.lc-otp-pin__box {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  border: 1.5px solid #0a4650;
  border-radius: 10px;
  color: #0a4650;
  background: #fff;
  padding: 0;
}

.lc-otp-pin__box[readonly] {
  background: #f2f5f5;
  cursor: not-allowed;
  opacity: 0.7;
}

.lc-otp-password {
  margin: 0 0 16px !important;
}

.lc-otp-password label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
  color: #0a4650;
}

.lc-otp-password__input,
form.lc-sms-login-form.lc-otp-card .lc-otp-password__input,
form.lc-sms-register-form.lc-otp-card .lc-otp-password__input,
form.lc-sms-forgot-reset-form.lc-otp-card .lc-otp-password__input {
  width: 100% !important;
  box-sizing: border-box;
  padding: 12px 14px !important;
  border: 1.5px solid #0a4650 !important;
  border-radius: 12px !important;
  background: #fff !important;
  color: #0a4650 !important;
  font-size: 1rem !important;
}

.lc-otp-password__hint {
  display: block;
  margin-top: 6px;
  font-size: 0.85rem;
  line-height: 1.35;
  color: #6f5a49;
}

.lc-sms-login-links {
  text-align: center;
  margin: 10px 0 0 !important;
}

.lc-otp-alt {
  text-align: center;
  margin: 12px 0 0 !important;
}

.lc-otp-pin__box,
form.lc-sms-login-form.lc-otp-card .lc-otp-pin__box,
form.lc-sms-login-form.lc-otp-card .lc-otp-pin__box:focus,
form.lc-sms-register-form.lc-otp-card .lc-otp-pin__box,
form.lc-sms-register-form.lc-otp-card .lc-otp-pin__box:focus {
  border: 1.5px solid #0a4650 !important;
  outline: none;
}

.lc-otp-info {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 8px 0 0;
  padding: 12px 14px;
  background: #e7f3f3;
  border: 1.5px solid #0a4650;
  border-radius: 999px;
  color: #0a4650;
}

.lc-otp-info__icon {
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #0a7a4b;
  color: #fff;
  flex-shrink: 0;
  font-size: 13px;
  line-height: 1;
}

.lc-otp-info__text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  font-size: 0.88rem;
  line-height: 1.3;
}

.lc-otp-info__text strong {
  color: #0a4650;
  font-weight: 700;
}

.lc-otp-info__text span {
  color: #3d6b70;
  font-weight: 400;
}

.lc-otp-card .lc-sms-login-links,
.lc-otp-card .lc-otp-alt {
  text-align: center;
  margin-top: 16px;
  font-size: 0.95rem;
  color: #4a4a4a;
}

form.lc-sms-login-form.lc-otp-card .lc-sms-login-links {
  display: block;
  padding-top: 0;
  font-size: 0.95rem;
  color: #4a4a4a;
}

.lc-otp-card .lc-sms-login-links a,
.lc-otp-card .lc-otp-alt a {
  color: #137578;
  font-weight: 600;
  text-decoration: underline;
}

.lc-otp-card .lc-sms-privacy-policy-wrap,
.lc-otp-card .lc-a11y-review {
  margin: 12px 0;
}

.lc-otp-card .lc-sms-privacy-policy-wrap a {
  color: #137578;
}

body.page-sign-in .hp-form--user-login,
body.page-sign-in .hp-form--user-register,
body.page-registration .hp-form--user-login,
body.page-registration .hp-form--user-register,
body.page-sign-in .hp-page--user-login,
body.page-registration .hp-page--user-register,
body:has(.lc-sms-login-form) .hp-form--user-login,
body:has(.lc-sms-login-form) .hp-form--user-register,
body:has(.lc-sms-register-form) .hp-form--user-login,
body:has(.lc-sms-register-form) .hp-form--user-register,
body:has(.lc-sms-register-form) .hp-page--user-register {
  display: none !important;
}

@media (max-width: 480px) {
  .lc-otp-card {
    padding: 28px 18px 22px;
  }

  .lc-otp-pin__box {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }
}
