@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700;900&display=swap');

:root {
	--c-orange: #ff6100;
	--c-orange-10: #ffefe6;
	--c-black: #000000;
	--c-gray: #e0e0e0;
	--c-green: #BBDAAC;
	--c-blue: #AEDCE7;
	--c-white: #ffffff;
}

* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}

img {
	max-width: 100%;
	vertical-align: middle;
}

hr {
	border: none;
	border-top: 1px solid #C0C0C0;
	margin: 20px 0;
}

html {
	scroll-behavior: smooth;
}

body {
	font-size: 16px;
	color: var(--c-black);
	font-family: 'Noto Sans TC', Arial, Helvetica, sans-serif, "微軟正黑體";
	min-height: 100dvh;
}

.button {
	all: unset;
	display: inline-block;
	width: fit-content;
	margin: 0 auto;
	border: 1px solid var(--c-orange);
	background-color: var(--c-orange);
	color: var(--c-white);
	font-size: 18px;
	font-weight: 400;
	border-radius: 100vw;
	padding: 8px 35px;
	cursor: pointer;
	transition: all 0.3s ease;

	&:hover {
		background-color: var(--c-white);
		color: var(--c-orange);
	}

	&.white {
		border: 1px solid var(--c-white);
		background-color: transparent;
		color: var(--c-white);

		&:hover {
			background-color: var(--c-white);
			color: var(--c-orange);
		}
	}

	&.black {
		border: 1px solid var(--c-black);
		background-color: var(--c-black);
		color: var(--c-white);

		&:hover {
			background-color: var(--c-white);
			color: var(--c-black);
		}
	}

	&.large {
		padding: 12px 55px;
	}

	&.center {
		width: fit-content;
		display: block;
		text-align: center;
		margin: 0 auto;
	}

	&.arrow {
		position: relative;
		display: flex;
		align-items: center;
		margin: 0 auto 40px 40px;

		&:hover {
			&::after {
				transform: translateX(5px);
				transition: transform 0.3s ease;
				filter: invert(1)
			}
		}


		&::after {
			content: "";
			background-image: url('../../images/2025/arrow.svg');
			background-size: contain;
			background-repeat: no-repeat;
			width: 43px;
			height: 12px;
			margin-inline-start: 15px;
		}
	}
}

a {
	&[orange] {
		color: var(--c-orange) !important;

		&:hover {
			text-decoration: underline;
		}
	}
}

#header {
	background-color: var(--c-white);
	display: flex;
	position: sticky;
	top: 0;
	width: 100%;
	justify-content: space-between;
	align-items: center;
	padding: 15px 25px;
	z-index: 1000;

	.logo {
		width: auto;
		height: 34px;

		@media screen and (max-width: 960px) {
			height: 28px;
			padding-inline-start: 40px;
		}
	}

	#nav {

		@media screen and (max-width: 960px) {
			position: fixed;
			top: 0;
			left: 0;
			width: 85%;
			max-width: 320px;
			height: 100dvh;
			background-color: var(--c-white);
			padding: 100px 20px 20px 20px;
			z-index: 1000;
			transform: translateX(-100%);
			transition: transform 0.35s ease;
			will-change: transform;
			box-shadow: 2px 0 12px rgba(0, 0, 0, 0.25);
			z-index: 1100;

			&.active {
				transform: translateX(0);
			}
		}

		ul {
			list-style-type: none;
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-end;
			gap: 15px;

			@media screen and (max-width: 960px) {
				width: fit-content;
				margin: 0 auto;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				gap: 30px;

				&.show {
					display: flex;
				}
			}

			li {
				@media screen and (max-width: 960px) {
					width: 100%;
					text-align: center;
					border-bottom: 1px solid var(--c-orange);
					padding: 5px;
				}

				a {
					font-size: 17px;
					font-weight: 400;
					color: var(--c-black);
					text-decoration: none;

					&:hover {
						color: var(--c-orange);
					}
				}
			}
		}
	}

	#navButton {
		display: none;
		width: 32px;
		height: 36px;
		cursor: pointer;
		align-items: center;
		justify-content: center;

		.toggle {
			display: block;
			width: 24px;
			height: 24px;
			position: relative;
		}

		.bars,
		.bars::before,
		.bars::after {
			content: "";
			display: block;
			position: absolute;
			left: 0;
			right: 0;
			margin: 0 auto;
			width: 100%;
			height: 2px;
			background-color: var(--c-black);
			border-radius: 2px;
			transition: transform 0.25s ease, opacity 0.25s ease;
			transform-origin: center;
		}

		.bars {
			top: 50%;
			transform: translateY(-50%);
		}

		.bars::before {
			top: -8px;
		}

		.bars::after {
			top: 8px;
		}

		/* Open -> X */
		&.open .bars {
			background-color: transparent;
		}

		&.open .bars::before {
			top: 50%;
			transform: translateY(-50%) rotate(45deg);
		}

		&.open .bars::after {
			top: 50%;
			transform: translateY(-50%) rotate(-45deg);
		}

		@media screen and (max-width: 960px) {
			display: flex;
			position: absolute;
			left: 20px;
			top: 50%;
			transform: translateY(-50%);
			z-index: 1101;
		}

		/* Shift logo to the right to make space for the button */
		@media screen and (max-width: 960px) {
			.logo {
				margin-left: 60px;
			}
		}
	}
}

#banner {
	width: 100%;
	background-color: var(--c-orange);
	display: grid;
	grid-template-columns: 2fr 3fr;
	align-items: center;
	padding: 64px 0;
	gap: 48px;

	@media screen and (max-width: 768px) {
		grid-template-columns: 1fr;
		text-align: center;
		padding: 30px 20px;
		gap: 30px;
	}

	img {
		justify-self: end;

		@media screen and (max-width: 768px) {
			max-width: 250px;
			margin: 0 auto;
		}
	}

	.inner {
		color: var(--c-white);

		h1 {
			color: var(--c-white) !important;
			font-size: clamp(24px, 4.5vw, 50px);
			line-height: 1.25;
			font-weight: 700;
			margin-block-end: 15px;

			@media screen and (max-width: 768px) {
				order: -1;
			}
		}

		h2 {
			font-size: clamp(24px, 5vw, 55px);
			line-height: 1.25;
			font-weight: 700;
			margin-block-end: 15px;
		}

		p {
			width: min(100%, 440px);
			font-size: clamp(16px, 2.5vw, 20px);
			font-weight: 500;
			line-height: 1.75;
			margin-block-end: 30px;
		}

		@media screen and (max-width: 768px) {
			order: -1;
		}
	}
}

.index {
	#page-wrapper {
		background-color: var(--c-white);
	}
}

#page-wrapper {
	background-color: #efefef;
}

#main {
	background-color: var(--c-white);
	width: min(100%, 920px);
	margin: 40px auto;
	padding: 40px 40px 40px;
	border-radius: 25px;


	h2 {
		font-size: clamp(18px, 3vw, 26px);
		line-height: 1.5;
		margin-bottom: 20px;
		color: #FF6100;
		font-weight: 700;
		padding-top: 20px;
		display: flex;
		align-items: flex-start;

		@media screen and (max-width: 768px) {
			font-size: 22px;
		}

		&::before {
			content: "";
			background-image: url('../../images/2025/icon.svg');
			background-size: contain;
			background-repeat: no-repeat;
			width: 28px;
			height: 28px;
			margin-inline-end: 8px;
			vertical-align: middle;
			transform: translateY(7px);

			@media screen and (max-width: 768px) {
				width: 24px;
				height: 24px;
			}
		}
	}

	p {
		font-size: clamp(16px, 2.5vw, 18px);
		line-height: 1.875;
		margin-inline: 35px 0;
		margin-block: 0 20px;
	}

	.wrapper.style2 {
		background-color: #202020;
		color: var(--c-white);
		border-radius: 30px;
		padding: 0 0 40px;
		margin: 0 30px;

		img {
			width: 100%;
			border-radius: 30px 30px 0 0;
		}

		h2 {
			color: var(--c-white);
			padding-inline: 35px;

			&::before {
				display: none;
			}
		}

		p {
			padding-inline: 0 35px;
			margin-block-end: 40px;
		}
	}

	.major {
		margin-block-end: 40px;

		h2 {
			margin-block-end: 0px;
		}

		h3 {
			font-size: clamp(20px, 3vw, 26px);
			font-weight: 300;
			margin-inline-start: 36px;
		}
	}

	.style3 {
		.row {
			display: grid;
			grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
			gap: 50px;
			margin: 0 40px;

			section {
				img {
					width: 100%;
					aspect-ratio: 2/1;
					object-fit: cover;
					border-radius: 20px;
				}

				h3 {
					font-size: clamp(18px, 2.5vw, 22px);
					margin-block: 15px 10px;
					font-weight: 500;
					text-align: center;
				}

				p {
					font-size: 16px;
					line-height: 1.75;
					margin: 0 auto
				}
			}
		}
	}

	.button.more {
		display: block;
		margin: 140px auto 0;
		width: fit-content;
	}

	.featured {
		img {
			width: 100%;
			border-radius: 25px;
			margin-block-end: 40px;
		}
	}

	header {
		ol {
			margin-block: 20px 30px;
			padding-inline-start: 30px;
			list-style-type: decimal;

			li {
				font-size: 18px;
				line-height: 2;
				font-weight: 500;
				color: #333;

				a {
					color: #333;

					&:hover {
						color: var(--c-orange);
					}
				}

			}
		}

		h3 {
			font-size: clamp(18px, 2.5vw, 22px);
			font-weight: 500;
			margin-block: 15px 10px;
			padding-inline: 35px 20px;
		}

		&+p {
			color: #333;
			font-size: 16px;

			a {
				color: #333;

				&:hover {
					color: var(--c-orange);
				}
			}
		}
	}
}

#cta {
	background-color: var(--c-black);
	background-image: url(../../images/2025/home-banner.png);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	width: 100%;
	color: var(--c-white);
	text-align: center;
	padding: 100px 20px 100px;

	h2 {
		font-size: clamp(20px, 3.5vw, 28px);
		line-height: 1.5;
		font-weight: 700;
		padding: 60px 20px 20px 20px;
	}

	p {
		font-size: clamp(16px, 2.5vw, 20px);
		line-height: 1.75;
		padding: 0 20px 40px 20px;
	}
}

#footer {
	background-color: #E1E1E1;
	padding: 50px 10px 20px;

	.row {
		all: reset;
		width: min(100%, 680px);
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: flex-start;
		gap: 40px;

		&::before,
		&::after {
			display: none;
		}

		.logo {
			width: auto;
			height: 36px;

			@media screen and (max-width: 768px) {
				height: 24px;
			}
		}

		p {
			font-size: 14px;
			line-height: 1.75;
			padding: 0 15px;
			width: fit-content;

			a {
				color: var(--c-black);
				text-decoration: underline;

				&:hover {
					color: var(--c-orange);
				}
			}
		}
	}
}