/* Webform Styles --- */
.webform-progress li {
  font-family: bio-sans;
}

.webform-progress-tracker .progress-step.is-active {
}

.webform-progress-tracker .progress-step .progress-text {
  color: #53565a;
}

.webform-progress-tracker .progress-step .progress-marker::before {
  aspect-ratio: 1 / 1;
  padding: 0 1px 2px 1px;
}

.webform-progress-tracker .progress-step.is-active .progress-marker::before {
  background-color: var(--baylorGreen);
  color: #fff;
}

.webform-progress-tracker .progress-step.is-active .progress-text {
  color: var(--baylorGreen);
}

.webform-progress-tracker .progress-step .progress-marker::after {
  background-color: var(--lightGray);
}

.webform-progress-tracker .progress-step.is-active:hover .progress-marker::before {
  background-color: #007a33;
}

.webform-submission-form.buform fieldset {
  /*border-top: 1px solid rgba(0,0,0,.2);*/
}
fieldset.webform-composite-hidden-title .fieldset-wrapper > .form-item:first-child, fieldset.webform-composite-hidden-title .fieldset-wrapper > .form-wrapper > .form-item:first-child, fieldset.webform-composite-hidden-title .fieldset-wrapper > .webform-flexbox:first-child {
  margin-top: 0;
}

/* Webform Message (infobox) Styles --- */
.buComponent-infobox {
    --darkCharcoal:#53565a;
    
    --iconInfo:"\f05a";
    --iconError:"\f057";
    --iconWarning:"\f071";
    --iconStatus:"\f024";

    --_infoboxIcon:var(--iconInfo);
    --_infoboxColor:var(--darkCharcoal);

    color: #000;
    font: 400 16px / 1.3em bio-sans;
    background: var(--lightGray);
    position: relative;
    border: unset;
    display: grid;
    grid-template-rows: [messages-icon-row-start] 1fr [messages-icon-row-end] ;
    grid-template-columns: [icon-start] 52px [icon-end message-start] auto [message-end];
}
.buComponent-infobox::before {
    background-color: var(--_infoboxColor);
    content: "";
    grid-column: icon;
    grid-row: messages-icon-row;
}
.buComponent-infobox[data-infobox-type="status"]::before {
    background: #007a33;
  }
.buComponent-infobox::after {
    content:var(--_infoboxIcon) ;
    grid-column: icon;
    grid-row: messages-icon-row;
    place-self: center;
    font-family: "Font Awesome 5 Pro";
    font-weight: 500;
    font-size: 20px;
    color: var(--white);
}
.buComponent-infobox[data-infobox-type="error"] {
    --_infoboxColor: var(--alertRed); /* error */
    --_infoboxIcon:var(--iconError);
}
.buComponent-infobox[data-infobox-type="status"] {
    --_infoboxIcon:var(--iconStatus);
}
.buComponent-infobox[data-infobox-type="warning"] {
    --_infoboxColor: var(--universityGold);
    --_infoboxIcon:var(--iconWarning);
}
.buComponent-infobox[data-infobox-type="warning"]::after {
    color: var(--darkCharcoal);
}
.buComponent-infobox--messages {
    grid-column: message;
    padding: 22px 25px 22px 1em;
}

/* Form Styles -- */
.buform {
  --_f-height: 3.9rem;
  --_f-p-t: 1.1rem;
  --_f-p-b: 0rem;
  --_f-p-l: 1rem;
  --_f-p-r: var(--_f-p-l);
  --_f-radius: 5px;
  --_f-border-width: 1px;
  --_f-border-color: rgba(0, 0, 0, 0.5);
  --_f-bg: rgba(255, 255, 255, 0.8);
  --_l-t: 1.24rem;
  --_l-color: var(--charcoal);
  --_l-font-size: 17px;
  --_small-font: 0.85rem;
  font: 400 16px/1em bio-sans, arial, sans-serif;
  max-width: 500px;
}

.buform fieldset:not(:first-child) {
  margin-top: 1.5rem;
}

.buform fieldset:is(.webform-type-checkboxes, .webform-type-radios) {
  border-top: none;
}

.buform fieldset.form-composite {
  margin-top: 0;
}

.buform fieldset .fieldset-legend {
  padding-right: 4px;
}

.buform__theme--centered {
  margin: 0 auto;
}

.buform__theme--dark {
  color: #fff;
}
.buform__theme--dark :is(h1,h2,h3,h4,h5,h6,legend),
.buform.buform__theme--dark .form_question.form_h2 > .form_label /* slate */ {
  color: var(--universityGold) !important;
}

.buform legend:has(.visually-hidden) {
  display:none;
}

.buform * {
  box-sizing: border-box;
}

.buform .form-wrapper {
  position: relative;
  margin: 0 0 1rem 0;
}

.buform .form-item {
  display: flow-root;
  margin: 0 0 0.8rem 0;
  position: relative;
}

.buform fieldset {
  border: 0;
  margin: 20px 0;
  padding: 0;
}

.buform legend, /* drupal */
.buform .form_question.form_h2 > .form_label /* slate */ {
  font-weight: 700;
  color: var(--baylorGreen);
  font-size: 20px;
  margin: 0 0 15px 0;
  letter-spacing: -0.01rem;
}
.buform input:not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]),
.buform select,
.buform div:has(> textarea) {
  font: 400 16px/1.3em bio-sans, arial, sans-serif;
  width: 100%;
  appearance: none;
  height: var(--_f-height);
  border-radius: var(--_f-radius);
  background-color: var(--_f-bg);
  border: var(--_f-border-width) solid var(--_f-border-color);
  padding: var(--_f-p-t) var(--_f-p-r) var(--_f-p-b) var(--_f-p-l);
}
.buform input:not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]),
.buform select,
.buform textarea {
  appearance: none;
}
.buform input:not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]),
.buform textarea {
  letter-spacing: -0.01em;
  color: #000;
}
.buform div:has(> textarea) {
  --_f-p-t: 2rem;
  --_f-p-b: 0.25rem;
  --_f-height: 100px;
  min-height: var(--_f-height);
  height: auto;
}
.buform textarea {
  font: 400 16px/1.3em bio-sans, arial, sans-serif;
  width: 100%;
  height: 100%;
  border: 0;
  outline: 0;
  padding: 0;
  background: transparent;
  resize: vertical;
}
.buform select {
  text-overflow: ellipsis;
  overflow: hidden;
}
.buform :is(input, textarea)::placeholder {
  color: transparent;
}

.buform :is(p, div):has(> select)::after,
:is(.buform, .uiComponent__drupalTable .view-filters) :is(p, div):has(> select)::after {
  position: absolute;
  right: 1rem;
  top: 1.55rem;

  height: 20px;

  content: "\f078";

  font-weight: 400;
  font-size: 17px;
  line-height: 1;
  font-family: "Font Awesome 5 Pro";

  color: var(--charcoal);

  pointer-events: none;
}

.buform select[multiple="multiple"] {
  height: auto;
  padding: 2rem 0.8rem 0.8rem 0.8rem;
  line-height: 2em;
}

.buform select[multiple="multiple"] option {
  padding: 4px 0;
}

.buform :is(p, div):has(> select[multiple="multiple"])::after {
  content: "";
}

.buform label:has(+ input:not([type=button]):not([type=submit]):not([type=radio]):not([type=checkbox])),
.buform label:has(+ select),
.buform label:has(+ div textarea),
.buform label:has(+ div input:not([type=button]):not([type=submit]):not([type=radio]):not([type=checkbox])), /* slate */
.buform label:has(+ div select)  /* slate */ {
  position: absolute;
  pointer-events: none;
  transition-timing-function: ease-in;
  transition-duration: 0.125s;
  top: var(--_l-t);
  white-space: nowrap;
  overflow: hidden;
  left: var(--_f-p-l);
  font-size: var(--_l-font-size);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--_l-color);

  z-index: 1;
}

.buform label.form-required::after,
.buform fieldset legend > .form-required::after {
  content: " *";
  color: var(--alertRed);
  font-weight: bold;
}

.buform .buform-required-infobox {
  margin-bottom: 30px;
}
.buform .buform-required-infobox span {
  color: var(--alertRed);
  font-weight: bold;
}

.buform label:has(+ input:focus),
.buform label:has(+ input.buform__input--filled),
.buform label:has(+ select:focus),
.buform label:has(+ select),
.buform label:has(+ div textarea:focus),
.buform label:has(+ div textarea.buform__input--filled),
.buform label:has(+ div input:focus), /* slate */
.buform label:has(+ div input.buform__input--filled), /* slate */
.buform label:has(+ div select:focus), /* slate */
.buform label:has(+ div select) /* slate */ {
  --_l-font-size: 12px;
  --_l-t: 0.7rem !important;
}

.buform .description,
.buform .form-item + .text-full {
  margin: 0.4em 0 0 0;
  font-size: var(--_small-font);
  margin-inline: var(--_f-p-l);
  color: var(--charcoal);
  padding-bottom: 0em;
}
.buform .form-item:has(.description) + .form-item {
  margin-top: 1rem;
}

.buform div:has(> .text-count-wrapper) {
  --_f-p-b: calc(var(--_small-font) + (2 * var(--_textcount-p)) + (0.75 * var(--_f-p-l)));
  --_textcount-p: 6px;
  --_small-font: 0.75rem;

  position: relative;
}

.buform .text-count-wrapper {
  font-size: var(--_small-font);
  line-height: 1;
  text-align: right;

  position: absolute;
  right: var(--_f-border-width);
  bottom: calc(2 * var(--_f-border-width));
  margin: calc(var(--_f-p-l) / 2);
  /*padding-inline: calc(var(--_form-p-inline) / 2);*/
  /*width: calc(100% - (2 * var(--_form-input-borderwidth)) - (var(--_form-p-inline)));*/
  /*padding-bottom: var(--_textcount-p);*/
  /*padding-right: calc(2 * var(--_textcount-p));*/

  color: var(--charcoal);
  /*background: hsl(from var(--_form-input-bg) h s l / 100%);*/
  /*box-shadow: 0 0.25lh 0.25lh var(--_form-input-bg);*/

  border: 1px solid #bbbd;
  background: #eeed;
  display: inline-block;
  border-radius: var(--_f-radius);
  padding: calc(var(--_textcount-p) * .8) var(--_textcount-p) var(--_textcount-p);
  /*color: #000c;*/
}

input.webform-counter-warning,
input.form-text.webform-counter-warning,
textarea.webform-counter-warning,
textarea.form-textarea.webform-counter-warning {
  border-color: transparent;
  background: transparent;
}

.buform input[type="checkbox"] {
  float: left;
  margin-top: 0.3rem;
  width: 1rem;
  height: 1rem;
  border-radius: 1px;
}

.buform input[type="checkbox"] + label {
  display: block;
  margin-left: 1.8rem;
  line-height: 1.4em;
}

.buform input:not(:empty) {
  background: red !important;
}

.buform :is(input, select, textarea):is(:focus, :active) {
  --_f-border-color: #154734;
  box-shadow: 0 0 0 4px rgba(255, 184, 28, 0.8);
  outline: none;
}

.buform .form-actions {
  margin-top: 1.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.3);
  padding-top: 1.5rem;
}
.buform .form-actions:has(input:nth-of-type(2)) {
  display: grid;
  grid-template-columns: 1fr 2fr;
  column-gap: 10px;
}

.buform__theme--dark .form-actions {
  border-top-color: rgba(255, 255, 255, 0.5);
}

.buform input[type="submit"],
.buform button {
  border: 0;
  background: var(--universityGold);
  padding: 0.8rem 2rem 0.95rem 2rem;
  width: 100%;
  text-align: center;
  font: 400 17px/1em bio-sans, sans-serif;
  border-radius: var(--_f-radius);
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.2);
  border: 0;
  transition: all 0.25s ease;
  cursor: pointer;
  color: #000;
  outline: none;
}

.buform input.webform-button--previous {
  background-color: #eee;
  color: #53565a;
}

.buform input[type="submit"].webform-button--previous:hover {
  background-color: #53565a;
  color: #fff;
}

.buform.buform__theme--gold input[type="submit"],
.buform.buform__theme--gold button {
  background: var(--baylorGreen);
  color: #fff;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
}

.buform input[type="submit"]:hover,
.buform input[type="submit"]:active,
.buform input[type="submit"]:focus,
.buform button:hover,
.buform button:active,
.buform button:focus {
  background: #ffd31c;
  border: 0;
  color: #000;
}

.buform input[type="submit"]:active,
.buform input[type="submit"]:focus-visible,
.buform button:active,
.buform button:focus-visible {
  box-shadow: 0 0 0 2px #ffd31c;
  border: 0;
  color: #000;
}

.buform.buform__theme--gold :is(input[type="submit"]:hover, input[type="submit"]:active),
.buform.buform__theme--gold :is(button:hover, button:active) {
  background: #006a52;
  border: 0;
  color: #fff;
}

.buform__theme--gold .buform input[type="submit"]:active,
.buform.buform__theme--gold button:active {
  box-shadow: 0 0 0 2px #006a52;
  border: 0;
}

/********** Range Input Styles **********/
.buform input:is([type="range"]):not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]) {
  -webkit-appearance: none;
  margin-top: 20px;
  width: 100%;
  height: 3rem;
  border-radius: unset;
  border: none;
  padding: unset;
}

.buform .form-type-range {
  margin-top: 1.5rem;
  margin-bottom: 3rem;
}

.buform input[type="range"]:focus,
.buform input[type="range"]:active {
  outline: none;
  box-shadow: unset !important;
}

.buform input[type="range"]::-webkit-slider-runnable-track {
  width: 100%;
  height: 4px;
  cursor: pointer;
  animate: 0.2s;
  background: var(--baylorGreen);
  border-radius: 25px;
}

.buform input[type="range"]::-webkit-slider-thumb {
  height: 20px;
  width: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 1);
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -8px;
}

.buform input[type="range"]:focus::-webkit-slider-runnable-track {
  background: var(--baylorGreen);
}

.buform .range-wrap {
  width: 500px;
  position: relative;
}

.buform .range-value {
  position: absolute;
}

.buform .range-value span {
  width: 38px;
  height: 24px;
  line-height: 24px;
  text-align: center;
  background: var(--baylorGreen);
  color: #fff;
  font-size: 12px;
  display: block;
  position: absolute;
  left: 50%;
  transform: translate(-45%, 0);
  border-radius: 6px;
}

.buform .range-value span:before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  border-bottom: 10px solid var(--baylorGreen);
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  top: -30%;
  left: 50%;
  margin-left: -5px;
  margin-top: -1px;
}

/* Error Styles */
.buform input:user-invalid:not(:focus),
.buform select:user-invalid:not(:focus),
.buform div textarea:user-invalid:not(:focus),
.buform div input:user-invalid:not(:focus),
.buform div select:user-invalid:not(:focus),
.buform input:required:user-invalid:not(:focus),
.buform .buform__input--error,
.buform div:has(> .buform__input--error) {
  --_f-border-width: 2px;
  --_f-border-color: var(--alertRed);
  --_f-bg: #fae9e9;
}
/*
.buform .form_question.required label,
.buform label:has(+ input:invalid:focus),
.buform label:has(+ select:invalid:focus),
.buform label:has(+ div textarea:invalid:focus),
.buform label:has(+ div input:invalid:focus),
.buform label:has(+ div select:invalid:focus),
.buform label:has(+ div textarea.error),
.buform label:has(+ div input.error),
.buform label:has(+ div select.error) {
  color: var(--alertRed) !important;
}
*/
/*
.buform .form_question.required input,
.buform .form_question.required select,
.buform input.error,
.buform select.error,
.buform input.error,
.buform textarea.error,
.buform input:invalid:focus,
.buform select:invalid:focus,
.buform div textarea:invalid:focus,
.buform div input:invalid:focus,
.buform div select:invalid:focus  {
  border-color: var(--alertRed) !important;
  background-color: #fae9e9 !important;
}
*/

.buform .form_question.required label::after {
  /*.buform label.form-required:has(+ div .buform__input--error)::after {*/
  color: var(--alertRed) !important;
}

/* Drupal Error Box */

div[data-drupal-messages]:has(+ .buform) {
  margin: 0 0 2rem 0;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"] {
  border-left-width: 60px;
  font: 400 16px/1.4em bio-sans, arial, sans-serif;
  padding: 22px 25px 22px 70px;
  background: #eee;
  position: relative;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"]::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  bottom: 0;
  width: 52px;
  background: #a60000;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"]::after {
  position: absolute;
  left: 0;
  width: 52px;
  top: 50%;
  margin-top: -10px;
  font-size: 20px;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1em;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 5 Pro";
  text-align: center;
  content: "\f071";
  color: #fff;
  font-weight: 500;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"] * {
  box-sizing: border-box;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"] ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

div[data-drupal-messages]:has(+ .buform) div[role="alert"] li {
  margin: 0;
  padding: 0;
  font: inherit;
}


:is(.buform, .uiComponent__drupalTable .view-filters) label:has(+ select) {
  /*background: #fff;*/
  display: block;
  right: 0.8rem;
  overflow: visible;
}

.buform select[multiple="multiple"] {
  height: auto;
  padding-top: 2rem;
  overflow-y: auto;
  padding-bottom: 1rem;
  padding: 2rem 1rem 0.5rem 1rem !important;
}

/*:is(.buform, .uiComponent__drupalTable .view-filters) label:has(+ select)::before,*/
:is(.uiComponent__drupalTable .view-filters) label:has(+ select)::before {
  content: "";
  height: 0.6rem;
  /*background: #fff;*/
  position: absolute;
  top: -0.6rem;
  left: 0;
  right: 0;
}
/*:is(.buform, .uiComponent__drupalTable .view-filters) label:has(+ select)::after,*/
:is(.uiComponent__drupalTable .view-filters) label:has(+ select)::after {
  content: "";
  height: 0.5rem;
  /*background: #fff;*/
  position: absolute;
  bottom: -0.5rem;
  left: 0;
  right: 0;
}

:is(.buform, .uiComponent__drupalTable .view-filters) select[multiple="multiple"] option {
  text-wrap: wrap;
}

:is(.buform, .uiComponent__drupalTable .view-filters) select[multiple="multiple"] {
  height: auto;
  padding: 2rem 0.8rem 0.8rem 0.8rem;
  line-height: 2em;
}

:is(.buform, .uiComponent__drupalTable .view-filters) select[multiple="multiple"] option {
  padding: 4px 0;
}

:is(.buform, .uiComponent__drupalTable .view-filters) :is(p, div):has(> select[multiple="multiple"])::after {
  content: "";
}

input[type="date"] {
}

label:has(+ input[type="date"]),
.js-form-type-datetime > label {
  color: black !important;
  z-index: 5;
}

.buform label:has(+ input:focus),
.buform label:has(+ input.buform__input--filled),
.buform label:has(+ select:focus),
.buform label:has(+ select),
.buform label:has(+ div textarea:focus),
.buform label:has(+ div textarea.buform__input--filled),
.buform label:has(+ div input:focus),
.buform label:has(+ div input.buform__input--filled),
.buform label:has(+ div select:focus),
.buform label:has(+ div select),
.buform label:has(+ input[type="date"]),
.buform .js-form-type-datetime > label {
  font-size: 12px !important;
  line-height: 1.3em !important;
  top: 0.7rem !important;
}

.buform fieldset:is(.webform-type-checkboxes, .webform-type-radios) legend,
.buform label:has(+ input[type="range"]) {
  font-size: 17px !important;
  font-weight: normal;
  color: #000;
  margin-bottom: 0.7rem;
  left: unset !important;
}

.buform .form-item .js-form-type-datetime > div {
  display: flex;
  column-gap: 10px;
}

.fieldset-wrapper .description:nth-child(1):has(.webform-element-description) {
  padding: 0;
  margin: 0 0 1rem 0;
}

.fieldset-wrapper .description:nth-child(1) .webform-element-description {
  font-size: 1.1em;
  line-height: 1.3em;
  background: var(--lightGray);
  padding: 0.9rem 1rem 0.9rem 2.9rem;
  border-radius: 8px;
  position: relative;
}

.fieldset-wrapper .description:nth-child(1) .webform-element-description::after {
  position: absolute;
  left: 1rem;
  top: 1rem;
  font-size: 18px;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1em;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 5 Pro";
  font-weight: 300;
  content: "\f05a";
  text-align: center;
}


/* Slate Modals */

.dialog_host div {
  font: 400 18px/1.2em bio-sans !important;
}

.dialog_host .dialog > div {
  padding-top: 80px !important;
}

.dialog_host > div > div::before {
  content: "\f071";
  top: 30px;
  left: 0;
  right: 0;
  position: absolute;
  text-align: center;
  font-weight: 400;
  font-size: 24px;
  line-height: 1;
  font-family: "Font Awesome 5 Pro";
  color: var(--alertRed);
}

.webform-confirmation .webform-confirmation__message {
  color: #000;
  font: 400 16px/1.3em bio-sans;
  background: #eee;
  padding: 22px 25px 22px 66px;
  position: relative;
}
.webform-confirmation .webform-confirmation__message::before {
  background: #007a33;
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  bottom: 0;
  width: 52px;
}
.webform-confirmation .webform-confirmation__message::after {
  content: "\f058";
  color: #fff;
  font-weight: 500;
  position: absolute;
  left: 0;
  width: 52px;
  top: 50%;
  margin-top: -10px;
  font-size: 20px;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1em;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 5 Pro";
  text-align: center;
}
.buform .webform-readonly label:has(+ input:not([type=button]):not([type=submit]):not([type=radio]):not([type=checkbox])) {
    color: #757575
}
.buform :is(input:not([type="button"]):not([type="submit"]):not([type="radio"]):not([type="checkbox"]):not([type="range"]), textarea):read-only {
    background-color: var(--lightGray);
    color: #757575
}
/*-- WEBFORM ITERATOR (CUSTOM COMPOSITE) STYLES --*/

.buform [data-drupal-selector*="operations-add"][class*="image-button"],
.buform [data-drupal-selector*="operations-remove"][class*="image-button"] {
  width:auto!important;
  height:auto!important;
  border-radius:12px!important;
  border:2px solid!important;
  padding:2px!important;
}
