/* Final configurator refinement. Content and section order remain untouched. */
.request-configurator {
  --configurator-focus: #972f34;
  --configurator-hover: #75252b;
}

.request-configurator :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--configurator-focus);
  outline-offset: 4px;
}

.request-configurator .configurator-intro {
  padding-block: 34px 30px;
}

.request-configurator .configurator-intro h1 {
  max-width: 18ch;
  font-size: clamp(42px, 3.5vw, 52px);
  line-height: 1.08;
  text-wrap: balance;
}

.request-configurator .configurator-intro p {
  max-width: 66ch;
  color: #5f5c57;
  font-size: 15px;
  line-height: 1.65;
}

.request-configurator .dress-studio__stage {
  height: clamp(560px, 72svh, 690px);
  min-height: 0;
}

.request-configurator .dress-studio__panel {
  padding-top: 10px;
}

body.dyona-site .request-configurator .dress-studio__panel-head h3 {
  max-width: 20ch;
  margin-block: 9px 8px;
  font-size: clamp(31px, 2.55vw, 39px);
  line-height: 1.12;
  overflow-wrap: normal;
  text-wrap: pretty;
}

.request-configurator .dress-studio__panel-head p {
  display: -webkit-box;
  min-height: 0;
  max-width: 46ch;
  margin-bottom: 20px;
  overflow: hidden;
  color: #5f5c57;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.request-configurator .dress-studio__search {
  margin-block: 18px 16px;
}

.request-configurator .dress-studio__search label {
  color: #373532;
  font-size: 13px;
  font-weight: 600;
}

.request-configurator .dress-studio__search input {
  min-height: 52px;
  border-color: #bcb7af;
  background: transparent;
}

.request-configurator .dress-studio__search input:hover {
  border-color: #8e8981;
}

.request-configurator .dress-studio__models {
  gap: 18px 12px;
  scrollbar-color: #b8b1a8 transparent;
  scrollbar-width: thin;
}

.request-configurator .dress-studio__models::-webkit-scrollbar { width: 5px; }
.request-configurator .dress-studio__models::-webkit-scrollbar-track { background: transparent; }
.request-configurator .dress-studio__models::-webkit-scrollbar-thumb { background: #b8b1a8; }

.request-configurator .dress-studio__model {
  min-height: 0;
  padding-bottom: 12px;
}

.request-configurator .dress-studio__model img {
  height: 124px;
  object-position: center bottom;
}

.request-configurator .dress-studio__model strong {
  height: 38px;
  color: #4d4a46;
  font-size: 12px;
  line-height: 19px;
}

.request-configurator .dress-studio__model-id {
  color: #625f5a;
  font-variant-numeric: tabular-nums;
}

.request-configurator .dress-studio__model[aria-pressed="true"] strong,
.request-configurator .dress-studio__model[aria-pressed="true"] .dress-studio__model-id {
  color: var(--rq-red);
}

.request-configurator .dress-studio__pagination {
  padding-top: 14px;
}

.request-configurator .dress-studio__selection-note p {
  margin-block: 20px;
}

.request-configurator .dress-studio__footer a,
.request-configurator .request-actions .request-primary {
  min-height: 56px;
}

.request-configurator .dress-studio__footer a {
  font-weight: 600;
  letter-spacing: .03em;
}

.request-configurator .dress-studio__note {
  max-width: 46ch;
  color: #686560;
  line-height: 1.65;
}

.request-configurator .request-progress button {
  transition: color .18s ease, border-color .18s ease;
}

.request-configurator .request-progress button:hover {
  color: var(--rq-ink);
}

.request-configurator .request-step-heading h2 {
  letter-spacing: -.015em;
  text-wrap: balance;
}

.request-configurator .request-choice > span,
.request-configurator .request-service-grid label > span {
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.request-configurator .request-summary {
  max-height: calc(100svh - 120px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: #b8b1a8 transparent;
  scrollbar-width: thin;
}

.request-configurator .request-summary::-webkit-scrollbar { width: 5px; }
.request-configurator .request-summary::-webkit-scrollbar-track { background: transparent; }
.request-configurator .request-summary::-webkit-scrollbar-thumb { background: #b8b1a8; }

.request-configurator .configurator-after h2 {
  max-width: 16ch;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.request-configurator .configurator-after li {
  padding-block: 2px 22px;
  border-bottom: 1px solid var(--rq-line);
}

.request-configurator .configurator-after li + li {
  margin-top: 22px;
}

.request-configurator .configurator-after li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

@media (hover: hover) and (pointer: fine) {
  .request-configurator .dress-studio__model:hover img { opacity: .92; }
  .request-configurator .dress-studio__footer a:hover,
  .request-configurator .request-actions .request-primary:hover { background: var(--configurator-hover); }
}

@media (min-width: 821px) {
  .request-configurator .dress-studio {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, 1fr);
    column-gap: 64px;
  }

  .request-configurator .dress-studio__workspace { grid-column: 1 / -1; }
  .request-configurator .dress-studio__note { grid-column: 2; }
}

@media (min-width: 821px) and (max-width: 1100px) {
  .request-configurator .dress-studio {
    grid-template-columns: minmax(0, 1fr) 360px;
    column-gap: 36px;
  }

  body.dyona-site .request-configurator .dress-studio__panel-head h3 {
    font-size: 31px;
  }
}

@media (max-width: 820px) {
  .request-configurator .configurator-intro { padding-block: 28px 24px; }

  .request-configurator .configurator-intro h1 {
    margin-bottom: 10px;
    font-size: clamp(36px, 8vw, 44px);
  }

  .request-configurator .configurator-intro p { font-size: 14px; }

  .request-configurator .dress-studio__stage {
    height: min(70svh, 660px);
    aspect-ratio: auto;
  }

  .request-configurator .dress-studio__panel { padding-top: 8px; }

  body.dyona-site .request-configurator .dress-studio__panel-head h3 {
    max-width: 22ch;
    font-size: clamp(30px, 6vw, 36px);
    line-height: 1.1;
  }

  .request-configurator .dress-studio__panel-head p { -webkit-line-clamp: 4; }

  .request-configurator .dress-studio__note {
    margin-top: 8px;
  }

  .request-configurator .request-summary {
    max-height: none;
    overflow: visible;
  }

  .request-configurator .configurator-after li { padding-bottom: 20px; }
}

@media (max-width: 600px) {
  .request-configurator .dress-studio__stage {
    height: min(68svh, 560px);
  }

  .request-configurator .dress-studio__model img {
    height: clamp(168px, 47vw, 188px);
  }

  .request-configurator .request-progress {
    margin-bottom: 38px;
  }

  .request-configurator .request-step-heading {
    margin-bottom: 36px;
  }

  .request-configurator .request-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .request-configurator .request-actions .request-primary {
    width: 100%;
    min-width: 0;
    margin-left: 0;
  }

  .request-configurator .request-actions > button:not(.request-primary) {
    align-self: flex-start;
  }

  .request-configurator .configurator-after {
    gap: 32px;
  }
}

@media (max-width: 420px) {
  .request-configurator .configurator-intro h1 { font-size: 36px; }
  .request-configurator .request-progress { gap: 6px; }
  .request-configurator .request-progress button { padding-inline: 1px; }
  .request-configurator .request-step-heading h2 { font-size: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  .request-configurator *,
  .request-configurator *::before,
  .request-configurator *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
