.lvd-social-connect-hide {
  display: none !important;
}
.lvd-social-connect-loader {
  width: 100%;
  height: 100%;
  background: url("../img/ajax-loader.gif") no-repeat center center
    rgba(255, 255, 255, 0.8);
  z-index: 99991;
  position: absolute;
  top: 0px;
  left: 0px;
  background-size: 80px;
}

.lvd-social-connect-overflow {
  overflow: hidden;
}

/* ── Toast notifications (design identique lvd_sav) ── */
.lvd-toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 99995;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
  max-width: 420px;
  width: calc(100% - 40px);
}
.lvd-toast {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border-radius: 12px;
  border-left: 4px solid transparent;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
  font-family: Sarabun, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #1e293b;
  pointer-events: auto;
  transform: translateX(110%);
  opacity: 0;
  transition: transform 0.35s cubic-bezier(0.21, 1.02, 0.73, 1), opacity 0.35s ease;
}
.lvd-toast.lvd-toast-visible {
  transform: translateX(0);
  opacity: 1;
}
.lvd-toast.lvd-toast-hiding {
  transform: translateX(110%);
  opacity: 0;
  transition: transform 0.3s ease-in, opacity 0.3s ease-in;
}
.lvd-toast i:first-child {
  font-size: 20px;
  flex-shrink: 0;
}
.lvd-toast span {
  flex: 1;
}
.lvd-toast-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0 0 8px;
  color: inherit;
  opacity: 0.5;
  font-size: 14px;
  transition: opacity 0.15s;
  flex-shrink: 0;
}
.lvd-toast-close:hover {
  opacity: 1;
}

/* Variante succès – vert */
.lvd-toast-success {
  border-left-color: #10b981;
  background: linear-gradient(135deg, #ecfdf5 0%, #f0fdf4 100%);
}
.lvd-toast-success i:first-child {
  color: #10b981;
}

/* Variante erreur – rouge */
.lvd-toast-error {
  border-left-color: #ef4444;
  background: linear-gradient(135deg, #fef2f2 0%, #fff1f2 100%);
}
.lvd-toast-error i:first-child {
  color: #ef4444;
}

/* Variante warning – ambre */
.lvd-toast-warning {
  border-left-color: #f59e0b;
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
}
.lvd-toast-warning i:first-child {
  color: #f59e0b;
}

/* Variante info – violet thème */
.lvd-toast-info {
  border-left-color: var(--primary, #4e2b73);
  background: linear-gradient(135deg, #f3f0f7 0%, #eceaee 100%);
}
.lvd-toast-info i:first-child {
  color: var(--primary, #4e2b73);
}

@media (max-width: 575px) {
  .lvd-toast-container {
    top: 12px;
    right: 12px;
    max-width: none;
    width: calc(100% - 24px);
  }
  .lvd-toast {
    padding: 12px 14px;
    font-size: 13px;
    border-radius: 10px;
  }
}

/* Buttons */
.lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons) {
  display: flex;
  flex-wrap: wrap;
  gap: 8px; /* horizontal + vertical gutter between buttons */
  /* removed flex-basis to let gap + flex sizing control layout */
}
.lvd-social-connect-buttons-block {
  /* width: 100%; */
  /* margin: 0 auto 40px auto; */
  display: flex;
  /* flex-direction: column; */
  align-items: center;
  row-gap: 8px;
}
.lvd-social-connect-button {
  user-select: none;
  transition: background 20ms ease-in;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  height: 48px;
  border-radius: 8px;
  color: rgb(29, 27, 22);
  fill: rgb(29, 27, 22);
  background: none;
  font-size: 13px;
  line-height: 1;
  /*leavespacefortheabsolute-positionedicontotheleft*/
  padding-left: 44px;
  padding-right: 12px;
  font-weight: 500;
  border: 1px solid rgb(227, 226, 224);
  /*width: 100%;
    */
  box-shadow: none;
  box-sizing: border-box;
  /*includepadding/borderinwidthcalculation*/ /*ensuretwocolumnsfitwiththegap:;
    eachbutton=50%-halfthegap*/
  flex: 0 0 calc(50% - 4px);
  -webkit-border-radius: 8px;
  -moz-border-radius: 8px;
  -ms-border-radius: 8px;
  -o-border-radius: 8px;
}
.lvd-social-connect-button:hover {
  background: rgba(55, 53, 47, 0.06);
  cursor: pointer;
}
.lvd-social-connect-button:active {
  background: rgba(55, 53, 47, 0.16);
}
.lvd-social-connect-button:focus {
  outline: 0;
}
.lvd-social-connect-button-inner {
  display: flex;
  text-align: center;
  justify-content: center;
  align-items: center;
}
.lvd-social-connect-item-icon {
  width: 16px;
  height: auto;
  display: block;
  fill: inherit;
  flex-shrink: 0;
  position: absolute;
  left: calc(100% - 165px);
  top: 13px;
}
.lvd-social-connect-button-otp .lvd-social-connect-item-icon,
.lvd-social-connect-button-amazon .lvd-social-connect-item-icon {
  width: 20px;
}

.lvd-social-connect-form-group-multiple {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.lvd-social-connect-form-group {
  width: 100%;
}
.lvd-social-connect-animation-input-block {
  position: relative;
  /* margin-bottom: 9px; */
}
.lvd-social-connect-animation-input-block label {
  display: none;
  /* font-size: 10px;
    font-weight: normal;
    position: absolute;
    top: 0;
    width: 100%;
    margin-top: 2px;
    padding: 0 10px;
    transform: translateY(3px);
    pointer-events: none;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    box-sizing: border-box;
    color: #3a3a3a;
    z-index: 9;
    opacity: 0;
    transition: all 0.2s ease-out;
    text-align: left; */
}

/* Placeholder (toujours visible, couleur grise) : */
.lvd-social-connect-animation-input-block input::placeholder {
  color: var(--LVD-LVD-color-LVD-grey_dark, #8a8a8a);
  leading-trim: both;
  text-edge: cap;
  /* LVD/Paragraphe p/LVD-P1_regular */
  font-family: Sarabun;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

/* Default (état normal, bordure grise) : */
.lvd-social-connect-form-group input {
  /* padding: 7px 2px 7px 9px;
    border-style: solid;
    border-width: 1px;
    width: 100%;
    resize: none;
    font-size: 12px;
    box-sizing: border-box;
    height: 40px;
    border-radius: 3px;
    background-color: #fff;
    color: #272727;
    border-color: #cbcbcc; */
  width: 100%;
  height: 41px;
  display: flex;
  padding: 15px 12px;
  justify-content: space-between;
  align-items: center;
  align-self: stretch;
  display: flex;
  border-radius: 6px;
  border: 1px solid var(--LVD-LVD-color-LVD-grey_dark_stroke, #cdcdcd);
  background: var(--LVD-LVD-color-LVD-white_standard, #fff);
}
/* Focus: remove browser defaults and apply the configured visual focus.
   - use :focus-visible for keyboard focus feedback when supported
   - also style :focus to keep consistent visuals for programmatic/mouse focus
   - keep outline: none only for the native outline, but keep a visible ring
     to preserve accessibility. */
.lvd-social-connect-form-group input {
  /* Remove browser default appearance that can interfere with custom focus */
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent; /* mobile tap highlight */
}

/* Remove native outline but do not remove visible focus indication */
.lvd-social-connect-form-group input:focus {
  outline: none;
}

/* Visual focus ring used for keyboard and script focus */
.lvd-social-connect-form-group input:focus,
.lvd-social-connect-form-group input:focus-visible {
  border-radius: 6px;
  border: 1px solid var(--LVD-LVD-color-LVD-purple_medium, #9985ae);
  background: var(--LVD-LVD-color-LVD-white_standard, #fff);
  /* LVD/LVD-drop-shadow_stroke-button */
  box-shadow: 0 0 0 3px rgba(102, 16, 242, 0.15);
}

/* Firefox inner focus ring reset */
.lvd-social-connect-form-group input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

/* Remove some webkit default decorations (search inputs, etc.) */
.lvd-social-connect-form-group input::-webkit-search-decoration,
.lvd-social-connect-form-group input::-webkit-search-cancel-button,
.lvd-social-connect-form-group input::-webkit-search-results-button,
.lvd-social-connect-form-group input::-webkit-search-results-decoration {
  -webkit-appearance: none;
}
/* Disabled (champ grisé, texte grisé) : */
.lvd-social-connect-form-group input:disabled,
.lvd-social-connect-form-group input[disabled] {
  border-radius: 6px;
  border: 1px solid var(--LVD-LVD-color-LVD-grey-medium2, #d9d9d9);
  background: var(--LVD-LVD-color-LVD-white_standard, #fff);
  cursor: not-allowed;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  -ms-border-radius: 6px;
  -o-border-radius: 6px;
}

.lvd-social-connect-animation-input-block input:disabled::placeholder,
.lvd-social-connect-form-group input[disabled]::placeholder {
  color: #d9d9d9;
}

/* Error (bordure et texte rouges) : */
.lvd-social-connect-form-group input.error,
.lvd-social-connect-form-group input[aria-invalid="true"],
.lvd-social-connect-form-group input.is-error {
  border-radius: 6px;
  border: 1px solid var(--LVD-LVD-color-LVD-red, #fc1609) !important;
  background: var(--LVD-LVD-color-LVD-grey_light, #f6f6f6);
  color: var(--LVD-LVD-color-LVD-red, #fc1609) !important;
}

.lvd-social-connect-animation-input-block.lvd-social-connect-show-floating-label
  label {
  /* -webkit-transform: none;
    transform: none;
    opacity: 1; */
  display: none;
}
/* .lvd-social-connect-animation-input-block.lvd-social-connect-show-floating-label input {
    padding-top: 1.5em;
} */
/* -- Modal headers -- */
.lvd-social-connect-connection-modal-header h2,
.lvd-social-connect-otp-modal-header h2,
.lvd-social-connect-magic-link-modal-header h2 {
  font-size: 15px;
  text-align: center;
  text-transform: none;
  padding: 10px;
}

/* -- Modal body spacing: prevent fields from sticking together -- */
.lvd-social-connect-otp-modal-body,
.lvd-social-connect-magic-link-modal-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* -- Modal footer spacing -- */
.lvd-social-connect-otp-modal-footer,
.lvd-social-connect-magic-link-modal-footer {
  margin-top: 8px;
}
/* -- New account fields (OTP / Magic Link) -- */
.lvd-social-connect-new-account-fields:not(.lvd-social-connect-hide) {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

/* -- Birthday selects grid -- */
.lvd-social-connect-birthday-selects {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.lvd-social-connect-birthday-selects select {
  width: 100%;
  height: 48px;
  padding: 0 8px;
  border: 1px solid #d2d2d2;
  border-radius: 8px;
  font-size: 14px;
  color: #333;
  background-color: #fff;
  appearance: auto;
  cursor: pointer;
}
.lvd-social-connect-birthday-selects select:focus {
  border-color: var(--cyan, #37ecea);
  outline: none;
  box-shadow: 0 0 0 2px rgba(55, 236, 234, 0.25);
}
.lvd-social-connect-birthday-hint {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #888;
}

/* -- Action buttons wrapper -- */
.lvd-social-connect-action-buttons {
  margin-top: 24px;
}

/* -- CTA buttons: match theme .btn-primary (cyan bg, dark text, orange hover) -- */
.lvd-social-connect-action-buttons .btn,
.lvd-social-connect-otp-modal .btn,
.lvd-social-connect-magic-link-modal .btn {
  display: block;
  width: 100%;
  height: 48px;
  border: none;
  border-radius: 8px;
  font-family: Sarabun, sans-serif;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
  color: var(--dark, #200b3e);
  background-color: var(--cyan, #37ecea);
  border-color: var(--cyan, #37ecea);
}
.lvd-social-connect-action-buttons .btn:hover,
.lvd-social-connect-otp-modal .btn:hover,
.lvd-social-connect-magic-link-modal .btn:hover {
  color: var(--white, #fff);
  background-color: var(--orange, #fd7325);
  border-color: var(--orange, #fd7325);
}
.lvd-social-connect-action-buttons .btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.lvd-social-connect-otp-modal .lvd-social-connect-action-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}

/* two columns when inner modal content allows (≈480px or more) */
@media (min-width: 480px) {
  .lvd-social-connect-otp-modal .lvd-social-connect-action-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ensure buttons fill their grid cell without changing modal paddings */
.lvd-social-connect-otp-modal .lvd-social-connect-action-grid .btn {
  width: 100%;
  box-sizing: border-box;
}

#social-loginModal .modal-content {
  width: 580px;
  margin: auto;
}

#social-loginModal .modal-content .modal-header-social-login {
  display: flex;
  padding: 15px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  align-self: stretch;
  border-radius: 10px 10px 0 0;
  background: var(--LVD-LVD-color-LVD-white_standard, #fff);

  /* LVD/LVD-shadow-popup-top */
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.06);
}

#social-loginModal .modal-content .modal-header-social-login .modal-title {
  color: #000;
  leading-trim: both;
  text-edge: cap;
  font-family: Sarabun;
  font-size: 20px;
  line-height: 14px;
  font-style: normal;
  font-weight: 700;
  height: 30px;
}

#social-loginModal .modal-body {
  padding: 30px 50px 40px 50px;
}

.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp-login,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-user,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-magic-link {
  /* margin-left: auto;
    color: #FFF;
    background-color: #FD7325 !important;
    border-color: #FD7325 !important;
    border-radius: 5px;
    width: 100%;
    align-items: center;
    gap: 22.068px;
    align-self: stretch;
    color: var(--LVD-LVD-color-LVD-white_big, #FAF9FD);
    text-align: center;
    leading-trim: both;
    text-edge: cap;
    font-family: Sarabun;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal; */
  /* display: flex; */
  padding: 15px 12px;
  justify-content: center;
  align-items: center;
  gap: 9.195px;
  align-self: stretch;
  border-radius: 5px;
  background: var(--LVD-LVD-color-LVD-orange, #fd7325);
  border-color: #fd7325 !important;
  color: #fff;
  width: 100%;
  max-width: 480px;
  height: 41px;
  line-height: 0;
}

.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-otp.lvd-social-connect-submit-otp-new {
  margin-left: 0;
}
/* PSEUDO ELEMENTS BUTTONS */
/* Hover / focus state (slightly darker) */
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp-login:hover,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-user:hover,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp:hover,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-magic-link:hover,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-user:focus,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp-login:focus,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp:focus,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-magic-link:focus,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-user:active,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp-login:active,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp:active,
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-magic-link:active {
  background-color: #fd7325 !important;
  border-color: #fd7325 !important;
  cursor: pointer !important;
  opacity: 0.8 !important;
}

/* Disabled */
.lvd-social-connect-action-buttons .lvd-social-connect-submit-user:disabled,
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-otp-login:disabled,
.lvd-social-connect-action-buttons .lvd-social-connect-submit-otp:disabled,
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-magic-link:disabled,
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-user[aria-disabled="true"],
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-otp-login[aria-disabled="true"],
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-otp[aria-disabled="true"],
.lvd-social-connect-action-buttons
  .lvd-social-connect-submit-magic-link[aria-disabled="true"] {
  background-color: #fd7325 !important;
  border-color: #fd7325 !important;
  color: white !important;
  opacity: 0.8 !important;
  cursor: not-allowed !important;
  filter: grayscale(0.12) saturate(0.9);
}

.lvd-social-connect-small-buttons.lvd-social-connect-buttons-block {
  flex-direction: row;
  max-width: 100%;
  gap: 8px;
  justify-content: center;
}
.lvd-social-connect-small-buttons .lvd-social-connect-button-text {
  /* display: none !important; */
}
.lvd-social-connect-small-buttons .lvd-social-connect-item-icon {
  position: static;
}
.lvd-social-connect-small-buttons .lvd-social-connect-button {
  width: 65px;
}
.lvd-social-connect-custom-tooltip {
  position: absolute;
  background: #333;
  color: #fff;
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 12px;
  white-space: nowrap;
  z-index: 1000;
}
.lvd-social-connect-button-block-displayNav2,
.lvd-social-connect-button-block-displayNav1 {
  margin: 0;
}
.lvd-social-connect-small-buttons.lvd-social-connect-button-block-displayNav1
  .lvd-social-connect-button,
.lvd-social-connect-small-buttons.lvd-social-connect-button-block-displayNav2
  .lvd-social-connect-button {
  width: 50px;
}

.lvd-social-connect-otp-wait,
.lvd-social-connect-magic-link-wait {
  color: var(--LVD-LVD-color-LVD-grey_dark, #8a8a8a);
  font-family: Inter;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  line-height: 12px; /* 100% */
}

.lvd-social-connect-form-group-otp {
  margin-top: 20px;
}

/* Fix layout for medium large screens (Bootstrap-like md/lg range) */
@media (min-width: 992px) and (max-width: 1199px) {
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons) {
    gap: 12px; /* a bit more breathing room */
    justify-content: center;
    width: 100%;
    padding: 0 12px; /* prevent touching edges */
  }

  /* Force two balanced columns and make font responsive in this range */
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button {
    /* two columns accounting for the gap */
    flex: 0 0 calc(50% - 6px);
    width: calc(50% - 6px);
    /* reduce max size to avoid overlap on this medium breakpoint */
    font-size: clamp(12px, 0.9vw, 13px);
    /* ensure text starts after the absolute icon (slightly larger here)
               - default icon width 16px + 28px padding buffer = 44px, bump to 52px for safety */
    padding-left: 52px;
    box-sizing: border-box;
    /* allow truncation if text too long */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Variants with larger icons need more left padding */
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button-otp,
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button-amazon {
    padding-left: 56px;
  }

  /* Slightly nudge icon position if needed */
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-item-icon {
    left: calc(100% - 165px);
    top: 13px;
  }

  /* Keep the icon positioned correctly inside the button */
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-item-icon {
    position: absolute;
    width: 22px;
    height: auto;
  }

  /* Ensure button text remains visible and doesn't wrap */
  .lvd-social-connect-buttons-block .lvd-social-connect-button-text {
    display: inline-block !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Ensure two columns layout above 1200px */
@media (min-width: 1200px) {
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons) {
    gap: 16px;
    justify-content: center;
    width: 100%;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button {
    /* two columns accounting for larger gap */
    flex: 0 0 calc(50% - 8px);
    width: calc(50% - 8px);
    /* keep space for icon */
    padding-left: 52px;
    box-sizing: border-box;
    /* slightly larger font on wide screens but bounded */
    font-size: clamp(10px, 1vw, 13px);
    min-width: 220px;
    max-width: 480px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-item-icon {
    left: calc(100% - 210px);
    top: 15px;
  }
}

/* Strong overrides to avoid admin/back.css forcing a single-column preview
   Ensure two columns from 992px upward for non-small-buttons variant */
@media (min-width: 992px) {
  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons) {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    max-width: none !important;
    width: 100% !important;
    gap: 10px !important;
    align-items: flex-start !important;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button {
    flex: 0 0 calc(50% - 8px) !important;
    width: calc(50% - 8px) !important;
    display: inline-flex !important;
    box-sizing: border-box !important;
    padding-left: 52px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  /* keep small-buttons behavior intact */
  .lvd-social-connect-small-buttons.lvd-social-connect-buttons-block {
    flex-direction: row !important;
  }
}

/* Responsive: adapt font-size to available space and hide text on small screens */
/* scale font between 11px and 14px depending on viewport width */
.lvd-social-connect-button {
  font-size: clamp(13px, 1.6vw, 14px);
}

/* On small screens, hide the text label and show icon-only buttons */
@media (max-width: 480px) {
  /* .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons) .lvd-social-connect-button-text {
        display: none !important;
    } */

  #social-loginModal .modal-content .modal-header-social-login .modal-title {
    color: #000;
    leading-trim: both;
    text-edge: cap;
    font-family: Sarabun;
    font-size: 18px;
    line-height: 18px;
    font-style: normal;
    font-weight: 700;
    height: 30px;
  }

  .lvd-social-connect-button-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 50%;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-item-icon {
    position: absolute !important;
    left: calc(100% - 138px) !important;
    top: 13px !important;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-button {
    flex: 0 0 calc(50% - 4px);
    width: 56px; /* icon-only width */
    padding-left: 8px;
    padding-right: 8px;
    justify-content: center;
  }

  .lvd-social-connect-buttons-block:not(.lvd-social-connect-small-buttons)
    .lvd-social-connect-item-icon {
    position: static;
    left: auto;
    top: auto;
    margin: 0;
    width: 20px; /* slightly larger icons for clarity */
  }

  /* reduce vertical gaps to save space on very small screens */
  .lvd-social-connect-buttons-block {
    row-gap: 6px;
  }
}


/* ==========================================================================
   Full-screen overlay loader (replaces the old GIF-based .lvd-social-connect-loader)
   ========================================================================== */

.lvd-sc-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  animation: lvd-sc-fade-in 0.2s ease-out;
}

.lvd-sc-overlay-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.lvd-sc-overlay-text {
  margin: 0;
  font-family: Sarabun, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--primary, #4e2b73);
}

/* CSS-only spinner */
.lvd-sc-spinner {
  width: 48px;
  height: 48px;
  border: 4px solid rgba(78, 43, 115, 0.15);
  border-top-color: var(--primary, #4e2b73);
  border-radius: 50%;
  animation: lvd-sc-spin 0.7s linear infinite;
}

/* Success state */
.lvd-sc-success-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #10b981;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  animation: lvd-sc-pop 0.3s ease-out;
}

.lvd-sc-overlay--success .lvd-sc-overlay-text {
  color: #10b981;
}

@keyframes lvd-sc-spin {
  to { transform: rotate(360deg); }
}

@keyframes lvd-sc-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes lvd-sc-pop {
  0%   { transform: scale(0.5); opacity: 0; }
  70%  { transform: scale(1.1); }
  100% { transform: scale(1); opacity: 1; }
}
