/* ===== Product detail ===== */.pd-section {	background: #fff;	padding: 36px 0 48px;}.pd-admin {	text-align: right;	margin-bottom: 16px;}.pd-layout {	display: grid;	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);	gap: 44px;	align-items: start;}/* Gallery */.pd-gallery {	position: sticky;	top: 20px;}.pd-main {	position: relative;	display: block;	width: 100%;	padding: 0;	padding-top: 100%;	border: 1px solid #eef2f1;	border-radius: 20px;	background: #fff;	overflow: hidden;	cursor: zoom-in;}.pd-main img {	position: absolute;	top: 0;	left: 0;	width: 100%;	height: 100%;	object-fit: contain;	padding: 16px;	transition: opacity .25s ease, transform .4s ease;}.pd-main:hover img {	transform: scale(1.03);}.pd-main img.is-swapping {	opacity: 0;}.pd-zoom,.pd-counter {	position: absolute;	font-size: 13px;	line-height: 1;	border-radius: 999px;	background: rgba(31, 45, 42, .72);	color: #fff;	backdrop-filter: blur(4px);}.pd-zoom {	right: 12px;	top: 12px;	width: 36px;	height: 36px;	display: flex;	align-items: center;	justify-content: center;	opacity: 0;	transform: scale(.8);	transition: opacity .2s, transform .2s;}.pd-main:hover .pd-zoom,.pd-main:focus-visible .pd-zoom {	opacity: 1;	transform: none;}.pd-counter {	left: 12px;	bottom: 12px;	padding: 6px 10px;}.pd-thumbs {	display: flex;	gap: 10px;	margin-top: 12px;	overflow-x: auto;	padding: 2px 2px 6px;	scrollbar-width: thin;}.pd-thumb {	flex: 0 0 76px;	height: 76px;	padding: 4px;	border: 2px solid #eef2f1;	border-radius: 12px;	background: #fff;	cursor: pointer;	transition: border-color .2s, transform .2s;}.pd-thumb img {	width: 100%;	height: 100%;	object-fit: cover;	border-radius: 8px;}.pd-thumb:hover {	transform: translateY(-2px);}.pd-thumb.is-active {	border-color: #3fb892;}/* Info */.pd-cate {	display: inline-flex;	align-items: center;	gap: 6px;	font-size: 13px;	padding: 6px 12px;	border-radius: 999px;	background: #e9f9f3;	color: #238a6a !important;	text-decoration: none !important;	transition: background-color .2s;}.pd-cate:hover {	background: #d6f3e8;}.pd-title {	font-size: 30px;	line-height: 1.35;	font-weight: 700;	color: #1f2d2a;	margin: 12px 0 8px;	letter-spacing: 0;	text-transform: none;}.pd-meta {	display: flex;	flex-wrap: wrap;	gap: 16px;	font-size: 14px;	color: #6b7a76;	margin-bottom: 18px;}.pd-meta i {	margin-right: 4px;}.pd-price-box {	display: flex;	flex-wrap: wrap;	align-items: baseline;	gap: 4px 12px;	padding: 16px 20px;	border-radius: 16px;	background: linear-gradient(135deg, #f3fbf8, #fff);	border: 1px solid #e3f4ed;	margin-bottom: 20px;}.pd-price-label {	font-size: 14px;	color: #6b7a76;}.pd-price {	font-size: 32px;	font-weight: 700;	line-height: 1.1;	color: #e0322b;}.pd-price small {	font-size: 20px;	margin-right: 2px;}.pd-price--ask {	font-size: 24px;	color: #238a6a;}.pd-price-note {	flex-basis: 100%;	font-size: 13.5px;	color: #6b7a76;}.pd-content {	font-size: 16px;	line-height: 1.8;	color: #33423e;	margin-bottom: 22px;}.pd-content p {	margin: 0 0 10px;}/* Descriptions pasted from the editor often come wrapped in <pre> */.pd-content pre {	font-family: inherit;	font-size: inherit;	line-height: inherit;	color: inherit;	white-space: pre-line;	background: none;	border: 0;	padding: 0;	margin: 0 0 10px;	overflow: visible;}.pd-content img {	max-width: 100%;	height: auto;	border-radius: 12px;}.pd-content table {	width: 100%;	font-size: 14px;}/* Share */.pd-share {	display: flex;	flex-wrap: wrap;	align-items: center;	gap: 10px;	margin-top: 20px;	padding-top: 18px;	border-top: 1px dashed #e0e8e5;	font-size: 14px;	color: #6b7a76;}.pd-share-btn {	width: 40px;	height: 40px;	border-radius: 50%;	display: inline-flex;	align-items: center;	justify-content: center;	border: 0;	font-size: 17px;	color: #fff !important;	text-decoration: none !important;	cursor: pointer;	transition: transform .2s, box-shadow .2s;}.pd-share-btn:hover {	transform: translateY(-3px) rotate(-6deg);	box-shadow: 0 6px 14px rgba(0, 0, 0, .15);}.pd-share-btn.is-fb { background: #1877f2; }.pd-share-btn.is-line { background: #06c755; font-size: 20px; }.pd-share-btn.is-copy { background: #52615d; }.pd-copied {	font-size: 13px;	color: #238a6a;}/* Lightbox */.pd-lightbox {	position: fixed;	top: 0;	right: 0;	bottom: 0;	left: 0;	z-index: 100002;	display: flex;	align-items: center;	justify-content: center;	background: rgba(10, 18, 16, .92);	animation: cc-fade .2s ease;}.pd-lightbox[hidden] {	display: none;}.pd-lightbox img {	max-width: calc(100vw - 120px);	max-height: calc(100vh - 100px);	object-fit: contain;	border-radius: 8px;	background: #fff;	user-select: none;}.pd-lb-close,.pd-lb-nav {	position: absolute;	width: 48px;	height: 48px;	border-radius: 50%;	border: 0;	background: rgba(255, 255, 255, .14);	color: #fff;	font-size: 18px;	cursor: pointer;	transition: background-color .2s;}.pd-lb-close:hover,.pd-lb-nav:hover {	background: rgba(255, 255, 255, .28);}.pd-lb-close {	top: 16px;	right: 16px;}.pd-lb-nav {	top: 50%;	margin-top: -24px;}.pd-lb-nav.is-prev { left: 16px; }.pd-lb-nav.is-next { right: 16px; }.pd-lb-count {	position: absolute;	bottom: 18px;	left: 50%;	transform: translateX(-50%);	color: rgba(255, 255, 255, .85);	font-size: 14px;}html.pd-lightbox-open {	overflow: hidden;}/* Related */.pd-related-title {	font-size: 24px;	font-weight: 700;	color: #1f2d2a;	margin: 0 0 18px;	letter-spacing: 0;}/* ===== Contact buttons (widget-btn-product.php, widget-btn-contact.php) ===== */.cta-box {	border-radius: 20px;	padding: 18px;	background: #f6f8f7;	border: 1px solid #eef2f1;}.cta-head {	display: flex;	align-items: center;	gap: 10px;	font-size: 15px;	font-weight: 600;	color: #1f2d2a;	margin-bottom: 14px;}.cta-dot {	position: relative;	flex: 0 0 auto;	width: 10px;	height: 10px;	border-radius: 50%;	background: #22c55e;}.cta-dot::after {	content: "";	position: absolute;	top: 0;	right: 0;	bottom: 0;	left: 0;	border-radius: 50%;	background: #22c55e;	animation: cta-ping 1.6s cubic-bezier(0, 0, .2, 1) infinite;}.cta-grid {	display: grid;	grid-template-columns: repeat(2, minmax(0, 1fr));	gap: 10px;}.cta-box.is-wide .cta-grid {	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));}.cta-btn {	--cta-from: #3fb892;	--cta-to: #67d5b3;	--cta-glow: rgba(63, 184, 146, .45);	--rx: 0deg;	--ry: 0deg;	--ty: 0px;	--mx: 50%;	--my: 50%;	position: relative;	overflow: hidden;	isolation: isolate;	display: flex;	align-items: center;	gap: 12px;	padding: 12px 14px;	border-radius: 16px;	background: linear-gradient(135deg, var(--cta-from), var(--cta-to));	background-size: 160% 160%;	color: #fff !important;	text-decoration: none !important;	box-shadow: 0 4px 14px var(--cta-glow);	transform: perspective(700px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--ty));	transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, background-position .6s;	-webkit-tap-highlight-color: transparent;}.cta-btn.is-line {	--cta-from: #06c755;	--cta-to: #3ddc84;	--cta-glow: rgba(6, 199, 85, .4);}.cta-btn.is-chat {	--cta-from: #0866ff;	--cta-to: #a033ff;	--cta-glow: rgba(8, 102, 255, .38);}/* Shine that sweeps across by itself every few seconds (visible on phones too) */.cta-btn::before {	content: "";	position: absolute;	top: 0;	left: -60%;	z-index: -1;	width: 40%;	height: 100%;	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .5), transparent);	transform: skewX(-20deg);	animation: cta-shine 5s ease-in-out infinite;	animation-delay: calc(1.2s + var(--n, 0) * .35s);}/* Spotlight that follows the mouse */.cta-btn::after {	content: "";	position: absolute;	top: 0;	right: 0;	bottom: 0;	left: 0;	z-index: -1;	background: radial-gradient(circle 120px at var(--mx) var(--my), rgba(255, 255, 255, .35), transparent 70%);	opacity: 0;	transition: opacity .25s;}.cta-btn:hover {	--ty: -4px;	background-position: 100% 100%;	box-shadow: 0 14px 28px var(--cta-glow);}.cta-btn:hover::after {	opacity: 1;}.cta-btn:active {	--ty: 0px;	transform: perspective(700px) scale(.97);}.cta-btn:focus-visible {	outline: 3px solid var(--cta-from);	outline-offset: 3px;}.cta-icon {	position: relative;	flex: 0 0 auto;	width: 44px;	height: 44px;	border-radius: 13px;	display: flex;	align-items: center;	justify-content: center;	background: rgba(255, 255, 255, .22);	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25);	font-size: 19px;	transition: transform .3s cubic-bezier(.2, .8, .2, 1);}.cta-btn:hover .cta-icon {	transform: scale(1.1) rotate(-6deg);}.cta-btn.is-line .cta-icon {	font-size: 25px;}/* Idle icon motion */.cta-btn.is-call .cta-icon i {	animation: cta-ring 2.4s ease-in-out infinite;}.cta-btn.is-line .cta-icon i {	animation: cta-bob 2.6s ease-in-out infinite;}.cta-btn.is-chat .cta-icon::after {	content: "";	position: absolute;	top: -3px;	right: -3px;	width: 11px;	height: 11px;	border-radius: 50%;	background: #ff3b5c;	box-shadow: 0 0 0 2px #fff;	animation: cta-badge 2s ease-in-out infinite;}.cta-text {	flex: 1 1 auto;	min-width: 0;	display: flex;	flex-direction: column;	line-height: 1.25;}.cta-text small {	font-size: 12px;	opacity: .9;}.cta-text strong {	font-size: 16px;	font-weight: 700;	white-space: nowrap;	overflow: hidden;	text-overflow: ellipsis;}.cta-arrow {	font-size: 12px;	opacity: .7;	transition: transform .25s, opacity .25s;}.cta-btn:hover .cta-arrow {	transform: translateX(5px);	opacity: 1;}/* Tap ripple (js/cta.js) */.cta-ripple {	position: absolute;	z-index: -1;	border-radius: 50%;	background: rgba(255, 255, 255, .5);	transform: scale(0);	animation: cta-ripple .6s ease-out forwards;	pointer-events: none;}/* Entrance: buttons slide up one by one when they scroll into view (js/cta.js adds the classes) */.cta-box.is-waiting .cta-btn {	opacity: 0;	transform: translateY(14px);}.cta-box.is-in .cta-btn {	animation: cta-in .55s cubic-bezier(.2, .8, .2, 1) both;	animation-delay: calc(var(--n, 0) * 90ms);}@keyframes cta-ping {	75%, 100% { transform: scale(2.4); opacity: 0; }}@keyframes cta-shine {	0% { left: -60%; }	22%, 100% { left: 130%; }}@keyframes cta-ring {	0%, 60%, 100% { transform: rotate(0); }	64%, 72%, 80% { transform: rotate(-14deg); }	68%, 76%, 84% { transform: rotate(14deg); }}@keyframes cta-bob {	0%, 100% { transform: translateY(0); }	50% { transform: translateY(-3px); }}@keyframes cta-badge {	0%, 100% { transform: scale(1); }	50% { transform: scale(1.25); }}@keyframes cta-ripple {	to { transform: scale(2.6); opacity: 0; }}@keyframes cta-in {	from { opacity: 0; transform: translateY(14px); }	to { opacity: 1; transform: none; }}@media (max-width: 991px) {	.pd-layout {		grid-template-columns: minmax(0, 1fr);		gap: 24px;	}	.pd-gallery {		position: static;	}}@media (max-width: 767px) {	.pd-section {		padding: 16px 0 32px;	}	.pd-title {		font-size: 24px;	}	.pd-price {		font-size: 28px;	}	.pd-thumb {		flex-basis: 64px;		height: 64px;	}	.cta-box {		padding: 14px;	}	.pd-lightbox img {		max-width: 100vw;		max-height: calc(100vh - 140px);		border-radius: 0;	}	.pd-lb-nav {		top: auto;		bottom: 12px;		margin-top: 0;	}	.pd-related-title {		font-size: 20px;	}}@media (max-width: 420px) {	.cta-grid,	.cta-box.is-wide .cta-grid {		grid-template-columns: minmax(0, 1fr);	}}@media (prefers-reduced-motion: reduce) {	.cta-btn,	.cta-icon,	.pd-main img,	.pd-share-btn {		transition: none;	}	.cta-btn {		transform: none !important;	}	.cta-btn::before,	.cta-dot::after,	.cta-btn .cta-icon i,	.cta-btn.is-chat .cta-icon::after,	.cta-ripple,	.cta-box.is-in .cta-btn {		animation: none;	}	.cta-box.is-waiting .cta-btn {		opacity: 1;		transform: none;	}}/* ===== Promotion price (product detail) ===== */.pd-price-box.is-sale {	background: linear-gradient(135deg, #fff1f0, #fff);	border-color: #ffd6d4;	align-items: center;}.pd-sale-tag {	flex-basis: 100%;	display: inline-flex;	align-items: center;	gap: 6px;	font-size: 13px;	font-weight: 700;	color: #e0322b;}.pd-price-old {	font-size: 18px;	color: #6b7a76;	text-decoration-thickness: 2px;}.pd-save {	font-size: 13px;	font-weight: 700;	color: #fff;	background: #e0322b;	padding: 5px 10px;	border-radius: 999px;	line-height: 1;}