/************************************************************
  CLEANED + UPDATED custom.css for LimeSurvey v6
  ----------------------------------------------------------
  PART 1 of 4 — Branding / layout / general helpers
************************************************************/

/* ===== 1. GLOBAL BRANDING ===== */

/* Hide required-asterisk */
.asterisk { display: none; }

/* General colours */
.bg-light { background-color: #fff !important; }

.text-info {
  --bs-text-opacity: 1;
  color: rgb(156 2 55) !important;
}

/* Primary buttons */
.btn-primary {
  background-color: #000;
  border-color: #000;
  color: #fff;
}
.btn-primary:hover {
  background-color: #9d0636;
  border-color: #9d0636;
  color: #fff;
}

/* Previous button */
#ls-button-previous {
  background-color: #000;
  border-color: #000;
  color: #fff;
}
#ls-button-previous:hover {
  background-color: #9d0636;
  border-color: #9d0636;
  color: #fff;
}

/* Active primary states */
.btn-check:active + .btn-primary,
.btn-check:checked + .btn-primary,
.btn-primary.active,
.btn-primary:active,
.show > .btn-primary.dropdown-toggle {
  background-color: #9d0636;
  border-color: #9d0636;
  color: #fff;
}

/* ===== 2. LAYOUT / TYPOGRAPHY ===== */

/* NOTE: Your original CSS used ".body". If you intended the actual page body,
   change ".body" to "body". Leaving as-is to avoid unexpected layout changes. */
.body {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
}

/* Progress bar colour */
.progress-bar { background-color: #9d0636; }

/* Label sizing */
.control-label { font-size: 16px; }

/* Logo */
.logo-container > img {
  max-height: 100px;
  padding: 15px;
  width: auto;
}

/* Top progress placement */
.top-container .progress {
  width: 60%;
  margin-left: 10%;
  margin-right: auto;
  margin-top: -2.5em;
}

/* Question title */
.ls-label-question {
  font-size: 20px;
  font-weight: 500;
}
/* Only make bold heavier inside the QUESTION text (not answers) */
.ls-label-question b,
.ls-label-question strong {
  font-weight: 900;
}

/* Remove help icon */
.ls-questionhelp:before { display: none; }

/* Keep words together */
body { word-break: keep-all !important; }

/* Text transforms */
.upperC { text-transform: uppercase; }
.lowerC { text-transform: lowercase; }
.capitalC { text-transform: capitalize; }

/* Lighter italics */
i, em { font-weight: 300; }

/* Help container padding */
.question-help-container { padding-left: 0; }

/* Prevent hyphenation */
.question-title-container,
.question-valid-container {
  -moz-hyphens: none;
  -ms-hyphens: none;
  -webkit-hyphens: none;
  hyphens: none;
}

/* ===== 3. NAV / AUTOCOMPLETE ===== */

/* Navbar height */
html body .navbar.navbar-default.navbar-fixed-top { height: 7em; }

/* Hide the navbar action link */
.navbar-action-link {
  padding-right: 1em;
  display: none;
}

/* Autocomplete */
ul.ui-autocomplete {
  width: 250px !important;
  padding: 5px 10px;
  list-style: none;
}
.easy-autocomplete-container {
  max-height: 250px;
  overflow: auto;
  overflow-x: hidden;
}
/************************************************************
  CLEANED + UPDATED custom.css for LimeSurvey v6
  ----------------------------------------------------------
  PART 2 of 4 — IAT + utilities + responsive helpers
************************************************************/

/* ==========================================================
   1) IAT QUESTIONS
   ========================================================== */
.iatWrapper {
  position: relative;
  width: 100%;
  max-width: 600px;
  height: 300px;
  margin: 0 auto;
  color: #D0DBE5;
  background-color: #2C3E50;
  font-size: 21px;
}

.iatLeftLabel { float: left; padding: 10px; }
.iatRightLabel { float: right; padding: 10px; }

.iatWord {
  position: absolute;
  width: 100%;
  top: 35%;
  text-align: center;
  font-size: 36px;
  color: #C4D1DE;
}
.iatWord.done { color: #C4D1DE; }

.iatInstructions {
  position: absolute;
  width: 100%;
  bottom: 0;
  padding-bottom: 10px;
  text-align: center;
}

.iatMobileButtonWrapper {
  display: none;
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  font-size: 36px;
}

.iatButton {
  float: left;
  margin: 20px;
  width: 100px;
  padding: 2px 0 5px 0;
  border: 5px solid #233140;
  border-radius: 10px;
  text-align: center;
  line-height: normal;
  cursor: pointer;
}

.iatLeftButton { float: left; }
.iatRightButton { float: right; }

/* ==========================================================
   2) RESPONSIVE / UTILITY HELPERS
   ========================================================== */

/* Numeric multi tweaks (targets LS internal slider layout if present) */
@media (min-width: 760px) {
  .question-container.numeric-multi .ls-group-dynamic .ls-input-group > div {
    float: left;
    max-width: 130px;
  }
}

@media (max-width: 760px) {
  .question-container.numeric-multi .ls-group-dynamic .control-label {
    text-align: left;
  }

  .question-container.numeric-multi .ls-group-dynamic > div > div {
    float: left;
    width: 100%;
    max-width: 130px;
  }
}

/* Other text padding */
.other-text-item { padding-top: 20px; }

/* Navigator container */
#navigator-container { display: flex; }

/* Hide some EM UI bits (keep only if you really want these hidden) */
.ls-group-remaining { display: none; }
.em_value_integer { display: none; }

/* Utility layout classes */
.no-question { border-top: 0; }
.no-question .question-title-container { display: none; }
.no-question .question-valid-container { display: none; }
.no-question .answer-container {
  padding-top: 0;
  padding-bottom: 0.5em;
}
.no-question .ls-answers { padding-top: 0; }

.no-bottom {
  border-bottom: 0;
  margin-bottom: 0;
}
.no-bottom .answer-container { padding-bottom: 0; }
.no-bottom .ls-answers {
  padding-bottom: 0;
  margin-bottom: 0;
}

/* Right-align nav links */
.nav-link { text-align: right !important; }

/* Sorting question columns */
.card-sort-question .items-start {
  float: left;
  width: 63%;
  max-width: 800px;
}
@media screen and (min-width: 480px) {
  .card-sort-question .items-start {
    float: left;
    width: 100%;
    height: 100%;
    max-width: 480px;
  }
}

/* Zoom helper */
.zoom:hover {
  transform: scale(3);
  margin-left: 20%;
}
/************************************************************
  CLEANED + UPDATED custom.css for LimeSurvey v6
  ----------------------------------------------------------
  PART 3 of 4 — Radios/checkboxes + lists + form sizing
************************************************************/

/* ==========================================================
   1) GENERAL FORM SIZING
   ========================================================== */
select { min-width: 25%; }

.form-inline .form-group,
.form-inline input.form-control[type="text"] { width: 100% !important; }

.answers-list.radio-list { width: 100%; }
.form-group.answer-item.text-item { margin-top: 15px; }

@media only screen and (min-width: 768px) {
  .form-inline .form-group.other-text-item { padding-left: 50px; }
}

/* ==========================================================
   2) HIDE EMPTY COLUMN (kept)
   ========================================================== */
@media only screen and (max-width: 768px) {
  td.hideEmptyColumn-hiddencolumn,
  th.hideEmptyColumn-hiddencolumn { display: none !important; }
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  td.hideEmptyColumn-hiddencolumn,
  th.hideEmptyColumn-hiddencolumn { display: none !important; }
}
_:-ms-lang(x), _:-webkit-full-screen, td.hideEmptyColumn-hiddencolumn { display:none !important; }
_:-ms-lang(x), _:-webkit-full-screen, th.hideEmptyColumn-hiddencolumn { display:none !important; }

/* ==========================================================
   3) RADIO / CHECKBOX VISUALS (FontAwesome approach)
   ========================================================== */

/* Base pseudo icon setup */
.radio-item label::before { border: 1px solid #000; }
.checkbox-item label::before { border: 1px solid #000; }

/* Hide native controls + label after */
.radio-item label::after,
.checkbox-item label::after,
input[type="radio"],
input[type="checkbox"],
.radio-item input[type="radio"],
.radio-item input[type="checkbox"] {
  opacity: 0;
  visibility: hidden;
}

/* Unchecked icons */
.radio-item label::before {
  border: none;
  background-color: transparent;
  transition: color 0s ease-in;
  font-family: "FontAwesome";
  visibility: visible;
  content: "\f1db";
  font-size: 160%;
  color: #bbb;
  top: 4px;
  text-shadow: none;
}
.checkbox-item label::before {
  border: none;
  background-color: transparent;
  transition: color 0s ease-in;
  font-family: "FontAwesome";
  visibility: visible;
  content: "\f096";
  font-size: 160%;
  color: #bbb;
  top: 4px;
  text-shadow: none;
}

/* Checked icons (default: #9d0636) */
input[type="radio"]:checked + label:before,
input[type="radio"]:checked + .label:before,
input[type="radio"]:checked:focus + label:before,
input[type="radio"]:checked:focus + .label:before {
  font-family: "FontAwesome";
  visibility: visible;
  transition: color 0.5s ease-in;
  content: "\f00c";
  font-size: 160%;
  color: #9d0636;
}

input[type="checkbox"]:checked + label:before,
input[type="checkbox"]:checked + .label:before,
input[type="checkbox"]:checked:focus + label:before,
input[type="checkbox"]:checked:focus + .label:before {
  font-family: "FontAwesome";
  visibility: visible;
  transition: color 0.5s ease-in;
  content: "\f046";
  font-size: 160%;
  color: #9d0636;
}

/* Positioning tweaks */
.dir-ltr .radio-item label.ls-label-xs-visibility::before,
.dir-ltr .checkbox-item label.ls-label-xs-visibility::before,
.dir-ltr .radio-item .ls-label-xs-visibility,
.dir-ltr .checkbox-item .ls-label-xs-visibility {
  margin-left: -19px;
}

.radio-item .ls-label-xs-visibility,
.checkbox-item .ls-label-xs-visibility {
  width: 32px;
  height: 32px;
}

/* Mobile adjustments for array cell radios/checkboxes */
@media only screen and (max-width: 768px) {
  table.ls-answers > tbody > tr td.answer-item.radio-item,
  table.ls-answers > tbody > tr td.answer-item.checkbox-item {
    padding: 0;
  }

  .dir-ltr table.ls-answers .radio-item label.ls-label-xs-visibility::before,
  .dir-ltr table.ls-answers .checkbox-item label.ls-label-xs-visibility::before {
    margin-left: 10px;
    display: none;
  }

  .dir-ltr table.ls-answers .radio-item .ls-label-xs-visibility,
  .dir-ltr table.ls-answers .checkbox-item .ls-label-xs-visibility {
    margin: 0;
    padding: 15px 15px 15px 40px;
  }

  table.ls-answers > tbody > tr td.radio-item:hover,
  table.ls-answers > tbody > tr td.checkbox-item:hover {
    background-color: transparent;
  }

  tr.ls-odd,
  .array-flexible-column tr.answers-list:nth-child(even) {
    background-color: transparent;
  }

  table.ls-answers > tbody > tr:nth-child(even):hover {
    background-color: transparent;
  }

  .radio-item label::before { top: 14px; }
  .checkbox-item label::before { top: 14px; }

  /* On mobile, your selected icon is white (non-array list questions) */
  input[type="radio"]:checked + label:before,
  input[type="radio"]:checked + .label:before,
  input[type="radio"]:checked:focus + label:before,
  input[type="radio"]:checked:focus + .label:before,
  input[type="checkbox"]:checked + label:before,
  input[type="checkbox"]:checked + .label:before,
  input[type="checkbox"]:checked:focus + label:before,
  input[type="checkbox"]:checked:focus + .label:before {
    color: #fff;
  }

  td.radio-item input[type="radio"]:checked + label,
  td.checkbox-item input[type="checkbox"]:checked + label {
    color: #fff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
    background-color: #9d0636;
    opacity: 0.85;
  }
}

/* ==========================================================
   4) LARGE "BUTTON LIST" STYLING
   ========================================================== */
ul label,
ul .label { padding: 1.5rem 0; }

.form-inline .radio-item,
.form-inline .checkbox-item,
li.radio-item,
li.checkbox-item {
  display: block;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid rgba(102, 102, 102, 0.35);
}

.form-inline .radio-item:hover,
.form-inline .checkbox-item:hover,
li.radio-item:hover,
li.checkbox-item:hover {
  background-color: #f0f0f0;
}

li.radio-item:first-child,
li.checkbox-item:first-child {
  border-top: 1px solid rgba(102, 102, 102, 0.35);
}

/* Selected label background (desktop) */
input[type="radio"]:checked + label.radio-label,
input[type="radio"]:checked + label.label-radio,
input[type="checkbox"]:checked + label.checkbox-label,
input[type="checkbox"]:checked + label.answertext {
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.5);
  background-color: #9d0636;
  opacity: 0.85;
  font-weight: bolder;
}

/* Standard list label padding */
.radio-list li label,
.radio-list li .label,
.checkbox-list li label,
.checkbox-list li .label,
.checkbox-text-list li label,
.checkbox-text-list li .label {
  position: relative;
  display: block;
  padding-left: 5rem;
  padding-right: 15px;
  margin: 0;
}

/* Icon placement */
input[type="radio"] + .radio-label:before,
input[type="radio"] + .label-radio:before,
input[type="radio"] + .answertext:before,
input[type="checkbox"] + .checkbox-label:before,
input[type="checkbox"] + .label-checkbox:before,
input[type="checkbox"] + .answertext:before,
.other-item label:before,
.other-item .label:before,
label.answer-comment-wrapper:before,
.answer-comment-wrapper.label:before {
  position: absolute;
  left: 35px;
}

/* Multiple options with comments */
.multiple-opt-comments .other-item label:before { visibility: hidden; }
.multiple-opt-comments .label-text { padding-left: 0; }
.multiple-opt-comments .form-horizontal .control-label { padding-top: 1.5rem; }
.multiple-opt-comments .form-horizontal .checkbox-item label::before { top: 15px; }
.multiple-opt-comments .comment-item { margin-top: 1rem; }
.multiple-opt-comments ul.checkbox-text-list li.checkbox-text-item > div { width: 100%; }

@media only screen and (min-width: 768px) {
  .multiple-opt-comments ul.checkbox-text-list li.checkbox-text-item .comment-item { padding-left: 50px; }
  .multiple-opt-comments ul.checkbox-text-list li.checkbox-text-item .other-text-item {
    padding-left: 36px;
    width: 100%;
  }
  .multiple-opt-comments ul.checkbox-text-list li.checkbox-text-item.other-item .comment-item { padding-left: 36px; }
  .multiple-opt-comments ul.checkbox-text-list li.checkbox-text-item input.other-text { width: 100%; }
}

.multiple-opt .checkbox-item label::before { top: 15px; }
.multiple-opt ul { margin: 0; }
.form-horizontal .checkbox-item label::before { top: 1px; }
.checkbox-item { padding-left: 0; }

/* Keep explicit top border */
li.checkbox-item { border-top: 1px solid rgba(102, 102, 102, 0.35); }
/************************************************************
  CLEANED + UPDATED custom.css for LimeSurvey v6
  ----------------------------------------------------------
  PART 4 of 4 — LS6 critical fixes + components + alignment
************************************************************/

/* ==========================================================
   1) CRITICAL: LimeSurvey relevance/filtering must hide items
   ========================================================== */
/* Keep actual hidden items hidden */
.js .ls-hidden,
.js .ls-js-hidden {
  display: none !important;
}

/* Irrelevant does NOT necessarily mean hidden in LS.
   Exclusives use ls-irrelevant + ls-disabled (should remain visible). */
.js .ls-irrelevant {
  pointer-events: none;
}

/* Make disabled relevance look disabled */
.js .ls-disabled {
  opacity: 0.45;
}

/* ==========================================================
   2) INPUT-ON-DEMAND: ALWAYS KEEP HIDDEN ROWS HIDDEN
   ----------------------------------------------------------
   LS uses Bootstrap's "d-none" on the LI:
     class="... selector--inputondemand-list-item ... d-none ..."
   Your flex layout rules can override it unless we force it.
   ========================================================== */
.question-container ul.ls-answers > li.answer-item.d-none,
.selector--inputondemand-list-item.d-none,
.selector--inputondemand-list .d-none {
  display: none !important;
}

/* ==========================================================
   3) MULTI NUMERIC + MULTI SHORT TEXT:
      Align inputs after widest label using --ls-multi-label-width
   ----------------------------------------------------------
   IMPORTANT: exclude .d-none and LS hidden helpers so we don't
   reveal input-on-demand hidden rows.
   ========================================================== */

/* MULTI NUMERIC (numeric-multi) */
.question-container.numeric-multi ul.ls-answers > li.answer-item.row:not(.ls-hidden):not(.ls-irrelevant):not(.d-none):not(.ls-js-hidden) {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
}

.question-container.numeric-multi ul.ls-answers > li.answer-item:not(.d-none) > label.control-label {
  flex: 0 0 var(--ls-multi-label-width, 240px) !important;
  width: var(--ls-multi-label-width, 240px) !important;
  max-width: none !important;
  text-align: left !important;
  margin-bottom: 0 !important;
  white-space: normal !important;
}

.question-container.numeric-multi ul.ls-answers > li.answer-item:not(.d-none) > div.col-12.col-md-8 {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  display: flex !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

.question-container.numeric-multi ul.ls-answers input.form-control {
  text-align: left !important;
}

/* MULTIPLE SHORT TEXT / MULTIPLE TEXT AREAS (your HTML shows "multiple-short-txt") */
.question-container.multiple-short-txt ul.ls-answers.subquestion-list.questions-list.text-list
  > li.answer-item.text-item.row:not(.ls-hidden):not(.ls-irrelevant):not(.d-none):not(.ls-js-hidden),
.question-container ul.ls-answers.subquestion-list.questions-list.text-list
  > li.selector--inputondemand-list-item.row:not(.ls-hidden):not(.ls-irrelevant):not(.d-none):not(.ls-js-hidden) {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
}

.question-container.multiple-short-txt ul.ls-answers.subquestion-list.questions-list.text-list
  > li.answer-item.text-item.row:not(.d-none) > label.control-label,
.question-container ul.ls-answers.subquestion-list.questions-list.text-list
  > li.selector--inputondemand-list-item.row:not(.d-none) > label.control-label {
  flex: 0 0 var(--ls-multi-label-width, 240px) !important;
  width: var(--ls-multi-label-width, 240px) !important;
  max-width: none !important;
  text-align: left !important;
  margin-bottom: 0 !important;
  white-space: normal !important;
}

.question-container.multiple-short-txt ul.ls-answers.subquestion-list.questions-list.text-list
  > li.answer-item.text-item.row:not(.d-none) > div.col-12.col-md-8,
.question-container ul.ls-answers.subquestion-list.questions-list.text-list
  > li.selector--inputondemand-list-item.row:not(.d-none) > div.col-12.col-md-8 {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  display: flex !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

.question-container.multiple-short-txt ul.ls-answers textarea.form-control,
.question-container.multiple-short-txt ul.ls-answers input.form-control,
.question-container ul.ls-answers.subquestion-list.questions-list.text-list textarea.form-control,
.question-container ul.ls-answers.subquestion-list.questions-list.text-list input.form-control {
  text-align: left !important;
}

/* ==========================================================
   4) SUBHEADING ROWS ([[SubHeading]])
   ========================================================== */
.ls-subheader-row,
.ls-subheader-cell {
  background: #555 !important;
  color: #fff !important;
  font-weight: bold !important;
  text-align: center !important;
  pointer-events: none !important;
  cursor: default !important;
}

.ls-subheader-row .checkbox-label,
.ls-subheader-row .control-label {
  display: block !important;
  width: 100%;
  text-align: center !important;
  color: #fff !important;
  font-weight: bold !important;
  pointer-events: none !important;
  background: none !important;
  position: static !important;
}

.ls-subheader-cell {
  font-size: 1em;
  font-weight: bold !important;
  text-align: center !important;
  pointer-events: none !important;
}

.ls-subheader-row input,
.ls-subheader-row .checkbox,
.ls-subheader-row .radio,
.ls-subheader-row .form-check-input {
  display: none !important;
}

.ls-subheader-row .custom-checkbox,
.ls-subheader-row .form-check,
.ls-subheader-row span,
.ls-subheader-row .icheckbox,
.ls-subheader-row .pretty {
  display: none !important;
}

.ls-subheader-row label.checkbox-label:before,
.ls-subheader-row label.checkbox-label:after,
.ls-subheader-row label.control-label:before,
.ls-subheader-row label.control-label:after {
  display: none !important;
  content: none !important;
}

.ls-subheader-row .col-auto { padding-left: 0 !important; }

/* ==========================================================
   5) HIDE PSEUDO ELEMENTS helper
   ========================================================== */
.hide-pseudo-elements label::before,
.hide-pseudo-elements label::after {
  display: none !important;
  content: none !important;
}
.hide-pseudo-elements .label-text {
  margin-left: 0 !important;
  font-weight: bolder;
}

/* ==========================================================
   6) RANKING QUESTION LAYOUT (scoped)
   ========================================================== */
.question-container.ranking .ls-no-js-hidden.answers-list {
  display: flex !important;
  flex-direction: row !important;
  gap: 2%;
}
.ranking-available-items,
.ranking-sorted-items {
  flex: 1 1 0;
  min-width: 230px;
}

/* ==========================================================
   7) NPS LAYOUT + COLOURS
   ========================================================== */
.nps-wrapper .nps-table {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 0.25rem;
  padding: 0;
  margin: 0;
}
.nps-wrapper .nps-table > li.answer-item {
  list-style: none;
  flex: 1 1 0;
  margin: 0;
  text-align: center;
}
.nps-wrapper .nps-table > li.answer-item label {
  display: block;
  width: 100%;
}
.nps-wrapper .nps-table > li.answer-item label::before,
.nps-wrapper .nps-table > li.answer-item label::after {
  content: none !important;
  display: none !important;
}
.nps-wrapper .nps-table > li.answer-item {
  border: 0 !important;
  background: transparent !important;
}
.nps-wrapper .nps-table > li.answer-item:hover { background: transparent !important; }
.nps-wrapper .nps-table > li.answer-item label {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  text-shadow: none !important;
  font-weight: 600;
  border: 1px solid #cfd4da;
  border-top: 6px solid #cfd4da;
  border-radius: 0.25rem;
  background: #fff !important;
  cursor: pointer;
}
.nps-wrapper .nps-table > li.answer-item input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.nps-wrapper.show-colors .nps-table > li.item-0 label,
.nps-wrapper.show-colors .nps-table > li.item-1 label,
.nps-wrapper.show-colors .nps-table > li.item-2 label,
.nps-wrapper.show-colors .nps-table > li.item-3 label,
.nps-wrapper.show-colors .nps-table > li.item-4 label,
.nps-wrapper.show-colors .nps-table > li.item-5 label,
.nps-wrapper.show-colors .nps-table > li.item-6 label { border-top-color: #ff0000; }
.nps-wrapper.show-colors .nps-table > li.item-7 label,
.nps-wrapper.show-colors .nps-table > li.item-8 label { border-top-color: #e6d50e; }
.nps-wrapper.show-colors .nps-table > li.item-9 label,
.nps-wrapper.show-colors .nps-table > li.item-10 label { border-top-color: #008000; }
.nps-wrapper.show-colors .nps-table > li.item-0 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-1 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-2 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-3 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-4 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-5 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-6 input:checked + label {
  background: #ff0000 !important;
  border-color: #ff0000 !important;
  color: #fff !important;
}
.nps-wrapper.show-colors .nps-table > li.item-7 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-8 input:checked + label {
  background: #e6d50e !important;
  border-color: #e6d50e !important;
  color: #111 !important;
}
.nps-wrapper.show-colors .nps-table > li.item-9 input:checked + label,
.nps-wrapper.show-colors .nps-table > li.item-10 input:checked + label {
  background: #008000 !important;
  border-color: #008000 !important;
  color: #fff !important;
}
.nps-wrapper .nps-left-text,
.nps-wrapper .nps-right-text {
  font-size: 1.2em !important;
  font-weight: 900 !important;
  line-height: 1.2;
}

/* ==========================================================
   8) CAROUSEL HELPERS
   ========================================================== */
.ls-array-carousel table.ls-answers tr.answers-list > th.answertext {
  text-align: center;
  font-weight: 700;
  width: 100%;
}
.ls-array-carousel table.ls-answers tr.answers-list > th.answertext .control-label,
.ls-array-carousel table.ls-answers tr.answers-list > th.answertext label {
  display: block;
  text-align: center;
  font-weight: 700;
}
.ls-array-carousel .ls-carousel-scale {
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  margin: 8px 0 10px 0;
}
.ls-array-carousel .ls-carousel-scale .ls-carousel-scale-item {
  flex: 1 0 0;
  min-width: 44px;
  text-align: center;
  font-weight: 600;
}
.ls-array-carousel td.ls-carousel-scale-row {
  padding-left: 0;
  padding-right: 0;
}

/* ==========================================================
   9) LSNewRank styling (numeric-multi click-to-rank)
   ========================================================== */
.lsnewrank-hide-label > label { display: none; }

button.lsnewrank-btn {
  font-weight: bolder;
  width: 100%;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;

  font-size: 16px !important;
  border: 1px solid #000 !important;
  color: #000 !important;
  background: #fff !important;
}

button.lsnewrank-btn .lsnewrank-text {
  font-size: 16px !important;
  color: inherit !important;
}

button.lsnewrank-btn .lsnewrank-badge {
  font-size: 16px !important;
  background: #fff !important;
  color: #000 !important;
  border: 1px solid #000 !important;
  white-space: nowrap;
}

/* Selected */
button.lsnewrank-btn.btn-primary {
  background: #9d0636 !important;
  border-color: #000 !important;
  color: #fff !important;
}
button.lsnewrank-btn.btn-primary .lsnewrank-badge {
  background: #fff !important;
  color: #000 !important;
  border-color: #000 !important;
}

/* Hover */
button.lsnewrank-btn:hover,
button.lsnewrank-btn:focus {
  background: #000 !important;
  border-color: #000 !important;
  color: #fff !important;
}
button.lsnewrank-btn:hover .lsnewrank-badge,
button.lsnewrank-btn:focus .lsnewrank-badge {
  background: #fff !important;
  color: #000 !important;
  border-color: #000 !important;
}

/* ==========================================================
   10) ICON VISIBILITY + VERTICAL ALIGNMENT
   ========================================================== */

/* Robust checked indicator for lists (white when selected) */
.radio-item input[type="radio"]:checked + label::before,
.radio-item input[type="radio"]:checked ~ label::before {
  font-family: "FontAwesome" !important;
  content: "\f00c" !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #fff !important;
}
.checkbox-item input[type="checkbox"]:checked + label::before,
.checkbox-item input[type="checkbox"]:checked ~ label::before {
  font-family: "FontAwesome" !important;
  content: "\f046" !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #fff !important;
}

/* Center the icon vertically (use true center) */
td.answer-item.radio-item label,
td.answer-item.checkbox-item label,
li.radio-item label,
li.checkbox-item label {
  position: relative !important;
}
td.answer-item.radio-item label::before,
td.answer-item.checkbox-item label::before,
li.radio-item label::before,
li.checkbox-item label::before {
  top: 50% !important;
  transform: translateY(-50%) !important;
}

/* Array/matrix tables: selected indicator is #9d0636 */
table.ls-answers td.answer-item.radio-item input[type="radio"]:checked + label::before,
table.ls-answers td.answer-item.radio-item input[type="radio"]:checked ~ label::before,
table.ls-answers td.answer-item.checkbox-item input[type="checkbox"]:checked + label::before,
table.ls-answers td.answer-item.checkbox-item input[type="checkbox"]:checked ~ label::before {
  color: #9d0636 !important;
}

/* ==========================================================
   11) MISC
   ========================================================== */
.ls-answers.ls-heading th { hyphens: none; }
.text-item.other-text-item.col-auto { width: 50% !important; }

/* LSNewRank: always hide the underlying numeric inputs */
.question-container.numeric-multi .lsnewrank-input-hidden {
  display: none !important;
}

/* MaxDiff (maxDiffArrayV6): center the middle (subquestion) column text */
.max-diff-array table.ls-answers thead th:nth-child(2),
.max-diff-array table.ls-answers tbody th:nth-child(2),
.max-diff-array table.ls-answers tbody td:nth-child(2) {
  text-align: center !important;
  vertical-align: middle !important;
}

/* If the label inside is a <label> or <span>, ensure it centers too */
.max-diff-array table.ls-answers tbody th:nth-child(2) label,
.max-diff-array table.ls-answers tbody th:nth-child(2) .control-label,
.max-diff-array table.ls-answers tbody th:nth-child(2) span {
  display: block;
  text-align: center !important;
}

/* ==========================================================
   MOBILE FIX: Multiple short text should stack (label above input)
   Does NOT affect desktop/tablet (md+)
   ========================================================== */
@media (max-width: 767.98px) {

  /* Undo the "nowrap flex row" layout on mobile */
  .question-container.multiple-short-txt
    ul.ls-answers.subquestion-list.questions-list.text-list
    > li.answer-item.text-item.row:not(.ls-hidden):not(.ls-irrelevant):not(.d-none):not(.ls-js-hidden),
  .question-container
    ul.ls-answers.subquestion-list.questions-list.text-list
    > li.selector--inputondemand-list-item.row:not(.ls-hidden):not(.ls-irrelevant):not(.d-none):not(.ls-js-hidden) {
    display: block !important;          /* revert to normal block flow */
  }

  /* Ensure label and input container take full width */
  .question-container.multiple-short-txt
    ul.ls-answers.subquestion-list.questions-list.text-list
    > li.row > label.control-label,
  .question-container.multiple-short-txt
    ul.ls-answers.subquestion-list.questions-list.text-list
    > li.row > div.col-12.col-md-8 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* Full-width inputs */
  .question-container.multiple-short-txt
    ul.ls-answers.subquestion-list.questions-list.text-list
    input.form-control,
  .question-container.multiple-short-txt
    ul.ls-answers.subquestion-list.questions-list.text-list
    textarea.form-control {
    width: 100% !important;
  }
}

/************************************************************
  CBCEditor: CBC task styling (append-only)
  - Styles list-radio answers as "cards" using markup emitted
    by build_cbc_lss_grouped_dynamic.py (cbc-alt + cbc-task)
************************************************************/

/* Scope to CBC tasks only */
.question-container.cbc-task ul.ls-answers {
  margin: 0;
  padding: 0;
}

/* Each answer row */
.question-container.cbc-task li.answer-item.radio-item {
  border: 1px solid #cfd4da;
  border-radius: 8px;
  margin: 10px 0;
  overflow: hidden;
  background: #fff;
}

/* Keep hover subtle */
.question-container.cbc-task li.answer-item.radio-item:hover {
  background: #f7f7f7;
}

/* Remove heavy padding-left used by your "button list" styles for this special case */
.question-container.cbc-task .radio-list li label,
.question-container.cbc-task .radio-list li .label,
.question-container.cbc-task ul.ls-answers li label {
  padding-left: 15px !important;
  padding-right: 15px !important;
}

/* Title inside the answer HTML */
.question-container.cbc-task .cbc-alt-title {
  font-weight: 800;
  margin-bottom: 6px;
}

/* Attribute list */
.question-container.cbc-task .cbc-alt-levels {
  list-style: none;
  margin: 0;
  padding: 0;
}
.question-container.cbc-task .cbc-alt-levels li {
  margin: 0;
  padding: 2px 0;
}

/* None option (slightly different) */
.question-container.cbc-task .cbc-none .cbc-alt-title {
  font-weight: 800;
  color: #333;
}

/* When selected, keep your existing selected styling but ensure our inner HTML stays readable */
.question-container.cbc-task input[type="radio"]:checked + label .cbc-alt,
.question-container.cbc-task input[type="radio"]:checked + label .cbc-alt * {
  color: #fff !important;
}
/************************************************************
  CBCEditor: side-by-side option cards + hide radio icon
  Scope: questions with CSS class "cbc-task"
************************************************************/

/* Layout: cards in columns */
.question-container.cbc-task ul.ls-answers.radio-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  padding-left: 0 !important;
}

/* Each option card */
.question-container.cbc-task ul.ls-answers.radio-list > li.answer-item.radio-item {
  flex: 1 1 calc(33.333% - 12px); /* 3 columns by default */
  min-width: 240px;               /* prevents too-narrow cards */
  margin: 0 !important;
  border: 1px solid #cfd4da;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

/* 2 columns on medium screens */
@media (max-width: 1100px) {
  .question-container.cbc-task ul.ls-answers.radio-list > li.answer-item.radio-item {
    flex-basis: calc(50% - 12px);
  }
}

/* 1 column on mobile */
@media (max-width: 680px) {
  .question-container.cbc-task ul.ls-answers.radio-list > li.answer-item.radio-item {
    flex-basis: 100%;
    min-width: 0;
  }
}

/* Hide the radio icon/pseudo-element for these cards only */
.question-container.cbc-task .radio-item label::before,
.question-container.cbc-task .radio-item label::after {
  display: none !important;
  content: none !important;
}

/* Also hide the "radio label spacer" column if present */
.question-container.cbc-task .radio-item .ls-label-xs-visibility {
  width: 0 !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Ensure the label becomes the card body */
.question-container.cbc-task ul.ls-answers.radio-list > li.answer-item.radio-item label {
  display: block !important;
  padding: 14px 14px !important;
  margin: 0 !important;
  text-shadow: none !important;
  background: transparent !important;
}

/* Keep selection highlight (uses your existing checked styles), but ensure full-card color */
.question-container.cbc-task input[type="radio"]:checked + label {
  background-color: #9d0636 !important;
  opacity: 0.92;
}
.question-container.cbc-task input[type="radio"]:checked + label,
.question-container.cbc-task input[type="radio"]:checked + label * {
  color: #fff !important;
}
/************************************************************
  CBCEditor: FIX selected option background not changing
  - Some LS themes/markup variants don't match :checked + label
  - This adds multiple selectors (including :has where supported)
************************************************************/

/* Best-case: input immediately followed by label */
.question-container.cbc-task li.answer-item.radio-item input[type="radio"]:checked + label {
  background-color: #9d0636 !important;
  color: #fff !important;
}

/* Common LS variant: input then other nodes then label */
.question-container.cbc-task li.answer-item.radio-item input[type="radio"]:checked ~ label {
  background-color: #9d0636 !important;
  color: #fff !important;
}

/* Modern browsers: color the whole LI when it contains a checked radio */
.question-container.cbc-task li.answer-item.radio-item:has(input[type="radio"]:checked) {
  background-color: #9d0636 !important;
}

/* Ensure inner HTML stays readable when selected */
.question-container.cbc-task li.answer-item.radio-item:has(input[type="radio"]:checked) .cbc-alt,
.question-container.cbc-task li.answer-item.radio-item:has(input[type="radio"]:checked) .cbc-alt * {
  color: #fff !important;
}