/* ===== Lang Directory — Primitives =====
 * Reusable building blocks for landing, bureau, and rating templates.
 * Requires ld-tokens.css (loaded as a dependency by LD_Assets).
 * ======================================= */

/* ===== Card ===== */
.ld-card {
  background: var(--ld-surface);
  border: 1px solid var(--ld-border);
  border-radius: var(--ld-radius-md);
  padding: var(--ld-space-4);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .05);
  transition: box-shadow .2s, transform .2s;
}
.ld-card:hover {
  box-shadow: var(--ld-shadow);
  transform: translateY(-2px);
}
.ld-card--bordered {
  box-shadow: none;
}
.ld-card--bordered:hover {
  box-shadow: 0 6px 20px rgba(15, 23, 42, .09);
  transform: translateY(-2px);
}
.ld-card--flat {
  box-shadow: none;
  transition: none;
}
.ld-card--flat:hover {
  transform: none;
  box-shadow: none;
}

/* ===== Buttons ===== */
.ld-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ld-space-2);
  padding: 10px var(--ld-space-4);
  border-radius: var(--ld-radius-sm);
  font-family: var(--ld-font);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  transition: opacity .2s, box-shadow .2s, transform .15s;
  border: 0;
}
.ld-btn:focus-visible {
  outline: 2px solid var(--ld-primary);
  outline-offset: 2px;
}

.ld-btn--primary {
  background: linear-gradient(90deg, var(--ld-primary), var(--ld-primary-700));
  color: #fff;
  box-shadow: 0 4px 12px rgba(30, 100, 255, .28);
}
.ld-btn--primary:hover { opacity: .9; transform: translateY(-1px); color: #fff; }

.ld-btn--ghost {
  background: transparent;
  color: var(--ld-primary);
  border: 1.5px solid var(--ld-primary);
}
.ld-btn--ghost:hover {
  background: rgba(30, 100, 255, .06);
  color: var(--ld-primary);
}

.ld-btn--sm {
  padding: 6px 12px;
  font-size: 13px;
  border-radius: 6px;
}

/* ===== Stars ===== */
.ld-stars {
  display: inline-flex;
  gap: 1px;
  color: var(--ld-star);
  font-size: 1em;
  line-height: 1;
  letter-spacing: -.05em;
}
.ld-stars--empty { color: var(--ld-star-empty); }

/* ===== Badge / pill ===== */
.ld-badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 2em;
  font-size: .78em;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
}
.ld-badge--success {
  background: #d1fae5;
  color: #065f46;
}
.ld-badge--muted {
  background: var(--ld-border);
  color: var(--ld-muted);
}
.ld-badge--rank {
  background: var(--ld-primary);
  color: #fff;
  border-radius: var(--ld-radius-sm);
  padding: 4px 10px;
  font-size: .85em;
}

/* ===== Breadcrumbs ===== */
.ld-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  font-size: .875em;
  color: var(--ld-muted);
  margin-bottom: var(--ld-space-4);
}
.ld-breadcrumbs a {
  color: var(--ld-muted);
  text-decoration: none;
}
.ld-breadcrumbs a:hover { color: var(--ld-primary); text-decoration: underline; }
.ld-breadcrumbs__sep {
  color: var(--ld-border);
  user-select: none;
}
/* Separator generated automatically between inline items */
.ld-breadcrumbs > * + *::before {
  content: "/";
  margin-right: 4px;
  color: var(--ld-border);
}
.ld-breadcrumbs > span::before,
.ld-breadcrumbs > a::before {
  /* only inject on direct children that aren't the first */
}

/* ===== Responsive grids ===== */
.ld-grid {
  display: grid;
  gap: var(--ld-space-4);
  grid-template-columns: 1fr;
}
.ld-grid--2,
.ld-grid--3,
.ld-grid--4 {
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .ld-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .ld-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .ld-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
  .ld-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .ld-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ===== Bare list ===== */
.ld-list-bare {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* ===== Glass navigation buttons (GeneratePress primary nav) ===== */
.main-navigation .main-nav > ul > li > a,
.nav-primary .main-nav > ul > li > a {
  display: inline-flex;
  align-items: center;
  padding: 7px 15px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .01em;
  text-decoration: none;
  transition: background .15s, box-shadow .15s, color .18s;
  position: relative;
}

.main-navigation .main-nav > ul > li > a:hover,
.nav-primary .main-nav > ul > li > a:hover {
  background: rgba(29, 99, 203, .09);
  color: #1d63cb;
  box-shadow: 0 0 0 1px rgba(29,99,203,.2), inset 0 1px 0 rgba(255,255,255,.6);
}

.main-navigation .main-nav > ul > li.current-menu-item > a,
.main-navigation .main-nav > ul > li.current-menu-ancestor > a,
.nav-primary .main-nav > ul > li.current-menu-item > a,
.nav-primary .main-nav > ul > li.current-menu-ancestor > a {
  background: rgba(29, 99, 203, .1);
  color: #1d63cb;
  box-shadow: 0 0 0 1px rgba(29,99,203,.25), inset 0 1px 0 rgba(255,255,255,.7);
}

/* Last item: "Добавить бюро" — filled primary CTA */
.main-navigation .main-nav > ul > li:last-child > a,
.nav-primary .main-nav > ul > li:last-child > a {
  background: linear-gradient(135deg, #1d63cb, #2e7de3);
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(29,99,203,.35), inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.main-navigation .main-nav > ul > li:last-child > a:hover,
.nav-primary .main-nav > ul > li:last-child > a:hover {
  background: linear-gradient(135deg, #1858b8, #2872d4);
  box-shadow: 0 4px 14px rgba(29,99,203,.4), inset 0 1px 0 rgba(255,255,255,.25);
  color: #fff !important;
}
