/* site.css */
* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	color: #333;
	background: #fff;
}

body {
	min-width: 320px;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
}

.wrap {
	width: 1200px;
	margin: auto;
}

.top {
	height: 105px;
	background: #fff;
}

.top .wrap {
	height: 105px;
	display: flex;
	align-items: center;
}

.brand {
	width: 250px;
	height: 70px;
	display: flex;
	align-items: center;
}

.brand img {
	width: 118px;
	height: auto;
}

.nav {
	margin-left: auto;
	height: 100%;
	display: flex;
	align-items: center;
}

.nav a {
	height: 105px;
	min-width: 104px;
	padding: 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	transition: 0.2s;
}

.nav a:hover,
.nav a.active {
	color: #f2b900;
	border-bottom: 3px solid #ffd124;
}

.hero {
	height: 820px;
	position: relative;
	overflow: hidden;
	background: #223;
}

.hero-copy {
	position: relative;
	color: white;
	padding-top: 305px;
}

.hero-copy b {
	display: block;
	font-size: 76px;
	letter-spacing: 2px;
}

.hero-copy strong {
	display: block;
	color: #ffd124;
	font-size: 58px;
	margin-top: 5px;
}

.hero-copy span {
	font-size: 23px;
	display: block;
	margin-top: 12px;
}

.section {
	padding: 72px 0;
}

.section-title {
	text-align: center;
	font-size: 36px;
	color: #111;
	margin: 0 0 36px;
}

.section-title:after {
	content: "";
	display: block;
	width: 34px;
	height: 3px;
	background: #ffd124;
	margin: 15px auto 0;
}

.course-tabs,
.category-tabs {
	display: flex;
	justify-content: center;
	gap: 2px;
	margin-bottom: 36px;
}

.course-tabs a,
.category-tabs a {
	background: #f5f5f5;
	padding: 14px 34px;
	font-size: 16px;
}

.course-tabs a:first-child,
.category-tabs a.active,
.course-tabs a:hover,
.category-tabs a:hover {
	background: #ffd124;
}

.cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

.card {
	background: #fff;
	border: 1px solid #eee;
	overflow: hidden;
	transition:
		transform 0.25s,
		box-shadow 0.25s;
}

.card:hover {
	transform: translateY(-7px);
	box-shadow: 0 8px 25px #0002;
}

.card img {
	width: 100%;
	height: 230px;
	object-fit: cover;
}

.card h3 {
	font-size: 20px;
	margin: 20px 22px 10px;
	font-weight: normal;
}

.card p {
	font-size: 14px;
	line-height: 1.8;
	color: #777;
	margin: 0 22px 24px;
	height: 48px;
	overflow: hidden;
}

.more {
	display: inline-block;
	border: 1px solid #444;
	padding: 10px 28px;
	margin-top: 14px;
}

.inner-banner {
	height: 350px;
	position: relative;
	background: center/cover no-repeat;
	color: #fff;
}

.inner-banner:after {
	content: "";
	position: absolute;
	inset: 0;
	background: #0004;
}

.inner-banner .wrap {
	position: relative;
	z-index: 1;
	padding-top: 128px;
}

.inner-banner h1 {
	font-size: 40px;
	margin: 0 0 15px;
	font-weight: normal;
}

.inner-banner p {
	margin: 0;
	font-size: 15px;
}

.page-content {
	padding: 52px 0 80px;
}

.listing {
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.listing .card img {
	height: 240px;
}

.pagination {
	text-align: center;
	margin-top: 42px;
}

.pagination a,
.pagination span {
	display: inline-block;
	margin: 0 4px;
	border: 1px solid #ddd;
	padding: 8px 12px;
	color: #888;
}

.pagination .current {
	background: #ffd124;
	border-color: #ffd124;
	color: #222;
}

.intro {
	display: grid;
	grid-template-columns: 600px 1fr;
	gap: 55px;
	align-items: start;
}

.intro img {
	height: 360px;
	width: 600px;
	object-fit: cover;
}

.intro h2 {
	margin: 0 0 20px;
	font-size: 28px;
	font-weight: normal;
}

.intro h3 {
	font-size: 23px;
	font-weight: normal;
}

.intro p {
	font-size: 15px;
	color: #666;
	line-height: 2.05;
}

.logo-wall {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}

.logo-wall img {
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.detail {
	width: 900px;
	margin: auto;
	padding: 65px 0 90px;
}

.detail h1 {
	font-size: 27px;
	color: #162c5b;
	text-align: center;
	margin: 0 0 15px;
}

.meta {
	text-align: center;
	color: #999;
	border-bottom: 1px solid #eee;
	padding-bottom: 22px;
	font-size: 14px;
}

.detail-lead {
	font-size: 16px;
	margin: 30px 0;
	line-height: 2;
}

.detail-main {
	font-size: 16px;
	color: #555;
	line-height: 2.1;
}

.detail-main img {
	max-width: 600px;
	margin: 25px auto;
}

.prevnext {
	display: flex;
	justify-content: space-between;
	border-top: 1px solid #eee;
	margin-top: 34px;
	padding-top: 22px;
	color: #666;
}

.contact {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	gap: 40px;
}

.map img {
	width: 100%;
	height: 430px;
	object-fit: cover;
}

.form-row {
	margin-bottom: 18px;
}

.form-row label {
	display: block;
	margin-bottom: 8px;
	font-size: 15px;
}

.form-row input,
.form-row textarea {
	width: 100%;
	border: 1px solid #ddd;
	padding: 12px;
	font-size: 15px;
}

.form-row textarea {
	height: 120px;
	resize: vertical;
}

.submit {
	border: 0;
	background: #ffd124;
	padding: 12px 45px;
	cursor: pointer;
	font-size: 16px;
}

.footer {
	background: #222;
	color: #fff;
	padding: 45px 0 25px;
}

.footer .brand img {
	filter: invert(1);
}

.phone {
	font-size: 30px;
	color: #ffd124;
}

.copyright {
	text-align: center;
	color: #ccc;
	font-size: 13px;
	padding-top: 20px;
}

.back-top {
	position: fixed;
	right: 26px;
	bottom: 30px;
	background: #333;
	color: white;
	padding: 12px;
	opacity: 0;
	visibility: hidden;
}

.back-top.show {
	opacity: 1;
	visibility: visible;
}

@media (max-width: 768px) {
	.wrap {
		width: 100%;
		padding-left: 24px;
		padding-right: 24px;
	}

	.top,
	.top .wrap {
		height: auto;
		min-height: 76px;
	}

	.top .wrap {
		display: block;
		padding-top: 12px;
		padding-bottom: 12px;
	}

	.brand {
		height: 40px;
	}

	.brand img {
		width: 92px;
	}

	.nav {
		margin: 8px -10px 0;
		justify-content: flex-start;
		overflow: auto;
		height: auto;
	}

	.nav a {
		height: 34px;
		min-width: max-content;
		padding: 0 10px;
		font-size: 13px;
		border: 0 !important;
	}

	.hero {
		height: 500px;
	}

	.hero-copy {
		padding-top: 185px;
	}

	.hero-copy b {
		font-size: 42px;
	}

	.hero-copy strong {
		font-size: 34px;
	}

	.hero-copy span {
		font-size: 16px;
	}

	.section {
		padding: 45px 0;
	}

	.section-title {
		font-size: 28px;
	}

	.cards,
	.listing {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.course-tabs,
	.category-tabs {
		justify-content: flex-start;
		overflow: auto;
		transition: all 0.3s;
	}

	.course-tabs a,
	.category-tabs a {
		white-space: nowrap;
		padding: 10px 18px;
	}

	.intro,
	.contact {
		grid-template-columns: 1fr;
		gap: 25px;
	}

	.intro img {
		width: 100%;
		height: 260px;
	}

	.inner-banner {
		height: 220px;
	}

	.inner-banner .wrap {
		padding-top: 70px;
	}

	.inner-banner h1 {
		font-size: 30px;
	}

	.logo-wall {
		grid-template-columns: repeat(2, 1fr);
	}

	.detail {
		width: 100%;
		padding: 40px 24px;
	}

	.detail h1 {
		font-size: 23px;
	}

	.phone {
		font-size: 22px;
	}
}

/* Diagonal corner strokes for navigation hover and active states */
.nav a {
	position: relative;
	overflow: visible;
}

.nav a::before,
.nav a::after {
	content: "";
	position: absolute;
	width: 25px;
	height: 2px;
	background: #ffd124;
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.22s ease,
		transform 0.28s ease;
}

.nav a::before {
	top: 15px;
	left: 7px;
	transform: rotate(-45deg) scaleX(0);
	transform-origin: left center;
}

.nav a::after {
	right: 7px;
	bottom: 15px;
	transform: rotate(-45deg) scaleX(0);
	transform-origin: right center;
}

.nav a:hover::before,
.nav a:hover::after,
.nav a.active::before,
.nav a.active::after {
	opacity: 1;
	transform: rotate(-45deg) scaleX(1);
}

.nav a:hover,
.nav a.active {
	border-bottom: 0;
}

@media (max-width: 768px) {
	.top .nav a::before {
		top: 12px;
		left: 10px;
	}

	.top .nav a::after {
		right: 10px;
		bottom: 12px;
	}
}

/* footer.css */
.footer {
	background: #202020;
	color: #fff;
	padding: 46px 0 0;
	overflow: hidden;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1.2fr 1.35fr 1fr 190px;
	gap: 52px;
	padding-bottom: 34px;
}

.footer .brand {
	width: 150px;
	height: auto;
}

.footer .brand img {
	width: 118px;
	filter: invert(1);
}

.footer-brand p {
	max-width: 230px;
	margin: 17px 0 0;
	color: #aaa;
	font-size: 14px;
	line-height: 1.9;
}

.footer h2 {
	margin: 2px 0 18px;
	font-size: 16px;
	font-weight: normal;
	color: #ffd124;
}

.footer-link-grid {
	display: grid;
	grid-template-columns: repeat(2, max-content);
	gap: 12px 28px;
}

.footer-link-grid a,
.footer-contact p {
	color: #c6c6c6;
	font-size: 14px;
	line-height: 1.6;
}

.footer-link-grid a:hover {
	color: #ffd124;
}

.footer-contact p {
	margin: 0 0 10px;
}

.footer-contact .phone {
	display: block;
	margin-top: 2px;
	font-size: 24px;
	color: #ffd124;
	letter-spacing: 0.5px;
}

.footer-qr {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.footer-qr img {
	width: 118px;
	height: 118px;
	background: #fff;
	padding: 7px;
	object-fit: contain;
}

.footer-qr span {
	color: #c6c6c6;
	font-size: 13px;
	white-space: nowrap;
}

.footer .copyright {
	border-top: 1px solid #424242;
	padding: 16px 0 18px;
	color: #999;
	text-align: center;
	font-size: 13px;
}

@media (max-width: 768px) {
	.footer {
		padding-top: 38px;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px 24px;
		padding-bottom: 28px;
	}

	.footer-qr {
		align-items: flex-start;
	}

	.footer-qr img {
		width: 106px;
		height: 106px;
	}

	.footer .copyright {
		text-align: left;
		line-height: 1.7;
	}

	.footer-contact .phone {
		font-size: 20px;
	}
}

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

	.footer-qr {
		align-items: flex-start;
	}

	.footer-link-grid {
		gap: 10px 24px;
	}
}

@media (max-width: 768px) {
	.footer-navigation {
		grid-column: 1 / -1;
	}
}

/* mobile-nav.css */
.menu-toggle {
	display: none;
}

@media (max-width: 768px) {
	.top,
	.top .wrap {
		height: 76px;
		min-height: 76px;
	}

	.top .wrap {
		position: relative;
		display: flex;
		align-items: center;
		padding-top: 0;
		padding-bottom: 0;
	}

	.top .brand {
		height: 44px;
	}

	.top .brand img {
		width: 92px;
	}

	.menu-toggle {
		position: absolute;
		right: 24px;
		top: 18px;
		display: flex;
		width: 40px;
		height: 40px;
		padding: 9px 8px;
		flex-direction: column;
		justify-content: space-between;
		border: 1px solid #ddd;
		background: #fff;
		cursor: pointer;
		z-index: 22;
	}

	.menu-toggle span {
		display: block;
		width: 22px;
		height: 2px;
		background: #222;
		transition:
			transform 0.25s ease,
			opacity 0.25s ease;
	}

	.top.nav-open .menu-toggle span:nth-child(1) {
		transform: translateY(10px) rotate(45deg);
	}

	.top.nav-open .menu-toggle span:nth-child(2) {
		opacity: 0;
	}

	.top.nav-open .menu-toggle span:nth-child(3) {
		transform: translateY(-10px) rotate(-45deg);
	}

	.top .nav {
		position: absolute;
		top: 76px;
		left: 0;
		right: 0;
		z-index: 20;
		display: none;
		margin: 0;
		height: auto;
		flex-direction: column;
		align-items: stretch;
		background: #fff;
		box-shadow: 0 10px 22px rgba(0, 0, 0, 0.14);
	}

	.top.nav-open .nav {
		display: flex;
	}

	.top .nav a {
		width: 100%;
		height: 48px;
		min-width: 0;
		justify-content: flex-start;
		padding: 0 24px;
		border-bottom: 1px solid #eee !important;
		font-size: 15px;
	}

	.top .nav a:last-child {
		border-bottom: 0 !important;
	}

	.top .nav a:hover,
	.top .nav a.active {
		color: #f2b900;
		background: #fffdf4;
	}
}

/* inner-banner.css */
.inner-banner {
	display: flex;
	align-items: center;
}

.inner-banner .wrap {
	margin: 0 auto;
	padding-top: 0;
}

@media (max-width: 768px) {
	.inner-banner .wrap {
		padding-top: 0;
	}
}

/* home-extra.css */
.capabilities {
	padding: 42px 0;
	background: #fff;
}

.capability-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	text-align: center;
}

.capability {
	border-right: 1px solid #ddd;
	padding: 12px 20px;
}

.capability:last-child {
	border: 0;
}

.capability img {
	width: 64px;
	height: 64px;
	object-fit: contain;
	margin: 0 auto;
}

.capability h2 {
	font-size: 24px;
	font-weight: normal;
	margin: 8px 0;
	color: #434343;
}

.capability p {
	font-size: 14px;
	color: #777;
	margin: 0;
}

.company-panel {
	background: #252525;
	color: #ddd;
	padding: 100px 0;
}

.company-panel .wrap {
	display: grid;
	grid-template-columns: 560px 1fr;
	gap: 82px;
	align-items: center;
}

.company-panel img {
	width: 560px;
	height: 480px;
	object-fit: cover;
}

.company-copy h2 {
	font-size: 36px;
	color: #fff;
	text-align: center;
	font-weight: normal;
	margin: 0 0 38px;
}

.company-copy p {
	line-height: 2.1;
	font-size: 14px;
}

.base-pair {
	padding: 80px 0;
}

.base-pair .wrap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 84px;
	align-items: center;
}

.base-pair img {
	width: 560px;
	height: 480px;
	object-fit: cover;
}

.base-pair h2 {
	font-size: 23px;
	font-weight: normal;
	margin: 0 0 16px;
}

.tag {
	display: inline-block;
	background: #ffd124;
	color: #fff;
	padding: 6px 12px;
	font-size: 14px;
	margin-bottom: 16px;
}

.base-pair p {
	line-height: 2;
	font-size: 14px;
}

.base-pair.reverse {
	background: #f7f7f7;
}

.customer-wall {
	padding: 78px 0;
}

.customer-wall h2 {
	text-align: center;
	font-size: 36px;
	font-weight: normal;
	margin: 0 0 42px;
}

.customers {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 30px;
}

.customers img {
	width: 200px;
	height: 100px;
	object-fit: contain;
}
/* 分页容器整体布局 */
.pagination.page {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	/* 按钮之间的间距 */
	list-style: none;
	padding: 0;
	margin: 0;
	font-family: sans-serif;
}

/* 所有按钮/页码通用样式 */
.pagination.page > * {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	padding: 9px 17px;
	border: 2px solid #ddd;
	border-radius: 8px;
	background-color: #fff;
	color: #333;
	font-size: var(--ft16);
	text-decoration: none;
	cursor: pointer;
	transition: all 0.2s ease;
	box-sizing: border-box;
}

/* 数字页码单独调整宽度 */
.pagination.page .page-number {
	padding: 9px 17px;
}

/* 当前激活页（蓝色背景、白色文字） */
.pagination.page .active.page-number {
	background-color: #ffd124;
	border-color: #ffd124;
	color: #fff;
}

/* 隐藏 SVG 箭头图标，替换为文字 */
.pagination.page .prev-page svg,
.pagination.page .next-page svg {
	display: none;
}

/* 给上一页/下一页加上文字 */
.pagination.page .prev-page::before {
	content: "上一页";
}

.pagination.page .next-page::after {
	content: "下一页";
}

/* 省略号样式（如果后续要加） */
.pagination.page .ellipsis {
	border: none;
	background: transparent;
	cursor: default;
}

/*  hover 交互效果 */
.pagination.page > *:hover:not(.active.page-number):not(.ellipsis) {
	border-color: #ffd124;
	color: #ffd124;
}
@media (max-width: 768px) {
	.capability-grid {
		grid-template-columns: repeat(2, 1fr);
		row-gap: 24px;
	}

	.capability:nth-child(2) {
		border-right: 0;
	}

	.company-panel .wrap,
	.base-pair .wrap {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.company-panel {
		padding: 55px 0;
	}

	.company-panel img,
	.base-pair img {
		width: 100%;
		height: 280px;
	}

	.base-pair {
		padding: 50px 0;
	}

	.customers {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.customers img {
		width: 100%;
		height: auto;
	}
}

/* home-polish.css */
.home-page {
	background: #fff;
	color: #2b2b2b;
}

.home-page .hero-swiper .swiper-slide {
	position: relative;
}

.home-page .hero-swiper .swiper-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgba(8, 20, 28, 0.76) 0%,
		rgba(8, 20, 28, 0.38) 34%,
		rgba(8, 20, 28, 0.08) 70%,
		rgba(8, 20, 28, 0.2) 100%
	);
}

.home-page .hero-copy {
	z-index: 3;
	max-width: 1200px;
	text-shadow: 0 3px 18px rgba(0, 0, 0, 0.4);
}

.home-page .hero-copy b {
	font-weight: 500;
	letter-spacing: 7px;
	line-height: 1.05;
}

.home-page .hero-copy strong {
	line-height: 1.18;
	text-shadow: 0 4px 20px rgba(0, 0, 0, 0.32);
}

.home-page .hero-copy span {
	max-width: 520px;
	padding-left: 16px;
	border-left: 3px solid #ffd124;
	line-height: 1.55;
}

.home-page .hero-swiper .swiper-pagination {
	z-index: 4;
	bottom: 34px;
}

.home-page .hero-swiper .swiper-button-prev,
.home-page .hero-swiper .swiper-button-next {
	z-index: 4;
	transition:
		transform 0.25s ease,
		color 0.25s ease;
}

.home-page .hero-swiper .swiper-button-prev:hover {
	transform: translateX(-4px);
	color: #ffd124;
}

.home-page .hero-swiper .swiper-button-next:hover {
	transform: translateX(4px);
	color: #ffd124;
}

.home-page .capabilities {
	border-bottom: 1px solid #ececec;
	padding: 48px 0 46px;
}

.home-page .capability {
	position: relative;
	min-height: 134px;
	padding: 10px 24px;
	transition:
		transform 0.3s ease,
		background-color 0.3s ease;
}

.home-page .capability:hover {
	transform: translateY(-5px);
	background: #fffdf4;
}

.home-page .capability h2 {
	letter-spacing: 1px;
}

.home-page .capability p {
	line-height: 1.7;
}

.home-page .section {
	position: relative;
}

.home-page .section-title {
	letter-spacing: 2px;
	font-weight: 400;
}

.home-page .section-title:after,
.home-page .customer-wall h2:after,
.home-page .photo-wall h2:after {
	height: 3px;
	box-shadow: 14px 0 0 -1px #183c68;
}

.home-page .course-tabs {
	position: relative;
	gap: 0;
	margin-bottom: 42px;
}

.home-page .course-tabs button {
	min-width: 132px;
	border-top: 1px solid #e7e7e7;
	border-bottom: 1px solid #e7e7e7;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		transform 0.25s ease;
}

.home-page .course-tabs button:first-child {
	border-left: 1px solid #e7e7e7;
}

.home-page .course-tabs button:last-child {
	border-right: 1px solid #e7e7e7;
}

.home-page .course-tabs button:hover {
	color: #1b2f47;
	transform: translateY(-2px);
}

.home-page .course-panel .card {
	box-shadow: 0 9px 24px rgba(16, 45, 77, 0.08);
}

.home-page .course-panel .card img,
.home-page .cards:not(.course-panel) .card img {
	transition:
		filter 0.3s ease,
		transform 0.45s ease;
}

.home-page .course-panel .card:hover img,
.home-page .cards:not(.course-panel) .card:hover img {
	filter: saturate(1.08) contrast(1.03);
	transform: scale(1.025);
}

.home-page .company-panel {
	position: relative;
	overflow: hidden;
	background: linear-gradient(108deg, #202020 0%, #292929 62%, #202020 100%);
}

.home-page .company-panel::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 42%;
	height: 4px;
	background: #ffd124;
}

.home-page .company-panel img {
	box-shadow: 18px 18px 0 rgba(255, 209, 36, 0.16);
}

.home-page .company-copy {
	max-width: 490px;
}

.home-page .company-copy h2 {
	text-align: left;
	letter-spacing: 2px;
}

.home-page .company-copy h2::after {
	content: "";
	display: block;
	width: 42px;
	height: 3px;
	margin-top: 16px;
	background: #ffd124;
}

.home-page .company-copy p {
	color: #c8c8c8;
}

.home-page .company-copy .more {
	border-color: #ffd124;
	color: #ffd124;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		transform 0.25s ease;
}

.home-page .company-copy .more:hover {
	background: #ffd124;
	color: #202020;
	transform: translateY(-3px);
}

.home-page .base-pair {
	position: relative;
}

.home-page .base-pair:not(.reverse) {
	background: #fff;
}

.home-page .base-pair.reverse {
	background: #f7f7f5;
}

.home-page .base-pair img {
	box-shadow: 14px 14px 0 rgba(24, 60, 104, 0.1);
}

.home-page .base-pair.reverse img {
	box-shadow: -14px 14px 0 rgba(255, 209, 36, 0.18);
}

.home-page .base-pair h2 {
	letter-spacing: 1px;
	margin-bottom: 20px;
}

.home-page .base-pair p {
	color: #666;
	max-width: 460px;
	line-height: 1.7;
	font-size: 14px;
	margin: 0px 0px 34px;
	white-space: pre-wrap;
	overflow-wrap: break-word;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 5;
	line-clamp: 5;
	-webkit-box-orient: vertical;
}

.home-page .tag {
	letter-spacing: 1px;
	padding: 6px 12px;
	font-size: 14px;
	margin: 16px 0px;
}

.home-page .customer-wall {
	border-top: 1px solid #ececec;
	background: #fbfbf8;
}

.home-page .customer-wall h2,
.home-page .photo-wall h2 {
	letter-spacing: 2px;
}

.home-page .customers {
	align-items: center;
	padding: 6px 0;
}

.home-page .customers img {
	transition:
		opacity 0.25s ease,
		transform 0.25s ease;
}

.home-page .customers img:hover {
	opacity: 0.72;
	transform: scale(1.04);
}

.home-page .photo-wall {
	border-top: 1px solid #e9e9e9;
}

.home-page .drift-card {
	box-shadow: 0 14px 28px rgba(17, 36, 53, 0.14);
	transition:
		transform 0.35s ease,
		box-shadow 0.35s ease;
}

.home-page .drift-card:hover {
	transform: translateY(-8px) rotate(-1deg);
	box-shadow: 0 20px 34px rgba(17, 36, 53, 0.2);
}

.home-page .drift-card:nth-child(even):hover {
	transform: translateY(-8px) rotate(1deg);
}

@media (max-width: 768px) {
	.home-page .hero-copy {
		padding-top: 175px;
	}

	.home-page .hero-copy b {
		font-size: 40px;
		letter-spacing: 4px;
	}

	.home-page .hero-copy strong {
		font-size: 33px;
	}

	.home-page .hero-copy span {
		max-width: calc(100% - 18px);
		font-size: 15px;
	}

	.home-page .capability {
		min-height: 126px;
		padding-left: 12px;
		padding-right: 12px;
	}

	.home-page .course-tabs {
		margin-bottom: 30px;
	}

	.home-page .course-tabs button {
		min-width: 118px;
	}

	.home-page .company-copy {
		max-width: none;
	}

	.home-page .company-copy h2 {
		text-align: center;
	}

	.home-page .company-copy h2::after {
		margin-left: auto;
		margin-right: auto;
	}

	.home-page .base-pair img,
	.home-page .base-pair.reverse img {
		box-shadow: 8px 8px 0 rgba(24, 60, 104, 0.1);
	}
}

/* Compact banner layout with per-slide messaging */
.home-page .hero-swiper {
	height: 640px;
}

.home-page .hero-swiper .slide-copy b,
.home-page .hero-swiper .slide-copy strong,
.home-page .hero-swiper .slide-copy span {
	position: relative;
	z-index: 1;
}

.home-page .hero-swiper .swiper-slide:not(.swiper-slide-active) .slide-copy {
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.25s ease,
		visibility 0.25s ease;
}

@media (max-width: 768px) {
	.home-page .hero-swiper {
		height: 420px;
	}

	.home-page .hero-swiper .slide-copy {
		left: 0;
		width: 100%;
		max-width: none;
		padding-left: 24px;
		padding-right: 24px;
		transform: none;
	}

	.home-page .hero-swiper .slide-copy b {
		font-size: 14px;
		margin-bottom: 10px;
	}

	.home-page .hero-swiper .slide-copy strong {
		font-size: 23px;
	}

	.home-page .hero-swiper .slide-copy span {
		font-size: 11px;
		max-width: calc(100% - 18px);
	}
}

/* interactions.css */
.hero-swiper {
	height: 820px;
}

.hero-swiper .swiper-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-swiper .swiper-pagination-bullet {
	width: 32px;
	height: 3px;
	border-radius: 0;
	background: #fff;
	opacity: 0.7;
}

.hero-swiper .swiper-pagination-bullet-active {
	background: #ffd124;
	opacity: 1;
}

.hero-swiper .swiper-button-next,
.hero-swiper .swiper-button-prev {
	color: #fff;
}

.course-tabs button {
	background: #f5f5f5;
	border: 0;
	padding: 14px 34px;
	font-size: 16px;
	cursor: pointer;
	white-space: nowrap;
}

.course-tabs button.active,
.course-tabs button:hover {
	background: #ffd124;
}

.course-panel {
	display: none;
}

.course-panel.active {
	display: grid;
	animation: tab-in 0.42s both;
}

@keyframes tab-in {
	from {
		opacity: 0;
		transform: translateY(14px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

.card {
	position: relative;
	z-index: 0;
	overflow: visible;
	isolation: isolate;
	transform-style: preserve-3d;
	transition:
		transform 0.28s ease,
		box-shadow 0.28s ease;
}

.card:before {
	content: "";
	position: absolute;
	inset: 10px -10px -10px 10px;
	background: #ffd124;
	z-index: -2;
	opacity: 0;
	transform: skewY(-3deg) translate3d(-8px, 8px, 0);
	transition:
		opacity 0.25s,
		transform 0.28s;
}

.card:after {
	content: "";
	position: absolute;
	inset: -2px;
	z-index: -1;
	opacity: 0;
	border: 2px solid transparent;
	border-image: linear-gradient(
			130deg,
			#ffd124 0 24%,
			#183c68 24% 52%,
			#ffd124 52% 76%,
			#183c68 76%
		)
		1;
	transform: scale(0.92) rotate(-2deg);
	transition:
		opacity 0.18s,
		transform 0.28s;
}

.card:hover,
.card.card-hover {
	transform: perspective(850px) rotateX(var(--tilt-y, 2deg))
		rotateY(var(--tilt-x, -3deg)) translateY(-10px);
	box-shadow: 12px 18px 0 #102d4d22;
}

.card:hover:before,
.card.card-hover:before {
	opacity: 1;
	transform: skewY(-3deg) translate3d(0, 0, 0);
}

.card:hover:after,
.card.card-hover:after {
	opacity: 1;
	transform: scale(1) rotate(0);
}

.card img,
.card h3,
.card p {
	position: relative;
	z-index: 1;
}

.photo-wall {
	padding: 78px 0;
	background: #f5f5f5;
	overflow: hidden;
}

.photo-wall h2 {
	text-align: center;
	font-size: 36px;
	font-weight: normal;
	margin: 0 0 42px;
}

.drift-viewport {
	overflow: hidden;
}

.drift-track {
	display: flex;
	gap: 22px;
	width: max-content;
	animation: drift 34s linear infinite;
}

.drift-track:hover {
	animation-play-state: paused;
}

.drift-card {
	width: 360px;
	height: 270px;
	position: relative;
	overflow: hidden;
	flex: none;
}

.drift-card:nth-child(even) {
	margin-top: 34px;
}

.drift-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.drift-card span {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 13px 16px;
	color: #fff;
	font-size: 16px;
	background: linear-gradient(transparent, #000b);
}

@keyframes drift {
	to {
		transform: translateX(-50%);
	}
}

@media (max-width: 768px) {
	.hero-swiper {
		height: 500px;
	}

	.hero-swiper .swiper-button-next,
	.hero-swiper .swiper-button-prev {
		display: none;
	}

	.course-tabs {
		justify-content: flex-start;
		overflow: auto;
	}

	.course-tabs button {
		padding: 10px 18px;
		font-size: 14px;
	}

	.drift-card {
		width: 280px;
		height: 220px;
	}

	.photo-wall {
		padding: 50px 0;
	}

	.card:before,
	.card:after {
		display: none;
	}
}

.home-page .reveal-item {
	opacity: 0;
	transform: translateY(26px);
	transition:
		opacity 0.72s cubic-bezier(0.22, 0.61, 0.36, 1),
		transform 0.72s cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--reveal-delay, 0ms);
}

.home-page .reveal-item.is-visible {
	opacity: 1;
	transform: none;
}

.home-page .hero-copy .reveal-item {
	transform: translateX(-24px);
	transition-duration: 0.85s;
}

.home-page .hero-copy .reveal-item.is-visible {
	transform: none;
}

.home-page .reveal-item.reveal-image {
	will-change: opacity, transform;
}

.home-page .footer .reveal-item {
	transition-duration: 0.6s;
}

.home-page:not(.reveal-ready) .reveal-item {
	opacity: 1;
	transform: none;
}

.home-page.reveal-ready .reveal-item {
	opacity: 0;
	transform: translateY(26px);
	transition:
		opacity 0.72s cubic-bezier(0.22, 0.61, 0.36, 1),
		transform 0.72s cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--reveal-delay, 0ms);
}

.home-page.reveal-ready .reveal-item.is-visible {
	opacity: 1;
	transform: none;
}

.home-page.reveal-ready .hero-copy .reveal-item {
	transform: translateX(-24px);
	transition-duration: 0.85s;
}

.home-page.reveal-ready .hero-copy .reveal-item.is-visible {
	transform: none;
}

.home-page.reveal-ready .reveal-item.reveal-image {
	will-change: opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
	.home-page.reveal-ready .reveal-item,
	.home-page.reveal-ready .hero-copy .reveal-item {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

.home-page.reveal-ready .top .reveal-item {
	transform: translateY(-14px);
	transition-duration: 0.58s;
}

.home-page.reveal-ready .top .reveal-item.is-visible {
	transform: none;
}

.home-page.reveal-ready .hero-swiper .swiper-slide img.reveal-item {
	transition-duration: 1.05s;
}

.home-page.reveal-ready
	.hero-swiper
	.swiper-slide-active
	img.reveal-item.is-visible {
	animation: hero-image-enter 1.15s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

@keyframes hero-image-enter {
	from {
		opacity: 0.3;
		transform: scale(1.055);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

.home-page.reveal-ready .hero-swiper > .reveal-item {
	transform: translateY(10px);
	transition-duration: 0.55s;
}

.home-page.reveal-ready .hero-swiper > .reveal-item.is-visible {
	transform: none;
}

.home-page.reveal-ready .capability .reveal-item,
.home-page.reveal-ready .course-tabs .reveal-item,
.home-page.reveal-ready .customers .reveal-item {
	transition-duration: 0.62s;
}

.home-page.reveal-ready .drift-card .reveal-item {
	transform: translateY(18px);
	transition-duration: 0.65s;
}

.home-page.reveal-ready .drift-card .reveal-item.is-visible {
	transform: none;
}

@keyframes hero-image-enter {
	from {
		opacity: 0.3;
		transform: scale(1.055);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

/* logo-loop.css */
.customer-wall {
	overflow: hidden;
}

.customer-wall .customers {
	display: flex;
	width: max-content;
	gap: 30px;
	animation: logo-loop 12s linear infinite alternate;
}

.customer-wall .customers:hover {
	animation-play-state: paused;
}

.customer-wall .customers img {
	width: 200px;
	height: 100px;
	flex: 0 0 200px;
	object-fit: contain;
}

.customer-wall .customers img:hover {
	transform: scale(1.04);
}

@keyframes logo-loop {
	to {
		transform: translateX(-360px);
	}
}

@media (max-width: 768px) {
	.customer-wall .customers {
		gap: 18px;
		animation-duration: 9s;
	}

	.customer-wall .customers img {
		width: 140px;
		height: 70px;
		flex-basis: 140px;
	}
}
.home-page .hero-swiper .swiper-slide-active .slide-copy {
	opacity: 1;
	visibility: visible;
	transition:
		opacity 0.35s ease,
		visibility 0.35s ease;
}
.home-page .hero-swiper .slide-copy {
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	z-index: 3;
	width: 1200px;
	max-width: 100%;
	height: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding-top: 0;
	transform: translateX(-50%);
	pointer-events: none;
}
