/* Шесть точек контроля: линия этапов и документ выбранного этапа. */
.quality__track {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--space-sm);
  position: relative;
  padding: 4px;
}
.quality__step {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  text-decoration: none;
  min-width: 0;
  color: var(--color-ink);
  overflow-wrap: anywhere;
}
.quality__step::before {
  content: "";
  position: absolute;
  top: 25px;
  left: 28px;
  width: calc(100% + var(--space-sm));
  height: .5px;
  background: var(--color-accent);
}
.quality__step:last-child::before { display: none; }
.quality__number {
  position: relative;
  display: grid;
  place-items: center;
  text-align: center;
  letter-spacing: 0;
  flex: none;
  width: 56px;
  height: 50px;
  border: 1px solid var(--color-accent);
  border-radius: var(--radius-btn);
  color: var(--color-accent-ink);
  background: var(--color-bg-soft);
  transition: background var(--dur-fast), color var(--dur-fast);
}
a.quality__step:hover { color: var(--color-accent-ink); }
#quality .quality__track > span.quality__step:hover { color: var(--color-ink); }
.quality__step.is-active .quality__number {
  background: var(--color-accent);
  color: var(--color-bg);
}
.quality__step:focus-visible {
  outline: 2px solid var(--color-accent-ink);
  outline-offset: 2px;
  border-radius: 4px;
}
.quality__panels { margin-top: var(--space-lg); }
.quality__panel {
  --card-content-gap: var(--space-xs);
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: start;
  gap: var(--space-lg);
  padding: var(--card-padding-block) var(--card-padding-inline);
  border: 1px solid var(--color-border);
  border-radius: var(--space-24);
  background: var(--color-bg);
  min-height: 272px;
}
.quality__panel + .quality__panel { margin-top: var(--space-sm); }
.quality.is-enhanced .quality__panel { margin-top: 0; }
.quality__title {
  margin: 0 0 var(--card-content-gap);
  font-size: var(--card-title-size);
  font-weight: var(--card-title-weight);
  line-height: var(--card-title-line-height);
  overflow-wrap: anywhere;
}
.quality__panel > div { min-width: 0; }
.quality__description { color: var(--color-body-soft); }
.quality__document {
  position: relative;
  justify-self: end;
  width: 100%;
  max-width: 360px;
  padding: var(--card-padding-block) var(--card-padding-inline);
  border: 1px solid var(--color-border);
  border-top: 2px solid var(--color-accent);
}
.quality__document::before,
.quality__document::after {
  position: absolute;
  right: calc(var(--card-padding-inline) - 12px);
  bottom: calc(var(--card-padding-block) - 12px);
  display: grid;
  place-items: center;
  width: 76px;
  aspect-ratio: 1;
  color: #000e60;
  pointer-events: none;
  transform: rotate(16deg);
}
.quality.is-enhanced .quality__document::before,
.quality.is-enhanced .quality__document::after {
  opacity: 0;
  transform: rotate(16deg) scale(1.6);
}
.quality__document::before {
  content: "";
  border: 2px solid currentColor;
  border-radius: 50%;
}
.quality__document::after {
  content: "ЮСМ";
  font-family: var(--font-body);
  font-size: var(--p-small-size);
  font-weight: var(--p-bold-weight);
  letter-spacing: .08em;
}
.quality__document.is-stamped::before,
.quality__document.is-stamped::after {
  animation: quality-stamp 180ms cubic-bezier(.2, .8, .2, 1) 120ms both;
}
@keyframes quality-stamp {
  from { opacity: 0; transform: rotate(16deg) scale(1.6); }
  to { opacity: 1; transform: rotate(16deg) scale(1); }
}
.quality__document .p-large { margin-top: var(--space-xs); color: var(--color-ink); }
.quality__document-lines {
  display: block;
  height: 43px;
  margin-top: var(--space-md);
  background: repeating-linear-gradient(to bottom, var(--color-border) 0, var(--color-border) 1px, transparent 1px, transparent 14px);
}

/* Светлая вертикальная подача этапов контроля качества. */
.quality-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: var(--space-md);
  align-items: start;
}
.quality-layout__intro {
  position: sticky;
  top: calc(var(--header-h-stuck) + 24px);
  align-self: start;
  max-width: 520px;
}
.quality-layout__intro .section__head { margin-bottom: 0; }
.quality-layout__cta { margin-top: var(--space-md); }
.quality-layout__cards {
  display: grid;
  gap: var(--space-md);
  min-width: 0;
}
.quality-layout .quality__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-16);
}
.quality-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--card-content-gap);
  justify-content: space-between;
  min-width: 0;
  min-height: 280px;
  padding: var(--space-24) 72px var(--space-24) var(--space-24);
  border: 1px solid var(--color-border);
  border-radius: 28px;
  background: var(--color-bg);
}
.quality-card__number {
  position: absolute;
  top: var(--space-16);
  right: var(--space-24);
  color: var(--color-accent-ink);
}
.quality-card__icon {
  width: 88px;
  height: 88px;
  color: var(--color-accent-ink);
}
.quality-card__icon > .icon { width: 56px; height: 56px; }
.quality-card__icon .icon-blueprint__grid { stroke: var(--color-accent); opacity: .45; }
.quality-card__content { min-width: 0; }
.quality-card__title {
  margin: 0;
  font-size: var(--card-title-size);
  font-weight: var(--card-title-weight);
  line-height: var(--card-title-line-height);
}

/* Контроль качества: реальные сцены чередуются с лаконичными текстовыми
   карточками. Так сетка читается как последовательность, а не как набор
   крупных иконок. */
.quality-layout .quality-card {
  min-height: 300px;
  padding: var(--space-24);
  overflow: hidden;
}
.quality-layout .quality-card__number {
  z-index: 2;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  color: var(--color-accent-ink);
}
.quality-layout .quality-card--text,
.houses-guarantee-layout .quality-card--text { background: #ebe6df; }
.quality-layout .quality-card--photo {
  justify-content: flex-end;
  border-color: transparent;
  color: #fff;
  isolation: isolate;
}
.quality-layout .quality-card--photo > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quality-layout .quality-card--photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgb(34 31 28 / 4%) 25%, rgb(34 31 28 / 74%) 100%);
}
.quality-layout .quality-card--photo .quality-card__number { color: #fff; }
.quality-layout .quality-card--photo .quality-card__title {
  color: #fff;
  text-shadow: 0 1px 14px rgb(0 0 0 / 34%);
}
.quality-layout .quality-card__content { position: relative; z-index: 1; }
#quality:not(.section--soft) .quality__number { background: var(--color-bg); }
#quality:not(.section--soft) .quality__step.is-active .quality__number { background: var(--color-accent); }
@media (max-width: 1200px) {
  .quality__track { grid-template-columns: repeat(6, 160px); overflow-x: auto; }
  .quality__panels { margin-top: var(--space-md); }
  .quality__panel { gap: var(--space-md); }
  .quality-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
  .quality-layout__intro { position: static; max-width: 720px; }
  .quality-layout .quality-card { min-height: 240px; }
}
@media (max-width: 560px) {
  .quality__panel { grid-template-columns: 1fr; gap: var(--space-md); }
  .quality__document { max-width: none; }
  .quality-layout .quality__cards { grid-template-columns: minmax(0, 1fr); }
  .quality-card {
    padding: var(--card-padding-block) var(--card-padding-inline);
    border-radius: 20px;
  }
  .quality-card__number { top: var(--space-16); right: var(--space-16); }
}
@media (prefers-reduced-motion: reduce) {
  .quality__number { transition: none; }
  .quality.is-enhanced .quality__document::before,
  .quality.is-enhanced .quality__document::after {
    opacity: 1;
    transform: rotate(16deg) scale(1);
    animation: none;
  }
}
/* Параллакс фото в карточках качества: запас 20% высоты (см. [data-parallax] в base.css) */
.quality-layout .quality-card--photo[data-parallax] { overflow: hidden; }
.quality-layout .quality-card--photo[data-parallax] > img { inset: auto; top: -10%; left: 0; height: 120%; }

/* Карточка этапа со ссылкой: кликабельна целиком */
.quality-layout .quality-card--photo:has(.quality-card__title a) { cursor: pointer; }
.quality-layout .quality-card--photo:has(.quality-card__title a) .quality-card__content { position: static; }
.quality-layout .quality-card__title a { color: inherit; text-decoration: none; }
.quality-layout .quality-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
.quality-layout .quality-card__title a:focus-visible { outline: none; }
.quality-layout .quality-card__title a:focus-visible::after { outline: 2px solid var(--color-accent); outline-offset: 2px; }
