#pricing-wizard {
  --blue:#3b3b3b;
  --ink:#292929;
  --muted:#676767;
  --line:#e1e1e1;
  --paper:#f8f8f8;
  --selection-surface:#f2f2f2;
  padding-block: 16px 64px;
  font-size: 15px;
  line-height: 1.8;
}
#pricing-wizard [hidden] {
  display: none !important;
}
#pricing-wizard button,
#pricing-wizard input,
#pricing-wizard select {
  font: inherit;
}
#pricing-wizard .wizard-contact-note {
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: var(--muted);
}
#pricing-wizard .pdf-recipient select {
  min-height: 44px;
  padding: 8px;
  background: white;
  border: 1px solid #bababa;
}
#pricing-wizard .sheet-note {
  margin: 10px 0;
}
#pricing-wizard a.button {
  display: inline-flex;
}
#pricing-wizard button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
#pricing-wizard .flow-main {
  scroll-margin-top: 104px;
}
#pricing-wizard .flow-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 44px;
  align-items: start;
}
#pricing-wizard .flow-main {
  min-width: 0;
}
#pricing-wizard .progress {
  display: flex;
  gap: 9px;
  align-items: center;
  margin: 0 0 26px;
  padding: 0;
  list-style: none;
}
#pricing-wizard .progress li {
  flex: 1;
  height: 3px;
  background: #e9e9e9;
}
#pricing-wizard .progress li.done,
#pricing-wizard .progress li.current {
  background: var(--blue);
}
#pricing-wizard .question-kicker {
  font-size: 11px;
  color: var(--blue);
  font-weight: 600;
  margin-bottom: 10px;
}
#pricing-wizard .question h2 {
  font-size: 25px;
  font-weight: 650;
}
#pricing-wizard .question-hint {
  font-size: 12px;
  color: var(--muted);
  margin: 8px 0 22px;
}
#pricing-wizard .choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
#pricing-wizard .choice {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 20px;
  min-height: 132px;
  border: 1px solid var(--line);
  background: white;
  cursor: pointer;
}
#pricing-wizard .choice:has(input:checked) {
  background: var(--selection-surface);
  border-color: var(--blue);
}
#pricing-wizard .choice:has(input:focus-visible) {
  outline: 3px solid #616161;
  outline-offset: 4px;
}
#pricing-wizard .choice input {
  position: absolute;
  top: 20px;
  right: 18px;
  width: 19px;
  height: 19px;
  margin: 0;
  accent-color: var(--blue);
}
#pricing-wizard .choice-icon {
  display: block;
  color: #7a7a7a;
  width: 28px;
  height: 27px;
  margin: 0 0 13px;
}
#pricing-wizard .choice:has(input:checked) .choice-icon {
  color: var(--blue);
}
#pricing-wizard .choice svg {
  width: 27px;
  height: 27px;
  stroke: currentColor;
  stroke-width: 1.4;
  fill: none;
}
#pricing-wizard .choice-title {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.7;
  padding-right: 18px;
}
#pricing-wizard .choice-description {
  display: block;
  font-size: 11px;
  line-height: 1.7;
  color: var(--muted);
  margin-top: 5px;
}
#pricing-wizard .choice-price {
  font-size: 12px;
  color: var(--blue);
  font-variant-numeric: tabular-nums;
  margin-top: 11px;
}
#pricing-wizard .choice.compact {
  min-height: 86px;
  justify-content: center;
  padding: 17px 38px 17px 17px;
}
#pricing-wizard .choice.compact input {
  right: 15px;
  top: 21px;
}
#pricing-wizard .choice.compact .choice-title {
  font-size: 13px;
  padding-right: 0;
  font-weight: 500;
}
#pricing-wizard .choice.compact .choice-description {
  font-size: 11px;
}
#pricing-wizard .hint {
  color: var(--muted);
  font-size: 11px;
  margin: 16px 0 0;
}
#pricing-wizard .navigation {
  display: flex;
  gap: 12px;
  justify-content: space-between;
  align-items: center;
  margin-top: 26px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
#pricing-wizard .navigation .primary {
  margin-left: auto;
}
#pricing-wizard .button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid #cacaca;
  padding: 11px 22px;
  background: #ffffff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 550;
  line-height: 1.6;
}
#pricing-wizard .button.primary {
  background: var(--blue);
  color: #ffffff;
  border-color: var(--blue);
}
#pricing-wizard .text-button {
  border: 0;
  background: none;
  padding: 7px 0;
  min-height: 44px;
  text-align: left;
  color: var(--blue);
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 4px;
}
#pricing-wizard .button-arrow {
  font-size: 18px;
  line-height: 1;
}
#pricing-wizard .error {
  color: #4a4a4a;
  background: #f6f6f6;
  padding: 12px;
  margin: 14px 0;
  font-size: 12px;
}
#pricing-wizard .flow-aside {
  position: sticky;
  top: 20px;
  border-top: 2px solid var(--blue);
  background: var(--paper);
  padding: 22px;
}
#pricing-wizard .flow-aside h2 {
  font-size: 13px;
  margin-bottom: 18px;
}
#pricing-wizard .answer-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
#pricing-wizard .answer-list li {
  padding: 13px 0;
  border-top: 1px solid var(--line);
}
#pricing-wizard .answer-list small {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 5px;
}
#pricing-wizard .answer-row {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}
#pricing-wizard .answer-value {
  font-size: 12px;
  line-height: 1.8;
  white-space: pre-line;
}
#pricing-wizard .answer-row button {
  padding: 0;
  min-height: 30px;
  font-size: 10px;
  white-space: nowrap;
}
#pricing-wizard .aside-foot {
  font-size: 11px;
  color: var(--muted);
  border-top: 1px solid var(--line);
  padding-top: 16px;
  margin-top: 8px;
}
#pricing-wizard .aside-price {
  font-size: 19px;
  color: var(--blue);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  margin-top: 4px;
}
#pricing-wizard .aside-price-label {
  font-size: 10px;
  color: var(--muted);
  margin-top: 15px;
}
#pricing-wizard .revisions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 24px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 12px;
}
#pricing-wizard .revisions label {
  margin-right: auto;
}
#pricing-wizard .revisions input {
  width: 68px;
  min-height: 44px;
  padding: 8px;
  border: 1px solid #acacac;
  background: #ffffff;
}
#pricing-wizard .optional-details {
  border-bottom: 1px solid var(--line);
}
#pricing-wizard summary {
  min-height: 48px;
  cursor: pointer;
  padding: 14px 0;
  font-size: 12px;
  color: var(--blue);
}
#pricing-wizard .optional-details[open] {
  padding-bottom: 20px;
}
#pricing-wizard .rev-note {
  font-size: 11px;
  color: var(--muted);
  margin-top: 9px;
}
#pricing-wizard .mini-note {
  margin-top: 20px;
  padding: 14px 17px;
  border-left: 2px solid #cfcfcf;
  background: var(--paper);
  font-size: 11px;
  color: var(--muted);
}
#pricing-wizard .estimate-complete {
  max-width: 900px;
  margin: auto;
}
#pricing-wizard .completion-heading {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 24px;
}
#pricing-wizard .complete-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  background: var(--selection-surface);
  color: var(--blue);
  font-size: 21px;
  flex: none;
}
#pricing-wizard .completion-heading h2 {
  font-size: 23px;
}
#pricing-wizard .completion-heading p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
#pricing-wizard .completed-answers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 24px;
  padding: 20px 0;
  border: 0;
}
#pricing-wizard .completed-answers .answer-row {
  display: block;
}
#pricing-wizard .completed-answers small {
  font-size: 10px;
  color: var(--muted);
}
#pricing-wizard .completed-answers .answer-value {
  font-size: 12px;
  margin: 6px 0;
}
#pricing-wizard .completed-answers button {
  font-size: 11px;
  min-height: 30px;
}
#pricing-wizard .estimate-paper {
  border: 1px solid #d2d2d2;
  border-top: 3px solid var(--blue);
  padding: 36px 40px;
  background: #ffffff;
}
#pricing-wizard .paper-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  padding-bottom: 25px;
  border-bottom: 1px solid var(--line);
}
#pricing-wizard .paper-heading h2 {
  font-size: 25px;
}
#pricing-wizard .paper-heading p {
  font-size: 10px;
  color: var(--muted);
  margin-top: 8px;
}
#pricing-wizard .paper-sender {
  font-size: 11px;
  text-align: right;
  padding-top: 6px;
}
#pricing-wizard .paper-sender b {
  display: block;
  font-size: 13px;
}
#pricing-wizard .paper-subject {
  font-size: 13px;
  font-weight: 600;
  margin: 24px 0 20px;
}
#pricing-wizard .estimate-lines {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
#pricing-wizard .estimate-lines th,
#pricing-wizard .estimate-lines td {
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
#pricing-wizard .estimate-lines thead th {
  font-size: 10px;
  color: var(--muted);
  font-weight: 400;
  padding: 10px 0;
  border-block: 1px solid var(--line);
}
#pricing-wizard .estimate-lines th {
  text-align: left;
  font-weight: 450;
  padding-right: 20px;
}
#pricing-wizard .estimate-lines td {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
#pricing-wizard .estimate-lines th:last-child {
  text-align: right;
  padding-right: 0;
}
#pricing-wizard .estimate-lines small {
  display: block;
  color: var(--muted);
  font-size: 10px;
  font-weight: 400;
  margin-top: 4px;
}
#pricing-wizard .totals {
  margin: 23px 0 0 auto;
  max-width: 420px;
}
#pricing-wizard .total-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 12px;
  margin: 9px 0;
  font-variant-numeric: tabular-nums;
}
#pricing-wizard .grand-total {
  margin: 16px 0 0;
  padding: 18px 0;
  border: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  color: var(--blue);
}
#pricing-wizard .grand-total span {
  font-size: 11px;
}
#pricing-wizard .grand-total strong {
  font-size: 29px;
  font-weight: 650;
  line-height: 1.6;
  letter-spacing: -.03em;
}
#pricing-wizard .pending-box {
  margin-top: 22px;
  padding: 18px 20px;
  background: #f9f9f9;
  border-left: 2px solid #7d7d7d;
  font-size: 12px;
  line-height: 1.85;
  color: #555555;
}
#pricing-wizard .pending-box strong {
  font-size: 12px;
}
#pricing-wizard .pending-box ul {
  padding-left: 20px;
  margin: 7px 0;
}
#pricing-wizard .pending-box p {
  font-size: 11px;
}
#pricing-wizard .document-details {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  font-size: 12px;
}
#pricing-wizard .document-details ul {
  padding-left: 20px;
  color: var(--muted);
}
#pricing-wizard .document-details h3 {
  font-size: 12px;
  margin-top: 16px;
}
#pricing-wizard .document-foot {
  font-size: 10px;
  color: var(--muted);
  margin-top: 22px;
}
#pricing-wizard .document-actions {
  margin-top: 22px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
#pricing-wizard .document-actions .text-button {
  margin-left: auto;
}
#pricing-wizard .pdf-recipient {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  margin-top: 24px;
}
#pricing-wizard .pdf-recipient input {
  min-width: 0;
  flex: 1;
  max-width: 360px;
  min-height: 44px;
  border: 1px solid #bababa;
  padding: 8px 12px;
  border-radius: 0;
  background: #ffffff;
}
#pricing-wizard .pdf-recipient small {
  font-size: 10px;
  color: var(--muted);
}
#pricing-wizard .pdf-message {
  font-size: 12px;
  color: var(--blue);
  margin-top: 12px;
}
#pricing-wizard .pdf-message:empty {
  display: none;
}
#pricing-wizard .estimate-url {
  display: block;
  resize: vertical;
  min-height: 70px;
  width: 100%;
  padding: 10px;
  font-size: 11px;
  border: 1px solid var(--line);
  background: var(--paper);
  margin-top: 10px;
  overflow-wrap: anywhere;
}
#pricing-wizard .restart-row {
  margin-top: 24px;
  display: flex;
  justify-content: space-between;
}
#pricing-wizard .sheet-note {
  font-size: 11px;
  color: var(--muted);
  margin-top: 12px;
}
#pricing-wizard dialog {
  max-width: 700px;
  width: calc(100% - 32px);
  max-height: calc(100dvh - 48px);
  padding: 28px;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  overflow: auto;
}
#pricing-wizard dialog::backdrop {
  background: #20202066;
}
#pricing-wizard .dialog-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
#pricing-wizard .dialog-top h2 {
  font-size: 20px;
}
#pricing-wizard .dialog-top button {
  width: 44px;
  height: 44px;
  border: 0;
  background: none;
  font-size: 27px;
  color: var(--muted);
}
#pricing-wizard dialog p {
  font-size: 12px;
  color: var(--muted);
  margin: 10px 0 16px;
}
#pricing-wizard #inquiry-text {
  width: 100%;
  height: 44vh;
  padding: 15px;
  font-size: 12px;
  border: 1px solid var(--line);
  background: var(--paper);
  margin-bottom: 16px;
}
#pricing-wizard .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
#pricing-wizard .empty-note {
  font-size: 12px;
  color: var(--muted);
  padding: 10px 0 16px;
}
@media (max-width: 900px) {
  #pricing-wizard main {
    padding-inline: 24px;
  }
  #pricing-wizard .flow-layout {
    gap: 25px;
    grid-template-columns: minmax(0, 1fr) 240px;
  }
  #pricing-wizard .flow-aside {
    padding: 18px;
  }
  #pricing-wizard .choice {
    padding: 18px 15px;
  }
  #pricing-wizard .question h2 {
    font-size: 23px;
  }
  #pricing-wizard .pattern-tabs button {
    padding: 12px;
    gap: 9px;
  }
  #pricing-wizard .pattern-tabs span {
    font-size: 12px;
  }
  #pricing-wizard .pattern-tabs small {
    display: block;
    width: max-content;
    margin: 3px 0 0;
  }
  #pricing-wizard .intro {
    padding-top: 32px;
  }
  #pricing-wizard .estimate-paper {
    padding: 28px;
  }
  #pricing-wizard .review-status {
    font-size: 10px;
  }
  #pricing-wizard .completed-answers {
    gap: 15px;
  }
}
@media (max-width: 680px) {
  #pricing-wizard .review-header {
    padding: 17px 18px 14px;
  }
  #pricing-wizard .review-heading {
    gap: 6px 12px;
  }
  #pricing-wizard .review-heading p {
    font-size: 17px;
  }
  #pricing-wizard .review-status {
    width: 100%;
    margin: 0;
  }
  #pricing-wizard .pattern-tabs {
    gap: 5px;
    margin-top: 14px;
  }
  #pricing-wizard .pattern-tabs button {
    gap: 6px;
    align-items: flex-start;
    padding: 10px 8px;
    min-height: 74px;
  }
  #pricing-wizard .pattern-tabs b {
    font-size: 17px;
  }
  #pricing-wizard .pattern-tabs span {
    font-size: 10px;
    line-height: 1.7;
  }
  #pricing-wizard .pattern-tabs small {
    font-size: 8px;
  }
  #pricing-wizard .pattern-note {
    font-size: 10px;
    min-height: 35px;
    line-height: 1.8;
  }
  #pricing-wizard main {
    padding: 0 20px 28px;
  }
  #pricing-wizard .site-top {
    padding: 19px 0;
    font-size: 10px;
  }
  #pricing-wizard .brand {
    font-size: 17px;
  }
  #pricing-wizard .intro {
    padding: 29px 0 28px;
  }
  #pricing-wizard h1 {
    font-size: 26px;
  }
  #pricing-wizard .intro > p:last-child {
    font-size: 12px;
  }
  #pricing-wizard .desktop-break {
    display: none;
  }
  #pricing-wizard .flow-layout {
    display: flex;
    flex-direction: column;
    gap: 28px;
  }
  #pricing-wizard .flow-main {
    width: 100%;
  }
  #pricing-wizard .flow-aside {
    position: static;
    width: 100%;
    padding: 18px;
  }
  #pricing-wizard .flow-aside .answer-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  #pricing-wizard .flow-aside .aside-foot {
    margin-top: 4px;
  }
  #pricing-wizard .progress {
    margin-bottom: 23px;
  }
  #pricing-wizard .question h2 {
    font-size: 23px;
  }
  #pricing-wizard .question-hint {
    font-size: 11px;
    margin-bottom: 19px;
  }
  #pricing-wizard .choices {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  #pricing-wizard .choice {
    min-height: 103px;
    padding: 18px 19px 18px 60px;
    justify-content: center;
  }
  #pricing-wizard .choice-icon {
    position: absolute;
    left: 18px;
    top: 25px;
    margin: 0;
    width: 25px;
    height: 26px;
  }
  #pricing-wizard .choice-icon svg {
    width: 25px;
    height: 25px;
  }
  #pricing-wizard .choice input {
    top: 20px;
    right: 17px;
  }
  #pricing-wizard .choice-title {
    font-size: 14px;
  }
  #pricing-wizard .choice-description {
    font-size: 11px;
  }
  #pricing-wizard .choice.compact {
    min-height: 79px;
    padding: 16px 45px 16px 17px;
  }
  #pricing-wizard .choice-price {
    font-size: 11px;
    margin-top: 8px;
  }
  #pricing-wizard .navigation {
    margin-top: 23px;
    padding-top: 20px;
    gap: 10px;
  }
  #pricing-wizard .button {
    padding: 11px 18px;
    min-height: 48px;
    font-size: 12px;
  }
  #pricing-wizard .trial-note {
    font-size: 10px;
    padding-top: 21px;
    margin-top: 24px;
  }
  #pricing-wizard .accordion-heading {
    padding: 16px;
    gap: 12px;
    min-height: 82px;
  }
  #pricing-wizard .accordion-heading b {
    font-size: 14px;
  }
  #pricing-wizard .accordion-heading small {
    font-size: 10px;
  }
  #pricing-wizard .accordion-body {
    padding: 17px;
  }
  #pricing-wizard .accordion-body .choice {
    min-height: 100px;
  }
  #pricing-wizard .revisions {
    flex-wrap: wrap;
    gap: 9px;
  }
  #pricing-wizard .revisions label {
    flex-basis: 55%;
  }
  #pricing-wizard .rev-note {
    font-size: 10px;
  }
  #pricing-wizard .mini-note {
    padding: 12px;
    font-size: 10px;
  }
  #pricing-wizard [data-pattern=c] .choice {
    min-height: 88px;
    padding: 17px 44px 17px 17px;
  }
  #pricing-wizard [data-pattern=c] .inline-question {
    padding-bottom: 25px;
    margin-bottom: 25px;
  }
  #pricing-wizard [data-pattern=c] .question h2 {
    font-size: 21px;
  }
  #pricing-wizard .completed-answers {
    grid-template-columns: 1fr;
    padding: 7px 0;
    gap: 0;
  }
  #pricing-wizard .completed-answers > div {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0 16px;
    padding: 12px 0;
    border: 0;
  }
  #pricing-wizard .completed-answers > div:last-child {
    border: 0;
  }
  #pricing-wizard .completed-answers .answer-row {
    display: contents;
  }
  #pricing-wizard .completed-answers small {
    grid-column: 1;
  }
  #pricing-wizard .completed-answers .answer-value {
    grid-column: 1;
    margin: 4px 0 0;
  }
  #pricing-wizard .completed-answers button {
    grid-column: 2;
    grid-row: 1/3;
  }
  #pricing-wizard .completion-heading {
    gap: 12px;
  }
  #pricing-wizard .completion-heading h2 {
    font-size: 19px;
  }
  #pricing-wizard .completion-heading p {
    font-size: 11px;
  }
  #pricing-wizard .estimate-paper {
    padding: 23px 16px;
  }
  #pricing-wizard .paper-heading h2 {
    font-size: 22px;
  }
  #pricing-wizard .paper-heading {
    gap: 12px;
    padding-bottom: 21px;
  }
  #pricing-wizard .paper-sender {
    font-size: 9px;
  }
  #pricing-wizard .paper-sender b {
    font-size: 10px;
  }
  #pricing-wizard .paper-subject {
    font-size: 12px;
    margin: 22px 0 18px;
  }
  #pricing-wizard .estimate-lines {
    font-size: 11px;
  }
  #pricing-wizard .estimate-lines th {
    padding-right: 10px;
  }
  #pricing-wizard .estimate-lines td {
    font-size: 10px;
  }
  #pricing-wizard .estimate-lines small {
    font-size: 9px;
  }
  #pricing-wizard .grand-total strong {
    font-size: 25px;
  }
  #pricing-wizard .grand-total span {
    font-size: 10px;
  }
  #pricing-wizard .total-row {
    font-size: 11px;
  }
  #pricing-wizard .pending-box {
    padding: 14px;
    font-size: 11px;
  }
  #pricing-wizard .pending-box strong {
    font-size: 11px;
  }
  #pricing-wizard .pending-box p {
    font-size: 10px;
  }
  #pricing-wizard .pdf-recipient {
    flex-wrap: wrap;
    gap: 8px;
  }
  #pricing-wizard .pdf-recipient label {
    flex-basis: 100%;
  }
  #pricing-wizard .pdf-recipient input {
    width: 100%;
    max-width: none;
  }
  #pricing-wizard .document-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: 10px;
  }
  #pricing-wizard .document-actions .text-button {
    margin: 0;
    text-align: center;
  }
  #pricing-wizard .completion-heading {
    align-items: flex-start;
  }
  #pricing-wizard .sheet-note {
    font-size: 10px;
  }
  #pricing-wizard .restart-row {
    flex-wrap: wrap;
    gap: 10px;
  }
  #pricing-wizard dialog {
    padding: 20px;
  }
  #pricing-wizard #inquiry-text {
    font-size: 11px;
  }
  #pricing-wizard .document-details {
    font-size: 11px;
  }
}
@media (prefers-reduced-motion: reduce) {
  #pricing-wizard html {
    scroll-behavior: auto;
  }
  #pricing-wizard * {
    transition: none !important;
  }
}
#pricing-wizard .request-field label {
  display: block;
  font-size: 14px;
  margin-bottom: 8px;
}
#pricing-wizard .request-field textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-height: 144px;
  padding: 12px;
  font: inherit;
  font-size: 14px;
  line-height: 1.8;
  color: var(--ink);
  background: #ffffff;
  border: 1px solid #bababa;
  resize: vertical;
}
#pricing-wizard .request-field textarea::placeholder {
  color: var(--muted);
  opacity: 1;
}
#pricing-wizard .request-field textarea:focus-visible {
  outline: 3px solid #616161;
  outline-offset: 3px;
}
#pricing-wizard :is(.extras-consultations li, .pending-box li) {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
#pricing-wizard .answer-value {
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
#pricing-wizard .extras-impact {
  margin-top: 24px;
  padding: 22px;
  background: #f8f8f8;
  border: 1px solid #d7d7d7;
  border-top: 2px solid #3b3b3b;
}
#pricing-wizard .extras-impact h3 {
  font-size: 15px;
  margin: 0 0 18px;
}
#pricing-wizard .extras-amounts {
  margin: 0;
  font-size: 12px;
}
#pricing-wizard .extras-amounts > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
}
#pricing-wizard .extras-amounts dt {
  color: #676767;
}
#pricing-wizard .extras-amounts dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#pricing-wizard .extras-revision-effects {
  list-style: none;
  padding: 0;
  margin: 18px 0;
  font-size: 12px;
}
#pricing-wizard .extras-revision-effects li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid #e1e1e1;
}
#pricing-wizard .extras-revision-effects strong {
  font-size: 12px;
  font-weight: 550;
  text-align: right;
  color: #3b3b3b;
}
#pricing-wizard .extras-consultations {
  padding: 15px 16px;
  background: #f9f9f9;
  border-left: 2px solid #7d7d7d;
  margin: 16px 0;
  color: #555555;
}
#pricing-wizard .extras-consultations h4 {
  font-size: 12px;
  margin: 0 0 8px;
  font-weight: 600;
}
#pricing-wizard .extras-consultations ul {
  margin: 0;
  padding-left: 18px;
  font-size: 12px;
}
#pricing-wizard .extras-consultations li + li {
  margin-top: 9px;
}
#pricing-wizard .extras-consultations small {
  display: block;
  font-size: 10px;
}
#pricing-wizard .extras-no-consultation {
  font-size: 11px;
  color: #676767;
  margin: 14px 0;
}
#pricing-wizard .extras-current {
  border-top: 1px solid #d7d7d7;
  padding-top: 16px;
}
#pricing-wizard .extras-current dd {
  font-size: 20px;
  font-weight: 650;
  color: #3b3b3b;
}
#pricing-wizard .extras-explanation {
  font-size: 11px;
  color: #676767;
  margin: 12px 0 0;
}
@media (max-width: 680px) {
  #pricing-wizard .extras-impact {
    padding: 18px 15px;
  }
  #pricing-wizard .extras-amounts > div {
    display: block;
  }
  #pricing-wizard .extras-amounts dd {
    margin-top: 5px;
  }
  #pricing-wizard .extras-current dd {
    font-size: 23px;
  }
  #pricing-wizard .extras-revision-effects li {
    display: block;
  }
  #pricing-wizard .extras-revision-effects strong {
    display: block;
    text-align: left;
    margin-top: 4px;
  }
  #pricing-wizard .extras-choices .choice {
    min-height: 114px;
  }
}
#pricing-wizard .simulator-launch {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 56px;
  align-items: center;
  padding: 22px 0 10px;
}
#pricing-wizard .simulator-launch h2 {
  font-size: 26px;
  line-height: 1.7;
  margin: 0 0 16px;
}
#pricing-wizard .simulator-launch p {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.9;
  margin: 0 0 22px;
  max-width: 640px;
}
#pricing-wizard .simulator-launch .sheet-note {
  font-size: 11px;
  margin: 12px 0 0;
}
#pricing-wizard .launch-summary {
  background: var(--paper);
  border-top: 3px solid var(--blue);
  padding: 26px;
  min-width: 0;
}
#pricing-wizard .launch-summary small {
  font-size: 11px;
  color: var(--muted);
}
#pricing-wizard .launch-summary h3 {
  font-size: 16px;
  line-height: 1.7;
  margin: 9px 0 14px;
}
#pricing-wizard .launch-summary p {
  font-size: 11px;
  margin: 0 0 6px;
}
#pricing-wizard .launch-summary strong {
  display: block;
  font-size: 25px;
  color: var(--blue);
  font-weight: 650;
  line-height: 1.65;
  letter-spacing: -.04em;
  margin: 4px 0 12px;
}
#pricing-wizard .pricing-simulator {
  margin: auto;
  width: calc(100% - 48px);
  max-width: 1380px;
  height: calc(100dvh - 48px);
  max-height: none;
  padding: 0;
  border: 1px solid #c8c8c8;
  overflow: hidden;
  background: #ffffff;
  color: var(--ink);
  color-scheme: light;
}
#pricing-wizard .pricing-simulator[open] {
  display: flex;
  flex-direction: column;
}
#pricing-wizard .pricing-simulator::backdrop {
  background: rgba(32, 32, 32, .56);
}
#pricing-wizard .simulator-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  padding: 18px 30px;
  border-bottom: 1px solid var(--line);
  flex: none;
  background: #ffffff;
}
#pricing-wizard .simulator-header p {
  font-size: 11px;
  color: var(--blue);
  margin: 0 0 2px;
}
#pricing-wizard .simulator-header h2 {
  font-size: 21px;
  line-height: 1.7;
  margin: 0;
  font-weight: 650;
}
#pricing-wizard .simulator-close {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  border: 1px solid #c1c1c1;
  background: #ffffff;
  padding: 7px 13px;
  font-size: 12px;
  cursor: pointer;
}
#pricing-wizard .simulator-close span {
  font-size: 23px;
  line-height: 1;
}
#pricing-wizard .simulator-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 30px 34px 40px;
  scrollbar-gutter: stable;
}
#pricing-wizard .flow-layout {
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 38px;
}
#pricing-wizard .estimate-complete,
#pricing-wizard .estimate-alternatives {
  max-width: 1000px;
  margin-inline: auto;
}
#pricing-wizard .comparison-dock {
  flex: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 14px 32px;
  border-top: 2px solid var(--blue);
  background: var(--selection-surface);
  box-shadow: 0 -6px 18px rgba(0, 0, 0, .07);
}
#pricing-wizard .comparison-dock p {
  font-size: 11px;
  color: var(--blue);
  margin: 0;
}
#pricing-wizard .comparison-dock strong {
  display: block;
  font-size: 14px;
  line-height: 1.7;
  margin-top: 2px;
  font-weight: 600;
}
#pricing-wizard .comparison-dock .button {
  flex: none;
  min-height: 46px;
  margin: 0;
  padding: 10px 24px;
  font-size: 13px;
}
#pricing-wizard .estimate-alternatives {
  border-top: 1px solid var(--line);
  margin-top: 38px;
  padding-top: 30px;
}
#pricing-wizard .alternatives-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
}
#pricing-wizard .alternatives-heading p {
  margin: 0 0 5px;
  font-size: 11px;
  color: var(--blue);
}
#pricing-wizard .alternatives-heading h2 {
  font-size: 24px;
  line-height: 1.6;
  margin: 0;
  scroll-margin-top: 20px;
}
#pricing-wizard .alternatives-heading > span {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
  background: var(--selection-surface);
  border: 1px solid #c6c6c6;
  color: var(--blue);
  font-weight: 600;
  font-size: 15px;
}
#pricing-wizard .alternatives-hint {
  font-size: 12px;
  color: var(--muted);
  margin: 12px 0 22px;
}
#pricing-wizard .alternatives-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
#pricing-wizard .alternative-card {
  border: 1px solid #c7c7c7;
  padding: 22px;
  display: flex;
  flex-direction: column;
  align-items: start;
  min-width: 0;
  background: #ffffff;
}
#pricing-wizard .alternative-label {
  font-size: 11px;
  color: var(--blue);
  margin: 0 0 7px;
}
#pricing-wizard .alternative-card h3 {
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 14px;
}
#pricing-wizard .alternative-total-label {
  font-size: 10px;
  color: var(--muted);
  margin: 0 0 3px;
}
#pricing-wizard .alternative-total {
  font-size: 24px;
  color: var(--blue);
  font-weight: 650;
  line-height: 1.6;
  letter-spacing: -.03em;
}
#pricing-wizard .alternative-pending,
#pricing-wizard .alternative-difference {
  font-size: 11px;
  color: var(--muted);
  margin: 9px 0 0;
}
#pricing-wizard .alternative-details {
  width: 100%;
  font-size: 11px;
  margin: 12px 0 16px;
}
#pricing-wizard .alternative-details summary {
  font-size: 11px;
  padding: 8px 0;
  min-height: 44px;
}
#pricing-wizard .alternative-details h4 {
  font-size: 12px;
  margin: 15px 0 6px;
}
#pricing-wizard .alternative-details ul {
  padding-left: 18px;
  overflow-wrap: anywhere;
}
#pricing-wizard .alternative-details .estimate-lines {
  font-size: 11px;
}
#pricing-wizard .alternative-details .estimate-lines td {
  font-size: 10px;
}
#pricing-wizard .alternative-details .pending-box {
  padding: 12px;
  margin-top: 14px;
}
#pricing-wizard .alternative-card > .button {
  width: 100%;
  margin-top: auto;
  font-size: 12px;
}
#pricing-wizard #back-to-estimate {
  margin-top: 22px;
}
#pricing-wizard .choice {
  transition: background-color 180ms ease, border-color 180ms ease;
}
#pricing-wizard .button {
  transition: background-color 150ms ease;
}
@media (prefers-reduced-motion: no-preference) {
  #pricing-wizard .pricing-simulator[open] {
    animation: pricing-dialog-enter 240ms cubic-bezier(.2, .7, .2, 1);
  }
  #pricing-wizard .pricing-simulator[open]::backdrop {
    animation: pricing-backdrop-enter 200ms ease-out;
  }
  #pricing-wizard .comparison-dock {
    animation: pricing-dock-enter 320ms ease-out;
  }
  #pricing-wizard .complete-mark {
    animation: pricing-check-enter 300ms ease-out;
  }
}
@keyframes pricing-dialog-enter {
  from {
    opacity: 0;
    transform: translateY(15px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes pricing-backdrop-enter {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes pricing-dock-enter {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes pricing-check-enter {
  from {
    opacity: 0;
    transform: scale(.7);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@media (max-width: 960px) {
  #pricing-wizard .simulator-launch {
    gap: 28px;
    grid-template-columns: minmax(0, 1fr) 280px;
  }
  #pricing-wizard .flow-layout {
    gap: 24px;
    grid-template-columns: minmax(0, 1fr) 260px;
  }
  #pricing-wizard .simulator-scroll {
    padding: 25px;
  }
}
@media (max-width: 680px) {
  #pricing-wizard .simulator-launch {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  #pricing-wizard .simulator-launch h2 {
    font-size: 23px;
  }
  #pricing-wizard .simulator-launch p {
    font-size: 13px;
  }
  #pricing-wizard .simulator-launch .button {
    width: 100%;
  }
  #pricing-wizard .launch-summary {
    padding: 21px;
  }
  #pricing-wizard .launch-summary strong {
    font-size: 25px;
  }
  #pricing-wizard .pricing-simulator {
    width: 100%;
    height: 100dvh;
    max-width: none;
    border: 0;
  }
  #pricing-wizard .simulator-header {
    padding: 14px 18px;
    gap: 12px;
  }
  #pricing-wizard .simulator-header h2 {
    font-size: 19px;
  }
  #pricing-wizard .simulator-header p {
    font-size: 10px;
  }
  #pricing-wizard .simulator-close {
    font-size: 11px;
    gap: 7px;
    padding: 6px 10px;
  }
  #pricing-wizard .simulator-scroll {
    padding: 24px 20px 32px;
  }
  #pricing-wizard .flow-layout {
    display: flex;
    gap: 28px;
  }
  #pricing-wizard .comparison-dock {
    display: block;
    padding: 11px 20px max(12px, env(safe-area-inset-bottom));
  }
  #pricing-wizard .comparison-dock strong {
    font-size: 12px;
  }
  #pricing-wizard .comparison-dock .button {
    width: 100%;
    margin-top: 8px;
    min-height: 44px;
    font-size: 12px;
    padding: 8px 15px;
  }
  #pricing-wizard .alternatives-heading {
    align-items: start;
    gap: 12px;
  }
  #pricing-wizard .alternatives-heading h2 {
    font-size: 20px;
  }
  #pricing-wizard .alternatives-heading > span {
    width: 38px;
    height: 38px;
    font-size: 13px;
  }
  #pricing-wizard .alternatives-heading p {
    font-size: 10px;
  }
  #pricing-wizard .alternatives-hint {
    font-size: 11px;
  }
  #pricing-wizard .alternatives-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  #pricing-wizard .alternative-card {
    padding: 18px;
  }
  #pricing-wizard .alternative-card h3 {
    font-size: 14px;
  }
  #pricing-wizard .alternative-total {
    font-size: 23px;
  }
}
@media (prefers-reduced-motion: reduce) {
  #pricing-wizard *,
  #pricing-wizard *::before,
  #pricing-wizard *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
#pricing-wizard .estimate-complete {
  max-width: 1240px;
}
#pricing-wizard .chosen-estimate {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  background: var(--paper);
  border-left: 3px solid var(--blue);
  padding: 18px 22px;
  margin: 0 0 24px;
}
#pricing-wizard .chosen-estimate p {
  font-size: 11px;
  margin: 0;
  color: var(--muted);
}
#pricing-wizard .chosen-estimate h3 {
  font-size: 16px;
  margin: 4px 0 0;
  line-height: 1.7;
}
#pricing-wizard .chosen-estimate > div:last-child {
  text-align: right;
}
#pricing-wizard .chosen-estimate small {
  display: block;
  font-size: 10px;
  color: var(--muted);
}
#pricing-wizard .chosen-estimate strong {
  display: block;
  font-size: 28px;
  font-weight: 650;
  color: var(--blue);
  letter-spacing: -.04em;
  line-height: 1.6;
}
#pricing-wizard .complete-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 28px;
  align-items: start;
}
#pricing-wizard .complete-grid .estimate-paper {
  min-width: 0;
  padding: 28px;
}
#pricing-wizard .completed-controls {
  background: var(--paper);
  border-top: 2px solid var(--blue);
  padding: 20px;
  min-width: 0;
}
#pricing-wizard .completed-controls h3 {
  font-size: 14px;
  margin: 0 0 12px;
}
#pricing-wizard .completed-controls .completed-answers {
  display: block;
  border: 0;
  padding: 0;
  margin: 0;
}
#pricing-wizard .completed-controls .completed-answers > div {
  border: 0;
  padding: 12px 0;
}
#pricing-wizard .completed-controls .completed-answers .answer-row {
  display: block;
}
#pricing-wizard .completed-controls .completed-answers .answer-value {
  margin: 5px 0;
  overflow-wrap: anywhere;
}
#pricing-wizard .completed-controls .completed-answers button {
  min-height: 44px;
}
@media (max-width: 960px) {
  #pricing-wizard .complete-grid {
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 22px;
  }
  #pricing-wizard .complete-grid .estimate-paper {
    padding: 22px;
  }
  #pricing-wizard .chosen-estimate strong {
    font-size: 25px;
  }
}
@media (max-width: 680px) {
  #pricing-wizard .chosen-estimate {
    display: block;
    padding: 16px;
  }
  #pricing-wizard .chosen-estimate > div:last-child {
    text-align: left;
    margin-top: 11px;
  }
  #pricing-wizard .chosen-estimate h3 {
    font-size: 14px;
  }
  #pricing-wizard .chosen-estimate strong {
    font-size: 25px;
  }
  #pricing-wizard .complete-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  #pricing-wizard .complete-grid .estimate-paper {
    padding: 23px 16px;
  }
  #pricing-wizard .completed-controls .completed-answers > div {
    display: block;
  }
  #pricing-wizard .completed-controls .completed-answers .answer-row {
    display: block;
  }
}
.short-method {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
#pricing-wizard .media-revisions {
  border: 0;
  padding: 0;
  margin: 24px 0;
  min-width: 0;
}
#pricing-wizard .media-revisions legend {
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 12px;
}
#pricing-wizard .media-revision-field {
  padding: 12px 0;
  border: 0;
}
#pricing-wizard .media-revision-field .revisions {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 80px 1em;
  gap: 10px;
}
#pricing-wizard .media-revision-field .revisions input {
  min-height: 48px;
  height: 48px;
  padding: 10px 12px;
}
#pricing-wizard .media-revision-field .rev-note {
  margin: 8px 0 0;
}
.pr-history {
  border: 0;
  padding: 0;
  margin: 0 0 28px;
  min-width: 0;
}
.pr-history legend,
.asset-options-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  margin: 0 0 12px;
  padding: 0;
}
.pr-history .question-hint {
  margin: 0 0 16px;
}
#pricing-wizard .historical-rate-note {
  margin: 0 0 28px;
  padding: 20px;
  background: #f5f5f5;
  border-left: 4px solid var(--blue);
  display: flex;
  align-items: center;
  gap: 24px;
}
#pricing-wizard .historical-rate-note h2 {
  font-size: 17px;
  margin: 0 0 8px;
}
#pricing-wizard .historical-rate-note p {
  font-size: 13px;
  margin: 6px 0;
  line-height: 1.8;
}
#pricing-wizard .historical-rate-note .button {
  flex-shrink: 0;
  max-width: 330px;
  white-space: normal;
  text-align: center;
}
@media (max-width: 680px) {
  #pricing-wizard .historical-rate-note {
    display: block;
    padding: 16px;
  }
  #pricing-wizard .historical-rate-note .button {
    margin-top: 12px;
    width: 100%;
    max-width: none;
  }
}
