/* DIGIA Forms – CompuTax cooperation wizard v1.5.
   All selectors are scoped to the wizard: do not affect the site's other modals/forms. */
#ct-lead-wizard {
  --lead-primary: var(--ct-secondary, #4d74a0);
  --lead-primary-dark: #35577e;
  --lead-ink: #2d405f;
  --lead-text: #4a5a6c;
  --lead-muted: #6b7788;
  --lead-border: #e0e8f1;
  --lead-canvas: #f6f8fb;
  --lead-shadow: 0 24px 80px rgba(18, 37, 62, .23);
  z-index: 1065;
  font-size: 15px;
  line-height: 1.5;
  color: var(--lead-text);
}
#ct-lead-wizard [hidden] { display: none !important; }
#ct-lead-wizard *, #ct-lead-wizard *::before, #ct-lead-wizard *::after { box-sizing: border-box; }
#ct-lead-wizard .modal-dialog {
  width: calc(100% - 24px);
  max-width: 820px;
  margin: 20px auto;
  max-height: calc(100dvh - 40px);
}
#ct-lead-wizard .modal-content {
  background: #fff;
  border: 1px solid rgba(213, 222, 233, .8);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--lead-shadow);
}
#ct-lead-wizard .modal-header {
  background: #fff;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 34px 23px;
  margin: 0;
  border-bottom: 1px solid var(--lead-border);
}
#ct-lead-wizard .modal-header > div { min-width: 0; flex: 1 1 auto; }
#ct-lead-wizard .modal-header .sub-title {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 9px;
  color: var(--lead-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .025em;
}
#ct-lead-wizard .modal-header .sub-title i { font-size: 14px; }
#ct-lead-wizard .modal-title {
  font-size: clamp(22px, 2.5vw, 27px);
  line-height: 1.32;
  letter-spacing: -.02em;
  color: var(--lead-ink);
  font-weight: 750;
  margin: 0;
  max-width: 690px;
}
#ct-lead-wizard .modal-header .btn-close {
  border-radius: 50%;
  width: 33px;
  height: 33px;
  min-width: 33px;
  padding: 9px;
  margin: 3px 0 0;
  opacity: .7;
  box-shadow: none;
  background-color: var(--lead-canvas);
  transition: background-color .16s, opacity .16s;
}
#ct-lead-wizard .modal-header .btn-close:hover { background-color: #e8eef6; opacity: 1; }
#ct-lead-wizard .modal-body {
  margin: 0;
  padding: 27px 34px 30px;
  min-width: 0 !important;
  width: 100%;
  background: #fff;
  overflow-x: hidden;
}
#ct-lead-wizard .ct-lead-description {
  margin: 0 0 24px;
  color: var(--lead-text);
  font-size: 15px;
  line-height: 1.7;
  max-width: 650px;
}
/* Persona selection: two large, aligned cards rather than inline text links. */
#ct-lead-wizard .ct-lead-choose .row > [class*="col-"] { display: flex; }
#ct-lead-wizard .ct-lead-persona {
  appearance: none;
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
  min-height: 245px;
  padding: 25px 25px 21px;
  gap: 11px;
  border: 1px solid var(--lead-border);
  background: #fff;
  border-radius: 13px;
  color: var(--lead-ink);
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
  /* Same 0.4s color transition as the homepage .choose-box. */
  transition: background-color .4s ease-in-out, border-color .4s ease-in-out, box-shadow .4s ease-in-out;
}
#ct-lead-wizard .ct-lead-persona:hover,
#ct-lead-wizard .ct-lead-persona:focus-visible {
  border-color: var(--ct-color-theme-primary, var(--lead-primary));
  background-color: var(--ct-color-theme-primary, var(--lead-primary));
  box-shadow: 0 12px 28px rgba(40, 80, 126, .14);
}
#ct-lead-wizard .ct-lead-persona:focus-visible {
  outline: 2px solid var(--ct-color-theme-primary, var(--lead-primary));
  outline-offset: 3px;
}
#ct-lead-wizard .ct-lead-persona-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 51px;
  width: 51px;
  flex: 0 0 51px;
  color: var(--lead-primary);
  background: #edf3fa;
  font-size: 23px;
  border-radius: 12px;
  /* Animate the whole icon just like .choose-box .choose-icon. */
  transform-origin: center;
  transition: color .4s ease-in-out, background-color .4s ease-in-out;
}
#ct-lead-wizard .ct-lead-persona strong {
  display: block;
  font-size: 21px;
  line-height: 1.2;
  color: var(--lead-ink);
  font-weight: 750;
  transition: color .4s ease-in-out;
}
#ct-lead-wizard .ct-lead-persona > span:not(.ct-lead-persona-icon):not(.ct-lead-persona-arrow) {
  display: block;
  flex: 1 0 auto;
  color: var(--lead-muted);
  font-size: 14px;
  line-height: 1.65;
  transition: color .4s ease-in-out;
}
#ct-lead-wizard .ct-lead-persona-arrow {
  color: var(--lead-primary);
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 3px;
  transition: color .4s ease-in-out;
}
#ct-lead-wizard .ct-lead-persona-arrow i { font-size: 15px; }
/* The same color inversion and 0.6s gelatine icon motion as .choose-box on the homepage. */
#ct-lead-wizard .ct-lead-persona:is(:hover, :focus-visible) .ct-lead-persona-icon {
  background-color: rgba(255, 255, 255, .14);
  color: var(--ct-color-common-white, #fff);
  -webkit-animation: gelatine .6s;
  animation: gelatine .6s;
}
#ct-lead-wizard .ct-lead-persona:is(:hover, :focus-visible) strong,
#ct-lead-wizard .ct-lead-persona:is(:hover, :focus-visible) > span:not(.ct-lead-persona-icon):not(.ct-lead-persona-arrow),
#ct-lead-wizard .ct-lead-persona:is(:hover, :focus-visible) .ct-lead-persona-arrow {
  color: var(--ct-color-common-white, #fff);
}
@media (prefers-reduced-motion: reduce) {
  #ct-lead-wizard .ct-lead-persona,
  #ct-lead-wizard .ct-lead-persona-icon,
  #ct-lead-wizard .ct-lead-persona strong,
  #ct-lead-wizard .ct-lead-persona > span:not(.ct-lead-persona-icon):not(.ct-lead-persona-arrow),
  #ct-lead-wizard .ct-lead-persona-arrow { transition: none; }
  #ct-lead-wizard .ct-lead-persona:is(:hover, :focus-visible) .ct-lead-persona-icon {
    -webkit-animation: none;
    animation: none;
  }
}
/* Three-step segmented indicator. */
#ct-lead-wizard .ct-lead-progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 7px;
  margin: 0 0 29px;
  background: var(--lead-canvas);
  border: 1px solid #eef2f7;
  border-radius: 12px;
}
#ct-lead-wizard .ct-lead-progress-item {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  border-radius: 8px;
  padding: 11px 8px;
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: #7a8797;
  white-space: nowrap;
  transition: background-color .2s;
}
#ct-lead-wizard .ct-lead-progress-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 25px;
  width: 25px;
  height: 25px;
  border: 1px solid #d0d9e5;
  color: #718096;
  border-radius: 50%;
  background: #fff;
  font-size: 12px;
  font-weight: 750;
}
#ct-lead-wizard .ct-lead-progress-item.is-active {
  background: #fff;
  color: var(--lead-ink);
  box-shadow: 0 2px 8px rgba(46, 70, 107, .09);
}
#ct-lead-wizard .ct-lead-progress-item.is-active .ct-lead-progress-number {
  background: var(--lead-primary);
  color: #fff;
  border-color: var(--lead-primary);
}
#ct-lead-wizard .ct-lead-progress-item.is-complete { color: var(--lead-primary-dark); }
#ct-lead-wizard .ct-lead-progress-item.is-complete .ct-lead-progress-number {
  background: #dbe9f8;
  color: var(--lead-primary-dark);
  border-color: #dbe9f8;
}
/* Reset inherited large section headings from the CompuTax landing-page sections. */
#ct-lead-wizard .ct-lead-step .sec-heading {
  width: 100%;
  max-width: none;
  margin: 0 0 23px !important;
  text-align: left;
}
#ct-lead-wizard .ct-lead-step .sec-heading .sec-title {
  color: var(--lead-ink);
  font-size: clamp(20px, 2.1vw, 24px);
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.3;
  margin: 0 0 5px !important;
}
#ct-lead-wizard .ct-lead-step .sec-heading p { margin: 0; font-size: 14px; color: var(--lead-muted); line-height: 1.6; }
/* Two-column service cards, with real accessible checkboxes. */
#ct-lead-wizard .ct-lead-options {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  margin: 0;
}
#ct-lead-wizard .ct-lead-option {
  display: flex !important;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 67px;
  padding: 13px 14px;
  margin: 0;
  border: 1px solid var(--lead-border);
  border-radius: 10px;
  background: #fff;
  color: #35465d;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  cursor: pointer;
  transition: border-color .18s, background-color .18s, box-shadow .18s;
}
#ct-lead-wizard .ct-lead-option:hover { border-color: #9bb3ce; background: #fafcff; }
#ct-lead-wizard .ct-lead-option.is-checked,
#ct-lead-wizard .ct-lead-option:has(input:checked) {
  border-color: var(--lead-primary);
  background: #f1f6fc;
  box-shadow: 0 0 0 1px rgba(77, 116, 160, .1);
}
#ct-lead-wizard .ct-lead-option input[type="checkbox"] {
  display: block;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  margin: 0;
  padding: 0;
  min-height: 0;
  accent-color: var(--lead-primary);
  cursor: pointer;
}
#ct-lead-wizard .ct-lead-option span { flex: 1; min-width: 0; }
#ct-lead-wizard .ct-lead-option i {
  flex: 0 0 auto;
  color: var(--lead-primary);
  font-size: 15px;
  opacity: 0;
}
#ct-lead-wizard .ct-lead-option.is-checked i,
#ct-lead-wizard .ct-lead-option:has(input:checked) i { opacity: 1; }
/* Form controls */
#ct-lead-wizard .form-input { margin: 0; position: relative; }
#ct-lead-wizard .form-input > label {
  display: block;
  color: var(--lead-ink);
  font-size: 13px;
  line-height: 1.5;
  font-weight: 700;
  margin: 0 0 8px;
}
#ct-lead-wizard .form-input input:not([type="checkbox"]),
#ct-lead-wizard .form-input select,
#ct-lead-wizard .form-input textarea {
  display: block;
  width: 100%;
  height: auto;
  min-height: 48px;
  background: #fff;
  color: var(--lead-ink);
  border: 1px solid #d6e0eb;
  border-radius: 8px;
  box-shadow: none;
  font: inherit;
  font-size: 14px;
  padding: 12px 14px;
  margin: 0;
  transition: border-color .15s, box-shadow .15s;
}
#ct-lead-wizard .form-input input:not([type="checkbox"]):focus,
#ct-lead-wizard .form-input select:focus,
#ct-lead-wizard .form-input textarea:focus {
  outline: none;
  border-color: var(--lead-primary);
  box-shadow: 0 0 0 3px rgba(77, 116, 160, .12);
}
#ct-lead-wizard .form-input input::placeholder,
#ct-lead-wizard .form-input textarea::placeholder { color: #8d98a7; opacity: 1; }
#ct-lead-wizard .form-input textarea { min-height: 112px; resize: vertical; }
#ct-lead-wizard .form-input select { cursor: pointer; }
#ct-lead-wizard .digia-forms-terms {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 22px 0 0;
  border: 1px solid var(--lead-border);
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--lead-canvas);
}
#ct-lead-wizard .digia-forms-terms input[type="checkbox"] {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 3px 0 0;
  accent-color: var(--lead-primary);
}
#ct-lead-wizard .digia-forms-terms label { font-size: 13px; line-height: 1.6; font-weight: 500; margin: 0; color: var(--lead-text); }
#ct-lead-wizard .digia-forms-terms a { font-weight: 700; color: var(--lead-primary); text-decoration: underline; }
#ct-lead-wizard .ct-lead-privacy { margin: 12px 0 0; color: var(--lead-muted); font-size: 12px; line-height: 1.65; }
#ct-lead-wizard .ct-lead-step-error,
#ct-lead-wizard .ct-lead-response {
  padding: 11px 13px;
  margin: 16px 0 0;
  border: 1px solid #f2caca;
  border-radius: 8px;
  background: #fff2f1;
  color: #9b3131;
  font-size: 13px;
  line-height: 1.5;
}
#ct-lead-wizard .ct-lead-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
  padding-top: 21px;
  border-top: 1px solid var(--lead-border);
}
#ct-lead-wizard .ct-lead-back {
  border: 0;
  background: none;
  border-radius: 7px;
  color: #5a6b7e;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  padding: 10px 4px;
  cursor: pointer;
}
#ct-lead-wizard .ct-lead-back i { margin-right: 7px; }
#ct-lead-wizard .ct-lead-back:hover { color: var(--lead-primary); }
#ct-lead-wizard .ct-lead-footer .ct-primary-btn,
#ct-lead-wizard .ct-lead-success .ct-primary-btn {
  min-height: 47px;
  margin-left: auto;
}
#ct-lead-wizard .ct-primary-btn:disabled { opacity: .55; cursor: wait; }
#ct-lead-wizard .ct-lead-honeypot {
  position: absolute !important;
  left: -10000px !important;
  top: auto !important;
  height: 1px !important;
  width: 1px !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
#ct-lead-wizard .ct-lead-success { text-align: center; padding: 36px 12px; }
#ct-lead-wizard .ct-lead-success > i { display: block; font-size: 54px; color: #248268; margin-bottom: 18px; }
#ct-lead-wizard .ct-lead-success h3 { color: var(--lead-ink); font-size: 25px; margin: 0 0 13px; }
#ct-lead-wizard .ct-lead-success p { margin: 0 0 26px; color: var(--lead-muted); }
@media (max-width: 767.98px) {
  #ct-lead-wizard .modal-dialog { max-width: 640px; margin: 14px auto; max-height: calc(100dvh - 28px); }
  #ct-lead-wizard .modal-header { padding: 21px 23px 19px; }
  #ct-lead-wizard .modal-body { padding: 23px; }
  #ct-lead-wizard .ct-lead-persona { min-height: 215px; padding: 21px 19px; }
  #ct-lead-wizard .ct-lead-options { gap: 9px; }
  #ct-lead-wizard .ct-lead-option { padding: 12px; }
}
@media (max-width: 575.98px) {
  #ct-lead-wizard .modal-dialog { width: calc(100% - 16px); margin: 8px auto; max-height: calc(100dvh - 16px); }
  #ct-lead-wizard .modal-content { border-radius: 13px; }
  #ct-lead-wizard .modal-header { padding: 18px 18px 16px; gap: 8px; }
  #ct-lead-wizard .modal-title { font-size: 20px; line-height: 1.32; }
  #ct-lead-wizard .modal-header .btn-close { width: 29px; height: 29px; min-width: 29px; }
  #ct-lead-wizard .modal-body { padding: 19px 17px 22px; }
  #ct-lead-wizard .ct-lead-description { font-size: 14px; margin-bottom: 18px; }
  #ct-lead-wizard .ct-lead-persona { min-height: 0; padding: 17px; gap: 8px; }
  #ct-lead-wizard .ct-lead-persona-icon { width: 43px; height: 43px; flex-basis: 43px; font-size: 20px; }
  #ct-lead-wizard .ct-lead-persona strong { font-size: 19px; }
  #ct-lead-wizard .ct-lead-progress { gap: 2px; padding: 5px; margin-bottom: 23px; }
  #ct-lead-wizard .ct-lead-progress-item { flex-direction: column; gap: 4px; font-size: 10px; padding: 8px 1px; }
  #ct-lead-wizard .ct-lead-progress-number { width: 22px; height: 22px; flex-basis: 22px; font-size: 11px; }
  #ct-lead-wizard .ct-lead-step .sec-heading .sec-title { font-size: 20px; }
  #ct-lead-wizard .ct-lead-options { grid-template-columns: 1fr; gap: 9px; }
  #ct-lead-wizard .ct-lead-option { min-height: 55px; }
  #ct-lead-wizard .ct-lead-footer { gap: 8px; }
  #ct-lead-wizard .ct-lead-footer .ct-primary-btn { min-height: 43px; }
}

/* Same frosted-glass backdrop as CompuTax's offcanvas (.body-overlay).
   The body flag is set only while THIS modal is open; other modals are unaffected.
   Bootstrap appends the backdrop as a direct child of <body>. */
body.ct-lead-modal-open > .modal-backdrop.show {
  opacity: 1;
  background-color: rgba(20, 32, 49, .16);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* Clients homepage circle: open the shared lead wizard as a business.
   No change to the CompuTax circular geometry or its translate centering. */
.ct-client-section .client-content.ct-client-lead-trigger {
  cursor: pointer;
  transition: border-color .35s ease, background-color .35s ease, box-shadow .35s ease;
}
.ct-client-section .client-content.ct-client-lead-trigger:hover,
.ct-client-section .client-content.ct-client-lead-trigger:focus-visible {
  border-color: var(--ct-color-theme-primary, #4d74a0);
  background-color: rgba(255,255,255,.55);
  box-shadow: 0 12px 30px rgba(26,46,71,.11);
}
.ct-client-section .client-content.ct-client-lead-trigger:focus-visible {
  outline: 3px solid var(--ct-color-theme-primary, #4d74a0);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .ct-client-section .client-content.ct-client-lead-trigger { transition: none; }
}


/* Callback – same modal, no stepper. Reuses the CompuTax wizard form components. */
#ct-lead-wizard .ct-lead-choose .ct-lead-persona { min-height: 250px; }
#ct-lead-wizard .ct-lead-callback .sec-heading { text-align: left; margin-bottom: 22px !important; }
#ct-lead-wizard .ct-lead-callback .sec-heading .sec-title {
  font-size: clamp(20px, 2.2vw, 25px); color: var(--lead-ink);
  margin-bottom: 8px; line-height: 1.25;
}
#ct-lead-wizard .ct-lead-callback .sec-heading p { margin: 0; color: var(--lead-muted); font-size: 14px; }
#ct-lead-wizard .ct-callback-persona-fieldset { border: none; padding: 0; margin: 0 0 23px; min-width: 0; }
#ct-lead-wizard .ct-callback-persona-fieldset legend {
  display: block; width: auto; float: none; padding: 0;
  font-size: 13px; font-weight: 700; color: var(--lead-ink); margin-bottom: 10px;
}
#ct-lead-wizard .ct-callback-persona-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#ct-lead-wizard .ct-callback-persona-option { position: relative; display: block; cursor: pointer; margin: 0; }
#ct-lead-wizard .ct-callback-persona-option input[type="radio"] {
  position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none;
}
#ct-lead-wizard .ct-callback-persona-option span {
  display: flex; gap: 12px; align-items: center; justify-content: center;
  min-height: 63px; padding: 12px 14px;
  border: 1px solid var(--lead-border); border-radius: 10px;
  font-weight: 700; font-size: 15px; color: var(--lead-ink);
  transition: background-color .2s, border-color .2s, color .2s, box-shadow .2s;
}
#ct-lead-wizard .ct-callback-persona-option span i { font-size: 20px; color: var(--lead-primary); }
#ct-lead-wizard .ct-callback-persona-option input:checked + span {
  background: #edf3fa; border-color: var(--lead-primary);
  box-shadow: inset 0 0 0 1px var(--lead-primary);
}
#ct-lead-wizard .ct-callback-persona-option input:focus-visible + span {
  outline: 2px solid var(--lead-primary); outline-offset: 3px;
}
#ct-lead-wizard .ct-callback-persona-option:hover span { border-color: var(--lead-primary); }
#ct-lead-wizard .ct-lead-callback .ct-lead-footer .ct-primary-btn { margin-left: auto; }
@media (max-width: 575.98px) {
  #ct-lead-wizard .ct-callback-persona-option span { min-height: 54px; padding: 10px 8px; font-size: 13px; gap: 7px; }
  #ct-lead-wizard .ct-callback-persona-option span i { font-size: 17px; }
}
