/* ============================================================
   LAYOUT PRIMITĪVI (Every Layout princips) — struktūra BEZ stila.
   Šīs klases nekad nenosaka krāsu/fontu — tikai izkārtojumu.
   Klienta unikalitāte nāk no tā, KĀ tās kombinē + tokenu ādas.
   ============================================================ */

/* Konteiners — vienīgais platuma avots (nekādu ad-hoc max-width) */
.wrap {
  width: min(var(--wrap, 1180px), 100% - 2.5rem);
  margin-inline: auto;
}
.wrap--narrow { width: min(840px, 100% - 2.5rem); }

/* Sekcijas vertikālais ritms */
.section { padding-block: clamp(64px, 9vw, 108px); }

/* Stack — vertikāla plūsma ar vienādām atstarpēm starp bērniem */
.stack > * + * { margin-block-start: var(--stack-space, var(--space-4, 1.5rem)); }
.stack--sm > * + * { margin-block-start: var(--space-2, 0.75rem); }
.stack--lg > * + * { margin-block-start: var(--space-6, 3rem); }

/* Cluster — horizontāla grupa, kas dabiski aplaužas (pogas, čipi, meta) */
.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cluster-gap, var(--space-3, 1rem));
  align-items: var(--cluster-align, center);
}

/* Sidebar — saturs + sāns, kas zem sliekšņa dabiski sakrīt vertikāli */
.with-sidebar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sidebar-gap, var(--space-5, 2rem));
}
.with-sidebar > :first-child { flex-basis: var(--sidebar-w, 280px); flex-grow: 1; }
.with-sidebar > :last-child { flex-basis: 0; flex-grow: 999; min-inline-size: 55%; }

/* Switcher — rindā, kamēr pietiek vietas; citādi kolonnā (bez media query) */
.switcher {
  display: flex;
  flex-wrap: wrap;
  gap: var(--switcher-gap, var(--space-4, 1.5rem));
}
.switcher > * {
  flex-grow: 1;
  flex-basis: calc((var(--switcher-limit, 640px) - 100%) * 999);
}

/* Auto-grid — kartīšu režģis bez breakpointiem */
.auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-min, 260px), 100%), 1fr));
  gap: var(--grid-gap, var(--space-4, 1.5rem));
}

/* Cover — pilna augstuma sekcija ar centrētu galveno elementu (hero) */
.cover {
  display: flex;
  flex-direction: column;
  min-block-size: var(--cover-h, 100svh);
}
.cover > .cover__center { margin-block: auto; }

/* Palīgi (bez vizuāla stila) */
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}
