.product-body > [data-product].text-link { margin-top: 6px; }

/* ── lane:L-GATE ── */
/* lane:L-GATE:end */

/* ── lane:L-VIS ── */
/* VISUAL-03 · Ring ink follows each route's accent while shadow geometry stays tokenized · gates: design-tokens */
[data-landing-route][data-route-state="unavailable"]::before { color: color-mix(in srgb, var(--route-dot, var(--chapter-accent, var(--detail-accent, var(--coral)))) 18%, transparent); }
/* lane:L-VIS:end */

/* ── lane:L-ROUTE ── */
/* UX-02 · спокойный статус недоступного маршрута · gates: no motion */
[data-landing-route][data-route-state="unavailable"] {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--space-2);
  width: fit-content;
  max-width: 100%;
  min-height: 49px;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  color: var(--muted);
  cursor: default;
  font: var(--fw-semibold) var(--fs-meta)/var(--lh-meta) var(--font-body);
  text-decoration: none;
  pointer-events: none;
}
[data-landing-route="speaking"][data-route-state="unavailable"] {
  --route-dot: var(--w-speaking-accent);
}
[data-landing-route][data-route-state="unavailable"]::before {
  content: "";
  flex: 0 0 7px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--route-dot, var(--chapter-accent, var(--detail-accent, var(--coral))));
  box-shadow: var(--shadow-route-ring);
}
.product-dialog.is-unavailable .detail-contact {
  background: var(--detail-bg);
  background: color-mix(in srgb, var(--detail-bg) 50%, var(--paper));
}
.product-dialog.is-unavailable .detail-contact-link {
  min-height: 0;
  width: auto;
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--muted);
  justify-content: flex-start;
}
.product-dialog.is-unavailable .detail-contact-link > span { display: none; }
/* UX-07 · школьный контакт только у недоступного маршрута · gates: route:contact, dialogs:dock */
.route-contact[hidden] { display: none !important; }
#speaking .product-body > .route-contact.text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: var(--tap-min);
  margin-top: var(--space-3);
  color: var(--chapter-ink);
}
.product-dialog .detail-contact-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  min-width: 0;
}
.route-contact.is-outline {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  max-width: 100%;
  min-height: var(--tap-min);
  padding: var(--space-3) var(--space-5);
  border: 1px solid currentColor;
  border-radius: var(--r-pill);
  background: transparent;
  color: var(--ink);
  font: var(--fw-semibold) var(--fs-ui)/var(--lh-ui) var(--font-body);
  text-decoration: none;
}
.detail-dock-link.route-contact.is-outline {
  justify-content: space-between;
  width: 100%;
  min-height: 52px;
}
/* UX-08 · раскрытое описание поворачивает статический знак плюса · gates: design:icons, a11y names */
.product-more[open] > summary .i[data-icon="plus"] {
  --icon: var(--icon-plus);
  transform: rotate(45deg);
}
@media (forced-colors: active) {
  [data-landing-route][data-route-state="unavailable"]::before {
    background: none;
    border: 3.5px solid CanvasText;
    box-shadow: none;
  }
}
/* lane:L-ROUTE:end */

/* ── lane:L-NAV ── */
/* lane:L-NAV:end */

/* ── lane:L-DLG ── */
/* lane:L-DLG:end */

/* ── lane:L-FILM ── */
/* lane:L-FILM:end */

/* ── lane:L-MOT ── */
/* lane:L-MOT:end */

/* ── lane:L-PERF ── */
/* lane:L-PERF:end */
