/* =========================================================
   Global mobile / responsive enhancements (all pages)
   Loaded after base.css
   ========================================================= */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	overflow-x: hidden;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
	height: auto;
}

table {
	max-width: 100%;
}

/* Rich text / CMS content */
.jjfadeb2 img,
.jjfadebu img,
.newdetop2 img,
.shopcentr img,
.gsjj1_3 img,
.fwjd1_2 img,
.zysxli2 img {
	max-width: 100% !important;
	height: auto !important;
}

.jjfadeb2,
.newdetop2,
.shopcentr,
.gsjj1_3,
.fwjd1_2 {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.jjfadeb2 table,
.newdetop2 table,
.shopcentr table {
	width: 100% !important;
	display: block;
	overflow-x: auto;
}

/* ---------- Tablet & below ---------- */
@media (max-width: 1020px) {
	html,
	body {
		width: 100%;
		max-width: 100%;
	}

	.container {
		width: 92% !important;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 0;
		padding-right: 0;
	}

	header#H5 {
		position: sticky;
		top: 0;
		z-index: 1100;
	}

	.menubtn {
		width: 28px;
		height: 28px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		cursor: pointer;
	}

	.COVER {
		width: min(78%, 320px);
		box-shadow: 4px 0 24px rgba(0, 0, 0, 0.35);
		padding-top: 56px;
		transition: left 0.25s ease;
	}

	.COVER.is-open,
	body.menu-open .COVER {
		left: 0;
	}

	.menu-mask {
		display: none;
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.45);
		z-index: 1000;
	}

	body.menu-open .menu-mask {
		display: block;
	}

	body.menu-open {
		overflow: hidden;
	}

	.mulu1 {
		min-height: 44px;
		padding: 12px 8px;
		font-size: 15px;
	}

	.seachs {
		width: calc(100% - 24px) !important;
		left: 12px !important;
		right: 12px !important;
		top: 52px !important;
		border-radius: 24px !important;
		height: 42px;
	}

	/* Banner */
	.banne {
		height: auto !important;
		min-height: 220px;
		max-height: 56vh;
		aspect-ratio: 16 / 10;
	}

	.banne1 {
		object-fit: cover;
	}

	.banne2_1 {
		font-size: 22px !important;
		line-height: 1.35;
		padding: 0 8px;
		white-space: normal !important;
	}

	.banne2_2 {
		font-size: 13px !important;
		line-height: 1.5;
		margin-top: 10px !important;
		display: none; /* complex dual graphics unreadable on phone */
	}

	.nybanner {
		overflow: hidden;
	}

	.nybanne1 {
		width: 100%;
		height: 180px;
		object-fit: cover;
		display: block;
	}

	.nybanne2 {
		left: 0 !important;
		right: 0 !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		padding: 0 16px;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
		overflow: hidden;
	}

	.nybanne2 .container {
		width: 100% !important;
	}

	.nybanne2_1 {
		font-size: 22px !important;
		line-height: 1.3;
		white-space: normal !important;
		word-break: break-word;
		padding: 0 4px;
	}

	.nybanne2_2 {
		font-size: 12px !important;
		line-height: 1.45;
		max-width: 100%;
		white-space: normal !important;
		padding: 0 4px;
	}

	/* Same centering bug on home banner overlay */
	.banne2 {
		left: 0 !important;
		right: 0 !important;
		transform: translateY(-50%) !important;
		top: 50% !important;
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 12px;
		box-sizing: border-box;
	}

	.banne2 .container {
		width: 100% !important;
	}

	/* Category tabs: horizontal scroll for long EN labels */
	.titmpcnt {
		border-bottom: 1px solid #e9e9e9;
	}

	.titmpcn {
		display: block !important;
	}

	.titmpcn1 {
		width: 100%;
		padding: 0 2px;
	}

	.titmpcn1 div {
		line-height: 40px !important;
		white-space: nowrap;
		overflow-x: auto;
		max-width: 100%;
	}

	.titmpcn2 {
		width: 100% !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		justify-content: flex-start !important;
		background: #f7f8fa;
		padding-bottom: 2px;
	}

	.titmpcn2::-webkit-scrollbar {
		height: 3px;
	}

	.titmpcn2::-webkit-scrollbar-thumb {
		background: rgba(0, 174, 186, 0.45);
		border-radius: 3px;
	}

	.ALLCNTS,
	.ALLCNT,
	.jjfa-box,
	.shoplist,
	.INCPZXS,
	.INCPZX {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	.titmpcn2_1 {
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: 96px !important;
		max-width: none !important;
		padding: 0 16px !important;
		line-height: 44px !important;
		font-size: 13px !important;
		text-align: center;
	}

	/* Home products: single column on phone via nested media, keep 2-col on tablet */
	.incpzx4 {
		min-height: 0;
	}

	.incpzx4_2,
	.incpzx4_3 {
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: unset !important;
		line-height: 1.4;
	}

	.incpzx4_3 {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}

	/* Solution blocks */
	.jjfa-bo {
		display: flex;
		flex-direction: column;
	}

	.jjfa-bo1 {
		height: auto !important;
		min-height: 180px;
		order: 1;
	}

	.jjfa-bo1 img {
		width: 100%;
		height: 200px;
		object-fit: cover;
		display: block;
	}

	.jjfa-bo2 {
		order: 2;
		padding: 18px 16px !important;
	}

	.jjfa-bo2-1-1 {
		font-size: 18px !important;
		line-height: 1.35;
		white-space: normal !important;
	}

	/* Product list */
	.shopli {
		margin-bottom: 36px !important;
		overflow: hidden;
	}

	.shopli2 {
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: unset !important;
		line-height: 1.4;
		margin-top: 14px !important;
		font-size: 16px !important;
	}

	.shopli3 {
		white-space: normal !important;
		display: -webkit-box !important;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		line-height: 1.5;
		max-height: 4.5em;
		margin-top: 8px !important;
		font-size: 13px !important;
	}

	.shopli4 {
		display: inline-block;
		margin-top: 12px !important;
		position: static !important;
		float: none !important;
	}

	/* Product detail */
	.shoptop {
		flex-wrap: wrap;
	}

	.shoptop1,
	.shoptop2 {
		width: 100% !important;
		margin-left: 0 !important;
	}

	.shopcente2 {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.shopcente2::-webkit-scrollbar {
		display: none;
	}

	.shopcente2_1 {
		flex: 0 0 auto;
		white-space: nowrap;
		margin-right: 18px !important;
		padding-bottom: 8px;
	}

	.shopbut {
		display: flex;
		flex-wrap: wrap;
		gap: 10px;
	}

	.shopbut1 {
		width: 100% !important;
		margin-right: 0 !important;
	}

	/* Footer */
	.footer-top {
		display: flex;
		flex-wrap: wrap;
		gap: 8px 0;
	}

	.footer-top-first {
		width: 50%;
		box-sizing: border-box;
		padding-right: 10px;
	}

	.footer-top-two {
		width: 100%;
	}

	.footer-top-three {
		width: 120px;
		margin: 10px auto 0;
		float: none !important;
		display: block;
	}

	.footer-top-tw {
		display: flex;
		align-items: flex-start;
	}

	.footer-top-tw img {
		float: none !important;
		flex: 0 0 15px;
		margin-top: 2px;
	}

	.footer-top-tw div {
		float: none !important;
		width: auto !important;
		flex: 1;
		line-height: 1.45;
	}

	.footer-dow {
		text-align: center;
	}

	.footer-dow-first {
		float: none !important;
		display: block;
		line-height: 1.5 !important;
		font-size: 12px;
		word-break: break-all;
	}

	.footer-dow-two {
		float: none !important;
		margin: 12px auto 0 !important;
		display: block;
	}

	/* News / about */
	.newsli {
		display: block;
	}

	.newsli1,
	.newsli2 {
		width: 100% !important;
	}

	.newsli1 {
		height: 180px !important;
	}

	.newsli1 img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.page,
	.pagination,
	.pages {
		text-align: center;
		overflow-x: auto;
		white-space: nowrap;
		padding: 10px 0 20px;
	}

	/* Forms / search page */
	input[type="text"],
	input[type="password"],
	input[type="email"],
	input[type="tel"],
	textarea,
	select {
		max-width: 100%;
		font-size: 16px; /* prevent iOS zoom */
	}

	/* Swiper buttons safer */
	.inzszs1 .swiper-button-prev,
	.inzszs1 .swiper-button-next,
	.fzlc1 .swiper-button-prev,
	.fzlc1 .swiper-button-next {
		transform: scale(0.85);
	}
}

/* ---------- Phone ---------- */
@media (max-width: 768px) {
	.container {
		width: 94% !important;
	}

	.banne {
		min-height: 200px;
		max-height: 48vh;
		aspect-ratio: 4 / 3;
	}

	.banne2_1 {
		font-size: 18px !important;
	}

	.nybanne1 {
		height: 150px;
	}

	.incpzx1,
	.injsys1,
	.yjsm1,
	.lxwm1,
	.jjfa-bo2-1-1 {
		font-size: 20px !important;
	}

	.incpzx2,
	.injsys2 {
		font-size: 12px !important;
		padding: 0 4px;
		line-height: 1.5;
	}

	/* Products 1 column */
	.incpzx3 {
		display: block !important;
		width: 100% !important;
	}

	.incpzx4 {
		float: none !important;
		display: block !important;
		width: 100% !important;
		margin-right: 0 !important;
		margin-top: 14px !important;
		box-sizing: border-box;
	}

	.incpzx4:nth-child(2n) {
		margin-right: 0 !important;
	}

	.incpzx4_1 {
		height: 180px !important;
	}

	.incpzx4_1 img {
		object-fit: contain;
		width: 100%;
		height: 100%;
	}

	/* Product list 1 column */
	.shoplist {
		display: block !important;
		width: 100% !important;
	}

	.shopli {
		float: none !important;
		display: block !important;
		width: 100% !important;
		margin-right: 0 !important;
		margin-bottom: 22px !important;
		box-sizing: border-box;
	}

	.shopli:nth-child(2n),
	.shopli:nth-child(3n) {
		margin-right: 0 !important;
	}

	.shopli1 {
		height: 210px !important;
	}

	/* Home solutions cards */
	.injjfa2,
	.injjfa4_1,
	.injjfa4_2,
	.injjfa4_3 {
		height: 140px !important;
	}

	.injsys3_1 {
		width: 100% !important;
		margin-right: 0 !important;
	}

	.injsys3_1:nth-child(2n) {
		margin-right: 0 !important;
	}

	/* Video / service grids */
	.videoli,
	.shtop1 {
		width: 100% !important;
		margin-right: 0 !important;
	}

	.videoli:nth-child(2n),
	.shtop1:nth-child(2n) {
		margin-right: 0 !important;
	}

	.videoli1_1 {
		height: 180px !important;
	}

	.jszcli {
		display: flex;
		flex-direction: column;
	}

	.jszcli2 {
		width: 100% !important;
		height: auto !important;
		margin-left: 0 !important;
		margin-top: 12px;
	}

	.jszcli2 img {
		width: 100%;
		height: auto;
		object-fit: cover;
	}

	.fwjd2 {
		width: 100% !important;
	}

	.yjsm2_1 {
		height: auto !important;
		min-height: 100px;
		padding: 16px 12px;
	}

	.shoptop1_1 {
		width: 64px !important;
		height: 200px !important;
	}

	.shoptop1_2 {
		width: calc(100% - 76px) !important;
		height: 200px !important;
	}

	.footer-top-first {
		width: 100%;
		margin-bottom: 18px;
		padding-right: 0;
	}

	.footer-top-firt {
		padding: 4px 0;
		min-height: 32px;
	}
}

/* ---------- Small phone ---------- */
@media (max-width: 480px) {
	.container {
		width: 92% !important;
	}

	.logo {
		height: 22px !important;
	}

	.heade2,
	.heade3_2 {
		transform: scale(0.95);
	}

	.menubtn {
		margin-left: 14px !important;
	}

	.banne {
		min-height: 180px;
		max-height: 42vh;
	}

	.banne2_1 {
		font-size: 16px !important;
	}

	.nybanne1 {
		height: 130px;
	}

	.nybanne2_1 {
		font-size: 18px !important;
	}

	.titmpcn2_1 {
		min-width: 88px !important;
		font-size: 12px !important;
		padding: 0 12px !important;
	}

	.incpzx1,
	.injsys1,
	.yjsm1,
	.lxwm1 {
		font-size: 18px !important;
	}

	.INCPZX,
	.INJJFA,
	.INNEWS,
	.INZSZS,
	.INJSYS,
	.ALLCNT,
	.gsjj,
	.yjsm,
	.fzlc {
		margin-top: 32px !important;
		margin-bottom: 32px !important;
	}

	.jjfa-bo1 img {
		height: 170px;
	}

	.jjfa-bo2-3,
	.jjfa-bo2-4,
	.shopli4 {
		min-width: 88px;
		text-align: center;
	}

	.COVER {
		width: 82%;
	}
}
