.webform-file-button {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.btn-select-file {
  margin-top: 0 !important;
}
legend#edit-extension-approval--wrapper-legend::after {
    display: inline-block;
    content: "*";
    color: red;
}

/* Darken user-entered text so it passes WCAG contrast in all browsers. */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
select,
textarea,
.form-control {
  color: #1C1D24 !important;
}

/* JS-controlled conditional sections: hidden until the date logic shows them. */
div[id^="edit-info-notice-date-same-day"],
div[id^="edit-extension-approval-no"],
[data-drupal-selector="edit-extension-approval-wrapper"],
fieldset[id^="edit-privacy--wrapper"] {
  display: none;
}

/* Alert banners (self-contained so the form renders the same everywhere). */
.qps-messages {
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  /* Reserve room for the alert icon so it never overlaps the text,
     including environments whose stylesheets add their own icon. */
  padding-inline-start: 3.25rem;
  position: relative;
  margin-block: 1rem 1.5rem;
}
.qps-messages > :first-child p:first-child,
.qps-messages > p:first-child {
  margin-block-start: 0;
}
.qps-messages > :last-child p:last-child,
.qps-messages > p:last-child {
  margin-block-end: 0;
}
/* Beat the theme's high-specificity ".field-wrap.form-type-processed-text p"
   margin rule so banner paragraphs sit close together. */
.webform-component .forms-container .field-wrap .qps-messages p,
body.path--webform .forms-container .field-wrap .qps-messages p,
.qps-messages p {
  margin: 0 !important;
}
.webform-component .forms-container .field-wrap .qps-messages p + p,
body.path--webform .forms-container .field-wrap .qps-messages p + p,
.qps-messages p + p {
  margin-top: 0.75rem !important;
}
.qps-messages--error {
  background-color: #FFD3D3;
  color: #B30000;
}
.qps-messages--error::before {
  content: "";
  background: url("/themes/qldpol/assets/images/alert.svg") center center no-repeat;
  background-size: 22px 22px;
  display: inline-block;
  width: 22px;
  height: 22px;
  position: absolute;
  inset-inline-start: 1rem;
  top: 1.4rem;
}