﻿
:root {
	--primary-color: #0f172a;
	--accent-color: #2563eb;
	--bg-color: #f8fafc;
	--border-color: #e2e8f0;
	--text-main: #334155;
	--text-muted: #64748b;
	--success-color: #16a34a;
}

a {
	text-decoration: none;
}

body {
	background-color: var(--bg-color);
	font-family: sans-serif;
	color: var(--text-main);
	margin: 0;
	/* padding: 40px 20px; */
}

.checkout-container {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	gap: 30px;
	align-items: flex-start;
	padding: 0 30px;
}

.checkout-main {
	flex: 1;
}

.checkout-sidebar {
	width: 360px;
	position: sticky;
	top: 20px;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.checkout-section {
	background: #ffffff;
	border-radius: 12px;
	padding: 24px;
	margin-bottom: 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}

.plans-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}

.plan-card {
	border: 1px solid var(--border-color);
	border-radius: 8px;
	padding: 20px;
	position: relative;
	cursor: pointer;
	background: #fff;
	transition: all 0.2s;
}

	.plan-card.active {
		border-color: var(--accent-color);
		background-color: #f0f5ff;
		box-shadow: 0 0 0 1px var(--accent-color);
	}

	.plan-card h2 {
		margin: 0 0 6px 0;
		font-size: 20px;
	}

	.plan-card h3 {
		margin: 0 0 10px 0;
		color: gray;
	}

	.plan-card .price {
		font-size: 1.3rem;
		font-weight: 700;
		color: var(--accent-color);
		margin-bottom: 4px;
	}

	.plan-card .maintain-fee {
		font-size: 0.8rem;
		color: var(--text-muted);
		margin-bottom: 12px;
	}

.badge-checked {
	position: absolute;
	top: -8px;
	right: -8px;
	background: var(--accent-color);
	color: white;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: none;
	align-items: center;
	justify-content: center;
	font-size: 0.75rem;
}

.plan-card.active .badge-checked {
	display: flex;
}

.addon-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.addon-item {
	display: flex;
	align-items: center;
	padding: 16px;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	gap: 16px;
	background: #fff;
}

.addon-info {
	flex: 1;
}

.addon-price {
	font-weight: 600;
}

.form-card {
	border: 1px solid var(--border-color);
	border-radius: 8px;
	padding: 20px;
}

	.form-card h3 {
		margin-top: 0;
		margin-bottom: 20px;
		font-size: 1.05rem;
	}

.form-group {
	margin-bottom: 16px;
}

	.form-group label {
		display: block;
		font-size: 0.9rem;
		font-weight: 500;
		margin-bottom: 6px;
	}

		.form-group label.required::after {
			content: " *";
			color: #ef4444;
		}

.form-control {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 14px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	font-size: 0.95rem;
}

	.form-control:focus {
		outline: none;
		border-color: var(--accent-color);
	}

.form-help {
	display: block;
	margin-top: 4px;
	color: var(--text-muted);
	font-size: 0.8rem;
}

.form-control-inline {
	padding: 8px 12px;
	border: 1px solid var(--border-color);
	border-radius: 6px;
	font-size: 0.95rem;
	outline: none;
	cursor: pointer;
}

.summary-card {
	background: #fff;
	border-radius: 12px;
	padding: 24px;
	border: 1px solid var(--border-color);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.promo-badge-top {
	background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
	border: 1px solid #fde68a;
	color: #b45309;
	padding: 10px;
	border-radius: 6px;
	text-align: center;
	font-size: 0.85rem;
	font-weight: 600;
	margin-bottom: 16px;
}

.summary-details {
	margin-top: 20px;
}

.detail-item {
	display: flex;
	justify-content: space-between;
	font-size: 0.9rem;
	margin-bottom: 10px;
}

.summary-divider {
	border: 0;
	border-top: 1px dashed var(--border-color);
	margin: 16px 0;
}

.summary-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 16px;
	font-weight: 700;
}

.total-price {
	font-size: 1.5rem;
	color: #ef4444;
}

.text-danger-discount {
	color: #ef4444;
	font-weight: 600;
}

.text-muted {
	color: #94a3b8;
	font-size: 0.85rem;
}

.text-muted-info {
	color: #64748b;
	font-size: 0.8rem;
}

.btn-submit {
	width: 100%;
	background: var(--accent-color);
	color: #fff;
	border: none;
	padding: 14px;
	border-radius: 6px;
	font-weight: 600;
	cursor: pointer;
	margin-top: 20px;
}

.guarantee {
	text-align: center;
	font-size: 0.8rem;
	color: #ef4444;
	margin-top: 12px;
	font-weight: 500;
}

.info-icon {
	display: inline-flex;
	width: 14px;
	height: 14px;
	background: var(--border-color);
	font-size: 0.7rem;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	font-style: normal;
	color: var(--text-muted);
}

.select-wrapper {
	text-align: center;
}

	.select-wrapper .sws {
		font-size: 12px;
		margin-bottom: 5px;
		color: #ff6b6b;
	}

/* 外部結帳確認區塊 */
.checkout-card {
	background-color: #ffffff;
	padding: 20px;
	border-radius: 12px;
	border: 1px solid var(--border-color);
	margin-top: 25px;
}

.checkout-title {
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 20px;
	border-bottom: 1px solid #e5e7eb;
	margin-top: 0;
	padding-bottom: 10px;
	font-size: 1.05rem;
}

.checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* 預設禁用的 Label 樣式 */
.checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	cursor: not-allowed;
	opacity: 0.6;
	transition: opacity 0.2s;
}

	/* 啟用後的 Label 樣式 */
	.checkbox-label.active {
		cursor: default;
		pointer-events: none;
		opacity: 1;
	}

		.checkbox-label.active input[type="checkbox"] {
			accent-color: #1d4ed8;
		}

	.checkbox-label input[type="checkbox"] {
		margin-top: 0px;
		width: 16px;
		height: 16px;
		cursor: inherit;
	}

.checkbox-text {
	font-size: 0.875rem;
	color: #4b5563;
	line-height: 1.4;
	user-select: none;
}

/* 觸發彈窗按鈕 */
.trigger-btn {
	color: #ffffff;
	font-weight: 500;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s;
	font-size: 0.95rem;
	width: 22%;
	margin: 10px auto 0px;
	display: block;
	padding: 5px 0px 8px 0px;
	background: #ff9a4e;
}

	.trigger-btn:hover {
		background-color: #fa8d39;
	}

/* --- 彈窗本體樣式 --- */
.modal-overlay {
	display: none; /* 預設隱藏 */
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(4px);
	align-items: center;
	justify-content: center;
	padding: 16px;
	z-index: 50;
}

	/* 當含有 open 類別時顯示彈窗 */
	.modal-overlay.open {
		display: flex;
	}

.modal-container {
	background-color: #ffffff;
	border-radius: 12px;
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
	max-width: 650px;
	width: 100%;
	display: flex;
	flex-direction: column;
	max-height: 85vh;
}

.modal-header {
	padding: 16px;
	border-bottom: 1px solid #e5e7eb;
	background-color: #83a3d6;
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
	text-align: center;
}

	.modal-header h3 {
		font-size: 1.125rem;
		font-weight: 700;
		color: #ffffff;
	}

/* 條款內容滾動區 */
.modal-content {
	padding: 24px;
	overflow-y: auto;
	color: #4b5563;
	font-size: 0.875rem;
	line-height: 1.6;
	flex: 1;
}

	.modal-content section {
		margin-bottom: 20px;
	}

	.modal-content h4 {
		font-weight: 700;
		color: #1f2937;
		font-size: 1rem;
		margin-bottom: 6px;
	}

	.modal-content ul {
		padding-left: 20px;
		margin-top: 4px;
	}

	.modal-content li {
		margin-bottom: 4px;
	}

/* 彈窗底部按鈕區 */
.modal-footer {
	padding: 16px;
	border-top: 1px solid #e5e7eb;
	background-color: #f9fafb;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	display: flex;
	gap: 12px;
}

	.modal-footer button {
		flex: 1;
		padding: 10px;
		border: none;
		border-radius: 8px;
		font-weight: 500;
		cursor: pointer;
		font-size: 0.95rem;
		transition: all 0.2s;
	}

.btn-cancel {
	background-color: #e5e7eb;
	color: #374151;
}

	.btn-cancel:hover {
		background-color: #d1d5db;
	}

/* 預設禁用狀態的確認按鈕 */
.btn-confirm {
	background-color: #d1d5db;
	color: #9ca3af;
	cursor: not-allowed;
}

	/* 解鎖狀態的確認按鈕 */
	.btn-confirm.unlock {
		background-color: #2563eb;
		color: #ffffff;
		cursor: pointer;
	}

		.btn-confirm.unlock:hover {
			background-color: #1d4ed8;
		}

.main-container {
	max-width: 1290px;
	width: min(100%, calc(90vw - 0px * 2));
	margin-left: auto;
	margin-right: auto;
}

.ct-header {
	min-height: 70px;
	height: 120px;
}

.ct-web {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	height: 100%;
}

.ct-web_div {
	display: flex;
	align-items: center;
	min-width: 0;
	margin: 0 10px 0 0;
}

.ct-web_div2 {
	display: flex;
	align-items: center;
	min-width: 0;
	justify-content: flex-end;
}

.ct-web_img {
	max-width: 210px;
}

.ct-web_ul {
	display: flex;
	align-items: center;
	height: 100%;
	min-width: 0;
	list-style: none;
	padding-left: 0;
	gap: 0px;
	margin: 0;
}

.ct-web_li {
	display: flex;
	align-items: center;
	white-space: nowrap;
	min-width: 140px;
}

.ct-web_a {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	height: 100%;
	font-weight: 600;
	font-style: normal;
	text-transform: capitalize;
	font-size: 15px;
	line-height: 1.3;
	color: #355575;
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	justify-content: center;
}

.ct-web_a2 {
	border-radius: 50px;
	background-color: #f7fafd;
	padding: 12px 25px;
	font-weight: 700;
	font-style: normal;
	line-height: 1.5;
	color: #24417c;
	min-height: 50px;
	font-size: 16px;
	gap: 0.5em;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}

	.ct-web_a2:hover {
		transform: translate3d(0, -3px, 0);
		color: white !important;
		border-color: #3a5da5 !important;
		background-color: #3a5da5 !important;
	}

		.ct-web_a2:hover .ct-web_span2 {
			color: white !important;
		}

.pageSelected {
	background-color: #355575;
	color: #fff !important;
	height: 50px !important;
	border-radius: 6px !important;
}

.ct-web_span {
	display: flex;
	flex-direction: column;
	text-align: center;
}

.ct-web_span2 {
	color: #24427db3;
	font-size: 12px;
}

.ct-mobile {
	display: none;
}

.item {
	position: relative;
	text-align: center;
	box-sizing: border-box;
	counter-increment: item;
	display: flex;
	align-items: center;
	justify-content: right;
}

#menu05,
#menu05 span {
	display: inline-block;
	box-sizing: border-box;
}

#menu05 {
	position: relative;
	width: 30px;
	height: 24px;
	background: none;
	border: none;
	appearance: none;
	cursor: pointer;
	transition: 0.6s cubic-bezier(0.68, -0.5, 0.32, 1.6);
}

	#menu05:focus:not(:focus-visible) {
		outline: none;
	}

	#menu05 span {
		position: absolute;
		width: 100%;
		height: 4px;
		background: #355575;
		border-radius: 4px;
		transition: 0.3s 0.2s;
	}

		#menu05 span:nth-of-type(1) {
			top: 0;
			left: 0;
		}

		#menu05 span:nth-of-type(2) {
			top: 10px;
			left: 0;
		}

		#menu05 span:nth-of-type(3) {
			bottom: 0;
			left: 0;
		}

	#menu05.active {
		transform: rotate(180deg);
	}

		#menu05.active span:nth-of-type(1) {
			transform: translateY(20px) rotate(-45deg);
			top: -10px;
		}

		#menu05.active span:nth-of-type(2) {
			transform: translateY(0) rotate(45deg);
		}

		#menu05.active span:nth-of-type(3) {
			opacity: 0;
		}

@media only screen and (max-width: 1060px) {
	.ct-web {
		display: none;
	}

	.ct-mobile {
		display: grid;
		grid-template-columns: auto auto;
		height: 100%;
	}

	.ct-container1 {
		grid-template-columns: initial;
	}

	.wbg1 {
		display: flex;
		justify-content: center;
		flex-direction: column;
		align-items: center;
	}
}

@media only screen and (max-width: 940px) {
	.ct-modal {
		padding-top: 5px;
	}

	.ct-modal-content {
		width: 97%;
	}
}

@media only screen and (max-width: 768px) {
	.item {
		width: auto;
	}

	.ct-main_title {
		padding: 65px 10px 9px;
	}
}

.overlay {
	height: 100%;
	width: 0;
	position: fixed;
	z-index: 1;
	right: 0;
	top: 0;
	background-color: #24417c;
	overflow-x: hidden;
	transition: 0.5s;
}

.overlay-content {
	position: relative;
	top: 5%;
	width: 100%;
	margin-top: 30px;
	padding: 30px;
}

.overlay a {
	padding: 15px 8px;
	text-decoration: none;
	font-size: 20px;
	color: #ffffff;
	display: block;
	transition: 0.3s;
	font-weight: 600;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	margin-top: 10px;
}

	.overlay a:hover,
	.overlay a:focus {
		color: #ffe8da;
	}

.overlay .closebtn {
	position: absolute;
	top: 16px;
	right: 18px;
	font-size: 40px;
}

.overlay .a-act {
	background-color: #355575;
	color: #fff !important;
	border-radius: 6px !important;
}

.overlay .a-web_a2 {
	border-radius: 50px;
	background-color: #f7fafd;
	padding: 12px 25px;
	font-weight: 700;
	font-style: normal;
	line-height: 1.5;
	color: #24417c;
	min-height: 50px;
	font-size: 16px;
	gap: 0.5em;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
	display: inline-block;
	margin-top: 30px;
}

@media screen and (max-height: 450px) {
	.overlay a {
		font-size: 20px;
	}

	.overlay .closebtn {
		font-size: 40px;
		top: 15px;
		right: 35px;
	}
}
