.rf-wrap {
  --rf-primary-color: #1c4886;
  --rf-accent-color: #029f49;
  --rf-button-color: #0ea44b;
  --rf-button-text-color: #ffffff;
  --rf-alt-background: #fafbfc;
  --rf-font-family: 'Inter', sans-serif;
  --rf-max-width: 1180px;
  --rf-text-color: #111827;
  --rf-muted-color: #6b7280;
  --rf-border-color: #d9e0ea;
  --rf-error-color: #b42318;
  --rf-surface-color: #ffffff;
  --rf-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
  color: var(--rf-text-color);
  font-family: var(--rf-font-family);
  max-width: var(--rf-max-width);
  margin: 0 auto;
}

.rf-wrap * {
  box-sizing: border-box;
}

.rf-form {
  background: var(--rf-surface-color);
  border: 1px solid #edf2f7;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: var(--rf-shadow);
}

.rf-wrap--quote .rf-form {
  border-radius: 1.25rem;
}

.rf-section {
  padding: 2.3rem 2.9rem;
}

.rf-section--divider {
  border-top: 1px solid #e5e7eb;
}

.rf-section--alt {
  background: var(--rf-alt-background);
}

.rf-wrap--contact .rf-section--alt {
  background: #ffffff;
}

.rf-section__head {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  margin-bottom: 1.75rem;
}

.rf-section__number {
  width: 3.5rem;
  height: 3.5rem;
  min-width: 3.5rem;
  border-radius: 0.625rem;
  background: var(--rf-primary-color);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
}

.rf-section__title {
  margin: 0 0 0.25rem;
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.33;
  color: #111827;
}

.rf-section__description {
  margin: 0;
  color: var(--rf-muted-color);
  font-size: 0.9375rem;
  line-height: 1.55;
}

.rf-fields {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.rf-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.3rem;
}

.rf-row--thirds {
  grid-template-columns: 1.2fr 0.65fr 0.65fr;
}

.rf-row--half {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.rf-row--half .rf-field:first-child:last-child {
  grid-column: 1 / 2;
}

.rf-row--submit {
  display: block;
}

.rf-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

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

.rf-label,
.rf-legend {
  display: block;
  margin: 0;
  font-size: 0.94rem;
  font-weight: 800;
  color: #334155;
}

.rf-legend {
  margin-bottom: 0.9rem;
  padding: 0;
}

.rf-req-star {
  color: var(--rf-primary-color);
}

.rf-input,
.rf-select,
.rf-textarea {
  width: 100%;
  padding: 0.8125rem 1rem !important;
  border: 1px solid var(--rf-border-color) !important;
  border-radius: 0.5rem;
  background: #ffffff;
  color: var(--rf-text-color) !important;
  font: inherit;
  font-size: 0.9375rem;
  line-height: 1.45;
  outline: none;
  box-shadow: none;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
  -webkit-appearance: none;
  appearance: none;
}

.rf-input::placeholder,
.rf-textarea::placeholder {
  color: #9aa4b2;
}

.rf-input:focus,
.rf-select:focus,
.rf-textarea:focus {
  border-color: var(--rf-primary-color) !important;
  box-shadow: 0 0 0 4px rgba(28, 72, 134, 0.11);
}

.rf-select {
  padding-right: 3rem !important;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23727f91' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1rem;
}

.rf-textarea {
  min-height: 7.5rem;
  resize: vertical;
}

.rf-wrap--contact .rf-textarea {
  min-height: 16rem;
}

.rf-choice-group {
  margin: 0;
  padding: 0;
  border: 0;
}

.rf-radio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}

.rf-radio-pill {
  display: block;
  cursor: pointer;
}

.rf-radio-pill input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

.rf-radio-pill > span {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 4.2rem;
  padding: 1rem 1.15rem !important;
  border: 2px solid #dfe5ef;
  border-radius: 0.95rem;
  background: #ffffff;
  color: #334155;
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.35;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background-color 0.18s ease,
    color 0.18s ease;
}

.rf-radio-pill > span i {
  color: var(--rf-primary-color);
  flex-shrink: 0;
}

.rf-radio-pill input:checked + span,
.rf-radio-pill.is-active > span {
  border-color: var(--rf-accent-color);
  background: #eefaf3;
  color: #143d27;
  box-shadow: 0 0 0 1px rgba(2, 159, 73, 0.08);
}

.rf-radio-pill input:checked + span i,
.rf-radio-pill.is-active > span i {
  color: var(--rf-accent-color);
}

.rf-radio-pill input:focus + span {
  box-shadow: 0 0 0 4px rgba(2, 159, 73, 0.14);
}

.rf-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  color: #334155;
  font-size: 1rem;
  line-height: 1.55;
  cursor: pointer;
}

.rf-consent input {
  width: 1.15rem;
  height: 1.15rem;
  min-width: 1.15rem;
  margin-top: 0.2rem;
  accent-color: var(--rf-accent-color);
  cursor: pointer;
}

.rf-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  width: 100%;
  background: #029f49;
  color: #fff;
  border: none;
  border-radius: 0.5rem;
  padding: 1.0625rem 2.5rem;
  font-family: inherit;
  font-size: 1.0625rem;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 14px rgba(2, 159, 73, 0.3);
  transition:
    background 0.2s,
    box-shadow 0.2s;
}

.rf-submit:hover,
.rf-submit:focus {
  background: #35b26d;
  box-shadow: 0 6px 20px rgba(2, 159, 73, 0.4);
}

.rf-submit[disabled] {
  opacity: 0.8;
  cursor: wait;
}

.rf-submit__icon {
  font-size: 1.2em;
  line-height: 1;
}

.rf-error {
  margin: 0.15rem 0 0;
  color: var(--rf-error-color);
  font-size: 0.82rem;
  font-weight: 700;
}

.rf-control--error,
.rf-choice-group--error .rf-radio-pill > span {
  border-color: #e0857e !important;
}

.rf-notice {
  margin-bottom: 1.1rem;
  padding: 1rem 1.1rem;
  border: 1px solid;
  border-radius: 1rem;
}

.rf-notice p {
  margin: 0;
}

.rf-notice--success {
  border-color: #9ad5af;
  background: #eaf8ef;
}

.rf-notice--error {
  border-color: #e8a7a1;
  background: #fff2f1;
}

.rf-error-list {
  margin: 0.8rem 0 0 1.1rem;
  padding: 0;
}

.rf-honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

.rf-turnstile {
  padding: 1.3rem 1.5rem 0;
}

.rf-wrap--contact .rf-form {
  border-radius: 1.4rem;
}

.rf-wrap--contact .rf-section {
  padding-top: 2.7rem;
  padding-bottom: 2.7rem;
}

.rf-wrap--contact .rf-section--divider {
  border-top-color: #e8edf3;
}

@media (max-width: 960px) {
  .rf-row,
  .rf-row--thirds,
  .rf-row--half,
  .rf-radio-grid {
    grid-template-columns: 1fr;
  }

  .rf-row--half .rf-field:first-child:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .rf-form {
    border-radius: 1rem;
  }

  .rf-section {
    padding: 1.5rem 1.1rem;
  }

  .rf-section__head {
    gap: 1rem;
    margin-bottom: 1.4rem;
  }

  .rf-section__number {
    width: 3rem;
    height: 3rem;
    min-width: 3rem;
    font-size: 1.35rem;
    border-radius: 0.72rem;
  }

  .rf-input,
  .rf-select,
  .rf-textarea {
    min-height: 3.45rem;
    font-size: 0.97rem;
  }

  .rf-submit {
    min-height: 3.7rem;
    font-size: 1rem;
  }

  .rf-turnstile {
    padding: 1rem 1rem 0;
  }
}
