:root {
	--kst-ink: #4a382c;
	--kst-muted: #75695f;
	--kst-brand: #de712c;
	--kst-brand-dark: #b9561d;
	--kst-green: #7aa34d;
	--kst-green-dark: #5f8139;
	--kst-blue: #4c87b8;
	--kst-paper: #ffffff;
	--kst-wash: #fffaf2;
	--kst-wash-green: #f5f9ef;
	--kst-line: #e9dfd3;
	--kst-brown: #5b4131;
}
.kst-container { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.kst-section { padding-block: clamp(42px, 7vw, 80px); color: var(--kst-ink); }
.kst-section-muted { padding-block: clamp(42px, 7vw, 80px); background: var(--kst-wash); }
.kst-hero { padding-block: clamp(64px, 11vw, 132px); background: linear-gradient(135deg, #1d252f, #343f4c); color: #fff; }
.kst-hero h1 { max-width: 820px; margin: 10px 0 18px; color: #fff; font-size: clamp(2rem, 6vw, 4.4rem); line-height: 1.08; }
.kst-hero p { max-width: 780px; font-size: clamp(1rem, 2.5vw, 1.25rem); line-height: 1.75; }
.kst-eyebrow { font-weight: 700; letter-spacing: .12em; }
.kst-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 22px; }
.kst-button { display: inline-flex; min-height: 48px; padding: 12px 20px; align-items: center; justify-content: center; border: 2px solid var(--kst-brand); border-radius: 6px; background: var(--kst-brand); color: #fff !important; font-weight: 700; text-decoration: none !important; }
.kst-button:hover, .kst-button:focus { border-color: var(--kst-brand-dark); background: var(--kst-brand-dark); }
.kst-button-secondary { background: transparent; color: var(--kst-brand) !important; }
.kst-hero .kst-button-secondary { border-color: #fff; color: #fff !important; }
.kst-grid, .kst-case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.kst-card, .kst-case-card { border: 1px solid var(--kst-line); border-radius: 10px; background: var(--kst-paper); box-shadow: 0 8px 24px rgba(23,32,42,.06); }
.kst-card { padding: 24px; margin-block: 20px; }
.kst-case-card { overflow: hidden; }
.kst-case-card-body { padding: 22px; }
.kst-case-card h2 { font-size: 1.3rem; line-height: 1.35; }
.kst-case-image { display: flex; width: 100%; aspect-ratio: 16/10; margin: 18px 0; overflow: hidden; align-items: center; justify-content: center; border-radius: 10px; background: #f2efe9; text-decoration: none !important; }
.kst-case-image img, .kst-safe-gallery img { width: 100%; height: 100%; object-fit: cover; }
.kst-case-image-empty { flex-direction: column; gap: 8px; border: 1px dashed #d6cec4; color: var(--kst-muted) !important; }
.kst-no-preview-icon { display: block; width: 92px; max-width: 34%; }
.kst-no-preview-icon svg { display: block; width: 100%; height: auto; }
.kst-no-preview-icon rect, .kst-no-preview-icon circle, .kst-no-preview-icon path { fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.kst-no-preview-text { font-size: .92rem; font-weight: 700; }
.kst-safe-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-block: 24px; }
.kst-safe-gallery img { max-height: 560px; border-radius: 8px; }
.kst-badge { display: inline-block; padding: 5px 9px; border-radius: 999px; background: var(--kst-brand); color: #fff; font-size: .88rem; font-weight: 700; }
.kst-case-meta, .kst-case-date { color: var(--kst-muted); font-size: .95rem; }
.kst-price { color: var(--kst-brand-dark); font-size: 1.35rem; font-weight: 800; }
.kst-check-list { padding-left: 1.25rem; }
.kst-warning { margin-block: 24px; padding: 24px; border-left: 5px solid #ca8a04; background: #fff8df; }
.kst-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 32px; padding-left: 1.5rem; }
.kst-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.kst-pagination a, .kst-pagination span { display: inline-block; padding: 8px 12px; border: 1px solid var(--kst-line); }
.kst-trust-footer { padding: 36px 0; background: #141a21; color: #fff; }
.kst-trust-footer h2 { color: #fff; font-size: 1.2rem; }
.kst-trust-footer a { color: #fff; }
.kst-trust-footer ul { display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 0; list-style: none; }
.kst-legal-links { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.kst-mobile-phone { display: none; }
.kst-free-consultation input[type="text"], .kst-free-consultation input[type="tel"], .kst-free-consultation textarea, .kst-login-card input[type="text"], .kst-login-card input[type="password"] { width: 100%; min-height: 48px; padding: 10px 12px; }

/* Main navigation spacing. */
.kst-mvp-menu-item { margin: 0 !important; }
.kst-mvp-menu-item + .kst-mvp-menu-item { margin-left: 24px !important; }
.kst-mvp-menu-item > a { display: inline-block; padding-block: 8px; }

@media (max-width: 760px) {
	.kst-mvp-menu-item + .kst-mvp-menu-item { margin-left: 14px !important; }
	.kst-grid, .kst-case-grid, .kst-safe-gallery, .kst-process { grid-template-columns: 1fr; }
	.kst-actions, .kst-actions .kst-button { width: 100%; }
	.kst-button { min-height: 52px; }
	.kst-mobile-phone { position: fixed; z-index: 9999; right: 14px; bottom: 14px; display: inline-flex; min-height: 50px; padding: 12px 18px; align-items: center; border-radius: 999px; background: var(--kst-brand); color: #fff !important; box-shadow: 0 8px 28px rgba(0,0,0,.28); font-weight: 800; text-decoration: none !important; }
	body { padding-bottom: 72px; }
}

.kst-contact-methods { margin: 18px 0 24px; }
.kst-contact-methods p { margin: 8px 0; }
.kst-contact-card { max-width: 760px; }
.kst-contact-form label { display: block; margin-bottom: 6px; font-weight: 700; }
.kst-contact-form input[type="text"], .kst-contact-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--kst-line); border-radius: 6px; background: #fff; }
.kst-contact-form textarea { min-height: 150px; resize: vertical; }
.kst-contact-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.kst-contact-success { margin-block: 20px; padding: 16px 18px; border-left: 5px solid #2f855a; background: #edf9f1; font-weight: 700; }


/* Paid-case checkout: make both mandatory confirmations impossible to miss. */
.kst-mvp-case-agreements {
	margin: 24px 0 18px;
	padding: 20px;
	border: 2px solid var(--kst-brand);
	border-radius: 12px;
	background: #fff7f7;
	box-shadow: 0 6px 18px rgba(182, 41, 47, .08);
}
.kst-agreement-heading {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 12px;
}
.kst-agreement-heading h3 {
	margin: 0 0 4px;
	font-size: 1.2rem;
	line-height: 1.35;
}
.kst-agreement-heading p {
	margin: 0;
	font-weight: 700;
	color: var(--kst-brand-dark);
}
.kst-required-badge {
	display: inline-flex;
	flex: 0 0 auto;
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--kst-brand);
	color: #fff;
	font-size: .82rem;
	font-weight: 800;
	line-height: 1.2;
}
.kst-agreement-summary {
	margin: 10px 0 14px;
	font-size: .94rem;
	line-height: 1.65;
}
.kst-required-agreement {
	margin: 12px 0 !important;
	padding: 14px 16px !important;
	border: 1px solid #e3b9bb;
	border-radius: 9px;
	background: #fff;
}
.kst-required-agreement label {
	display: flex !important;
	gap: 12px;
	align-items: flex-start;
	margin: 0 !important;
	font-weight: 700;
	line-height: 1.55;
	cursor: pointer;
}
.kst-required-agreement input[type="checkbox"] {
	width: 22px !important;
	height: 22px !important;
	min-width: 22px;
	margin: 1px 0 0 !important;
	accent-color: var(--kst-brand);
	cursor: pointer;
}
.kst-required-agreement .required {
	color: var(--kst-brand);
	font-size: 1.05em;
	font-weight: 900;
}
.kst-agreement-ready-note {
	margin: 14px 0 0;
	padding: 10px 12px;
	border-radius: 7px;
	background: #fff;
	font-weight: 800;
	color: var(--kst-brand-dark);
	text-align: center;
}
@media (max-width: 760px) {
	.kst-mvp-case-agreements { padding: 16px; }
	.kst-required-agreement { padding: 13px !important; }
	.kst-required-agreement input[type="checkbox"] { width: 24px !important; height: 24px !important; min-width: 24px; }
}

/* v1.0.15 homepage: third-party consultant positioning. */
body.home .entry-title,
body.home .page-title { display: none !important; }
.kst-hero-consultant { position: relative; overflow: hidden; }
.kst-hero-consultant::after {
	content: "";
	position: absolute;
	right: -120px;
	top: -120px;
	width: 420px;
	height: 420px;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 50%;
	box-shadow: 0 0 0 70px rgba(255,255,255,.035), 0 0 0 140px rgba(255,255,255,.02);
	pointer-events: none;
}
.kst-hero-consultant .kst-container { position: relative; z-index: 1; }
.kst-hero-lead { max-width: 850px !important; }
.kst-section-kicker { margin: 0 0 8px; color: var(--kst-brand-dark); font-size: .9rem; font-weight: 800; letter-spacing: .08em; }
.kst-home-intro > h2,
.kst-section-muted h2 { margin-top: 0; }
.kst-value-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; margin-top: 28px; }
.kst-value-card { min-height: 230px; padding: 24px; border: 1px solid var(--kst-line); border-radius: 12px; background: #fff; }
.kst-value-card h3 { margin: 18px 0 10px; }
.kst-value-card p { margin-bottom: 0; color: var(--kst-muted); line-height: 1.7; }
.kst-step-number { display: inline-flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 50%; background: #f8e8e9; color: var(--kst-brand-dark); font-weight: 900; }
.kst-process-simple { padding: 0; list-style: none; counter-reset: kst-step; }
.kst-process-simple li { position: relative; min-height: 130px; padding: 24px 24px 24px 70px; border: 1px solid var(--kst-line); border-radius: 12px; background: #fff; }
.kst-process-simple li::before { counter-increment: kst-step; content: counter(kst-step); position: absolute; left: 22px; top: 24px; display: flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 50%; background: var(--kst-brand); color: #fff; font-weight: 900; }
.kst-process-simple strong, .kst-process-simple span { display: block; }
.kst-process-simple span { margin-top: 7px; color: var(--kst-muted); line-height: 1.65; }
.kst-home-paths { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.kst-path-card { padding: clamp(26px, 4vw, 42px); border: 1px solid var(--kst-line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(23,32,42,.05); }
.kst-path-card h2 { margin-top: 14px; font-size: clamp(1.55rem, 2.2vw, 2rem); line-height: 1.35; }
.kst-path-card .kst-section-kicker { display: inline-flex; align-items: center; margin-bottom: 0; padding: 8px 12px; border-radius: 999px; background: #f8e8e9; color: var(--kst-brand-dark); font-size: .95rem; letter-spacing: .03em; }
.kst-path-card p:not(.kst-section-kicker) { color: var(--kst-muted); line-height: 1.75; font-size: 1.02rem; }
.kst-path-card .kst-button { margin-top: 8px; }
.kst-section-heading-row { display: flex; gap: 20px; align-items: end; justify-content: space-between; margin-bottom: 26px; }
.kst-section-heading-row h2 { margin-bottom: 0; }
.kst-home-disclaimer { padding-top: 44px; padding-bottom: 44px; }
.kst-home-disclaimer p { max-width: 900px; color: var(--kst-muted); line-height: 1.75; }
@media (max-width: 900px) {
	.kst-value-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
	.kst-hero-consultant::after { right: -250px; top: -180px; }
	.kst-value-grid, .kst-home-paths { grid-template-columns: 1fr; }
	.kst-value-card { min-height: 0; }
	.kst-process-simple li { min-height: 0; }
	.kst-section-heading-row { align-items: flex-start; flex-direction: column; }
}


/* v1.0.18 temporary 台灣招牌網 header logo. */
.site-title a,
.ast-site-title-wrap .site-title a,
.site-branding .site-title a {
	display: block !important;
	width: 250px;
	height: 74px;
	max-width: 32vw;
	background-image: url('../images/taiwan-sign-logo.png');
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: -9999px;
	overflow: hidden;
}
.site-title,
.ast-site-title-wrap .site-title { margin: 0 !important; }
@media (max-width: 760px) {
	.site-title a,
	.ast-site-title-wrap .site-title a,
	.site-branding .site-title a {
		width: 190px;
		height: 58px;
		max-width: 52vw;
	}
}


/* v1.0.20 台灣招牌網：套用最終可愛版白底 LOGO，並延續日系、溫暖、友善的品牌色。 */
html { scroll-behavior: smooth; }
body { color: var(--kst-ink); }
a { color: var(--kst-blue); }
a:hover, a:focus { color: var(--kst-brand-dark); }

/* Header / navigation */
.site-header,
.ast-primary-header-bar,
.main-header-bar { background: #fff !important; border-bottom-color: var(--kst-line) !important; }
.kst-mvp-menu-item > a { color: var(--kst-brown) !important; font-weight: 700; }
.kst-mvp-menu-item > a:hover,
.kst-mvp-menu-item > a:focus { color: var(--kst-brand) !important; }

/* Soft Japanese-style hero: warm cream + green glow instead of hard dark navy. */
.kst-hero {
	background:
		radial-gradient(circle at 88% 15%, rgba(122,163,77,.17) 0 90px, transparent 91px),
		radial-gradient(circle at 93% 18%, rgba(76,135,184,.10) 0 150px, transparent 151px),
		linear-gradient(135deg, #fffaf0 0%, #fff 52%, #f5f9ef 100%);
	color: var(--kst-ink);
	border-bottom: 1px solid var(--kst-line);
}
.kst-hero h1 { color: var(--kst-brown); }
.kst-hero p { color: var(--kst-ink); }
.kst-hero .kst-eyebrow { color: var(--kst-brand-dark); }
.kst-hero .kst-button-secondary { border-color: var(--kst-green); color: var(--kst-green-dark) !important; background: #fff; }
.kst-hero .kst-button-secondary:hover,
.kst-hero .kst-button-secondary:focus { border-color: var(--kst-green-dark); background: var(--kst-green); color: #fff !important; }
.kst-hero-consultant::after { border-color: rgba(122,163,77,.18); box-shadow: 0 0 0 70px rgba(222,113,44,.045), 0 0 0 140px rgba(76,135,184,.03); }

/* Buttons */
.kst-button { border-radius: 10px; box-shadow: 0 5px 14px rgba(222,113,44,.15); }
.kst-button-secondary { border-color: var(--kst-green); color: var(--kst-green-dark) !important; background: #fff; box-shadow: none; }
.kst-button-secondary:hover,
.kst-button-secondary:focus { border-color: var(--kst-green-dark); background: var(--kst-green); color: #fff !important; }

/* Cards and section surfaces */
.kst-section-muted { background: var(--kst-wash); }
.kst-card, .kst-case-card, .kst-value-card, .kst-path-card, .kst-process-simple li {
	border-color: var(--kst-line);
	box-shadow: 0 9px 24px rgba(91,65,49,.07);
}
.kst-card:hover, .kst-case-card:hover, .kst-value-card:hover, .kst-path-card:hover {
	box-shadow: 0 12px 30px rgba(91,65,49,.10);
}
.kst-section-kicker { color: var(--kst-brand-dark); }
.kst-value-card:nth-child(1) .kst-step-number { background: #fff0e5; color: var(--kst-brand-dark); }
.kst-value-card:nth-child(2) .kst-step-number { background: #eef6e6; color: var(--kst-green-dark); }
.kst-value-card:nth-child(3) .kst-step-number { background: #eaf3fa; color: #356f9f; }
.kst-value-card:nth-child(4) .kst-step-number { background: #f7efe8; color: var(--kst-brown); }
.kst-process-simple li::before { background: var(--kst-brand); box-shadow: 0 0 0 5px #fff0e5; }
.kst-path-card .kst-section-kicker { background: #fff0e5; color: var(--kst-brand-dark); }
.kst-path-card:nth-child(2) .kst-section-kicker { background: #eef6e6; color: var(--kst-green-dark); }
.kst-case-image { background: #fffaf2; }
.kst-case-image-empty { border-color: #d9cfbf; background: #fffdf8; color: var(--kst-muted) !important; }

/* Case badges: free = green, paid = orange. */
.kst-badge { background: var(--kst-green); }
.kst-badge-paid { background: var(--kst-brand); }
.kst-badge-free { background: var(--kst-green); }
.kst-price { color: var(--kst-brand-dark); }

/* Forms / checkout */
.kst-contact-form input[type="text"],
.kst-contact-form textarea,
.kst-free-consultation input[type="text"],
.kst-free-consultation input[type="tel"],
.kst-free-consultation textarea,
.kst-login-card input[type="text"],
.kst-login-card input[type="password"],
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	border-color: var(--kst-line) !important;
	border-radius: 9px !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.kst-contact-form input:focus,
.kst-contact-form textarea:focus {
	border-color: var(--kst-brand) !important;
	box-shadow: 0 0 0 3px rgba(222,113,44,.12) !important;
	outline: 0;
}
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce button.button,
.woocommerce a.button {
	border-radius: 10px !important;
	background: var(--kst-brand) !important;
	color: #fff !important;
}
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover { background: var(--kst-brand-dark) !important; }

.kst-mvp-case-agreements { border-color: var(--kst-brand); background: #fffaf3; box-shadow: 0 6px 18px rgba(222,113,44,.10); }
.kst-required-agreement { border-color: #efd4bd; }
.kst-agreement-ready-note { background: #f4f8ee; color: var(--kst-green-dark); }

/* Footer */
.kst-trust-footer { background: var(--kst-brown); }
.kst-trust-footer a:hover, .kst-trust-footer a:focus { color: #ffe2c5; }

/* Mobile phone action follows logo orange. */
.kst-mobile-phone { background: var(--kst-brand); }

/* v1.0.20 final approved header logo. */
.site-title a,
.ast-site-title-wrap .site-title a,
.site-branding .site-title a {
	width: 330px;
	height: 92px;
	max-width: 38vw;
	background-color: #fff;
	background-image: url('../images/taiwan-sign-logo.png');
	background-position: left center;
	background-size: contain;
	border-radius: 8px;
}
@media (max-width: 760px) {
	.site-title a,
	.ast-site-title-wrap .site-title a,
	.site-branding .site-title a {
		width: 225px;
		height: 66px;
		max-width: 58vw;
	}
}

/* v1.0.21 強制統一 Astra / WordPress Header 為台灣招牌網可愛版白底 LOGO。 */
.site-header .custom-logo-link.kst-forced-brand-logo,
.site-header .custom-logo-link,
.ast-primary-header-bar .custom-logo-link,
.site-header .site-logo-img,
.ast-primary-header-bar .site-logo-img {
	background: #fff !important;
}
.site-header .custom-logo,
.site-header .site-logo-img img,
.ast-primary-header-bar .custom-logo,
.ast-primary-header-bar .site-logo-img img,
header .custom-logo-link img {
	width: 330px !important;
	height: 96px !important;
	max-width: min(42vw, 330px) !important;
	object-fit: contain !important;
	object-position: left center !important;
	background: #fff !important;
	border-radius: 0 !important;
}
.site-header .site-branding,
.ast-site-identity {
	padding-top: 6px !important;
	padding-bottom: 6px !important;
}
@media (max-width: 760px) {
	.site-header .custom-logo,
	.site-header .site-logo-img img,
	.ast-primary-header-bar .custom-logo,
	.ast-primary-header-bar .site-logo-img img,
	header .custom-logo-link img {
		width: 220px !important;
		height: 66px !important;
		max-width: 58vw !important;
	}
}


/* v1.0.22：Astra 手機版有獨立 Header / Logo 元件，強制與桌機版使用同一品牌 LOGO。 */
#ast-mobile-header .custom-logo-link,
#ast-mobile-header .site-logo-img,
.ast-mobile-header-wrap .custom-logo-link,
.ast-mobile-header-wrap .site-logo-img,
.custom-mobile-logo-link {
	background: #fff !important;
}
#ast-mobile-header img,
#ast-mobile-header .custom-logo,
#ast-mobile-header .site-logo-img img,
.ast-mobile-header-wrap img.custom-logo,
.ast-mobile-header-wrap .site-logo-img img,
.ast-mobile-header-content img,
.custom-mobile-logo-link img,
.ast-header-break-point .site-branding img,
.ast-header-break-point .site-logo-img img {
	width: 235px !important;
	height: 70px !important;
	max-width: 64vw !important;
	object-fit: contain !important;
	object-position: left center !important;
	background: #fff !important;
	border-radius: 0 !important;
}
@media (max-width: 480px) {
	#ast-mobile-header img,
	#ast-mobile-header .custom-logo,
	#ast-mobile-header .site-logo-img img,
	.ast-mobile-header-wrap img.custom-logo,
	.ast-mobile-header-wrap .site-logo-img img,
	.ast-mobile-header-content img,
	.custom-mobile-logo-link img,
	.ast-header-break-point .site-branding img,
	.ast-header-break-point .site-logo-img img {
		width: 220px !important;
		height: 66px !important;
		max-width: 68vw !important;
	}
}
