/* ═══════════════════════════════════════════════════════
   IWTMYL Client / Beneficiary Signup — Branded Restyle
   Location: css/client-signup.css
   Template: templates/client-signup.php (page ID 21)

   Uses .cs- namespace scoped to .page-id-21.
   All values reference shared tokens from iwtmyl-tokens.css.
   ═══════════════════════════════════════════════════════ */


/* ═══ PAGE BACKGROUND ═══ */

.page-id-21 {
  background: linear-gradient(180deg, #f4f9f5 0%, var(--iw-warm-white) 100%) !important;
}


/* ═══ BREAK THEME CONTAINERS (mirror /about/ page-205 pattern) ═══ */

/* Constrain the outer wrapper the same way /about/ uses .vp-wrap */
.page-id-21 .container-new {
  display: block !important;
  max-width: 1060px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
}

.page-id-21 .container-new-con {
  border-top: 1px solid #e5eae6;
  padding: 24px 0 0 !important;
  width: 100%;
}

/* Neutralise Bootstrap .container inside the signup section */
.page-id-21 .auth-section.cs-signup > .container {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}


/* ═══ AUTHORITY BAR ═══ */

.cs-authority-bar {
  background: #1c3a2a;
  color: #95d5b2;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  padding: 9px 16px;
  border-radius: 6px;
  margin-top: 12px;
  margin-bottom: 24px;
  text-align: center;
}
.cs-authority-bar strong { color: #fff; }


/* ═══ LAYOUT CONTAINER ═══ */

.page-id-21 .auth-section.cs-signup {
  max-width: 100%;
  margin: 0;
  padding: 0 0 48px;
}


/* ═══ HERO: KICKER ═══ */

.cs-kicker {
  font-family: var(--iw-sans) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: #3b7f59 !important;
  display: block !important;
  margin-bottom: 10px !important;
}


/* ═══ HERO: LEFT COLUMN ═══ */

.cs-hero-text {
  text-align: left !important;
}

/* Classic Editor ghost-busting — keep .cs-case-manager-notice and .cs-hero-subtitle visible */
.cs-hero-text > p:not(.cs-case-manager-notice):not(.cs-hero-subtitle),
.cs-hero-text > br {
  display: none !important;
}

.auth-section.cs-signup .cs-hero .cs-hero-subtitle {
  font-family: var(--iw-sans) !important;
  font-size: 16px !important;
  color: #48534c !important;
  margin: 0 0 20px !important;
  line-height: 1.65 !important;
  max-width: none !important;
  text-align: left !important;
}

.auth-section.cs-signup .cs-hero .cs-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  gap: 10px !important;
}

.cs-case-manager-notice {
  font-family: var(--iw-sans);
  font-size: 14px;
  color: var(--iw-error);
  background: rgba(211, 47, 47, .06);
  border: 1px solid rgba(211, 47, 47, .15);
  border-radius: var(--iw-radius-sm);
  padding: 10px 16px;
  margin-bottom: 16px;
}


/* ═══ HERO: SIDEBAR CARD ═══ */

.cs-hero-sidebar {
  background: #fff !important;
  border: 1px solid #dfe8e1 !important;
  border-radius: 10px !important;
  padding: 22px 20px !important;
}

/* Classic Editor ghost-busting */
.cs-hero-sidebar > p:empty,
.cs-hero-sidebar > br {
  display: none !important;
}

.cs-sidebar-heading {
  font-family: var(--iw-sans) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #1c3a2a !important;
  margin: 0 0 14px !important;
  line-height: 1.25 !important;
}


/* ═══ HERO: CHECKLIST (mirrors vp-checklist) ═══ */

.cs-checklist {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.cs-checklist li {
  font-family: var(--iw-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #2c3e33 !important;
  padding: 7px 0 7px 26px !important;
  position: relative !important;
  line-height: 1.4 !important;
  border-bottom: 1px solid #f0f5f1 !important;
  display: block !important;
}

.cs-checklist li:last-child {
  border-bottom: none !important;
}

.cs-checklist li::before {
  content: "\2713" !important;
  position: absolute !important;
  left: 0 !important;
  top: 7px !important;
  color: #2f7d4d !important;
  font-weight: 900 !important;
  font-size: 14px !important;
}


/* ═══ NOTICE STRIP (below hero, above form) ═══ */

.cs-notice-strip {
  font-family: var(--iw-sans) !important;
  font-size: 13px !important;
  color: var(--iw-text-muted) !important;
  line-height: 1.55 !important;
  background: #f9fbfa !important;
  border-top: 1px solid #e5eae6 !important;
  border-bottom: 1px solid #e5eae6 !important;
  padding: 12px 16px !important;
  margin-bottom: 20px !important;
}

.cs-notice-strip strong {
  color: var(--iw-text-secondary) !important;
}

.cs-notice-strip a {
  color: var(--iw-green-700) !important;
  font-weight: 600 !important;
}


/* ═══ LOGIN UTILITY (inside Personal Information header) ═══ */

.cs-section-divider--with-login {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
}

.cs-login-utility {
  font-family: var(--iw-sans) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--iw-text-muted) !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  flex-shrink: 0 !important;
}

.cs-login-utility strong {
  color: var(--iw-green-700) !important;
  font-weight: 600 !important;
}

.cs-login-utility:hover {
  color: var(--iw-text-secondary) !important;
  text-decoration: none !important;
}

.cs-login-utility:hover strong {
  color: var(--iw-green-800) !important;
  text-decoration: underline !important;
}


/* ═══ CARD WRAPPER (.auth-box) ═══ */

.page-id-21 .auth-section .auth-box {
  background: #fff !important;
  border: 1px solid #dfe8e1 !important;
  border-radius: 10px !important;
  padding: 36px 32px !important;
  max-width: 100% !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .03);
}


/* ═══ SECTION DIVIDERS ═══ */

.cs-section-divider {
  margin-top: 28px;
  margin-bottom: 20px;
  padding-bottom: 0;
  border-bottom: none;
}

.cs-section-divider span {
  font-family: var(--iw-sans);
  font-size: 18px;
  font-weight: 700;
  color: var(--iw-green-900);
  display: block;
  padding-bottom: 10px;
  border-bottom: 2px solid #eef6f0;
}

/* First section divider needs no top margin */
.page-id-21 .auth-box .row > .cs-section-divider:first-child {
  margin-top: 0;
}


/* ═══ FORM LABELS ═══ */

.page-id-21 .auth-section .auth-box .form-group > label {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--iw-text-primary);
  margin-bottom: 8px;
  display: block;
  line-height: 1.4;
}

.cs-field-helper {
  font-family: var(--iw-sans);
  font-size: 14.5px;
  color: var(--iw-text-muted);
  margin: 2px 0 10px;
  line-height: 1.5;
}

.cs-optional-tag {
  font-weight: 400;
  color: var(--iw-text-muted);
  font-size: 13px;
}

.cs-services-heading {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--iw-green-900) !important;
  margin-bottom: 4px !important;
}


/* ═══ TEXT INPUTS / SELECTS / TEXTAREAS ═══ */

.page-id-21 .auth-section .auth-box .form-control {
  font-family: var(--iw-sans);
  font-size: 16px;
  color: var(--iw-text-primary);
  background: var(--iw-warm-50);
  border: 1.5px solid #dfe8e1;
  border-radius: 8px;
  padding: 12px 16px;
  height: auto;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.page-id-21 .auth-section .auth-box .form-control:focus {
  background: #fff;
  border-color: var(--iw-green-500);
  box-shadow: 0 0 0 3px rgba(82, 183, 136, .15);
  outline: none;
}

.page-id-21 .auth-section .auth-box .form-control::placeholder {
  color: var(--iw-text-muted);
  font-size: 15px;
}

.page-id-21 .auth-section .auth-box textarea.form-control {
  min-height: 90px;
  resize: vertical;
}

.page-id-21 .auth-section .auth-box select.form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%234a4a42' d='M1.4 0L6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
}

.page-id-21 .auth-section .auth-box .form-group {
  margin-bottom: 20px;
}


/* ═══ CUSTOM RADIO BUTTONS ═══ */

.page-id-21 .auth-section .auth-box .radio-group label {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 500;
  color: var(--iw-text-primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 20px;
  margin-bottom: 10px;
  line-height: 1;
}

.page-id-21 .auth-section .auth-box .custom-radio {
  width: 20px;
  height: 20px;
  border: 2px solid #c8d0ca;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  flex-shrink: 0;
  transition: border-color .15s ease;
}

.page-id-21 .auth-section .auth-box input[type="radio"]:checked + .custom-radio {
  border-color: var(--iw-green-700);
}

.page-id-21 .auth-section .auth-box input[type="radio"]:checked + .custom-radio::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--iw-green-700);
}


/* ═══ CUSTOM CHECKBOXES ═══ */

.page-id-21 .auth-section .auth-box .checkbox-group label {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 500;
  color: var(--iw-text-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  line-height: 1.3;
}

.page-id-21 .auth-section .auth-box .custom-checkbox {
  width: 20px;
  height: 20px;
  border: 2px solid #c8d0ca;
  border-radius: 5px;
  display: inline-block;
  position: relative;
  flex-shrink: 0;
  transition: border-color .15s ease, background .15s ease;
}

.page-id-21 .auth-section .auth-box input[type="checkbox"]:checked + .custom-checkbox {
  border-color: var(--iw-green-700);
  background: var(--iw-green-700);
}

.page-id-21 .auth-section .auth-box input[type="checkbox"]:checked + .custom-checkbox::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 6px;
  width: 6px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}


/* ═══ HIDE NATIVE INPUTS ═══ */

.page-id-21 .auth-section label input[type="radio"],
.page-id-21 .auth-section label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}


/* ═══ EXPAND BUTTON (Fast Pass / Verification) ═══ */

.cs-expand-btn {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--iw-green-700);
  background: #f7faf8;
  border: 1px solid #dfe8e1;
  border-radius: 8px;
  padding: 12px 18px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: background .15s ease;
  width: 100%;
  text-align: left;
  margin-bottom: 16px;
}

.cs-expand-btn:hover {
  background: #eef6f0;
}

.cs-expand-icon {
  font-size: 18px;
  font-weight: 700;
  color: var(--iw-green-500);
  transition: transform .15s ease;
  display: inline-block;
}

.cs-expand-btn.is-open .cs-expand-icon {
  transform: rotate(45deg);
}


/* ═══ INCOME FIELD ═══ */

.cs-income-field {
  position: relative;
}

.cs-currency-code {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--iw-sans);
  font-size: 16px;
  font-weight: 600;
  color: var(--iw-text-muted);
  pointer-events: none;
}

.cs-income-field .form-control {
  padding-left: 32px !important;
}


/* ═══ CITATION CARD ═══ */

.cs-citation-card {
  background: #f7faf8;
  border: 1px solid #dfe8e1;
  border-radius: var(--iw-radius-md);
  padding: 20px;
  margin-top: 12px;
}

.cs-citation-card h5 {
  font-family: var(--iw-sans);
  font-size: 16px;
  font-weight: 700;
  color: var(--iw-green-800);
  margin: 0 0 16px;
}


/* ═══ MILITARY DETAILS CARD ═══ */

.cs-military-details {
  background: #f7faf8;
  border: 1px solid #dfe8e1;
  border-radius: var(--iw-radius-md);
  padding: 20px;
  margin-top: 12px;
}

.cs-military-details h5 {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--iw-green-800);
  margin: 0 0 16px;
  line-height: 1.5;
}


/* ═══ SERVICES SECTION ═══ */

.page-id-21 .step-services .checkbox-group label {
  font-size: 14px;
  padding: 5px 0;
}

.page-id-21 .step-services .form-group > label {
  font-size: 16px;
  font-weight: 700;
  color: var(--iw-green-800);
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #eef6f0;
}

.page-id-21 .group-more {
  font-family: var(--iw-sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--iw-green-700);
  text-decoration: underline;
  text-decoration-color: var(--iw-green-300);
}

.page-id-21 .group-more:hover {
  color: var(--iw-green-800);
}


/* ═══ DROPZONE (military docs upload) ═══ */

.dropzone-wrapper {
  border: 2px dashed #cfe2d3;
  border-radius: var(--iw-radius-md);
  color: var(--iw-text-muted);
  position: relative;
  height: 150px;
  background: #f7faf8;
  transition: background .15s ease;
}

.dropzone-wrapper:hover,
.dropzone-wrapper.dragover {
  background: #eef6f0;
}

.dropzone-desc {
  position: absolute;
  margin: 0 auto;
  left: 0;
  right: 0;
  text-align: center;
  width: 60%;
  top: 45px;
  font-family: var(--iw-sans);
  font-size: 14px;
  color: var(--iw-text-muted);
}

.dropzone,
.dropzone:focus {
  position: absolute;
  outline: none !important;
  width: 100%;
  height: 150px;
  cursor: pointer;
  opacity: 0;
}

.preview-zone {
  text-align: center;
}

.preview-zone .box {
  position: relative;
  background: #fff;
  width: 100%;
  box-shadow: none;
  border-radius: 0;
  margin-bottom: 0;
}

.box-header {
  color: var(--iw-text-secondary);
  display: block;
  padding: 10px;
  position: relative;
  border-bottom: 1px solid #eef6f0;
  margin-bottom: 10px;
  font-family: var(--iw-sans);
}

.box-tools {
  position: absolute;
  right: 10px;
  top: 5px;
}


/* ═══ SECTION REASSURANCE TEXT ═══ */

.cs-section-reassurance {
  font-family: var(--iw-sans);
  font-size: 15px;
  color: var(--iw-text-muted);
  line-height: 1.55;
  margin: -8px 0 16px;
}

.cs-section-reassurance a {
  color: var(--iw-green-700);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--iw-green-300);
}

.cs-section-reassurance a:hover {
  color: var(--iw-green-800);
}


/* ═══ SAFETY BADGE (document upload) ═══ */

.cs-safety-badge {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  background: var(--iw-green-50);
  border: 1px solid var(--iw-green-200);
  border-radius: var(--iw-radius-md);
  padding: 16px 20px;
  margin-bottom: 16px;
}

.cs-safety-icon {
  font-size: 24px;
  flex-shrink: 0;
  line-height: 1;
}

.cs-safety-badge strong {
  font-family: var(--iw-sans);
  font-size: 15px;
  font-weight: 700;
  color: var(--iw-green-800);
  display: block;
  margin-bottom: 4px;
}

.cs-safety-badge p {
  font-family: var(--iw-sans);
  font-size: 13px;
  color: var(--iw-text-muted);
  line-height: 1.5;
  margin: 0;
}


/* ═══ TRUST STRIP (above footer) ═══ */

.cs-trust-strip {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 24px;
  padding: 18px 0 10px;
  border-top: 1px solid #eef6f0;
  margin-top: 12px;
}

.cs-trust-item {
  font-family: var(--iw-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--iw-text-muted);
  display: flex;
  align-items: center;
  gap: 5px;
}

.cs-trust-item span {
  font-size: 15px;
}


/* ═══ SUBMIT AREA ═══ */

.cs-submit-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 8px 0;
}

.page-id-21 .iw-trust-footer {
  font-family: var(--iw-sans);
  font-size: 13px;
  color: var(--iw-text-muted);
  text-align: center;
  margin: 16px 0 8px;
}


/* ═══ BOTTOM LINK ═══ */

.page-id-21 .auth-section h6 {
  font-family: var(--iw-sans);
  font-size: 15px;
  color: var(--iw-text-secondary);
  text-align: center;
}

.page-id-21 .auth-section h6 a {
  color: var(--iw-green-700) !important;
  text-decoration-color: var(--iw-green-300) !important;
  font-weight: 600;
}

.page-id-21 .auth-section h6 a:hover {
  color: var(--iw-green-800) !important;
}


/* ═══ VALIDATION STATES ═══ */

.page-id-21 .form-group.has-error .form-control {
  border-color: var(--iw-error) !important;
  box-shadow: 0 0 0 2px rgba(211, 47, 47, .08);
}

.page-id-21 .form-group.has-error .custom-radio {
  border-color: var(--iw-error) !important;
}

.page-id-21 .form-group.has-error .custom-checkbox {
  border-color: var(--iw-error) !important;
}

.page-id-21 .form-group.has-success .form-control {
  border-color: var(--iw-green-500) !important;
  box-shadow: 0 0 0 2px rgba(82, 183, 136, .08);
}

.page-id-21 .help-block {
  font-family: var(--iw-sans);
  font-size: 13px;
  font-weight: 600;
  color: var(--iw-error);
  margin-top: 6px;
}

.page-id-21 label.error {
  font-family: var(--iw-sans);
  font-size: 13px;
  color: var(--iw-error);
  font-weight: 600;
}

.page-id-21 .form-group.has-success .help-block,
.page-id-21 .form-group.has-success label.error {
  display: none;
}


/* ═══ RESPONSIVE ═══ */

@media (max-width: 991px) {
  .page-id-21 .step-services > .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 16px;
  }
}

@media (max-width: 900px) {
  /* Hero grid stacking is in inline <style>, these handle text centering */
  .cs-hero-text {
    text-align: center !important;
  }
  .auth-section.cs-signup .cs-hero .cs-chips {
    justify-content: center !important;
  }
  .auth-section.cs-signup .cs-hero .cs-hero-subtitle {
    text-align: center !important;
  }
  .cs-kicker {
    text-align: center !important;
  }
}

@media (max-width: 767px) {
  .page-id-21 .container-new {
    padding: 0 16px !important;
  }

  .page-id-21 .auth-section.cs-signup {
    padding: 0 0 40px;
  }

  .page-id-21 .auth-section .auth-box {
    padding: 24px 18px !important;
  }

  .auth-section.cs-signup h2.cs-hero-title {
    font-size: 26px !important;
  }

  .cs-section-divider span {
    font-size: 16px;
  }

  .cs-chips {
    gap: 6px;
  }

  .cs-expand-btn {
    font-size: 14px;
    padding: 10px 14px;
  }

  .cs-checklist li {
    font-size: 13px !important;
    padding: 6px 0 6px 24px !important;
  }

  .cs-section-divider--with-login {
    flex-direction: column !important;
    gap: 4px !important;
  }

  .cs-login-utility {
    font-size: 12px !important;
  }

  .cs-safety-badge {
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
  }

  .cs-trust-strip {
    gap: 12px;
  }

  .cs-trust-item {
    font-size: 12px;
  }
}

@media (max-width: 600px) {
  .cs-hero-sidebar {
    padding: 18px 16px !important;
  }
}
