.quote-wizard-section {
  background:
    radial-gradient(circle at 14% 10%, rgba(0, 168, 255, 0.12), transparent 30%),
    var(--paper);
  color: var(--ink);
}

.quote-wizard {
  display: grid;
  width: 100%;
  box-sizing: border-box;
  gap: 20px;
  padding: clamp(18px, 4vw, 34px);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius);
  background:
    radial-gradient(circle at 88% 12%, rgba(0, 168, 255, 0.16), transparent 30%),
    linear-gradient(145deg, rgba(8, 18, 36, 0.96), rgba(5, 8, 17, 0.98));
  box-shadow: var(--shadow);
}

.quote-start {
  display: grid;
  grid-template-columns: minmax(180px, 0.48fr) minmax(220px, 0.52fr);
  align-items: center;
  gap: clamp(24px, 7vw, 90px);
  min-height: min(560px, 60vh);
}

.quote-start img {
  width: min(100%, 360px);
  height: auto;
  justify-self: center;
  object-fit: contain;
}

.quote-start div {
  display: grid;
  justify-items: start;
  gap: 22px;
}

.quote-start span {
  color: #fff;
  font-size: clamp(1.55rem, 3vw, 2.65rem);
  font-weight: 900;
  line-height: 1.08;
  text-transform: uppercase;
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.34);
}

.quote-wizard:not(.is-started) .quote-progress,
.quote-wizard:not(.is-started) .quote-step,
.quote-wizard:not(.is-started) .quote-error,
.quote-wizard:not(.is-started) .quote-actions {
  display: none;
}

.quote-wizard.is-started .quote-start {
  display: none;
}

.quote-progress {
  display: grid;
  gap: 10px;
}

.quote-progress-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #fff;
  font-size: 0.86rem;
  font-weight: 800;
}

.quote-progress-track {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
}

.quote-progress-bar {
  display: block;
  width: 0%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--amber), var(--electric));
  transition: width 0.25s ease;
}

.quote-step {
  display: none;
  min-height: 360px;
  align-content: center;
  justify-items: center;
  gap: 18px;
}

.quote-step.is-active {
  display: grid;
}

.quote-step-head {
  display: grid;
  justify-items: center;
  gap: 8px;
  text-align: center;
}

.quote-step-kicker {
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.quote-step h3 {
  margin: 0;
  color: #fff;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.28);
  font-size: clamp(1.55rem, 3vw, 2.35rem);
}

.quote-step p {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
}

.quote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 220px));
  justify-content: center;
  width: min(100%, 760px);
  gap: 10px;
}

.quote-grid.three {
  grid-template-columns: repeat(3, minmax(128px, 170px));
}

.quote-grid.four {
  grid-template-columns: repeat(4, minmax(122px, 154px));
  width: min(100%, 720px);
}

.quote-grid.two-centered {
  grid-template-columns: repeat(2, minmax(122px, 154px));
  width: min(100%, 720px);
  justify-content: center;
}

.quote-option {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  min-height: 148px;
  align-content: center;
  justify-items: center;
  gap: 12px;
  padding: 14px 12px;
  border: 1px solid rgba(0, 168, 255, 0.24);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.045);
  color: var(--text);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.quote-option:hover,
.quote-option:has(input:checked) {
  border-color: rgba(242, 169, 0, 0.78);
  background: rgba(242, 169, 0, 0.1);
  transform: translateY(-2px);
}

.quote-option-content {
  display: grid;
  justify-items: center;
  gap: 0;
  min-width: 0;
}

.quote-icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.quote-icon img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(49%) sepia(91%) saturate(2080%) hue-rotate(173deg) brightness(103%) contrast(103%);
}

.quote-option input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}

.quote-option strong {
  color: var(--white);
  font-size: 0.9rem;
  line-height: 1.2;
}

.quote-option-content > span {
  display: none;
}

.quote-option span {
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.9rem;
  line-height: 1.5;
}

.quote-scale {
  display: grid;
  width: min(100%, 760px);
  gap: 10px;
}

.quote-scale-options {
  display: grid;
  grid-template-columns: repeat(5, minmax(88px, 1fr));
  gap: 8px;
}

.quote-scale-options label {
  position: relative;
  display: grid;
  place-items: center;
  height: 58px;
  border: 1px solid rgba(0, 168, 255, 0.2);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.045);
  color: rgba(255, 255, 255, 0.82);
  font-weight: 900;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.quote-scale-options label:hover,
.quote-scale-options label:has(input:checked) {
  border-color: rgba(242, 169, 0, 0.8);
  background: rgba(242, 169, 0, 0.12);
  color: #fff;
  transform: translateY(-1px);
}

.quote-scale-options input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}

.quote-scale-labels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9rem;
  font-weight: 700;
}

.quote-scale-labels span:nth-child(2) {
  text-align: center;
}

.quote-scale-labels span:nth-child(3) {
  text-align: right;
}

.quote-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 760px);
  gap: 14px;
}

.quote-fields label {
  display: grid;
  gap: 8px;
  color: var(--muted);
}

.quote-field-note {
  display: inline;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82em;
  font-style: italic;
  font-weight: 400;
}

.quote-fields .wide,
.quote-wizard .wide {
  grid-column: 1 / -1;
}

[data-condition][hidden],
.quote-conditional[hidden],
.quote-wizard [hidden] {
  display: none !important;
}

.quote-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding-top: 2px;
}

.quote-actions .btn {
  min-width: 150px;
}

.quote-actions .is-hidden {
  display: none;
}

.quote-error {
  min-height: 22px;
  color: #ffb5a9;
  font-weight: 700;
}

.quote-summary {
  display: grid;
  gap: 10px;
  padding: 18px;
  border: 1px solid rgba(242, 169, 0, 0.28);
  border-radius: 10px;
  background: rgba(242, 169, 0, 0.08);
}

.quote-summary strong {
  color: var(--white);
}

.quote-summary span {
  color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 980px) {
  .quote-start {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .quote-start div {
    justify-items: center;
  }

  .quote-grid,
  .quote-fields,
  .quote-scale {
    grid-template-columns: 1fr;
  }

  .quote-grid.three {
    grid-template-columns: repeat(2, minmax(128px, 160px));
  }

  .quote-grid.four {
    grid-template-columns: repeat(2, minmax(128px, 160px));
  }

  .quote-grid.two-centered {
    grid-template-columns: repeat(2, minmax(128px, 160px));
  }

  .quote-step {
    min-height: 0;
  }
}

@media (max-width: 560px) {
  .quote-wizard {
    padding: 18px;
  }

  .quote-start {
    min-height: 380px;
  }

  .quote-start img {
    width: min(100%, 250px);
  }

  .quote-grid.three {
    grid-template-columns: 1fr;
  }

  .quote-grid.four {
    grid-template-columns: 1fr;
  }

  .quote-grid.two-centered {
    grid-template-columns: 1fr;
  }

  .quote-scale-options {
    grid-template-columns: repeat(5, minmax(42px, 1fr));
  }

  .quote-scale-options label {
    height: 48px;
  }

  .quote-option {
    min-height: 0;
  }

  .quote-actions {
    flex-direction: column-reverse;
  }

  .quote-actions .btn {
    width: 100%;
  }

  .quote-actions .is-hidden {
    display: none;
  }
}
