.quote-section {
  padding-block: var(--section-y);
  color: var(--dark);
  background: var(--white);
}
.quote-section[data-background="paper"] { background: var(--white); }
.quote-container { max-width: calc(var(--narrow) + 2 * var(--gutter)); }
.quote-intro { max-width: 800px; margin-bottom: var(--space-48); }
.quote-intro h2 { margin: 0 0 var(--heading-copy-gap); }
.quote-intro > p { max-width: 600px; margin: 0; color: var(--gray); }
.quote-intro > p:empty { display: none; }
.quote-body { max-width: 100%; }
.quote-section form { margin: 0; }
.quote-flow { scroll-margin-top: 120px; }
.quote-section [hidden] { display: none !important; }
.quote-progress, .quote-step-status { display: none; }
.quote-section form:not(.quote-enhanced) .quote-controls button { display: none; }
.quote-section form:not(.quote-enhanced) .quote-review { display: none; }
.quote-enhanced .quote-progress {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 0;
  list-style: none;
  margin: 0 0 var(--space-40);
  padding: 10px;
  min-height: 64px;
  border-radius: var(--radius-md);
  background: var(--switch-bar-background);
  isolation: isolate;
  position: relative;
}
.quote-progress-marker {
  position: absolute;
  top: 10px;
  left: 10px;
  height: calc(100% - 20px);
  width: calc((100% - 20px) / var(--quote-steps, 5));
  border-radius: var(--radius-sm);
  background: var(--white);
  pointer-events: none;
  z-index: -1;
  transition: transform 250ms var(--ease-out);
}
.quote-progress li { margin: 0; min-width: 0; }
.quote-progress button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-12);
  border: 0;
  background: transparent;
  padding: 10px 8px;
  min-height: 44px;
  width: 100%;
  border-radius: var(--radius-sm);
  color: var(--gray);
  font: 500 var(--fs-small)/1.4 var(--font);
  text-align: left;
  cursor: pointer;
  transition: color 200ms ease, opacity 200ms ease;
}
.quote-progress-number { font-variant-numeric: tabular-nums; }
.quote-progress button[aria-current] { color: var(--dark); }
.quote-progress-number { color: var(--red); }
.quote-progress button.is-complete { color: var(--dark); }
.quote-progress button:disabled { cursor: default; opacity: .55; }
.quote-step { border: 0; padding: 0; margin: 0 0 var(--space-32); min-width: 0; }
.quote-step > legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: var(--space-32);
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: var(--lh-heading);
  letter-spacing: 0;
}
.quote-step > legend:focus { outline: none; }
.quote-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-24); }
.quote-question { display: block; margin: 0; padding: 0; border: 0; min-width: 0; }
.quote-question.is-wide, .quote-review { grid-column: 1 / -1; }
.quote-question > legend, .quote-question > .quote-label {
  display: block;
  padding: 0;
  margin: 0 0 var(--space-12);
  font-size: var(--fs-ui);
  font-weight: 500;
  line-height: 1.5;
}
.quote-question .wpcf7-form-control-wrap { display: block; min-width: 0; }
:is(.quote-section, .contact-general) input:is([type="text"], [type="email"], [type="tel"], [type="url"]),
:is(.quote-section, .contact-general) textarea, :is(.quote-section, .contact-general) select {
  display: block;
  width: 100%;
  min-width: 0;
  padding: var(--space-16);
  border: 1px solid var(--gray);
  border-radius: var(--radius-sm);
  background: var(--white);
  color: var(--dark);
  font: 400 var(--fs-ui)/1.5 var(--font);
}
:is(.quote-section, .contact-general) textarea { min-height: 112px; resize: vertical; }
:is(.quote-section, .contact-general) input::placeholder, :is(.quote-section, .contact-general) textarea::placeholder { color: var(--gray); opacity: 1; }
.quote-section :focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
:is(.quote-section, .contact-general) :is(.wpcf7-radio, .wpcf7-checkbox) {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
}
:is(.quote-section, .contact-general) .wpcf7-list-item { display: block; margin: 0; max-width: 100%; }
:is(.quote-section, .contact-general) .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  padding: 14px 16px;
  min-height: 52px;
  border: 1px solid var(--gray);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: var(--fs-ui);
  line-height: 1.4;
  background: transparent;
  transition: border-color var(--dur-fast) ease, background-color var(--dur-fast) ease;
}
:is(.quote-section, .contact-general) .wpcf7-list-item label:has(input:checked) { border-color: var(--dark); background: var(--white); }
:is(.quote-section, .contact-general) input:is([type="radio"], [type="checkbox"]) { width: 18px; height: 18px; flex: 0 0 18px; accent-color: var(--dark); margin: 0; }
:is(.quote-section, .contact-general) .wpcf7-list-item-label { overflow-wrap: anywhere; }
.quote-enhanced .quote-controls { display: flex; align-items: center; justify-content: space-between; gap: var(--space-24); margin-top: var(--space-32); }
.quote-controls .button { cursor: pointer; }
.quote-controls .quote-next { margin-left: auto; }
.quote-enhanced .quote-step-status { display: block; margin: var(--space-16) 0 0; color: var(--gray); font-size: var(--fs-small); }
.quote-submit { display: inline-flex; position: relative; align-items: center; margin-left: auto; max-width: 100%; }
:is(.quote-section, .contact-general) .quote-submit :is(input, button) { margin: 0; cursor: pointer; max-width: 100%; white-space: normal; height: auto; min-height: 52px; }
:is(.quote-section, .contact-general) .wpcf7-spinner { position: static; order: -1; flex: 0 0 24px; margin: 0 8px 0 0; width: 24px; height: 24px; }
.quote-section .submitting .quote-submit :is(input, button) { opacity: .6; cursor: wait; }
:is(.quote-section, .contact-general) .wpcf7-not-valid-tip, .quote-field-error { display: block; margin-top: 8px; color: #a02030; font-size: var(--fs-small); }
:is(.quote-section, .contact-general) .wpcf7-not-valid { border-color: #a02030; }
:is(.quote-section, .contact-general) .wpcf7 form .wpcf7-response-output { margin: 24px 0 0; padding: 16px; border-radius: var(--radius-sm); font-size: var(--fs-ui); }
.quote-privacy { margin-top: var(--space-24); font-size: var(--fs-small); max-width: 720px; }
.quote-privacy a { text-decoration: underline; }
.quote-review { padding-block: var(--space-16); border-block: 1px solid var(--gray-line); }
.quote-review summary { cursor: pointer; font-weight: 500; padding-block: 8px; }
.quote-review dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; font-size: var(--fs-small); margin: 24px 0 0; }
.quote-review dt { color: var(--gray); }
.quote-review dd { margin: 0; overflow-wrap: anywhere; white-space: pre-line; }
.quote-success { padding-block: var(--space-32); }
.quote-success h3 { margin-top: 0; }
.quote-success p { max-width: 600px; }
.quote-success:focus { outline: none; }
.quote-section[data-theme-block-preview] .quote-step:not(:first-of-type),
.quote-section[data-theme-block-preview] .quote-submit { display: none; }
@media (hover: hover) and (pointer: fine) {
  :is(.quote-section, .contact-general) .wpcf7-list-item label:hover { border-color: var(--dark); }
  .quote-progress button:not(:disabled):hover { color: var(--dark); }
}
@media (max-width: 767.98px) {
  .quote-intro { margin-bottom: var(--space-32); }
  .quote-fields { grid-template-columns: minmax(0, 1fr); }
  .quote-enhanced .quote-progress { margin-bottom: var(--space-32); padding: 6px; }
  .quote-progress-marker { top: 6px; left: 6px; height: calc(100% - 12px); width: calc((100% - 12px) / var(--quote-steps, 5)); }
  .quote-progress button { display: grid; gap: 4px; padding: 8px 2px; font-size: 11px; width: 100%; min-height: 52px; align-content: center; }
  .quote-progress-number { font-size: 16px; }
  :is(.quote-section, .contact-general) .wpcf7-list-item { width: 100%; }
  .quote-step > legend { margin-bottom: var(--space-24); }
  .quote-controls { flex-wrap: wrap; }
  .quote-review dl { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .quote-review dd { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .quote-progress-marker, .quote-progress button, :is(.quote-section, .contact-general) .wpcf7-list-item label { transition: none; }
}
.contact-general { min-width: 0; }
.contact-general .quote-question { margin-bottom: var(--space-24); }
.contact-general .quote-fields .quote-question { margin-bottom: 0; }
.contact-general .quote-fields { margin-bottom: var(--space-24); }
:is(.quote-section, .contact-general) input:is([type="text"], [type="email"], [type="tel"], [type="url"]),
:is(.quote-section, .contact-general) textarea, :is(.quote-section, .contact-general) select {
  transition: border-color var(--dur-fast) ease;
}
:is(.quote-section, .contact-general) :is(input, textarea, select):focus {
  outline: none;
  border-color: var(--red);
}
:is(.quote-section, .contact-general) input:is([type="radio"], [type="checkbox"]):focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  :is(.quote-section, .contact-general) :is(input, textarea, select) { transition: none; }
}
