/* PHOTO SHOOT fitting room: an editorial three-part studio, scoped so the
   independent room/theme styles cannot collapse its spatial relationships. */
#fittingRoom #fittingWorkspace,
#fittingRoom #fittingWorkspace * {
  box-sizing: border-box;
}

#fittingRoom #fittingWorkspace {
  --fit-paper: #fbf7ef;
  --fit-paper-deep: #efe6d8;
  --fit-ink: #3d3028;
  --fit-muted: #625449;
  --fit-line: #ded2c1;
  --fit-accent: #985638;
  --fit-accent-dark: #75402b;
  width: 100%;
  max-width: none;
  color: var(--fit-ink);
}

#fittingRoom #fittingWorkspace .fit-workspace {
  width: 100%;
}

/* The old shared Shopper source control reserves a 220px second column.
   Within the new right-hand conversation it must follow the column width. */
#fittingRoom #fittingWorkspace .sc-wardrobe-source {
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

#fittingRoom #fittingWorkspace .fit-workspace-top {
  align-items: flex-end;
  margin: 0 0 12px;
  padding-bottom: 14px;
}

#fittingRoom #fittingWorkspace .fit-workspace-top h2 {
  font-size: clamp(26px, 2.3vw, 34px);
}

#fittingRoom #fittingWorkspace .fit-step-mark { display: none; }
#fittingRoom #fittingWorkspace .fit-source-options { margin: 0 0 10px; }
#fittingRoom #fittingWorkspace .fit-source-options > summary { padding: 8px 0; cursor: pointer; font-size: 14px; }

#fittingRoom #fittingWorkspace .fit-workspace-top > div:first-child > p:last-child {
  max-width: 680px;
  color: #625449;
  font-size: 16px !important;
}

#fittingRoom #fittingWorkspace .fit-local-nav {
  position: sticky;
  z-index: 12;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 10px;
  padding: 7px 0;
  border-bottom: 1px solid #ded2c1;
  background: #fbf7ef;
}

#fittingRoom #fittingWorkspace .fit-local-nav__moves,
#fittingRoom #fittingWorkspace .fit-local-nav__destinations {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

#fittingRoom #fittingWorkspace .fit-local-nav button {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid #d8c8b5;
  background: #fbf7ef;
  color: #75402b;
  font: 600 14px/1.25 var(--room-body, sans-serif);
  white-space: nowrap;
  cursor: pointer;
}

#fittingRoom #fittingWorkspace .fit-local-nav button:hover {
  border-color: #985638;
  background: #f3e9db;
}

#fittingRoom #fittingWorkspace .fit-local-nav__destinations button:last-child {
  border-color: #75402b;
  background: #75402b;
  color: #fff8ed;
}

#fittingRoom #fitVoiceDock {
  position: sticky;
  z-index: 11;
  top: 56px;
  display: flex;
  justify-content: flex-end;
  min-height: 0;
  pointer-events: none;
}

#fittingRoom #fitVoiceDock:empty {
  display: none;
}

#fittingRoom #fitVoiceDock > * {
  pointer-events: auto;
}

#fittingRoom #fittingWorkspace .fit-workspace-grid {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.43fr) minmax(0, 1fr);
  grid-template-areas: "rack mirror shopper";
  align-items: start;
  gap: clamp(10px, 1.25vw, 18px);
}

#fittingRoom #fittingWorkspace .fit-primary-column,
#fittingRoom #fittingWorkspace .fit-rack-column {
  grid-area: rack;
  display: block;
  min-width: 0;
}

#fittingRoom #fittingWorkspace .fit-side-column,
#fittingRoom #fittingWorkspace .fit-mirror-column {
  grid-area: mirror;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  align-content: start;
  gap: 12px;
}

#fittingRoom #fittingWorkspace .fit-section-heading,
#fittingRoom #fittingWorkspace .fit-stage-head {
  flex-wrap: wrap;
}

#fittingRoom #fittingWorkspace .fit-section-heading > div,
#fittingRoom #fittingWorkspace .fit-stage-head > div {
  min-width: 0;
  max-width: 100%;
}

#fittingRoom #fittingWorkspace .fit-conversation-column {
  grid-area: shopper;
  display: grid;
  align-content: start;
  min-width: 0;
}

#fittingRoom #fittingWorkspace .fit-rack-view,
#fittingRoom #fittingWorkspace .fit-side-column > .fit-real-studio,
#fittingRoom #fittingWorkspace .fit-conversation-column .fit-shopper {
  min-width: 0;
  padding: clamp(12px, 1.4vw, 19px);
  border: 1px solid rgba(114, 87, 63, .18);
  background: rgba(255, 251, 244, .8);
  box-shadow: 0 7px 22px rgba(66, 47, 33, .04);
}

#fittingRoom #fittingWorkspace .fit-rack-view {
  padding-bottom: 15px;
}

#fittingRoom #fittingWorkspace .fit-rack-view > .fit-section-heading {
  align-items: center;
  margin-bottom: 12px;
}

#fittingRoom #fittingWorkspace .fit-rack-view > .fit-section-heading h2 {
  font-size: clamp(28px, 2.25vw, 36px);
}

#fittingRoom #fittingWorkspace .fit-rack-heading-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 10px;
}

#fittingRoom #fittingWorkspace .fit-rack-heading-actions .fit-text-button {
  white-space: nowrap;
}

#fittingRoom #fittingWorkspace .fit-rack-expand,
#fittingRoom #fittingWorkspace .fit-collapse-button {
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid #cbb7a2;
  background: #fbf7ef;
  color: #75402b;
  font: 600 14px/1.25 var(--room-body, sans-serif);
  cursor: pointer;
}

#fittingRoom #fittingWorkspace .fit-rack-expand:hover,
#fittingRoom #fittingWorkspace .fit-collapse-button:hover {
  border-color: #985638;
  background: #f3e9db;
}

#fittingRoom #fittingWorkspace .fit-collapse-button {
  display: none;
  width: fit-content;
  margin: 0 0 10px;
}

#fittingRoom #fittingWorkspace .fit-rack-list {
  display: grid;
  gap: 11px;
  max-height: min(64vh, 720px);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c3a88d transparent;
}

#fittingRoom #fittingWorkspace .fit-rack-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  border: 1px solid #ded2c1;
  background: #fffcf7;
}

#fittingRoom #fittingWorkspace .fit-rack-image {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 220px;
  padding: 8px;
  border: 0;
  border-bottom: 1px solid #ded2c1;
  background:
    linear-gradient(135deg, rgba(255, 252, 246, .72), transparent 55%),
    #eee5d9;
  cursor: pointer;
}

#fittingRoom #fittingWorkspace .fit-rack-image img {
  display: block;
  width: 100%;
  height: 215px;
  min-height: 0;
  object-fit: contain;
}

#fittingRoom #fittingWorkspace .fit-rack-image[aria-pressed="true"] {
  box-shadow: inset 0 0 0 3px #985638;
}

#fittingRoom #fittingWorkspace .fit-rack-image span {
  right: 8px;
  bottom: 8px;
  left: 8px;
  padding: 6px;
  color: #51463d;
  font: 14px/1.25 var(--room-body, sans-serif);
}

#fittingRoom #fittingWorkspace .fit-rack-copy {
  padding: 12px;
}

#fittingRoom #fittingWorkspace .fit-rack-copy small,
#fittingRoom #fittingWorkspace .fit-meta,
#fittingRoom #fittingWorkspace .fit-unavailable {
  color: #625449;
  font-size: 14px !important;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

#fittingRoom #fittingWorkspace .fit-rack-title h3 {
  font-size: clamp(20px, 1.7vw, 25px);
}

#fittingRoom #fittingWorkspace .fit-rack-actions {
  gap: 8px;
}

#fittingRoom #fittingWorkspace .fit-rack-actions button,
#fittingRoom #fittingWorkspace .fit-piece-preferences summary,
#fittingRoom #fittingWorkspace .fit-own-form summary {
  font-size: 14px !important;
}

#fittingRoom #fittingWorkspace .fit-own-form {
  margin: 0 0 12px;
}

#fittingRoom #fittingWorkspace .fit-rack-catalog-slot {
  margin-top: 12px;
}

#fittingRoom #fittingWorkspace .fit-catalog-details {
  display: block;
  margin: 0;
  padding: 12px;
  border: 1px solid rgba(114, 87, 63, .18);
  background: rgba(255, 251, 244, .8);
}

#fittingRoom #fittingWorkspace .fit-catalog-details > summary {
  min-height: 46px;
  color: #75402b;
  font-size: 15px !important;
  font-weight: 600;
  cursor: pointer;
}

#fittingRoom #fittingWorkspace .fit-catalog-results {
  max-height: 50vh;
  overflow: auto;
}

#fittingRoom #fittingWorkspace .fit-category-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

#fittingRoom #fittingWorkspace .fit-category-choices button {
  min-height: 40px;
  padding: 7px 9px;
  border: 1px solid #d8c8b5;
  background: #fbf7ef;
  color: #59483b;
  font: 14px/1.25 var(--room-body, sans-serif);
  cursor: pointer;
}

#fittingRoom #fittingWorkspace .fit-real-studio {
  width: 100%;
  padding: clamp(13px, 1.5vw, 21px);
  border-color: #d5c4b1;
}

#fittingRoom #fittingWorkspace .fit-real-studio .fit-stage-head {
  margin-bottom: 12px;
}

#fittingRoom #fittingWorkspace .fit-real-studio h2 {
  font-size: clamp(32px, 3.2vw, 45px);
}

#fittingRoom #fittingWorkspace .fit-studio-viewport {
  width: 100%;
  height: clamp(440px, 55vh, 650px);
  max-width: none;
}

#fittingRoom #fittingWorkspace .fit-studio-angles {
  width: 100%;
}

#fittingRoom #fittingWorkspace .fit-studio-status,
#fittingRoom #fittingWorkspace .fit-studio-controls,
#fittingRoom #fittingWorkspace .fit-studio-outfit,
#fittingRoom #fittingWorkspace .fit-disclaimer,
#fittingRoom #fittingWorkspace .fit-studio-action-row {
  width: 100%;
  max-width: none;
}

#fittingRoom #fittingWorkspace .fit-conversation-column .fit-shopper {
  display: grid;
  align-content: start;
  gap: 13px;
  padding: 0;
  border-top: 2px solid #985638;
}

#fittingRoom #fittingWorkspace .fit-shopper-intro {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin: 0;
  padding: 15px;
  border-bottom: 1px solid #ded2c1;
}

#fittingRoom #fittingWorkspace .fit-shopper-intro h2 {
  font-size: clamp(29px, 2.7vw, 39px);
}

#fittingRoom #fittingWorkspace #shopperConversationSlot {
  min-width: 0;
}

#fittingRoom #fittingWorkspace .shopper-chat {
  border: 0;
  border-top: 0;
  background: transparent;
  box-shadow: none;
}

#fittingRoom #fittingWorkspace .fit-privacy-note {
  padding: 14px;
  border-left: 2px solid #9b8062;
  background: #eee5d9;
}

#fittingRoom #fittingWorkspace .fit-privacy-note p {
  margin: 8px 0 0;
  color: #625449;
  font-size: 14px !important;
  line-height: 1.55;
}

#fittingRoom #fittingWorkspace .fit-saved {
  margin-top: 20px;
}

@media (min-width: 700px) {
  #fittingRoom #fittingWorkspace .fit-workspace-grid {
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.42fr) minmax(0, .98fr);
  }
}

@media (max-width: 699px) {
  #fittingRoom #fittingWorkspace .fit-workspace-top,
  #fittingRoom #fittingWorkspace .fit-local-nav__moves { display: none; }
  #fittingRoom #fittingWorkspace .fit-workspace-top {
    margin-bottom: 8px;
    padding-bottom: 9px;
  }

  #fittingRoom #fittingWorkspace .fit-workspace-top h2 {
    font-size: clamp(30px, 8vw, 39px);
  }

  #fittingRoom #fittingWorkspace .fit-local-nav {
    top: 0;
    gap: 5px;
    margin-inline: -1px;
    padding: 5px 0;
  }

  #fittingRoom #fittingWorkspace .fit-local-nav__moves {
    flex: 1 1 auto;
    overflow-x: auto;
    scrollbar-width: none;
  }

  #fittingRoom #fittingWorkspace .fit-local-nav__moves::-webkit-scrollbar {
    display: none;
  }

  #fittingRoom #fittingWorkspace .fit-local-nav__destinations {
    flex: 0 0 auto;
  }

  #fittingRoom #fittingWorkspace .fit-local-nav button {
    min-height: 42px;
    padding: 7px 9px;
    font-size: 14px;
  }

  #fittingRoom #fittingWorkspace .fit-workspace-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "mirror"
      "rack"
      "shopper";
    gap: 12px;
  }

  #fittingRoom #fittingWorkspace .fit-side-column,
  #fittingRoom #fittingWorkspace .fit-mirror-column,
  #fittingRoom #fittingWorkspace .fit-primary-column,
  #fittingRoom #fittingWorkspace .fit-rack-column,
  #fittingRoom #fittingWorkspace .fit-conversation-column {
    grid-column: auto;
    grid-row: auto;
    order: initial;
  }

  #fittingRoom #fittingWorkspace .fit-studio-viewport {
    height: min(64dvh, 680px);
    min-height: 440px;
  }

  #fittingRoom #fittingWorkspace .fit-rack-view {
    padding: 13px;
  }

  #fittingRoom #fittingWorkspace .fit-rack-list {
    display: flex;
    max-height: none;
    margin-inline: -13px;
    padding: 0 13px 8px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
  }

  #fittingRoom #fittingWorkspace .fit-rack-card {
    flex: 0 0 min(72vw, 290px);
    scroll-snap-align: start;
  }

  #fittingRoom #fittingWorkspace .fit-rack-image {
    min-height: 245px;
  }

  #fittingRoom #fittingWorkspace .fit-rack-image img {
    height: 240px;
  }

  #fittingRoom #fittingWorkspace .fit-catalog-results {
    max-height: 48dvh;
  }

  #fittingRoom #fittingWorkspace .fit-conversation-column .fit-shopper {
    gap: 9px;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-workspace-grid {
    grid-template-areas: "rack";
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-mirror-column,
  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-conversation-column {
    display: none;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-column {
    min-height: calc(100dvh - 160px);
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-view {
    min-height: calc(100dvh - 160px);
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-collapse-button,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-collapse-button {
    display: inline-flex;
    align-items: center;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    max-height: calc(100dvh - 245px);
    margin: 0;
    padding: 0 0 8px;
    overflow-y: auto;
    overflow-x: hidden;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-card {
    grid-template-columns: minmax(118px, 38%) minmax(0, 1fr);
    flex: initial;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-image {
    min-height: 280px;
    border-right: 1px solid #ded2c1;
    border-bottom: 0;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="rack"] .fit-rack-image img {
    height: 100%;
    min-height: 260px;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-rack-column,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-conversation-column {
    display: none;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-workspace-grid {
    grid-template-areas: "mirror";
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-mirror-column {
    min-height: calc(100dvh - 155px);
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-real-studio {
    min-height: calc(100dvh - 155px);
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-viewport {
    height: calc(100dvh - 285px);
    min-height: 470px;
    max-height: 860px;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-outfit,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-controls,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-disclaimer,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-action-row,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-status,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-manual-fallback,
  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-privacy-note {
    display: none;
  }

  #fittingRoom #fittingWorkspace[data-fit-expanded="mirror"] .fit-studio-angles {
    margin-bottom: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #fittingRoom #fittingWorkspace *,
  #fittingRoom #fittingWorkspace *::before,
  #fittingRoom #fittingWorkspace *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
