/**
 * RUIXIANG TEAWARE — visual refinement 1.6.0
 * Palace cinnabar + warm charcoal, with restrained warm-paper neutrals.
 */

:root {
	--ink: #24201e;
	--ink-soft: #625954;
	--paper: #f4efe7;
	--paper-deep: #e9dfd2;
	--white: #fbf8f2;
	--cinnabar: #9d2933;
	--cinnabar-dark: #6f1d24;
	--silver: #aaa7a2;
	--bronze: #aa8359;
	--line: rgba(36, 32, 30, 0.16);
	--shadow: 0 24px 70px rgba(44, 28, 25, 0.13);
	--max: 1200px;
}

body {
	background: var(--paper);
}

/*
 * Global catalogue cleanup.
 *
 * The theme can fall back to WordPress' stock sidebar beneath products and
 * pages. It contains Search, Pages, Archives and Categories, which are not
 * part of the RUIXIANG customer journey. Hide both the complete fallback
 * sidebar and the individual legacy/block-widget forms. The branded footer is
 * intentionally outside these selectors and remains visible.
 */
body #sidebar,
body #secondary,
body aside#secondary,
body .site-content > aside.widget-area,
body .content-area + aside.widget-area,
body main + aside.widget-area,
body .woocommerce + aside.widget-area,
body :where(.widget_search, .widget_pages, .widget_archive, .widget_categories),
body :where(.wp-block-search, .wp-block-page-list, .wp-block-archives, .wp-block-categories) {
	display: none !important;
}

body .site-content:has(> #secondary),
body .site-content:has(> aside.widget-area) {
	display: block;
}

body .site-content:has(> #secondary) > #primary,
body .site-content:has(> aside.widget-area) > #primary,
body .content-area:has(+ aside.widget-area) {
	width: 100%;
	max-width: none;
}

/*
 * Content typography system. Header navigation/branding and the formal footer
 * are deliberately excluded so their established identity remains unchanged.
 */
main,
.hero,
.section,
.newsletter,
.subpage-hero,
.shop-hero,
.subpage-cta,
.ordering-flow,
.quote-section,
.values-section {
	font-family: Inter, "Noto Sans SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 1rem;
	line-height: 1.68;
}

main :where(p, li, dd, dt, blockquote),
.hero :where(p, li),
.section :where(p, li),
.newsletter :where(p, li),
.subpage-hero :where(p, li),
.shop-hero :where(p, li),
.subpage-cta :where(p, li),
.ordering-flow :where(p, li),
.quote-section :where(p, li),
.values-section :where(p, li) {
	overflow-wrap: anywhere;
}

main :where(h1, h2, h3, h4),
.hero :where(h1, h2, h3, h4),
.section :where(h1, h2, h3, h4),
.newsletter :where(h1, h2, h3, h4),
.subpage-hero :where(h1, h2, h3, h4),
.shop-hero :where(h1, h2, h3, h4),
.subpage-cta :where(h1, h2, h3, h4),
.ordering-flow :where(h1, h2, h3, h4),
.quote-section :where(h1, h2, h3, h4),
.values-section :where(h1, h2, h3, h4) {
	font-family: "Cormorant Garamond", "Noto Serif SC", Georgia, serif;
	font-weight: 500;
	letter-spacing: -0.018em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

main .entry-content {
	font-size: clamp(0.94rem, 0.25vw + 0.9rem, 1rem);
	line-height: 1.72;
}

main .entry-content h2,
main .woocommerce-Tabs-panel h2 {
	margin: 1.7em 0 0.65em;
	font-size: clamp(1.85rem, 2.25vw, 2.65rem);
	line-height: 1.08;
}

main .entry-content h3 {
	margin: 1.55em 0 0.55em;
	font-size: clamp(1.35rem, 1.55vw, 1.8rem);
	line-height: 1.16;
}

main .entry-content > :first-child,
main .woocommerce-Tabs-panel > :first-child {
	margin-top: 0;
}

.container {
	width: min(calc(100% - clamp(40px, 6vw, 80px)), var(--max));
}

/* Header: a stable three-column axis and a stronger red/charcoal identity. */
.announcement {
	padding-block: 8px;
	background: var(--cinnabar-dark);
	color: #f8ede5;
}

.site-header {
	border-bottom-color: rgba(255, 255, 255, 0.1);
	background: rgba(36, 32, 30, 0.97);
	color: #f7f0e7;
}

.header-inner {
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	min-height: 84px;
	gap: clamp(18px, 2vw, 30px);
}

.primary-menu,
.header-actions {
	gap: clamp(15px, 1.6vw, 24px);
}

.primary-menu a,
.header-actions a {
	white-space: nowrap;
}

.primary-menu .current-menu-item > a,
.primary-menu .current_page_item > a {
	color: #e8b7ad;
}

.site-brand__name {
	font-size: 1.16rem;
	letter-spacing: 0.16em;
}

.site-brand__cn,
.header-whatsapp {
	color: #e8b7ad;
}

.header-whatsapp {
	border-bottom-color: #c95a55;
}

.menu-toggle {
	color: #f7f0e7;
}

/* Hero: keep the product dominant and stop the headline colliding with it. */
.hero,
.hero__content {
	min-height: 640px;
}

.hero__media::after {
	background:
		linear-gradient(90deg, rgba(29, 20, 19, 0.88) 0%, rgba(38, 24, 23, 0.58) 43%, rgba(79, 24, 27, 0.12) 78%),
		linear-gradient(0deg, rgba(36, 32, 30, 0.18), rgba(36, 32, 30, 0.18));
}

.hero__copy {
	max-width: 620px;
	padding-block: 72px;
}

.hero h1 {
	max-width: 610px;
	font-size: clamp(3.6rem, 6.2vw, 6.35rem);
	line-height: 0.88;
}

.hero .eyebrow {
	color: #e7b9a5;
}

.hero .button {
	border-color: var(--cinnabar);
	background: var(--cinnabar);
	color: #fff8f1;
}

.hero .button:hover {
	border-color: #fff8f1;
	background: #fff8f1;
	color: var(--ink);
}

/* Core colour system. */
.section--white,
.trust-strip,
.shop-hero {
	background: var(--white);
}

.craft,
.ordering-flow,
.site-footer {
	background: var(--ink);
}

.quote-section,
.values-section {
	background: var(--cinnabar);
}

.button,
button,
input[type="submit"],
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	border-color: var(--cinnabar);
	background: var(--cinnabar);
	color: #fff8f1;
}

.button:hover,
button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	border-color: var(--ink);
	background: var(--ink);
	color: #fff8f1;
}

/* Rhythm: less empty space and consistent section boundaries. */
.section {
	padding-block: clamp(76px, 8vw, 112px);
}

.products-head {
	align-items: flex-end;
	margin-bottom: 42px;
}

.page-hero {
	padding: 92px 0 66px;
}

.subpage-hero {
	padding: clamp(82px, 9vw, 126px) 0 clamp(68px, 7vw, 88px);
}

.subpage-hero__grid {
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
	gap: clamp(52px, 7vw, 100px);
}

.subpage-hero h1,
.shop-hero h1 {
	font-size: clamp(3.45rem, 6.4vw, 6.5rem);
	line-height: 0.9;
}

.subpage-hero__aside {
	padding-bottom: 6px;
}

.shop-hero {
	padding: 88px 0 66px;
}

/* Collection rows: balanced image/copy columns and a shorter reading path. */
.collection-row,
.collection-row:nth-child(2n) {
	grid-template-columns: minmax(0, 1.05fr) 48px minmax(0, 0.95fr);
	gap: clamp(30px, 4vw, 58px);
	padding-block: 62px;
}

.collection-row__copy h2 {
	font-size: clamp(2.35rem, 3.8vw, 4rem);
	line-height: 0.96;
}

.collection-row__copy > p:not(.eyebrow):not(.collection-row__cn) {
	max-width: 480px;
}

/* Product cards: bilingual titles no longer create uneven rows. */
.product-grid,
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 38px 22px;
}

/*
 * WooCommerce's legacy clearfix creates ::before/::after pseudo-elements on
 * product lists. Once the list becomes a CSS Grid, those pseudo-elements turn
 * into grid items and the ::before item consumes the first product slot.
 */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
	content: none !important;
}

.product-card,
.woocommerce ul.products li.product {
	display: flex !important;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	min-width: 0;
	flex-direction: column;
}

.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.product-card h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	display: -webkit-box;
	min-height: 2.5em;
	margin: 0 0 7px;
	overflow: hidden;
	font-size: clamp(1rem, 1.25vw, 1.18rem);
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 0 10px !important;
	line-height: 1.35;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .whatsapp-product-button {
	display: flex !important;
	width: 100%;
	min-height: 52px;
	align-items: center;
	justify-content: center;
	margin-top: auto !important;
	padding: 10px 16px !important;
	line-height: 1.25 !important;
	text-align: center;
	white-space: normal;
}

/* Product page: bilingual names remain readable without dominating the item. */
.woocommerce div.product .product_title {
	max-width: 18ch;
	margin-bottom: 0.55em;
	font-size: clamp(2.55rem, 3.75vw, 4rem);
	line-height: 0.98;
	letter-spacing: -0.025em;
}

.woocommerce div.product div.summary {
	min-width: 0;
}

.woocommerce div.product .summary > p,
.woocommerce div.product .summary .woocommerce-product-details__short-description {
	font-size: 0.98rem;
	line-height: 1.65;
}

.woocommerce div.product .woocommerce-tabs {
	padding-top: clamp(28px, 4vw, 54px);
}

.woocommerce div.product .woocommerce-Tabs-panel {
	max-width: 920px;
}

.woocommerce div.product .related.products > h2 {
	margin-bottom: 28px;
	font-size: clamp(1.75rem, 2.3vw, 2.35rem);
	line-height: 1.1;
}

.whatsapp-product-button {
	margin-top: auto !important;
}

/* Cards, stories and footer share the same left/right axes. */
.purpose-card {
	min-height: 320px;
	padding: 42px 38px;
	background: var(--white);
	border-top: 3px solid var(--cinnabar);
}

.purpose-card__icon {
	margin-bottom: 42px;
}

.story-row {
	grid-template-columns: 110px minmax(0, 1fr) 42px;
	gap: 32px;
}

.footer-grid {
	grid-template-columns: minmax(260px, 1.45fr) 0.78fr 0.78fr minmax(210px, 1.1fr);
	gap: clamp(34px, 5vw, 70px);
}

.footer-bottom {
	margin-top: 58px;
}

/* Compact branded contact control: no longer covers the footer contact list. */
.whatsapp-float {
	right: 24px;
	bottom: 24px;
	width: 62px;
	height: 62px;
	min-width: 62px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.48);
	border-radius: 50%;
	background: var(--cinnabar);
	box-shadow: 0 14px 34px rgba(53, 20, 21, 0.28);
	text-align: center;
}

.whatsapp-float span {
	font-size: 0;
}

.whatsapp-float span::after {
	content: "CHAT";
	font-size: 0.62rem;
	font-weight: 750;
	letter-spacing: 0.09em;
}

.whatsapp-float small {
	display: none;
}

@media (max-width: 1000px) {
	.header-inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.main-nav {
		border-bottom-color: rgba(255, 255, 255, 0.12);
		background: var(--ink);
		color: #f7f0e7;
	}

	.subpage-hero__grid,
	.shop-hero__grid {
		grid-template-columns: minmax(0, 1fr) minmax(250px, 0.65fr);
		gap: 52px;
	}

	.collection-row,
	.collection-row:nth-child(2n) {
		grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr);
		gap: 26px;
	}

	.product-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.footer-grid {
		grid-template-columns: 1.35fr 0.8fr 0.8fr;
	}
}

@media (max-width: 700px) {
	.container {
		width: min(calc(100% - 28px), var(--max));
	}

	.announcement {
		padding-inline: 14px;
		font-size: 0.6rem;
		line-height: 1.45;
	}

	.header-inner {
		min-height: 70px;
	}

	.site-brand__name {
		font-size: 0.93rem;
		letter-spacing: 0.1em;
	}

	.hero,
	.hero__content {
		min-height: 610px;
	}

	.hero__copy {
		padding-block: 62px;
	}

	.hero h1 {
		max-width: 94%;
		font-size: clamp(3.15rem, 16vw, 4.7rem);
		line-height: 0.9;
	}

	.hero p {
		max-width: 92%;
		font-size: 0.96rem;
	}

	.section {
		padding-block: 70px;
	}

	.subpage-hero,
	.shop-hero {
		padding: 68px 0 54px;
	}

	.subpage-hero__grid,
	.shop-hero__grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.subpage-hero h1,
	.shop-hero h1 {
		font-size: clamp(2.75rem, 13vw, 4.3rem);
		line-height: 0.92;
	}

	.collection-row,
	.collection-row:nth-child(2n) {
		grid-template-columns: 34px minmax(0, 1fr);
		gap: 18px;
		padding-block: 46px;
	}

	.collection-row__copy h2 {
		font-size: clamp(2.15rem, 10vw, 3.2rem);
	}

	.product-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 12px;
	}

	.product-card h3,
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: 3.75em;
		font-size: 0.98rem;
		-webkit-line-clamp: 3;
	}

	.woocommerce div.product .product_title {
		max-width: none;
		font-size: clamp(2.25rem, 10.5vw, 3.35rem);
		line-height: 1;
	}

	main .entry-content h2,
	main .woocommerce-Tabs-panel h2 {
		font-size: clamp(1.7rem, 8vw, 2.25rem);
	}

	.purpose-card {
		padding: 34px 28px;
	}

	.story-row {
		grid-template-columns: minmax(0, 1fr) 30px;
		gap: 18px;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 38px 22px;
	}

	.whatsapp-float {
		right: 14px;
		bottom: 14px;
		width: 54px;
		height: 54px;
		min-width: 54px;
	}

	.whatsapp-float span::after {
		font-size: 0.56rem;
	}
}

@media (max-width: 430px) {
	.product-grid,
	.woocommerce ul.products {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.product-card h3,
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: 0;
		-webkit-line-clamp: 3;
	}
}

/* Home collection category thumbnails (v1.5) */
.home .collection-grid .collection-card__placeholder {
	overflow: hidden;
}

.home .collection-grid .ruixiang-collection-thumbnail {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0;
	transform: scale(1.001);
	transition: opacity 0.28s ease, transform 0.7s ease;
}

.home .collection-grid .has-category-thumbnail .ruixiang-collection-thumbnail {
	opacity: 1;
}

.home .collection-grid .collection-card:hover .ruixiang-collection-thumbnail {
	transform: scale(1.035);
}

/* Craft & Stories media-library images (v1.6) */
.page-template-page-craft-stories .craft-manifesto__visual,
.page-template-page-craft-stories .reserved-placeholder--image {
	overflow: hidden;
}

.page-template-page-craft-stories .craft-manifesto__visual .ruixiang-craft-image,
.page-template-page-craft-stories .reserved-placeholder--image .ruixiang-craft-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.page-template-page-craft-stories .reserved-placeholder--image {
	padding: 0;
	border: 0;
	background: #d9cfc2;
}

/* Craft & Stories process cards (v1.7) */
.page-template-page-craft-stories .process-section .section-title {
	max-width: 820px;
}

.page-template-page-craft-stories .process-grid {
	margin-top: clamp(36px, 4.5vw, 56px);
}

.page-template-page-craft-stories .process-grid article {
	display: flex;
	min-height: 340px;
	flex-direction: column;
	padding: clamp(28px, 2.5vw, 38px) clamp(24px, 2.2vw, 32px);
}

.page-template-page-craft-stories .ruixiang-process-mark {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
}

.page-template-page-craft-stories .ruixiang-process-mark > span {
	color: var(--cinnabar);
	font: 500 1.25rem/1 var(--serif);
}

.page-template-page-craft-stories .ruixiang-process-mark > svg {
	box-sizing: border-box;
	width: 46px;
	height: 46px;
	padding: 10px;
	border: 1px solid rgba(157, 41, 51, 0.42);
	border-radius: 50%;
	color: var(--cinnabar);
	fill: none;
	stroke: currentColor;
	stroke-width: 1.35;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.page-template-page-craft-stories .process-grid h3 {
	margin: auto 0 12px;
	font-size: clamp(1.85rem, 2.5vw, 2.35rem);
	line-height: 1;
}

.page-template-page-craft-stories .process-grid p {
	margin-bottom: 0;
	font-size: 0.86rem;
	line-height: 1.65;
}

@media (max-width: 1000px) {
	.page-template-page-craft-stories .process-grid article {
		min-height: 300px;
	}
}

@media (max-width: 700px) {
	.page-template-page-craft-stories .process-grid {
		margin-top: 32px;
	}

	.page-template-page-craft-stories .process-grid article {
		min-height: 255px;
		padding: 26px 24px;
	}

	.page-template-page-craft-stories .ruixiang-process-mark > svg {
		width: 42px;
		height: 42px;
		padding: 9px;
	}
}
