/* The [nfd_price_request] form. Scoped to .nfd-pr so it doesn't touch the rest of the page; the font
   comes from the page (Montserrat on the live site). */
.nfd-pr {
  --nfd-ink: #332e2b;
  --nfd-soft: #685c56;
  --nfd-action: #745d54;
  --nfd-action-hover: #58473f;
  --nfd-pale: #efeae7;
  --nfd-line: #d9ccc4;
  --nfd-eyebrow: #766157;
  color: var(--nfd-ink);
  max-width: 44rem;
  line-height: 1.6;
  scroll-margin-top: 6rem;
}
.nfd-pr *, .nfd-pr *::before, .nfd-pr *::after { box-sizing: border-box; }
.nfd-pr p { margin: 0; }
.nfd-pr a { color: var(--nfd-action); }
.nfd-pr__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.nfd-pr__step { border: 0; margin: 0; padding: 0; min-width: 0; }
.nfd-pr__step + .nfd-pr__step { margin-top: 2.25rem; }
.nfd-pr__step legend { padding: 0; margin-bottom: 1rem; font-size: 1.15rem; font-weight: 500; line-height: 1.35; color: var(--nfd-ink); }

.nfd-pr__group + .nfd-pr__group { margin-top: 1.25rem; }
.nfd-pr__group-name { font-size: .75rem !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--nfd-eyebrow); margin-bottom: .5rem !important; }
.nfd-pr__options { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem; }
.nfd-pr__options--two { grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); }

.nfd-pr__check { position: relative; display: flex; align-items: center; gap: .7rem; min-height: 3.25rem; padding: .7rem .9rem; background: #fff; border: 1px solid var(--nfd-line); border-radius: 6px; cursor: pointer; font-size: .9rem; line-height: 1.35; transition: border-color 120ms ease, background-color 120ms ease; }
.nfd-pr__check:hover { border-color: var(--nfd-action); }
.nfd-pr__check input { flex: none; width: 1.15rem; height: 1.15rem; margin: 0; accent-color: var(--nfd-action); }
.nfd-pr__check:has(input:checked) { border-color: var(--nfd-action); background: var(--nfd-pale); }
.nfd-pr__check:has(input:focus-visible) { outline: 2px solid var(--nfd-action); outline-offset: 2px; }

.nfd-pr__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.nfd-pr__field { display: grid; gap: .35rem; font-size: .875rem; font-weight: 500; }
.nfd-pr__field input { width: 100%; font: inherit; font-weight: 400; font-size: 1rem; color: var(--nfd-ink); min-height: 3.25rem; padding: .75rem .9rem; border: 1px solid var(--nfd-line); border-radius: 4px; background: #fff; }
.nfd-pr__field input:focus { border-color: var(--nfd-action); outline: none; box-shadow: 0 0 0 3px rgb(116 93 84 / .18); }

.nfd-pr__consent { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1rem; font-size: .8125rem; color: var(--nfd-soft); cursor: pointer; }
.nfd-pr__consent input { flex: none; width: 1.15rem; height: 1.15rem; margin: .15rem 0 0; accent-color: var(--nfd-action); }

.nfd-pr__submit { margin-top: 2rem; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; }
.nfd-pr__button { display: inline-flex; align-items: center; justify-content: center; min-height: 3.25rem; padding: .9rem 1.5rem; background: var(--nfd-action); color: #fff; border: 1px solid var(--nfd-action); border-radius: 4px; font: inherit; font-size: .95rem; font-weight: 500; cursor: pointer; transition: background-color 140ms ease; }
.nfd-pr__button:hover { background: var(--nfd-action-hover); border-color: var(--nfd-action-hover); }
.nfd-pr__button:disabled { opacity: .7; cursor: progress; }
.nfd-pr__small { font-size: .8125rem; color: var(--nfd-soft); }

.nfd-pr__new-note { margin-top: 1rem; padding: 1rem 1.15rem; background: var(--nfd-pale); border-radius: 6px; font-size: .9rem; }
.nfd-pr__new-note > * + * { margin-top: .4rem !important; }
.nfd-pr__new-note[hidden], .nfd-pr__group[hidden], .nfd-pr__check[hidden] { display: none; }
.nfd-pr__phone { margin-top: 1.25rem !important; max-width: 36rem; }
.nfd-pr__error { margin-bottom: 1.5rem !important; padding: .8rem 1rem; border-left: 3px solid #a3402f; background: #fbf1ee; color: #6e2a1f; font-size: .9rem; }
.nfd-pr__error[hidden] { display: none; }

.nfd-pr__done { padding: 2rem; background: var(--nfd-pale); border-radius: 10px; }
.nfd-pr__done > * + * { margin-top: .9rem !important; }
.nfd-pr__eyebrow { font-size: .8125rem; font-weight: 500; color: var(--nfd-eyebrow); }
.nfd-pr__title { margin: .25rem 0 0; font-size: 1.75rem; font-weight: 300; line-height: 1.2; letter-spacing: -0.02em; color: var(--nfd-ink); }
.nfd-pr__link { font-weight: 500; }

@media (max-width: 34rem) {
  .nfd-pr__button { width: 100%; }
}
