.vlc-request-form {
  width: min(100%, 820px);
  margin: 0 auto;
  padding: clamp(24px, 4vw, 42px);
  scroll-margin-top: 130px;
  border: 1px solid rgba(31, 42, 54, 0.14);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 44px rgba(31, 42, 54, 0.08);
  box-sizing: border-box;
}

.vlc-request-form *,
.vlc-request-form *::before,
.vlc-request-form *::after {
  box-sizing: border-box;
}


.vlc-form-context-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  padding: 7px 10px;
  border: 1px solid rgba(179, 138, 87, 0.24);
  border-radius: 999px;
  background: #f8f5f0;
  color: #6f6253;
  font-size: 0.78rem;
  line-height: 1.35;
}

.vlc-form-context-badge[hidden] {
  display: none !important;
}

.vlc-form-context-badge span {
  color: #7a8794;
}

.vlc-form-context-badge strong {
  color: #1f2a36;
  font-weight: 700;
}

.vlc-form-intro {
  max-width: 680px;
  margin-bottom: 20px;
}

.vlc-form-intro h2 {
  margin: 0 0 9px;
}

.vlc-form-intro p {
  margin: 0;
  color: #5f6872;
  line-height: 1.62;
}

.vlc-form-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 24px 0 30px;
}

.vlc-progress-item {
  display: grid;
  min-width: 78px;
  justify-items: center;
  gap: 7px;
  color: #7a8794;
  text-align: center;
  transition: color 0.2s ease;
}

.vlc-progress-item span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #cfd5da;
  border-radius: 50%;
  background: #fff;
  color: #68727c;
  font-size: 0.88rem;
  font-weight: 700;
  transition:
    border-color 0.2s ease,
    background-color 0.2s ease,
    color 0.2s ease;
}

.vlc-progress-item strong {
  font-size: 0.76rem;
  font-weight: 650;
}

.vlc-progress-item.is-active,
.vlc-progress-item.is-complete {
  color: #1f2a36;
}

.vlc-progress-item.is-active span,
.vlc-progress-item.is-complete span {
  border-color: #1f2a36;
  background: #1f2a36;
  color: #fff;
}

.vlc-progress-item.is-complete span {
  border-color: #b38a57;
  background: #b38a57;
}

.vlc-progress-line {
  width: min(78px, 9vw);
  height: 1px;
  margin: 0 4px 23px;
  background: #d8dde1;
}

.vlc-form-step[hidden] {
  display: none !important;
}

.vlc-form-step.is-active {
  animation: vlc-step-in 0.2s ease both;
}

@keyframes vlc-step-in {
  from {
    opacity: 0;
    transform: translateY(5px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.vlc-step-heading {
  margin-bottom: 22px;
}

.vlc-step-heading > span {
  display: block;
  margin-bottom: 5px;
  color: #8b7254;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.vlc-step-heading h3 {
  margin: 0 0 7px;
  color: #1f2a36;
  font-size: clamp(1.5rem, 3vw, 1.9rem);
  line-height: 1.2;
}

.vlc-step-heading p {
  margin: 0;
  color: #68727c;
  line-height: 1.55;
}

.vlc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.vlc-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
}

.vlc-field-full {
  grid-column: 1 / -1;
}

.vlc-field-date {
  max-width: 360px;
}

.vlc-field label {
  color: #1f2a36;
  font-weight: 700;
  line-height: 1.4;
}

.vlc-optional {
  color: #7a8794;
  font-size: 0.82em;
  font-weight: 500;
}

.vlc-field input,
.vlc-field select,
.vlc-field textarea {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid #d5cec3;
  border-radius: 9px;
  background: #fff;
  color: #101820;
  font: inherit;
  line-height: 1.45;
  box-shadow: none;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease;
}

.vlc-field textarea {
  min-height: 148px;
  resize: vertical;
}

.vlc-field input[type="file"] {
  min-height: 50px;
  padding: 9px 10px;
  background: #fafaf8;
}

.vlc-field input:hover,
.vlc-field select:hover,
.vlc-field textarea:hover {
  border-color: #b38a57;
}

.vlc-field input:focus,
.vlc-field select:focus,
.vlc-field textarea:focus {
  border-color: #b38a57;
  outline: none;
  box-shadow: 0 0 0 3px rgba(179, 138, 87, 0.14);
}

.vlc-field input:user-invalid,
.vlc-field select:user-invalid,
.vlc-field textarea:user-invalid {
  border-color: #b42318;
  box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.1);
}

.vlc-field-note {
  margin: 0;
  color: #6d7781;
  font-size: 0.82rem;
  line-height: 1.5;
}

.vlc-field-note--technical {
  margin-top: -2px;
  color: #87919a;
  font-size: 0.76rem;
}

.vlc-security-note {
  margin: 0;
  padding: 14px 16px;
  border-left: 3px solid #b38a57;
  border-radius: 7px;
  background: #f7f4ef;
  color: #5f6872;
  font-size: 0.84rem;
  line-height: 1.58;
}

.vlc-consent {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-weight: 400 !important;
}

.vlc-consent input {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin-top: 3px;
  padding: 0;
  flex: 0 0 auto;
  accent-color: #1f2a36;
}

.vlc-consent span {
  color: #5f6872;
  font-size: 0.86rem;
  line-height: 1.55;
}

.vlc-consent a {
  color: #33485c;
  text-underline-offset: 3px;
}

.vlc-urgent-check {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 14px 16px;
  border: 1px solid rgba(180, 35, 24, 0.22);
  border-radius: 9px;
  background: #fff7f6;
  font-weight: 600 !important;
}

.vlc-urgent-check input {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin-top: 3px;
  padding: 0;
  flex: 0 0 auto;
  accent-color: #b42318;
}

.vlc-urgent-check span {
  color: #4b3030;
  line-height: 1.5;
}

.vlc-step-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 26px;
}

.vlc-step-actions--next {
  justify-content: flex-end;
}

.vlc-next,
.vlc-back,
.vlc-submit {
  min-height: 48px;
  padding: 12px 23px;
  border-radius: 7px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.vlc-next,
.vlc-submit {
  border: 1px solid #1f2a36;
  background: #1f2a36;
  color: #fff;
}

.vlc-back {
  border: 1px solid #c9ced3;
  background: #fff;
  color: #1f2a36;
}

.vlc-next:hover,
.vlc-next:focus,
.vlc-submit:hover,
.vlc-submit:focus {
  border-color: #b38a57;
  background: #b38a57;
  color: #fff;
  transform: translateY(-1px);
}

.vlc-back:hover,
.vlc-back:focus {
  border-color: #b38a57;
  color: #8b6034;
}

.vlc-submit:disabled {
  cursor: wait;
  opacity: 0.65;
  transform: none;
}

.vlc-submit-note {
  max-width: 520px;
  margin: 14px 0 0 auto;
  color: #7a8794;
  font-size: 0.8rem;
  line-height: 1.5;
  text-align: right;
}

.vlc-form-status {
  display: none;
  margin-bottom: 20px;
  padding: 12px 14px;
  border-radius: 9px;
  line-height: 1.5;
}

.vlc-form-status:not(:empty) {
  display: block;
}

.vlc-form-status-success {
  background: #e7f7ed;
  color: #155b2d;
}

.vlc-form-status-error {
  background: #fdebec;
  color: #8b1e24;
}

.vlc-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

@media (max-width: 700px) {
  .vlc-request-form {
    padding: 22px 17px;
    scroll-margin-top: 100px;
    border-radius: 14px;
  }

  .vlc-form-progress {
    margin: 22px 0 26px;
  }

  .vlc-progress-item {
    min-width: 62px;
  }

  .vlc-progress-item strong {
    font-size: 0.69rem;
  }

  .vlc-progress-line {
    width: min(46px, 9vw);
    margin-inline: 2px;
  }

  .vlc-form-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .vlc-field-full {
    grid-column: auto;
  }

  .vlc-field-date {
    max-width: none;
  }

  .vlc-step-actions {
    flex-wrap: wrap;
  }

  .vlc-step-actions .vlc-submit,
  .vlc-step-actions .vlc-next,
  .vlc-step-actions .vlc-back {
    width: 100%;
  }

  .vlc-step-actions--final .vlc-back {
    order: 2;
  }

  .vlc-step-actions--final .vlc-submit {
    order: 1;
  }

  .vlc-submit-note {
    max-width: none;
    margin-left: 0;
    text-align: center;
  }
}

/* Conditional status/stage fields on step 2 */
.vlc-field[hidden] {
  display: none !important;
}
