/* KMR Luxe Co. public typography system — typography only. */
:root {
	--kmr-type-serif: "Cormorant Garamond", Georgia, serif;
	--kmr-type-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
	--kmr-type-h1: clamp(3rem, 6vw, 6rem);
	--kmr-type-h2: clamp(2.25rem, 4vw, 4rem);
	--kmr-type-h3: clamp(1.375rem, 2vw, 1.75rem);
	--kmr-type-h4: 1.125rem;
	--kmr-type-body: 1rem;
	--kmr-type-caption: .75rem;
}

body,
button,
input,
select,
textarea {
	font-family: var(--kmr-type-sans) !important;
}

body {
	font-size: var(--kmr-type-body);
	font-weight: 400;
	line-height: 1.7;
}

/* Editorial display type is reserved for prominent storytelling headings. */
main h1,
main h2,
.experience-title,
.section-title,
.section-intro h2,
.home-concierge-hero-copy h1,
.jf-hero-copy h1,
.gummies-page .hero-text h1,
.home-dashboard .home-collection-copy h3,
.collection-title,
.editorial-title,
.promo-title {
	font-family: var(--kmr-type-serif) !important;
	font-weight: 500 !important;
}

main h1,
.experience-title,
.home-concierge-hero-copy h1,
.jf-hero-copy h1,
.gummies-page .hero-text h1 {
	font-size: var(--kmr-type-h1);
	line-height: .98;
	letter-spacing: .025em;
}

main h2,
.section-title,
.section-intro h2,
.collection-title,
.editorial-title,
.promo-title {
	font-size: var(--kmr-type-h2);
	line-height: 1.05;
	letter-spacing: .035em;
}

main h3,
main h4 {
	font-family: var(--kmr-type-sans);
}

main h3 { font-size: var(--kmr-type-h3); line-height: 1.25; }
main h4 { font-size: var(--kmr-type-h4); line-height: 1.35; }

/* Interface and supporting copy use one modern sans serif. */
nav,
nav a,
.utility-bar,
.top-strip,
.home-utility-track,
.home-header-link,
.home-nav-dropdown-menu,
.product-card,
.lippie-product-card,
.jf-product-card,
.price-card,
.feature-card,
.partner-card,
.process-step,
.benefit-item,
.faq-item,
.schedule-table,
.tabs,
[role="tab"],
label,
small,
figcaption,
.caption,
.meta,
.price,
.jf-price,
.product-price,
.site-footer,
.kmr-site-footer,
.premium-footer,
.lux-footer {
	font-family: var(--kmr-type-sans) !important;
}

.product-card h3,
.product-card h4,
.lippie-product-card h3,
.jf-product-card h3,
.price-card h3,
.product-name,
.product-title {
	font-family: var(--kmr-type-sans) !important;
	font-weight: 600 !important;
	line-height: 1.3;
	letter-spacing: .01em;
}

.price,
.jf-price,
.product-price,
.bundle-price,
.tier-price {
	font-family: var(--kmr-type-sans) !important;
	font-weight: 600 !important;
}

main p,
.hero-description,
.section-intro,
.product-card p,
.lippie-product-card p,
.jf-product-card p,
.price-card p {
	font-family: var(--kmr-type-sans) !important;
	line-height: 1.7;
}

.hero-description,
.section-intro { font-size: 1rem; }

.product-card p,
.lippie-product-card p,
.jf-product-card p,
.price-card p,
.feature-card p,
.partner-card p { font-size: .9375rem; }

small,
figcaption,
.caption,
.meta,
.eyebrow,
.section-kicker,
.hero-kicker,
.micro-label {
	font-size: var(--kmr-type-caption);
	line-height: 1.5;
}

/* Shared navigation benchmark. Existing flex/grid spacing remains untouched. */
.home-main-nav > a,
.home-main-nav > .home-nav-dropdown > a,
.navbar .nav-links > a {
	font-family: var(--kmr-type-sans) !important;
	font-size: .875rem !important;
	font-weight: 500 !important;
	letter-spacing: .1em !important;
	line-height: 1 !important;
	text-transform: none !important;
	white-space: nowrap !important;
}

.home-main-nav .home-nav-dropdown-menu a,
.home-main-nav .mobile-nav-extra {
	font-family: var(--kmr-type-sans) !important;
	font-weight: 500 !important;
	letter-spacing: .08em !important;
	text-transform: none !important;
	white-space: nowrap !important;
}

.home-utility-track,
.home-top-strip .home-utility-track,
.home-top-strip .home-utility-track span,
.home-top-strip .home-utility-track a {
	font-family: var(--kmr-type-sans) !important;
	font-size: .75rem !important;
	font-weight: 500 !important;
	letter-spacing: .2em !important;
	line-height: 1 !important;
	text-transform: uppercase !important;
}

/* Button geometry and colors remain controlled by existing component CSS. */
.button,
.pill-button,
.lux-button,
.kmr-btn,
.section-button,
.jf-btn,
.jf-mem-btn,
.jf-add-btn,
.bundle-order-btn,
.japan-promo-btn,
.hero-slide-btn,
.navbar .btn,
button[type="submit"] {
	font-family: var(--kmr-type-sans) !important;
	font-weight: 500 !important;
	letter-spacing: .08em !important;
	text-transform: none !important;
}

input,
select,
textarea {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
}

.site-footer,
.kmr-site-footer,
.premium-footer,
.lux-footer,
.site-footer h2,
.site-footer h3,
.kmr-site-footer h2,
.kmr-site-footer h3 {
	font-family: var(--kmr-type-sans) !important;
}

@media (max-width: 768px) {
	:root {
		--kmr-type-h1: clamp(2.75rem, 11vw, 4.25rem);
		--kmr-type-h2: clamp(2rem, 8vw, 3rem);
		--kmr-type-h3: clamp(1.25rem, 5vw, 1.5rem);
		--kmr-type-body: .9375rem;
	}

	body { line-height: 1.65; }

	.hero-description,
	.section-intro,
	input,
	select,
	textarea { font-size: .9375rem; }

	.hero-tagline {
		max-width: 100%;
		font-size: clamp(1rem, 4.4vw, 1.1875rem);
		line-height: 1.45;
		letter-spacing: .12em;
		overflow-wrap: break-word;
	}

	.hero-description,
	.section-intro,
	main p {
		max-width: 100%;
		overflow-wrap: break-word;
	}

	.home-main-nav > a,
	.home-main-nav > .home-nav-dropdown > a,
	.home-main-nav .mobile-nav-extra,
	.navbar .nav-links > a {
		font-size: .875rem !important;
		letter-spacing: .1em !important;
	}
}

@media (max-width: 360px) {
	:root {
		--kmr-type-h1: clamp(2.5rem, 12vw, 3rem);
		--kmr-type-h2: clamp(1.875rem, 9vw, 2.25rem);
	}

	.home-utility-track,
	.home-top-strip .home-utility-track span,
	.home-top-strip .home-utility-track a { font-size: .75rem !important; }
}
