@charset "UTF-8";
/* Homepage layout — index.html only */

/* Global tech dot grid (canvas in index.html) */
body.bosofts-home {
	background-color: #ffffff;
}

.bosofts-dots-bg {
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
	opacity: 0.92;
	-webkit-mask-image: linear-gradient(
		90deg,
		#000 0%,
		#000 38%,
		rgba(0, 0, 0, 0.55) 72%,
		transparent 100%
	);
	mask-image: linear-gradient(
		90deg,
		#000 0%,
		#000 38%,
		rgba(0, 0, 0, 0.55) 72%,
		transparent 100%
	);
}

@media (prefers-reduced-motion: reduce) {
	.bosofts-dots-bg {
		opacity: 0.75;
	}
}

.main_adv_img li {
	position: relative;
}

/* Hero: aligned with wwwroot 20260521/index.html — white letterbox, poster fades on play */
#slideBox2.main_adv_box {
	--bosofts-hero-bg: #ffffff;
	height: clamp(620px, 65vh, min(720px, 85vh));
	box-sizing: border-box;
	background: var(--bosofts-hero-bg);
}

#slideBox2 .main_adv_img ul {
	margin: 0;
	padding: 0;
	list-style: none;
	height: 100%;
	background-color: var(--bosofts-hero-bg, #ffffff);
}

#slideBox2 .main_adv_img li {
	background-color: var(--bosofts-hero-bg, #ffffff);
}

#slideBox2 .main_adv_img li > span {
	display: block;
	height: 100%;
	line-height: 0;
	background-color: var(--bosofts-hero-bg, #ffffff) !important;
	background-image: none !important;
}

#slideBox2 .main_adv_img {
	height: 100%;
	width: 100%;
	max-width: var(--content-width, 1200px);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	background-color: var(--bosofts-hero-bg, #ffffff);
}

.slide-text-container {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    text-align: center;
    z-index: 10;
	width: 100%;
	pointer-events: none;
}

.slide-text-container h1 {
    font-size: 52px;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
	margin-bottom: 20px;
}

.slide-text-container h2 {
    font-size: 32px;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
	margin-bottom: 20px;
	font-weight: normal;
}

.slide-text-container p {
    font-size: 20px;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.7);
	font-weight: normal;
	line-height: 1.5;
}

.slide-text-container.slide-text-container--video {
	pointer-events: auto;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	padding: 0;
	transform: none;
	display: block;
	box-sizing: border-box;
	z-index: 10;
	background-color: var(--bosofts-hero-bg, #ffffff);
}

.hero-video-frame {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	margin: 0;
	overflow: hidden;
	border-radius: 0;
	box-shadow: none;
	background: var(--bosofts-hero-bg, #ffffff);
}

.hero-poster-link {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	z-index: 2;
	display: block;
	text-decoration: none;
	background-color: var(--bosofts-hero-bg, #ffffff);
	transition: opacity 0.35s ease;
}

.hero-poster-link .hero-poster-cover {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center center;
	pointer-events: none;
}

.hero-poster-link.hero-poster-cover--done {
	opacity: 0;
	pointer-events: none;
}

.slide-text-container--video .hero-video {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	border-radius: 0;
	object-fit: contain;
	object-position: center center;
	display: block;
	background-color: var(--bosofts-hero-bg, #ffffff);
	z-index: 1;
	cursor: default;
}

/* Keep partner showcase image aligned with page content width */
.home_partner > img[alt=""] {
	display: block;
	width: min(100%, 1200px);
	height: auto;
	margin-left: auto;
	margin-right: auto;
}

/* Wide screens: keep original header layout from tpl; hide mobile-only controls */
@media (min-width: 1200px) {
	#hd > .bosofts-nav-cb,
	#hd > label.nav-menu-btn {
		display: none !important;
	}
}

/* ----- Mobile / narrow screens (overrides tpl min-width layout) ----- */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

@media (max-width: 1199.98px) {
	body {
		min-width: 0 !important;
		overflow-x: hidden;
	}

	.blank85 {
		height: clamp(56px, 14vw, 72px);
	}

	#hdw {
		height: auto;
		min-height: 56px;
	}

	/* public.css sets #hd { min-width: 750px } — breaks phone layout */
	#hd {
		width: 100%;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 auto;
		padding: 8px 12px 10px;
		box-sizing: border-box;
		min-height: 0;
		position: relative;
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-areas:
			"logo toggle"
			"nav nav";
		align-items: center;
		column-gap: 10px;
		row-gap: 0;
	}

	/* Checkbox must be first inside #hd so :checked ~ ul.nav works; label toggles via [for] */
	#hd > .bosofts-nav-cb {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		margin: -1px !important;
		padding: 0 !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		white-space: nowrap !important;
		border: 0 !important;
		appearance: none !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}

	#hd > label.nav-menu-btn {
		grid-area: toggle;
		justify-self: end;
		align-self: center;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		box-sizing: border-box;
		border: 1px solid #ddd;
		border-radius: 8px;
		background: #fff;
		cursor: pointer;
		touch-action: manipulation;
		box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	}

	#hd > label.nav-menu-btn::before {
		content: "";
		width: 20px;
		height: 2px;
		background: #333;
		box-shadow: 0 6px 0 #333, 0 -6px 0 #333;
		border-radius: 1px;
	}

	#hd .logo {
		grid-area: logo;
		position: static !important;
		display: block;
		text-align: left !important;
		margin: 0 !important;
		justify-self: start;
	}

	#hd .logo img {
		max-width: min(220px, 58vw);
		height: auto;
		vertical-align: middle;
	}

	#hd .nav {
		grid-area: nav;
		position: static !important;
		float: none !important;
		right: auto !important;
		top: auto !important;
		display: none;
		flex-direction: column;
		flex-wrap: nowrap;
		width: 100%;
		max-width: 100%;
		margin: 8px 0 0;
		padding: 8px 0 4px;
		border-top: 1px solid #eee;
		overflow: visible;
		gap: 0;
		box-sizing: border-box;
	}

	#bosofts-nav-cb:checked ~ ul.nav {
		display: flex !important;
	}

	#hd .nav li {
		float: none !important;
		width: 100%;
		border-top: 0;
		border-bottom: 1px solid #f0f0f0;
	}

	#hd .nav li .a_top {
		padding: 0;
	}

	#hd .nav li a {
		line-height: 48px;
		height: auto;
		min-height: 48px;
		font-size: 15px;
		padding: 0 4px;
		white-space: normal;
		display: block;
		text-align: left;
	}

	/* Mobile: show sub-nav inline (hide empty dropdowns) */
	#hd .nav li .cp_list:not(:has(.nav-sublinks li)) {
		display: none !important;
	}
	#hd .nav li .cp_list {
		display: block !important;
		position: static !important;
		left: auto !important;
		top: auto !important;
		padding: 0 0 4px 12px !important;
		overflow: visible !important;
	}
	#hd .nav li .cp_list .nav_list {
		box-shadow: none;
		border: 0;
		background: transparent;
	}
	#hd .nav li .cp_list .nav-sublinks li a {
		line-height: 40px;
		min-height: 40px;
		font-size: 14px;
		font-weight: normal;
		color: var(--color-muted);
	}

	.warp {
		max-width: 100%;
		padding-left: 12px;
		padding-right: 12px;
		box-sizing: border-box;
	}

	#slideBox2.main_adv_box {
		height: clamp(280px, 48vh, 640px);
	}

	#slideBox,
	#slideBox .bd,
	#slideBox .bd ul {
		width: 100% !important;
		max-width: 100%;
		box-sizing: border-box;
	}

	#slideBox .bd li {
		float: none !important;
		width: 100% !important;
		clear: both;
	}

	.main_title .title_tit {
		width: 100%;
		max-width: 100%;
		height: auto;
		min-height: 30px;
		line-height: 1.5;
		padding: 0 8px;
		box-sizing: border-box;
	}

	.main_title .lead {
		font-size: 14px;
		display: block;
	}

	/* Product cards: single column */
	.section1 .box,
	.section1 .box.box1,
	.section1 .box.box2,
	.section1 .box.box3,
	.section1 .box.box4 {
		float: none !important;
		width: 100% !important;
		max-width: 100%;
		margin-left: 0 !important;
		margin-right: 0 !important;
		margin-top: 20px;
		box-sizing: border-box;
	}

	.section1 .box_txt p.product-desc {
		font-size: 15px !important;
		line-height: 1.55 !important;
	}

	/* Section2: tablet — 2 per row */
	.section2 .boxes {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		width: 100%;
	}

	.section2 .box {
		float: none !important;
		width: 100% !important;
		min-width: 0;
		max-width: none !important;
		height: auto !important;
		margin: 0 !important;
		box-sizing: border-box;
	}

	.section2 .box_img img {
		max-width: 100%;
		height: auto;
	}

	/* Flow diagram + rich text images */
	.section3 .fff img,
	.section3 img[width="980"],
	.richContent img {
		max-width: 100% !important;
		width: auto !important;
		height: auto !important;
	}

	.section3 p span {
		font-size: 15px !important;
		line-height: 1.65 !important;
	}

	/* News + partner blocks */
	.home_news_text,
	.home_partner_text {
		max-width: 100%;
		padding: 0 8px;
		box-sizing: border-box;
		font-size: 14px !important;
		line-height: 1.6 !important;
	}

	.home_news_title img,
	.home_partner_title img {
		max-width: min(100%, 310px);
		height: auto;
	}

	.home_partner img[alt=""] {
		width: 100%;
		height: auto;
	}

	#ftbox,
	#ftbox2 {
		overflow-x: hidden;
	}

	#ft {
		max-width: 100% !important;
		min-width: 0 !important;
		width: 100%;
		padding-left: 16px !important;
		padding-right: 16px !important;
		padding-top: 24px;
		padding-bottom: 24px;
		box-sizing: border-box;
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch;
		gap: 20px;
		float: none !important;
	}

	#ft dl.f_1,
	#ft dl.dl1,
	#ft dl.dl2,
	#ft dl.dl3 {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		clear: both;
		display: block;
	}

	#ft dl dt {
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}

	#ft dl ._link_1 {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	/* dl3 uses invalid markup (dl > div); force block layout so text does not overlap */
	#ft dl.dl3 {
		overflow: hidden;
	}

	#ft dl.dl3 > ._link_1,
	#ft dl.dl3 > dd._link_1 {
		float: none !important;
		width: 100% !important;
		clear: both;
		display: block;
	}

	#ft .end_1 {
		float: none !important;
		width: 100%;
		text-align: center;
		background-position: center top;
		padding-bottom: 8px;
	}

	#ft .end_1 .cpn_name {
		padding-left: 0;
		font-size: clamp(17px, 4.8vw, 22px);
		line-height: 1.35;
		word-break: break-word;
	}

	#ft .end_2 {
		margin-top: 0 !important;
		text-align: center;
	}

	#ft .end_2 img {
		padding-left: 0 !important;
		display: block;
		margin: 0 auto;
		max-width: 100%;
		height: auto;
	}

	#ft .lianxi_1 {
		font-size: 22px !important;
		line-height: 1.3 !important;
		height: auto !important;
		text-indent: 0 !important;
	}

	#ft .ftw ._link {
		padding-left: 0 !important;
		background: none !important;
		text-align: center;
		font-size: 18px !important;
		line-height: 1.35 !important;
	}

	#ft .ftw ._link_1 {
		padding-top: 0 !important;
		padding-left: 0 !important;
		text-align: center;
	}

	#ft .footqq,
	#ft .footemail,
	#ft .footadd {
		padding-left: 0 !important;
		background: none !important;
		text-align: center;
		word-break: break-word;
	}

	#ft .shouqian {
		line-height: 1.5 !important;
	}

	#ft .end_3 {
		float: none !important;
		margin: 0 auto;
	}

	#ftbox2 .box {
		max-width: 100%;
		padding-left: 12px;
		padding-right: 12px;
		box-sizing: border-box;
		height: auto !important;
		line-height: 1.65 !important;
	}

	#ftbox2 .box p {
		font-size: 12px;
		line-height: 1.65;
		word-break: break-word;
	}

	.btna,
	.btn {
		touch-action: manipulation;
	}
}

@media (max-width: 480px) {
	#slideBox2.main_adv_box {
		height: clamp(220px, 38vh, 420px);
	}

	#hd .nav li a {
		font-size: 13px;
		padding: 0 8px;
	}

	.section2 .boxes {
		grid-template-columns: 1fr;
	}

	.section2 .box {
		width: 100% !important;
		max-width: none !important;
	}
}

/* ----- Modern tech enhancements ----- */
.section1 .box {
	border-radius: var(--radius-md);
	border-bottom: none;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: box-shadow var(--transition-base), transform var(--transition-base);
}

@media (hover: hover) {
	.section1 .box:hover {
		box-shadow: var(--shadow-hover);
		transform: translateY(-4px);
	}
}

.section2 {
	background: var(--color-surface);
}

.section2 .boxes .box {
	background: var(--color-page);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	padding: 12px 8px;
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
	box-sizing: border-box;
}

@media (hover: hover) {
	.section2 .boxes .box:hover {
		border-color: var(--color-primary-light);
		box-shadow: var(--shadow-card);
	}
}

/* Desktop: service list — 4 items per row (2 rows × 4) */
@media (min-width: 981px) {
	.section2 .boxes {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 20px;
		width: 100%;
		overflow: visible;
	}

	.section2 .boxes::after {
		display: none;
	}

	.section2 .box {
		float: none !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		min-height: 220px;
		margin: 0 !important;
	}
}

/* Main intro above product cards — prevent text overlapping card images */
.main_title {
	position: relative;
	z-index: 2;
	padding-bottom: 28px;
	margin-bottom: 12px;
	overflow: visible;
}

.main_title .title_img {
	display: block;
	height: 105px;
	margin-bottom: 8px;
}

.main_title .title_tit {
	width: 100% !important;
	max-width: var(--content-width, 1200px);
	height: auto !important;
	min-height: 0;
	line-height: 1.65 !important;
	margin: 0 auto;
	padding: 0 16px;
	box-sizing: border-box;
	overflow: visible;
}

.main_title tg,
.main_title .lead,
.main_title .page-lead {
	display: block;
	color: var(--color-muted);
	font-size: 16px;
	font-weight: normal;
	text-align: center;
	line-height: 1.65;
	margin: 0;
	white-space: normal;
	overflow: visible;
}

.main_title .page-lead {
	font-size: 17px;
}

.section1 .boxes {
	clear: both;
	margin-top: 8px;
	position: relative;
	z-index: 1;
}

.section3 .title_tit .lead {
	color: var(--color-muted);
	font-size: 16px;
	font-weight: normal;
	text-align: center;
	line-height: 1.65;
	margin: 0;
}

/* News: reset legacy float/clearfix; 6 items = 3×2 grid */
.home_news_list {
	background: var(--color-page, #f0f4fc);
	margin-top: 34px;
	padding: 40px 16px 32px;
}

.home_news_list .wrap {
	width: 100%;
	max-width: var(--content-width, 1200px);
	margin: 0 auto;
	padding: 0;
	border: 0;
}

.home_news_list_inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
	max-width: var(--content-width, 1200px);
	margin: 0 auto;
}

.home_news_list_inner .c {
	display: none !important;
}

.home_news_item {
	float: none !important;
	width: auto !important;
	height: auto !important;
	min-height: 0;
	margin: 0 !important;
	padding: 18px !important;
	overflow: visible;
	position: relative;
	z-index: 1;
	background: var(--color-surface);
	border: 1px solid var(--color-border) !important;
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-card);
	transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
	box-sizing: border-box;
}

.home_news_item:hover {
	padding: 18px !important;
	margin: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	border-color: var(--color-primary) !important;
	box-shadow: var(--shadow-hover);
}

.home_news_item dl {
	position: static !important;
	top: auto !important;
	display: flex;
	flex-direction: column;
	gap: 10px;
	text-align: left;
	transition: none;
}

.home_news_item:hover dl {
	top: auto !important;
}

.home_news_item dl dt {
	background: none !important;
	padding-top: 0 !important;
	font-size: 13px;
	color: var(--color-primary);
	font-weight: 600;
	text-align: left;
}

.home_news_item dl dd.t {
	margin: 0 !important;
	width: auto !important;
	height: auto !important;
	line-height: 1.45 !important;
	overflow: visible;
}

.home_news_item dl dd.t a {
	display: block;
	text-align: left;
	font-size: 16px;
	font-weight: 600;
	color: var(--color-text);
	line-height: 1.45;
}

.home_news_item:hover dl dd.t a {
	color: var(--color-primary);
}

.home_news_item dl dd.spec {
	width: auto !important;
	overflow: hidden;
}

.home_news_item dl dd.spec a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	text-align: left;
	font-size: 13px;
	line-height: 1.6;
	color: var(--color-muted);
}

.home_news_item:hover dl dd.spec a {
	color: var(--color-muted);
}

.btn_news_more {
	border: 1px solid var(--color-primary) !important;
	border-radius: var(--radius-sm);
	margin: 28px auto 8px;
	width: 140px;
	background: var(--color-surface);
}

.btn_news_more a {
	color: var(--color-primary) !important;
	line-height: 40px;
}

@media (max-width: 980px) {
	.home_news_list_inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
}

@media (max-width: 600px) {
	.home_news_list_inner {
		grid-template-columns: 1fr;
	}
}

.home_partner > img,
.home_partner .partner-showcase-img {
	display: block;
	width: min(100%, var(--content-width));
	height: auto;
	margin: 16px auto 0;
	border-radius: var(--radius-md);
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-card);
}

#slideBox .hd li.on {
	background: var(--color-primary);
}

/* Desktop: 4 product cards in one row (fill 4th column — Bowi AI Agent) */
@media (min-width: 981px) {
	#slideBox.slideBox {
		overflow: visible;
		width: 100%;
	}

	#slideBox .bd {
		overflow: visible;
	}

	#slideBox .bd ul {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 24px;
		width: 100%;
		overflow: visible;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	#slideBox .bd li {
		float: none !important;
		width: auto !important;
		clear: none !important;
	}

	.section1 #slideBox .box,
	.section1 .box.box1,
	.section1 .box.box2,
	.section1 .box.box3,
	.section1 .box.box4 {
		width: 100% !important;
		max-width: none;
		margin-right: 0 !important;
		margin-top: 0 !important;
		float: none !important;
	}

	#slideBox .hd {
		display: none;
	}
}

.section2 .s_tit,
.section3 .s_tit {
	font-weight: 700;
	letter-spacing: 0.03em;
	color: var(--color-text);
}

.box_txt p.product-desc {
	text-align: left;
	padding-top: 10px;
	margin: 0;
	font-size: 13px;
	line-height: 22px;
	color: #444;
}

.section3-flow-img {
	text-align: center;
	margin: 0;
}

.section3-tagline {
	text-align: center;
	color: #7f7f7f;
	font-family: "Microsoft YaHei", "微软雅黑", sans-serif;
	font-size: 18px;
	line-height: 1.8;
	margin: 0 0 0.25em;
}

#ftbox2 .beian-link {
	color: #a1a0a0;
}
