.cfri-request {
  --cfri-ink: #171717;
  --cfri-muted: #535353;
  --cfri-line: #d4d4d4;
  --cfri-error: #a32121;
  margin-block: 28px;
  padding-block: 26px 0;
  border-top: 1px solid var(--cfri-line);
  color: var(--cfri-ink);
  scroll-margin-top: 120px;
  text-align: start;
}
.cfri-request, .cfri-request * { box-sizing: border-box; }
.cfri-request h2 {
  margin: 0 0 14px;
  font-family: var(--theme-heading-font-family, Sora, sans-serif);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -0.025em;
  color: var(--cfri-ink);
  text-wrap: balance;
}
.cfri-request .cfri-intro { margin: 0 0 18px; font-size: 16px; line-height: 1.6; overflow-wrap: anywhere; }
.cfri-request .cfri-required { margin: 0 0 22px; color: var(--cfri-muted); font-size: 13px; }
.cfri-request .cfri-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.cfri-request .cfri-grid > p { margin: 0; }
.cfri-request .cfri-cell > p { margin: 0; }
.cfri-request .cfri-field { display: block; min-width: 0; margin: 0; font-size: 14px; font-weight: 500; line-height: 1.5; }
.cfri-request .cfri-field > .wpcf7-form-control-wrap { display: block; margin-top: 7px; }
.cfri-request .cfri-wide { grid-column: 1 / -1; }
.cfri-request .cfri-optional { color: var(--cfri-muted); font-weight: 400; font-size: 12px; }
.cfri-request input:not([type="checkbox"]):not([type="submit"]):not([type="hidden"]),
.cfri-request select,
.cfri-request textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 13px;
  border: 1px solid var(--cfri-line);
  border-radius: 4px;
  background-color: #fff;
  color: var(--cfri-ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  caret-color: var(--cfri-ink);
}
.cfri-request select { padding-inline-end: 34px; }
.cfri-request textarea { height: 112px; min-height: 112px; resize: vertical; }
.cfri-request ::placeholder { color: #686868; opacity: 1; }
.cfri-request input:focus-visible, .cfri-request select:focus-visible,
.cfri-request textarea:focus-visible, .cfri-request a:focus-visible {
  outline: 2px solid var(--cfri-ink);
  outline-offset: 3px;
}
.cfri-request ::selection { background: #171717; color: #fff; }
.cfri-request .cfri-privacy { margin: 22px 0 18px; font-size: 13px; line-height: 1.65; color: var(--cfri-muted); }
.cfri-request .cfri-privacy .wpcf7-list-item { margin: 0; }
.cfri-request .cfri-privacy label { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; cursor: pointer; }
.cfri-request .cfri-privacy input[type="checkbox"] { appearance: auto; flex: 0 0 19px; width: 19px; height: 19px; margin: 2px 0 0; accent-color: var(--cfri-ink); }
.cfri-request .cfri-privacy a { color: var(--cfri-ink); text-decoration: underline; text-underline-offset: 3px; }
.cfri-request .cfri-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.cfri-request .cfri-actions > p { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; }
.cfri-request input[type="submit"] {
  min-height: 50px;
  margin: 0;
  padding: 13px 25px;
  border: 1px solid var(--cfri-ink);
  border-radius: var(--theme-button-border-radius, 60px);
  background: var(--cfri-ink);
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  white-space: normal;
  cursor: pointer;
  touch-action: manipulation;
}
@media (hover: hover) {
  .cfri-request input[type="submit"]:hover { background: #444; border-color: #444; }
}
.cfri-request input[type="submit"]:disabled { opacity: .6; cursor: wait; }
.cfri-request form.submitting input[type="submit"] { opacity: .6; pointer-events: none; }
.cfri-request .cfri-footnote { margin: 12px 0 0; color: var(--cfri-muted); font-size: 12px; line-height: 1.6; }
.cfri-request .wpcf7-spinner { margin: 0; }
.cfri-request .wpcf7-not-valid-tip { color: var(--cfri-error); margin-top: 5px; font-size: 13px; font-weight: 400; }
.cfri-request [aria-invalid="true"] { border-color: var(--cfri-error) !important; }
.cfri-request .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 13px 16px; border: 1px solid var(--cfri-line); border-radius: 4px; font-size: 14px; }
.cfri-request .wpcf7 form.sent .wpcf7-response-output { border-color: #26713f; color: #205c35; background: #f4faf6; }
.cfri-request .wpcf7 form.invalid .wpcf7-response-output,
.cfri-request .wpcf7 form.failed .wpcf7-response-output,
.cfri-request .wpcf7 form.aborted .wpcf7-response-output { border-color: var(--cfri-error); color: var(--cfri-error); }
@media (max-width: 480px) {
  .cfri-request .cfri-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .cfri-request input[type="submit"] { width: 100%; }
  .cfri-request .cfri-actions > p { width: 100%; }
}
