/*
 * Held Stone Phase 2 R2-1
 * Layout / Design System foundation
 *
 * Scope:
 * - shared tokens
 * - container rhythm
 * - typography foundation
 * - low-risk button/card/hover normalization
 *
 * Out of scope:
 * - header/mobile drawer/footer structure
 * - product card ratio rebuild
 * - PDP structural rewrite
 * - home visual redesign
 */

:root {
	--hsj-r2-bg: #FBF8F3;
	--hsj-r2-surface: #F5EEE4;
	--hsj-r2-card: #FFFFFF;
	--hsj-r2-text: #2F241C;
	--hsj-r2-muted: #6F6258;
	--hsj-r2-border: #E5D8C8;
	--hsj-r2-brown: #3A2A22;
	--hsj-r2-brown-hover: #241914;
	--hsj-r2-pill: #EFE3D3;
	--hsj-r2-pill-text: #5B4537;
	--hsj-r2-container: 1280px;
	--hsj-r2-container-wide: 1400px;
	--hsj-r2-container-reading: 920px;
	--hsj-r2-page-pad-desktop: 40px;
	--hsj-r2-page-pad-tablet: 28px;
	--hsj-r2-page-pad-mobile: 16px;
	--hsj-r2-radius-card: 22px;
	--hsj-r2-radius-soft: 18px;
	--hsj-r2-shadow-soft: 0 14px 34px rgba(47, 36, 28, 0.06);
	--hsj-r2-shadow-hover: 0 18px 40px rgba(47, 36, 28, 0.10);
	--hsj-r2-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--hsj-r2-transition: 0.22s var(--hsj-r2-ease);
}

.hsj-r2-container,
.hsj-r2-container-wide,
.hsj-r2-container-reading {
	margin-inline: auto;
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container));
}

.hsj-r2-container-wide {
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container-wide));
}

.hsj-r2-container-reading {
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container-reading));
}

.hsj-home-v2,
.hsj-collection-v1,
.hsj-pdp-v2,
.hsj-our-story-v2,
.hsj-faq-v2,
.hsj-shipping-policy-v2,
.hsj-returns-policy-v2,
.hsj-find-crystal-v2,
.hsj-intention-v2,
.hsj-blog-v2 {
	background: var(--hsj-r2-bg);
	color: var(--hsj-r2-text);
}

.hsj-home-v2 section,
.hsj-collection-v1 section,
.hsj-pdp-v2 section,
.hsj-our-story-v2 section,
.hsj-faq-v2 section,
.hsj-shipping-policy-v2 section,
.hsj-returns-policy-v2 section,
.hsj-find-crystal-v2 section,
.hsj-intention-v2 section,
.hsj-blog-v2 section {
	position: relative;
}

.hsj-home-v2 .hsj-wrap,
.hsj-our-story-v2 .hsj-wrap,
.hsj-find-crystal-v2 .hsj-wrap,
.hsj-intention-v2 .hsj-wrap,
.hsj-blog-v2 .hsj-wrap {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: none;
	padding-inline: var(--hsj-r2-page-pad-desktop);
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container));
}

.hsj-collection-v1 .hsj-wrap,
.hsj-pdp-v2 .hsj-wrap {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: none;
	padding-inline: var(--hsj-r2-page-pad-desktop);
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container-wide));
}

.hsj-faq-v2 .hsj-wrap,
.hsj-shipping-policy-v2 .hsj-wrap,
.hsj-returns-policy-v2 .hsj-wrap {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: none;
	padding-inline: var(--hsj-r2-page-pad-desktop);
	width: min(calc(100% - (var(--hsj-r2-page-pad-desktop) * 2)), var(--hsj-r2-container-reading));
}

.hsj-home-v2 h1,
.hsj-collection-v1 h1,
.hsj-pdp-v2 h1,
.hsj-our-story-v2 h1,
.hsj-faq-v2 h1,
.hsj-shipping-policy-v2 h1,
.hsj-returns-policy-v2 h1,
.hsj-find-crystal-v2 h1,
.hsj-intention-v2 h1,
.hsj-blog-v2 h1 {
	color: var(--hsj-r2-text);
	font-size: clamp(3rem, 4vw, 3.75rem);
	letter-spacing: -0.03em;
	line-height: 1.08;
	text-wrap: balance;
}

.hsj-home-v2 h2,
.hsj-collection-v1 h2,
.hsj-pdp-v2 h2,
.hsj-our-story-v2 h2,
.hsj-faq-v2 h2,
.hsj-shipping-policy-v2 h2,
.hsj-returns-policy-v2 h2,
.hsj-find-crystal-v2 h2,
.hsj-intention-v2 h2,
.hsj-blog-v2 h2 {
	color: var(--hsj-r2-text);
	font-size: clamp(1.9rem, 2.5vw, 2.4rem);
	letter-spacing: -0.025em;
	line-height: 1.14;
	text-wrap: balance;
}

.hsj-home-v2 h3,
.hsj-collection-v1 h3,
.hsj-pdp-v2 h3,
.hsj-our-story-v2 h3,
.hsj-faq-v2 h3,
.hsj-shipping-policy-v2 h3,
.hsj-returns-policy-v2 h3,
.hsj-find-crystal-v2 h3,
.hsj-intention-v2 h3,
.hsj-blog-v2 h3 {
	color: var(--hsj-r2-text);
	line-height: 1.24;
	letter-spacing: -0.02em;
}

.hsj-home-v2 p,
.hsj-collection-v1 p,
.hsj-pdp-v2 p,
.hsj-our-story-v2 p,
.hsj-faq-v2 p,
.hsj-shipping-policy-v2 p,
.hsj-returns-policy-v2 p,
.hsj-find-crystal-v2 p,
.hsj-intention-v2 p,
.hsj-blog-v2 p,
.hsj-home-v2 li,
.hsj-collection-v1 li,
.hsj-pdp-v2 li,
.hsj-our-story-v2 li,
.hsj-faq-v2 li,
.hsj-shipping-policy-v2 li,
.hsj-returns-policy-v2 li,
.hsj-find-crystal-v2 li,
.hsj-intention-v2 li,
.hsj-blog-v2 li {
	color: var(--hsj-r2-muted);
	font-size: clamp(0.95rem, 1.1vw, 1.04rem);
	line-height: 1.72;
}

.hsj-home-v2 .hsj-label,
.hsj-collection-v1 .hsj-label,
.hsj-pdp-v2 .hsj-label,
.hsj-our-story-v2 .hsj-label,
.hsj-faq-v2 .hsj-label,
.hsj-shipping-policy-v2 .hsj-label,
.hsj-returns-policy-v2 .hsj-label,
.hsj-find-crystal-v2 .hsj-label,
.hsj-intention-v2 .hsj-label,
.hsj-blog-v2 .hsj-label,
.hsj-home-v2 .hsj-post-topic,
.hsj-collection-v1 .hsj-post-topic,
.hsj-pdp-v2 .hsj-post-topic,
.hsj-our-story-v2 .hsj-post-topic,
.hsj-faq-v2 .hsj-post-topic,
.hsj-shipping-policy-v2 .hsj-post-topic,
.hsj-returns-policy-v2 .hsj-post-topic,
.hsj-find-crystal-v2 .hsj-post-topic,
.hsj-intention-v2 .hsj-post-topic,
.hsj-blog-v2 .hsj-post-topic {
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.hsj-home-v2 .hsj-btn,
.hsj-collection-v1 .hsj-btn,
.hsj-pdp-v2 .hsj-btn,
.hsj-our-story-v2 .hsj-btn,
.hsj-faq-v2 .hsj-btn,
.hsj-shipping-policy-v2 .hsj-btn,
.hsj-returns-policy-v2 .hsj-btn,
.hsj-find-crystal-v2 .hsj-btn,
.hsj-intention-v2 .hsj-btn,
.hsj-blog-v2 .hsj-btn {
	align-items: center;
	border-radius: 999px;
	display: inline-flex;
	font-weight: 600;
	gap: 0.4rem;
	justify-content: center;
	min-height: 46px;
	padding: 0.8rem 1.35rem;
	transition: background-color var(--hsj-r2-transition), border-color var(--hsj-r2-transition), color var(--hsj-r2-transition), transform var(--hsj-r2-transition), box-shadow var(--hsj-r2-transition);
}

.hsj-home-v2 .hsj-btn:hover,
.hsj-collection-v1 .hsj-btn:hover,
.hsj-pdp-v2 .hsj-btn:hover,
.hsj-our-story-v2 .hsj-btn:hover,
.hsj-faq-v2 .hsj-btn:hover,
.hsj-shipping-policy-v2 .hsj-btn:hover,
.hsj-returns-policy-v2 .hsj-btn:hover,
.hsj-find-crystal-v2 .hsj-btn:hover,
.hsj-intention-v2 .hsj-btn:hover,
.hsj-blog-v2 .hsj-btn:hover {
	transform: translateY(-1px);
}

.hsj-home-v2 .hsj-btn:not(.alt),
.hsj-collection-v1 .hsj-btn:not(.alt),
.hsj-pdp-v2 .hsj-btn:not(.alt),
.hsj-our-story-v2 .hsj-btn:not(.alt),
.hsj-faq-v2 .hsj-btn:not(.alt),
.hsj-shipping-policy-v2 .hsj-btn:not(.alt),
.hsj-returns-policy-v2 .hsj-btn:not(.alt),
.hsj-find-crystal-v2 .hsj-btn:not(.alt),
.hsj-intention-v2 .hsj-btn:not(.alt),
.hsj-blog-v2 .hsj-btn:not(.alt) {
	background: var(--hsj-r2-brown);
	border: 1px solid var(--hsj-r2-brown);
	color: #fff;
}

.hsj-home-v2 .hsj-btn:not(.alt):hover,
.hsj-collection-v1 .hsj-btn:not(.alt):hover,
.hsj-pdp-v2 .hsj-btn:not(.alt):hover,
.hsj-our-story-v2 .hsj-btn:not(.alt):hover,
.hsj-faq-v2 .hsj-btn:not(.alt):hover,
.hsj-shipping-policy-v2 .hsj-btn:not(.alt):hover,
.hsj-returns-policy-v2 .hsj-btn:not(.alt):hover,
.hsj-find-crystal-v2 .hsj-btn:not(.alt):hover,
.hsj-intention-v2 .hsj-btn:not(.alt):hover,
.hsj-blog-v2 .hsj-btn:not(.alt):hover {
	background: var(--hsj-r2-brown-hover);
	border-color: var(--hsj-r2-brown-hover);
	box-shadow: var(--hsj-r2-shadow-soft);
}

.hsj-r2-card,
.hsj-r2-soft-card,
.hsj-r2-info-card,
.hsj-home-v2 .hsj-side,
.hsj-blog-v2 .hsj-post-card,
.hsj-blog-v2 .hsj-guide-card,
.hsj-our-story-v2 .hsj-card,
.hsj-find-crystal-v2 .hsj-card,
.hsj-intention-v2 .hsj-card,
.hsj-faq-v2 details,
.hsj-shipping-policy-v2 .hsj-card,
.hsj-returns-policy-v2 .hsj-card {
	background: var(--hsj-r2-card);
	border: 1px solid var(--hsj-r2-border);
	border-radius: var(--hsj-r2-radius-card);
	box-shadow: var(--hsj-r2-shadow-soft);
	transition: transform var(--hsj-r2-transition), box-shadow var(--hsj-r2-transition), border-color var(--hsj-r2-transition);
}

.hsj-r2-card:hover,
.hsj-r2-soft-card:hover,
.hsj-r2-info-card:hover,
.hsj-blog-v2 .hsj-post-card:hover,
.hsj-blog-v2 .hsj-guide-card:hover,
.hsj-find-crystal-v2 .hsj-card:hover,
.hsj-intention-v2 .hsj-card:hover,
.hsj-shipping-policy-v2 .hsj-card:hover,
.hsj-returns-policy-v2 .hsj-card:hover {
	border-color: #dccab4;
	box-shadow: var(--hsj-r2-shadow-hover);
	transform: translateY(-2px);
}

.hsj-home-v2 .hsj-pills span,
.hsj-blog-v2 .hsj-pills span,
.hsj-find-crystal-v2 .hsj-pills span,
.hsj-intention-v2 .hsj-pills span {
	background: var(--hsj-r2-pill);
	color: var(--hsj-r2-pill-text);
}

.hsj-blog-v2 .hsj-dark,
.hsj-pdp-v2 .hsj-pdp-question-cta,
.hsj-find-crystal-v2 .hsj-dark,
.hsj-intention-v2 .hsj-dark {
	background: var(--hsj-r2-brown);
}

.hsj-blog-v2 .hsj-dark h2,
.hsj-blog-v2 .hsj-dark p,
.hsj-find-crystal-v2 .hsj-dark h2,
.hsj-find-crystal-v2 .hsj-dark p,
.hsj-intention-v2 .hsj-dark h2,
.hsj-intention-v2 .hsj-dark p {
	color: #fff;
}

@media (max-width: 1024px) {
	.hsj-r2-container,
	.hsj-r2-container-wide,
	.hsj-r2-container-reading {
		width: min(calc(100% - (var(--hsj-r2-page-pad-tablet) * 2)), var(--hsj-r2-container));
	}

	.hsj-r2-container-wide {
		width: min(calc(100% - (var(--hsj-r2-page-pad-tablet) * 2)), var(--hsj-r2-container-wide));
	}

	.hsj-r2-container-reading {
		width: min(calc(100% - (var(--hsj-r2-page-pad-tablet) * 2)), var(--hsj-r2-container-reading));
	}

	.hsj-home-v2 .hsj-wrap,
	.hsj-collection-v1 .hsj-wrap,
	.hsj-pdp-v2 .hsj-wrap,
	.hsj-our-story-v2 .hsj-wrap,
	.hsj-faq-v2 .hsj-wrap,
	.hsj-shipping-policy-v2 .hsj-wrap,
	.hsj-returns-policy-v2 .hsj-wrap,
	.hsj-find-crystal-v2 .hsj-wrap,
	.hsj-intention-v2 .hsj-wrap,
	.hsj-blog-v2 .hsj-wrap {
		padding-inline: var(--hsj-r2-page-pad-tablet);
	}
}

@media (max-width: 767px) {
	.hsj-r2-container,
	.hsj-r2-container-wide,
	.hsj-r2-container-reading {
		width: min(calc(100% - (var(--hsj-r2-page-pad-mobile) * 2)), var(--hsj-r2-container));
	}

	.hsj-r2-container-wide {
		width: min(calc(100% - (var(--hsj-r2-page-pad-mobile) * 2)), var(--hsj-r2-container-wide));
	}

	.hsj-r2-container-reading {
		width: min(calc(100% - (var(--hsj-r2-page-pad-mobile) * 2)), var(--hsj-r2-container-reading));
	}

	.hsj-home-v2 .hsj-wrap,
	.hsj-collection-v1 .hsj-wrap,
	.hsj-pdp-v2 .hsj-wrap,
	.hsj-our-story-v2 .hsj-wrap,
	.hsj-faq-v2 .hsj-wrap,
	.hsj-shipping-policy-v2 .hsj-wrap,
	.hsj-returns-policy-v2 .hsj-wrap,
	.hsj-find-crystal-v2 .hsj-wrap,
	.hsj-intention-v2 .hsj-wrap,
	.hsj-blog-v2 .hsj-wrap {
		padding-inline: var(--hsj-r2-page-pad-mobile);
	}

	.hsj-home-v2 h1,
	.hsj-collection-v1 h1,
	.hsj-pdp-v2 h1,
	.hsj-our-story-v2 h1,
	.hsj-faq-v2 h1,
	.hsj-shipping-policy-v2 h1,
	.hsj-returns-policy-v2 h1,
	.hsj-find-crystal-v2 h1,
	.hsj-intention-v2 h1,
	.hsj-blog-v2 h1 {
		line-height: 1.12;
	}

	.hsj-home-v2 .hsj-btn,
	.hsj-collection-v1 .hsj-btn,
	.hsj-pdp-v2 .hsj-btn,
	.hsj-our-story-v2 .hsj-btn,
	.hsj-faq-v2 .hsj-btn,
	.hsj-shipping-policy-v2 .hsj-btn,
	.hsj-returns-policy-v2 .hsj-btn,
	.hsj-find-crystal-v2 .hsj-btn,
	.hsj-intention-v2 .hsj-btn,
	.hsj-blog-v2 .hsj-btn {
		min-height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hsj-r2-card,
	.hsj-r2-soft-card,
	.hsj-r2-info-card,
	.hsj-home-v2 .hsj-btn,
	.hsj-collection-v1 .hsj-btn,
	.hsj-pdp-v2 .hsj-btn,
	.hsj-our-story-v2 .hsj-btn,
	.hsj-faq-v2 .hsj-btn,
	.hsj-shipping-policy-v2 .hsj-btn,
	.hsj-returns-policy-v2 .hsj-btn,
	.hsj-find-crystal-v2 .hsj-btn,
	.hsj-intention-v2 .hsj-btn,
	.hsj-blog-v2 .hsj-btn {
		transition: none;
	}
}
