/* Quote form. Consumes the theme's own tokens so it inherits the brand rather
   than restating it; falls back to sane values if loaded without the theme. */
.mp-quote { display: grid; gap: 1rem; max-width: 44rem; margin: 2rem 0;
  padding: 1.6rem; border-radius: 14px;
  background: var(--cp-surface-raised, #fff);
  border: 1px solid var(--cp-hairline, rgba(38,50,56,.16));
  font-family: var(--cp-font-text, inherit); }
.mp-quote__title { font-family: var(--cp-font-display, inherit); margin: 0;
  font-size: 1.6rem; line-height: 1.15; color: var(--cp-text, #263238); }
.mp-quote__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 620px) { .mp-quote__row { grid-template-columns: 1fr; } }
.mp-quote label { display: grid; gap: .35rem; font-size: .85rem;
  color: var(--cp-text-soft, rgba(38,50,56,.72)); }
.mp-quote input, .mp-quote select, .mp-quote textarea {
  width: 100%; padding: .7rem .8rem; border-radius: 9px; font: inherit;
  color: var(--cp-text, #263238);
  background: var(--cp-surface, #f7f1e9);
  border: 1px solid var(--cp-hairline, rgba(38,50,56,.16)); }
.mp-quote input:focus, .mp-quote select:focus, .mp-quote textarea:focus {
  outline: 2px solid var(--cp-accent, #c7246a); outline-offset: 1px; }
.mp-quote__submit { justify-self: start; padding: .8rem 1.6rem; border: none;
  border-radius: 9px; cursor: pointer; font: inherit; font-weight: 600;
  background: var(--cp-accent, #c7246a); color: var(--cp-on-dark, #fff); }
.mp-quote__submit:disabled { opacity: .55; cursor: progress; }
.mp-quote__status:empty { display: none; }
.mp-quote__status { margin: 0; font-size: .88rem; color: var(--cp-text-soft, rgba(38,50,56,.72)); }
/* Off-screen rather than display:none — bots skip hidden fields. */
.mp-quote__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
