/* ==========================================================================
   NAGI — containers, grid, section rhythm
   ========================================================================== */

.nagi-container {
	width: 100%;
	max-width: var(--nagi-max);
	margin-inline: auto;
	padding-inline: var(--nagi-gutter);
}

.nagi-container--narrow {
	max-width: var(--nagi-max-narrow);
}

.nagi-container--flush {
	max-width: none;
	padding-inline: 0;
}

/* --------------------------------------------------------------------------
   Section rhythm. One token drives desktop and mobile.
   -------------------------------------------------------------------------- */

.nagi-section {
	padding-block: var(--nagi-section-y);
	position: relative;
}

.nagi-section--tight { padding-block: var(--nagi-space-6); }
.nagi-section--loose { padding-block: var(--nagi-space-9); }
.nagi-section--flush-top { padding-block-start: 0; }
.nagi-section--flush-bottom { padding-block-end: 0; }

/* --------------------------------------------------------------------------
   12-column grid
   -------------------------------------------------------------------------- */

.nagi-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 2rem);
}

/* Product/category card grids size by track, not by column count, so a
   short line reflows instead of leaving empty cells. */
.nagi-grid--cards {
	grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr));
}

.nagi-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.nagi-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nagi-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nagi-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1024px) {
	.nagi-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nagi-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
	.nagi-grid--5,
	.nagi-grid--4,
	.nagi-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.nagi-grid--2 { grid-template-columns: minmax(0, 1fr); }
}

/* --------------------------------------------------------------------------
   Uneven splits. Explicit percentages — never left at an equal default.
   -------------------------------------------------------------------------- */

.nagi-split-26-74 { display: grid; grid-template-columns: 26% 74%; gap: clamp(1rem, 2vw, 2rem); }
.nagi-split-44-56 { display: grid; grid-template-columns: 44% 56%; gap: clamp(1.5rem, 3vw, 3.5rem); }
.nagi-split-56-44 { display: grid; grid-template-columns: 56% 44%; gap: clamp(1.5rem, 3vw, 3.5rem); }
.nagi-split-58-42 { display: grid; grid-template-columns: 58% 42%; gap: clamp(1.5rem, 3vw, 3.5rem); }
.nagi-split-42-58 { display: grid; grid-template-columns: 42% 58%; gap: clamp(1.5rem, 3vw, 3.5rem); }

@media (max-width: 900px) {
	.nagi-split-26-74,
	.nagi-split-44-56,
	.nagi-split-56-44,
	.nagi-split-58-42,
	.nagi-split-42-58 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* --------------------------------------------------------------------------
   Section head
   -------------------------------------------------------------------------- */

.nagi-section-head {
	position: relative;
	margin-bottom: var(--nagi-space-6);
	max-width: var(--nagi-max-narrow);
}

.nagi-section-head--center {
	margin-inline: auto;
	text-align: center;
}

.nagi-section-head--between {
	max-width: none;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	column-gap: var(--nagi-space-5);
}

.nagi-section-head__title {
	font-size: var(--nagi-t-h2);
	margin: 0;
}

.nagi-section-head__lede {
	margin-top: var(--nagi-space-3);
	color: var(--nagi-surface-mute, var(--nagi-text-mute));
	max-width: 52ch;
}

.nagi-section-head__rule {
	display: block;
	height: 1px;
	width: 100%;
	margin-top: var(--nagi-space-4);
	background: var(--nagi-accent, var(--nagi-red));
	opacity: 0.55;
	grid-column: 1 / -1;
}

.nagi-section-head--between .nagi-section-head__link {
	align-self: end;
	justify-self: end;
	white-space: nowrap;
}

@media (max-width: 700px) {
	.nagi-section-head--between {
		grid-template-columns: minmax(0, 1fr);
		row-gap: var(--nagi-space-3);
	}

	.nagi-section-head--between .nagi-section-head__link {
		justify-self: start;
	}
}

/* --------------------------------------------------------------------------
   Main
   -------------------------------------------------------------------------- */

.nagi-main {
	display: block;
	min-height: 40vh;
}

/* An inline row of small items takes only the width each one needs — never
   forced into equal columns. */
.nagi-inline-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(1rem, 3vw, 2.75rem);
}

.nagi-inline-row > * {
	flex: 0 1 auto;
}
