/**
 * Kenne-SAW design system (child theme).
 * Tokens match the approved New Home 2026 homepage: navy/blue, white, light gray.
 * Orange is the old design and must not appear on customer-facing pages.
 * Does not restyle WooCommerce calculation fields or payment widgets beyond color/spacing.
 */
:root {
	--ksw-blue: #063b82;
	--ksw-bright-blue: #0b59c7;
	--ksw-navy: #062c63;
	--ksw-text: #14213d;
	--ksw-muted: #555f6d;
	--ksw-line: #d8dde5;
	--ksw-paper: #ffffff;
	--ksw-wash: #f4f7fb;
	--ksw-steel: #e8eef6;
	--ksw-radius: 8px;
	--ksw-max: 1120px;
	--ksw-header: 1360px;
	--ksw-font: Arial, Helvetica, sans-serif;
	--ksw-focus: #0b59c7;
}

body.ksw-design {
	font-family: var(--ksw-font);
	color: var(--ksw-text);
	background: var(--ksw-paper);
}

.ksw-design a:focus-visible,
.ksw-global-menu a:focus-visible,
.ksw-global-cart:focus-visible,
.ksw-btn:focus-visible,
.ksw-nav-toggle:focus-visible,
.kenne-dir-card:focus-visible,
.ksw-skip:focus-visible,
.ksw-search-form button:focus-visible,
.ksw-faq summary:focus-visible,
.ksw-path-card:focus-visible,
.ksw-password-toggle:focus-visible,
.ksw-global-footer a:focus-visible {
	outline: 3px solid var(--ksw-focus);
	outline-offset: 2px;
}

.ksw-btn,
.ksw-design button[type="submit"]:not(.woocommerce-button):not(#place_order),
.ksw-design .kenne-saw-quick-quote button,
.ksw-design .gform_button {
	display: inline-block;
	background: var(--ksw-bright-blue);
	color: #fff !important;
	border: 0;
	border-radius: 4px;
	font-weight: 700;
	font-size: 16px;
	padding: 12px 20px;
	text-decoration: none !important;
	cursor: pointer;
	line-height: 1.2;
}

.ksw-btn:hover,
.ksw-design .kenne-saw-quick-quote button:hover {
	background: #074ca9;
}

.ksw-btn-secondary {
	background: transparent;
	color: var(--ksw-blue) !important;
	border: 2px solid var(--ksw-blue);
}

.ksw-btn-secondary:hover {
	background: var(--ksw-wash);
	color: var(--ksw-navy) !important;
}

.ksw-btn-ghost {
	background: rgba(255, 255, 255, 0.12);
	color: #fff !important;
	border: 2px solid #fff;
}

.ksw-btn-ghost:hover {
	background: #fff;
	color: var(--ksw-navy) !important;
}

.ksw-notice,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	border-radius: var(--ksw-radius);
	padding: 12px 16px;
	font-size: 16px;
}

.woocommerce-notices-wrapper .woocommerce-error {
	background: #f8e8e8;
	color: var(--ksw-navy);
	border-left: 4px solid #b42318;
}

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info {
	background: #e7f1fb;
	color: var(--ksw-navy);
	border-left: 4px solid var(--ksw-bright-blue);
}

/* Header */
.ksw-global-header {
	width: 100%;
	background: #fff;
	border-top: 3px solid var(--ksw-blue);
	border-bottom: 1px solid #e3e8ef;
	box-sizing: border-box;
	font-family: var(--ksw-font);
	position: relative;
	z-index: 1000;
}

.ksw-global-header-inner {
	max-width: var(--ksw-header);
	min-height: 62px;
	margin: 0 auto;
	padding: 0 28px;
	display: flex;
	align-items: center;
	box-sizing: border-box;
	gap: 12px;
}

.ksw-global-logo {
	flex: 0 0 auto;
	margin-right: auto;
}

.ksw-global-logo img {
	display: block;
	height: 36px;
	width: auto;
	max-width: 240px;
}

.ksw-nav-toggle {
	display: none;
	background: #fff;
	border: 2px solid var(--ksw-blue);
	color: var(--ksw-blue);
	font-weight: 700;
	font-size: 14px;
	padding: 8px 12px;
	border-radius: 4px;
	cursor: pointer;
	min-height: 44px;
}

.ksw-global-nav {
	flex: 0 0 auto;
}

.ksw-global-menu {
	display: flex !important;
	align-items: center;
	gap: 22px;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ksw-global-menu li {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.ksw-global-menu li:before {
	display: none !important;
}

.ksw-global-menu a {
	color: var(--ksw-blue) !important;
	text-decoration: none !important;
	font-size: 14px;
	line-height: 1.2;
	font-weight: 700;
	white-space: nowrap;
}

.ksw-global-menu a:hover,
.ksw-global-menu a[aria-current="page"] {
	color: var(--ksw-bright-blue) !important;
}

.ksw-global-phone {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 9px;
	margin-left: 20px;
	color: var(--ksw-blue);
	white-space: nowrap;
}

.ksw-global-phone-icon {
	font-size: 21px;
	line-height: 1;
}

.ksw-global-phone > div {
	display: flex;
	flex-direction: column;
	line-height: 1.12;
}

.ksw-global-phone a {
	color: var(--ksw-blue) !important;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 700;
}

.ksw-global-phone span:not(.ksw-global-phone-icon) {
	margin-top: 4px;
	color: #333;
	font-size: 11px;
	font-weight: 400;
}

.ksw-global-cart {
	position: relative;
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	margin-left: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ksw-blue) !important;
	text-decoration: none !important;
}

.ksw-global-cart-count {
	position: absolute;
	top: 3px;
	right: 1px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--ksw-bright-blue);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

header.page_header,
.footer_top_holder,
.footer_bottom_holder {
	display: none !important;
}

body.ksw-design:not(.page-id-2093) .content,
body.ksw-design.woocommerce-page .content {
	margin-top: 0 !important;
	padding-top: 0 !important;
	background: var(--ksw-paper);
}

body.ksw-design:not(.page-id-2093) .container_inner,
body.ksw-design.woocommerce-page .container_inner {
	padding-top: 0 !important;
}

.ksw-global-footer {
	width: 100%;
	background: var(--ksw-navy);
	color: #fff;
	font-family: var(--ksw-font);
}

.ksw-global-footer-inner {
	max-width: var(--ksw-header);
	margin: 0 auto;
	padding: 34px 40px;
	display: grid;
	grid-template-columns: 1.4fr 1fr 0.8fr;
	align-items: start;
	gap: 40px;
	box-sizing: border-box;
}

.ksw-global-footer-logo img {
	display: block;
	width: 310px;
	max-width: 100%;
	height: auto;
	filter: brightness(0) invert(1);
}

.ksw-global-footer-contact,
.ksw-global-footer-links {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ksw-global-footer-contact a,
.ksw-global-footer-links a {
	color: #fff !important;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 600;
}

.ksw-global-footer-contact a:hover,
.ksw-global-footer-links a:hover {
	text-decoration: underline !important;
}

.ksw-global-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	padding: 13px 20px;
	color: rgba(255, 255, 255, 0.82);
	text-align: center;
	font-size: 12px;
}

body.ksw-design:not(.page-id-2093) h1,
.kenne-products-directory h1,
.ksw-page h1 {
	color: var(--ksw-blue);
	font-size: 2rem;
	line-height: 1.15;
	margin: 0 0 0.6rem;
}

body.ksw-design:not(.page-id-2093) h2,
.kenne-products-directory h2,
.ksw-page h2 {
	color: var(--ksw-navy);
	font-size: 1.35rem;
	border-bottom: 2px solid var(--ksw-steel);
	padding-bottom: 0.35rem;
}

.kenne-products-directory {
	--ksw-blue: #063b82;
	--ksw-navy: #062c63;
	max-width: var(--ksw-max);
	margin: 0 auto 2.5rem;
	padding: 1.25rem 1.25rem 2rem;
	color: var(--ksw-text);
	font-family: var(--ksw-font);
}

.kenne-dir-lead,
.kenne-dir-empty,
.kenne-dir-group-empty {
	font-size: 1.05rem;
	line-height: 1.45;
	margin: 0 0 1.25rem;
}

.kenne-dir-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.9rem;
}

@media (min-width: 768px) {
	.kenne-dir-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.kenne-dir-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: #fff;
	border: 1px solid #c5d7ea;
	border-radius: var(--ksw-radius);
	padding: 1.1rem 1.2rem;
	text-decoration: none;
	color: var(--ksw-text);
	box-shadow: 0 1px 4px rgba(6, 59, 130, 0.08);
	min-height: 7.5rem;
}

.kenne-dir-card:hover,
.kenne-dir-card:focus {
	border-color: var(--ksw-bright-blue);
	box-shadow: 0 4px 12px rgba(6, 59, 130, 0.16);
}

.kenne-dir-card-title {
	display: block;
	font-weight: 700;
	color: var(--ksw-blue);
	font-size: 1.1rem;
	line-height: 1.3;
}

.kenne-dir-card-spec {
	display: block;
	margin-top: 0.35rem;
	color: var(--ksw-muted);
	font-size: 0.95rem;
}

.kenne-dir-card-action {
	display: inline-block;
	margin-top: auto;
	color: #fff;
	background: var(--ksw-bright-blue);
	padding: 0.4rem 0.85rem;
	border-radius: 4px;
	font-size: 0.9rem;
	font-weight: 700;
}

.kenne-dir-diagnostics {
	margin-top: 2rem;
	padding: 1rem;
	background: var(--ksw-wash);
	border: 1px dashed var(--ksw-line);
	font-size: 0.9rem;
}

.ksw-brand-hub {
	max-width: 900px;
	margin: 0 auto 2.5rem;
	padding: 0 1rem;
	font-family: var(--ksw-font);
}

.ksw-brand-hub .ksw-disclaimer {
	background: var(--ksw-wash);
	border-left: 4px solid var(--ksw-bright-blue);
	padding: 12px 16px;
	margin: 0 0 1.5rem;
}

.ksw-brand-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.65rem;
	margin: 0 0 1.5rem;
}

@media (min-width: 700px) {
	.ksw-brand-list {
		grid-template-columns: 1fr 1fr;
	}
}

.ksw-brand-list li {
	background: #fff;
	border: 1px solid #c5d7ea;
	border-radius: 6px;
	padding: 0.75rem 1rem;
	list-style: none;
}

.ksw-brand-hub ul.ksw-brand-list {
	padding: 0;
}

@media (max-width: 900px) {
	.ksw-nav-toggle {
		display: inline-block;
	}

	.ksw-global-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		border-bottom: 1px solid #e3e8ef;
		padding: 12px 20px 20px;
	}

	.ksw-global-header.is-open .ksw-global-nav {
		display: block;
	}

	.ksw-global-menu {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}

	.ksw-global-phone span:not(.ksw-global-phone-icon) {
		display: none;
	}

	.ksw-global-footer-inner {
		grid-template-columns: 1fr;
		gap: 24px;
		text-align: center;
	}

	.ksw-global-footer-logo img,
	.ksw-global-footer-contact,
	.ksw-global-footer-links {
		margin: 0 auto;
		align-items: center;
	}
}

@media (max-width: 800px) {
	.ksw-cart-benefits-inner {
		flex-direction: column;
	}

	.ksw-cart-benefit + .ksw-cart-benefit {
		border-left: 0;
		border-top: 1px solid #d9e0e8;
		padding-top: 16px;
	}
}
