/*
 * Northside: equipment archive / single templates.
 *
 * Not in the design: built only from the homepage's design system (section
 * shells, eyebrows, Oswald titles, buttons, cards, hazard stripes, yellow
 * frame from "Why Northside", colors and fluid sizes from sections.css).
 */

/* -------------------------------------------------------------------------
 * Page intro (archive): dark band like the quote section header
 * ---------------------------------------------------------------------- */
.ns-page-hero.ns-page-hero {
	margin: 0;
	padding: clamp(56px, 40.4px + 4vw, 98px) var(--ns-gutter) clamp(56px, 46.3px + 2.476vw, 82px);
	background: var(--ns-black);
	color: var(--ns-white);
}

.ns-page-hero__inner.ns-page-hero__inner {
	display: flex;
	flex-direction: column;
	gap: clamp(18px, 14.2857px + 0.9524vw, 28px);
	max-width: 900px;
}

.ns-page-hero__inner > * {
	margin: 0 !important;
}

.ns-page-hero .ns-eyebrow {
	color: var(--ns-yellow);
}

.ns-page-hero__title.ns-page-hero__title {
	color: var(--ns-white);
	font-size: var(--wp--preset--font-size--banner);
	line-height: 1.02;
}

.ns-page-hero__lead {
	max-width: 620px;
	color: var(--wp--preset--color--haze);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.5;
}

.ns-page-hero__actions.ns-page-hero__actions {
	margin-top: 8px !important;
}

/* Parts section: off-white after the sand equipment section. */
.ns-parts.ns-parts {
	background: var(--wp--preset--color--off-white-2);
}

/* -------------------------------------------------------------------------
 * Single: intro (title, short description, buttons) + framed photo
 * ---------------------------------------------------------------------- */
.ns-product.ns-product {
	background: var(--wp--preset--color--off-white-2);
}

.ns-product__grid.ns-product__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(40px, 22.1714px + 4.5714vw, 96px);
}

.ns-product__text.ns-product__text {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 18.5143px + 0.381vw, 24px);
}

.ns-product__text > * {
	margin: 0 !important;
}

.ns-product .ns-eyebrow a {
	color: inherit;
	text-decoration: none;
}

.ns-product__title.ns-product__title {
	font-size: var(--wp--preset--font-size--h-2);
	line-height: 1.05;
}

.ns-product__lead {
	color: var(--wp--preset--color--body-text);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.65;
}

.ns-product__actions.ns-product__actions {
	margin-top: 8px !important;
}

.ns-product__actions .ns-btn--ghost-dark .wp-block-button__link {
	height: 64px;
	font-size: 19px;
}

/* Photo with the offset yellow frame from "Why Northside". */
.ns-product__media.ns-product__media {
	position: relative;
	height: 540px;
}

.ns-product__media::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	box-sizing: border-box;
	width: 86%;
	height: 480px;
	border: 6px solid var(--ns-yellow);
}

.ns-product__image.ns-product__image {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 86%;
	height: 480px;
	margin: 0;
	background: var(--ns-white);
}

.ns-product__image img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
}

.ns-product__image.is-fit-contain img {
	box-sizing: border-box;
	padding: 24px;
	object-fit: contain;
}

.ns-product__image.is-empty {
	padding: 0;
	background: var(--wp--preset--color--off-white-2);
}

@media (max-width: 781px) {
	.ns-product__grid.ns-product__grid {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.ns-product__title.ns-product__title {
		line-height: 1.08;
	}

	.ns-product__lead {
		line-height: 1.6;
	}

	.ns-product__actions.ns-product__actions,
	.ns-page-hero__actions.ns-page-hero__actions {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
		margin-top: 6px !important;
	}

	.ns-product__actions .ns-btn,
	.ns-page-hero__actions .ns-btn {
		width: 100%;
	}

	.ns-product__actions .wp-block-button__link,
	.ns-page-hero__actions .wp-block-button__link {
		gap: 10px;
		height: 58px !important;
		font-size: 18px !important;
	}

	.ns-product__media.ns-product__media {
		height: auto;
	}

	.ns-product__media::before {
		display: none;
	}

	.ns-product__image.ns-product__image {
		position: static;
		width: 100%;
		height: 260px;
		border-bottom: 5px solid var(--ns-yellow);
	}

	.ns-product__image.is-fit-contain img {
		padding: 16px;
	}
}

/* -------------------------------------------------------------------------
 * Single: description + specs card
 * ---------------------------------------------------------------------- */
.ns-product-details.ns-product-details {
	background: var(--wp--preset--color--off-white-2);
	padding-top: clamp(56px, 40.8px + 3.9vw, 97px);
}

.ns-product-details__grid.ns-product-details__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	align-items: start;
	gap: clamp(40px, 22.1714px + 4.5714vw, 96px);
}

.ns-product-details__main.ns-product-details__main {
	display: flex;
	flex-direction: column;
	gap: clamp(20px, 18.5143px + 0.381vw, 24px);
}

.ns-product-details__main > * {
	margin: 0 !important;
}

/* Specs as a card: same white card + yellow top rule as the equipment cards. */
.ns-product-details__aside .ns-specs {
	padding: clamp(24px, 21.0286px + 0.7619vw, 32px);
	border-top: 6px solid var(--ns-yellow);
	background: var(--ns-white);
}

@media (max-width: 781px) {
	.ns-product-details__grid.ns-product-details__grid {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.ns-product-details__aside .ns-specs {
		border-top-width: 5px;
	}
}

/* -------------------------------------------------------------------------
 * Single: photos (dark, like "Why Northside")
 * ---------------------------------------------------------------------- */
.ns-product-gallery.ns-product-gallery {
	background: var(--ns-black);
	color: var(--ns-white);
}

.ns-product-gallery .ns-stack {
	gap: clamp(24px, 12.1143px + 3.0476vw, 56px);
}

.ns-product-gallery .ns-eyebrow {
	color: var(--ns-yellow);
}

.ns-product-gallery .ns-section__title {
	color: var(--ns-white);
}
