/* Constrain webforms placed directly in content area (blocks, embeds, etc.)
 * This ensures webforms don't span full width when placed outside paragraph wrappers */
.main-content .webform-submission-form,
.layout-content .webform-submission-form,
#content .webform-submission-form,
.node__content > .webform-submission-form,
.paragraph > .webform-submission-form {
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* Apply container max-width at appropriate breakpoints */
@media (min-width: 576px) {
  .main-content > .webform-submission-form,
  .layout-content > .webform-submission-form,
  #content > .webform-submission-form,
  .node__content > .webform-submission-form {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .main-content > .webform-submission-form,
  .layout-content > .webform-submission-form,
  #content > .webform-submission-form,
  .node__content > .webform-submission-form {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .main-content > .webform-submission-form,
  .layout-content > .webform-submission-form,
  #content > .webform-submission-form,
  .node__content > .webform-submission-form {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .main-content > .webform-submission-form,
  .layout-content > .webform-submission-form,
  #content > .webform-submission-form,
  .node__content > .webform-submission-form {
    max-width: 1140px;
  }
}

@media (min-width: 1400px) {
  .main-content > .webform-submission-form,
  .layout-content > .webform-submission-form,
  #content > .webform-submission-form,
  .node__content > .webform-submission-form {
    max-width: 1320px;
  }
}

/* Webform blocks placed in content region */
.block-webform,
[class*="block-webform-"] {
  margin-left: auto;
  margin-right: auto;
  max-width: 1320px;
  padding-left: 1rem;
  padding-right: 1rem;
}

form.search-form {
  display: flex;
  flex-direction: row;
}
form.search-form .form-type-search {
  flex: 0 1 100%;
}
form.contact-form,
form.user-login-form,
form.tfa-entry-form {
  margin: 0 auto;
  max-width: 600px;
}

/* User login form and TFA form submit button */
form.user-login-form .form-actions,
form.user-login-form #edit-actions,
form.tfa-entry-form .form-actions,
form.tfa-entry-form #edit-actions {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
}

/* TFA forms - ensure submit button is visible and styled */
form.tfa-entry-form input[type="submit"],
form.tfa-entry-form .form-submit,
form.tfa-entry-form .button--primary,
form[id^="tfa-"] input[type="submit"],
form[id^="tfa-"] .form-submit,
form[id^="tfa-"] .button--primary,
.tfa-overview input[type="submit"],
.tfa-overview .form-submit {
  background: var(--qridaOrange) !important;
  border: 1px solid var(--qridaOrange) !important;
  border-radius: 8px !important;
  color: var(--white) !important;
  cursor: pointer;
  display: inline-block !important;
  font-family: var(--font-family-ui);
  font-size: var(--font-size-button);
  line-height: var(--line-height-ui);
  min-width: 120px;
  padding: var(--space-md) var(--space-2xl) !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* TFA form actions container */
form.tfa-entry-form .form-actions,
form[id^="tfa-"] .form-actions,
.tfa-overview .form-actions {
  display: flex !important;
  justify-content: center;
  margin-top: 1.5rem;
}

/* Generic fix for any form actions that might be hidden */
.form-actions,
#edit-actions,
[data-drupal-selector="edit-actions"] {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  height: auto !important;
  width: auto !important;
  overflow: visible !important;
}

/* Ensure all submit buttons within form actions are visible */
.form-actions input[type="submit"],
.form-actions button[type="submit"],
.form-actions .button,
.form-actions .form-submit {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
}

form.user-login-form input[type="submit"],
form.user-login-form .form-submit,
form.user-login-form #edit-submit {
  background: var(--qridaOrange) !important;
  border: 1px solid var(--qridaOrange) !important;
  border-radius: 8px !important;
  color: var(--white) !important;
  cursor: pointer;
  display: inline-block !important;
  font-family: var(--font-family-ui);
  font-size: var(--font-size-button);
  line-height: var(--line-height-ui);
  min-width: 120px;
  padding: var(--space-md) var(--space-2xl) !important;
  visibility: visible !important;
  opacity: 1 !important;
}
form.webform-submission-contact-us-form {
  margin: 0 auto;
  max-width: 100%;
}

/* Webform submit buttons - ensure visible */
.webform-submission-form input[type="submit"],
.webform-submission-form button[type="submit"],
.webform-submission-form .form-submit,
.webform-submission-form .webform-button--submit,
.webform-submission-form .button--primary {
  background: var(--qridaOrange) !important;
  border: 1px solid var(--qridaOrange) !important;
  border-radius: 8px !important;
  color: var(--white) !important;
  cursor: pointer !important;
  display: inline-block !important;
  font-family: var(--font-family-ui) !important;
  font-size: var(--font-size-button) !important;
  font-weight: var(--font-weight-medium) !important;
  line-height: var(--line-height-ui) !important;
  min-width: 120px !important;
  opacity: 1 !important;
  padding: var(--space-md) var(--space-2xl) !important;
  text-align: center !important;
  transition: all 0.2s ease !important;
  visibility: visible !important;
}

.webform-submission-form input[type="submit"]:hover,
.webform-submission-form button[type="submit"]:hover,
.webform-submission-form .form-submit:hover,
.webform-submission-form .webform-button--submit:hover,
.webform-submission-form .button--primary:hover {
  background: var(--orangeLighter) !important;
  border-color: var(--orangeEarthy) !important;
  color: var(--white) !important;
}

.webform-submission-form input[type="submit"]:focus,
.webform-submission-form button[type="submit"]:focus,
.webform-submission-form .form-submit:focus,
.webform-submission-form .webform-button--submit:focus,
.webform-submission-form .button--primary:focus {
  outline: var(--focus-ring) !important;
  outline-offset: 2px !important;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="address"],
input[type="tel"],
input[type="number"],
input[type="search"],
textarea,
select {
  background-color: var(--white) !important;
  border: solid 1px var(--greyDarker) !important;
  border-radius: 8px !important;
  color: var(--greyDarker) !important;
  font-family: "Lato", "Arial", "Helvetica Neue", sans-serif !important;
  font-size: var(--font-size-input);
  line-height: var(--line-height-ui) !important;
  margin: 0;
  min-width: 250px;
  padding: var(--space-md) 1.2rem !important;
  width: 100%;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="address"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
textarea:focus,
select:focus {
  outline: var(--focus-ring);
  outline-offset: 2px;
  border-color: var(--qridaOrange);
}

/* Placeholder text styling */
input[type="text"]::placeholder,
input[type="email"]::placeholder,
input[type="password"]::placeholder,
input[type="address"]::placeholder,
input[type="tel"]::placeholder,
input[type="number"]::placeholder,
input[type="search"]::placeholder,
textarea::placeholder {
  font-size: var(--font-size-sm);
  color: var(--greyHeader);
  opacity: 1;
}
select {
  padding-right: 3rem !important; /* Space for arrow */
  -webkit-appearance: none; /* Hide default arrow on WebKit browsers */
  appearance: none; /* Hide default arrow on other browsers */
  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 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}

textarea {
  height: auto;
  min-height: 10rem;
}

input[type="checkbox"],
input[type="radio"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--greyLight);
  border: solid 1px var(--greyDarker);
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
  height: 1.25rem;
  margin: 0 0.5rem 0 0;
  vertical-align: middle;
  width: 1.25rem;
}

input[type="checkbox"] {
  border-radius: 4px;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
  -webkit-appearance: none;
  appearance: none;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23fff" class="bi bi-check" viewBox="0 0 16 16"><path d="M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z"/></svg>'), var(--qridaOrange);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 0.875rem;
}

/* Ensure form-check containers have proper alignment */
.form-check {
  align-items: flex-start;
  display: flex;
  margin-bottom: 0.5rem;
  min-height: auto;
  padding-left: 0;
  padding-top: 0.125rem;
}

.form-check-label {
  cursor: pointer;
  line-height: 1.5;
  padding-left: 0;
}

/* Mobile optimization */
@media screen and (max-width: 767px) {
  input[type="checkbox"],
  input[type="radio"] {
    height: 1.5rem;
    width: 1.5rem;
  }

  input[type="checkbox"]:checked,
  input[type="radio"]:checked {
    background-size: 1rem;
  }

  .form-check {
    margin-bottom: 0.75rem;
  }
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
  outline: var(--focus-ring);
  outline-offset: 2px;
}
input.required.error {
  border: solid 1px var(--red) !important;
}

/* Styling for Webform inline error messages */
.webform-submission-form strong.error.form-item--error-message {
  display: block;
  background-color: var(--messages-error-bg, #fef2f2); /* Fallback to default red if variable not found */
  border: 1px solid var(--messages-error-border, #ef4444); /* Fallback to default red if variable not found */
  color: var(--messages-error-color, #991b1b); /* Fallback to default red if variable not found */
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  margin-top: 0.5rem; /* Adjust spacing below the field */
  white-space: normal; /* Ensure text wraps and doesn't get ellipsis */
  overflow: visible; /* Ensure content is not clipped */
  text-overflow: clip; /* Prevent ellipsis on overflow */
}

.form-item.js-form-type-tel + strong.error.form-item--error-message {
  margin-top: 0.5rem !important; /* Override negative margin from other modules */
}

input[type="submit"] {
  background: var(--qridaOrange);
  background-image: none;
  background-position: center;
  background-repeat: no-repeat;
  border: solid 1px transparent;
  border-radius: 8px;
  color: var(--white);
  font-family: var(--font-family-ui);
  font-size: var(--font-size-button);
  height: 100%;
  line-height: var(--line-height-ui);
  margin: 0 !important;
  padding: var(--space-md) var(--space-2xl) !important;
}
form.search-form input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
  border-right: none !important;
  border-radius: 8px 0 0 8px !important;
  min-width: 280px;
}
form.search-form input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--qridaOrange) !important;
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23fff" class="bi bi-search" viewBox="0 0 16 16"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/></svg>') !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 20px 20px !important;
  border: solid 1px var(--qridaOrange) !important;
  border-radius: 0 8px 8px 0 !important;
  color: transparent !important;
  font-size: 0;
  height: 100%;
  line-height: var(--line-height-ui-tight);
  margin: 0 !important;
  min-height: 44px;
  min-width: 44px;
  overflow: hidden;
  padding: 0.5rem 1.5rem !important;
  text-indent: -9999px;
  white-space: nowrap;
}

.views-exposed-form .js-form-item-field-region-target-id {
  padding: 0 !important;
}
.half-width {
  width: 50% !important;
}

.form-url {
  border-radius: 8px !important;
}

.form-select {
  line-height: var(--line-height-ui-tight) !important;
}

.webform-telephone--wrapper .fieldset__wrapper {
  display: flex;
  align-items: center;
}

.webform-telephone--wrapper .fieldset__wrapper .form-type-number label {
  display: none;
}

input.form-color.form-color-medium {
  min-height: 32px;
}

.views-exposed-form select,
.webform-submission-contact-us-form select {
  background-color: var(--greyLighter);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="25" height="16" fill="%23485163" class="bi bi-chevron-down" viewBox="0 0 25 16"><path class="st0" d="M0,0v16h25V0H0z M16.8,6.3l-4.3,4.4L8.2,6.3C8,6.2,8,5.8,8.2,5.7c0.2-0.2,0.5-0.2,0.7,0l3.7,3.6l3.7-3.6 c0.2-0.2,0.5-0.2,0.7,0C17,5.8,17,6.2,16.8,6.3z"/></svg>');
  background-position: center right;
  background-repeat: no-repeat;
  background-size: contain;
  line-height: var(--line-height-ui-tight);
  max-width: 500px;
  overflow: hidden;
  padding: 0.5rem 5rem 0.5rem 0.75rem !important;
}
/* Reset button styling - match primary button style */
.views-exposed-form input[data-drupal-selector="edit-reset"],
.views-exposed-form button[data-drupal-selector="edit-reset"],
.views-exposed-form [data-drupal-selector="edit-reset"] {
  background: var(--qridaOrange) !important;
  border: 1px solid var(--qridaOrange) !important;
  border-radius: 4px !important;
  color: var(--white) !important;
  font-family: var(--font-family-ui) !important;
  font-size: var(--font-size-button) !important;
  font-weight: var(--font-weight-normal) !important;
  line-height: var(--line-height-ui) !important;
  margin: 1rem 0 0 0 !important;
  padding: var(--space-lg) var(--space-2xl) !important;
  outline: none !important;
}

.views-exposed-form input[data-drupal-selector="edit-reset"]:hover,
.views-exposed-form button[data-drupal-selector="edit-reset"]:hover,
.views-exposed-form [data-drupal-selector="edit-reset"]:hover {
  background: var(--orangeLighter) !important;
  border-color: var(--orangeEarthy) !important;
  color: var(--white) !important;
}

.views-exposed-form input[data-drupal-selector="edit-reset"]:focus,
.views-exposed-form button[data-drupal-selector="edit-reset"]:focus,
.views-exposed-form [data-drupal-selector="edit-reset"]:focus {
  outline: 3px solid var(--orange) !important;
  outline-offset: 2px !important;
}

.webform-title {
  color: var(--qridaOrange);
  font-family: "Lato", "Arial", "Helvetica Neue", sans-serif;
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-snug);
  margin: 0 0 var(--space-2xl) 0;
  text-transform: none;
  letter-spacing: var(--letter-spacing-normal);
}

form.webform-submission-subscribe-newsletter-form .messages__wrapper {
  padding: 0;
}
form.webform-submission-subscribe-newsletter-form .messages.messages--info {
  background-color: #E6F2FF !important;
  border: 1px solid var(--qridaOrange) !important;
  border-radius: 6px !important;
  color: var(--orangeEarthy) !important;
  font-size: 0.85rem !important;
  line-height: var(--line-height-normal) !important;
  margin: 1rem 0 !important;
  padding: 0.75rem !important;
  max-height: 120px !important;
  overflow-y: auto !important;
}
form.webform-submission-contact-us-form .webform-confirmation__message {
  color: var(--qridaOrange);
}
/* Tablet */
@media only screen and (min-width: 768px) {
  .views-exposed-form input[data-drupal-selector="edit-reset"],
  .views-exposed-form button[data-drupal-selector="edit-reset"],
  .views-exposed-form [data-drupal-selector="edit-reset"] {
    margin: 0 0 0 0.6rem !important;
  }
  form.webform-submission-contact-us-form .webform-confirmation__message {
    color: var(--qridaOrange);
    font-size: 1.5rem;
  }
}
/* Large desktop */
@media screen and (min-width: 1200px) {
}
/* Extra large desktop */
@media screen and (min-width: 1400px) {
}
/* HD desktop */
@media screen and (min-width: 1920px) {
}
@media (pointer: fine) {
  input[type="text"]:hover,
  input[type="email"]:hover,
  input[type="password"]:hover,
  input[type="address"]:hover,
  input[type="tel"]:hover,
  input[type="number"]:hover,
  textarea:hover,
  select:hover {
    border-color: var(--qridaOrange) !important;
    outline: none !important;
  }
  input[type="submit"]:hover {
    background: var(--orangeLighter);
    border: solid 1px transparent;
  }
  input[type="submit"]:active {
    background: var(--qridaOrange);
    transform: translateY(1px);
  }
  input[type="submit"]:focus {
    outline: var(--focus-ring);
    outline-offset: 2px;
  }
  form.search-form input[type="submit"]:hover,
  form.search-form input[type="submit"]:focus {
    background-color: var(--orangeEarthy) !important;
  }
}

/* CAPTCHA styling */
#captcha,
.captcha {
  margin-bottom: 1.5rem;
}

#captcha summary,
#captcha .details-wrapper,
.captcha summary,
.captcha .details-wrapper {
  background-color: transparent;
  padding: 0.5rem 0;
}

#captcha summary::marker,
.captcha summary::marker {
  content: "";
}

/* CAPTCHA fieldset legend */
#captcha legend,
#captcha .fieldset-legend,
.captcha legend,
.captcha .fieldset-legend,
fieldset.captcha legend,
fieldset.captcha .fieldset-legend {
  font-size: var(--font-size-sm) !important;
}

/* CAPTCHA refresh/reload button - style as icon */
#captcha .reload-captcha,
.captcha .reload-captcha,
a.reload-captcha {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  font-size: 0 !important; /* Hide text */
  text-indent: -9999px;
  overflow: hidden;
  background-color: var(--greyLight);
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="%23485163" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 3a5 5 0 1 0 4.546 2.914.5.5 0 0 1 .908-.417A6 6 0 1 1 8 2v1z"/><path d="M8 4.466V.534a.25.25 0 0 1 .41-.192l2.36 1.966c.12.1.12.284 0 .384L8.41 4.658A.25.25 0 0 1 8 4.466z"/></svg>') !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 16px 16px !important;
  border-radius: 4px;
  border: 1px solid var(--greyDarker);
  cursor: pointer;
  vertical-align: middle;
}

#captcha .reload-captcha:hover,
.captcha .reload-captcha:hover,
a.reload-captcha:hover {
  background-color: var(--greyLighter);
}

#captcha .reload-captcha:focus,
.captcha .reload-captcha:focus,
a.reload-captcha:focus {
  outline: var(--focus-ring);
  outline-offset: 2px;
}

/* CAPTCHA image inputs (if used) */
#captcha input[type="image"],
.captcha input[type="image"],
#captcha a img,
.captcha a img {
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  vertical-align: middle;
  cursor: pointer;
}

/* CAPTCHA image container */
#captcha .captcha-image,
.captcha .captcha-image {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

/* CAPTCHA description text */
#captcha .description,
.captcha .description {
  font-size: var(--font-size-sm);
  color: var(--greyDarker);
  margin-top: 0.5rem;
}

/* Paragraph forms in sidebar */
.paragraph-text-resources-form .col-xl-3 input[type="text"],
.paragraph-text-resources-form .col-xl-3 input[type="email"],
.paragraph-text-resources-form .col-xl-3 input[type="password"],
.paragraph-text-resources-form .col-xl-3 input[type="address"],
.paragraph-text-resources-form .col-xl-3 input[type="tel"],
.paragraph-text-resources-form .col-xl-3 input[type="number"],
.paragraph-text-resources-form .col-xl-3 input[type="search"],
.paragraph-text-resources-form .col-xl-3 textarea,
.paragraph-text-resources-form .col-xl-3 select,
.paragraph-text-info .col-xl-3 input[type="text"],
.paragraph-text-info .col-xl-3 input[type="email"],
.paragraph-text-info .col-xl-3 input[type="password"],
.paragraph-text-info .col-xl-3 input[type="address"],
.paragraph-text-info .col-xl-3 input[type="tel"],
.paragraph-text-info .col-xl-3 input[type="number"],
.paragraph-text-info .col-xl-3 input[type="search"],
.paragraph-text-info .col-xl-3 textarea,
.paragraph-text-info .col-xl-3 select {
  min-width: unset !important;
  max-width: 100% !important;
}

.paragraph-text-resources-form .col-xl-3 .webform-submission-form,
.paragraph-text-info .col-xl-3 .webform-submission-form {
  background-color: var(--white);
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.08);
  margin-top: 1.5rem;
  padding: 1.5rem;
}

.paragraph-text-resources-form .col-xl-3 .webform-title,
.paragraph-text-info .col-xl-3 .webform-title {
  margin-bottom: 1rem;
}

/* Entity Moderation Module */
#content-moderation-entity-moderation-form .entity-moderation-form input[type=submit] {
    margin-bottom: 1em !important;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="address"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
textarea:focus,
select:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus {
  outline: var(--focus-ring) !important;
  outline-offset: 1px;
}

legend,
.fieldset-legend,
label.form-item__label {
  font-family: var(--font-family-ui);
  font-weight: var(--font-weight-bold);
  margin: 0 0 var(--space-xs) 0; /* Consolidate margin property to control all sides, ensuring consistency */
  font-size: var(--font-size-label);
}

/* Ensure consistent styling for required labels overriding potential Gin theme styles */
/* This rule targets labels specifically marked as required, applying !important to ensure override */
label.form-item__label.form-required,
.fieldset-legend.form-required { /* Added fieldset-legend for consistency with fieldset titles */
  margin: 0 0 0.25rem 0 !important; /* Override with consistent margin */
  font-size: 0.929em !important; /* Override with consistent font-size */
  vertical-align: middle !important; /* Ensure vertical alignment of label text */
}

/* Remove any margin on the required asterisk pseudo-element */
.form-item__label.form-required::after,
.fieldset__label.form-required::after {
  margin-inline: 0 !important; /* Explicitly remove inline margin from the asterisk */
}

/* Fieldset styling */
fieldset {
  border: none;
  padding: 0;
  margin-bottom: 1.5rem;
}

legend,
.fieldset-legend {
  font-family: var(--font-family-headings);
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-h5);
  padding: 0;
  margin: 0 0 var(--space-xs) 0;
  color: var(--text-color, #333);
  background-color: transparent;
  width: auto;
}

/* Ensure specific legend styling as requested */
#edit-identity-disclosure--wrapper-legend {
  padding: 0 !important;
}

.form-item {
  margin-bottom: 1.5rem;
}

.form-actions {
  display: flex;
  justify-content: center;
}

/* Flexbox for inline form elements */
.form--inline {
  display: flex;
  flex-wrap: wrap;
  margin: 0; /* Changed from 0 -0.75rem to 0 to prevent overflow caused by negative margin */
  align-items: flex-start;
}

.form--inline .form-item {
  padding: 0 0.75rem;
  flex: 1 1 auto;
}
.form--inline .form-item label {
  margin: 0 0 0.25rem 0 !important;
}
.form--inline .form-item-state-territory,
.form--inline .form-item-postcode {
  flex: 1 1 45%;
}

.webform-submission-form .form-item {
  margin-bottom: 2rem;
}

.webform-submission-form fieldset.fieldset {
  margin-top: 2rem;
}

.form-item label,
.form-wrapper .label {
  font-size: 0.929em;
}

/* Target the inner span within the legend to remove its default/inherited margins */
fieldset legend span.fieldset__label {
  margin: 0 !important; /* Force remove any margins that make the span appear larger */
  padding: 0 !important; /* Ensure no internal padding contributes to the size */
  display: inline; /* Keep text flow natural, or use block if single line */
  line-height: inherit; /* Inherit line-height from parent for consistent text height */
}

/* Fix Contact Us form: make State/territory and Postcode equal width */
#edit-state-postcode.webform-flexbox > .webform-flex {
  flex: 0 0 50%;
  max-width: 50%;
}

/* --- Contact Us: State/Territory and Postcode equal width, robust flex fix --- */
form.webform-submission-contact-us-form #edit-state-postcode.webform-flexbox {
  display: flex;
  gap: 1rem;
}
form.webform-submission-contact-us-form #edit-state-postcode.webform-flexbox > .form-item-state-territory,
form.webform-submission-contact-us-form #edit-state-postcode.webform-flexbox > .form-item-postcode {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
}
@media (max-width: 600px) {
  form.webform-submission-contact-us-form #edit-state-postcode.webform-flexbox {
    flex-direction: column;
    gap: 0;
  }
}

/* ============================================
   Form Error Summary - WCAG 2.1 AA Compliance
   ============================================ */

/**
 * Error summary container (WCAG 3.3.1)
 * Provides overview of all form errors at top of form
 */
.form-errors-summary {
  background-color: var(--messages-error-bg, #fef2f2);
  border: 3px solid var(--messages-error-border, #ef4444);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  box-shadow: 0 2px 4px rgba(239, 68, 68, 0.1);
}

/**
 * Error summary heading
 */
.form-errors-summary .error-summary-heading {
  color: var(--messages-error-color, #991b1b);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 1rem 0;
  line-height: 1.4;
}

/**
 * Error list styling
 */
.form-errors-summary .error-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.form-errors-summary .error-summary-list li {
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
}

.form-errors-summary .error-summary-list li:last-child {
  margin-bottom: 0;
}

/**
 * Error icon/bullet
 */
.form-errors-summary .error-summary-list li::before {
  content: "⚠";
  position: absolute;
  left: 0;
  color: var(--messages-error-color, #991b1b);
  font-weight: bold;
}

/**
 * Error links (WCAG 2.4.3 - Focus Order)
 * Links from summary to individual fields
 */
.form-errors-summary .error-link {
  color: var(--messages-error-color, #991b1b);
  text-decoration: underline;
  font-weight: 700;
  transition: color 0.2s ease-in-out;
}

.form-errors-summary .error-link:hover,
.form-errors-summary .error-link:focus {
  color: var(--qridaDarkOrange, #cc5200);
  text-decoration: none;
}

/**
 * Focus indicator for error links (WCAG 2.4.7)
 */
.form-errors-summary .error-link:focus {
  outline: 3px solid var(--orange);
  outline-offset: 2px;
  border-radius: 2px;
}

/**
 * Inline error messages (updated for consistency)
 */
.form-item .error-message,
.has-error .error-message {
  display: block;
  background-color: var(--messages-error-bg, #fef2f2);
  border: 2px solid var(--messages-error-border, #ef4444);
  color: var(--messages-error-color, #991b1b);
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  margin-top: 0.5rem;
  font-size: 0.9rem;
  font-weight: 700;
}

/**
 * Error state for form fields (WCAG 1.4.1 - Use of Color)
 * Don't rely on color alone - add icon and border
 */
.has-error input,
.has-error textarea,
.has-error select {
  border-color: var(--messages-error-border, #ef4444) !important;
  border-width: 2px !important;
}

.has-error label {
  color: var(--messages-error-color, #991b1b);
  font-weight: 700;
}

/**
 * Focus state for error fields
 */
.has-error input:focus,
.has-error textarea:focus,
.has-error select:focus {
  outline: 3px solid var(--orange);
  outline-offset: 2px;
  border-color: var(--messages-error-border, #ef4444) !important;
}

/**
 * Mobile optimization
 */
@media screen and (max-width: 767px) {
  .form-errors-summary {
    padding: 1rem;
    margin-bottom: 1.5rem;
  }

  .form-errors-summary .error-summary-heading {
    font-size: 1.125rem;
  }

  .form-errors-summary .error-summary-list li {
    font-size: 0.9rem;
  }
}

/**
 * High contrast mode support
 */
@media (prefers-contrast: high) {
  .form-errors-summary {
    border-width: 4px;
  }

  .form-errors-summary .error-link:focus {
    outline-width: 4px;
  }

  .has-error input,
  .has-error textarea,
  .has-error select {
    border-width: 3px !important;
  }
}

/**
 * Reduced motion support
 */
@media (prefers-reduced-motion: reduce) {
  .form-errors-summary .error-link {
    transition: none;
  }
}

/**
 * Print styles
 */
@media print {
  .form-errors-summary {
    page-break-inside: avoid;
    border: 2px solid #000;
    background: #fff;
    color: #000;
  }
}
