/* Darker focus ring for keyboard navigation (ADA visibility) - overrides Bootstrap default #c2dbfe-like ring */
:root {
  --bs-focus-ring-color: rgba(29, 78, 216, 0.5);
  --bs-focus-ring-opacity: 0.5;
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(29, 78, 216, 0.5);
  --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(29, 78, 216, 0.5);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(29, 78, 216, 0.5);
}

/* Nav/pager links: high-contrast keyboard focus (WCAG) - visible on light and dark backgrounds */
.nav-link:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.9), 0 0 0 0.35rem #1d4ed8;
}
.navbar-light .nav-link:focus-visible {
  box-shadow: 0 0 0 0.2rem #1d4ed8;
}

/* Form controls: darker focus for inputs, select, radio, checkbox, range (WCAG contrast – overrides Bootstrap #86b7fe) */
.form-control:focus,
.form-select:focus {
  border-color: #1d4ed8;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(29, 78, 216, 0.4);
}

.form-check-input:focus {
  border-color: #1d4ed8;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(29, 78, 216, 0.4);
}

.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%231d4ed8'/%3e%3c/svg%3e");
  box-shadow: 0 0 0 0.2rem rgba(29, 78, 216, 0.4);
}

.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(29, 78, 216, 0.4);
}

.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(29, 78, 216, 0.4);
}

.main-body {
  min-height: 49vh;
}

.bg-darkblue {
  background: linear-gradient(90deg, rgba(64, 92, 142, 1) 0%, rgba(34, 44, 97, 1) 50%, rgba(64, 92, 142, 1) 100%);
  color: white;
}

@media screen and (prefers-reduced-motion: reduce) {
  .btn-americared {
    background-color: #db1a4f;
    color: white;
    border-color: #db1a4f;
    position: relative;
    overflow: hidden;
    transition: none;
    box-shadow: 0 2px 4px rgba(219, 26, 79, 0.2), 0 1px 2px rgba(219, 26, 79, 0.1);

    /* Subtle elevation for professional look */
  }
}

.btn-americared {
  background-color: #db1a4f;
  color: white;
  border-color: #db1a4f;
  position: relative;
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 4px rgba(219, 26, 79, 0.2), 0 1px 2px rgba(219, 26, 79, 0.1);

  /* Subtle elevation for professional look */
}

/* Hover Effect - Color Inversion */
.btn-americared:hover,
.btn-americared:focus {
  background-color: white;
  color: #db1a4f;
  border-color: #db1a4f;
  box-shadow: 0 4px 8px rgba(219, 26, 79, 0.3), 0 2px 4px rgba(219, 26, 79, 0.2);
  transform: translateY(-1px);

  /* Slight lift on hover */
}

/* Focus State (keyboard tab) - Same contrast/reversal as hover + clear focus ring so keyboard matches mouse */
.btn-americared:focus-visible {
  background-color: white;
  color: #db1a4f;
  border-color: #db1a4f;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(219, 26, 79, 0.6), 0 4px 8px rgba(219, 26, 79, 0.3);
  transform: translateY(-1px);
}

/* Ripple Effect - CSS Only */
@media screen and (prefers-reduced-motion: reduce) {
  .btn-americared::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%);
    transition: none;
    opacity: 0;
    pointer-events: none;
  }
}

.btn-americared::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transform: translate(-50%, -50%);
  transition: width 0.6s ease-out, height 0.6s ease-out, opacity 0.6s ease-out;
  opacity: 0;
  pointer-events: none;
}

/* Active/Click State - Ripple Animation */
@media screen and (prefers-reduced-motion: reduce) {
  .btn-americared:active::after {
    width: 300px;
    height: 300px;
    opacity: 0;
    transition: none;
  }
}

.btn-americared:active::after {
  width: 300px;
  height: 300px;
  opacity: 0;
  transition: width 0.3s ease-out, height 0.3s ease-out, opacity 0.3s ease-out;
}

/* Active State - Pressed Effect */
.btn-americared:active {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(219, 26, 79, 0.2), inset 0 2px 4px rgba(0, 0, 0, 0.1);

  /* Pressed down effect */
}

/* Hover Ripple Effect - Subtle glow on hover */
@media screen and (prefers-reduced-motion: reduce) {
  .btn-americared:hover::before,
  .btn-americared:focus::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transform: translate(-50%, -50%);
    animation: none;
    pointer-events: none;
  }
}

.btn-americared:hover::before,
.btn-americared:focus::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  transform: translate(-50%, -50%);
  animation: ripple-hover 0.6s ease-out;
  pointer-events: none;
}

@keyframes ripple-hover {
  0% {
    width: 0;
    height: 0;
    opacity: 0.3;
  }

  100% {
    width: 200px;
    height: 200px;
    opacity: 0;
  }
}

/* Disabled State - Maintains styling */
.btn-americared:disabled,
.btn-americared.disabled {
  background-color: #db1a4f;
  color: white;
  opacity: 0.65;
  cursor: not-allowed;
  box-shadow: none;
}

.btn-americared:disabled:hover,
.btn-americared.disabled:hover,
.btn-americared:disabled:focus,
.btn-americared.disabled:focus {
  background-color: #db1a4f;
  color: white;
  transform: none;
  box-shadow: 0 2px 4px rgba(219, 26, 79, 0.2), 0 1px 2px rgba(219, 26, 79, 0.1);
}

/* Mobile Optimizations - Touch-friendly */
@media (max-width: 768px) {
  @media screen and (prefers-reduced-motion: reduce) {
    .btn-americared {
      transition: none;

      /* Faster transitions on mobile */
    }
  }

  .btn-americared {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);

    /* Faster transitions on mobile */
  }

  .btn-americared:active {
    transform: scale(0.98);

    /* Slight scale down on mobile for better touch feedback */
  }

  .btn-americared:active::after {
    width: 400px;
    height: 400px;

    /* Larger ripple on mobile for better visibility */
  }
}

::highlight(search-highlight) {
  background-color: yellow;
}

.signature-canvas {
  border: 1px solid #000;
  width: 100%;
  height: 200px;
  background-color: #f5f5f5;
}

.add-alignment {
  position: relative;
  width: 100%;
  top: 0;
  left: 0;
}

.is-lawful {
  position: absolute;
  z-index: -1;
  background-color: red;
}

.fa-title-size-lg {
  font-size: 36px;
}

.fa-title-size {
  font-size: 28px;
}

/* Contact Information Section Padding */
.contact-info-question {
  padding-left: 1rem !important;
}

.contact-info-radio-wrapper {
  padding-left: 4rem !important;
}

.transparentBackground {
  background-color: rgba(0, 0, 0, 0.2);
}

.clickableCalendar {
  font-size: 25px;
}

.list-group-item:hover,
.list-group-item:focus {
  background-color: #f5f5f5;
}

.w-10 {
  width: 10%;
}

.borderedLeft15 {
  padding-left: 15px;
  padding-right: 15px;
  text-align: left;
  border: 1px solid;
}

.borderedCol25 {
  width: 25%;
  border: 1px solid;
}

.pb-100 {
  padding-bottom: 100px;
}

.formItemFitContent {
  position: relative;
  float: left;
  width: fit-content;
}

.validationFifteenNone {
  position: relative;
  top: 15px;
  display: none;
}

.collapsed:hover,
.collapsed:focus {
  background-color: #f5f5f5;

  /* background-image: linear-gradient(#bd0711, #db1a4f); */
}

.thumbnail {
  position: relative;
  z-index: 0;
}

.move-left {
  width: auto;
  box-shadow: none;
}

.thumbnail:hover,
.thumbnail:focus {
  background-color: transparent;
  z-index: 50;
}

.thumbnail span {
  /* CSS for enlarged image */
  position: absolute;
  background-color: lightyellow;
  padding: 5px;
  left: -1000px;
  border: 1px dashed gray;
  visibility: hidden;
  color: black;
  text-decoration: none;
}

.thumbnail span img {
  /* CSS for enlarged image */
  border-width: 0;
  padding: 2px;
}

.thumbnail:hover span,
.thumbnail:focus span {
  /* CSS for enlarged image on hover */
  visibility: visible;
  top: 0;
  left: -500px; /* position where enlarged image should offset horizontally */
}

.info {
  height: 600px;
  width: 480px;
}

.mark,
mark {
  padding: 0;
  background-color: yellow;
}

.card {
  width: 350px;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: border-box;
  border: 1px solid #d2d2dc;
  border-radius: 6px;
  -webkit-box-shadow: 0 0 5px 0 rgb(249, 249, 250);
  -moz-box-shadow: 0 0 5px 0 rgba(212, 182, 212, 1);
  box-shadow: 0 0 5px 0 rgb(161, 163, 164);
  position: fixed;
  bottom: 0.5rem;
  z-index: 9999;
}

.cookies a {
  text-decoration: none;
  color: #000;
  margin-top: 8px;
}

.cookies a:hover,
.cookies a:focus {
  text-decoration: none;
  color: blue;
  margin-top: 8px;
}

@media (max-width: 992px) {
  .w-lg-100 {
    width: 100% !important;
  }
}

@media screen and (prefers-reduced-motion: reduce) {
  .grow {
    -moz-transition: height 0.5s;
    -o-transition: height 0.5s;
    -webkit-transition: height 0.5s;
    transition: none;
    height: 0;
    overflow: hidden;
  }
}

.grow {
  -moz-transition: height 0.5s;
  -o-transition: height 0.5s;
  -webkit-transition: height 0.5s;
  transition: height 0.5s;
  height: 0;
  overflow: hidden;
}

.settlementTooltip {
  display: inline;
}

.tooltip-inner {
  max-width: 50% !important;
}

countrydropdown {
  width: 100%;
  height: 76%;
}

.showactivationslipimage {
  width: 20px;
}

.activationslip {
  width: 26vw;
}

.btn-close-activation-slip {
  border: none;
  background-color: none;
}

/* BEGIN normal close button Classes */
.container {
  position: relative;
  width: 2em;
  height: 2em;
}

@media screen and (prefers-reduced-motion: reduce) {
  .container::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 0;
    width: 0;
    border: 1em solid rgba(100, 100, 100, 0.8);
    border-radius: 6em;
    transition: none;
  }
}

.container::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 0;
  width: 0;
  border: 1em solid rgba(100, 100, 100, 0.8);
  border-radius: 6em;
  transition: all 0.2s ease-in-out;
}

@media screen and (prefers-reduced-motion: reduce) {
  .close_icon {
    transition: none;
    position: absolute;
    width: 2em;
    height: 2em;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border: 0.1em solid;
    border-color: rgba(250, 250, 250, 0.8);
    border-radius: 6em;

    /* background: rgba(255,255,255,0.8); */
  }
}

.close_icon {
  transition: all 0.075s ease-in-out;
  position: absolute;
  width: 2em;
  height: 2em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 0.1em solid;
  border-color: rgba(250, 250, 250, 0.8);
  border-radius: 6em;

  /* background: rgba(255,255,255,0.8); */
}

@media screen and (prefers-reduced-motion: reduce) {
  .close_icon::after {
    transition: none;
    font: 1em Helvetica, arial;
    font-size: 1em;
    width: 100%;
    height: 100%;
    content: "x";
    color: rgba(250, 250, 250, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    transform: translate(0, -5%) scale(1.25, 1);
  }
}

.close_icon::after {
  transition: all 0.075s ease-in-out;
  font: 1em Helvetica, arial;
  font-size: 1em;
  width: 100%;
  height: 100%;
  content: "x";
  color: rgba(250, 250, 250, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  transform: translate(0, -5%) scale(1.25, 1);
}

/* END normal close button Classes */

/* BEGIN First Close button Zoom and Shrink animations */

.container.zoom_shrink:hover .close_icon.zoom_shrink,
.container.zoom_shrink:focus .close_icon.zoom_shrink {
  font-size: 1.2em;
}

.container.zoom_shrink:active::before {
  border-color: rgba(200, 100, 100, 0.8);
}

.container.zoom_shrink:active .close_icon.zoom_shrink {
  font-size: 0.75em;
  border-color: rgba(50, 50, 50, 0.8);
}

.container.zoom_shrink:active .close_icon.zoom_shrink::after {
  color: rgba(50, 50, 50, 0.8);
}

/* END First Close button Zoom and Shrink animations */

/* BEGIN Second Close button Inverted Zoom animations */
.container.zoom_invert:hover::before,
.container.zoom_invert:focus::before {
  font-size: 1.4em;
  border-color: rgba(200, 200, 200, 0.6);
}

.container.zoom_invert:hover .close_icon.zoom_invert,
.container.zoom_invert:focus .close_icon.zoom_invert {
  border-color: rgba(200, 200, 200, 1);
}

.container.zoom_invert:hover .close_icon.zoom_invert::after,
.container.zoom_invert:focus .close_icon.zoom_invert::after {
  color: rgba(100, 100, 100, 1);
}

.container.zoom_invert:active::before {
  font-size: 1.2em;
  border-color: rgba(200, 100, 100, 0.8);
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.zoom_invert:active .close_icon.zoom_invert {
    transition: none;
    font-size: 1.2em;
    border-color: rgba(50, 50, 50, 0.8);
  }
}

.container.zoom_invert:active .close_icon.zoom_invert {
  transition: all 0.05s ease-in-out;
  font-size: 1.2em;
  border-color: rgba(50, 50, 50, 0.8);
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.zoom_invert:active .close_icon.zoom_invert::after {
    transition: none;
    font-size: 1.2em;
    color: rgba(50, 50, 50, 0.8);
  }
}

.container.zoom_invert:active .close_icon.zoom_invert::after {
  transition: all 0.05s ease-in-out;
  font-size: 1.2em;
  color: rgba(50, 50, 50, 0.8);
}

/* END Second Close button Inverted Zoom animations */

/* BEGIN Third Close button Spin animations */
@media screen and (prefers-reduced-motion: reduce) {
  .container.spin::before {
    animation: none;
  }
}

.container.spin::before {
  animation: container_spin_back 0.2s ease-in-out forwards;
}

@media screen and (prefers-reduced-motion: reduce) {
  .close_icon.spin {
    animation: none;
  }
}

.close_icon.spin {
  animation: icon_spin_back 0.2s ease-in-out forwards;
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.spin:hover::before,
  .container.spin:focus::before {
    animation: none;
  }
}

.container.spin:hover::before,
.container.spin:focus::before {
  animation: container_spin 0.2s ease-in-out forwards;
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.spin:hover .close_icon.spin,
  .container.spin:focus .close_icon.spin {
    animation: none;
  }
}

.container.spin:hover .close_icon.spin,
.container.spin:focus .close_icon.spin {
  animation: icon_spin 0.2s ease-in-out forwards;
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.spin:active::before {
    animation: none;
  }
}

.container.spin:active::before {
  animation: container_spin_double 0.2s ease-in-out forwards;
}

@media screen and (prefers-reduced-motion: reduce) {
  .container.spin:active .close_icon.spin {
    animation: none;
    border-color: rgba(50, 50, 50, 0.8);
  }
}

.container.spin:active .close_icon.spin {
  animation: icon_spin_double 0.2s ease-in-out forwards;
  border-color: rgba(50, 50, 50, 0.8);
}

.container.spin:active .close_icon.spin::after {
  color: rgba(50, 50, 50, 0.8);
}

@keyframes container_spin {
  0% {
    border-color: rgba(100, 100, 100, 0.8);
  }

  50% {
    border-left-width: 0;
    border-right-width: 0;
    border-color: rgba(100, 100, 100, 0.8);
  }

  100% {
    border-color: rgba(200, 200, 200, 0.6);
  }
}

@keyframes container_spin_back {
  0% {
    border-color: rgba(200, 200, 200, 0.6);
  }

  50% {
    border-left-width: 0;
    border-right-width: 0;
    border-color: rgba(200, 200, 200, 0.6);
  }

  100% {
    border-color: rgba(100, 100, 100, 0.8);
  }
}

@keyframes container_spin_double {
  0% {
    border-color: rgba(200, 200, 200, 0.6);
  }

  50% {
    border-left-width: 0;
    border-right-width: 0;
    border-color: rgba(200, 200, 200, 0.6);
  }

  100% {
    border-color: rgba(200, 100, 100, 0.8);
  }
}

@keyframes icon_spin {
  50% {
    width: 0;
  }
}

@keyframes icon_spin_back {
  50% {
    width: 0;
  }
}

@keyframes icon_spin_double {
  50% {
    width: 0;
  }
}

/* END Third Close button Spin animations */

a.disabled {
  /* Make the disabled links grayish */
  color: gray;

  /* And disable the pointer events */
  pointer-events: none;
}

.form-dropdown {
  width: 100%;
  height: 76%;
}

.ui-tooltip,
.arrow::after {
  background: black;
  border: 2px solid white;
}

.ui-tooltip {
  padding: 10px 20px;
  color: white;
  border-radius: 20px;
  font: bold 14px "Helvetica Neue", sans-serif;
  text-transform: uppercase;
  box-shadow: 0 0 7px black;
}

.arrow {
  width: 70px;
  height: 16px;
  overflow: hidden;
  position: absolute;
  left: 50%;
  margin-left: -35px;
  bottom: -16px;
}

.arrow.top {
  top: -16px;
  bottom: auto;
}

.arrow.left {
  left: 20%;
}

.arrow::after {
  content: "";
  position: absolute;
  left: 20px;
  top: -20px;
  width: 25px;
  height: 25px;
  box-shadow: 6px 5px 9px -9px black;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.arrow.top::after {
  bottom: -20px;
  top: auto;
}

.tooltip > .tooltip-inner {
  border: 1px solid;
  padding: 10px;
  max-width: 450px;
  text-align: left;
  opacity: 1 !important;
}

.tooltip > .tooltip-arrow {
  border-bottom-color: black;
}

.custom-file-upload {
  cursor: pointer;
}

.disabled {
  pointer-events: none; /* No cursor */
  background-color: #eee; /* Gray background */
}

input[readonly] {
  pointer-events: none; /* No cursor */
  background-color: #eee; /* Gray background */
}

form label {
  background-color: transparent;
}

.form-floating > .form-control-plaintext ~ label::after,
.form-floating > .form-control:focus ~ label::after,
.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
.form-floating > .form-select ~ label::after {
  background-color: transparent !important;
}

.legalrights {
  margin-left: 5%;
  margin-right: 5%;
  margin-top: 20px;
  text-align: center;
  margin-bottom: 10px;
  text-decoration: none;
  border: 1px solid;
  width: 85%;
}

.datepage {
  max-width: 797px;
}

#popup-box {
  position: fixed;
  bottom: 0;
  width: 40%;
  display: flex;
  justify-content: center;
  margin-left: 18%;
}

@media only screen and (max-width: 600px) {
  #popup-box {
    width: 63%;
  }
}

.info-card {
  width: 30%;
}

.accordion-header {
  text-indent: 16px;
}

.eCheckBox {
  display: flex; /* Use Flexbox */
  flex-direction: column; /* Stack the items vertically */
  align-items: center; /* Center items horizontally */
  justify-content: center; /* Center items vertically */
  width: 300px; /* Specify the width */
  height: 125px; /* Specify the height */
  border: solid 1.5px #eee; /* Add border to the box */
  padding: 10px; /* Add some padding */
  font-size: 0.75rem;
  cursor: pointer;
}

.payButton {
  width: 100%; /* Specify the width */
  height: 40px; /* Specify the height */
  border: 1px solid #fb8f00; /* Add border to the box */
  fill: #fb8f00;
  background-color: #fb8f00;
  color: white;
  padding: 10px; /* Add some padding */
  font-size: 0.875rem;
  font-weight: bold;
  border-radius: 4px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.paymentTitle {
  height: 5px;
  color: rgb(119, 119, 119);
  letter-spacing: 0.00938em;
  font-size: 1.2rem;
  font-weight: bold;
}

.mockpaymentbox {
  color: #163f6b;
  font-size: 12pt;
  font-weight: 600;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  line-height: 1.43;
  letter-spacing: 0.01071em;
  padding-inline-start: 2px;
  padding-inline-end: 2px;
}

.mockpaymentmessage {
  font-size: 1rem;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.00938em;
}

.hiddenPaymentMethodValues {
  display: none;
}

.payButton:hover,
.payButton:focus {
  background-color: #b56516;
  border: 1px solid #b56516;
}

.shortFileUploadBox {
  width: 77%;
}

.spacedul li {
  margin-bottom: 5px;
}

.policy-iframe {
  width: 100%;
  height: 600px;
}

.wrapper {
  /* Missing CSS Class */
}

.navbar-light {
  /* Missing CSS Class */
}

.times-new-roman {
  font-family: 'Times New Roman', Times, serif;
}

.text-indent {
  text-indent: 2em;
}

.float-left {
  position: relative;
  float: left;
}

.inline-field {
  position: relative;
  width: 250px !important; /* Define the width for the fields */
  display: inline-block; /* Ensure fields are inline */
  margin-right: 10px; /* Space between fields */
  float: left;
}

.inline-text {
  position: relative;
  margin-right: 10px; /* Space between text and fields */
  display: inline-block; /* Keep text inline with fields */
  vertical-align: middle; /* Align text with the middle of fields */
  float: left;
  width: max-content;
  white-space: nowrap;
}

@media (max-width: 576px) { /* Target screens smaller than 576px */
  .inline-text {
    white-space: normal; /* Allow word wrap on smaller screens */
    float: none; /* Optional: Remove float for better stacking */
    width: 100%;
  }
}

.row-line {
  display: flex; /* Ensure items are inline */
  align-items: start; /* Vertically align text and fields */
  gap: 10px; /* Add spacing between elements */
  margin-left: 10px;
}

.row-line-indent {
  padding-left: 22px;
}

.indent-adj {
  margin-left: 16px;
  margin-right: 17px;
}

.font-size-xx-large {
  font-size: xx-large;
}

.font-times-new-roman {
  font-family: "Times New Roman", Times, serif !important;
}

.language-flag {
  height: 30px;
}

.height-30 {
  height: 30px;
}

.iframe-pdf {
  height: 100%;
  width: 100%;
}

.iframe-pdf-container {
  height: 5000px;
  width: 100%;
  border: 1px solid #ccc;
}

.field-validation-valid,
.field-validation-error {
  min-height: 1.5em; /* Adjust height to fit your messages */
  display: block; /* Ensure it takes up space */
}

.list-group-item {
  white-space: normal; /* Allow text to wrap */
  word-wrap: break-word; /* Break long words */
  overflow-wrap: anywhere; /* Ensure text breaks anywhere if necessary */
}

input[type="number"].no-spin {
  -moz-appearance: textfield; /* Firefox */
  -webkit-appearance: none; /* Safari and Chrome */
  appearance: none; /* Modern browsers */
}

/* Optional: Prevent margins from spinner buttons in some browsers */
input[type="number"].no-spin::-webkit-inner-spin-button,
input[type="number"].no-spin::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Ensure floating labels are visible when they should be */
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control.has-value ~ label {
  opacity: 1;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

/* Ensure labels are visible for inputs with values on page load */
.form-floating > .form-control:not(:placeholder-shown) ~ label {
  opacity: 1;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}

/* Loading Overlay - CSS-First Approach (Inspired by PrimeReact ProgressSpinner) */
@media screen and (prefers-reduced-motion: reduce) {
  .loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(52, 58, 64, 0.8); /* 20% transparent dark grey/blue */
    z-index: 9999; /* Below toasts (10001) and dialog (10000), above all other content */
    display: none;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: none;
  }
}

.loading-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(52, 58, 64, 0.8); /* 20% transparent dark grey/blue */
  z-index: 9999; /* Below toasts (10001) and dialog (10000), above all other content */
  display: none;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.loading-overlay.show {
  display: flex;
  opacity: 1;
}

.loading-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  width: 100%;
}

/* ProgressSpinner - Similar to PrimeReact */
.loading-spinner {
  width: 50px;
  height: 50px;
  position: relative;
  display: block;
  margin: 0 auto;
  flex-shrink: 0;
}

@media screen and (prefers-reduced-motion: reduce) {
  .loading-spinner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 4px solid rgba(255, 255, 255, 0.2);
    border-top-color: #87ceeb; /* Baby blue - darker sky blue */
    animation: none;
  }
}

.loading-spinner::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 4px solid rgba(255, 255, 255, 0.2);
  border-top-color: #87ceeb; /* Baby blue - darker sky blue */
  animation: spinner-rotate 0.6s linear infinite;
}

.loading-text {
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  margin: 0;
  letter-spacing: 0.5px;
}

@keyframes spinner-rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}
