.quote-page {
  background:#faf9f6;
  color:var(--purple)
}

.quote-hero,.quote-layout {
  margin:0 var(--edge)
}

.quote-hero {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:8%;
  align-items:center;
  padding:var(--hero-top) 0 48px
}

.quote-hero h1 {
  font-size:clamp(40px,4.4vw,64px);
  line-height:1.08;
  margin:20px 0
}

.quote-hero h1 em {
  color:#956abe
}

.quote-hero>div>p {
  font-size:18px;
  line-height:1.7;
  max-width:600px;
  color:#70677e
}

.quote-promise {
  display:flex;
  align-items:center;
  gap:24px;
  padding:28px;
  border-radius:55px 20px 20px 20px;
  background:#eee6f6
}

.quote-promise strong {
  font:700 23px Quicksand,sans-serif
}

.quote-promise p {
  font-size:15px;
  line-height:1.7;
  margin-top:10px;
  color:#70677e
}

.quote-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:35px;
  align-items:start;
  margin-bottom:85px
}

.dq-card {
  background:white;
  border:1px solid #e5ddeb;
  border-radius:28px;
  overflow:hidden;
  scroll-margin-top:20px
}

.dq-prog {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:28px 32px 23px;
  gap:18px;
  border-bottom:1px solid #eee6f6
}

.dqp-lab {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:13px;
  font-weight:800;
  color:#9789a4
}

.dqp-n {
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  border-radius:50%;
  background:#f1ecf6;
  flex-shrink:0
}

.dqp-bar {
  height:3px;
  background:#eee6f6;
  border-radius:3px;
  margin-top:14px
}

.active .dqp-n {
  background:var(--purple);
  color:white
}

.active .dqp-lab,.done .dqp-lab {
  color:var(--purple)
}

.active .dqp-bar {
  background:var(--coral)
}

.done .dqp-bar {
  background:var(--purple)
}

.done .dqp-n {
  background:#dcd0ec;
  color:var(--purple)
}

.dq-body {
  padding:32px
}

.dq-step {
  display:none
}

.dq-step.active {
  display:block
}

.dq-step h2 {
  font-size:34px;
  line-height:1.15;
  margin-bottom:12px
}

.dq-sub {
  font-size:15px;
  color:#83738f;
  line-height:1.7;
  margin-bottom:26px
}

.dq-field-lab {
  font-weight:800;
  font-size:15px;
  line-height:1.6;
  margin:24px 0 12px
}

.dq-req {
  color:#c5403f
}

.opt {
  font-size:12px;
  font-weight:400;
  color:#83738f
}

.dq-chips {
  display:flex;
  flex-wrap:wrap;
  gap:10px
}

.dq-chip {
  background:#faf9f6;
  border:1px solid #e1d7e9;
  border-radius:14px;
  padding:14px 18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--purple);
  font:600 14px Nunito,sans-serif;
  cursor:pointer;
  line-height:1.4;
  text-align:left;
  transition:background .15s,border-color .15s
}

.dq-chip:hover {
  background:#f0e8f7;
  border-color:#b49acb
}

.dq-chip.sel {
  border-color:var(--purple);
  background:#eee6f6;
  box-shadow:inset 0 0 0 1px var(--purple)
}

.dq-chip.sel:after {
  content:'✓';
  margin-left:auto;
  font-weight:900
}

.dqc-ico {
  display:inline-flex;
  width:24px;
  height:24px;
  align-items:center;
  justify-content:center;
  flex-shrink:0
}

.dqc-ico svg {
  width:24px;
  height:24px
}

.dq-chips[data-field=type] {
  display:grid;
  grid-template-columns:1fr 1fr
}

.dq-chips[data-field=type] .dq-chip {
  min-height:76px;
  font-size:16px
}

.dq-chip span:not(.dqc-ico) {
  font-size:12px;
  color:#83738f
}

.dq-grid2 {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}

.dq-input {
  width:100%;
  min-height:53px;
  border:1px solid #ded1e9;
  background:white;
  border-radius:13px;
  padding:15px;
  font:16px Nunito,sans-serif;
  color:var(--purple)
}

.dq-input:focus {
  outline:2px solid #c6aee9;
  outline-offset:2px;
  border-color:var(--purple)
}

.dq-input::placeholder {
  color:#9b8eaa
}

textarea.dq-input {
  min-height:140px;
  resize:vertical
}

.dq-nav {
  display:flex;
  align-items:center;
  gap:16px;
  padding:24px 32px;
  border-top:1px solid #eee6f6
}

.dq-next,.dq-submit {
  border:0;
  background:var(--coral);
  color:var(--purple);
  padding:17px 24px;
  border-radius:35px;
  font:700 16px Quicksand,sans-serif;
  display:inline-flex;
  align-items:center;
  gap:22px;
  cursor:pointer;
  margin-left:auto
}

.dq-next:hover,.dq-submit:hover {
  background:#ff827c
}

.dq-submit:disabled {
  opacity:.5;
  cursor:wait
}

.dq-back {
  display:flex;
  align-items:center;
  gap:10px;
  background:none;
  border:0;
  color:var(--purple);
  font-size:14px;
  font-weight:800;
  cursor:pointer
}

.dq-back svg {
  width:18px;
  height:18px
}

.form-foot {
  font-size:12px;
  line-height:1.7;
  color:#83738f;
  margin-top:18px
}

.form-foot a {
  text-decoration:underline
}

.dq-recap .rr {
  display:flex;
  gap:15px;
  justify-content:space-between;
  border-bottom:1px solid #e4d9ed;
  padding:10px 0;
  font-size:13px;
  line-height:1.5
}

.dq-recap .rk {
  color:#83738f
}

.dq-recap .rv {
  font-weight:800;
  text-align:right;
  overflow-wrap:anywhere;
  max-width:65%
}

#dqRecap {
  background:#f4eff8;
  padding:15px 20px;
  border-radius:16px;
  margin-bottom:25px
}

.quote-aside {
  position:sticky;
  top:24px
}

.quote-aside figure {
  position:relative;
  height:240px;
  margin:0;
  overflow:hidden;
  border-radius:60px 20px 0 0
}

.quote-aside figure>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%
}

.quote-aside figure:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(transparent,#35127ab3)
}

.quote-aside figcaption {
  position:absolute;
  bottom:23px;
  left:24px;
  z-index:1;
  font-size:16px;
  color:white;
  line-height:1.5
}

.quote-aside figcaption strong {
  font:700 25px Quicksand,sans-serif
}

.quote-summary {
  padding:25px;
  background:#eee6f6;
  border-radius:0 0 20px 20px
}

.quote-summary .eyebrow {
  font-size:10px;
  letter-spacing:.08em
}

.quote-help {
  padding:25px 5px
}

.quote-help strong {
  font:700 18px Quicksand,sans-serif
}

.quote-help a {
  display:block;
  font-size:20px;
  font-weight:800;
  margin:13px 0
}

.quote-help>span {
  font-size:13px;
  color:#83738f;
  line-height:1.7
}

.dq-success {
  display:none;
  padding:40px 32px
}

.dq-success.show {
  display:block
}

.dq-success h2 {
  font-size:34px;
  margin:22px 0 15px
}

.dq-success p {
  line-height:1.7;
  color:#70677e
}

.dq-success .dq-recap {
  margin:25px 0
}

.dq-success .dq-sub {
  font-size:13px;
  margin-top:18px
}

#destChips {
  max-height:300px;
  overflow:auto;
  padding:3px
}

#destChips .dq-chip {
  flex-direction:column;
  align-items:flex-start;
  gap:4px
}

#destChips .dq-help {
  width:100%;
  background:#fff0ea;
  border-style:dashed
}

.dq-chip[hidden],[hidden] {
  display:none!important
}

@media(max-width:1100px) {
  .quote-layout {
    grid-template-columns:minmax(0,1fr) 280px;
    gap:22px
  }

  .dq-prog {
    padding:22px;
    gap:10px
  }

  .dqp-lab {
    font-size:11px;
    gap:6px
  }

  .dq-body {
    padding:25px
  }

  .dq-grid2 {
    gap:18px
  }

  .quote-promise {
    padding:24px;
    gap:15px
  }

  .quote-promise img {
    width:50px;
    height:50px
  }

  .quote-promise strong {
    font-size:20px
  }

}

@media(max-width:850px) {
  .quote-layout {
    grid-template-columns:1fr
  }

  .quote-aside {
    position:static;
    display:none
  }

  .quote-hero {
    grid-template-columns:1fr;
    padding-bottom:30px;
    gap:22px
  }

  .quote-promise {
    display:none
  }

  .quote-hero h1 {
    font-size:43px
  }

  .dq-card {
    border-radius:20px
  }

  .dq-step h2 {
    font-size:30px
  }

  .dq-prog {
    gap:12px
  }

  .dqp-lab {
    flex-direction:column;
    align-items:flex-start;
    font-size:12px
  }

  .quote-layout {
    margin-bottom:50px
  }

}

@media(max-width:500px) {
  .quote-hero h1 {
    font-size:36px
  }

  .quote-hero>div>p {
    font-size:16px
  }

  .dq-body {
    padding:23px 18px
  }

  .dq-prog {
    padding:20px 18px;
    gap:10px
  }

  .dqp-lab {
    font-size:10px
  }

  .dq-grid2 {
    grid-template-columns:1fr;
    gap:0
  }

  .dq-chip {
    padding:12px;
    font-size:13px
  }

  .dq-chips[data-field=type] .dq-chip {
    font-size:14px;
    gap:8px
  }

  .dq-nav {
    padding:20px 18px
  }

  .dq-next,.dq-submit {
    font-size:14px;
    padding:15px 18px;
    gap:12px
  }

  .dq-step h2 {
    font-size:27px
  }

  .opt {
    display:block
  }

  .dq-success {
    padding:28px 20px
  }

}

@media(prefers-reduced-motion:reduce) {
  .dq-chip {
    transition:none
  }

}

.dq-counts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}

.dq-counts label {
  display:block;
  font-size:14px;
  font-weight:700;
  margin-bottom:9px
}

.dq-field-lab {
  display:block
}

.dq-field-help {
  font-size:13px;
  color:#83738f;
  line-height:1.6;
  margin:9px 0 14px
}

.dq-program-tools {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:12px
}

.dq-dictate,#removePdf {
  border:1px solid #c6aee9;
  background:#eee6f6;
  border-radius:25px;
  color:var(--purple);
  padding:12px 17px;
  font:700 14px Nunito,sans-serif;
  cursor:pointer
}

.dq-dictate[aria-pressed=true] {
  background:#ffe9e3;
  border-color:var(--coral)
}

.dq-upload {
  border:1px dashed #b69acb;
  border-radius:18px;
  background:#faf9f6;
  padding:22px;
  margin-top:24px
}

.dq-upload label {
  display:block;
  cursor:pointer
}

.dq-upload strong {
  font:700 20px Quicksand,sans-serif;
  display:block;
  margin-bottom:8px
}

.dq-upload label span {
  font-size:13px;
  color:#83738f
}

.dq-upload input {
  margin-top:18px;
  width:100%;
  font:14px Nunito,sans-serif;
  color:var(--purple)
}

.dq-upload input::file-selector-button {
  border:0;
  border-radius:25px;
  padding:12px 18px;
  background:var(--purple);
  color:white;
  font:700 14px Nunito,sans-serif;
  margin-right:12px;
  cursor:pointer
}

.dq-file-row {
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:15px;
  font-size:13px;
  overflow-wrap:anywhere
}

.dq-file-row span {
  max-width:100%
}

.dq-address {
  margin-top:12px
}

.dq-dates input {
  min-width:0
}

#dictationStatus {
  flex:1;
  min-width:180px;
  margin:0
}

.dq-dates input[type=date] {
  min-height:55px
}

@media(max-width:500px) {
  .dq-dates {
    gap:0
  }

  .dq-upload {
    padding:18px
  }

  .dq-counts {
    gap:10px
  }

}
