.graha-site-shell {
	display: flex;
	flex-direction: column;
	min-block-size: 100vh;
	background: var(--graha-color-surface);
}

.graha-site-header {
	position: sticky;
	inset-block-start: 0;
	z-index: 900;
	border-block-end: var(--graha-border-width) solid var(--graha-color-border);
	background: var(--graha-color-surface);
	box-shadow: 0 0.25rem 1rem rgb(15 23 42 / 0.05);
}

body.admin-bar .graha-site-header { inset-block-start: 32px; }
@media (max-width:782px) { body.admin-bar .graha-site-header { inset-block-start: 46px; } }

.graha-site-header::before {
	content: "";
	display: block;
	block-size: 0.25rem;
	background: linear-gradient(90deg, var(--graha-color-primary-dark), var(--graha-color-primary) 55%, var(--graha-color-primary-hover));
}

.graha-site-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: var(--graha-space-3) var(--graha-space-5);
	padding-block: var(--graha-space-3);
}

.graha-site-header__nav-cta {
	display: flex;
	align-items: center;
	gap: var(--graha-space-4);
	justify-content: space-between;
	min-inline-size: 0;
}

.graha-site-identity {
	min-inline-size: 0;
	display: flex;
	align-items: center;
	font-size: var(--graha-type-xl);
	font-weight: var(--graha-weight-bold);
	line-height: var(--graha-leading-tight);
	color: var(--graha-color-text);
}

.graha-site-identity a {
	display: inline-flex;
	align-items: center;
	color: inherit;
	text-decoration: none;
	max-inline-size: 100%;
}

.graha-site-identity__logo {
	display: block;
	inline-size: min(100%, var(--graha-logo-max));
	max-inline-size: var(--graha-logo-max);
	block-size: auto;
	flex-shrink: 1;
}

.graha-site-identity__name {
	white-space: nowrap;
}

.graha-site-header__cta {
	flex-shrink: 0;
}

.graha-site-main {
	flex: 1 1 auto;
	padding-block: var(--graha-space-6) var(--graha-space-8);
}

.graha-page-header {
	max-inline-size: none;
	margin-block-end: var(--graha-space-6);
	padding: var(--graha-space-6) var(--graha-space-6);
	border-radius: var(--graha-radius-xl);
	background: linear-gradient(155deg, var(--graha-color-primary-dark), var(--graha-color-primary) 78%);
	color: var(--graha-color-inverse);
}

.graha-page-header__eyebrow {
	margin-block-end: var(--graha-space-2);
	font-size: var(--graha-type-sm);
	font-weight: var(--graha-weight-semibold);
	letter-spacing: var(--graha-tracking-wide);
	text-transform: uppercase;
	color: var(--graha-color-inverse-muted);
}

.graha-page-header h1 {
	max-inline-size: var(--graha-content-narrow);
	overflow-wrap: anywhere;
	color: var(--graha-color-inverse);
}

.graha-page-header__lead {
	max-inline-size: 42ch;
	margin-block-start: var(--graha-space-3);
	font-size: var(--graha-type-lg);
	color: var(--graha-color-inverse-muted);
}

.graha-page-section {
	padding-block: var(--graha-space-7);
}

.graha-page-section + .graha-page-section {
	border-block-start: var(--graha-border-width) solid var(--graha-color-border);
}

.graha-page-section__heading {
	max-inline-size: var(--graha-content-narrow);
	margin-block-end: var(--graha-space-5);
}

.graha-page__content {
	max-inline-size: var(--graha-content-narrow);
}

.graha-page--product_archive .graha-page__content,
.graha-page--product_category .graha-page__content,
.graha-page--brand .graha-page__content,
.graha-page--product_single .graha-page__content {
	max-inline-size: none;
}

.graha-native-content {
	max-inline-size: var(--graha-content-narrow);
	margin-inline: auto;
}

/* Product catalog surfaces. */
.graha-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--graha-space-5);
}
.graha-product-card {
	min-inline-size: 0;
	overflow: hidden;
	border: var(--graha-border-width) solid var(--graha-color-border);
	border-radius: var(--graha-radius-lg);
	background: var(--graha-color-surface);
	box-shadow: var(--graha-shadow-soft);
}
.graha-product-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--graha-color-surface-subtle);
}
.graha-product-card__media img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}
.graha-product-card__body { padding: var(--graha-space-5); }
.graha-product-card__terms,
.graha-product-single__terms {
	margin: 0;
	overflow-wrap: anywhere;
	font-size: var(--graha-type-xs);
	font-weight: var(--graha-weight-bold);
	letter-spacing: var(--graha-tracking-wide);
	text-transform: uppercase;
	color: var(--graha-color-muted);
}
.graha-product-card__title {
	margin: 0;
	overflow-wrap: anywhere;
	font-size: var(--graha-type-xl);
}
.graha-product-card__title a {
	color: var(--graha-color-text);
	text-decoration: none;
}
.graha-product-card__title a:hover { color: var(--graha-color-primary); }
.graha-product-card__excerpt { color: var(--graha-color-muted); }
.graha-product-card__link {
	font-weight: var(--graha-weight-semibold);
	text-underline-offset: var(--graha-link-underline-offset);
}
.graha-catalog-empty { max-inline-size: 42rem; }
.graha-catalog-cta {
	margin-block-start: var(--graha-space-7);
	padding-block-start: var(--graha-space-6);
	border-block-start: var(--graha-border-width) solid var(--graha-color-border);
}
.graha-product-single {
	display: grid;
	gap: var(--graha-space-6);
}
.graha-product-single__media {
	max-inline-size: 56rem;
	overflow: hidden;
	border: var(--graha-border-width) solid var(--graha-color-border);
	border-radius: var(--graha-radius-lg);
	background: var(--graha-color-surface-subtle);
}
.graha-product-single__media img {
	display: block;
	max-inline-size: 100%;
	block-size: auto;
}
.graha-product-single__content { margin-inline: 0; }
.graha-page--product_archive .navigation.pagination,
.graha-page--product_category .navigation.pagination,
.graha-page--brand .navigation.pagination {
	margin-block-start: var(--graha-space-6);
}

/* Contact/RFQ: the editor's authoritative content presented as a contained, deliberate card. */
.graha-contact-card,
.graha-rfq-form-region {
	padding: var(--graha-space-5) var(--graha-space-6);
	border: var(--graha-border-width) solid var(--graha-color-border);
	border-radius: var(--graha-radius-lg);
	background: var(--graha-color-surface-subtle);
}

.graha-contact-alternative {
	margin-block-start: var(--graha-space-6);
	padding-block-start: var(--graha-space-6);
	border-block-start: var(--graha-border-width) solid var(--graha-color-border);
}

.graha-rfq-alternative {
	margin-block-start: var(--graha-space-5);
	color: var(--graha-color-muted);
}

.graha-about-nextsteps,
.graha-service-nextsteps {
	margin-block-start: var(--graha-space-7);
	padding-block-start: var(--graha-space-6);
	border-block-start: var(--graha-border-width) solid var(--graha-color-border);
}

.graha-site-footer {
	border-block-start: var(--graha-border-width) solid rgb(255 255 255 / 0.12);
	background: var(--graha-color-primary-dark);
	color: var(--graha-color-inverse-muted);
}

.graha-footer__cta {
	border-block-end: var(--graha-border-width) solid rgb(255 255 255 / 0.12);
}

.graha-footer__cta-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--graha-space-4);
	padding-block: var(--graha-space-6);
}

.graha-footer__cta-inner h2 {
	max-inline-size: 34ch;
	margin-block-start: var(--graha-space-2);
	font-size: var(--graha-type-2xl);
	color: var(--graha-color-inverse);
}

.graha-footer__grid {
	display: grid;
	gap: var(--graha-space-6);
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding-block: var(--graha-space-7);
}

.graha-footer__brand {
	grid-column: 1 / -1;
	max-inline-size: 32rem;
}

.graha-footer__brand-name {
	margin: 0 0 var(--graha-space-2);
	font-size: var(--graha-type-xl);
	font-weight: var(--graha-weight-bold);
	color: var(--graha-color-inverse);
}

.graha-footer__tagline {
	margin: 0;
	color: var(--graha-color-inverse-muted);
}

.graha-footer__col h3 {
	margin: 0 0 var(--graha-space-3);
	font-size: var(--graha-type-sm);
	font-weight: var(--graha-weight-bold);
	letter-spacing: var(--graha-tracking-wide);
	text-transform: uppercase;
	color: var(--graha-color-inverse);
}

.graha-footer__col ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: var(--graha-space-2);
}

.graha-footer__col a {
	overflow-wrap: anywhere;
	color: var(--graha-color-inverse-muted);
	text-decoration: none;
}

.graha-footer__col a:hover {
	color: var(--graha-color-inverse);
	text-decoration: underline;
	text-underline-offset: var(--graha-link-underline-offset);
}

.graha-site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--graha-space-3);
	padding-block: var(--graha-space-5);
	border-block-start: var(--graha-border-width) solid rgb(255 255 255 / 0.12);
	font-size: var(--graha-type-sm);
}

.graha-site-footer__bottom p,
.graha-site-footer__identity {
	margin: 0;
	font-size: var(--graha-type-sm);
}

@media (max-width: 68rem) {
	.graha-site-header__nav-cta {
		align-items: flex-start;
	}
}

@media (max-width: 48rem) {
	.graha-site-header__nav-cta {
		flex-direction: column;
		align-items: stretch;
		gap: var(--graha-space-3);
	}
	.graha-site-header__cta .graha-button { inline-size: 100%; }
	.graha-page-header {
		padding: var(--graha-space-5) var(--graha-space-4);
	}
	.graha-footer__grid {
		grid-template-columns: 1fr;
	}
	.graha-product-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 30rem) {
	.graha-footer__cta-inner .graha-button {
		inline-size: 100%;
	}
}

@media (min-width: 48rem) {
	.graha-footer__grid--1 {
		grid-template-columns: minmax(0, 32rem);
	}
	.graha-footer__grid--2 {
		grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	}
	.graha-footer__grid--3 {
		grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
	}
	.graha-footer__brand {
		grid-column: auto;
	}
}

@media (min-width: 48rem) and (max-width: 68rem) {
	.graha-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 68.0625rem) {
	.graha-site-header__inner {
		grid-template-columns: minmax(var(--graha-header-identity-min), auto) minmax(0, 1fr);
	}
	.graha-site-header__nav-cta {
		justify-content: flex-end;
	}
	.graha-site-header .graha-nav {
		justify-self: end;
	}
}
