/*
 * NTS Sprint 5 - Claude Design fidelity layer.
 * Scope: global frame, homepage rhythm, archive polish, PDP composition, mobile.
 */

:root {
	--nts-blue: #1e3470;
	--nts-blue-900: #14264c;
	--nts-gold: #cfba8d;
	--nts-gold-ink: #a8884e;
	--nts-cream: #f6f0e3;
	--nts-grey: #f1f3f6;
	--nts-ink: #232a33;
	--nts-ok: #1c7a4a;
	--nts-radius: 10px;
	--nts-container: 1240px;
}

body {
	color: var(--nts-ink);
	background: #fafafa;
	font-family: "Be Vietnam Pro", Arial, sans-serif;
	letter-spacing: 0;
}

h1, h2, h3, h4,
.product-title,
.entry-title,
.page-title,
.section-title {
	font-family: "Montserrat", "Be Vietnam Pro", Arial, sans-serif;
	letter-spacing: 0 !important;
	color: var(--nts-blue-900);
}

a {
	color: var(--nts-blue);
}

.button,
button,
input[type="submit"],
.single_add_to_cart_button,
.checkout-button {
	border-radius: 10px !important;
	font-family: "Montserrat", "Be Vietnam Pro", Arial, sans-serif !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	box-shadow: none !important;
}

/* Global frame: reduce default Flatsome feel without touching parent templates. */
.header-wrapper,
#masthead,
.header-main {
	background: rgba(255, 255, 255, .96) !important;
	box-shadow: 0 10px 28px rgba(20, 38, 76, .08) !important;
	border-bottom: 1px solid rgba(30, 52, 112, .08);
}

.header-main {
	min-height: 78px !important;
}

.logo img {
	max-height: 54px !important;
	object-fit: contain;
}

.header-nav > li > a,
.nav > li > a {
	color: var(--nts-blue-900) !important;
	font-family: "Be Vietnam Pro", Arial, sans-serif !important;
	font-size: 14px !important;
	font-weight: 800 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.header-nav > li.active > a,
.header-nav > li.current-menu-item > a,
.nav > li.active > a {
	color: var(--nts-blue) !important;
}

.header-button .button,
.header-search a,
.cart-item a {
	color: var(--nts-blue-900) !important;
}

.off-canvas-left .mfp-content,
.mobile-sidebar {
	background: #fff !important;
}

.footer-wrapper {
	background: #242424 !important;
	color: #fff !important;
	padding-top: 44px;
}

.footer-wrapper h3,
.footer-wrapper h4,
.footer-wrapper .widget-title,
.footer-wrapper a {
	color: #fff !important;
}

.footer-wrapper .textwidget,
.footer-wrapper p,
.footer-wrapper li {
	color: rgba(255, 255, 255, .76) !important;
}

.absolute-footer {
	background: #1d1d1d !important;
	color: rgba(255, 255, 255, .72) !important;
}

/* Homepage: make the first scan path lighter and closer to Claude Design. */
.home .nts-home-hero {
	position: relative;
	overflow: hidden;
	padding: 72px 0 62px !important;
	background:
		radial-gradient(circle at 88% 18%, rgba(207, 186, 141, .35), transparent 24%),
		linear-gradient(135deg, #fff 0%, #f7f1e6 52%, #eef3f8 100%) !important;
	color: var(--nts-blue-900) !important;
}

.home .nts-home-hero::after {
	content: "";
	position: absolute;
	inset: auto 6vw 36px auto;
	width: min(420px, 32vw);
	aspect-ratio: 1.35;
	border-radius: 24px;
	background:
		linear-gradient(145deg, rgba(255,255,255,.72), rgba(255,255,255,.25)),
		radial-gradient(circle at 34% 34%, rgba(30,52,112,.18), transparent 34%),
		radial-gradient(circle at 70% 70%, rgba(207,186,141,.45), transparent 32%);
	box-shadow: 0 28px 70px rgba(20, 38, 76, .16);
	pointer-events: none;
}

.home .nts-home-hero__inner {
	position: relative;
	z-index: 2;
	width: min(var(--nts-container), calc(100vw - 48px));
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 430px);
	gap: 42px;
	align-items: center;
}

.home .nts-home-hero__content h1 {
	max-width: 760px;
	margin-bottom: 18px;
	color: var(--nts-blue-900) !important;
	font-size: clamp(40px, 5.5vw, 68px);
	line-height: 1.02;
}

.home .nts-home-hero__lead {
	max-width: 690px;
	color: rgba(35, 42, 51, .78) !important;
	font-size: 18px;
	line-height: 1.75;
}

.home .nts-home-hero__panel {
	position: relative;
	z-index: 3;
	display: grid;
	gap: 12px;
	align-self: stretch;
	padding: 28px;
	border: 1px solid rgba(30, 52, 112, .12);
	border-radius: 18px;
	background: rgba(255, 255, 255, .78);
	box-shadow: 0 22px 60px rgba(20, 38, 76, .12);
	backdrop-filter: blur(12px);
}

.home .nts-home-hero__panel span {
	display: flex;
	align-items: center;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid rgba(207, 186, 141, .55);
	border-radius: 10px;
	background: #fff;
	color: var(--nts-blue-900);
	font-weight: 900;
}

.nts-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

.nts-home-hero__actions .button,
.nts-button {
	min-height: 44px;
	padding: 12px 18px !important;
}

.home .nts-trust-strip {
	margin-top: 0 !important;
	background: #fff !important;
	border-bottom: 1px solid rgba(30, 52, 112, .08);
}

.home .nts-trust-strip__inner {
	width: min(var(--nts-container), calc(100vw - 48px));
	gap: 0 !important;
}

.home .nts-trust-strip__inner > div {
	border-radius: 0 !important;
	border: 0 !important;
	border-left: 1px solid rgba(207, 186, 141, .48) !important;
	box-shadow: none !important;
}

.home .nts-section-wrap {
	width: min(var(--nts-container), calc(100vw - 48px));
	padding-top: 64px !important;
}

.home .nts-category-grid {
	gap: 18px !important;
}

.home .nts-category-card {
	min-height: 190px;
	border: 1px solid rgba(30, 52, 112, .12) !important;
	border-radius: 14px !important;
	background:
		linear-gradient(145deg, rgba(255,255,255,.88), rgba(246,240,227,.72)),
		var(--nts-bg, none) center/cover no-repeat !important;
	box-shadow: 0 18px 44px rgba(20, 38, 76, .08) !important;
}

.home .nts-category-card::before {
	background: linear-gradient(180deg, rgba(255,255,255,.68), rgba(255,255,255,.9)) !important;
}

.home .nts-category-card__label {
	color: var(--nts-blue-900) !important;
	font-size: 24px !important;
}

.home .nts-category-card__sub {
	color: rgba(35, 42, 51, .72) !important;
}

/* Archive: place trust/actions inside the custom archive rhythm. */
.nts-s4-shop {
	background: #f7f8fa;
}

.nts-s4-archive-hero {
	padding: 76px 0 44px;
	background:
		radial-gradient(circle at 84% 20%, rgba(207, 186, 141, .34), transparent 25%),
		linear-gradient(135deg, #fff 0%, var(--nts-cream) 56%, #edf3f8 100%) !important;
}

.nts-s5-archive-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
}

.nts-s5-archive-actions a {
	padding: 9px 14px;
	border: 1px solid rgba(168, 136, 78, .42);
	border-radius: 999px;
	background: rgba(255, 255, 255, .78);
	color: var(--nts-blue-900);
	font-weight: 900;
	text-decoration: none;
}

.nts-s5-archive-trust {
	padding: 0 0 26px;
	background: #fff;
}

.nts-s5-trust-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	border: 1px solid rgba(30, 52, 112, .1);
	border-radius: 14px;
	background: #fff;
	overflow: hidden;
	transform: translateY(-22px);
	box-shadow: 0 18px 44px rgba(20, 38, 76, .08);
}

.nts-s5-trust-grid > div {
	padding: 20px;
	border-left: 1px solid rgba(207, 186, 141, .42);
}

.nts-s5-trust-grid > div:first-child {
	border-left: 0;
}

.nts-s5-trust-grid strong,
.nts-s5-trust-grid span {
	display: block;
}

.nts-s5-trust-grid strong {
	color: var(--nts-blue-900);
	font-weight: 900;
}

.nts-s5-trust-grid span {
	margin-top: 6px;
	color: rgba(35, 42, 51, .68);
	font-size: 13px;
	line-height: 1.55;
}

.nts-s4-shop-tools {
	padding-top: 0;
	background: #fff;
}

.nts-s4-shop-tools__row {
	border-radius: 14px;
}

.nts-s4-card.product {
	border-radius: 16px !important;
}

.nts-s4-card__media {
	background:
		linear-gradient(145deg, #fff, #eef2f6);
}

.nts-s4-card__cta {
	background: var(--nts-blue-900) !important;
}

/* Product detail: stronger designed buying panel. */
.single-product .product-main {
	background: #f7f8fa;
	padding: 58px 0 70px !important;
}

.single-product .product-container,
.single-product .product-main .row {
	width: min(var(--nts-container), calc(100vw - 48px));
	max-width: min(var(--nts-container), calc(100vw - 48px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.single-product .product-gallery,
.single-product .product-images {
	padding: 0 !important;
}

.single-product .woocommerce-product-gallery,
.single-product .product-gallery-slider {
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 22px 60px rgba(20, 38, 76, .1);
	overflow: hidden;
}

.single-product .product-info,
.single-product .summary {
	padding: 32px !important;
	border: 1px solid rgba(30, 52, 112, .12);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 22px 60px rgba(20, 38, 76, .1);
}

.single-product .product-title {
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.15;
}

.single-product .price,
.single-product .price .amount {
	color: var(--nts-blue) !important;
	font-family: "Inter", Arial, sans-serif;
	font-size: 26px !important;
	font-weight: 900 !important;
}

.single-product form.cart {
	margin-top: 22px !important;
	padding-top: 18px;
	border-top: 1px solid rgba(30, 52, 112, .1);
}

.single-product .cam-ket {
	display: none !important;
}

.single-product table.variations {
	margin-bottom: 18px !important;
}

.single-product table.variations th,
.single-product table.variations td {
	display: block;
	width: 100%;
	padding: 0 0 8px !important;
}

.single-product table.variations label {
	color: var(--nts-blue-900);
	font-weight: 900;
}

.single-product table.variations select,
.single-product .quantity input {
	border: 1px solid rgba(30, 52, 112, .16) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.single-product .single_add_to_cart_button {
	min-height: 54px;
	padding-left: 28px !important;
	padding-right: 28px !important;
	background: var(--nts-blue) !important;
	color: #fff !important;
}

.single-product .nts-product-advisor,
.single-product .nts-spec-table-wrap {
	margin-top: 24px;
	border-radius: 16px;
}

.single-product .product-footer,
.single-product .related-products-wrapper {
	width: min(var(--nts-container), calc(100vw - 48px));
	max-width: min(var(--nts-container), calc(100vw - 48px));
	margin-left: auto;
	margin-right: auto;
}

/* Static pages and posts: shared calmer frame. */
.page:not(.home) .page-wrapper,
.blog .blog-wrapper,
.archive.category .blog-wrapper,
.single-post .page-wrapper {
	background: #f7f8fa;
}

.page:not(.home) .entry-content,
.single-post .entry-content,
.blog .post-item .col-inner {
	border-radius: 16px;
}

.page:not(.home) .entry-content {
	font-size: 16px;
	line-height: 1.75;
}

@media only screen and (max-width: 900px) {
	.home .nts-home-hero__inner {
		grid-template-columns: 1fr;
	}

	.home .nts-home-hero::after {
		display: none;
	}

	.nts-s5-trust-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nts-s5-trust-grid > div:nth-child(3) {
		border-left: 0;
		border-top: 1px solid rgba(207, 186, 141, .42);
	}

	.nts-s5-trust-grid > div:nth-child(4) {
		border-top: 1px solid rgba(207, 186, 141, .42);
	}
}

@media only screen and (max-width: 760px) {
	html,
	body {
		max-width: 100%;
		overflow-x: hidden !important;
	}

	.header-main {
		min-height: 70px !important;
	}

	.logo img {
		max-height: 46px !important;
	}

	.home .nts-home-hero {
		padding: 46px 0 42px !important;
	}

	.home .nts-home-hero__inner,
	.home .nts-trust-strip__inner,
	.home .nts-section-wrap {
		width: min(100vw - 40px, 520px);
	}

	.home .nts-home-hero__content h1 {
		font-size: 34px;
	}

	.home .nts-home-hero__lead {
		font-size: 16px;
	}

	.home .nts-home-hero__panel {
		padding: 18px;
	}

	.nts-s5-trust-grid {
		grid-template-columns: 1fr;
		transform: translateY(-12px);
	}

	.nts-s5-trust-grid > div {
		border-left: 0 !important;
		border-top: 1px solid rgba(207, 186, 141, .42);
	}

	.nts-s5-trust-grid > div:first-child {
		border-top: 0;
	}

	.single-product .product-main {
		padding: 28px 0 92px !important;
	}

	.single-product .product-container,
	.single-product .product-main .row,
	.single-product .product-footer,
	.single-product .related-products-wrapper {
		width: min(100vw - 32px, 520px);
		max-width: min(100vw - 32px, 520px) !important;
	}

	.single-product .product-gallery,
	.single-product .product-images,
	.single-product .product-info,
	.single-product .summary {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		flex-basis: 100% !important;
	}

	.single-product .product-main .col,
	.single-product .product-main .large-6,
	.single-product .product-main .medium-6,
	.single-product .product-main .small-12 {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		flex-basis: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.single-product .product-gallery .product-thumbnails,
	.single-product .product-thumbnails,
	.single-product .woocommerce-product-gallery .flex-control-thumbs {
		display: none !important;
	}

	.single-product .woocommerce-product-gallery,
	.single-product .product-gallery-slider,
	.single-product .flickity-viewport,
	.single-product .flickity-slider,
	.single-product .slide,
	.single-product .woocommerce-product-gallery__image {
		max-width: 100% !important;
	}

	.single-product .product-info,
	.single-product .summary {
		padding: 22px !important;
		overflow: hidden;
	}

	.single-product .product-info,
	.single-product .summary,
	.single-product .product-summary {
		box-sizing: border-box !important;
		width: calc(100vw - 32px) !important;
		max-width: calc(100vw - 32px) !important;
		min-width: 0 !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.single-product .product-title {
		display: block;
		max-width: calc(100vw - 76px) !important;
		font-size: 24px;
		line-height: 1.16;
		overflow-wrap: anywhere !important;
		word-break: break-word;
		white-space: normal !important;
	}

	.single-product .product-short-description,
	.single-product .product-short-description li,
	.single-product .price-wrapper,
	.single-product form.cart,
	.single-product table.variations {
		max-width: 100% !important;
		overflow-wrap: anywhere;
		white-space: normal !important;
	}

	.single-product .price,
	.single-product .price .amount {
		font-size: 21px !important;
	}

	.nts-mobile-sticky-buy {
		left: 12px !important;
		right: 12px !important;
		bottom: 12px !important;
		border-radius: 16px !important;
		box-shadow: 0 18px 45px rgba(20, 38, 76, .22) !important;
	}
}

@media only screen and (max-width: 430px) {
	.home .nts-home-hero__inner,
	.home .nts-trust-strip__inner,
	.home .nts-section-wrap,
	.nts-s4-shell {
		width: min(100vw - 32px, 360px) !important;
		max-width: min(100vw - 32px, 360px) !important;
	}

	.home .nts-category-card {
		min-height: 150px;
	}

	.nts-s5-archive-actions a {
		width: 100%;
		text-align: center;
	}
}
