/* WC TW Core — Checkout stylesheet */

/* ──────────────────────────────────────────────────────────────────────────
 * Checkout field layout
 *
 * WooCommerce's `form-row-first` / `form-row-last` classes are float-based and
 * render inconsistently in block themes (e.g. Twenty Twenty-Five), which can
 * leave a field such as 電子郵件 orphaned on the right with an empty gap beside
 * it. We force every billing/shipping field onto its own full-width row so the
 * layout is clean and deterministic on every theme and on mobile. `!important`
 * is required to override WooCommerce's own float rules.
 * ────────────────────────────────────────────────────────────────────────── */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	clear: both !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box !important;
}

/* Inputs/selects/textareas fill their row. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row .input-text,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row .input-text,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row select,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row select,
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row textarea,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row textarea {
	width: 100% !important;
	box-sizing: border-box !important;
}

/* 隱藏國家欄位（台灣商店預設 TW） */
.woocommerce-checkout p#billing_country_field,
.woocommerce-checkout p#shipping_country_field {
	display: none !important;
}

/* 統編發票區塊：預設隱藏，勾選 checkbox 後展開 */
.woocommerce-checkout .mydybox-taiwan-for-woocommerce-invoice-field {
	display: none;
}
.woocommerce-checkout .mydybox-taiwan-for-woocommerce-invoice-field.mydybox-taiwan-for-woocommerce-visible {
	display: block;
}

/* 統一所有結帳下拉選單高度與樣式 */
.woocommerce-checkout select#billing_city,
.woocommerce-checkout select#shipping_city,
.woocommerce-checkout select#billing_state,
.woocommerce-checkout select#shipping_state,
.woocommerce-checkout select#billing_taiwan_store_core_invoice_type {
	width: 100% !important;
	height: 50px !important;
	line-height: 50px !important;
	padding: 0 40px 0 15px !important; /* 右側留空間給箭頭 */
	background-color: #fff !important;
	border: 1px solid #ddd !important;
	border-radius: 4px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	color: #333 !important;
	box-sizing: border-box !important;
	
	/* 修正雙箭頭問題：清除預設外觀並使用自訂 SVG 箭頭 */
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23666%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.4-12.8z%22%2F%3E%3C%2Fsvg%3E') !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 12px !important;
	
	outline: none !important;
}

/* select2 dropdown 必須蓋過 description 說明文字 */
.woocommerce-checkout .select2-dropdown {
	z-index: 9999 !important;
}


/* select2 container 同步寬度 */
.woocommerce-checkout .select2-container {
	width: 100% !important;
	height: 50px !important;
	box-sizing: border-box !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single {
	height: 50px !important;
	border: 1px solid #ddd !important;
	border-radius: 4px !important;
	background-color: #fff !important;
	box-sizing: border-box !important;
	display: block !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 48px !important; /* 扣除上下邊框 1px */
	padding-left: 15px !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	color: #333 !important;
	height: 48px !important;
	display: block !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 48px !important;
	top: 1px !important;
}

/* 郵遞區號：寬度處理 */
.woocommerce-checkout #billing_postcode_field,
.woocommerce-checkout #shipping_postcode_field {
	width: 100% !important;
	clear: both !important;
}

/* 統編查詢提示文字（統編欄位下方） */
#mydybox-taiwan-for-woocommerce-taxid-hint {
	display: block;
	margin-top: 4px;
	font-size: 0.85em;
	line-height: 1.4;
}

/* 郵遞區號：placeholder 顏色略淺 */
.woocommerce-checkout #billing_postcode::placeholder,
.woocommerce-checkout #shipping_postcode::placeholder {
	color: #aaa;
	font-style: italic;
}

/* 公司名稱：placeholder 同樣處理 */
.woocommerce-checkout #billing_company_title::placeholder {
	color: #aaa;
	font-style: italic;
}

/* 隱藏的 need_invoice checkbox */
.woocommerce-checkout p#billing_need_invoice_field {
	display: none !important;
}

/* 載具/捐贈碼欄位 */
.woocommerce-checkout p#billing_carrier_number_field {
	display: none;
}

/* 即時驗證提示顏色過渡 */
#billing_phone_hint,
#billing_carrier_number_hint {
	transition: color 0.2s;
	line-height: 1.4;
}

/* 訂單清單標籤樣式 */
.mydybox-taiwan-for-woocommerce-tags-container {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	align-items: center;
	margin-top: 5px;
}
.mydybox-taiwan-for-woocommerce-tag {
	display: inline-block;
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	color: #fff;
}
.mydybox-taiwan-for-woocommerce-tag-taxid   { background-color: #1e3a5f; }
.mydybox-taiwan-for-woocommerce-tag-carrier { background-color: #00a32a; }
.mydybox-taiwan-for-woocommerce-tag-donate  { background-color: #f0821b; }
.mydybox-taiwan-for-woocommerce-tag-marketing { background-color: #9b59b6; }

/* ── CVS Store Pickup ── */
.ts-cvs-info-box {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	padding: .85rem 1rem;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: .9rem;
	line-height: 1.5;
	margin-bottom: .75rem;
	transition: background .2s, border-color .2s;
}
.ts-cvs-icon { font-size: 1.1rem; line-height: 1.4; }
.ts-cvs-btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .6rem 1.2rem;
	background: #0ea5e9;
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
}
.ts-cvs-btn:hover { background: #0284c7; }

/* ── 結帳進度條 ─────────────────────────────────── */
.ts-checkout-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 32px;
	padding: 20px 16px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 1px 4px rgba(0,0,0,.08);
	gap: 0;
}

.ts-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1;
	position: relative;
	z-index: 1;
}

/* 步驟之間的連接線 */
.ts-step:not(:last-child)::after {
	content: '';
	position: absolute;
	top: 18px;
	left: 50%;
	width: 100%;
	height: 2px;
	background: #e2e8f0;
	z-index: 0;
}
.ts-step.done:not(:last-child)::after,
.ts-step.active:not(:last-child)::after {
	background: #10b981;
}

.ts-step-circle {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #e2e8f0;
	color: #94a3b8;
	font-weight: 700;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
	transition: background .2s, color .2s;
}
.ts-step.done .ts-step-circle {
	background: #10b981;
	color: #fff;
}
.ts-step.active .ts-step-circle {
	background: #3b82f6;
	color: #fff;
	box-shadow: 0 0 0 4px rgba(59,130,246,.2);
}

.ts-step-label {
	margin-top: 8px;
	font-size: 12px;
	color: #94a3b8;
	font-weight: 500;
	white-space: nowrap;
}
.ts-step.done .ts-step-label { color: #10b981; }
.ts-step.active .ts-step-label { color: #3b82f6; font-weight: 700; }

@media (max-width: 480px) {
	.ts-step-label { font-size: 10px; }
	.ts-step-circle { width: 28px; height: 28px; font-size: 12px; }
}
