/* Page-only styles for /products/ruvents-kompleks/. Builds on product.css. */

.p-facts--3 { grid-template-columns: repeat(3, 1fr); }
.p-facts--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 767.98px) {
  .p-facts--3 { grid-template-columns: 1fr; }
  .p-facts--4 { grid-template-columns: repeat(2, 1fr); }
}

/* Architecture diagram: the dashed frame means "one data model", not the customer perimeter. */
.p-arch--kompleks .p-arch__perimeter:before { content: "Единая база участников"; }
@media (max-width: 767.98px) {
  .p-arch--kompleks .p-arch__row--2 { grid-template-columns: 1fr; }
}

/* ---------- flow: six steps read as two rows of three on desktop ---------- */
@media (min-width: 992px) {
  #p-flow .p-journey { grid-template-columns: repeat(3, 1fr); }
  #p-flow .p-journey__step:nth-child(4n):before { display: block; }
  #p-flow .p-journey__step:nth-child(3n):before,
  #p-flow .p-journey__step:last-child:before { display: none; }
}

/* ---------- scenarios ---------- */
.p-scen { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.75rem; }
.p-scen__item {
  background: #fff;
  border: 1px solid var(--p-line);
  border-radius: var(--p-radius);
  padding: 1.125rem;
}
.p-scen__name { font-weight: 700; color: var(--p-blue); font-size: 1.0625rem; margin-bottom: 0.375rem; }
.p-scen__text { font-size: 0.9375rem; color: var(--p-muted); line-height: 1.45; }
@media (max-width: 1199.98px) { .p-scen { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767.98px) { .p-scen { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 400px) { .p-scen { grid-template-columns: 1fr; } }

/* ---------- modules ---------- */
.p-mods { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.p-mod {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--p-line);
  border-top: 4px solid var(--p-blue-bright);
  border-radius: var(--p-radius);
  padding: 1.75rem 1.5rem 1.5rem;
}
.p-mod__tag { font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--p-muted); }
.p-mod__name { font-size: 1.5rem; font-weight: 800; color: var(--p-blue); margin: 0.375rem 0 0.5rem; }
.p-mod__lead { font-size: 1.0625rem; color: var(--p-ink); margin-bottom: 1rem; }
.p-mod__list { list-style: none; padding: 0; margin: 0 0 1.25rem; flex: 1 1 auto; }
.p-mod__list li { position: relative; padding-left: 1.25rem; margin-bottom: 0.5rem; font-size: 1rem; line-height: 1.45; color: #4a4a4a; }
.p-mod__list li:before { content: "—"; position: absolute; left: 0; color: var(--p-blue); }
.p-mod__foot { border-top: 1px solid var(--p-line); padding-top: 1rem; }
.p-mod__platform { font-size: 0.875rem; color: var(--p-muted); margin-bottom: 0.625rem; }
.p-mod__price { font-size: 1.5rem; font-weight: 800; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.p-mod__price span { font-size: 0.9375rem; font-weight: 400; color: var(--p-muted); }
.p-mod__docs { display: inline-block; margin-top: 0.5rem; font-size: 0.9375rem; color: var(--p-blue); }
@media (max-width: 991.98px) { .p-mods { grid-template-columns: 1fr; } }

/* ---------- roles: 7 items ---------- */
.p-roles--7 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 991.98px) { .p-roles--7 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .p-roles--7 { grid-template-columns: 1fr; } }

/* ---------- pricing: on phones keep module and price on screen; the module cards above describe the scope ---------- */
@media (max-width: 575.98px) {
  #p-pricing .p-table { min-width: 0; }
  #p-pricing .p-table th:nth-child(2),
  #p-pricing .p-table td:nth-child(2) { display: none; }
}

/* ---------- grouped documents ---------- */
.p-docs__group { font-size: 1.25rem; font-weight: 700; color: var(--p-ink); margin: 2.25rem 0 1rem; }
.p-docs__group:first-of-type { margin-top: 0; }

/* ---------- FAQ ---------- */
.p-faq { max-width: 60rem; }
.p-faq__item { border-bottom: 1px solid var(--p-line); }
.p-faq__item summary {
  cursor: pointer;
  list-style: none;
  position: relative;
  padding: 1.125rem 2.5rem 1.125rem 0;
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--p-ink);
}
.p-faq__item summary::-webkit-details-marker { display: none; }
.p-faq__item summary:after {
  content: "+";
  position: absolute;
  right: 0.25rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--p-blue);
}
.p-faq__item[open] summary:after { content: "−"; }
.p-faq__item summary:focus-visible { outline: 2px solid var(--p-blue-bright); outline-offset: 2px; }
.p-faq__item p { margin: 0 0 1.25rem; font-size: 1.0625rem; line-height: 1.55; color: #4a4a4a; max-width: 62ch; }
