
:root {
  --bs-body-font-size: 18px;
  --bs-font-size-base: 18px;
  --rptu-blue: #042c58;
  --rptu-light-blue: #6ab2e7;
  --rptu-red: #e31b4c;
  --bs-primary: #042c58;
  --bs-primary-rgb: 4, 44, 88;
  --bs-success: #042c58;
  --bs-success-rgb: 4, 44, 88;
  --bs-danger: #e31b4c;
  --bs-danger-rgb: 227, 27, 76;
  --bs-link-color: #6ab2e7;
  --bs-link-hover-color: #6ab2e7;
  --rptu-text: #444444;
  --rptu-muted: #6e748c;
  --rptu-border: #d7dee7;
  --rptu-shell: 1240px;
  --rptu-shell-pad: 12px;
  --rptu-title-grey: #6e748c;
  --rptu-question-bg: #ffffff;
  --rptu-shadow: 0 2px 10px rgba(4, 44, 88, 0.06);
}

html, body {
  background: #ffffff;
  font-size: 18px;
}

body {
  color: var(--rptu-text);
  font-size: var(--bs-body-font-size);
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
}

body > article {
  flex: 1;
}


body,
body p,
body li,
body td,
body th,
body label,
body input,
body select,
body textarea,
body button,
body .btn,
body .survey-name,
body .survey-name *,
body .survey-description,
body .survey-description *,
body .survey-welcome,
body .survey-welcome *,
body .privacy,
body .privacy *,
body .group-name,
body .group-name *,
body .question-container,
body .question-container *,
body [class*="submitwrapper"],
body [class*="submitwrapper"] *,
body [class*="completed"],
body [class*="completed"] *,
body [class*="quota"],
body [class*="quota"] *,
body .text-info,
body .text-info * {
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif;
}

p, li, td, th, label, .form-control, .form-select, .help-block, .questionhelp {
  font-size: 1rem;
}

p, li { line-height: 1.5; }

/* ---------------- Header ----------------*/
#survey-nav {
  background: #ffffff;
  border-bottom: 1px solid rgba(4, 44, 88, 0.12);
  box-shadow: 0 2px 10px rgba(4, 44, 88, 0.06);
  z-index: 1030;
}

#survey-nav .container-fluid,
.top-container .row > .col-12.col-xl-8,
#outerframeContainer .row > .col-centered.col-xl-8 {
  width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  max-width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  flex: 0 0 auto;
}

.rptu-header-shell {
  width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  max-width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  margin: 0 auto;
  padding: .65rem 0;
}

.rptu-header-grid {
  display: grid;
  grid-template-columns: minmax(160px, 250px) minmax(0,1fr) minmax(170px, 280px) auto;
  align-items: center;
  gap: .85rem;
}

.rptu-header-title {
  min-width: 0;
  text-align: center;
}

.rptu-survey-title {
  margin: 0;
  color: var(--rptu-title-grey);
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif;
  font-size: clamp(1rem, .82rem + .4vw, 1.2rem);
  line-height: 1.3;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.rptu-logo-wrap {
  display: flex;
  align-items: center;
}

.rptu-logo-wrap.rptu-right {
  justify-content: flex-end;
}

.rptu-logo-left,
.rptu-logo-right {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}

.rptu-logo-left { max-height: 56px; }
.rptu-logo-right { max-height: 56px; }

#navbar-toggler,
.navbar-toggler {
  border: 1px solid rgba(4, 44, 88, 0.2);
  background: #ffffff;
  color: var(--rptu-blue);
  box-shadow: none;
}

#navbar-toggler:hover,
#navbar-toggler:focus,
.navbar-toggler:hover,
.navbar-toggler:focus {
  border-color: var(--rptu-light-blue);
  background: rgba(106, 178, 231, 0.12);
  color: var(--rptu-blue);
  box-shadow: none;
}

#main-dropdown {
  border-color: rgba(4, 44, 88, 0.15);
  box-shadow: 0 16px 32px rgba(4, 44, 88, 0.12);
}

/* ---------------- Layout width ----------------*/
#outerframeContainer { min-height: 88%; }
.top-container { margin-top: .3rem; }
#outerframeContainer > .row,
.top-container > .row { margin-inline: 0; }
#outerframeContainer { padding-inline: 0; }

/* ---------------- Progress ----------------*/
#progressbar-top {
  padding-top: .1rem;
}

.rptu-progress-line {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .75rem;
  margin-bottom: .3rem;
}

.rptu-progress-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.8rem;
  height: 1.45rem;
  padding: 0 .45rem;
  border-radius: .35rem;
  background: var(--rptu-blue);
  color: #ffffff;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
}

#progressbar-top .progress {
  height: .65rem;
  border-radius: 999px;
  background-color: #dfe6ee;
  box-shadow: none;
}

#progressbar-top .progress-bar,
#progressbar-top .bar {
  background: var(--rptu-blue);
  box-shadow: none;
}

/* ---------------- Welcome page ----------------*/
.survey-name,
.survey-name.h1,
h1.survey-name,
#welcome-container .survey-name {
  color: var(--rptu-blue);
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif !important;
  font-weight: 700;
  margin-bottom: 1rem !important;
  padding-bottom: 0 !important;
  text-align: left;
}

#welcome-container,
#welcome-jumbotron,
.survey-welcome,
#description,
.welcome-item,
#welcome-container .text-info {
  max-width: none;
}

#welcome-container {
  padding-bottom: 1rem;
}

.question-count-text {
  display: none !important;
}

.survey-description,
.survey-welcome {
  margin-bottom: 1rem !important;
}

.privacy {
  margin-top: 1rem;
  color: var(--rptu-text);
  font-size: .95rem;
}

/* ---------------- Privacy / help ----------------*/
.privacy .ls-privacy-head,
.privacy #datasecurity_notice_label,
#ebzd {
  color: var(--rptu-text);
  font-weight: 500;
}

.help-block,
.questionhelp,
.ls-questionhelp,
.question-container .question-help-container,
.text-muted {
  color: #000000 !important;
}

/* ---------------- Typography in content ----------------*/
.question-container .ls-label-question,
.question-container .question-number,
.question-container .question-code,
.question-container .asterisk,
.question-container .fa-asterisk,
.ls-label-question,
.group-name h2,
.group-title {
  color: var(--rptu-blue);
}

.question-container .ls-label-question,
.ls-label-question {
  font-weight: 700;
}

.question-container .asterisk,
.question-container .fa-asterisk,
.text-danger.asterisk,
.fa-asterisk {
  color: var(--rptu-blue) !important;
  padding-right: 2px;
}

.answer-item label,
.answertext,
.ls-answers th,
.ls-answers td,
.form-check-label,
.table {
  color: var(--rptu-text);
}


body .answer-item label::after,
.checkbox-item input[type="checkbox"]:checked + label::after,
.checkbox-item input[type="radio"]:checked + label::after {
  background-color: var(--rptu-blue);
  color: #ffffff;
}

.form-check-input,
input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--rptu-blue);
  transition: none !important;
  -webkit-tap-highlight-color: transparent;
}

.form-check-input:checked,
.form-check-input[type=checkbox]:checked {
  background-color: var(--rptu-blue);
  border-color: var(--rptu-blue);
}

.form-check-input[type=radio]:checked,
input[type="radio"]:checked {
  background-color: #ffffff;
  border-color: var(--rptu-blue);
  background-image: radial-gradient(circle, var(--rptu-blue) 0 38%, transparent 40%);
}

.form-check-input:checked ~ .form-check-label,
.form-check-input:checked + .form-check-label,
input[type="checkbox"]:checked + label,
input[type="radio"]:checked + label {
  color: var(--rptu-blue);
}

select option:checked,
select option[selected] {
  background: var(--rptu-blue);
  color: #ffffff;
}


/* ---------------- Interactive selection questions ----------------*/
.question-container .btn-check + .btn,
.question-container .list-group-item,
.question-container .list-group-item-action,
.question-container .list-group-item-success,
.question-container .btn-outline-primary,
.question-container .btn-outline-secondary,
.question-container .btn-outline-success {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  min-height: 2.5rem;
  padding: .5rem .9rem;
  border: 1px solid var(--rptu-blue) !important;
  border-radius: .375rem;
  background: #ffffff !important;
  color: var(--rptu-blue) !important;
  font-weight: 400 !important;
  line-height: 1.35;
  box-shadow: none !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.question-container .btn-check + .btn *,
.question-container .list-group-item *,
.question-container .list-group-item-action *,
.question-container .list-group-item-success *,
.question-container .btn-outline-primary *,
.question-container .btn-outline-secondary *,
.question-container .btn-outline-success * {
  color: inherit !important;
}

.question-container .btn-check + .btn:hover,
.question-container .btn-check + .btn:focus,
.question-container .btn-check + .btn:focus-visible,
.question-container .btn-check + .btn:active,
.question-container .list-group-item:hover,
.question-container .list-group-item:focus,
.question-container .list-group-item:focus-visible,
.question-container .list-group-item:active,
.question-container .list-group-item-success:hover,
.question-container .list-group-item-success:focus,
.question-container .list-group-item-success:focus-visible,
.question-container .btn-outline-primary:hover,
.question-container .btn-outline-primary:focus,
.question-container .btn-outline-primary:focus-visible,
.question-container .btn-outline-secondary:hover,
.question-container .btn-outline-secondary:focus,
.question-container .btn-outline-secondary:focus-visible,
.question-container .btn-outline-success:hover,
.question-container .btn-outline-success:focus,
.question-container .btn-outline-success:focus-visible,
.question-container .btn-check:checked + .btn,
.question-container .btn-check:active + .btn,
.question-container .btn-check:checked + .btn-outline-primary,
.question-container .btn-check:checked + .btn-outline-secondary,
.question-container .btn-check:checked + .btn-outline-success,
.question-container .list-group-item.active,
.question-container .list-group-item.active:hover,
.question-container .list-group-item.active:focus,
.question-container .list-group-item-success.active,
.question-container .list-group-item-success.active:hover,
.question-container .list-group-item-success.active:focus {
  background: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.question-container .btn-check + .btn:focus-visible,
.question-container .list-group-item:focus-visible,
.question-container .btn-outline-primary:focus-visible,
.question-container .btn-outline-secondary:focus-visible,
.question-container .btn-outline-success:focus-visible {
  outline: 2px solid rgba(106, 178, 231, .65);
  outline-offset: 1px;
}

.question-container .btn-check:disabled + .btn,
.question-container .btn.disabled,
.question-container .list-group-item.disabled,
.question-container .btn-outline-primary.disabled,
.question-container .btn-outline-secondary.disabled,
.question-container .btn-outline-success.disabled {
  opacity: .65;
  cursor: not-allowed;
}

/* Ranking questions*/
.question-container [class*="rank"] .list-group,
.question-container [class*="ranking"] .list-group,
.question-container [class*="rank"] ul,
.question-container [class*="ranking"] ul,
.question-container .ui-sortable,
.question-container .sortable,
.question-container .ranking {
  margin: .5rem 0 0;
  padding: .35rem;
  border: 1px solid var(--rptu-border);
  border-radius: .5rem;
  background: #f9fbfd;
  box-shadow: none;
}

.question-container [class*="rank"] li,
.question-container [class*="ranking"] li,
.question-container [class*="rank"] .list-group-item,
.question-container [class*="ranking"] .list-group-item,
.question-container .ui-sortable .ui-state-default,
.question-container .sortable .ui-state-default,
.question-container .sortable .list-group-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  min-height: 2.6rem;
  margin: 0 0 .45rem;
  padding: .65rem .8rem;
  border: 1px solid var(--rptu-blue) !important;
  border-radius: .45rem;
  background: #ffffff !important;
  color: var(--rptu-blue) !important;
  box-shadow: none !important;
  cursor: grab;
}

.question-container [class*="rank"] li:last-child,
.question-container [class*="ranking"] li:last-child,
.question-container .sortable .list-group-item:last-child,
.question-container .ui-sortable .ui-state-default:last-child {
  margin-bottom: 0;
}

.question-container [class*="rank"] .ui-sortable-placeholder,
.question-container [class*="ranking"] .ui-sortable-placeholder,
.question-container .sortable .ui-sortable-placeholder,
.question-container .ui-sortable .ui-sortable-placeholder {
  visibility: visible !important;
  min-height: 2.6rem;
  margin-bottom: .45rem;
  border: 1px dashed var(--rptu-light-blue) !important;
  border-radius: .45rem;
  background: rgba(106, 178, 231, .08) !important;
}

.question-container [class*="rank"] .ui-sortable-helper,
.question-container [class*="ranking"] .ui-sortable-helper,
.question-container .sortable .ui-sortable-helper,
.question-container .ui-sortable .ui-sortable-helper {
  box-shadow: 0 6px 18px rgba(4, 44, 88, .12) !important;
}

/* File upload questions*/
.question-container input[type="file"],
.question-container .form-control[type="file"],
.question-container [class*="upload"] input[type="file"],
.question-container .ls-file-upload input[type="file"] {
  width: 100%;
  border: 1px solid var(--rptu-blue) !important;
  border-radius: .375rem;
  background: #ffffff;
  color: var(--rptu-blue) !important;
  padding: .35rem;
  box-shadow: none !important;
}

.question-container input[type="file"]::file-selector-button,
.question-container .form-control[type="file"]::file-selector-button,
.question-container [class*="upload"] input[type="file"]::file-selector-button,
.question-container .ls-file-upload input[type="file"]::file-selector-button {
  margin-right: .75rem;
  padding: .48rem .85rem;
  border: 1px solid var(--rptu-blue);
  border-radius: .3rem;
  background: var(--rptu-blue);
  color: #ffffff;
  font-weight: 400;
  box-shadow: none;
}

.question-container [class*="upload"] .uploaded-files,
.question-container [class*="upload"] .uploadedfiles,
.question-container [class*="upload"] .files-list,
.question-container .ls-file-upload .uploaded-files,
.question-container .ls-file-upload .uploadedfiles,
.question-container .ls-file-upload .files-list {
  margin-top: .75rem;
}

.question-container [class*="upload"] .uploaded-files li,
.question-container [class*="upload"] .uploadedfiles li,
.question-container [class*="upload"] .files-list li,
.question-container .ls-file-upload .uploaded-files li,
.question-container .ls-file-upload .uploadedfiles li,
.question-container .ls-file-upload .files-list li,
.question-container [class*="upload"] .list-group-item,
.question-container .ls-file-upload .list-group-item {
  margin-bottom: .45rem;
  padding: .6rem .75rem;
  border: 1px solid var(--rptu-border) !important;
  border-left: 4px solid var(--rptu-blue) !important;
  border-radius: .375rem;
  background: #ffffff !important;
  color: var(--rptu-text) !important;
  justify-content: flex-start;
}

.question-container [class*="upload"] .progress,
.question-container .ls-file-upload .progress {
  height: .55rem;
  margin-top: .6rem;
  border-radius: 999px;
  background: #dfe6ee;
}

.question-container [class*="upload"] .progress-bar,
.question-container .ls-file-upload .progress-bar {
  background: var(--rptu-blue) !important;
  box-shadow: none;
}

/* No hover color on matrix questions*/
.ls-answers tbody tr:hover > *,
.ls-answers tbody tr:focus-within > *,
.array-flexible-row:hover > *,
.array-flexible-row:focus-within > *,
.table-hover > tbody > tr:hover > * {
  background-color: inherit !important;
}

.numeric-item input[data-number='1'] { text-align: left; }

/* ---------------- Inputs and states ----------------*/
input[type="checkbox"],
input[type="radio"],
.form-check-input {
  accent-color: var(--rptu-blue);
}

.form-check-input:checked,
.form-check-input[type=checkbox]:checked,
.form-check-input[type=radio]:checked {
  background-color: var(--rptu-blue);
  border-color: var(--rptu-blue);
}

.form-check-input:focus,
.form-control:focus,
.form-select:focus,
textarea:focus,
input:focus {
  border-color: var(--rptu-light-blue);
  box-shadow: 0 0 0 .18rem rgba(106, 178, 231, 0.25);
}

.radio-item .form-check,
.checkbox-item .form-check,
.answer-item .form-check {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
}

.radio-item .form-check-input,
.checkbox-item .form-check-input,
.answer-item .form-check-input,
.radio-item input[type="radio"],
.checkbox-item input[type="checkbox"] {
  margin-top: .22rem;
  flex: 0 0 auto;
}

.radio-item label,
.checkbox-item label,
.answer-item label,
.form-check-label {
  margin-left: .45rem;
}

.answer-item label img,
.answer-item .form-check-label img,
.radio-item label img,
.radio-item .form-check-label img,
.checkbox-item label img,
.checkbox-item .form-check-label img {
  display: inline-block;
  vertical-align: middle;
  margin-left: .35rem;
}

.form-select,
.form-control,
textarea,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"] {
  border-color: var(--rptu-border);
}

.form-change-lang #language-changer-select,
.form-change-lang .language-icon,
.form-change-lang .control-label {
  color: var(--rptu-blue);
}

/* ---------------- Buttons ----------------*/
.btn,
button.btn {
  border-radius: .3rem;
  font-weight: 600;
}

.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
button[type="submit"],
button[name="move"],
#ls-button-submit,
#ls-button-next,
#ls-button-previous,
#saveallbtn,
#clearall,
#ls-button-load,
#ls-button-resume {
  background-color: var(--rptu-blue);
  border-color: var(--rptu-blue);
  color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
button[type="submit"]:hover,
button[type="submit"]:focus,
#ls-button-submit:hover,
#ls-button-next:hover,
#ls-button-previous:hover,
#saveallbtn:hover,
#clearall:hover {
  background-color: var(--rptu-blue);
  border-color: var(--rptu-blue);
  color: #ffffff;
  box-shadow: none;
}

.btn-outline-secondary,
.btn-default {
  color: var(--rptu-blue);
  border-color: var(--rptu-light-blue);
}

.btn-outline-secondary:hover,
.btn-default:hover {
  background: rgba(106, 178, 231, 0.14);
  color: var(--rptu-blue);
  border-color: var(--rptu-light-blue);
}

/* ---------------- Validation ----------------*/
.text-danger,
.help-block.text-danger,
.question-valid-container .text-danger,
.question-container .text-danger,
.ls-question-message,
.invalid-feedback,
.em_error {
  color: var(--rptu-red);
}

.question-container .rptu-error-box,
.question-container .rptu-error-box.text-danger,
.question-container .rptu-error-box.help-block,
.question-container .rptu-error-box.invalid-feedback,
.question-container .rptu-error-box.ls-question-message,
.question-container .rptu-error-box.em_error {
  display: block;
  background: var(--rptu-red);
  color: #ffffff !important;
  border: 1px solid var(--rptu-red);
  border-radius: .25rem;
  padding: .5rem .75rem;
  margin-top: .5rem;
  font-weight: 600;
}

.question-container .rptu-error-box * {
  color: #ffffff !important;
}

.is-invalid,
.form-control.is-invalid,
.form-select.is-invalid,
.was-validated .form-control:invalid,
.was-validated .form-select:invalid,
.was-validated .form-check-input:invalid,
.form-check-input.is-invalid {
  border-color: var(--rptu-red);
  box-shadow: none;
}

.has-error .form-control,
.has-error .form-select,
.has-error input,
.has-error textarea,
.has-error .form-check-input,
.input-error .form-control,
.input-error input,
.input-error textarea,
.input-error select,
.input-error .form-check-input {
  border-color: var(--rptu-red);
  box-shadow: none;
}

.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.input-error .help-block,
.input-error .control-label {
  color: var(--rptu-red);
}

.fruity_twentythree .alert-danger,
.alert-danger,
.alert-danger hr,
.alert-danger .alert-link {
  color: var(--rptu-red);
  border-color: var(--rptu-red);
  background: transparent;
}

/* ---------------- Survey list ----------------*/
.rptu-list-shell {
  width: min(1040px, calc(100vw - 2rem));
  margin: 0 auto;
}

.rptu-list-header {
  display: grid;
  grid-template-columns: minmax(160px, 250px) minmax(0, 1fr) minmax(170px, 280px);
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0 1rem;
}

.rptu-list-header .rptu-logo-left { max-height: 58px; }
.rptu-list-header .rptu-logo-right { max-height: 58px; }

.rptu-list-site-title {
  text-align: center;
  color: var(--rptu-title-grey);
  font-weight: 600;
  font-size: 1.15rem;
}

#surveys-list-container { margin-top: 0; }
#surveyListFooter { display: none !important; }

.surveys-list .btn,
.surveytitle.btn {
  margin-bottom: .9rem;
}

.rptu-support-line {
  color: var(--rptu-text);
  margin-top: 1rem;
}

.rptu-support-line a {
  color: var(--rptu-blue);
}

/* ---------------- Completion / end page ----------------*/
[class*="submitwrapper"],
[class*="submitwrapper"] *,
[class*="completed"],
[class*="completed"] *,
.completed-wrapper,
.completed-text {
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif !important;
}

/* ---------------- Error page ----------------*/
.error-page {
  background: #ffffff;
}

.rptu-error-shell {
  width: min(900px, calc(100vw - 2rem));
  margin: 1.5rem auto 2rem;
}

.rptu-error-header {
  display: grid;
  grid-template-columns: minmax(160px, 250px) minmax(0, 1fr) minmax(170px, 280px);
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.rptu-error-title {
  color: var(--rptu-blue);
  font-weight: 700;
  margin-bottom: 1rem;
}

.error-link,
.rptu-error-shell a {
  color: var(--rptu-blue);
}

/* ---------------- Responsive ----------------*/
@media (max-width: 991.98px) {
  .rptu-header-grid {
    grid-template-columns: 1fr auto;
    row-gap: .5rem;
  }

  .rptu-logo-wrap.rptu-left {
    grid-column: 1 / 2;
    grid-row: 1;
  }

  .rptu-logo-wrap.rptu-right {
    grid-column: 1 / 2;
    grid-row: 2;
    justify-content: flex-start;
  }

  .rptu-header-title {
    grid-column: 1 / 2;
    grid-row: 3;
    text-align: left;
  }

  .rptu-header-menu {
    grid-column: 2 / 3;
    grid-row: 1 / span 3;
    justify-self: end;
    align-self: start;
  }

  .rptu-list-header,
  .rptu-error-header {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .rptu-list-header .rptu-logo-wrap,
  .rptu-error-header .rptu-logo-wrap {
    justify-content: center !important;
  }
}

@media (max-width: 767.98px) {
  #survey-nav .container-fluid,
  .top-container .row > .col-12.col-xl-8,
  #outerframeContainer .row > .col-centered.col-xl-8,
  .rptu-header-shell {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
  }

  .question-container .question-title-container,
  .question-container .question-help-container,
  .question-container .question-valid-container,
  .question-container .question-content {
    padding-left: .8rem;
    padding-right: .8rem;
  }
}


/* -------- V6 refinements --------*/
body,
#outerframeContainer,
.top-container,
.group-outer-container,
#limesurvey,
#welcome-container,
#completed,
[class*="completedwrapper"],
[class*="completedtext"],
.submit-by,
.submit-wrapper,
.survey-welcome,
.survey-description,
.privacy,
.question-container,
.question-outer-container {
  background-color: #ffffff !important;
}

.survey-welcome,
.survey-description,
[class*="completedtext"],
.completed-text,
.completed-wrapper {
  color: var(--rptu-blue) !important;
}

/* Completion and end page buttons should still keep button colors*/
[class*="completedtext"] .btn,
.completed-text .btn,
.completed-wrapper .btn,
.survey-welcome .btn,
.survey-description .btn {
  color: var(--rptu-blue) !important;
}

/* Keep privacy/help text readable and black where requested*/
.privacy,
.privacy *,
.help-block,
.questionhelp,
.ls-questionhelp,
.question-container .question-help-container,
.text-muted {
  color: #000000 !important;
}

/* Default selected controls across question types*/
.answer-item input[type="radio"]:checked,
.answer-item input[type="checkbox"]:checked,
.radio-item input[type="radio"]:checked,
.checkbox-item input[type="checkbox"]:checked,
.radio-list input[type="radio"]:checked,
.checkbox-list input[type="checkbox"]:checked {
  accent-color: var(--rptu-blue);
}

.answer-item .form-check-input:checked ~ label,
.answer-item .form-check-input:checked ~ .form-check-label,
.radio-item .form-check-input:checked ~ label,
.radio-item .form-check-input:checked ~ .form-check-label,
.checkbox-item .form-check-input:checked ~ label,
.checkbox-item .form-check-input:checked ~ .form-check-label {
  color: var(--rptu-blue) !important;
}

/* Matrix questions: no hover color at all*/
.array-flexible-row:hover,
.array-flexible-row:focus-within,
.ls-answers tbody tr:hover,
.ls-answers tbody tr:focus-within {
  background-color: transparent !important;
}
.array-flexible-row:hover > th,
.array-flexible-row:hover > td,
.array-flexible-row:focus-within > th,
.array-flexible-row:focus-within > td,
.ls-answers tbody tr:hover > th,
.ls-answers tbody tr:hover > td,
.ls-answers tbody tr:focus-within > th,
.ls-answers tbody tr:focus-within > td {
  background-color: inherit !important;
}

/* White survey shell*/
main, .mainrow, .survey-main, .survey-form-container {
  background: #ffffff;
}


/* -------- V7 hard blue cleanup --------*/
:root {
  --rptu-blue: #042c58;
  --rptu-light-blue: #6ab2e7;
  --bs-primary: #042c58;
  --bs-primary-rgb: 4, 44, 88;
  --bs-success: #042c58;
  --bs-success-rgb: 4, 44, 88;
  --bs-link-color: #6ab2e7;
  --bs-link-hover-color: #6ab2e7;
}

html, body, #limesurvey, #outerframeContainer, .top-container, .group-outer-container, .question-container, .survey-main, main, article {
  background-color: #ffffff !important;
}

/* Remove every remaining green/success tone in survey UI*/
.text-success,
.help-block.text-success,
.valid-feedback,
.alert-success,
.alert-success *,
.bg-success,
.badge.bg-success,
.badge.text-bg-success,
.border-success,
.table-success,
.list-group-item-success,
.progress-bar.bg-success,
.btn-success,
.btn-outline-success,
.was-validated .form-control:valid,
.was-validated .form-select:valid,
.was-validated .form-check-input:valid,
.form-control.is-valid,
.form-select.is-valid,
.form-check-input.is-valid {
  color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

.alert-success,
.bg-success,
.badge.bg-success,
.badge.text-bg-success,
.list-group-item-success,
.progress-bar.bg-success,
.btn-success,
.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active,
.btn-outline-success.active,
.btn-check:checked + .btn-outline-success {
  background-color: var(--rptu-blue) !important;
  color: #ffffff !important;
}

/* All regular action buttons dark blue*/
.btn,
button.btn,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-secondary,
.btn-default,
.btn-outline-secondary,
.btn-outline-primary,
button[type="submit"],
button[name="move"],
#ls-button-submit,
#ls-button-next,
#ls-button-previous,
#saveallbtn,
#clearall,
#ls-button-load,
#ls-button-resume,
.surveys-list .btn,
.surveytitle.btn {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: #ffffff !important;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn.show,
button.btn:hover,
button.btn:focus,
button.btn:active,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active,
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
button[type="submit"]:hover,
button[type="submit"]:focus,
#ls-button-submit:hover,
#ls-button-next:hover,
#ls-button-previous:hover,
#saveallbtn:hover,
#clearall:hover,
#ls-button-load:hover,
#ls-button-resume:hover {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: #ffffff !important;
  box-shadow: none !important;
  filter: brightness(0.95);
}


/* Inputs and checked states*/
.form-check-input,
input[type="checkbox"],
input[type="radio"],
.form-switch .form-check-input {
  accent-color: var(--rptu-blue) !important;
}

.form-check-input:checked,
.form-check-input[type=checkbox]:checked,
.form-check-input[type=radio]:checked,
input[type="checkbox"]:checked,
input[type="radio"]:checked,
.form-switch .form-check-input:checked {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

.form-check-input:focus,
.form-control:focus,
.form-select:focus,
textarea:focus,
input:focus {
  border-color: var(--rptu-blue) !important;
  box-shadow: 0 0 0 .18rem rgba(4, 44, 88, 0.18) !important;
}

/* Selected answer text*/
.form-check-input:checked ~ .form-check-label,
.form-check-input:checked + .form-check-label,
input[type="checkbox"]:checked + label,
input[type="radio"]:checked + label,
.answer-item .form-check-input:checked ~ label,
.answer-item .form-check-input:checked ~ .form-check-label,
.radio-item .form-check-input:checked ~ label,
.radio-item .form-check-input:checked ~ .form-check-label,
.checkbox-item .form-check-input:checked ~ label,
.checkbox-item .form-check-input:checked ~ .form-check-label,
select option:checked,
select option[selected] {
  color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

select option:checked,
select option[selected] {
  background: var(--rptu-blue) !important;
  color: #ffffff !important;
}

/* Matrix: absolutely no hover tint*/
.ls-answers tbody tr:hover,
.ls-answers tbody tr:focus-within,
.array-flexible-row:hover,
.array-flexible-row:focus-within,
.table-hover > tbody > tr:hover {
  background-color: transparent !important;
}

.ls-answers tbody tr:hover > *,
.ls-answers tbody tr:focus-within > *,
.array-flexible-row:hover > *,
.array-flexible-row:focus-within > *,
.table-hover > tbody > tr:hover > * {
  background-color: inherit !important;
}

/* Help texts black*/
.help-block,
.questionhelp,
.ls-questionhelp,
.question-container .question-help-container,
.text-muted {
  color: #000000 !important;
}

/* Welcome/end messages dark blue*/
.survey-welcome, .survey-description,
[class*="completedtext"], .completed-text, .completed-wrapper {
  color: var(--rptu-blue) !important;
}


/* ---------------- V8 no-green overrides ----------------*/
.text-success,
.valid-feedback,
.valid-tooltip,
.border-success,
.alert-success,
.alert-success .alert-link,
.bg-success,
.badge.bg-success,
.table-success,
.list-group-item-success,
.btn-success,
.btn-outline-success {
  color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

.bg-success,
.badge.bg-success,
.alert-success,
.btn-success,
.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active {
  background-color: var(--rptu-blue) !important;
  color: #ffffff !important;
}

.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .form-select:valid,
.form-select.is-valid,
.was-validated textarea.form-control:valid,
textarea.form-control.is-valid,
.was-validated .form-check-input:valid,
.form-check-input.is-valid,
.was-validated input:valid,
input.is-valid,
.was-validated select:valid,
select.is-valid,
.was-validated textarea:valid,
textarea.is-valid {
  border-color: var(--rptu-blue) !important;
}

.was-validated .form-control:valid:focus,
.form-control.is-valid:focus,
.was-validated .form-select:valid:focus,
.form-select.is-valid:focus,
.was-validated textarea.form-control:valid:focus,
textarea.form-control.is-valid:focus,
.was-validated .form-check-input:valid:focus,
.form-check-input.is-valid:focus,
.was-validated input:valid:focus,
input.is-valid:focus,
.was-validated select:valid:focus,
select.is-valid:focus,
.was-validated textarea:valid:focus,
textarea.is-valid:focus {
  border-color: var(--rptu-blue) !important;
  box-shadow: 0 0 0 0.25rem rgba(4, 44, 88, 0.25) !important;
}

.was-validated .form-check-input[type="checkbox"]:valid:checked,
.form-check-input[type="checkbox"].is-valid:checked,
.was-validated input[type="checkbox"]:valid:checked,
input[type="checkbox"].is-valid:checked {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

.was-validated .form-check-input[type="radio"]:valid:checked,
.form-check-input[type="radio"].is-valid:checked,
.was-validated input[type="radio"]:valid:checked,
input[type="radio"].is-valid:checked {
  background-color: #ffffff !important;
  border-color: var(--rptu-blue) !important;
  background-image: radial-gradient(circle, var(--rptu-blue) 0 38%, transparent 40%) !important;
}

.was-validated .form-check-input:valid ~ .form-check-label,
.form-check-input.is-valid ~ .form-check-label,
.was-validated input[type="checkbox"]:valid + label,
input[type="checkbox"].is-valid + label,
.was-validated input[type="radio"]:valid + label,
input[type="radio"].is-valid + label,
.was-validated .form-check-input:valid + .form-check-label,
.form-check-input.is-valid + .form-check-label {
  color: var(--rptu-blue) !important;
}

.was-validated .form-select:valid,
.form-select.is-valid {
  background-image:
    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),
    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23042c58' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") !important;
}

.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated textarea.form-control:valid,
textarea.form-control.is-valid,
.was-validated input:valid,
input.is-valid,
.was-validated textarea:valid,
textarea.is-valid {
  background-image: none !important;
  padding-right: 0.75rem !important;
}

/* ---------------- V9 mandatory error box hardening ----------------*/
.question-valid-container .rptu-error-box,
.question-valid-container .rptu-error-box.text-danger,
.question-valid-container .rptu-error-box.help-block,
.question-valid-container .rptu-error-box.invalid-feedback,
.question-valid-container .rptu-error-box.ls-question-message,
.question-valid-container .rptu-error-box.em_error,
.question-valid-container .alert-danger.rptu-error-box,
.question-valid-container .alert.rptu-error-box {
  display: block !important;
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border: 1px solid var(--rptu-red) !important;
  border-radius: .25rem !important;
  padding: .5rem .75rem !important;
  margin-top: .5rem !important;
  font-weight: 600 !important;
}

.question-valid-container .rptu-error-box *,
.question-valid-container .alert-danger.rptu-error-box *,
.question-valid-container .alert.rptu-error-box * {
  color: #ffffff !important;
}

.has-error .help-block:not(.rptu-error-box),
.has-error .control-label:not(.rptu-error-box),
.input-error .help-block:not(.rptu-error-box),
.input-error .control-label:not(.rptu-error-box),
.question-valid-container .text-danger:not(.rptu-error-box),
.question-valid-container .help-block.text-danger:not(.rptu-error-box),
.question-valid-container .invalid-feedback:not(.rptu-error-box),
.question-valid-container .ls-question-message:not(.rptu-error-box),
.question-valid-container .em_error:not(.rptu-error-box) {
  color: var(--rptu-red) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}


/* ---------------- V10 hard overrides for no-green + required-error boxes ----------------*/
:root, body, .ls-theme, .fruity_twentythree, .question-container {
  --bs-success: #042c58 !important;
  --bs-success-rgb: 4, 44, 88 !important;
  --bs-form-valid-color: #042c58 !important;
  --bs-form-valid-border-color: #042c58 !important;
}

/* Remove remaining green native/control states*/
.question-container .form-check-input,
.question-container input[type="checkbox"],
.question-container input[type="radio"],
.ls-answers .form-check-input,
.ls-answers input[type="checkbox"],
.ls-answers input[type="radio"] {
  accent-color: #042c58 !important;
  border-color: #042c58 !important;
}

.question-container .form-check-input[type="checkbox"]:checked,
.question-container input[type="checkbox"]:checked,
.ls-answers .form-check-input[type="checkbox"]:checked,
.ls-answers input[type="checkbox"]:checked,
.was-validated .question-container .form-check-input[type="checkbox"]:valid:checked,
.question-container .form-check-input[type="checkbox"].is-valid:checked,
.was-validated .ls-answers .form-check-input[type="checkbox"]:valid:checked,
.ls-answers .form-check-input[type="checkbox"].is-valid:checked {
  background-color: #042c58 !important;
  border-color: #042c58 !important;
  box-shadow: none !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M4 10.5l4 4 8-9'/%3e%3c/svg%3e") !important;
}

.question-container .form-check-input[type="radio"]:checked,
.question-container input[type="radio"]:checked,
.ls-answers .form-check-input[type="radio"]:checked,
.ls-answers input[type="radio"]:checked,
.was-validated .question-container .form-check-input[type="radio"]:valid:checked,
.question-container .form-check-input[type="radio"].is-valid:checked,
.was-validated .ls-answers .form-check-input[type="radio"]:valid:checked,
.ls-answers .form-check-input[type="radio"].is-valid:checked {
  background-color: #ffffff !important;
  border-color: #042c58 !important;
  box-shadow: none !important;
  background-image: radial-gradient(circle, #042c58 0 38%, transparent 40%) !important;
}

.question-container .form-check-input.is-valid,
.question-container .form-check-input:valid,
.question-container input.is-valid,
.question-container input:valid,
.question-container select.is-valid,
.question-container select:valid,
.question-container textarea.is-valid,
.question-container textarea:valid,
.was-validated .question-container .form-check-input:valid,
.was-validated .question-container input:valid,
.was-validated .question-container select:valid,
.was-validated .question-container textarea:valid,
.ls-answers .form-check-input.is-valid,
.ls-answers .form-check-input:valid,
.was-validated .ls-answers .form-check-input:valid {
  border-color: #042c58 !important;
  color: #042c58 !important;
  box-shadow: none !important;
}

.question-container .text-success,
.question-container .valid-feedback,
.question-container .valid-tooltip,
.question-container .border-success,
.ls-answers .text-success,
.ls-answers .valid-feedback,
.ls-answers .valid-tooltip,
.ls-answers .border-success {
  color: #042c58 !important;
  border-color: #042c58 !important;
}

/* Selected labels always dark blue*/
.question-container .answer-item input[type="radio"]:checked ~ label,
.question-container .answer-item input[type="checkbox"]:checked ~ label,
.question-container .answer-item input[type="radio"]:checked + label,
.question-container .answer-item input[type="checkbox"]:checked + label,
.question-container .radio-item input[type="radio"]:checked ~ label,
.question-container .checkbox-item input[type="checkbox"]:checked ~ label,
.question-container .radio-list input[type="radio"]:checked ~ label,
.question-container .checkbox-list input[type="checkbox"]:checked ~ label,
.question-container label.checked,
.question-container .active label,
.ls-answers label.checked {
  color: #042c58 !important;
}

/* Required/format error message boxes*/
.question-container .rptu-error-box,
.question-item-container .rptu-error-box,
.ls-question .rptu-error-box,
.rptu-error-box {
  display: block !important;
  background: #e31b4c !important;
  color: #ffffff !important;
  border: 1px solid #e31b4c !important;
  border-radius: .25rem !important;
  padding: .55rem .8rem !important;
  margin-top: .5rem !important;
  margin-bottom: .25rem !important;
  font-weight: 600 !important;
}

.question-container .rptu-error-box *,
.question-item-container .rptu-error-box *,
.ls-question .rptu-error-box *,
.rptu-error-box * {
  color: #ffffff !important;
}

/* Keep non-box danger text plain red*/
.text-danger:not(.rptu-error-box):not(.rptu-error-box *),
.help-block.text-danger:not(.rptu-error-box):not(.rptu-error-box *),
.ls-question-message:not(.rptu-error-box):not(.rptu-error-box *),
.invalid-feedback:not(.rptu-error-box):not(.rptu-error-box *),
.em_error:not(.rptu-error-box):not(.rptu-error-box *) {
  color: #e31b4c !important;
  background: transparent !important;
  border: 0 !important;
}


/* ---------------- Hard overrides for Fruity green states ----------------*/
.checkbox-item input[type="checkbox"]:checked + label,
.checkbox-item input[type="radio"]:checked + label,
.radio-item input[type="radio"]:checked + label,
.radio-item input[type="checkbox"]:checked + label,
.checkbox-item input[type="checkbox"]:checked ~ label,
.radio-item input[type="radio"]:checked ~ label,
input[type="checkbox"]:checked + label,
input[type="radio"]:checked + label,
.checkbox-item input[type="checkbox"]:checked + label .answertext,
.radio-item input[type="radio"]:checked + label .answertext {
  color: var(--rptu-blue) !important;
}

.checkbox-item input[type="checkbox"]:checked + label::before,
.checkbox-item input[type="radio"]:checked + label::before,
.radio-item input[type="radio"]:checked + label::before,
.radio-item input[type="checkbox"]:checked + label::before {
  border-color: var(--rptu-blue) !important;
  background-color: #ffffff !important;
}

.checkbox-item input[type="checkbox"]:checked + label::after,
.checkbox-item input[type="radio"]:checked + label::after,
.radio-item input[type="checkbox"]:checked + label::after {
  color: var(--rptu-blue) !important;
  background-color: transparent !important;
}

.radio-item input[type="radio"]:checked + label::after,
.radio-text-item input[type="radio"]:checked + label::after,
.no-anwser-item input[type="radio"]:checked + label::after,
.no-answer-item input[type="radio"]:checked + label::after {
  background-color: var(--rptu-blue) !important;
  color: var(--rptu-blue) !important;
}

input[type="checkbox"]:checked:after,
.checkbox input[type="checkbox"]:checked:after,
.checkbox-inline input[type="checkbox"]:checked:after {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: var(--rptu-blue) !important;
}

.was-validated .form-check-input:valid,
.form-check-input.is-valid,
.was-validated .form-check-input:valid:checked,
.form-check-input.is-valid:checked,
.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .form-select:valid,
.form-select.is-valid,
.was-validated textarea.form-control:valid,
textarea.form-control.is-valid,
.valid-feedback,
.is-valid,
.text-success,
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.dynamic-total.text-success,
.numeric-multi .dynamic-total.text-success,
.numeric-multi .ls-group-total .control-label {
  color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  box-shadow: none !important;
}

.was-validated .form-check-input:valid,
.form-check-input.is-valid,
.was-validated .form-check-input:valid:checked,
.form-check-input.is-valid:checked,
.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .form-select:valid,
.form-select.is-valid {
  background-color: #ffffff !important;
  border-color: var(--rptu-blue) !important;
  background-image: none !important;
}

.alert-success,
.alert-success hr,
.alert-success .alert-link,
.list-group-item-success,
.list-group-item-success.list-group-item-action:hover,
.list-group-item-success.list-group-item-action:focus,
.list-group-item-success.list-group-item-action.active {
  color: var(--rptu-blue) !important;
  background: rgba(4,44,88,.06) !important;
  border-color: var(--rptu-blue) !important;
}

/* Mandatory/validation error box*/
.question-valid-container .text-danger,
.question-valid-container .help-block,
.question-valid-container .invalid-feedback,
.question-valid-container .ls-question-message,
.question-valid-container .em_error,
.has-error .question-valid-container .text-danger,
.has-error .question-valid-container .help-block,
.input-error .question-valid-container .text-danger,
.input-error .question-valid-container .help-block {
  display: block !important;
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border: 1px solid var(--rptu-red) !important;
  border-radius: .25rem !important;
  padding: .55rem .8rem !important;
  margin-top: .5rem !important;
  margin-bottom: .25rem !important;
  font-weight: 600 !important;
}

.question-valid-container .text-danger *,
.question-valid-container .help-block *,
.question-valid-container .invalid-feedback *,
.question-valid-container .ls-question-message *,
.question-valid-container .em_error * {
  color: #ffffff !important;
}

/* Keep other danger text as plain red text*/
.text-danger:not(.question-valid-container .text-danger),
.help-block.text-danger:not(.question-valid-container .help-block),
.question-container > .text-danger,
.alert-danger:not(.question-valid-container .alert-danger) {
  background: transparent !important;
  border: 0 !important;
}


/* ---------------- Welcome page default typography ----------------*/
#welcome-container,
#welcome-jumbotron,
#welcome-container .survey-description,
#welcome-container .survey-welcome,
#welcome-container .privacy,
.survey-description,
.survey-welcome,
.privacy {
  color: var(--rptu-blue) !important;
  line-height: 1.55;
}

#welcome-container ul,
#welcome-container ol,
.survey-welcome ul,
.survey-welcome ol,
.survey-description ul,
.survey-description ol,
.privacy ul,
.privacy ol {
  padding-left: 1.5rem;
}

#welcome-container img,
.survey-welcome img,
.survey-description img,
.privacy img {
  vertical-align: middle;
}


/* ---------------- Final V12 overrides ----------------*/
:root {
  --rptu-blue: #042c58;
  --rptu-red: #e31b4c;
}

/* Welcome page: 18px dark blue by default*/
#welcome-container,
#welcome-jumbotron,
.survey-welcome,
.survey-description {
  color: var(--rptu-blue) !important;
  line-height: 1.55 !important;
}

/* Harmonize spacing around title and privacy block*/
.survey-name,
.survey-name.h1,
h1.survey-name,
#welcome-container .survey-name {
  margin-bottom: 1rem !important;
}

.survey-welcome,
.survey-description {
  margin-bottom: 1rem !important;
}

#welcome-container .privacy,
#welcome-container .privacy * {
  color: var(--rptu-blue) !important;
  line-height: 1.55 !important;
}

#welcome-container .privacy,
.privacy {
  margin-top: 1rem !important;
}


/* Question text: dark blue, bold*/
.question-container .question-title-container,
.question-container .ls-label-question,
.question-container .question-number,
.question-container .question-code {
  color: var(--rptu-blue) !important;
  font-weight: 700 !important;
}

/* Keep required asterisk dark blue*/
.question-container .asterisk,
.question-container .fa-asterisk,
.text-danger.asterisk,
.fa-asterisk {
  color: var(--rptu-blue) !important;
}

/* Inputs and selected states dark blue*/
.form-check-input,
input[type="checkbox"],
input[type="radio"],
.form-switch .form-check-input {
  accent-color: var(--rptu-blue) !important;
}

.form-check-input:checked,
.form-check-input[type=checkbox]:checked,
input[type="checkbox"]:checked,
.was-validated .form-check-input[type="checkbox"]:valid:checked,
.form-check-input[type="checkbox"].is-valid:checked,
.was-validated input[type="checkbox"]:valid:checked {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

.form-check-input[type=radio]:checked,
input[type="radio"]:checked,
.was-validated .form-check-input[type="radio"]:valid:checked,
.form-check-input[type="radio"].is-valid:checked,
.was-validated input[type="radio"]:valid:checked {
  background-color: #ffffff !important;
  border-color: var(--rptu-blue) !important;
  background-image: radial-gradient(circle, var(--rptu-blue) 0 38%, transparent 40%) !important;
}

.form-check-input:checked + .form-check-label,
.form-check-input:checked ~ .form-check-label,
input[type="checkbox"]:checked + label,
input[type="radio"]:checked + label,
.was-validated input[type="checkbox"]:valid + label,
.was-validated input[type="radio"]:valid + label,
.form-check-input.is-valid + .form-check-label,
.form-check-input.is-valid ~ .form-check-label {
  color: var(--rptu-blue) !important;
}

/* Instruction and help texts black*/
.questionhelp,
.ls-questionhelp,
.help-block,
.question-container .question-help-container,
.question-container .text-muted,
.text-muted {
  color: #000000 !important;
  font-weight: 400 !important;
}


.btn,
button.btn,
.btn-primary,
.btn-secondary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-default,
.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-success,
button[type="submit"],
button[name="move"],
#ls-button-submit,
#ls-button-next,
#ls-button-previous,
#saveallbtn,
#clearall,
#ls-button-load,
#ls-button-resume {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: #ffffff !important;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.show,
button.btn:hover,
button.btn:focus,
button.btn:active,
button[type="submit"]:hover,
button[type="submit"]:focus,
#ls-button-submit:hover,
#ls-button-next:hover,
#ls-button-previous:hover,
#saveallbtn:hover,
#clearall:hover,
#ls-button-load:hover,
#ls-button-resume:hover {
  background-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

/* Pre-submit required notice: red text only*/
.question-title-container .text-danger,
.question-title-container .help-block.text-danger,
.question-title-container .ls-question-message,
.question-title-container .em_error,
.question-title-container .invalid-feedback,
.question-title-container .question-valid-container .text-danger {
  color: var(--rptu-red) !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin-top: .35rem !important;
  font-weight: 400 !important;
  display: block !important;
}

/* Post-submit / actual validation errors: red box with white text*/
.question-valid-container .rptu-error-box,
.question-valid-container .rptu-error-box *,
.question-valid-container .alert-danger.rptu-error-box,
.question-valid-container .alert-danger.rptu-error-box *,
.question-valid-container .invalid-feedback.rptu-error-box,
.question-valid-container .invalid-feedback.rptu-error-box *,
.question-valid-container .ls-question-message.rptu-error-box,
.question-valid-container .ls-question-message.rptu-error-box *,
.question-valid-container .em_error.rptu-error-box,
.question-valid-container .em_error.rptu-error-box * {
  background: var(--rptu-red) !important;
  border-color: var(--rptu-red) !important;
  color: #ffffff !important;
}


/* ---------------- V13 typography overrides ----------------*/
body,
body p,
body li,
body td,
body th,
body label,
body input,
body select,
body textarea,
body button,
body .btn,
body .questionhelp,
body .help-block,
body .ls-question-message,
body .invalid-feedback,
body .em_error,
body .privacy,
body .privacy *,
body .group-name,
body .group-name *,
body .question-container,
body .question-container *,
body .completed-text,
body .completed-text *,
body .completed-wrapper,
body .completed-wrapper * {
}

.survey-name,
.survey-name.h1,
h1.survey-name,
#welcome-container .survey-name {
  font-size: 36px !important;
  line-height: 1.2;
  margin-bottom: 18px !important;
}

.survey-description,
.survey-welcome {
  color: var(--rptu-blue) !important;
  line-height: 1.55;
}

.survey-description,
.survey-welcome {
  margin-bottom: 18px !important;
}

.privacy,
.privacy *,
.instructions,
.instructions *,
.questionhelp,
.questionhelp *,
.ls-questionhelp,
.ls-questionhelp *,
.help-block,
.help-block *,
.text-muted,
.text-muted * {
}

.question-container .ls-label-question,
.ls-label-question,
.group-name h2,
.group-title,
.question-container .question-number,
.question-container .question-code,
.question-container .asterisk,
.question-container .fa-asterisk,
.question-title-container {
  color: var(--rptu-blue) !important;
}

.question-container .ls-label-question,
.ls-label-question,
.group-name h2,
.group-title {
  font-weight: 700 !important;
}

.answer-item label,
.answertext,
.ls-answers th,
.ls-answers td,
.form-check-label,
.table,
.radio-item label,
.checkbox-item label,
.answer-item label,
.form-check-label,
.form-control,
.form-select,
select,
option,
input,
textarea {
  color: var(--rptu-blue) !important;
  font-weight: 400 !important;
}

.questionhelp,
.ls-questionhelp,
.help-block,
.text-muted,
.question-container .question-help-container {
  color: #000000 !important;
  font-style: normal !important;
  font-weight: 400 !important;
}

.question-valid-container .text-danger,
.question-valid-container .help-block,
.invalid-feedback,
.ls-question-message,
.em_error,
.rptu-error-box {
}

.question-container .rptu-error-box,
.question-container .rptu-error-box.text-danger,
.question-container .rptu-error-box.help-block,
.question-container .rptu-error-box.invalid-feedback,
.question-container .rptu-error-box.ls-question-message,
.question-container .rptu-error-box.em_error {
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border-color: var(--rptu-red) !important;
  font-weight: 400 !important;
}

.question-container .rptu-error-box *,
.question-container .rptu-error-box a {
  color: #ffffff !important;
}


/* ---------------- V14 consent-choice hint + previous button ----------------*/
#ls-button-previous {
  display: none !important;
}

.rptu-choice-hint,
.rptu-choice-hint *,
.question-valid-container .rptu-choice-hint,
.question-valid-container .rptu-choice-hint * {
  color: var(--rptu-red) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  padding: 0 !important;
  margin-top: .35rem !important;
  margin-bottom: .35rem !important;
  display: block !important;
}

.question-valid-container .rptu-choice-hint.rptu-error-box,
.question-valid-container .rptu-choice-hint.rptu-error-box * {
  background: transparent !important;
  color: var(--rptu-red) !important;
  border: 0 !important;
}

#ls-button-previous,
#moveprevbtn {
  display: none !important;
}



/* ---------------- Hint texts regular ----------------*/
.rptu-choice-hint,
.rptu-choice-hint *,
.text-danger,
.text-danger *,
.help-block.text-danger,
.help-block.text-danger *,
.questionhelp.text-danger,
.questionhelp.text-danger *,
.ls-question-message,
.ls-question-message *,
.em_error:not(.rptu-error-box),
.em_error:not(.rptu-error-box) * {
  font-style: normal !important;
  font-weight: 400 !important;
}

.question-container .rptu-error-box,
.question-container .rptu-error-box *,
.question-valid-container .rptu-error-box,
.question-valid-container .rptu-error-box * {
  font-style: normal !important;
  font-weight: 400 !important;
}


/* -------- Current consolidated styling --------*/
:root {
  --rptu-blue: #042c58;
  --rptu-light-blue: #6ab2e7;
  --bs-primary: #6ab2e7;
  --bs-primary-rgb: 106, 178, 231;
  --bs-link-color: #6ab2e7;
  --bs-link-hover-color: #6ab2e7;
}

.rptu-header-grid {
  grid-template-columns: minmax(190px, 320px) minmax(0,1fr) minmax(190px, 320px) !important;
}

.rptu-logo-left { max-height: 74px !important; }
.rptu-logo-right { max-height: 74px !important; }
.rptu-header-title,
.rptu-survey-title {
  text-align: center !important;
}

.rptu-header-menu,
#navbar-toggler,
#main-dropdown {
  display: none !important;
}

.rptu-survey-title {
  font-size: clamp(1.05rem, .85rem + .6vw, 1.45rem) !important;
  font-weight: 500 !important;
}

.survey-name,
.survey-name.h1,
h1.survey-name,
#welcome-container .survey-name {
  font-size: 36px !important;
  line-height: 1.2 !important;
  text-align: left !important;
  color: var(--rptu-blue) !important;
  margin-bottom: 1rem !important;
}

#welcome-container,
#welcome-jumbotron,
.survey-welcome,
.survey-description,
#welcome-container .privacy {
  font-size: 1rem;
  line-height: 1.55;
  color: var(--rptu-blue);
}

#progressbar-top .progress {
  height: 1.15rem !important;
  border-radius: .2rem !important;
  overflow: hidden;
}

#progressbar-top .progress-bar,
#progressbar-top .bar {
  background: var(--rptu-blue) !important;
  color: #ffffff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
}

.rptu-progress-line,
.rptu-progress-badge {
  display: none !important;
}

.rptu-progress-inline-label {
  display: inline-block;
  color: #ffffff !important;
  font-size: .9rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
}

/* Buttons exact light blue*/
.btn,
button.btn,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger,
.btn-secondary,
.btn-default,
.btn-outline-secondary,
.btn-outline-primary,
button[type="submit"],
button[name="move"],
#ls-button-submit,
#ls-button-next,
#ls-button-previous,
#saveallbtn,
#clearall,
#ls-button-load,
#ls-button-resume,
.surveys-list .btn,
.surveytitle.btn {
  background-color: var(--rptu-light-blue) !important;
  border-color: var(--rptu-light-blue) !important;
  color: #ffffff !important;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn.show,
button.btn:hover,
button.btn:focus,
button.btn:active,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active,
.btn-default:hover,
.btn-default:focus,
.btn-default:active,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active,
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
button[type="submit"]:hover,
button[type="submit"]:focus,
#ls-button-submit:hover,
#ls-button-next:hover,
#ls-button-previous:hover,
#saveallbtn:hover,
#clearall:hover,
#ls-button-load:hover,
#ls-button-resume:hover {
  background-color: var(--rptu-light-blue) !important;
  border-color: var(--rptu-light-blue) !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 .18rem rgba(106,178,231,.28) !important;
  filter: brightness(0.96);
}


/* Question title and mandatory star*/
.question-container .ls-label-question,
.ls-label-question,
.question-container .question-number,
.question-container .question-code,
.question-container .asterisk,
.question-container .fa-asterisk,
.text-danger.asterisk,
.fa-asterisk,
.mandatory {
  color: var(--rptu-blue) !important;
  opacity: 1 !important;
}

.question-container .ls-label-question,
.ls-label-question {
  font-weight: 700 !important;
}

/* Default hints / instruction / validation texts dark blue, normal*/
.help-block,
.questionhelp,
.ls-questionhelp,
.question-container .question-help-container,
.text-muted,
.text-danger,
.help-block.text-danger,
.question-valid-container .text-danger,
.question-container .text-danger,
.ls-question-message,
.invalid-feedback,
.em_error,
.rptu-choice-hint,
.rptu-info-msg {
  color: var(--rptu-blue) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin-top: .35rem !important;
  margin-bottom: .35rem !important;
  box-shadow: none !important;
}

/* Required-question messages red with icon*/
.rptu-required-msg,
.rptu-required-msg *,
.has-error .rptu-required-msg,
.input-error .rptu-required-msg {
  color: var(--rptu-red) !important;
  font-weight: 400 !important;
  font-style: normal !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.rptu-required-msg::before {
  content: "!";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  margin-right: .35rem;
  border-radius: 50%;
  background: var(--rptu-red);
  color: #ffffff !important;
  font-size: .75rem;
  line-height: 1;
  font-weight: 700;
  vertical-align: middle;
}

/* No red box*/
.question-container .rptu-error-box,
.question-container .rptu-error-box.text-danger,
.question-container .rptu-error-box.help-block,
.question-container .rptu-error-box.invalid-feedback,
.question-container .rptu-error-box.ls-question-message,
.question-container .rptu-error-box.em_error {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  color: var(--rptu-red) !important;
  font-weight: 400 !important;
}

/* Required-error state: only unanswered choice labels/items turn red*/
.rptu-question-has-required-error .answer-item:not(.rptu-answered-item) label,
.rptu-question-has-required-error .answer-item:not(.rptu-answered-item) .form-check-label,
.rptu-question-has-required-error .form-check:not(.rptu-answered-item) .form-check-label,
.rptu-question-has-required-error .radio-item:not(.rptu-answered-item) label,
.rptu-question-has-required-error .checkbox-item:not(.rptu-answered-item) label,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) th.answertext,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) th.answertext *,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext *,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertextleft,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertextleft *,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext-left,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext-left *,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertextright,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertextright *,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext-right,
.rptu-question-has-required-error .ls-answers tbody tr:not(.rptu-answered-item) .answertext-right * {
  color: var(--rptu-red) !important;
}

.question-container .rptu-required-unanswered-field {
  border-color: var(--rptu-red) !important;
  box-shadow: none !important;
}

.question-container select.rptu-required-unanswered-field,
.question-container .form-select.rptu-required-unanswered-field {
  color: var(--rptu-red) !important;
}

/* Explicit answered state for matrix / semantic differential rows*/
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item th.answertext,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item th.answertext *,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext *,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertextleft,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertextleft *,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext-left,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext-left *,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertextright,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertextright *,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext-right,
.rptu-question-has-required-error .ls-answers tbody tr.rptu-answered-item .answertext-right * {
  color: var(--rptu-blue) !important;
}

/* Keep non-error answers blue by default*/
.answer-item label,
.answertext,
.ls-answers th,
.ls-answers td,
.form-check-label,
.table {
  color: var(--rptu-blue) !important;
  font-weight: 400 !important;
}

/* Responsive header without menu*/
@media (max-width: 991.98px) {
  .rptu-header-grid {
    grid-template-columns: 1fr !important;
    text-align: center;
    gap: .35rem;
  }
  .rptu-logo-wrap,
  .rptu-logo-wrap.rptu-left,
  .rptu-logo-wrap.rptu-right {
    justify-content: center !important;
  }
  .rptu-header-title {
    grid-column: auto !important;
    grid-row: auto !important;
    text-align: center !important;
  }
}


/* ---------------- Recovery patch: validation logic only ----------------*/
/* Neutral state: answers blue*/
.answer-item label,
.answertext,
.ls-answers th,
.ls-answers td,
.form-check-label,
.table {
  color: var(--rptu-blue) !important;
  font-weight: 400 !important;
}

/* Red validation bars for required and format errors*/
.question-container .rptu-error-box,
.question-container .rptu-error-box.text-danger,
.question-container .rptu-error-box.help-block,
.question-container .rptu-error-box.invalid-feedback,
.question-container .rptu-error-box.ls-question-message,
.question-container .rptu-error-box.em_error,
.question-valid-container .rptu-error-box,
.question-valid-container .rptu-error-box.text-danger,
.question-valid-container .rptu-error-box.help-block,
.question-valid-container .rptu-error-box.invalid-feedback,
.question-valid-container .rptu-error-box.ls-question-message,
.question-valid-container .rptu-error-box.em_error {
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border: 1px solid var(--rptu-red) !important;
  border-radius: .25rem !important;
  box-shadow: none !important;
  padding: .7rem .95rem !important;
  margin: .45rem 0 !important;
  display: block !important;
}

.question-container .rptu-error-box *,
.question-valid-container .rptu-error-box *,
.question-container .rptu-error-box a,
.question-valid-container .rptu-error-box a {
  color: #ffffff !important;
}

/* Matrix scale headings stay blue on required-error state*/
.rptu-question-has-required-error .ls-answers .ls-heading th,
.rptu-question-has-required-error .ls-answers .ls-heading th *,
.rptu-question-has-required-error .ls-answers .ls-heading td,
.rptu-question-has-required-error .ls-answers .ls-heading td * {
  color: var(--rptu-blue) !important;
}


/* removed: replaced by scoped other/required message logic*/


/* ---------------- Targeted patch: force normal hint text color ----------------*/
.question-container .question-help-container,
.question-container .help-block:not(.rptu-error-box),
.question-container .questionhelp:not(.rptu-error-box),
.question-container .ls-questionhelp:not(.rptu-error-box),
.question-container .instructions,
.question-container .text-muted,
.question-container .rptu-info-msg,
.question-container .rptu-choice-hint,
.question-container .question-valid-container .ls-question-message:not(.rptu-error-box),
.question-container .question-valid-container .invalid-feedback:not(.rptu-error-box),
.question-container .question-valid-container .em_error:not(.rptu-error-box),
.question-container .question-valid-container .text-danger:not(.rptu-error-box):not(.asterisk),
.question-container .question-valid-container .text-danger:not(.rptu-error-box):not(.asterisk) * {
  color: #444444 !important;
  font-weight: 400 !important;
  font-style: normal !important;
}


/* ---------------- Targeted patch: start/end text sizing ----------------*/
#welcome-container .survey-welcome,
#welcome-container .survey-description,
.completed-text,
.completed-wrapper,
[class*="completedtext"] {
  font-size: 1rem;
  line-height: 1.55;
}

/* ---------------- Targeted patch: neutral numeric validation + hint alignment ----------------*/
.question-container .question-help-container,
.question-container .question-valid-container {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  margin-left: 0 !important;
}

.question-container .question-help-container > *,
.question-container .question-valid-container > *,
.question-container .help-block,
.question-container .questionhelp,
.question-container .ls-questionhelp,
.question-container .instructions,
.question-container .text-muted,
.question-container .ls-question-message,
.question-container .invalid-feedback,
.question-container .em_error,
.question-container .rptu-info-msg,
.question-container .rptu-choice-hint {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.question-container .rptu-info-msg,
.question-container .ls-question-message:not(.rptu-error-box),
.question-container .ls-question-message:not(.rptu-error-box) *,
.question-container .invalid-feedback:not(.rptu-error-box),
.question-container .invalid-feedback:not(.rptu-error-box) *,
.question-container .em_error:not(.rptu-error-box),
.question-container .em_error:not(.rptu-error-box) *,
.question-container .help-block:not(.rptu-error-box),
.question-container .help-block:not(.rptu-error-box) * {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #444444 !important;
  font-weight: 400 !important;
  font-style: normal !important;
}


/* ---------------- Targeted patch: format validation field state ----------------*/
.question-container .form-control,
.question-container .form-select,
.question-container input[type="text"],
.question-container input[type="number"],
.question-container input[type="email"],
.question-container input[type="tel"],
.question-container input[type="search"],
.question-container input[type="date"],
.question-container input[type="datetime-local"],
.question-container input[type="time"],
.question-container input[type="month"],
.question-container input[type="week"],
.question-container input[type="url"],
.question-container textarea,
.question-container select {
  border-color: var(--rptu-blue) !important;
  box-shadow: none !important;
}

.question-container .form-control[aria-invalid="true"],
.question-container .form-select[aria-invalid="true"],
.question-container input[type="text"][aria-invalid="true"],
.question-container input[type="number"][aria-invalid="true"],
.question-container input[type="email"][aria-invalid="true"],
.question-container input[type="tel"][aria-invalid="true"],
.question-container input[type="search"][aria-invalid="true"],
.question-container input[type="date"][aria-invalid="true"],
.question-container input[type="datetime-local"][aria-invalid="true"],
.question-container input[type="time"][aria-invalid="true"],
.question-container input[type="month"][aria-invalid="true"],
.question-container input[type="week"][aria-invalid="true"],
.question-container input[type="url"][aria-invalid="true"],
.question-container textarea[aria-invalid="true"],
.question-container select[aria-invalid="true"],
.question-container .form-control.is-invalid,
.question-container .form-select.is-invalid,
.question-container input.is-invalid,
.question-container textarea.is-invalid,
.question-container select.is-invalid,
.question-container .input-error .form-control,
.question-container .input-error .form-select,
.question-container .input-error input[type="text"],
.question-container .input-error input[type="number"],
.question-container .input-error input[type="email"],
.question-container .input-error input[type="tel"],
.question-container .input-error input[type="search"],
.question-container .input-error input[type="date"],
.question-container .input-error input[type="datetime-local"],
.question-container .input-error input[type="time"],
.question-container .input-error input[type="month"],
.question-container .input-error input[type="week"],
.question-container .input-error input[type="url"],
.question-container .input-error textarea,
.question-container .input-error select {
  border-color: var(--rptu-red) !important;
  box-shadow: none !important;
}


/* ---------------- Targeted patch: explicit runtime format invalid field ----------------*/
.question-container .form-control:invalid,
.question-container .form-select:invalid,
.question-container input:invalid,
.question-container textarea:invalid,
.question-container select:invalid,
.question-container .rptu-format-invalid-field {
  border-color: var(--rptu-red) !important;
  box-shadow: none !important;
}


/* ---------------- Targeted patch: format error box text + icon ----------------*/
.question-container .rptu-format-msg.rptu-error-box,
.question-container .rptu-format-msg.rptu-error-box *,
.question-valid-container .rptu-format-msg.rptu-error-box,
.question-valid-container .rptu-format-msg.rptu-error-box * {
  color: #ffffff !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

.question-container .rptu-format-msg.rptu-error-box::before,
.question-valid-container .rptu-format-msg.rptu-error-box::before {
  content: "!" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1rem !important;
  height: 1rem !important;
  margin-right: .35rem !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  color: var(--rptu-red) !important;
  font-size: .75rem !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  vertical-align: middle !important;
}



/* ---------------- Targeted patch: unanswered required button/mask questions ----------------*/
.rptu-question-has-required-error .btn-check:not(:checked) + .btn,
.rptu-question-has-required-error .btn-check:not(:checked) + .btn .fa,
.rptu-question-has-required-error .btn-check:not(:checked) + .btn .fas,
.rptu-question-has-required-error .btn-check:not(:checked) + .btn .far,
.rptu-question-has-required-error .btn-check:not(:checked) + .btn svg,
.rptu-question-has-required-error .btn-check:not(:checked) + .btn span,
.rptu-question-has-required-error .list-group-item:not(.active),
.rptu-question-has-required-error .list-group-item:not(.active) * {
  color: var(--rptu-red) !important;
  border-color: var(--rptu-red) !important;
}

.rptu-question-has-required-error .btn-check:not(:checked) + .btn,
.rptu-question-has-required-error .list-group-item:not(.active) {
  background: #ffffff !important;
  box-shadow: none !important;
}


/* removed: replaced by scoped other-specify state styling*/


/* ---------------- Privacy text-only display ----------------*/
#welcome-container .privacy .ls-privacy-head,
#welcome-container .privacy h1,
#welcome-container .privacy h2,
#welcome-container .privacy h3,
#welcome-container .privacy h4,
#welcome-container .privacy #datasecurity_notice_label,
#welcome-container .privacy legend {
  display: none !important;
}

#welcome-container .privacy input[type="checkbox"],
#welcome-container .privacy .form-check-input,
#welcome-container .privacy .checkbox input,
#welcome-container .privacy .ls-privacy-checkbox,
#welcome-container .privacy .form-check > input {
  display: none !important;
  visibility: hidden !important;
}

#welcome-container .privacy .form-check,
#welcome-container .privacy .checkbox,
#welcome-container .privacy label,
#welcome-container .privacy .form-check-label,
#welcome-container .privacy .control-label {
  padding-left: 0 !important;
  margin-left: 0 !important;
  min-height: 0 !important;
}



/* ---------------- Responsive logo size patch: mobile + tablet ----------------*/
/* Desktop stays unchanged. Tablets keep a compact single-row header; phones place
 both logos in the first row and the title beneath them.*/
@media (max-width: 991.98px) {
  #survey-nav .rptu-header-shell {
    padding-top: .45rem !important;
    padding-bottom: .45rem !important;
  }

  #survey-nav .rptu-header-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: .45rem .7rem !important;
  }

  #survey-nav .rptu-logo-wrap.rptu-left {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-content: flex-start !important;
  }

  #survey-nav .rptu-header-title {
    grid-column: 2 !important;
    grid-row: 1 !important;
    text-align: center !important;
  }

  #survey-nav .rptu-logo-wrap.rptu-right {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-content: flex-end !important;
  }

  #survey-nav .rptu-logo-left {
    max-height: 42px !important;
  }

  #survey-nav .rptu-logo-right {
    max-height: 42px !important;
  }

  #survey-nav .rptu-survey-title {
    font-size: clamp(.92rem, .82rem + .3vw, 1.05rem) !important;
    line-height: 1.2 !important;
    margin: 0 !important;
  }
}

@media (max-width: 575.98px) {
  #survey-nav .rptu-header-shell,
  #survey-nav .container-fluid,
  .top-container .row > .col-12.col-xl-8,
  #outerframeContainer .row > .col-centered.col-xl-8 {
    width: calc(100vw - .8rem) !important;
    max-width: calc(100vw - .8rem) !important;
  }

  #survey-nav .rptu-header-shell {
    padding-top: .35rem !important;
    padding-bottom: .35rem !important;
  }

  #survey-nav .rptu-header-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: .3rem .65rem !important;
  }

  #survey-nav .rptu-logo-wrap.rptu-left {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-content: flex-start !important;
  }

  #survey-nav .rptu-logo-wrap.rptu-right {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-content: flex-end !important;
  }

  #survey-nav .rptu-header-title {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    text-align: center !important;
  }

  #survey-nav .rptu-logo-left {
    max-height: 30px !important;
  }

  #survey-nav .rptu-logo-right {
    max-height: 30px !important;
  }

  #survey-nav .rptu-survey-title {
    font-size: .9rem !important;
    line-height: 1.2 !important;
  }
}

/* Survey list + error page logos also smaller on tablets/phones*/
@media (max-width: 991.98px) {
  .rptu-list-header .rptu-logo-left,
  .rptu-error-header .rptu-logo-left {
    max-height: 42px !important;
  }

  .rptu-list-header .rptu-logo-right,
  .rptu-error-header .rptu-logo-right {
    max-height: 42px !important;
  }
}

@media (max-width: 575.98px) {
  .rptu-list-header .rptu-logo-left,
  .rptu-error-header .rptu-logo-left {
    max-height: 30px !important;
  }

  .rptu-list-header .rptu-logo-right,
  .rptu-error-header .rptu-logo-right {
    max-height: 30px !important;
  }
}


/* ---------------- Mobile performance patch ----------------*/
@media (max-width: 991.98px) {
  #survey-nav,
  .question-container {
    box-shadow: none !important;
  }

  .question-container {
    background-clip: padding-box;
  }
}

/* ---------------- Consolidated hyperlink styling (editor-safe, theme-controlled) ----------------*/
a:not(.btn),
a:not(.btn):link,
a:not(.btn):visited,
a[href^="mailto:"],
a[href^="mailto:"]:link,
a[href^="mailto:"]:visited,
a.link-primary,
a.link-success,
.link-primary,
.link-success,
.question-container a,
.question-container a:link,
.question-container a:visited,
.question-help-container a,
.question-help-container a:link,
.question-help-container a:visited,
.question-valid-container a,
.question-valid-container a:link,
.question-valid-container a:visited,
.help-block a,
.help-block a:link,
.help-block a:visited,
.questionhelp a,
.questionhelp a:link,
.questionhelp a:visited,
.ls-questionhelp a,
.ls-questionhelp a:link,
.ls-questionhelp a:visited,
.ls-question-message a,
.ls-question-message a:link,
.ls-question-message a:visited,
.survey-welcome a,
.survey-welcome a:link,
.survey-welcome a:visited,
.survey-description a,
.survey-description a:link,
.survey-description a:visited,
.privacy a,
.privacy a:link,
.privacy a:visited,
.completed-text a,
.completed-text a:link,
.completed-text a:visited,
.completed-wrapper a,
.completed-wrapper a:link,
.completed-wrapper a:visited {
  color: var(--rptu-light-blue) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
  text-decoration-thickness: 1px;
}

/* Keep editor-inserted spans inside links from changing link appearance.*/
a:not(.btn) span,
.question-container a span,
.question-help-container a span,
.question-valid-container a span,
.help-block a span,
.questionhelp a span,
.ls-questionhelp a span,
.ls-question-message a span,
.survey-welcome a span,
.survey-description a span,
.privacy a span,
.completed-text a span,
.completed-wrapper a span {
  color: var(--rptu-light-blue) !important;
}

a:not(.btn):hover,
a:not(.btn):focus,
a:not(.btn):active,
a[href^="mailto:"]:hover,
a[href^="mailto:"]:focus,
a[href^="mailto:"]:active,
a.link-primary:hover,
a.link-primary:focus,
a.link-primary:active,
a.link-success:hover,
a.link-success:focus,
a.link-success:active,
.link-primary:hover,
.link-primary:focus,
.link-success:hover,
.link-success:focus,
.question-container a:hover,
.question-container a:focus,
.question-container a:active,
.question-help-container a:hover,
.question-help-container a:focus,
.question-valid-container a:hover,
.question-valid-container a:focus,
.help-block a:hover,
.help-block a:focus,
.questionhelp a:hover,
.questionhelp a:focus,
.ls-questionhelp a:hover,
.ls-questionhelp a:focus,
.ls-question-message a:hover,
.ls-question-message a:focus,
.survey-welcome a:hover,
.survey-welcome a:focus,
.survey-description a:hover,
.survey-description a:focus,
.privacy a:hover,
.privacy a:focus,
.completed-text a:hover,
.completed-text a:focus,
.completed-wrapper a:hover,
.completed-wrapper a:focus {
  color: var(--rptu-light-blue) !important;
  background-color: rgba(106, 178, 231, 0.18);
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  opacity: 1;
}

a:not(.btn):hover span,
a:not(.btn):focus span,
.question-container a:hover span,
.question-container a:focus span,
.question-help-container a:hover span,
.question-help-container a:focus span,
.question-valid-container a:hover span,
.question-valid-container a:focus span,
.help-block a:hover span,
.help-block a:focus span,
.questionhelp a:hover span,
.questionhelp a:focus span,
.ls-questionhelp a:hover span,
.ls-questionhelp a:focus span,
.ls-question-message a:hover span,
.ls-question-message a:focus span,
.survey-welcome a:hover span,
.survey-welcome a:focus span,
.survey-description a:hover span,
.survey-description a:focus span,
.privacy a:hover span,
.privacy a:focus span,
.completed-text a:hover span,
.completed-text a:focus span,
.completed-wrapper a:hover span,
.completed-wrapper a:focus span {
  color: var(--rptu-light-blue) !important;
}

.privacy .ls-privacy-body {
  display: none !important;
}


/* ---------------- De-duplicate repeated Sonstiges hint within one question ----------------*/
.question-container .rptu-hidden-duplicate-msg,
.question-valid-container .rptu-hidden-duplicate-msg {
  display: none !important;
}

.question-container .rptu-other-specify-msg.rptu-error-box,
.question-valid-container .rptu-other-specify-msg.rptu-error-box {
  margin-top: .5rem !important;
  margin-bottom: .5rem !important;
}


/* ---------------- patch: question boxes restored ----------------*/
.question-outer-container {
  margin-bottom: 1rem;
}

.question-container {
  background: #ffffff !important;
  border: 1px solid var(--rptu-border) !important;
  border-radius: .5rem !important;
  box-shadow: none !important;
  padding-top: .9rem;
  padding-bottom: .9rem;
  overflow: hidden;
}

.question-container.rptu-question-has-required-error {
  border-color: var(--rptu-red) !important;
}

.question-container .question-title-container,
.question-container .question-help-container,
.question-container .question-valid-container,
.question-container .question-content {
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (max-width: 767.98px) {
  .question-container {
    border-radius: .45rem !important;
    padding-top: .8rem;
    padding-bottom: .8rem;
  }

  .question-container .question-title-container,
  .question-container .question-help-container,
  .question-container .question-valid-container,
  .question-container .question-content {
    padding-left: .85rem;
    padding-right: .85rem;
  }
}


/* ---------------- single-choice with other/specify cleanup ----------------*/
.question-container .rptu-stale-validation-msg,
.question-valid-container .rptu-stale-validation-msg {
  display: none !important;
}

.question-container .rptu-info-msg.rptu-other-specify-msg,
.question-container .rptu-info-msg.rptu-other-specify-msg *,
.question-valid-container .rptu-info-msg.rptu-other-specify-msg,
.question-valid-container .rptu-info-msg.rptu-other-specify-msg * {
  background: transparent !important;
  border: 0 !important;
  color: #444444 !important;
  font-weight: 400 !important;
  font-style: normal !important;
  padding: 0 !important;
  margin-top: .35rem !important;
  margin-bottom: .35rem !important;
  box-shadow: none !important;
}

.question-container .rptu-required-msg.rptu-error-box,
.question-container .rptu-other-specify-msg.rptu-error-box,
.question-valid-container .rptu-required-msg.rptu-error-box,
.question-valid-container .rptu-other-specify-msg.rptu-error-box {
  display: block !important;
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border: 1px solid var(--rptu-red) !important;
  border-radius: .25rem !important;
  padding: .55rem .8rem !important;
  margin-top: .5rem !important;
  margin-bottom: .25rem !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

.question-container .rptu-required-msg.rptu-error-box *,
.question-container .rptu-other-specify-msg.rptu-error-box *,
.question-valid-container .rptu-required-msg.rptu-error-box *,
.question-valid-container .rptu-other-specify-msg.rptu-error-box * {
  color: #ffffff !important;
  font-weight: 400 !important;
}

.question-container .rptu-required-msg.rptu-error-box::before,
.question-container .rptu-other-specify-msg.rptu-error-box::before,
.question-valid-container .rptu-required-msg.rptu-error-box::before,
.question-valid-container .rptu-other-specify-msg.rptu-error-box::before {
  content: "!" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1rem !important;
  height: 1rem !important;
  margin-right: .35rem !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  color: var(--rptu-red) !important;
  font-size: .75rem !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  vertical-align: middle !important;
}


/* ---------------- single-choice with other/specify state separation ----------------*/
.question-container .rptu-hidden-duplicate-msg,
.question-valid-container .rptu-hidden-duplicate-msg,
.question-container .rptu-stale-validation-msg,
.question-valid-container .rptu-stale-validation-msg {
  display: none !important;
}

.question-container .rptu-info-msg.rptu-other-specify-msg,
.question-container .rptu-info-msg.rptu-other-specify-msg *,
.question-valid-container .rptu-info-msg.rptu-other-specify-msg,
.question-valid-container .rptu-info-msg.rptu-other-specify-msg * {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #6f7782 !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

.question-container .rptu-required-msg.rptu-error-box,
.question-container .rptu-other-specify-msg.rptu-error-box,
.question-container .rptu-format-msg.rptu-error-box,
.question-valid-container .rptu-required-msg.rptu-error-box,
.question-valid-container .rptu-other-specify-msg.rptu-error-box,
.question-valid-container .rptu-format-msg.rptu-error-box {
  display: block !important;
  background: var(--rptu-red) !important;
  color: #ffffff !important;
  border: 1px solid var(--rptu-red) !important;
  border-radius: .25rem !important;
  padding: .55rem .8rem !important;
  margin-top: .5rem !important;
  margin-bottom: .25rem !important;
  font-weight: 400 !important;
  box-shadow: none !important;
}

.question-container .rptu-required-msg.rptu-error-box *,
.question-container .rptu-other-specify-msg.rptu-error-box *,
.question-container .rptu-format-msg.rptu-error-box *,
.question-valid-container .rptu-required-msg.rptu-error-box *,
.question-valid-container .rptu-other-specify-msg.rptu-error-box *,
.question-valid-container .rptu-format-msg.rptu-error-box * {
  color: #ffffff !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

.question-container .rptu-required-msg.rptu-error-box i,
.question-container .rptu-required-msg.rptu-error-box svg,
.question-container .rptu-required-msg.rptu-error-box .fa,
.question-container .rptu-required-msg.rptu-error-box .fas,
.question-container .rptu-required-msg.rptu-error-box .far,
.question-container .rptu-required-msg.rptu-error-box .fal,
.question-container .rptu-required-msg.rptu-error-box .fab,
.question-container .rptu-required-msg.rptu-error-box [class*="ri-"],
.question-container .rptu-other-specify-msg.rptu-error-box i,
.question-container .rptu-other-specify-msg.rptu-error-box svg,
.question-container .rptu-other-specify-msg.rptu-error-box .fa,
.question-container .rptu-other-specify-msg.rptu-error-box .fas,
.question-container .rptu-other-specify-msg.rptu-error-box .far,
.question-container .rptu-other-specify-msg.rptu-error-box .fal,
.question-container .rptu-other-specify-msg.rptu-error-box .fab,
.question-container .rptu-other-specify-msg.rptu-error-box [class*="ri-"],
.question-container .rptu-format-msg.rptu-error-box i,
.question-container .rptu-format-msg.rptu-error-box svg,
.question-container .rptu-format-msg.rptu-error-box .fa,
.question-container .rptu-format-msg.rptu-error-box .fas,
.question-container .rptu-format-msg.rptu-error-box .far,
.question-container .rptu-format-msg.rptu-error-box .fal,
.question-container .rptu-format-msg.rptu-error-box .fab,
.question-container .rptu-format-msg.rptu-error-box [class*="ri-"],
.question-valid-container .rptu-required-msg.rptu-error-box i,
.question-valid-container .rptu-required-msg.rptu-error-box svg,
.question-valid-container .rptu-required-msg.rptu-error-box .fa,
.question-valid-container .rptu-required-msg.rptu-error-box .fas,
.question-valid-container .rptu-required-msg.rptu-error-box .far,
.question-valid-container .rptu-required-msg.rptu-error-box .fal,
.question-valid-container .rptu-required-msg.rptu-error-box .fab,
.question-valid-container .rptu-required-msg.rptu-error-box [class*="ri-"],
.question-valid-container .rptu-other-specify-msg.rptu-error-box i,
.question-valid-container .rptu-other-specify-msg.rptu-error-box svg,
.question-valid-container .rptu-other-specify-msg.rptu-error-box .fa,
.question-valid-container .rptu-other-specify-msg.rptu-error-box .fas,
.question-valid-container .rptu-other-specify-msg.rptu-error-box .far,
.question-valid-container .rptu-other-specify-msg.rptu-error-box .fal,
.question-valid-container .rptu-other-specify-msg.rptu-error-box .fab,
.question-valid-container .rptu-other-specify-msg.rptu-error-box [class*="ri-"],
.question-valid-container .rptu-format-msg.rptu-error-box i,
.question-valid-container .rptu-format-msg.rptu-error-box svg,
.question-valid-container .rptu-format-msg.rptu-error-box .fa,
.question-valid-container .rptu-format-msg.rptu-error-box .fas,
.question-valid-container .rptu-format-msg.rptu-error-box .far,
.question-valid-container .rptu-format-msg.rptu-error-box .fal,
.question-valid-container .rptu-format-msg.rptu-error-box .fab,
.question-valid-container .rptu-format-msg.rptu-error-box [class*="ri-"] {
  display: none !important;
}

/* ---------------- final hard hide for duplicate/stale validation nodes ----------------*/
.question-container .rptu-hidden-duplicate-msg,
.question-container .rptu-hidden-duplicate-msg.rptu-error-box,
.question-container .rptu-hidden-duplicate-msg.rptu-required-msg,
.question-container .rptu-hidden-duplicate-msg.rptu-other-specify-msg,
.question-container .rptu-hidden-duplicate-msg.rptu-format-msg,
.question-valid-container .rptu-hidden-duplicate-msg,
.question-valid-container .rptu-hidden-duplicate-msg.rptu-error-box,
.question-valid-container .rptu-hidden-duplicate-msg.rptu-required-msg,
.question-valid-container .rptu-hidden-duplicate-msg.rptu-other-specify-msg,
.question-valid-container .rptu-hidden-duplicate-msg.rptu-format-msg,
.question-container .rptu-stale-validation-msg,
.question-container .rptu-stale-validation-msg.rptu-error-box,
.question-valid-container .rptu-stale-validation-msg,
.question-valid-container .rptu-stale-validation-msg.rptu-error-box {
  display: none !important;
  visibility: hidden !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  max-height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}


/* ---------------- matrix recovery: answered rows + poles back to blue ----------------*/
.question-container.rptu-question-complete .ls-answers tbody tr th.answertext,
.question-container.rptu-question-complete .ls-answers tbody tr th.answertext *,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext *,
.question-container.rptu-question-complete .ls-answers tbody tr .answertextleft,
.question-container.rptu-question-complete .ls-answers tbody tr .answertextleft *,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext-left,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext-left *,
.question-container.rptu-question-complete .ls-answers tbody tr .answertextright,
.question-container.rptu-question-complete .ls-answers tbody tr .answertextright *,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext-right,
.question-container.rptu-question-complete .ls-answers tbody tr .answertext-right *,
.question-container.rptu-question-complete .ls-answers .ls-heading th,
.question-container.rptu-question-complete .ls-answers .ls-heading th *,
.question-container.rptu-question-complete .ls-answers .ls-heading td,
.question-container.rptu-question-complete .ls-answers .ls-heading td *,
.question-container.rptu-question-complete .ls-answers thead th,
.question-container.rptu-question-complete .ls-answers thead th *,
.question-container.rptu-question-complete .ls-answers thead td,
.question-container.rptu-question-complete .ls-answers thead td * {
  color: var(--rptu-blue) !important;
}

.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr th.answertext,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr th.answertext *,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext *,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertextleft,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertextleft *,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext-left,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext-left *,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertextright,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertextright *,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext-right,
.question-container:not(.rptu-question-has-required-error) .ls-answers tbody tr .answertext-right *,
.question-container:not(.rptu-question-has-required-error) .ls-answers .ls-heading th,
.question-container:not(.rptu-question-has-required-error) .ls-answers .ls-heading th *,
.question-container:not(.rptu-question-has-required-error) .ls-answers .ls-heading td,
.question-container:not(.rptu-question-has-required-error) .ls-answers .ls-heading td *,
.question-container:not(.rptu-question-has-required-error) .ls-answers thead th,
.question-container:not(.rptu-question-has-required-error) .ls-answers thead th *,
.question-container:not(.rptu-question-has-required-error) .ls-answers thead td,
.question-container:not(.rptu-question-has-required-error) .ls-answers thead td * {
  color: var(--rptu-blue) !important;
}

.question-container.rptu-question-complete .ls-answers input[type="radio"],
.question-container.rptu-question-complete .ls-answers input[type="checkbox"],
.question-container:not(.rptu-question-has-required-error) .ls-answers input[type="radio"],
.question-container:not(.rptu-question-has-required-error) .ls-answers input[type="checkbox"] {
  accent-color: var(--rptu-blue) !important;
  border-color: var(--rptu-blue) !important;
}

/* ---------------- default help/hint icons only ----------------*/
:root {
  --rptu-hint-icon-bg: #c8ced6;
}

.question-container .question-help-container .help-block:not(.rptu-error-box),
.question-container .question-help-container .questionhelp:not(.rptu-error-box),
.question-container .question-help-container .ls-questionhelp:not(.rptu-error-box),
.question-container .question-help-container .rptu-info-msg:not(.rptu-error-box),
.question-container .question-help-container .text-muted:not(.rptu-error-box),
.question-container .question-valid-container .rptu-info-msg:not(.rptu-error-box),
.question-container .question-valid-container .rptu-choice-hint:not(.rptu-error-box),
.question-container .question-valid-container .ls-question-message:not(.rptu-error-box),
.question-container .question-valid-container .invalid-feedback:not(.rptu-error-box),
.question-container .question-valid-container .em_error:not(.rptu-error-box),
.question-container .question-valid-container .text-danger:not(.rptu-error-box):not(.asterisk),
.question-container .question-valid-container .help-block:not(.rptu-error-box) {
  position: relative !important;
  display: block !important;
  padding-left: 1.4rem !important;
}

.question-container .question-help-container .help-block:not(.rptu-error-box)::before,
.question-container .question-help-container .questionhelp:not(.rptu-error-box)::before,
.question-container .question-help-container .ls-questionhelp:not(.rptu-error-box)::before,
.question-container .question-help-container .rptu-info-msg:not(.rptu-error-box)::before,
.question-container .question-help-container .text-muted:not(.rptu-error-box)::before {
  content: "?" !important;
  position: absolute !important;
  left: 0 !important;
  top: .2em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1rem !important;
  height: 1rem !important;
  border-radius: 50% !important;
  background: var(--rptu-hint-icon-bg) !important;
  color: #ffffff !important;
  font-size: .72rem !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}

.question-container .question-valid-container .rptu-info-msg:not(.rptu-error-box)::before,
.question-container .question-valid-container .rptu-choice-hint:not(.rptu-error-box)::before,
.question-container .question-valid-container .ls-question-message:not(.rptu-error-box)::before,
.question-container .question-valid-container .invalid-feedback:not(.rptu-error-box)::before,
.question-container .question-valid-container .em_error:not(.rptu-error-box)::before,
.question-container .question-valid-container .text-danger:not(.rptu-error-box):not(.asterisk)::before,
.question-container .question-valid-container .help-block:not(.rptu-error-box)::before {
  content: "!" !important;
  position: absolute !important;
  left: 0 !important;
  top: .2em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1rem !important;
  height: 1rem !important;
  border-radius: 50% !important;
  background: var(--rptu-hint-icon-bg) !important;
  color: #ffffff !important;
  font-size: .72rem !important;
  line-height: 1 !important;
  font-weight: 700 !important;
}


/* ---------------- keep required asterisk inline before question text ----------------*/
.question-container .question-title-container.rptu-inline-title {
  display: flex !important;
  align-items: flex-start !important;
  flex-wrap: wrap !important;
  column-gap: .28rem !important;
  row-gap: 0 !important;
}

.question-container .question-title-container.rptu-inline-title > .rptu-inline-asterisk,
.question-container .question-title-container.rptu-inline-title > .asterisk,
.question-container .question-title-container.rptu-inline-title > .fa-asterisk,
.question-container .question-title-container.rptu-inline-title > .mandatory {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
}

.question-container .question-title-container.rptu-inline-title > .question-number,
.question-container .question-title-container.rptu-inline-title > .question-code,
.question-container .question-title-container.rptu-inline-title > .rptu-question-label-anchor {
  display: inline !important;
  margin: 0 !important;
}

.question-container .question-title-container.rptu-inline-title > .rptu-question-label-anchor {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* ---------------- neutral default hint for mandatory matrix questions ----------------*/
.question-container .question-valid-container .rptu-matrix-default-hint:not(.rptu-error-box),
.question-container .question-valid-container .rptu-matrix-default-hint:not(.rptu-error-box) * {
  color: #444444 !important;
  background: transparent !important;
  border: 0 !important;
  font-weight: 400 !important;
}

.question-container .question-valid-container .rptu-matrix-default-hint:not(.rptu-error-box)::before {
  content: "!" !important;
}


/* ---------------- keep required asterisk inline inside the question label ----------------*/
.question-container .question-title-container.rptu-inline-title {
  display: flex !important;
  align-items: flex-start !important;
  flex-wrap: wrap !important;
  column-gap: .28rem !important;
  row-gap: 0 !important;
}

.question-container .question-title-container.rptu-inline-title > .question-number,
.question-container .question-title-container.rptu-inline-title > .question-code,
.question-container .question-title-container.rptu-inline-title > .rptu-question-label-anchor,
.question-container .question-title-container.rptu-inline-title > .ls-label-question {
  display: inline !important;
  margin: 0 !important;
}

.question-container .question-title-container.rptu-inline-title > .rptu-question-label-anchor {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.question-container .question-title-container .ls-label-question.rptu-inline-asterisk-target {
  display: inline !important;
}

.question-container .question-title-container .ls-label-question.rptu-inline-asterisk-target > .rptu-inline-asterisk,
.question-container .question-title-container .ls-label-question.rptu-inline-asterisk-target > .asterisk,
.question-container .question-title-container .ls-label-question.rptu-inline-asterisk-target > .fa-asterisk,
.question-container .question-title-container .ls-label-question.rptu-inline-asterisk-target > .mandatory {
  display: inline-block !important;
  margin: 0 .28rem 0 0 !important;
  line-height: 1 !important;
  vertical-align: baseline !important;
}

/* ---------------- keep mandatory matrix default hint visible even after completion ----------------*/
.question-container .question-valid-container .rptu-matrix-default-hint[data-rptu-generated="true"] {
  display: block !important;
}


/* ---------------- anchor the mandatory asterisk to the actual visible question text block ----------------*/
.question-container .question-title-container.rptu-inline-title > .rptu-question-label-anchor.rptu-inline-asterisk-anchor,
.question-container .question-title-container.rptu-inline-title > .ls-label-question.rptu-inline-asterisk-anchor {
  display: inline-flex !important;
  align-items: flex-start !important;
  gap: .28rem !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.question-container .question-title-container .rptu-inline-asterisk-anchor > .rptu-inline-asterisk,
.question-container .question-title-container .rptu-inline-asterisk-anchor > .asterisk,
.question-container .question-title-container .rptu-inline-asterisk-anchor > .fa-asterisk,
.question-container .question-title-container .rptu-inline-asterisk-anchor > .mandatory {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  line-height: 1 !important;
  vertical-align: baseline !important;
}

.question-container .question-title-container .rptu-inline-asterisk-anchor > .ls-label-question {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

/* ---------------- for unanswered mandatory matrix questions show only the red error box, not the neutral default hint ----------------*/
.question-container.rptu-question-has-required-error .question-valid-container .rptu-matrix-default-hint:not(.rptu-error-box) {
  display: none !important;
}


/* ---------------- simple centered footer ----------------*/
.rptu-footer {
  margin-top: auto;
  padding: 1rem var(--rptu-shell-pad) 1.2rem;
  background: #ffffff;
}

.rptu-footer-inner {
  width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  max-width: min(var(--rptu-shell), calc(100vw - (var(--rptu-shell-pad) * 2)));
  margin: 0 auto;
  color: var(--rptu-blue);
  font-family: "IBM Plex Sans", "IBM Sans", Arial, sans-serif;
  font-size: .78rem;
  line-height: 1.35;
  text-align: center;
}


/* ---------------- editor-safe global 18px typography baseline ---------------- Keeps normal survey text at 1rem (=18px) without forcing child/editor markup.
 Link styling remains controlled by the existing hyperlink rules above.*/
:root {
  --bs-body-font-size: 18px;
  --bs-font-size-base: 18px;
}

html,
body {
  font-size: 18px;
}

body {
  font-size: 1rem;
}

body p,
body li,
body td,
body th,
body label,
body input,
body select,
body textarea,
body button,
body .btn,
body .form-control,
body .form-select,
body .form-check-label,
body .control-label,
body .ls-label-question,
body .answertext,
body .radio-item label,
body .checkbox-item label,
body .list-group-item,
body .question-container,
body .question-container .question-title-container,
body .question-container .ls-label-question,
body .question-container .question-text,
body .question-container .answer-container,
body .question-container .answer-item,
body .question-container .answer-item label,
body .question-container .form-check-label,
body .question-container .control-label,
body .question-container .radio-item label,
body .question-container .checkbox-item label,
body .question-container .list-group-item,
body .question-container .btn,
body .question-container input,
body .question-container select,
body .question-container textarea,
body .help-block,
body .questionhelp,
body .ls-questionhelp,
body .question-help-container,
body .question-valid-container,
body .ls-question-message,
body .invalid-feedback,
body .em_error,
body .rptu-info-msg,
body .rptu-choice-hint,
body .rptu-error-box,
body .survey-welcome,
body .survey-description,
body .privacy,
body .completed-text,
body .completed-wrapper,
body .rptu-support-line,
body .rptu-error-shell {
  font-size: 1rem;
}

/* ---------------- Hyperlink weight inheritance ---------------- Links keep color/underline/hover theme-controlled, but their weight follows
 the surrounding text instead of editor-specific link emphasis.*/
a:not(.btn),
a:not(.btn):link,
a:not(.btn):visited,
a[href^="mailto:"],
a[href^="mailto:"]:link,
a[href^="mailto:"]:visited,
.question-container a,
.question-help-container a,
.question-valid-container a,
.help-block a,
.questionhelp a,
.ls-questionhelp a,
.ls-question-message a,
.survey-welcome a,
.survey-description a,
.privacy a,
.completed-text a,
.completed-wrapper a {
  font-weight: inherit !important;
}

a:not(.btn) span,
a:not(.btn) strong,
a:not(.btn) b,
.question-container a span,
.question-help-container a span,
.question-valid-container a span,
.help-block a span,
.questionhelp a span,
.ls-questionhelp a span,
.ls-question-message a span,
.survey-welcome a span,
.survey-description a span,
.privacy a span,
.completed-text a span,
.completed-wrapper a span {
  font-weight: inherit !important;
}

/* ---------------- compact spacing between final question box and navigator ---------------- Fruity Twenty Three adds .space-col margins to the group wrapper, group container,
 and navigator. Reduce only the final group-to-navigator gap, without changing
 spacing between ordinary question boxes.*/
#limesurvey .group-outer-container.space-col:has(+ #navigator-container) {
  margin-bottom: .5rem !important;
}

#limesurvey .group-outer-container.space-col:has(+ #navigator-container) > .group-container.space-col {
  margin-bottom: 0 !important;
}

#limesurvey .group-outer-container.space-col:has(+ #navigator-container) .question-outer-container:last-child {
  margin-bottom: .5rem !important;
}

#navigator-container.navigator.space-col {
  margin-top: 0 !important;
}

/* ---------------- state-independent matrix row spacing ---------------- Keep matrix/table item spacing identical before selection, during partial completion,
 after full completion, and in required-error states. Do not bind spacing to
 .rptu-question-complete or .rptu-question-has-required-error.*/
.question-container .ls-answers > thead > tr > th,
.question-container .ls-answers > thead > tr > td,
.question-container .ls-answers > tbody > tr > th,
.question-container .ls-answers > tbody > tr > td,
.question-container .ls-answers > tfoot > tr > th,
.question-container .ls-answers > tfoot > tr > td {
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
  vertical-align: middle !important;
}

.question-container .ls-answers tbody label,
.question-container .ls-answers tbody .control-label,
.question-container .ls-answers tbody .form-check,
.question-container .ls-answers tbody .radio-item,
.question-container .ls-answers tbody .checkbox-item,
.question-container .ls-answers tbody .answer-item {
  line-height: 1.35 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* ---------------- consistent 18px typography for matrix labels and semantic-differential poles ---------------- Equalize LimeSurvey matrix/table answer labels, including left/right semantic-differential pole classes.*/
.question-container .ls-answers th,
.question-container .ls-answers th *,
.question-container .ls-answers td,
.question-container .ls-answers td *,
.question-container .ls-answers .answertext,
.question-container .ls-answers .answertext *,
.question-container .ls-answers .answertextleft,
.question-container .ls-answers .answertextleft *,
.question-container .ls-answers .answertext-left,
.question-container .ls-answers .answertext-left *,
.question-container .ls-answers .answertextright,
.question-container .ls-answers .answertextright *,
.question-container .ls-answers .answertext-right,
.question-container .ls-answers .answertext-right *,
.question-container .ls-answers .ls-heading th,
.question-container .ls-answers .ls-heading th *,
.question-container .ls-answers .ls-heading td,
.question-container .ls-answers .ls-heading td *,
.question-container .ls-answers thead th,
.question-container .ls-answers thead th *,
.question-container .ls-answers thead td,
.question-container .ls-answers thead td *,
.question-container .ls-answers tbody label,
.question-container .ls-answers tbody label *,
.question-container .ls-answers tbody .control-label,
.question-container .ls-answers tbody .control-label * {
  font-size: 1rem !important;
  font-weight: 400 !important;
}

.question-container .ls-answers.semantic-differential-list tbody .answertext,
.question-container .ls-answers.semantic-differential-list tbody .answertext *,
.question-container .ls-answers.semantic-differential-list tbody .answertextright,
.question-container .ls-answers.semantic-differential-list tbody .answertextright * {
  font-size: 1rem !important;
  font-weight: 400 !important;
}

/* ---------------- matrix spacing hardening for error state ---------------- Fruity Twenty Three defines matrix answer text with fixed 20px line-height.
 With this child theme's 18px answer typography that can make matrix rows look
 more compact after validation/error classes are applied. Keep all matrix row
 labels, cells, and semantic-differential poles on the same line-height and
 padding in default, partial, complete, and required-error states.*/
.question-container .ls-answers > tbody > tr,
.question-container.rptu-question-has-required-error .ls-answers > tbody > tr,
.question-container.rptu-question-complete .ls-answers > tbody > tr {
  height: auto !important;
}

.question-container .ls-answers > tbody > tr > th,
.question-container .ls-answers > tbody > tr > td,
.question-container.rptu-question-has-required-error .ls-answers > tbody > tr > th,
.question-container.rptu-question-has-required-error .ls-answers > tbody > tr > td,
.question-container.rptu-question-complete .ls-answers > tbody > tr > th,
.question-container.rptu-question-complete .ls-answers > tbody > tr > td {
  padding-top: .55rem !important;
  padding-bottom: .55rem !important;
  line-height: 1.35 !important;
  vertical-align: middle !important;
}

.question-container .ls-answers > tbody > tr > th *,
.question-container .ls-answers > tbody > tr > td *,
.question-container .ls-answers tbody .answertext,
.question-container .ls-answers tbody .answertext *,
.question-container .ls-answers tbody .answertextleft,
.question-container .ls-answers tbody .answertextleft *,
.question-container .ls-answers tbody .answertext-left,
.question-container .ls-answers tbody .answertext-left *,
.question-container .ls-answers tbody .answertextright,
.question-container .ls-answers tbody .answertextright *,
.question-container .ls-answers tbody .answertext-right,
.question-container .ls-answers tbody .answertext-right *,
.question-container .ls-answers tbody label,
.question-container .ls-answers tbody label *,
.question-container .ls-answers tbody .control-label,
.question-container .ls-answers tbody .control-label *,
.question-container .ls-answers tbody .form-check,
.question-container .ls-answers tbody .radio-item,
.question-container .ls-answers tbody .checkbox-item,
.question-container .ls-answers tbody .answer-item,
.question-container.rptu-question-has-required-error .ls-answers > tbody > tr > th *,
.question-container.rptu-question-has-required-error .ls-answers > tbody > tr > td * {
  font-size: 1rem !important;
  line-height: 1.35 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
