/* ==========================================================
   Zerocoder Glossary — стандартный блок «Глоссарий терминов»
   Канон снят с боевых лендов vibe-market и agents-efir
   (одинаковая структура: один свёрнутый <details> + <dl> в две колонки).
   Под стилистику сайта меняются ТОЛЬКО токены ниже.
   Структуру, классы и формулировку summary менять нельзя.
   ========================================================== */

.acc--glossary {
  /* --- токены блока: переопредели под свой сайт --- */
  --gl-card: rgba(255, 255, 255, 0.55);      /* фон блока */
  --gl-border: 1px solid rgba(255, 255, 255, 0.9);
  --gl-blur: blur(16px);                     /* стекло; none — если стекла в стилистике нет */
  --gl-shadow: 0 24px 60px rgba(47, 123, 255, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --gl-radius: 20px;
  --gl-line: rgba(20, 23, 28, 0.1);          /* разделители терминов */
  --gl-text: #14171c;                        /* summary */
  --gl-term: #1d42ea;                        /* термин (dt) */
  --gl-def: rgba(20, 23, 28, 0.68);          /* определение (dd) */
  --gl-plus: #1d42ea;                        /* плюс-индикатор */
  --gl-font: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gl-font-term: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --gl-ease: cubic-bezier(0.22, 1, 0.36, 1);

  border-radius: var(--gl-radius);
  overflow: hidden;
  background: var(--gl-card);
  border: var(--gl-border);
  box-shadow: var(--gl-shadow);
  backdrop-filter: var(--gl-blur);
  -webkit-backdrop-filter: var(--gl-blur);
  font-family: var(--gl-font);
}

.acc--glossary summary {
  cursor: pointer;
  list-style: none;
  padding: 26px 30px;
  min-height: 44px;                          /* тач-мишень */
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--gl-text);
  position: relative;
}
.acc--glossary summary::-webkit-details-marker { display: none; }
.acc--glossary summary::marker { content: ""; }
.acc--glossary summary:focus-visible { outline: 2px solid var(--gl-plus); outline-offset: -2px; }

.acc--glossary summary::after {
  content: '+';
  position: absolute;
  right: 30px;
  top: 50%;
  translate: 0 -50%;
  font-family: var(--gl-font-term);
  font-size: 26px;
  line-height: 1;
  color: var(--gl-plus);
  transition: rotate 0.3s var(--gl-ease);
}
.acc--glossary[open] summary::after { rotate: 45deg; }

.glossary__terms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 40px;
  padding: 6px 30px 26px;
  margin: 0;
}
.glossary__term {
  padding: 16px 0;
  border-top: 1px solid var(--gl-line);
}
.glossary__term dt {
  font-family: var(--gl-font-term);
  font-weight: 700;
  font-size: 18px;
  color: var(--gl-term);
  margin-bottom: 6px;
}
.glossary__term dd {
  font-size: 16px;
  line-height: 1.55;
  color: var(--gl-def);
  margin: 0;
}

/* --- адаптив: канон Zerocoder 1199 / 959 / 639 / 374 --- */
@media (max-width: 959px) {
  .glossary__terms { gap: 0 28px; padding: 6px 24px 24px; }
  .acc--glossary summary { padding: 22px 24px; font-size: 21px; }
  .acc--glossary summary::after { right: 24px; }
}
@media (max-width: 639px) {
  .acc--glossary summary { font-size: 19px; padding: 18px; padding-right: 52px; }
  .acc--glossary summary::after { right: 18px; font-size: 24px; }
  .glossary__terms { grid-template-columns: 1fr; padding: 2px 18px 20px; }
  .glossary__term dt { font-size: 16.5px; }
  .glossary__term dd { font-size: 15px; }
}
@media (max-width: 374px) {
  .acc--glossary summary { font-size: 17.5px; padding: 16px; padding-right: 48px; }
  .glossary__terms { padding: 2px 16px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .acc--glossary summary::after { transition: none; }
}
