/* ==========================================
   SMS Opt-in layout fixes (scoped to 1 form)
   Visual checkbox shim + JS-driven show/hide
   ========================================== */

#webform-submission-sms-email-opt-in-block-content-438-add-form {

  --sms-check-col: 28px;
  --sms-gap: 12px;

  /* Wrapper base layout */
  .js-form-item-sms-opt-in {
    position: relative !important;
    display: block !important;
    margin: 8px 0 6px 0 !important;
    padding-left: calc(var(--sms-check-col) + var(--sms-gap)) !important;
    min-height: var(--sms-check-col) !important;
  }

  /* JS will toggle this class */
  .js-form-item-sms-opt-in.is-hidden-by-phone {
    display: none !important;
  }

  /* Keep native checkbox accessible but visually hidden */
  .js-form-item-sms-opt-in > input.form-checkbox {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
  }

  /* Label styling */
  .js-form-item-sms-opt-in > label.option {
    padding: 0 !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer;
    white-space: nowrap;
  }

  @media (max-width: 340px) {
    .js-form-item-sms-opt-in > label.option {
      white-space: normal;
    }
  }

  /* Consent text alignment (leave as-is; states can still control it) */
  .js-form-item-sms-consent-text:not(.js-webform-states-hidden) {
    margin: 4px 0 22px 0 !important;
    margin-left: calc(var(--sms-check-col) + var(--sms-gap)) !important;
  }

  .sms-consent-text p {
    font-size: 14px;
    line-height: 1.5;
    margin: 0 !important;
  }

  .form-actions {
    margin-top: 16px !important;
  }

  /* Visual checkbox shim button */
  .sms-visual-checkbox {
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;

    width: var(--sms-check-col) !important;
    height: var(--sms-check-col) !important;

    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;

    z-index: 2147483647 !important;

    border-radius: 3px;
    background: #fff;
    border: 2px solid #000;

    cursor: pointer;
    padding: 0;
    line-height: 0;
  }

  .sms-visual-checkbox:focus {
    outline: 3px solid rgba(0,189,242,0.25);
    outline-offset: 2px;
  }
}