/*!
Theme Name: KathmanduSteel
Theme URI: http://underscores.me/
Author: Roshan Kumar Thapa
Author URI: https://github.com/rthway
Description: Kathmandu Steel is a modern, fast, and fully responsive WordPress theme designed for steel industries, manufacturing companies, construction firms, and industrial businesses. It features a clean and professional layout, optimized performance, SEO-friendly structure, and easy customization options. The theme is built with best coding practices, ensuring security, scalability, and compatibility with all major browsers and devices. Kathmandu Steel is ideal for showcasing products, services, projects, and company profiles with a strong industrial presence.
Version: 1.0.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: kathmandu-steel
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

KathmanduSteel is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
	color: #404040;
	font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
	font-size: 1rem;
	line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
}

p {
	margin-bottom: 1.5em;
	text-align: justify;
}

dfn,
cite,
em,
i {
	font-style: italic;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	background: #eee;
	font-family: "Courier 10 Pitch", courier, monospace;
	line-height: 1.6;
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

code,
kbd,
tt,
var {
	font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
	border-bottom: 1px dotted #666;
	cursor: help;
}

mark,
ins {
	background: #fff9c0;
	text-decoration: none;
}

big {
	font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
	background: #fff;
}

:root {
	--header-shell-width: 1440px;
	--header-accent: #2146f3;
	--header-accent-strong: #ff3131;
	--header-text: #10233f;
	--header-muted: #5f6f85;
	--header-surface: #ffffff;
	--header-surface-soft: #f2f4f7;
	--header-border: #dfe4ec;
}

hr {
	background-color: #ccc;
	border: 0;
	height: 1px;
	margin-bottom: 1.5em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
	max-width: 100%;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

/* Links
--------------------------------------------- */
a {
	color: #4169e1;
}

a:visited {
	color: #3557c7;
}

a:hover,
a:focus,
a:active {
	color: #191970;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	border: 1px solid;
	border-color: #ccc #ccc #bbb;
	border-radius: 3px;
	background: #e6e6e6;
	color: rgba(0, 0, 0, 0.8);
	line-height: 1;
	padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
	border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
	border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: 3px;
	padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	color: #111;
}

select {
	border: 1px solid #ccc;
}

textarea {
	width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.site-header--custom {
	position: relative;
	z-index: 20;
	background: var(--header-surface);
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.header-shell {
	width: min(100% - 16px, var(--header-shell-width));
	margin: 0 auto;
}

.header-topbar {
	background: var(--header-surface-soft);
	border-bottom: 1px solid var(--header-border);
}

.header-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.7rem 0;
}

.header-topbar__details,
.header-topbar__social,
.header-topbar__mobile-actions,
.header-actions {
	display: flex;
	align-items: center;
}

.header-topbar__details {
	flex-wrap: wrap;
	gap: 1.35rem;
}

.header-meta-item,
.header-social-link,
.header-support__phone,
.header-cta,
.site-branding a,
.main-navigation a {
	text-decoration: none;
}

.header-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: var(--header-muted);
	font-size: 0.92rem;
	font-weight: 500;
}

.header-meta-item:hover,
.header-meta-item:focus {
	color: var(--header-accent);
}

.header-meta-item__icon,
.header-social-link,
.header-support__icon,
.header-cta__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.header-meta-item__icon i,
.header-social-link i,
.header-support__icon i,
.header-cta__icon i {
	line-height: 1;
}

.header-meta-item__icon {
	color: var(--header-accent-strong);
	font-size: 1rem;
}

.header-topbar__social {
	gap: 1rem;
	flex-shrink: 0;
	justify-content: flex-end;
}

.header-topbar__mobile-actions {
	display: none;
	gap: 0.75rem;
	width: 100%;
}

.header-topbar__mobile-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	padding: 0.7rem 0.95rem;
	border-radius: 999px;
	background: #fff;
	color: var(--header-text);
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
}

.header-topbar__mobile-link--cta {
	background: var(--header-accent);
	color: #fff;
}

.header-social-link {
	color: #10233f;
	font-size: 1.1rem;
	transition: color 0.2s ease, transform 0.2s ease;
}

.header-social-link:hover,
.header-social-link:focus {
	color: var(--header-accent);
	transform: translateY(-1px);
}

.header-mainbar {
	background: var(--header-surface);
}

.header-mainbar__inner {
	display: grid;
	grid-template-columns: minmax(150px, 200px) minmax(0, 1fr) auto;
	align-items: stretch;
	column-gap: 1.25rem;
}

.site-branding {
	display: flex;
	align-items: center;
	padding: 0.75rem 0;
}

.custom-logo-link {
	display: inline-flex;
	align-items: center;
	max-width: 200px;
}

.site-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.1;
}

.site-title a,
.site-description {
	color: var(--header-text);
}

.site-description {
	margin: 0.35rem 0 0;
	font-size: 0.9rem;
}

.main-navigation {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border-left: 1px solid var(--header-border);
	border-right: 1px solid var(--header-border);
	padding: 0 1.5rem;
	min-width: 0;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	display: block;
	box-shadow: 0 20px 40px rgba(16, 35, 63, 0.12);
	background: var(--header-surface);
	padding: 0.65rem 0;
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	padding: 2rem 0.72rem;
	color: var(--header-text);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
}

.main-navigation ul ul a {
	display: block;
	width: 220px;
	padding: 0.6rem 1.15rem;
	font-size: 0.95rem;
	font-weight: 600;
	text-transform: none;
}

.main-navigation ul ul li {
	display: block;
	width: 100%;
}

.main-navigation a:hover,
.main-navigation a:focus,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	color: var(--header-accent);
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

.menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	border: 1px solid var(--header-border);
	border-radius: 999px;
	background: var(--header-surface);
	color: var(--header-text);
	font-weight: 700;
	padding: 0.9rem 1.3rem;
}

.menu-toggle__icon {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.22rem;
}

.menu-toggle__icon span {
	display: block;
	width: 18px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.main-navigation.toggled .menu-toggle__icon span:nth-child(1) {
	transform: translateY(4px) rotate(45deg);
}

.main-navigation.toggled .menu-toggle__icon span:nth-child(2) {
	opacity: 0;
}

.main-navigation.toggled .menu-toggle__icon span:nth-child(3) {
	transform: translateY(-4px) rotate(-45deg);
}

.menu-toggle__label {
	line-height: 1;
}

.submenu-toggle {
	display: none;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-left: 1rem;
	flex-wrap: nowrap;
	min-width: 0;
}

.header-support {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 0;
	min-height: 100%;
	min-width: 0;
}

.header-support__icon {
	width: 2.7rem;
	height: 2.7rem;
	border: 2px solid var(--header-accent-strong);
	border-radius: 0.75rem;
	color: var(--header-accent-strong);
	font-size: 1.2rem;
	flex-shrink: 0;
}

.header-support__content {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.header-support__label {
	color: var(--header-muted);
	font-size: 0.82rem;
	font-weight: 600;
}

.header-support__phone {
	color: var(--header-accent-strong);
	font-size: clamp(1rem, 1.15vw, 1.3rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.01em;
}

.header-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	padding: 1.15rem 1.8rem;
	border: 1px solid var(--header-accent);
	border-radius: 999px;
	color: var(--header-accent);
	background: var(--header-surface);
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.header-cta:hover,
.header-cta:focus {
	background: var(--header-accent);
	color: #fff;
	transform: translateY(-1px);
}

.header-cta__icon {
	font-size: 1rem;
}

@media screen and (max-width: 87.5em) {
	.header-mainbar__inner {
		grid-template-columns: minmax(140px, 180px) minmax(0, 1fr) auto;
		column-gap: 1rem;
	}

	.main-navigation {
		padding: 0 1rem;
	}

	.main-navigation a {
		padding: 1.85rem 0.58rem;
		font-size: 0.9rem;
	}

	.header-actions {
		gap: 0.75rem;
		padding-left: 0.75rem;
	}

	.header-cta {
		padding: 1rem 1.35rem;
		font-size: 0.88rem;
	}
}

@media screen and (min-width: 37.5em) {

	.menu-toggle {
		display: none;
	}

	.submenu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-wrap: nowrap;
	}
}

@media screen and (max-width: 75em) {
	.header-mainbar__inner {
		grid-template-columns: 1fr;
	}

	.main-navigation {
		border-left: 0;
		border-right: 0;
		border-top: 1px solid var(--header-border);
		border-bottom: 1px solid var(--header-border);
		padding: 0.85rem 0;
		justify-content: flex-start;
	}

	.header-actions {
		padding: 1rem 0 1.25rem;
		justify-content: space-between;
		flex-wrap: wrap;
	}
}

@media screen and (max-width: 60em) {
	.header-topbar__inner,
	.header-actions {
		flex-direction: column;
		align-items: flex-start;
	}

	.header-topbar__details {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		gap: 0.85rem 1rem;
	}

	.header-topbar__details .header-meta-item:first-child {
		justify-self: flex-start;
	}

	.header-topbar__details .header-meta-item:last-child {
		justify-self: flex-end;
		text-align: right;
	}

	.header-topbar__social {
		width: 100%;
		margin-top: 0.25rem;
		justify-content: flex-end;
	}

	.main-navigation {
		display: block;
	}

	.menu-toggle {
		display: inline-flex;
	}

	.main-navigation ul {
		display: none;
		width: 100%;
		padding-top: 0.8rem;
	}

	.main-navigation.toggled ul {
		display: block;
	}

	.main-navigation li {
		width: 100%;
	}

	.main-navigation .menu-item-has-children,
	.main-navigation .page_item_has_children {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	.main-navigation a {
		padding: 0.85rem 0;
		white-space: normal;
	}

	.main-navigation ul ul {
		grid-column: 1 / -1;
		position: static;
		box-shadow: none;
		padding: 0 0 0.5rem 1rem;
		background: rgba(31, 32, 88, 0.03);
		border-left: 2px solid rgba(31, 32, 88, 0.12);
	}

	.main-navigation ul ul[hidden] {
		display: none;
	}

	.main-navigation ul ul a {
		width: auto;
		padding: 0.7rem 0;
		font-size: 0.95rem;
	}

	.submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.6rem;
		height: 2.6rem;
		margin-left: 0.75rem;
		padding: 0;
		border: 1px solid var(--header-border);
		border-radius: 50%;
		background: #fff;
		color: var(--header-text);
		cursor: pointer;
	}

	.submenu-toggle__icon {
		position: relative;
		display: block;
		width: 0.95rem;
		height: 0.95rem;
	}

	.submenu-toggle__icon::before,
	.submenu-toggle__icon::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 0.95rem;
		height: 2px;
		background: currentColor;
		transform: translate(-50%, -50%);
	}

	.submenu-toggle__icon::after {
		width: 2px;
		height: 0.95rem;
	}

	.main-navigation .is-submenu-open > .submenu-toggle .submenu-toggle__icon::after {
		display: none;
	}

	.header-actions {
		width: 100%;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
	}

	.header-support {
		width: auto;
		flex-direction: row;
		align-items: center;
		padding: 0;
	}

	.header-support__content {
		flex-direction: row;
		align-items: center;
		gap: 0.5rem;
	}

	.header-support__label,
	.header-support__phone {
		white-space: nowrap;
	}

	.header-cta {
		margin-left: auto;
		width: auto;
	}

	.home-hero-slider__track {
		min-height: 620px;
	}

	.home-hero-slide__overlay {
		background:
			linear-gradient(180deg, rgba(16, 35, 63, 0.15) 0%, rgba(16, 35, 63, 0.55) 100%),
			linear-gradient(180deg, rgba(255, 111, 0, 0.88) 0%, rgba(255, 111, 0, 0.88) 55%, rgba(255, 111, 0, 0) 55%);
	}

	.home-hero-slide__content-wrap {
		align-items: flex-end;
		justify-content: flex-start;
	}

	.home-hero-slide__panel {
		margin-right: 0;
		max-width: 100%;
		padding-bottom: 6rem;
	}

	.home-hero-slider__dots {
		top: auto;
		left: 1.25rem;
		bottom: 1.25rem;
		flex-direction: row;
		transform: none;
	}
}

@media screen and (max-width: 37.5em) {
	.header-shell {
		width: min(100% - 12px, var(--header-shell-width));
	}

	.header-topbar__details,
	.header-topbar__social,
	.header-actions {
		display: none;
	}

	.header-topbar__mobile-actions {
		display: flex;
		justify-content: space-between;
	}

	.header-meta-item {
		font-size: 0.82rem;
	}

	.header-meta-item__text {
		word-break: break-word;
	}

	.menu-toggle {
		width: 100%;
		justify-content: space-between;
	}

	.site-branding {
		padding: 1rem 0 0.85rem;
	}

	.custom-logo-link {
		max-width: 180px;
	}

	.header-cta {
		width: 100%;
		justify-content: center;
	}

	.home-hero-slider__track {
		min-height: 540px;
	}

	.home-hero-slide__title {
		font-size: clamp(1.65rem, 10.5vw, 2.7rem);
	}

	.home-hero-slide__button {
		width: 100%;
		justify-content: center;
	}

	.home-hero-slider__nav {
		left: 0;
		width: 100%;
		justify-content: space-between;
	}

	.home-hero-slider__arrow {
		padding: 1rem 1.2rem;
		font-size: 0.8rem;
		letter-spacing: 0.12em;
	}
}


/*--------------------------------------------------------------
# Tablet header: logo, menu, phone, and CTA stay on one line
--------------------------------------------------------------*/
@media screen and (min-width: 37.5em) and (max-width: 75em) {
	.header-mainbar {
		position: relative;
	}

	.header-mainbar__inner {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;
		column-gap: 0.75rem;
	}

	.site-branding {
		flex: 0 1 auto;
		min-width: 0;
		padding: 0.6rem 0;
	}

	.custom-logo-link {
		max-width: 150px;
	}

	/* The navigation collapses to its toggle so the bar fits on one row. */
	.main-navigation {
		display: flex;
		flex: 0 0 auto;
		width: auto;
		justify-content: flex-start;
		margin-left: auto;
		padding: 0;
		border-left: 0;
		border-right: 0;
		border-top: 0;
		border-bottom: 0;
	}

	.menu-toggle {
		display: inline-flex;
		width: auto;
		gap: 0.5rem;
		padding: 0.7rem 1rem;
		font-size: 0.9rem;
	}

	.main-navigation > ul {
		display: none;
	}

	/* Opened menu drops below the bar, full width. */
	.main-navigation.toggled > ul {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		width: auto;
		max-height: 72vh;
		overflow-y: auto;
		padding: 0.5rem clamp(1rem, 4vw, 2rem) 1.1rem;
		background: var(--header-surface);
		border-top: 1px solid var(--header-border);
		box-shadow: 0 24px 40px rgba(16, 35, 63, 0.16);
		z-index: 60;
	}

	.main-navigation li {
		width: 100%;
	}

	.main-navigation .menu-item-has-children,
	.main-navigation .page_item_has_children {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}

	.main-navigation a {
		padding: 0.85rem 0;
		white-space: normal;
	}

	.main-navigation ul ul {
		grid-column: 1 / -1;
		position: static;
		float: none;
		padding: 0 0 0.5rem 1rem;
		background: rgba(31, 32, 88, 0.03);
		border-left: 2px solid rgba(31, 32, 88, 0.12);
		box-shadow: none;
	}

	.main-navigation ul ul[hidden] {
		display: none;
	}

	.main-navigation ul ul a {
		width: auto;
		padding: 0.7rem 0;
		font-size: 0.95rem;
	}

	.submenu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.4rem;
		height: 2.4rem;
		margin-left: 0.75rem;
		padding: 0;
		border: 1px solid var(--header-border);
		border-radius: 50%;
		background: #fff;
		color: var(--header-text);
		cursor: pointer;
	}

	.header-actions {
		display: flex;
		flex: 0 0 auto;
		width: auto;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: flex-end;
		gap: 0.65rem;
		padding: 0.6rem 0 0.6rem 0.25rem;
	}

	.header-support {
		width: auto;
		flex-direction: row;
		align-items: center;
		gap: 0.5rem;
		padding: 0;
	}

	.header-support__icon {
		width: 2.2rem;
		height: 2.2rem;
		border-radius: 0.6rem;
		font-size: 1rem;
	}

	.header-support__content {
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.header-support__label {
		display: none;
	}

	.header-support__phone {
		font-size: 1rem;
		white-space: nowrap;
	}

	.header-cta {
		width: auto;
		margin-left: 0;
		gap: 0.45rem;
		padding: 0.7rem 1.1rem;
		font-size: 0.82rem;
	}

	.header-cta__icon {
		font-size: 0.85rem;
	}
}

/* Narrow tablets: trim the labels so the single line still fits. */
@media screen and (min-width: 37.5em) and (max-width: 56em) {
	.header-mainbar__inner {
		column-gap: 0.5rem;
	}

	.custom-logo-link {
		max-width: 124px;
	}

	.menu-toggle {
		padding: 0.7rem 0.85rem;
	}

	.menu-toggle__label {
		display: none;
	}

	.header-support__icon {
		display: none;
	}

	.header-support__phone {
		font-size: 0.95rem;
	}

	.header-cta {
		padding: 0.7rem 0.95rem;
		font-size: 0.76rem;
	}
}
.site-main .comment-navigation,
.site-main
.posts-navigation,
.site-main
.post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.site-main--home {
	margin: 0;
}

.home-hero-slider {
	position: relative;
	overflow: hidden;
	background: #0f2235;
}

.home-hero-slider__track {
	position: relative;
	min-height: clamp(540px, 78vh, 880px);
}

.home-hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.7s ease, visibility 0.7s ease;
}

.home-hero-slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 1;
}

.home-hero-slide__media,
.home-hero-slide__overlay,
.home-hero-slide__content-wrap {
	position: absolute;
	inset: 0;
}

.home-hero-slide__media {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	transform: scale(1.02);
}

.home-hero-slide__media--fallback {
	background:
		linear-gradient(135deg, rgba(12, 25, 38, 0.2), rgba(12, 25, 38, 0.75)),
		linear-gradient(115deg, #6f7b88 0%, #b3691d 45%, #15283a 100%);
}

.home-hero-slide__overlay {
	background:
		linear-gradient(90deg, rgba(16, 35, 63, 0.12) 0%, rgba(16, 35, 63, 0.2) 38%, rgba(16, 35, 63, 0.45) 100%),
		linear-gradient(90deg, rgba(255, 111, 0, 0) 0%, rgba(255, 111, 0, 0) 42%, rgba(255, 111, 0, 0.9) 42%, rgba(255, 111, 0, 0.9) 80%, rgba(255, 111, 0, 0) 80%);
}

.home-hero-slide__content-wrap {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	width: min(100%, 1720px);
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 5rem);
}

.home-hero-slide__panel {
	position: relative;
	width: min(100%, 680px);
	margin-right: clamp(2rem, 7vw, 18rem);
	padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1.8rem, 4vw, 3rem);
}

.home-hero-slide__subtitle {
	margin: 0 0 1rem;
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}

.home-hero-slide__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.25rem, 5vw, 5.25rem);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.04em;
	text-transform: capitalize;
}

.home-hero-slide__button {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	margin-top: 2rem;
	padding: 1rem 1.6rem;
	border-radius: 999px;
	background: #fff;
	color: #202020;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-hero-slide__button:hover,
.home-hero-slide__button:focus {
	transform: translateY(-2px);
	box-shadow: 0 18px 30px rgba(0, 0, 0, 0.18);
}

.home-hero-slider__dots {
	position: absolute;
	left: clamp(1.5rem, 4vw, 4rem);
	top: 50%;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	transform: translateY(-50%);
}

.home-hero-slider__dot {
	width: 0.95rem;
	height: 0.95rem;
	border: 2px solid rgba(255, 255, 255, 0.7);
	border-radius: 50%;
	background: transparent;
	padding: 0;
	cursor: pointer;
}

.home-hero-slider__dot.is-active {
	background: #ff6f00;
	border-color: #ff6f00;
}

.home-hero-slider__nav {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 3;
	display: inline-flex;
	background: rgba(255, 255, 255, 0.95);
}

.home-hero-slider__arrow {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.45rem 1.75rem;
	border: 0;
	background: transparent;
	color: #101010;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	cursor: pointer;
}

.home-hero-slider__arrow + .home-hero-slider__arrow {
	border-left: 1px solid rgba(16, 35, 63, 0.12);
}

.home-hero-slider__arrow:hover,
.home-hero-slider__arrow:focus {
	color: #ff6f00;
}

.site-main--home .entry-header,
.site-main--home .entry-content,
.site-main--home .entry-footer {
	width: min(100% - 32px, 1200px);
	margin-left: auto;
	margin-right: auto;
	padding-top: 2rem;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

.site-footer {
	margin-top: 0;
	background: #10233f;
	color: rgba(255, 255, 255, 0.8);
}

.site-footer__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.site-footer__top {
	padding: clamp(3rem, 6vw, 4.5rem) 0 2rem;
}

.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
}

.site-footer__column .widget:last-child {
	margin-bottom: 0;
}

.site-footer .footer-widget__title,
.site-footer .widget-title {
	margin: 0 0 1rem;
	color: #fff;
	font-size: 1.25rem;
	font-weight: 800;
}

.site-footer a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus {
	color: #ff6214;
}

.site-footer p,
.site-footer li,
.site-footer address {
	color: rgba(255, 255, 255, 0.78);
}

.site-footer ul,
.site-footer ol {
	margin: 0;
	padding-left: 1.1rem;
}

.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding: 1rem 0;
	background: #0c1b31;
}

.site-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.site-footer__copyright,
.site-footer__developer {
	margin: 0;
	font-size: 0.95rem;
}

/* Two credits on one line; each keeps its own words together when they wrap. */
.site-footer__credit {
	display: inline-block;
}

.site-footer__credit-sep {
	margin: 0 0.15rem;
	opacity: 0.55;
}

.site-footer__developer a {
	color: inherit;
	font-weight: 700;
	text-decoration: none;
}

.site-footer__developer a:hover,
.site-footer__developer a:focus-visible {
	color: #fff;
	text-decoration: underline;
}

@media screen and (max-width: 60em) {
	.site-footer__widgets {
		grid-template-columns: 1fr;
	}

	.site-footer__bottom-inner {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}

	/*
	 * Stacked, the two credits are too long for one line, so they centre as
	 * whole units instead of as a ragged run of text: "Design by Roshan &" and
	 * "Developed by Whitehill Solution" each stay together and each line is
	 * centred on its own. The gap replaces the word spacing a flex container
	 * drops between the items.
	 */
	.site-footer__developer {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: center;
		gap: 0 0.35rem;
	}

	.site-footer__credit-sep {
		margin: 0;
	}
}

@media screen and (max-width: 37.5em) {
	.site-footer__shell {
		width: min(100% - 24px, 1280px);
	}
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
	display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
	display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

	/*rtl:ignore*/
	float: left;

	/*rtl:ignore*/
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {

	/*rtl:ignore*/
	float: right;

	/*rtl:ignore*/
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Slider Revision
--------------------------------------------- */
.home-hero-slider {
	background: #101820;
}

.home-hero-slider__track {
	min-height: clamp(560px, 75vh, 840px);
}

.home-hero-slide__overlay {
	background:
		linear-gradient(90deg, rgba(255, 106, 0, 0.9) 0%, rgba(255, 106, 0, 0.9) 35%, rgba(255, 106, 0, 0) 35.1%),
		linear-gradient(90deg, rgba(0, 0, 0, 0.18) 30%, rgba(0, 0, 0, 0.38) 100%);
}

.home-hero-slide__content-wrap {
	width: 100%;
	max-width: 100%;
	justify-content: flex-start;
	padding: clamp(2rem, 5vw, 4rem);
}

.home-hero-slide__panel {
	width: min(100%, 1120px);
	margin-right: 0;
	margin-left: clamp(1rem, 3vw, 2.5rem);
	padding: clamp(2rem, 4vw, 3rem) 0;
}

.home-hero-slide__subtitle {
	max-width: 24rem;
	margin: 0 0 1.1rem;
	font-size: 0.82rem;
	letter-spacing: 0.34em;
	opacity: 0.92;
}

.home-hero-slide__title {
	max-width: min(78vw, 1320px);
	font-size: clamp(2.55rem, 5.4vw, 6.15rem);
	font-weight: 800;
	line-height: 1.22;
	letter-spacing: 0.015em;
	text-transform: none;
	text-wrap: balance;
}

.home-hero-slide__button {
	margin-top: 1.8rem;
	padding: 1.05rem 1.7rem;
	box-shadow: none;
}

.home-hero-slider__dots {
	left: 52%;
	top: auto;
	bottom: 12rem;
	flex-direction: row;
	gap: 0.55rem;
	transform: translateX(-50%);
}

.home-hero-slider__dot {
	width: 0.85rem;
	height: 0.85rem;
	border-color: rgba(255, 255, 255, 0.3);
	background: rgba(255, 255, 255, 0.16);
}

.home-hero-slider__dot.is-active {
	background: #ff6a00;
	border-color: #ff6a00;
}

.home-hero-slider__nav {
	right: 0;
	bottom: 0;
	padding: 0;
	background: rgba(255, 255, 255, 0.98);
	box-shadow: 0 -12px 28px rgba(0, 0, 0, 0.08);
}

.home-hero-slider__arrow {
	gap: 0.55rem;
	padding: 1.4rem 1.7rem;
	font-size: 0.9rem;
	letter-spacing: 0.16em;
}

@media screen and (max-width: 75em) {
	.home-hero-slide__overlay {
		background:
			linear-gradient(90deg, rgba(255, 106, 0, 0.9) 0%, rgba(255, 106, 0, 0.9) 42%, rgba(255, 106, 0, 0) 42.1%),
			linear-gradient(90deg, rgba(0, 0, 0, 0.12) 26%, rgba(0, 0, 0, 0.42) 100%);
	}

	.home-hero-slide__title {
		max-width: min(86vw, 980px);
		font-size: clamp(2.25rem, 5.25vw, 4.65rem);
	}

	.home-hero-slider__dots {
		left: 50%;
		bottom: 9rem;
	}
}

@media screen and (max-width: 60em) {
	.home-hero-slider__track {
		min-height: 640px;
	}

	.home-hero-slide__overlay {
		background:
			linear-gradient(180deg, rgba(255, 106, 0, 0.92) 0%, rgba(255, 106, 0, 0.92) 56%, rgba(255, 106, 0, 0.18) 56%, rgba(0, 0, 0, 0.32) 100%);
	}

	.home-hero-slide__content-wrap {
		align-items: flex-start;
		padding-top: 4rem;
	}

	.home-hero-slide__panel {
		margin-left: 0;
		padding-right: 1rem;
	}

	.home-hero-slide__title {
		max-width: 100%;
		font-size: clamp(2.1rem, 6.75vw, 3.75rem);
	}

	.home-hero-slider__dots {
		left: 1.5rem;
		transform: none;
		bottom: 6.5rem;
	}
}

@media screen and (max-width: 37.5em) {
	.home-hero-slider__track {
		min-height: 560px;
	}

	.home-hero-slide__content-wrap {
		padding: 1.5rem 1.25rem 5.5rem;
	}

	.home-hero-slide__subtitle {
		font-size: 0.72rem;
		letter-spacing: 0.24em;
	}

	.home-hero-slide__title {
		font-size: clamp(1.7rem, 9vw, 2.85rem);
		line-height: 1.3;
	}

	.home-hero-slide__button {
		width: auto;
		min-width: 10rem;
	}

	.home-hero-slider__dots {
		left: 1.25rem;
		bottom: 5.8rem;
	}

	.home-hero-slider__nav {
		left: auto;
		width: auto;
	}

	.home-hero-slider__arrow {
		padding: 1rem 1.1rem;
		font-size: 0.76rem;
	}
}

/* Featured Products
--------------------------------------------- */
.home-featured-products {
	padding: clamp(3.5rem, 7vw, 6rem) 0;
	background: #fff;
}

.home-featured-products__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-featured-products__header {
	margin-bottom: 1.2rem;
	text-align: center;
}

.home-featured-products__title {
	margin: 0;
	color: #1F2058;
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
}

.home-featured-products__tabs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.6rem;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto 2.6rem;
	padding: 0.4rem;
	border-radius: 999px;
	background: #f1f5fa;
	border: 1px solid #dde5ee;
}

.home-featured-products__tab {
	position: relative;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: #5b6b82;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
	padding: 0.72rem 1.6rem;
	cursor: pointer;
	white-space: nowrap;
	transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.home-featured-products__tab:hover,
.home-featured-products__tab:focus {
	color: #1F2058;
	background: #e2ebf6;
}

.home-featured-products__tab:focus-visible {
	outline: 2px solid #f26522;
	outline-offset: 2px;
}

.home-featured-products__tab.is-active,
.home-featured-products__tab.is-active:hover,
.home-featured-products__tab.is-active:focus {
	color: #fff;
	background: #1F2058;
	box-shadow: 0 8px 18px rgba(31, 32, 88, 0.22);
}

.home-featured-products__panel {
	display: none;
}

.home-featured-products__panel.is-active {
	display: block;
}

.home-featured-products__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 1.8rem;
}

.product-showcase-card {
	display: flex;
	flex: 1 1 300px;
	max-width: 380px;
	flex-direction: column;
	overflow: hidden;
	border-radius: 1.1rem;
	background: #165ea8;
	box-shadow: 0 18px 34px rgba(16, 35, 63, 0.1);
	min-height: 100%;
}

.product-showcase-card__image-link,
.product-showcase-card__button {
	text-decoration: none;
}

.product-showcase-card__image-wrap {
	position: relative;
	background: linear-gradient(90deg, #f3f8ff 0%, #dceefe 100%);
	aspect-ratio: 1.2 / 1;
}

.product-showcase-card__image {
	display: block;
	width: 110%;
	height: 110%;
	object-fit: cover;
}

.product-showcase-card__image--placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #eff5fb 0%, #bed8f6 100%);
}

.product-showcase-card__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.8rem 1.25rem 2rem;
	text-align: center;
	flex: 1;
}

.product-showcase-card__title {
	margin: 0;
	color: #fff;
	font-size: clamp(1.35rem, 1.6vw, 1.9rem);
	font-weight: 800;
	line-height: 1.15;
}

.product-showcase-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.6rem;
	min-width: 9rem;
	padding: 0.95rem 1.6rem;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-size: 0.95rem;
	font-weight: 700;
}

.product-showcase-card__button:hover,
.product-showcase-card__button:focus {
	background: #ff6214;
	color: #fff;
}

@media screen and (max-width: 75em) {
	.product-showcase-card {
		flex-basis: 280px;
	}
}

@media screen and (max-width: 60em) {
	.home-featured-products__tabs {
		max-width: 100%;
		gap: 0.4rem;
	}

	.home-featured-products__tab {
		padding: 0.65rem 1.15rem;
		font-size: 0.86rem;
	}

	.product-showcase-card {
		min-height: auto;
	}

	.product-showcase-card__image-wrap {
		min-height: 230px;
	}
}

@media screen and (max-width: 37.5em) {
	.home-featured-products__shell {
		width: min(100% - 24px, 1280px);
	}

	.product-showcase-card {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* Homepage About
--------------------------------------------- */
.home-about {
	position: relative;
	padding: clamp(3.5rem, 7vw, 6.5rem) 0;
	background:
		linear-gradient(90deg, rgba(16, 35, 63, 0.04) 1px, transparent 1px) 0 0 / 160px 160px,
		linear-gradient(rgba(16, 35, 63, 0.04) 1px, transparent 1px) 0 0 / 160px 160px,
		#fff;
	overflow: hidden;
}

.home-about::before,
.home-about::after {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	border: 1px solid rgba(16, 35, 63, 0.06);
	transform: rotate(32deg);
	pointer-events: none;
}

.home-about::before {
	top: -180px;
	left: -120px;
}

.home-about::after {
	right: -150px;
	bottom: -180px;
}

.home-about__shell {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 4vw, 4.5rem);
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-about__section-header {
	grid-column: 1 / -1;
	margin-bottom: 0.5rem;
	text-align: center;
}

.home-about__section-title {
	margin: 0;
	color: #1F2058;
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
}

.home-about__visual {
	position: relative;
}

.home-about__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem;
}

.home-about__image-card {
	overflow: hidden;
	border-radius: 0.35rem;
	box-shadow: 0 18px 38px rgba(16, 35, 63, 0.1);
	background: #edf2f7;
}

.home-about__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 220px;
	object-fit: cover;
}

.home-about__years {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	color: #ff6214;
	font-size: clamp(4rem, 9vw, 8rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	text-shadow:
		-2px -2px 0 #fff,
		2px -2px 0 #fff,
		-2px 2px 0 #fff,
		2px 2px 0 #fff;
}

.home-about__content {
	max-width: 620px;
}

.home-about__title {
	margin: 0;
	color: #26282d;
	font-size: clamp(2rem, 4vw, 4rem);
	font-weight: 800;
	line-height: 1.08;
}

.home-about__title-highlight {
	color: #ff6214;
}

.home-about__quote {
	margin: 1.6rem 0 0;
	padding: 0;
	border: 0;
	color: #35373c;
	font-size: clamp(1.05rem, 1.4vw, 1.35rem);
	font-weight: 700;
	line-height: 1.7;
	text-align: justify;
}

.home-about__description {
	margin: 1.4rem 0 0;
	color: #676d76;
	font-size: 1.02rem;
	line-height: 1.9;
	text-align: justify;
}

.home-about__signature {
	margin-top: 1.6rem;
	color: #111;
	font-family: "Brush Script MT", "Segoe Script", cursive;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1;
}

@media screen and (max-width: 75em) {
	.home-about__shell {
		grid-template-columns: 1fr;
	}

	.home-about__content {
		max-width: 100%;
	}
}

@media screen and (max-width: 37.5em) {
	.home-about__shell {
		width: min(100% - 24px, 1280px);
	}

	.home-about__grid {
		gap: 0.65rem;
	}

	.home-about__image {
		min-height: 150px;
	}

	.home-about__years {
		font-size: clamp(3.2rem, 18vw, 5rem);
	}
}

.home-testimonials {
	position: relative;
	overflow: hidden;
	padding: 5.5rem 0 4.5rem;
	background:
		radial-gradient(circle at top left, rgba(255, 255, 255, 0.14) 0, rgba(255, 255, 255, 0.14) 18%, transparent 18.5%),
		linear-gradient(135deg, #2b8ced 0%, #58a9f7 100%);
}

.home-testimonials__shell {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 72px;
	align-items: center;
	width: min(100% - 32px, 1180px);
	margin: 0 auto;
}

.home-testimonials__stage {
	text-align: center;
}

.home-testimonials__header {
	max-width: 1260px;
	margin: 0 auto 2rem;
	text-align: center;
}

.home-testimonials__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
}

.home-testimonials__description {
	max-width: 1260px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.95);
	font-size: clamp(1rem, 1.3vw, 1.12rem);
	line-height: 1.75;
	text-align: center;
}

.home-testimonials__slides {
	position: relative;
	min-height: 230px;
}

.home-testimonials__slide {
	max-width: 760px;
	margin: 0 auto;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	text-align: center;
}

.home-testimonials__slide.is-active {
	opacity: 1;
	transform: translateY(0);
}

.home-testimonials__slide[hidden] {
	display: none;
}

.home-testimonials__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 0;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.55);
	font-size: 5rem;
	line-height: 1;
	cursor: pointer;
	transition: color 0.2s ease, transform 0.2s ease;
}

.home-testimonials__nav:hover,
.home-testimonials__nav:focus-visible {
	color: #fff;
	transform: scale(1.06);
	outline: none;
}

.home-testimonials__text {
	margin: 0 auto 2rem;
	padding: 0;
	border: 0;
	color: #fff;
	font-size: clamp(1.05rem, 1.9vw, 1.45rem);
	line-height: 1.9;
	text-align: center;
}

.home-testimonials__rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	margin-bottom: 0.9rem;
	text-align: center;
}

.home-testimonials__stars {
	color: #ffd257;
	font-size: 1.1rem;
	letter-spacing: 0.12em;
}

.home-testimonials__stars .fa-regular {
	color: rgba(255, 210, 87, 0.45);
}

.home-testimonials__rating-name {
	color: #fff;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.home-testimonials__role {
	margin: 0;
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.98rem;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
}

.home-testimonials__avatars {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.15rem;
	margin-top: 2.75rem;
}

.home-testimonials__avatar-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	height: 74px;
	padding: 0;
	border: 4px solid rgba(255, 255, 255, 0.18);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	opacity: 0.5;
	cursor: pointer;
	transition: transform 0.2s ease, opacity 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.home-testimonials__avatar-button:hover,
.home-testimonials__avatar-button:focus-visible,
.home-testimonials__avatar-button.is-active {
	opacity: 1;
	border-color: rgba(255, 255, 255, 0.9);
	box-shadow: 0 16px 28px rgba(12, 67, 130, 0.28);
	outline: none;
}

.home-testimonials__avatar-button.is-active {
	transform: scale(1.26);
}

.home-testimonials__avatar {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.home-testimonials__avatar-fallback {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.12);
}

.home-testimonials__avatar-button.is-active .home-testimonials__avatar-fallback {
	background: rgba(255, 255, 255, 0.2);
}

@media screen and (max-width: 37.5em) {
	.home-testimonials {
		padding: 4rem 0 3.25rem;
	}

	.home-testimonials__shell {
		grid-template-columns: 44px minmax(0, 1fr) 44px;
		width: min(100% - 20px, 1180px);
	}

	.home-testimonials__nav {
		width: 40px;
		height: 40px;
		font-size: 3.5rem;
	}

	.home-testimonials__description {
		font-size: 1rem;
		line-height: 1.8;
	}

	.home-testimonials__slides {
		min-height: 300px;
	}

	.home-testimonials__rating {
		flex-direction: column;
		gap: 0.4rem;
	}

	.home-testimonials__avatars {
		flex-wrap: wrap;
		gap: 0.85rem;
		margin-top: 2rem;
	}

	.home-testimonials__avatar-button {
		width: 58px;
		height: 58px;
	}

	.home-testimonials__avatar-button.is-active {
		transform: scale(1.12);
	}
}

/* Projects
--------------------------------------------- */
.project-single {
	padding: clamp(2.5rem, 6vw, 5rem) 0;
	background: #f6f8fb;
}

.project-single__shell {
	width: min(100% - 32px, 1200px);
	margin: 0 auto;
}

.project-single__article {
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 20px 38px rgba(16, 35, 63, 0.08);
}

.project-single__title {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.05;
}

.project-single__header {
	margin-bottom: 1.75rem;
}

.project-single__thumbnail {
	margin-bottom: 1.5rem;
	overflow: hidden;
	border-radius: 1rem;
}

.project-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(280px, 0.9fr);
	gap: 2rem;
}

.project-single__meta {
	padding: 1.4rem;
	border-radius: 1rem;
	background: #10233f;
	color: #fff;
}

.project-single__meta-title,
.project-single__meta h3 {
	margin-top: 0;
}

.project-single__meta-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.project-single__meta-item + .project-single__meta-item {
	margin-top: 0.95rem;
	padding-top: 0.95rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.project-single__meta-label {
	display: block;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.project-single__meta-value {
	display: block;
	margin-top: 0.25rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.6;
}

.project-single__meta-block {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

@media screen and (max-width: 60em) {
	.project-single__layout {
		grid-template-columns: 1fr;
	}
}

/* Homepage Projects
--------------------------------------------- */
.home-projects {
	padding: clamp(3rem, 6vw, 5rem) 0;
	background: #f6f8fb;
}

.home-projects__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-projects__header {
	margin-bottom: 2rem;
	text-align: center;
}

.home-projects__title {
	margin: 0;
	color: #1F2058;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
}

.home-projects__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.home-project-card {
	overflow: hidden;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 18px 34px rgba(16, 35, 63, 0.08);
}

.home-project-card__image-link,
.home-project-card__title a,
.home-project-card__link {
	text-decoration: none;
}

.home-project-card__image-wrap {
	aspect-ratio: 1.2 / 1;
	background: #dde5ee;
}

.home-project-card__image,
.home-project-card__image--placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.home-project-card__image--placeholder {
	background: linear-gradient(135deg, #dfe6ee 0%, #b9cadf 100%);
}

.home-project-card__content {
	padding: 1.25rem;
}

.home-project-card__title {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.3;
}

.home-project-card__title a {
	color: #10233f;
}

.home-project-card__meta {
	margin: 0.6rem 0 0;
	color: #68788d;
}

.home-project-card__link {
	display: inline-block;
	margin-top: 1rem;
	color: #ff6214;
	font-weight: 700;
}

@media screen and (max-width: 75em) {
	.home-projects__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 37.5em) {
	.home-projects__shell {
		width: min(100% - 24px, 1280px);
	}

	.home-projects__grid {
		grid-template-columns: 1fr;
	}
}

/* Homepage Certificates
--------------------------------------------- */
.home-certificates {
	padding: clamp(3rem, 6vw, 5rem) 0;
	position: relative;
	overflow: hidden;
	background: #0d63b3;
}

.home-certificates__shell {
	position: relative;
	z-index: 1;
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-certificates__header {
	margin-bottom: 2rem;
	text-align: center;
}

.home-certificates__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
}

.home-certificates__description {
	max-width: 1260px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.95);
	font-size: clamp(1rem, 1.3vw, 1.12rem);
	line-height: 1.75;
	text-align: center;
}

/*
 * Wrapping flex rather than a fixed grid: the section rarely holds a multiple of
 * four certificates, and a grid would leave two logos sitting in the left half of
 * the row. The calc() basis still produces --cert-cols per row.
 */
.home-certificates__grid {
	--cert-gap: 1rem;
	--cert-cols: 4;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--cert-gap);
	max-width: 660px;
	margin: 0 auto;
}

.certificate-card {
	display: flex;
	flex: 0 1 calc((100% - (var(--cert-cols) - 1) * var(--cert-gap)) / var(--cert-cols));
}

.certificate-card__link {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	padding: 0;
	background: transparent;
	box-shadow: none;
	text-decoration: none;
	transition: transform 0.2s ease;
}

.certificate-card__link:hover,
.certificate-card__link:focus {
	transform: translateY(-4px);
}

.certificate-card__frame {
	position: relative;
	padding: 0.6rem;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
}

.certificate-card__image,
.certificate-card__image--placeholder {
	display: block;
	width: 100%;
	height: 110px;
	object-fit: contain;
	border-radius: 0.7rem;
	background: #fff;
}

.certificate-card__image--placeholder {
	background: linear-gradient(135deg, #eff5fb 0%, #d8e5f3 100%);
}

.certificate-card__title {
	margin: 0.8rem 0 0;
	color: #fff;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
}

.home-certificates::before,
.home-certificates::after {
	content: "";
	position: absolute;
	border: 1px solid rgba(255, 255, 255, 0.12);
	transform: rotate(32deg);
	pointer-events: none;
}

.home-certificates::before {
	top: -60px;
	left: -80px;
	width: 420px;
	height: 260px;
}

.home-certificates::after {
	left: 40px;
	top: 90px;
	width: 320px;
	height: 200px;
}

@media screen and (max-width: 60em) {
	.home-certificates__grid {
		--cert-cols: 2;
		max-width: 340px;
	}
}

@media screen and (max-width: 37.5em) {
	.home-certificates__shell {
		width: min(100% - 24px, 1280px);
	}

	.home-certificates__grid {
		--cert-cols: 1;
	}
}

/* Homepage Contact
--------------------------------------------- */
.home-contact {
	padding: clamp(3rem, 6vw, 5rem) 0;
	background: #f6f8fb;
}

.home-contact__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-contact__header {
	margin-bottom: 2rem;
	text-align: center;
}

.home-contact__title {
	margin: 0;
	color: #1F2058;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
}

.home-contact__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.home-contact__card {
	padding: 1.5rem;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 18px 34px rgba(16, 35, 63, 0.08);
}

.home-contact__card-title {
	margin: 0 0 1rem;
	color: #10233f;
	font-size: 1.35rem;
	font-weight: 800;
}

.home-contact__card-title--secondary {
	margin-top: 1.6rem;
}

.home-contact__text {
	margin: 0;
	color: #657488;
	line-height: 1.8;
}

.home-contact__media {
	overflow: hidden;
	border-radius: 0.85rem;
	background: #e8eef5;
	min-height: 320px;
}

.home-contact__media iframe,
.home-contact__media video,
.home-contact__media embed,
.home-contact__media object {
	display: block;
	width: 100%;
	height: 320px;
	border: 0;
}

.home-contact__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 320px;
	padding: 1rem;
	color: #6a7686;
	text-align: center;
}

@media screen and (max-width: 75em) {
	.home-contact__grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 37.5em) {
	.home-contact__shell {
		width: min(100% - 24px, 1280px);
	}
}

/* Scroll To Top
--------------------------------------------- */
.scroll-top-button {
	position: fixed;
	right: 1.5rem;
	bottom: 1.5rem;
	z-index: 999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-size: 1rem;
	box-shadow: 0 16px 30px rgba(16, 35, 63, 0.24);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease, background-color 0.2s ease;
}

.scroll-top-button.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.scroll-top-button:hover,
.scroll-top-button:focus {
	background: #1F2058;
	color: #fff;
}

@media screen and (max-width: 37.5em) {
	.scroll-top-button {
		right: 1rem;
		bottom: 1rem;
		width: 3rem;
		height: 3rem;
	}
}

/* Ask Question Modal
--------------------------------------------- */
body.ask-question-open {
	overflow: hidden;
}

body.get-quote-open {
	overflow: hidden;
}

.ask-question-modal {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: none;
}

.ask-question-modal.is-open {
	display: block;
}

.ask-question-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 35, 63, 0.66);
}

.ask-question-modal__dialog {
	position: relative;
	width: min(100% - 32px, 720px);
	margin: 6vh auto 0;
	padding: 2rem;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 28px 64px rgba(0, 0, 0, 0.24);
}

.ask-question-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	border: 0;
	background: transparent;
	color: #10233f;
	font-size: 1.15rem;
	cursor: pointer;
}

.ask-question-modal__title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	font-weight: 800;
}

.ask-question-modal__text {
	margin: 0.75rem 0 0;
	color: #6a7686;
}

.ask-question-modal__notice {
	margin-top: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 0.75rem;
	font-weight: 600;
}

.ask-question-modal__notice--success {
	background: #e9f9ef;
	color: #177245;
}

.ask-question-modal__notice--error {
	background: #fdecec;
	color: #b32b2b;
}

.ask-question-form {
	margin-top: 1.5rem;
}

.ask-question-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.ask-question-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin-bottom: 1rem;
}

.ask-question-form__field label {
	color: #10233f;
	font-weight: 700;
}

.ask-question-form__field input,
.ask-question-form__field textarea {
	border: 1px solid #d9e1ea;
	border-radius: 0.8rem;
	padding: 0.9rem 1rem;
	background: #f8fafc;
}

.ask-question-form__field input:focus,
.ask-question-form__field textarea:focus {
	border-color: #1F2058;
	outline: 0;
}

.ask-question-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 12rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 800;
	padding: 1rem 1.6rem;
	cursor: pointer;
}

.ask-question-form__submit:hover,
.ask-question-form__submit:focus {
	background: #1F2058;
	color: #fff;
}

.get-quote-trigger {
	position: fixed;
	right: 1.25rem;
	bottom: 6.5rem;
	z-index: 1050;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, #ff6214, #ff8b4d);
	color: #fff;
	box-shadow: 0 18px 36px rgba(255, 98, 20, 0.28);
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	padding: 0.85rem;
	cursor: pointer;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.get-quote-trigger:hover,
.get-quote-trigger:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 24px 40px rgba(16, 35, 63, 0.24);
}

.get-quote-trigger__text {
	max-width: 0;
	opacity: 0;
	white-space: nowrap;
	overflow: hidden;
	transition: max-width 0.2s ease, opacity 0.2s ease, margin-right 0.2s ease;
}

.get-quote-trigger:hover .get-quote-trigger__text,
.get-quote-trigger:focus-visible .get-quote-trigger__text,
.get-quote-trigger:active .get-quote-trigger__text {
	max-width: 9rem;
	opacity: 1;
	margin-right: 0.75rem;
}

.get-quote-trigger__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.18);
	font-size: 1rem;
}

.get-quote-modal {
	position: fixed;
	inset: 0;
	z-index: 1105;
	display: none;
}

.get-quote-modal.is-open {
	display: block;
}

.get-quote-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 35, 63, 0.72);
}

.get-quote-modal__dialog {
	position: relative;
	width: min(100% - 32px, 1060px);
	max-height: 88vh;
	overflow: auto;
	margin: 4vh auto 0;
	padding: 2rem;
	border-radius: 1.2rem;
	background: #fff;
	box-shadow: 0 28px 64px rgba(0, 0, 0, 0.24);
}

.get-quote-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	border: 0;
	background: transparent;
	color: #10233f;
	font-size: 1.15rem;
	cursor: pointer;
}

.get-quote-modal__title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	font-weight: 800;
}

.get-quote-modal__text {
	margin: 0.75rem 0 0;
	color: #6a7686;
}

.get-quote-modal__notice {
	margin-top: 1rem;
	padding: 0.85rem 1rem;
	border-radius: 0.75rem;
	font-weight: 600;
}

.get-quote-modal__notice--success {
	background: #e9f9ef;
	color: #177245;
}

.get-quote-modal__notice--error {
	background: #fdecec;
	color: #b32b2b;
}

.get-quote-form {
	margin-top: 1.5rem;
}

.get-quote-form__grid,
.get-quote-form__product-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.get-quote-form__product-grid {
	grid-template-columns: 1.4fr 1fr 0.8fr;
}

.get-quote-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	margin-bottom: 1rem;
}

.get-quote-form__field label {
	color: #10233f;
	font-weight: 700;
}

.get-quote-form__field input,
.get-quote-form__field textarea,
.get-quote-form__field select {
	border: 1px solid #d9e1ea;
	border-radius: 0.8rem;
	padding: 0.9rem 1rem;
	background: #f8fafc;
}

.get-quote-form__field input:focus,
.get-quote-form__field textarea:focus,
.get-quote-form__field select:focus {
	border-color: #1F2058;
	outline: 0;
}

.get-quote-form__products-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0.25rem 0 1rem;
}

.get-quote-form__products-title {
	margin: 0;
	color: #10233f;
	font-size: 1.1rem;
	font-weight: 800;
}

.get-quote-form__products-text {
	margin: 0.35rem 0 0;
	color: #6a7686;
	font-size: 0.95rem;
}

.get-quote-form__add-product,
.get-quote-form__remove-product {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	border: 0;
	border-radius: 999px;
	font-weight: 700;
	cursor: pointer;
}

.get-quote-form__add-product {
	background: #10233f;
	color: #fff;
	padding: 0.8rem 1rem;
	white-space: nowrap;
}

.get-quote-form__remove-product {
	background: #fff1ea;
	color: #c14f1a;
	padding: 0.55rem 0.85rem;
}

.get-quote-form__products {
	display: grid;
	gap: 1rem;
	margin-bottom: 1rem;
}

.get-quote-form__product-row {
	padding: 1rem;
	border: 1px solid #e2e8f0;
	border-radius: 1rem;
	background: #fbfdff;
}

.get-quote-form__product-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.get-quote-form__product-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	background: #eef3f8;
	color: #10233f;
	font-size: 0.85rem;
	font-weight: 700;
}

.get-quote-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 14rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 800;
	padding: 1rem 1.6rem;
	cursor: pointer;
}

.get-quote-form__submit:hover,
.get-quote-form__submit:focus-visible,
.get-quote-form__add-product:hover,
.get-quote-form__add-product:focus-visible {
	background: #1F2058;
	color: #fff;
}

@media screen and (max-width: 37.5em) {
	.ask-question-modal__dialog {
		width: min(100% - 24px, 720px);
		padding: 1.35rem;
	}

	.ask-question-form__grid {
		grid-template-columns: 1fr;
	}

	.ask-question-form__submit {
		width: 100%;
	}

	.get-quote-trigger {
		right: 0.85rem;
		bottom: 5rem;
		top: auto;
		transform: none;
		padding: 0.9rem 1.05rem;
	}

	.get-quote-trigger:hover,
	.get-quote-trigger:focus-visible {
		transform: translateY(-2px);
	}

	.get-quote-modal__dialog {
		width: min(100% - 24px, 1060px);
		max-height: 92vh;
		padding: 1.35rem;
	}

	.get-quote-form__grid,
	.get-quote-form__product-grid {
		grid-template-columns: 1fr;
	}

	.get-quote-form__products-header,
	.get-quote-form__product-top {
		flex-direction: column;
		align-items: flex-start;
	}

	.get-quote-form__add-product,
	.get-quote-form__submit {
		width: 100%;
	}
}

/* About Us Page
--------------------------------------------- */
.about-page {
	background: #fff;
}

.about-page__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.about-page__hero {
	padding: clamp(3rem, 6vw, 5rem) 0;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.95), rgba(16, 35, 63, 0.82)),
		linear-gradient(90deg, rgba(255, 98, 20, 0.18), rgba(255, 98, 20, 0)),
		#10233f;
}

.about-page__hero-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 40%);
	align-items: center;
	gap: clamp(2rem, 4vw, 4rem);
}

.about-page__hero-copy {
	max-width: 700px;
}

.about-page__hero-title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.5rem, 5vw, 4.75rem);
	font-weight: 800;
	line-height: 1.02;
}

.about-page__hero-text {
	margin: 1.2rem 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.05rem;
	line-height: 1.9;
	max-width: 640px;
}

.about-page__hero-media img {
	display: block;
	width: 100%;
	border-radius: 1.2rem;
	object-fit: cover;
	box-shadow: 0 24px 44px rgba(0, 0, 0, 0.22);
}

.about-page__section {
	padding: clamp(3rem, 7vw, 6rem) 0;
}

.about-page__section--alt {
	background: #f6f8fb;
}

.about-page__section--company-showcase {
	position: relative;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(16, 35, 63, 0.03) 1px, transparent 1px) 0 0 / 160px 160px,
		linear-gradient(rgba(16, 35, 63, 0.03) 1px, transparent 1px) 0 0 / 160px 160px,
		#fff;
}

.about-page__section--company-showcase::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(32deg, transparent 24%, rgba(16, 35, 63, 0.04) 24.5%, transparent 25%) 0 0 / 320px 320px;
	pointer-events: none;
}

.about-page__company-showcase {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 4rem);
}

.about-page__company-visual {
	position: relative;
	min-height: 760px;
}

.about-page__float-image {
	position: absolute;
	overflow: hidden;
	border: 10px solid #fff;
	border-radius: 0.4rem;
	box-shadow: 0 24px 40px rgba(16, 35, 63, 0.12);
	animation-timing-function: ease-in-out;
	animation-iteration-count: infinite;
	animation-direction: alternate;
	will-change: transform;
}

.about-page__float-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.about-page__float-image--one {
	top: 0;
	left: 11%;
	width: 46%;
	height: 425px;
	animation-name: about-float-one;
	animation-duration: 8.5s;
	z-index: 1;
}

.about-page__float-image--two {
	top: 170px;
	left: 29%;
	width: 52%;
	height: 455px;
	animation-name: about-float-two;
	animation-duration: 9.4s;
	z-index: 3;
}

.about-page__float-image--three {
	left: 0;
	bottom: 16px;
	width: 48%;
	height: 305px;
	animation-name: about-float-three;
	animation-duration: 10s;
	z-index: 2;
}

.about-page__float-image--four {
	right: 12%;
	bottom: 72px;
	width: 23%;
	height: 280px;
	animation-name: about-float-four;
	animation-duration: 9.7s;
	z-index: 4;
}

.about-page__company-content {
	max-width: 700px;
}

.about-page__company-label {
	margin: 0 0 0.9rem;
	color: #ff6214;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.about-page__experience-head {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 2rem;
}

.about-page__experience-years {
	color: #232323;
	font-size: clamp(5rem, 10vw, 9rem);
	font-weight: 800;
	line-height: 0.88;
	letter-spacing: -0.06em;
}

.about-page__experience-title {
	margin: 0;
	padding-left: 2rem;
	border-left: 1px solid rgba(16, 35, 63, 0.12);
	color: #232323;
	font-size: clamp(2rem, 4vw, 4rem);
	font-weight: 800;
	line-height: 1.03;
}

.about-page__company-text {
	margin: 1.5rem 0 0;
	color: #6b7078;
	line-height: 1.9;
}

.about-page__feature-list {
	margin-top: 2.4rem;
	background: rgba(255, 255, 255, 0.92);
	backdrop-filter: blur(2px);
}

.about-page__feature-item {
	padding: 1.4rem 0;
	border-top: 1px solid rgba(16, 35, 63, 0.1);
}

.about-page__feature-item:last-child {
	border-bottom: 1px solid rgba(16, 35, 63, 0.1);
}

.about-page__feature-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.about-page__feature-title-wrap {
	display: flex;
	align-items: center;
	gap: 0.9rem;
}

.about-page__feature-dot {
	position: relative;
	width: 0.92rem;
	height: 0.92rem;
	border-radius: 50%;
	background: #ff6214;
	flex-shrink: 0;
	box-shadow: 0 0 0 6px rgba(255, 98, 20, 0.14);
}

.about-page__feature-dot::after {
	content: "";
	position: absolute;
	inset: 0.22rem;
	border-radius: 50%;
	background: #fff;
	opacity: 0.85;
}

.about-page__feature-title {
	margin: 0;
	color: #232323;
	font-size: clamp(1.2rem, 2vw, 1.8rem);
	font-weight: 800;
}

.about-page__feature-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	min-width: 3rem;
	min-height: 3rem;
	padding: 0;
	flex: 0 0 3rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 98, 20, 0.65);
	background: #fff;
	color: #ff6214;
	font-size: 2rem;
	line-height: 1;
	flex-shrink: 0;
	box-shadow: 0 12px 28px rgba(255, 98, 20, 0.14);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.about-page__feature-toggle:hover,
.about-page__feature-toggle:focus-visible {
	background: #ff6214;
	color: #fff;
	transform: translateY(-1px);
	outline: none;
}

.about-page__feature-toggle-icon {
	position: relative;
	display: block;
	width: 1rem;
	height: 1rem;
}

.about-page__feature-toggle-icon::before,
.about-page__feature-toggle-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1rem;
	height: 2px;
	background: currentColor;
	transform: translate(-50%, -50%);
}

.about-page__feature-toggle-icon::after {
	width: 2px;
	height: 1rem;
}

.about-page__feature-item.is-open .about-page__feature-toggle-icon::after {
	display: none;
}

.about-page__feature-content[hidden] {
	display: none;
}

.about-page__feature-text {
	margin: 1rem 0 0 1.6rem;
	color: #6b7078;
	line-height: 1.9;
}

.about-page__section-title {
	margin: 0;
	color: #10233f;
	font-weight: 800;
	line-height: 1.08;
	font-size: clamp(1.8rem, 3vw, 3rem);
}

.about-page__section-text {
	margin: 1rem 0 0;
	color: #66778d;
	line-height: 1.9;
}

.about-page__mission-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
	align-items: stretch;
}

@media screen and (max-width: 75em) {
	.about-page__hero-layout,
	.about-page__company-showcase {
		grid-template-columns: 1fr;
	}

	.about-page__company-visual {
		min-height: 700px;
	}

	.about-page__core-values-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 37.5em) {
	.about-page__shell {
		width: min(100% - 24px, 1280px);
	}

	.about-page__hero {
		padding: 2.4rem 0;
	}

	.purpose-card {
		padding: 1.35rem;
	}

	.about-page__company-visual {
		min-height: 560px;
	}

	.about-page__float-image--one {
		left: 0;
		width: 56%;
		height: 215px;
	}

	.about-page__float-image--two {
		top: 122px;
		left: 24%;
		width: 62%;
		height: 255px;
	}

	.about-page__float-image--three {
		width: 56%;
		height: 170px;
	}

	.about-page__float-image--four {
		right: 0;
		bottom: 60px;
		width: 27%;
		height: 180px;
	}

	.about-page__experience-head {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}

	.about-page__experience-title {
		padding-left: 0;
		border-left: 0;
	}

	.about-page__feature-toggle {
		width: 2.6rem;
		height: 2.6rem;
		min-width: 2.6rem;
		min-height: 2.6rem;
		flex-basis: 2.6rem;
	}

	.about-page__feature-text {
		margin-left: 0;
	}

	.about-page__core-values-grid {
		grid-template-columns: 1fr;
	}
}

@keyframes about-float-one {
	0% { transform: translate(0, 0); }
	50% { transform: translate(24px, 34px); }
	100% { transform: translate(-18px, 50px); }
}

@keyframes about-float-two {
	0% { transform: translate(0, 0); }
	50% { transform: translate(-28px, 20px); }
	100% { transform: translate(18px, -26px); }
}

@keyframes about-float-three {
	0% { transform: translate(0, 0); }
	50% { transform: translate(20px, -24px); }
	100% { transform: translate(-14px, 30px); }
}

@keyframes about-float-four {
	0% { transform: translate(0, 0); }
	50% { transform: translate(-18px, 26px); }
	100% { transform: translate(12px, -24px); }
}

/* Contact Page
--------------------------------------------- */
.contact-page {
	background:
		linear-gradient(180deg, #f3f6fb 0, #fff 24%, #fff 100%);
}

.contact-page__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.contact-page__hero {
	position: relative;
	overflow: hidden;
	padding: clamp(3.5rem, 8vw, 6rem) 0;
	background:
		radial-gradient(circle at top right, rgba(255, 98, 20, 0.28), transparent 28%),
		linear-gradient(135deg, rgba(16, 35, 63, 0.98), rgba(16, 35, 63, 0.84)),
		#10233f;
}

.contact-page__hero::after {
	content: "";
	position: absolute;
	inset: auto -10% -30% auto;
	width: clamp(240px, 32vw, 420px);
	aspect-ratio: 1;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow:
		0 0 0 36px rgba(255, 255, 255, 0.03),
		0 0 0 76px rgba(255, 255, 255, 0.02);
	pointer-events: none;
}

.contact-page__hero-layout {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.85fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

.contact-page__eyebrow,
.contact-page__section-label {
	margin: 0 0 1rem;
	color: #ff9a66;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.contact-page__hero-title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.8rem, 5vw, 5rem);
	font-weight: 800;
	line-height: 0.98;
	max-width: 12ch;
}

.contact-page__hero-text {
	margin: 1.35rem 0 0;
	max-width: 680px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.05rem;
	line-height: 1.9;
}

.contact-page__hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 2rem;
}

.contact-page__primary-action,
.contact-page__secondary-action,
.contact-page__modal-action {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	padding: 0.95rem 1.35rem;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.contact-page__primary-action {
	background: #ff6214;
	color: #fff;
	box-shadow: 0 18px 32px rgba(255, 98, 20, 0.28);
}

.contact-page__secondary-action {
	border: 1px solid rgba(255, 255, 255, 0.16);
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	backdrop-filter: blur(5px);
}

.contact-page__primary-action:hover,
.contact-page__primary-action:focus-visible,
.contact-page__secondary-action:hover,
.contact-page__secondary-action:focus-visible,
.contact-page__modal-action:hover,
.contact-page__modal-action:focus-visible,
.contact-page__info-item:hover,
.contact-page__info-item:focus-visible,
.contact-page__social-link:hover,
.contact-page__social-link:focus-visible {
	transform: translateY(-2px);
	outline: none;
}

.contact-page__hero-panel {
	display: grid;
	gap: 1rem;
}

.contact-page__stat-card {
	padding: 1.4rem;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 1.2rem;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(8px);
	box-shadow: 0 16px 28px rgba(0, 0, 0, 0.16);
}

.contact-page__stat-icon,
.contact-page__info-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: rgba(255, 98, 20, 0.16);
	color: #ff8b4d;
	font-size: 1rem;
}

.contact-page__stat-label {
	margin: 1rem 0 0.45rem;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.contact-page__stat-value {
	margin: 0;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.5;
}

.contact-page__section {
	padding: clamp(3rem, 7vw, 5.5rem) 0;
}

.contact-page__section--alt {
	background:
		linear-gradient(90deg, rgba(16, 35, 63, 0.03) 1px, transparent 1px) 0 0 / 140px 140px,
		linear-gradient(rgba(16, 35, 63, 0.03) 1px, transparent 1px) 0 0 / 140px 140px,
		#f6f8fb;
}

.contact-page__details-grid,
.contact-page__locations,
.contact-page__map-card {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2rem);
}

.contact-page__details-card,
.contact-page__cta-card,
.contact-page__location-card,
.contact-page__content-card {
	padding: clamp(1.6rem, 3vw, 2.4rem);
	border-radius: 1.4rem;
	background: #fff;
	box-shadow: 0 24px 40px rgba(16, 35, 63, 0.08);
}

.contact-page__cta-card {
	background:
		linear-gradient(180deg, rgba(255, 98, 20, 0.08), rgba(255, 98, 20, 0)),
		#10233f;
	color: #fff;
}

.contact-page__section-title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.8rem, 3vw, 3rem);
	font-weight: 800;
	line-height: 1.08;
	max-width: 14ch;
}

.contact-page__cta-card .contact-page__section-title,
.contact-page__cta-card .contact-page__section-text,
.contact-page__cta-card .contact-page__section-label {
	color: #fff;
}

.contact-page__cta-card .contact-page__section-label {
	color: #ff9a66;
}

.contact-page__section-text,
.contact-page__location-text {
	margin: 1rem 0 0;
	color: #66778d;
	line-height: 1.9;
}

.contact-page__info-list {
	display: grid;
	gap: 0.95rem;
	margin-top: 2rem;
}

.contact-page__info-item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1rem 1.1rem;
	border: 1px solid rgba(16, 35, 63, 0.08);
	border-radius: 1rem;
	background: #f8fafc;
	color: inherit;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.contact-page__info-content {
	display: block;
}

.contact-page__info-label {
	display: block;
	color: #7b8795;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.contact-page__info-value {
	display: block;
	margin-top: 0.25rem;
	color: #10233f;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.5;
}

.contact-page__socials {
	margin-top: 2rem;
}

.contact-page__socials-title {
	margin: 0 0 1rem;
	color: #10233f;
	font-weight: 700;
}

.contact-page__social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
}

.contact-page__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: #10233f;
	color: #fff;
	text-decoration: none;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.contact-page__social-link:hover,
.contact-page__social-link:focus-visible {
	background: #ff6214;
}

.contact-page__feature-list {
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.contact-page__feature-list li {
	position: relative;
	padding-left: 1.7rem;
	color: rgba(255, 255, 255, 0.82);
	line-height: 1.8;
}

.contact-page__feature-list li + li {
	margin-top: 0.8rem;
}

.contact-page__feature-list li::before {
	content: "";
	position: absolute;
	top: 0.72rem;
	left: 0;
	width: 0.72rem;
	height: 0.72rem;
	border-radius: 50%;
	background: #ff6214;
	box-shadow: 0 0 0 6px rgba(255, 98, 20, 0.18);
}

.contact-page__modal-action {
	margin-top: 2rem;
	background: #fff;
	color: #10233f;
}

.contact-page__location-title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.5rem, 2.4vw, 2.2rem);
	font-weight: 800;
	line-height: 1.15;
}

.contact-page__map-card {
	align-items: stretch;
	padding: clamp(1.4rem, 3vw, 2rem);
	border-radius: 1.4rem;
	background: #10233f;
	box-shadow: 0 28px 48px rgba(16, 35, 63, 0.14);
}

.contact-page__map-copy .contact-page__section-title,
.contact-page__map-copy .contact-page__section-text,
.contact-page__map-copy .contact-page__section-label {
	color: #fff;
}

.contact-page__map-copy .contact-page__section-label {
	color: #ff9a66;
}

.contact-page__map-frame {
	overflow: hidden;
	border-radius: 1.1rem;
	min-height: 340px;
	background: #d9dee5;
}

.contact-page__map-frame iframe,
.contact-page__map-frame embed,
.contact-page__map-frame object {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 340px;
	border: 0;
}

.contact-page__map-placeholder {
	display: grid;
	place-items: center;
	min-height: 340px;
	padding: 1.5rem;
	color: #44566d;
	text-align: center;
}

.contact-page__section--content {
	padding-top: 0;
}

.contact-page__content-card > :first-child {
	margin-top: 0;
}

.contact-page__content-card > :last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 75em) {
	.contact-page__hero-layout,
	.contact-page__details-grid,
	.contact-page__locations,
	.contact-page__map-card {
		grid-template-columns: 1fr;
	}

	.contact-page__section-title {
		max-width: none;
	}
}

@media screen and (max-width: 37.5em) {
	.contact-page__shell {
		width: min(100% - 24px, 1280px);
	}

	.contact-page__hero-title {
		max-width: none;
	}

	.contact-page__hero-actions {
		flex-direction: column;
	}

	.contact-page__primary-action,
	.contact-page__secondary-action,
	.contact-page__modal-action {
		justify-content: center;
		width: 100%;
	}
}

/* Our Team Page
--------------------------------------------- */
.team-page {
	background: #fff;
}

.team-page__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.team-page__hero {
	padding: clamp(3rem, 6vw, 5rem) 0 2rem;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.96), rgba(16, 35, 63, 0.86)),
		#10233f;
	text-align: center;
}

.team-page__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	font-weight: 800;
	line-height: 1.02;
}

.team-page__intro {
	max-width: 760px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1.05rem;
	line-height: 1.9;
	text-align: center;
}

.team-page__section {
	padding: clamp(3rem, 7vw, 5rem) 0;
}

.team-page__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}

.team-page__card {
	overflow: hidden;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.team-page__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 46px rgba(16, 35, 63, 0.12);
}

.team-page__media {
	aspect-ratio: 4 / 4.4;
	background: #e9eef5;
}

.team-page__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.team-page__content {
	padding: 1.25rem 1.1rem 1.35rem;
	text-align: center;
}

.team-page__member-name {
	margin: 0;
	color: #10233f;
	font-size: 1.3rem;
	font-weight: 800;
	line-height: 1.2;
}

.team-page__member-position {
	margin: 0.55rem 0 0;
	color: #ff6214;
	font-weight: 700;
	text-align: center;
}

.team-page__empty {
	margin: 0;
	color: #66778d;
	text-align: center;
}

@media screen and (max-width: 75em) {
	.team-page__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media screen and (max-width: 56.25em) {
	.team-page__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 37.5em) {
	.team-page__shell {
		width: min(100% - 24px, 1280px);
	}

	.team-page__grid {
		grid-template-columns: 1fr;
	}
}

/* Dealers Page
--------------------------------------------- */
.dealers-page {
	background: #f3f5f8;
}

.dealers-page__shell {
	width: min(100% - 32px, 1440px);
	margin: 0 auto;
}

.dealers-page__hero {
	padding: clamp(2.4rem, 5vw, 4rem) 0 1.6rem;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.96), rgba(16, 35, 63, 0.88)),
		#10233f;
	text-align: center;
}

.dealers-page__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	font-weight: 800;
	line-height: 1.02;
}

.dealers-page__intro {
	max-width: 780px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.05rem;
	line-height: 1.9;
	text-align: center;
}

.dealers-page__section {
	padding: 1.5rem 0 3rem;
}

.dealers-page__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 1.5rem;
}

.dealers-page__search-input,
.dealers-page__province-select,
.dealers-page__radius-select {
	height: 48px;
	padding: 0 0.95rem;
	border: 1px solid rgba(16, 35, 63, 0.12);
	border-radius: 0.4rem;
	background: #fff;
	color: #10233f;
	font-size: 1rem;
}

.dealers-page__search-input {
	min-width: 240px;
	flex: 1 1 280px;
}

.dealers-page__province-select,
.dealers-page__radius-select {
	min-width: 150px;
}

.dealers-page__action {
	height: 48px;
	padding: 0 1rem;
	border: 0;
	border-radius: 0.35rem;
	background: #1296e8;
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.dealers-page__action:hover,
.dealers-page__action:focus-visible {
	background: #0d84cc;
	outline: none;
	transform: translateY(-1px);
}

.dealers-page__action--ghost {
	background: #ff6214;
}

.dealers-page__action--ghost:hover,
.dealers-page__action--ghost:focus-visible {
	background: #e95a12;
}

.dealers-page__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	gap: 0;
	align-items: start;
	border-radius: 0.9rem;
	overflow: hidden;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.dealers-page__map-wrap {
	height: 730px;
	background: #fff;
}

.dealers-page__sidebar {
	height: 730px;
	padding: 0.85rem;
	background: #f47a2b;
}

.dealers-page__map {
	width: 100%;
	height: 100%;
}

.dealers-page__results {
	display: grid;
	gap: 1rem;
	max-height: 100%;
	overflow-y: auto;
	padding-right: 0.15rem;
}

.dealers-page__card {
	padding: 1.4rem;
	border-radius: 0.8rem;
	background: #f9c72e;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
}

.dealers-page__card.is-active {
	outline: 3px solid rgba(16, 35, 63, 0.14);
}

.dealers-page__card-title {
	margin: 0;
	color: #10233f;
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.2;
}

.dealers-page__card-phone,
.dealers-page__card-meta,
.dealers-page__card-location,
.dealers-page__card-coords {
	margin: 0.22rem 0 0;
	color: #10233f;
	font-size: 0.98rem;
	text-align: left;
	line-height: 1.35;
}

.dealers-page__card-actions {
	margin-top: 0.55rem;
}

.dealers-page__card-button {
	padding: 0.85rem 1.1rem;
	border: 0;
	border-radius: 0.35rem;
	background: #22262c;
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.dealers-page__card-button:hover,
.dealers-page__card-button:focus-visible {
	background: #101318;
	outline: none;
}

.dealers-page__empty {
	margin: 0;
	color: #fff;
	text-align: center;
}

.dealers-page .leaflet-control-container .leaflet-bar a {
	width: 34px;
	height: 34px;
	line-height: 34px;
	color: #111;
}

.dealers-page .leaflet-popup-content-wrapper {
	border-radius: 0.65rem;
}

.dealers-page .leaflet-popup-content {
	margin: 0.9rem 1rem;
	font-family: inherit;
}

.dealers-page .leaflet-marker-icon {
	filter: hue-rotate(-15deg) saturate(1.2);
}

@media screen and (max-width: 75em) {
	.dealers-page__layout {
		grid-template-columns: 1fr;
	}

	.dealers-page__map-wrap {
		height: 520px;
	}

	.dealers-page__sidebar {
		height: auto;
	}
}

@media screen and (max-width: 37.5em) {
	.dealers-page__shell {
		width: min(100% - 24px, 1280px);
	}

	.dealers-page__toolbar > * {
		width: 100%;
	}

	.dealers-page__map-wrap,
	.dealers-page__sidebar {
		height: 480px;
	}

	.dealers-page__sidebar {
		padding: 0.7rem;
	}
}

/* Blog Page
--------------------------------------------- */
.blog-page {
	background: #f6f8fb;
}

.blog-page__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.blog-page__hero {
	padding: clamp(3rem, 6vw, 5rem) 0 2rem;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.96), rgba(16, 35, 63, 0.84)),
		linear-gradient(90deg, rgba(255, 98, 20, 0.18), rgba(255, 98, 20, 0)),
		#10233f;
	text-align: center;
}

.blog-page__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.5rem, 5vw, 4.75rem);
	font-weight: 800;
	line-height: 1.02;
}

.blog-page__intro {
	max-width: 760px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.05rem;
	line-height: 1.9;
	text-align: center;
}

.blog-page__section {
	padding: clamp(3rem, 7vw, 5rem) 0;
}

.blog-page__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.blog-card {
	overflow: hidden;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 46px rgba(16, 35, 63, 0.12);
}

.blog-card__media {
	display: block;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, #dfe8f4, #edf2f8);
}

.blog-card__image,
.blog-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.blog-card__content {
	padding: 1.35rem;
}

.blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.9rem;
	margin-bottom: 0.85rem;
	color: #6b7788;
	font-size: 0.86rem;
	font-weight: 700;
}

.blog-card__categories a {
	color: #ff6214;
	text-decoration: none;
}

.blog-card__categories a:hover,
.blog-card__categories a:focus-visible {
	text-decoration: underline;
}

.blog-card__title {
	margin: 0;
	font-size: 1.35rem;
	line-height: 1.25;
}

.blog-card__title a {
	color: #10233f;
	text-decoration: none;
}

.blog-card__title a:hover,
.blog-card__title a:focus-visible {
	color: #ff6214;
}

.blog-card__excerpt {
	margin: 0.9rem 0 0;
	color: #5d6877;
	line-height: 1.8;
}

.blog-card__link {
	display: inline-flex;
	margin-top: 1rem;
	color: #10233f;
	font-weight: 800;
	text-decoration: none;
}

.blog-card__link:hover,
.blog-card__link:focus-visible {
	color: #ff6214;
}

.blog-page__pagination {
	margin-top: 2rem;
}

.blog-page__empty {
	margin: 0;
	color: #66778d;
	text-align: center;
}

@media screen and (max-width: 75em) {
	.blog-page__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 37.5em) {
	.blog-page__shell {
		width: min(100% - 24px, 1280px);
	}

	.blog-page__grid {
		grid-template-columns: 1fr;
	}
}

/* Careers
--------------------------------------------- */
.careers-archive,
.career-single {
	background: #f6f8fb;
}

.careers-archive__shell,
.career-single__shell {
	width: min(100% - 32px, 1240px);
	margin: 0 auto;
}

.careers-archive__hero,
.career-single__hero {
	padding: clamp(3rem, 6vw, 5rem) 0;
	background:
		linear-gradient(135deg, rgba(31, 32, 88, 0.96), rgba(16, 35, 63, 0.86)),
		radial-gradient(circle at top right, rgba(255, 98, 20, 0.22), rgba(255, 98, 20, 0) 38%),
		#1F2058;
}

.careers-archive__eyebrow,
.career-single__eyebrow,
.career-single__form-label {
	margin: 0 0 0.9rem;
	color: #ff9b68;
	font-size: 0.9rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.careers-archive__title,
.career-single__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.5rem, 5vw, 4.8rem);
	font-weight: 800;
	line-height: 1.02;
}

.careers-archive__intro,
.career-single__intro {
	max-width: 760px;
	margin: 1.25rem 0 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.05rem;
	line-height: 1.9;
}

.careers-archive__section,
.career-single__section {
	padding: clamp(3rem, 6vw, 5rem) 0;
}

.careers-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.career-card,
.career-single__content-card,
.career-single__sidebar-card,
.career-single__summary-card,
.career-single__form-card {
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 22px 40px rgba(16, 35, 63, 0.08);
}

.career-card {
	display: flex;
	flex-direction: column;
	padding: 1.5rem;
}

.career-card__head {
	margin-bottom: 1rem;
}

.career-card__status {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.8rem;
	border-radius: 999px;
	background: rgba(255, 98, 20, 0.12);
	color: #ff6214;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.career-card__title {
	margin: 1rem 0 0;
	font-size: 1.45rem;
	font-weight: 800;
	line-height: 1.25;
}

.career-card__title a {
	color: #10233f;
	text-decoration: none;
}

.career-card__excerpt {
	margin: 0;
	color: #64768a;
	line-height: 1.8;
}

.career-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
	margin-top: 1.3rem;
}

.career-card__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.55rem 0.8rem;
	border-radius: 999px;
	background: #f4f7fb;
	color: #33465a;
	font-size: 0.9rem;
	font-weight: 600;
}

.career-card__link,
.career-single__apply-button,
.career-application-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	padding: 0.95rem 1.4rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 18px 30px rgba(255, 98, 20, 0.22);
}

.career-card__link {
	margin-top: auto;
	align-self: flex-start;
}

.career-card__link:hover,
.career-card__link:focus-visible,
.career-single__apply-button:hover,
.career-single__apply-button:focus-visible,
.career-application-form__submit:hover,
.career-application-form__submit:focus-visible {
	transform: translateY(-2px);
	outline: none;
	box-shadow: 0 22px 36px rgba(255, 98, 20, 0.28);
}

.careers-archive__pagination {
	margin-top: 2rem;
}

.careers-archive__empty {
	padding: 2rem;
	border-radius: 1.25rem;
	background: #fff;
	text-align: center;
	box-shadow: 0 22px 40px rgba(16, 35, 63, 0.08);
}

.careers-archive__empty h2 {
	margin: 0;
	color: #10233f;
}

.careers-archive__empty p {
	margin: 1rem 0 0;
	color: #65768a;
	line-height: 1.8;
}

.careers-archive__page-content {
	margin-top: 2rem;
}

.career-single__hero-layout,
.career-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.9fr);
	gap: 1.75rem;
	align-items: start;
}

.career-single__apply-button {
	margin-top: 1.8rem;
}

.career-single__summary-card {
	padding: 1.5rem;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(10px);
}

.career-single__summary-item + .career-single__summary-item {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.career-single__summary-label {
	display: block;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.career-single__summary-value {
	display: block;
	margin-top: 0.3rem;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.6;
}

.career-single__content-card,
.career-single__sidebar-card,
.career-single__form-card {
	padding: clamp(1.5rem, 3vw, 2rem);
}

.career-single__content {
	color: #516274;
	line-height: 1.9;
}

.career-single__content h2,
.career-single__content h3,
.career-single__content h4 {
	color: #10233f;
	line-height: 1.2;
}

.career-single__content > :first-child,
.career-single__sidebar-card > :first-child,
.career-single__form-card > :first-child {
	margin-top: 0;
}

.career-single__content > :last-child,
.career-single__sidebar-card > :last-child,
.career-single__form-card > :last-child {
	margin-bottom: 0;
}

.career-single__sidebar {
	display: grid;
	gap: 1.5rem;
}

.career-single__sidebar-card--accent {
	background: linear-gradient(180deg, #1F2058, #10233f);
	color: #fff;
}

.career-single__sidebar-title {
	margin: 0 0 1rem;
	font-size: 1.3rem;
	font-weight: 800;
	color: inherit;
}

.career-single__meta-list,
.career-single__checklist {
	margin: 0;
	padding-left: 1.2rem;
	line-height: 1.9;
}

.career-single__form-card {
	background:
		linear-gradient(180deg, rgba(255, 98, 20, 0.05), rgba(255, 98, 20, 0)),
		#fff;
}

.career-single__form-title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.8rem, 3vw, 2.8rem);
	font-weight: 800;
	line-height: 1.1;
}

.career-single__form-text {
	margin: 1rem 0 0;
	color: #627488;
	line-height: 1.8;
}

.career-single__notice {
	margin-top: 1.5rem;
	padding: 1rem 1.1rem;
	border-radius: 1rem;
	font-weight: 700;
	line-height: 1.7;
}

.career-single__notice--success {
	background: #e9f8ee;
	color: #1c6a3d;
}

.career-single__notice--error {
	background: #fdecec;
	color: #9c2d2d;
}

.career-application-form__stack,
.career-application-form__uploads {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.career-application-form__stack {
	margin-top: 2rem;
}

.career-application-form__uploads {
	margin-top: 1rem;
}

.career-application-form__field label {
	display: block;
	margin-bottom: 0.55rem;
	color: #10233f;
	font-size: 0.95rem;
	font-weight: 700;
}

.career-application-form__required {
	color: #ff6214;
}

.career-application-form__field input,
.career-application-form__field textarea {
	width: 100%;
	padding: 0.95rem 1rem;
	border: 1px solid #d6e0ea;
	border-radius: 0.95rem;
	background: #fff;
	color: #10233f;
	font-size: 1rem;
}

.career-application-form__field input:focus,
.career-application-form__field textarea:focus {
	border-color: #1F2058;
	outline: 0;
	box-shadow: 0 0 0 4px rgba(31, 32, 88, 0.12);
}

.career-application-form__field input[type="file"] {
	padding: 0.78rem 1rem;
	background: #f8fafc;
}

.career-application-form__field textarea {
	min-height: 138px;
	resize: vertical;
}

.career-application-form__submit {
	margin-top: 1.5rem;
}

.career-single__form-notes {
	margin-top: 1.5rem;
	padding: 1.1rem 1.2rem;
	border-radius: 1rem;
	background: #f8fafc;
	border: 1px solid #e2e9f1;
}

.career-single__form-notes-title {
	margin: 0 0 0.85rem;
	color: #10233f;
	font-size: 1.05rem;
	font-weight: 800;
}

.career-single__closed-state {
	margin-top: 1.5rem;
	padding: 1rem 1.1rem;
	border-radius: 1rem;
	background: #fff4ec;
	color: #8b481d;
	font-weight: 700;
}

body.career-success-open {
	overflow: hidden;
}

.career-success-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
}

.career-success-modal.is-open {
	display: block;
}

.career-success-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 16, 33, 0.72);
	backdrop-filter: blur(5px);
}

.career-success-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100% - 32px, 520px);
	margin: min(10vh, 72px) auto 0;
	padding: 2rem 1.6rem 1.7rem;
	border-radius: 1.4rem;
	background:
		radial-gradient(circle at top right, rgba(255, 98, 20, 0.12), transparent 30%),
		linear-gradient(180deg, #fff, #f9fbff);
	box-shadow: 0 28px 60px rgba(16, 35, 63, 0.3);
	text-align: center;
}

.career-success-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #eef2f8;
	color: #10233f;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.career-success-modal__close:hover,
.career-success-modal__close:focus-visible {
	background: #e1e7f1;
	transform: scale(1.05);
	outline: none;
}

.career-success-modal__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.8rem;
	height: 4.8rem;
	margin-bottom: 1rem;
	border-radius: 50%;
	background: linear-gradient(135deg, #1f9d55, #34c26f);
	color: #fff;
	font-size: 2rem;
	box-shadow: 0 16px 30px rgba(31, 157, 85, 0.25);
}

.career-success-modal__eyebrow {
	margin: 0;
	color: #ff6214;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.career-success-modal__title {
	margin: 0.7rem 0 0;
	color: #10233f;
	font-size: clamp(1.7rem, 4vw, 2.3rem);
	font-weight: 800;
	line-height: 1.1;
}

.career-success-modal__text {
	margin: 1rem 0 0;
	color: #5f7287;
	line-height: 1.85;
}

.career-success-modal__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 150px;
	margin-top: 1.5rem;
	padding: 0.9rem 1.3rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 800;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	box-shadow: 0 18px 30px rgba(255, 98, 20, 0.22);
}

.career-success-modal__button:hover,
.career-success-modal__button:focus-visible {
	transform: translateY(-2px);
	outline: none;
	box-shadow: 0 22px 36px rgba(255, 98, 20, 0.28);
}

@media screen and (max-width: 75em) {
	.careers-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.career-single__hero-layout,
	.career-single__layout {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 37.5em) {
	.careers-archive__shell,
	.career-single__shell {
		width: min(100% - 24px, 1240px);
	}

	.careers-archive__grid {
		grid-template-columns: 1fr;
	}

	.career-card__link,
	.career-single__apply-button,
	.career-application-form__submit {
		width: 100%;
	}

	.career-success-modal__dialog {
		width: min(100% - 24px, 520px);
		padding: 1.8rem 1.2rem 1.4rem;
	}
}

/* Single Post Page
--------------------------------------------- */
.single-post-page {
	background: #f6f8fb;
}

.single-post-page__shell {
	width: min(100% - 32px, 980px);
	margin: 0 auto;
}

.single-post-page__hero {
	padding: clamp(3rem, 6vw, 5rem) 0 2.4rem;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.96), rgba(16, 35, 63, 0.84)),
		linear-gradient(90deg, rgba(255, 98, 20, 0.18), rgba(255, 98, 20, 0)),
		#10233f;
}

.single-post-page__categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 1rem;
}

.single-post-page__categories a {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.8rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-size: 0.82rem;
	font-weight: 800;
	text-decoration: none;
}

.single-post-page__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	font-weight: 800;
	line-height: 1.04;
}

.single-post-page__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin-top: 1.3rem;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.95rem;
	font-weight: 700;
}

.single-post-page__section {
	padding: clamp(2.5rem, 6vw, 4rem) 0 5rem;
}

.single-post-article,
.single-post-page__nav .post-navigation,
.single-post-page__comments .comments-area {
	padding: clamp(1.4rem, 4vw, 2.3rem);
	border-radius: 1.2rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.single-post-article__media {
	margin-bottom: 1.5rem;
	border-radius: 1rem;
	overflow: hidden;
}

.single-post-article__image {
	display: block;
	width: 100%;
	height: auto;
}

.single-post-article__content {
	color: #314152;
	font-size: 1.04rem;
	line-height: 1.9;
}

.single-post-article__content h2,
.single-post-article__content h3,
.single-post-article__content h4 {
	color: #10233f;
	line-height: 1.2;
	margin-top: 1.8rem;
	margin-bottom: 0.8rem;
}

.single-post-article__content p,
.single-post-article__content li {
	color: #4f5d6e;
}

.single-post-article__content a {
	color: #ff6214;
}

.single-post-article__content blockquote {
	margin: 1.5rem 0;
	padding: 1rem 1.25rem;
	border-left: 4px solid #ff6214;
	background: #f9fbfe;
	color: #10233f;
}

.single-post-article__footer {
	margin-top: 2rem;
	padding-top: 1.2rem;
	border-top: 1px solid rgba(16, 35, 63, 0.08);
}

.single-post-article__label {
	display: block;
	margin-bottom: 0.8rem;
	color: #10233f;
	font-size: 0.85rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.single-post-article__tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.single-post-article__tag-list a {
	display: inline-flex;
	align-items: center;
	padding: 0.55rem 0.85rem;
	border-radius: 999px;
	background: #f1f5f9;
	color: #10233f;
	font-size: 0.9rem;
	font-weight: 700;
	text-decoration: none;
}

.single-post-page__nav {
	margin-top: 1.5rem;
}

.single-post-page__nav .post-navigation {
	padding: 0;
	box-shadow: none;
}

.single-post-page__nav .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.single-post-page__nav .nav-previous,
.single-post-page__nav .nav-next {
	margin: 0;
	padding: 1.3rem;
	border-radius: 1rem;
	background: #f8fafc;
}

.single-post-page__nav .nav-subtitle {
	display: block;
	margin-bottom: 0.45rem;
	color: #ff6214;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.single-post-page__nav .nav-title {
	color: #10233f;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.5;
}

.single-post-page__comments {
	margin-top: 1.5rem;
}

.single-post-page__comments .comments-area {
	padding: clamp(1.4rem, 4vw, 2rem);
}

@media screen and (max-width: 37.5em) {
	.single-post-page__shell {
		width: min(100% - 24px, 980px);
	}

	.single-post-page__nav .nav-links {
		grid-template-columns: 1fr;
	}
}

.kathmandu-steel-program-gallery__preview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 12px;
	margin: 12px 0;
}

.kathmandu-steel-program-gallery__item img {
	display: block;
	width: 100%;
	height: 120px;
	object-fit: cover;
	border-radius: 8px;
}

.kathmandu-steel-program-gallery__actions {
	display: flex;
	gap: 12px;
	align-items: center;
}

/* Home Programs
--------------------------------------------- */
.home-programs {
	padding: 5rem 0;
	background: #f6f8fb;
}

.home-programs__shell,
.program-archive__shell,
.program-single__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.home-programs__header {
	margin-bottom: 2rem;
	text-align: center;
}

.home-programs__title,
.program-archive__title,
.program-gallery__title {
	margin: 0;
	color: #10233f;
	font-size: clamp(2rem, 4vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
}

.home-programs__grid,
.program-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.home-program-card {
	overflow: hidden;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.home-program-card__image-link,
.home-program-card__title a,
.home-program-card__link {
	text-decoration: none;
}

.home-program-card__image-wrap {
	aspect-ratio: 16 / 10;
	background: #edf2f7;
}

.home-program-card__image,
.home-program-card__image--placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-program-card__image--placeholder {
	background: linear-gradient(135deg, #dbe5f1, #edf2f8);
}

.home-program-card__image--video-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #10233f;
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home-program-card__content {
	padding: 1.2rem;
}

.home-program-card__title {
	margin: 0;
	font-size: 1.3rem;
	line-height: 1.3;
}

.home-program-card__title a {
	color: #10233f;
}

.home-program-card__excerpt {
	margin: 0.85rem 0 0;
	color: #617083;
	line-height: 1.7;
}

.home-program-card__link {
	display: inline-flex;
	margin-top: 1rem;
	color: #ff6214;
	font-weight: 800;
}

/* Program Archive
--------------------------------------------- */
.program-archive,
.program-single,
.video-archive,
.video-single,
.products-archive {
	background: #f6f8fb;
}

.program-archive__hero,
.program-single__hero {
	padding: clamp(3rem, 6vw, 5rem) 0 2rem;
	background:
		linear-gradient(135deg, rgba(16, 35, 63, 0.96), rgba(16, 35, 63, 0.84)),
		linear-gradient(90deg, rgba(255, 98, 20, 0.18), rgba(255, 98, 20, 0)),
		#10233f;
	text-align: center;
}

.program-archive__title,
.program-single__title {
	color: #fff;
	font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.program-archive__intro,
.program-single__intro {
	max-width: 760px;
	margin: 1.25rem auto 0;
	color: rgba(255, 255, 255, 0.88);
	line-height: 1.9;
	text-align: center;
}

.program-archive__section,
.program-single__section {
	padding: clamp(3rem, 7vw, 5rem) 0;
}

.program-archive__pagination {
	margin-top: 2rem;
}

/* Products Page
--------------------------------------------- */
/* Single column: the left filter sidebar was removed, so the results area
   now spans the full width of the shell. */
.products-page__layout {
	display: block;
}

.products-page__results-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.products-page__count {
	margin: 0;
	color: #33465a;
	font-weight: 700;
}

.products-page__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;
}

.products-page__card-category {
	display: inline-flex;
	margin: 0 0 0.55rem;
	padding: 0.28rem 0.75rem;
	border-radius: 999px;
	background: #edf4ff;
	color: #1f4f8a;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.products-page__empty {
	padding: 2rem;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 18px 36px rgba(16, 35, 63, 0.08);
}

.products-page__empty h2 {
	margin: 0;
	color: #10233f;
}

.products-page__empty p {
	margin: 0.8rem 0 0;
	color: #617083;
	line-height: 1.8;
}

.products-page__empty-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.2rem;
	padding: 0.8rem 1.5rem;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.products-page__empty-link:hover,
.products-page__empty-link:focus,
.products-page__empty-link:visited {
	color: #fff;
}

/* Product Category Archive
--------------------------------------------- */
.product-category__eyebrow {
	margin: 0 0 0.6rem;
	color: #ff9a63;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.product-category-nav {
	padding: 1.6rem 0 0;
	background: #f6f8fb;
}

.product-category-nav__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.6rem;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	padding: 0.45rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid #e1e8f1;
	box-shadow: 0 12px 26px rgba(16, 35, 63, 0.07);
	list-style: none;
}

.product-category-nav__item {
	list-style: none;
	margin: 0;
}

.product-category-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.68rem 1.35rem;
	border-radius: 999px;
	color: #5b6b82;
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
	transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.product-category-nav__link:hover,
.product-category-nav__link:focus {
	color: #1F2058;
	background: #eef3f9;
}

.product-category-nav__link.is-current,
.product-category-nav__link.is-current:hover,
.product-category-nav__link.is-current:focus,
.product-category-nav__link.is-current:visited {
	color: #fff;
	background: #1F2058;
	box-shadow: 0 8px 18px rgba(31, 32, 88, 0.22);
}

.product-category-nav__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.55rem;
	height: 1.55rem;
	padding: 0 0.4rem;
	border-radius: 999px;
	background: #edf2f8;
	color: #5b6b82;
	font-size: 0.72rem;
	font-weight: 800;
}

.product-category-nav__link.is-current .product-category-nav__count {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

/* Program Single
--------------------------------------------- */
.program-single__article {
	padding: clamp(1.5rem, 4vw, 2.4rem);
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.program-single__featured {
	margin-bottom: 1.5rem;
	border-radius: 1rem;
	overflow: hidden;
}

.program-single__featured-image {
	display: block;
	width: 100%;
	height: auto;
}

.program-single__content {
	color: #4f5d6e;
	line-height: 1.9;
}

.video-single__player {
	overflow: hidden;
	margin-bottom: 1.5rem;
	border-radius: 1rem;
	background: #0d1b2a;
}

.video-single__player iframe,
.video-single__player video {
	display: block;
	width: 100%;
	height: 600px;
	border: 0;
}

/* Laptops: keep the player tall without pushing the page content off-screen. */
@media screen and (max-width: 75em) {

	.video-single__player iframe,
	.video-single__player video {
		height: 500px;
	}
}

/* Tablets. */
@media screen and (max-width: 60em) {

	.video-single__player iframe,
	.video-single__player video {
		height: 400px;
	}
}

/* Phones: fall back to the natural 16 / 9 ratio so nothing is letterboxed. */
@media screen and (max-width: 37.5em) {

	.video-single__player iframe,
	.video-single__player video {
		height: auto;
		aspect-ratio: 16 / 9;
		min-height: 200px;
	}
}

/* Reels / shorts are portrait, so give them a 9 / 16 player centred in the frame. */
.video-single__player--vertical iframe,
.video-single__player--vertical video {
	width: auto;
	height: 700px;
	max-width: 100%;
	margin: 0 auto;
	aspect-ratio: 9 / 16;
}

@media screen and (max-width: 75em) {

	.video-single__player--vertical iframe,
	.video-single__player--vertical video {
		height: 620px;
	}
}

@media screen and (max-width: 60em) {

	.video-single__player--vertical iframe,
	.video-single__player--vertical video {
		height: 540px;
	}
}

/* Phones: let the reel fill the column width at its natural ratio. */
@media screen and (max-width: 37.5em) {

	.video-single__player--vertical iframe,
	.video-single__player--vertical video {
		width: 100%;
		height: auto;
		min-height: 0;
		aspect-ratio: 9 / 16;
	}
}

.video-single__notice {
	margin-top: 1.25rem;
	padding: 1rem 1.25rem;
	border-left: 4px solid #ff6214;
	border-radius: 0.5rem;
	background: #fff4ec;
	color: #7a4b2f;
}

.program-gallery {
	margin-top: 2.5rem;
}

.program-gallery__header {
	margin-bottom: 1.5rem;
}

.program-gallery__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.program-gallery__item {
	display: block;
	overflow: hidden;
	border-radius: 1rem;
	background: #eef3f8;
}

.program-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.25s ease;
}

.program-gallery__item:hover .program-gallery__image {
	transform: scale(1.03);
}

.program-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) 72px;
	align-items: center;
	padding: 2rem;
	background: rgba(8, 13, 20, 0.92);
}

.program-lightbox[hidden] {
	display: none;
}

.program-lightbox__stage {
	max-width: min(1100px, 100%);
	margin: 0 auto;
	text-align: center;
}

.program-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: 78vh;
	margin: 0 auto;
	border-radius: 0.8rem;
}

.program-lightbox__caption {
	margin-top: 1rem;
	color: rgba(255, 255, 255, 0.86);
}

.program-lightbox__nav,
.program-lightbox__close {
	border: 0;
	background: transparent;
	color: #fff;
	cursor: pointer;
}

.program-lightbox__nav {
	font-size: 4rem;
}

.program-lightbox__close {
	position: absolute;
	top: 16px;
	right: 20px;
	font-size: 3rem;
	line-height: 1;
}

body.program-lightbox-open {
	overflow: hidden;
}

@media screen and (max-width: 75em) {
	.home-programs__grid,
	.program-archive__grid,
	.program-gallery__grid,
	.products-page__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 62em) {
	.product-category-nav__link {
		padding: 0.6rem 1.05rem;
		font-size: 0.84rem;
	}

	.product-category-nav__count {
		min-width: 1.4rem;
		height: 1.4rem;
	}
}

@media screen and (max-width: 37.5em) {
	.home-programs__shell,
	.program-archive__shell,
	.program-single__shell {
		width: min(100% - 24px, 1280px);
	}

	.home-programs__grid,
	.program-archive__grid,
	.program-gallery__grid,
	.products-page__grid {
		grid-template-columns: 1fr;
	}

	.program-lightbox {
		grid-template-columns: 44px minmax(0, 1fr) 44px;
		padding: 1rem;
	}

	.program-lightbox__nav {
		font-size: 2.8rem;
	}
}

/*--------------------------------------------------------------
# Footer - 3 column industrial layout
--------------------------------------------------------------*/
.site-footer__columns {
	display: grid;
	grid-template-columns: 1.25fr 0.9fr 1.1fr;
	gap: clamp(2rem, 4vw, 3.5rem);
	align-items: start;
}

.footer-column__title {
	position: relative;
	margin: 0 0 1.6rem;
	padding-bottom: 0.75rem;
	color: #fff;
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.footer-column__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 2.75rem;
	height: 3px;
	border-radius: 3px;
	background: #ff6214;
}

/* Column 1 - company information
--------------------------------------------- */
.footer-brand {
	margin-bottom: 1.1rem;
}

.footer-brand .custom-logo-link {
	display: inline-block;
	padding: 0.6rem 0.85rem;
	border-radius: 0.65rem;
	background: rgba(255, 255, 255, 0.96);
	line-height: 0;
}

.footer-brand .custom-logo {
	display: block;
	width: auto;
	max-width: 190px;
	height: auto;
	max-height: 62px;
}
@media (max-width: 767px) {
    .footer-brand .custom-logo {
        display: block;
        width: 160px;
        max-width: 190px;
        height: auto;
        max-height: 62px;
    }
}

.footer-brand__title {
	margin: 0;
	color: #fff;
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.2;
}

.footer-brand__title a {
	color: #fff;
}

.footer-company__text {
	margin: 0 0 1.35rem;
	max-width: 38ch;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.92rem;
	line-height: 1.75;
}

.footer-contact {
	display: grid;
	gap: 0.8rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.footer-contact__item {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.9rem;
	line-height: 1.6;
}

.footer-contact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.9rem;
	height: 1.9rem;
	margin-top: 0.05rem;
	border-radius: 0.5rem;
	background: rgba(255, 255, 255, 0.08);
	color: #ff6214;
	font-size: 0.8rem;
}

.footer-contact__text {
	min-width: 0;
	word-break: break-word;
}

.footer-contact__text a {
	color: rgba(255, 255, 255, 0.86);
	font-weight: 600;
}

.footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-social__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-size: 0.92rem;
	transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
	background: #ff6214;
	border-color: #ff6214;
	color: #fff;
	transform: translateY(-2px);
}

/* Column 2 - quick links
--------------------------------------------- */
.footer-links {
	display: grid;
	gap: 0.1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links li {
	list-style: none;
}

.footer-links a {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.4rem 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.5;
	transition: color 150ms ease, transform 150ms ease;
}

.footer-links a::before {
	content: "\f105";
	flex: 0 0 auto;
	color: #ff6214;
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free";
	font-size: 0.85rem;
	font-weight: 900;
}

.footer-links__link i {
	display: none;
}

.footer-links a:hover,
.footer-links a:focus-visible {
	color: #fff;
	transform: translateX(3px);
}

/* Column 3 - steel calculators
--------------------------------------------- */
.footer-calculators {
	display: grid;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-calculators__item {
	list-style: none;
}

.footer-calculators__link {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	width: 100%;
	padding: 0.5rem 0.7rem;
	border: 1px solid transparent;
	border-radius: 0.55rem;
	background: rgba(255, 255, 255, 0.04);
	color: rgba(255, 255, 255, 0.82);
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.45;
	text-align: left;
	cursor: pointer;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.footer-calculators__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 0.45rem;
	background: rgba(255, 98, 20, 0.16);
	color: #ff8a4c;
	font-size: 0.78rem;
	transition: background 160ms ease, color 160ms ease;
}

.footer-calculators__link:hover,
.footer-calculators__link:focus-visible {
	border-color: rgba(255, 98, 20, 0.55);
	background: rgba(255, 98, 20, 0.1);
	color: #fff;
}

.footer-calculators__link:hover .footer-calculators__icon,
.footer-calculators__link:focus-visible .footer-calculators__icon {
	background: #ff6214;
	color: #fff;
}

.site-footer .footer-calculators__link:focus-visible,
.site-footer .footer-social__link:focus-visible,
.site-footer .footer-links a:focus-visible,
.site-footer .footer-contact__text a:focus-visible {
	outline: 2px solid #ff8a4c;
	outline-offset: 2px;
}

/* Footer responsive
--------------------------------------------- */
@media screen and (max-width: 75em) {
	.site-footer__columns {
		grid-template-columns: 1.15fr 0.85fr 1.1fr;
		gap: 2rem;
	}
}

@media screen and (max-width: 60em) {
	.site-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2.25rem;
	}

	.footer-column--calculators {
		grid-column: 1 / -1;
	}

	.footer-calculators {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 46.875em) {
	.site-footer__columns {
		grid-template-columns: 1fr;
		gap: 2.25rem;
	}

	.footer-company__text {
		max-width: none;
	}
}

@media screen and (max-width: 37.5em) {
	.footer-calculators {
		grid-template-columns: 1fr;
	}

	.footer-column__title {
		margin-bottom: 1.25rem;
		font-size: 1.05rem;
	}
}

/*--------------------------------------------------------------
# Sticky header
#
# The header stays in the document flow (position: sticky), so nothing jumps
# when it pins and no spacer element is needed. js/sticky-header.js sets
# --ks-header-top to (admin bar height - top bar height) so the slim top bar
# scrolls away while the main bar with the logo, navigation, and CTA stays
# pinned at the top of the screen. Without JavaScript the whole header simply
# pins at top: 0, which still works.
--------------------------------------------------------------*/
.site-header--custom {
	position: -webkit-sticky;
	position: sticky;
	top: var(--ks-header-top, 0px);
	z-index: 900;
	transition: box-shadow 220ms ease;
}

.site-header--custom.is-stuck {
	box-shadow: 0 1px 0 var(--header-border), 0 14px 34px rgba(16, 35, 63, 0.16);
}

@media (prefers-reduced-motion: reduce) {
	.site-header--custom {
		transition: none;
	}
}

/* Keep the expanded mobile menu inside the viewport while the header is pinned. */
@media screen and (max-width: 60em) {
	.main-navigation.toggled > ul {
		max-height: calc(100vh - 10rem);
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
	}
}

.site-header--custom.ks-header-static {
	position: relative;
	top: auto;
}

/*--------------------------------------------------------------
# Team tabs, cards, and profile modal
--------------------------------------------------------------*/
.team-tabs {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.team-tabs__select-wrap {
	display: none;
	margin-bottom: 1.5rem;
}

.team-tabs__select {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--header-border);
	border-radius: 0.6rem;
	background: #fff;
	color: var(--header-text);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
}

.team-tabs__nav-wrap {
	position: relative;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
	border-bottom: 1px solid var(--header-border);
}

/*
 * width: fit-content plus auto margins centres the strip when the tabs fit, and
 * still scrolls from the first tab when they do not. justify-content: center
 * would make the leading tabs unreachable once the strip overflows.
 */
.team-tabs__nav {
	display: flex;
	gap: 0.4rem;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;
}

.team-tabs__nav::-webkit-scrollbar {
	height: 4px;
}

.team-tabs__nav::-webkit-scrollbar-thumb {
	border-radius: 4px;
	background: var(--header-border);
}

.team-tabs__tab {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex: 0 0 auto;
	padding: 0.9rem 1.2rem;
	border: 0;
	border-bottom: 3px solid transparent;
	background: transparent;
	color: var(--header-muted);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	white-space: nowrap;
	cursor: pointer;
	scroll-snap-align: start;
	transition: color 160ms ease, border-color 160ms ease;
}

.team-tabs__tab:hover {
	color: var(--header-text);
}

.team-tabs__tab.is-active {
	border-bottom-color: #ff6214;
	color: var(--header-text);
}

.team-tabs__tab:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: -2px;
}

.team-tabs__tab-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.5rem;
	height: 1.5rem;
	padding: 0 0.4rem;
	border-radius: 1rem;
	background: var(--header-surface-soft);
	color: var(--header-muted);
	font-size: 0.75rem;
	font-weight: 800;
}

.team-tabs__tab.is-active .team-tabs__tab-count {
	background: #ff6214;
	color: #fff;
}

.team-tabs__panel[hidden] {
	display: none;
}

.team-tabs__panel.is-active {
	animation: team-fade-in 260ms ease both;
}

@keyframes team-fade-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.team-tabs__panel.is-active {
		animation: none;
	}
}

.team-tabs__panel-intro {
	max-width: 70ch;
	margin: 0 auto 1.75rem;
	color: var(--header-muted);
	font-size: 1rem;
	text-align: center;
	line-height: 1.75;
}

/* Cards
--------------------------------------------- */
/*
 * Column counts come from Appearance > Customize > Team and arrive as the
 * --team-cols-d / -t / -m custom properties on each grid.
 *
 * Flex rather than grid: a grid can only centre whole tracks, so a partly filled
 * last row would still hang off the left edge. Wrapping flex items centre every
 * row, including the last one, while the calc() basis still yields exactly the
 * requested number of cards per row.
 */
.team-grid {
	--team-gap: clamp(1.25rem, 2.5vw, 1.85rem);
	--team-cols: var(--team-cols-d, 4);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--team-gap);
}

.team-card {
	display: flex;
	flex: 0 1 calc((100% - (var(--team-cols) - 1) * var(--team-gap)) / var(--team-cols));
	flex-direction: column;
	max-width: 420px;
	overflow: hidden;
	border: 1px solid var(--header-border);
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 10px 28px rgba(16, 35, 63, 0.06);
	transition: transform 200ms ease, box-shadow 200ms ease;
}

.team-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.12);
}

.team-card__media {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--header-surface-soft);
}

.team-card__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.team-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #b9c2cf;
	font-size: 3rem;
}

.team-card__body {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 1 1 auto;
	padding: 1.15rem 1.25rem 1.35rem;
	text-align: center;
}

.team-card__name {
	margin: 0;
	color: var(--header-text);
	font-size: 1.15rem;
	font-weight: 800;
	line-height: 1.3;
}

.team-card__role {
	margin: 0.35rem 0 0;
	color: #ff6214;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.team-card__bio {
	margin: 0.85rem 0 0;
	color: var(--header-muted);
	font-size: 0.92rem;
	line-height: 1.7;
}

.team-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	align-self: center;
	margin-top: auto;
	padding-top: 1.1rem;
	border: 0;
	background: transparent;
	color: var(--header-accent);
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: gap 160ms ease, color 160ms ease;
}

.team-card__link:hover,
.team-card__link:focus-visible {
	gap: 0.75rem;
	color: #ff6214;
}

.team-card__link:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: 3px;
}

/* Profile modal
--------------------------------------------- */
body.team-profile-open {
	overflow: hidden;
}

.team-profile-modal {
	position: fixed;
	inset: 0;
	z-index: 1108;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(0.75rem, 4vh, 3rem) 1rem;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.team-profile-modal[hidden] {
	display: none;
}

.team-profile-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(12, 27, 49, 0.72);
	opacity: 0;
	transition: opacity 200ms ease;
}

.team-profile-modal__dialog {
	position: relative;
	width: min(100%, 620px);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 28px 64px rgba(12, 27, 49, 0.3);
	opacity: 0;
	transform: translateY(18px) scale(0.985);
	transition: opacity 200ms ease, transform 220ms cubic-bezier(0.2, 0.8, 0.3, 1);
}

.team-profile-modal.is-open .team-profile-modal__backdrop {
	opacity: 1;
}

.team-profile-modal.is-open .team-profile-modal__dialog {
	opacity: 1;
	transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
	.team-profile-modal__backdrop,
	.team-profile-modal__dialog {
		transition: none;
	}
}

.team-profile-modal__close {
	position: absolute;
	top: 0.9rem;
	right: 0.9rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 1px solid var(--header-border);
	border-radius: 50%;
	background: #fff;
	color: var(--header-text);
	font-size: 1rem;
	cursor: pointer;
	transition: background 150ms ease, color 150ms ease;
}

.team-profile-modal__close:hover,
.team-profile-modal__close:focus-visible {
	background: #ff6214;
	border-color: #ff6214;
	color: #fff;
}

.team-profile__head {
	display: flex;
	align-items: center;
	gap: 1.15rem;
	padding-right: 2.5rem;
	margin-bottom: 1.35rem;
}

.team-profile__media {
	flex: 0 0 auto;
	width: 92px;
	height: 92px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--header-surface-soft);
}

.team-profile__media .team-card__image {
	width: 92px;
	height: 92px;
	object-fit: cover;
}

.team-profile__name {
	margin: 0;
	color: var(--header-text);
	font-size: clamp(1.3rem, 2.5vw, 1.6rem);
	font-weight: 800;
	line-height: 1.25;
}

.team-profile__role {
	margin: 0.3rem 0 0;
	color: #ff6214;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.team-profile__bio {
	color: #4a5768;
	font-size: 1rem;
	line-height: 1.85;
}

.team-profile__bio p {
	margin: 0 0 1rem;
}

.team-profile__bio p:last-child {
	margin-bottom: 0;
}

/* Tablet: fall back to the administrator's tablet column count. */
@media screen and (max-width: 64em) {
	.team-grid {
		--team-cols: var(--team-cols-t, 2);
	}
}

@media screen and (max-width: 46.875em) {
	.team-tabs__select-wrap {
		display: block;
	}

	.team-tabs__nav-wrap {
		display: none;
	}

	.team-grid {
		--team-cols: var(--team-cols-m, 1);
	}
}

/* Very narrow phones always get a single column, whatever the setting says. */
@media screen and (max-width: 26em) {
	.team-grid {
		--team-cols: 1;
	}

	.team-card {
		max-width: none;
	}
}

@media screen and (max-width: 30em) {

	.team-profile__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.9rem;
	}
}

/*--------------------------------------------------------------
# Single product
--------------------------------------------------------------*/
.product-single__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.product-single__hero {
	padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(2rem, 4vw, 3rem);
	background: linear-gradient(180deg, #f5f7fa 0%, #ffffff 100%);
}

.product-single__breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
	color: var(--header-muted);
	font-size: 0.85rem;
}

.product-single__breadcrumb a {
	color: var(--header-muted);
	text-decoration: none;
}

.product-single__breadcrumb a:hover,
.product-single__breadcrumb a:focus-visible {
	color: #ff6214;
}

.product-single__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

.product-single__media {
	overflow: hidden;
	border: 1px solid var(--header-border);
	border-radius: 1.1rem;
	background: #fff;
}

.product-single__image {
	display: block;
	width: 100%;
	height: auto;
}

.product-single__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	color: #c3ccd8;
	font-size: 4rem;
}

.product-single__category {
	margin: 0 0 0.6rem;
	color: #ff6214;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.product-single__title {
	margin: 0;
	color: var(--header-text);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	line-height: 1.15;
}

.product-single__grade {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 1rem 0 0;
	padding: 0.45rem 0.9rem;
	border-radius: 2rem;
	background: #10233f;
}

.product-single__grade-label {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.product-single__grade-value {
	color: #fff;
	font-size: 0.95rem;
	font-weight: 800;
}

.product-single__excerpt {
	max-width: 60ch;
	margin: 1.25rem 0 0;
	color: var(--header-muted);
	font-size: 1.05rem;
	line-height: 1.8;
}

.product-single__sizes {
	margin-top: 1.75rem;
}

.product-single__sizes-title,
.product-single__block-title {
	margin: 0 0 0.85rem;
	color: var(--header-text);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.product-single__size-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-single__size {
	padding: 0.45rem 0.85rem;
	border: 1px solid var(--header-border);
	border-radius: 0.5rem;
	background: #fff;
	color: var(--header-text);
	font-size: 0.9rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.product-single__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	margin-top: 1.85rem;
	padding: 0.95rem 1.65rem;
	border: 0;
	border-radius: 0.6rem;
	background: #ff6214;
	color: #fff;
	font-family: inherit;
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 160ms ease, gap 160ms ease;
}

.product-single__cta:hover,
.product-single__cta:focus-visible {
	gap: 1rem;
	background: #e5540c;
}

.product-single__section {
	padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(2.5rem, 6vw, 4.5rem);
}

.product-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
	gap: clamp(1.75rem, 4vw, 3rem);
	align-items: start;
}

.product-single__body {
	color: #4a5768;
	font-size: 1.05rem;
	line-height: 1.9;
}

.product-single__body p {
	margin: 0 0 1.2rem;
}

.product-single__features {
	margin-top: 2rem;
}

.product-single__feature-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 0.7rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-single__feature {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.8rem 0.95rem;
	border: 1px solid var(--header-border);
	border-radius: 0.6rem;
	background: #fff;
	color: var(--header-text);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.5;
}

.product-single__feature i {
	flex: 0 0 auto;
	margin-top: 0.15rem;
	color: #ff6214;
}

.product-single__specs,
.product-single__related {
	padding: 1.35rem 1.4rem;
	border: 1px solid var(--header-border);
	border-radius: 1rem;
	background: #f8fafc;
}

.product-single__related {
	margin-top: 1.25rem;
}

.product-single__spec-table {
	width: 100%;
	border-collapse: collapse;
}

.product-single__spec-table th,
.product-single__spec-table td {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--header-border);
	font-size: 0.92rem;
	text-align: left;
	vertical-align: top;
}

.product-single__spec-table tr:last-child th,
.product-single__spec-table tr:last-child td {
	border-bottom: 0;
}

.product-single__spec-table th {
	width: 45%;
	color: var(--header-muted);
	font-weight: 600;
}

.product-single__spec-table td {
	color: var(--header-text);
	font-weight: 700;
}

.product-single__related-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-single__related-list li + li {
	border-top: 1px solid var(--header-border);
}

.product-single__related-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0;
	color: var(--header-text);
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	transition: color 150ms ease;
}

.product-single__related-list a:hover,
.product-single__related-list a:focus-visible {
	color: #ff6214;
}

@media screen and (max-width: 64em) {
	.product-single__hero-grid,
	.product-single__layout {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 37.5em) {
	.product-single__shell {
		width: min(100% - 24px, 1280px);
	}

	.product-single__cta {
		width: 100%;
		justify-content: center;
	}
}

/* Team card contact icons and Load More
--------------------------------------------- */
.team-card__contact {
	display: flex;
	justify-content: center;
	gap: 0.4rem;
	margin: 0.9rem 0 0;
	padding: 0;
	list-style: none;
}

.team-card__contact a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--header-border);
	border-radius: 50%;
	color: var(--header-muted);
	font-size: 0.8rem;
	text-decoration: none;
	transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.team-card__contact a:hover,
.team-card__contact a:focus-visible {
	border-color: #ff6214;
	background: #ff6214;
	color: #fff;
}

.team-card[hidden] {
	display: none;
}

.team-tabs__more {
	display: flex;
	justify-content: center;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.team-load-more {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.8rem 1.6rem;
	border: 1px solid var(--header-border);
	border-radius: 0.6rem;
	background: #fff;
	color: var(--header-text);
	font-family: inherit;
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.team-load-more:hover,
.team-load-more:focus-visible {
	border-color: #ff6214;
	background: #ff6214;
	color: #fff;
}

/* Products mega menu
--------------------------------------------- */
/*
 * Grid rather than flex: --mega-cols comes from PHP, so the panel width is
 * exactly the number of category columns. A flex row here would inherit
 * justify-content: center from the primary menu and size to max-content, which
 * left dead space beside a single column.
 */
.main-navigation ul ul.ks-mega {
	display: grid;
	grid-template-columns: repeat(var(--mega-cols, 1), minmax(190px, 240px));
	align-items: start;
	gap: 0 2rem;
	width: max-content;
	max-width: min(92vw, 1080px);
	padding: 1.5rem 1.75rem 1.25rem;
	border-radius: 0 0 0.9rem 0.9rem;
	border-top: 3px solid #ff6214;
	box-shadow: 0 26px 54px rgba(16, 35, 63, 0.18);
}

/* Centre the panel under the Products item instead of anchoring to its left. */
.main-navigation ul li:hover > ul.ks-mega,
.main-navigation ul li.focus > ul.ks-mega {
	left: 50%;
	transform: translateX(-50%);
}

.main-navigation ul ul.ks-mega .ks-mega__column {
	width: auto;
	min-width: 0;
}

.ks-mega__heading {
	display: block;
	margin-bottom: 0.65rem;
	padding: 0 0 0.55rem;
	border-bottom: 1px solid var(--header-border);
	color: var(--header-text);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: normal;
}

.main-navigation ul ul.ks-mega a.ks-mega__heading {
	width: auto;
	padding: 0 0 0.55rem;
}

a.ks-mega__heading:hover,
a.ks-mega__heading:focus-visible {
	color: #ff6214;
}

.main-navigation ul ul.ks-mega .ks-mega__list {
	display: block;
	position: static;
	float: none;
	width: auto;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	left: auto;
	z-index: auto;
}

.main-navigation ul ul.ks-mega .ks-mega__row {
	display: block;
	width: auto;
}

.main-navigation ul ul.ks-mega .ks-mega__row a {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	width: auto;
	padding: 0.42rem 0;
	color: var(--header-muted);
	font-size: 0.92rem;
	font-weight: 600;
	white-space: normal;
}

.main-navigation ul ul.ks-mega .ks-mega__row a i {
	flex: 0 0 auto;
	color: #ff6214;
	font-size: 0.75rem;
}

.main-navigation ul ul.ks-mega .ks-mega__row a:hover,
.main-navigation ul ul.ks-mega .ks-mega__row a:focus {
	color: var(--header-text);
}

.main-navigation ul ul.ks-mega .ks-mega__footer {
	grid-column: 1 / -1;
	width: auto;
	margin-top: 1rem;
	padding-top: 0.9rem;
	border-top: 1px solid var(--header-border);
}

.main-navigation ul ul.ks-mega a.ks-mega__all {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	width: auto;
	padding: 0;
	color: var(--header-accent);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.main-navigation ul ul.ks-mega a.ks-mega__all:hover,
.main-navigation ul ul.ks-mega a.ks-mega__all:focus {
	color: #ff6214;
}

/* Mobile: the panel becomes part of the stacked accordion. */
@media screen and (max-width: 60em) {
	.main-navigation ul ul.ks-mega {
		display: block;
		width: auto;
		max-width: none;
		padding: 0.25rem 0 0.5rem 1rem;
		border-radius: 0;
		border-top: 0;
		box-shadow: none;
		transform: none;
	}

	.main-navigation ul li:hover > ul.ks-mega,
	.main-navigation ul li.focus > ul.ks-mega {
		left: auto;
		transform: none;
	}

	.main-navigation ul ul.ks-mega .ks-mega__column {
		min-width: 0;
		max-width: none;
		margin-bottom: 0.75rem;
	}

	.main-navigation ul ul.ks-mega .ks-mega__footer {
		margin-top: 0.5rem;
	}
}

/* Featured Products buttons
 *
 * The generic a:visited rule (0,1,1) outranks the single-class button rule
 * (0,1,0), which turned visited "See More" links blue. These selectors are
 * scoped to the Featured Products section and cover every link state.
--------------------------------------------- */
.home-featured-products .product-showcase-card__button,
.home-featured-products .product-showcase-card__button:link,
.home-featured-products .product-showcase-card__button:visited,
.home-featured-products .product-showcase-card__button:hover,
.home-featured-products .product-showcase-card__button:focus,
.home-featured-products .product-showcase-card__button:active,
.home-featured-products .product-showcase-card__button span {
	color: #fff;
}

/* Dealer map province legend
--------------------------------------------- */
.dealers-page__legend {
	margin-top: 0.9rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--header-border);
	border-radius: 0.8rem;
	background: #fff;
}

.dealers-page__legend-title {
	display: block;
	margin-bottom: 0.6rem;
	color: var(--header-muted);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dealers-page__legend-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.dealers-page__legend-list li {
	list-style: none;
}

.dealers-page__legend-item {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.7rem;
	border: 1px solid var(--header-border);
	border-radius: 999px;
	background: #fff;
	color: var(--header-text);
	font-family: inherit;
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	transition: border-color 150ms ease, background 150ms ease;
}

.dealers-page__legend-item:hover {
	border-color: var(--header-text);
	background: var(--header-surface-soft);
}

.dealers-page__legend-item.is-active {
	border-color: #10233f;
	background: #10233f;
	color: #fff;
}

.dealers-page__legend-item:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: 2px;
}

.dealers-page__legend-swatch {
	display: inline-block;
	flex: 0 0 auto;
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 0.25rem;
	box-shadow: inset 0 0 0 1px rgba(16, 35, 63, 0.18);
}

.dealers-page__legend-swatch--all {
	background: linear-gradient(135deg, #2563eb 0%, #16a34a 50%, #db2777 100%);
}

@media screen and (max-width: 37.5em) {
	.dealers-page__legend {
		padding: 0.75rem;
	}

	.dealers-page__legend-item {
		font-size: 0.78rem;
	}
}

/*--------------------------------------------------------------
# Certificates page
--------------------------------------------------------------*/
.certificates-page__shell {
	width: min(100% - 32px, 1280px);
	margin: 0 auto;
}

.certificates-page__hero {
	padding: clamp(2.5rem, 6vw, 4.5rem) 0;
	background: #10233f;
	text-align: center;
}

.certificates-page__title {
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 4.5vw, 3.2rem);
	font-weight: 800;
	line-height: 1.15;
}

.certificates-page__intro {
	max-width: 70ch;
	margin: 1.1rem auto 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 1.02rem;
	line-height: 1.8;
}

.certificates-page__section {
	padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}

.certificates-page__empty {
	margin: 0;
	color: var(--header-muted);
	text-align: center;
}

.certificates-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.25rem, 2.5vw, 2rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.certificates-grid__item {
	display: flex;
	flex: 0 1 clamp(200px, 22%, 280px);
	max-width: 280px;
	list-style: none;
}

.certificate-tile {
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font-family: inherit;
	cursor: pointer;
	text-align: center;
}

.certificate-tile__frame {
	position: relative;
	display: block;
	overflow: hidden;
	padding: 0.75rem;
	border: 1px solid var(--header-border);
	border-radius: 0.9rem;
	background: #fff;
	box-shadow: 0 10px 26px rgba(16, 35, 63, 0.08);
	transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.certificate-tile__image {
	display: block;
	width: 100%;
	height: 210px;
	object-fit: contain;
	background: #fff;
}

.certificate-tile__zoom {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(16, 35, 63, 0.55);
	color: #fff;
	font-size: 1.5rem;
	opacity: 0;
	transition: opacity 200ms ease;
}

.certificate-tile:hover .certificate-tile__frame,
.certificate-tile:focus-visible .certificate-tile__frame {
	transform: translateY(-4px);
	border-color: #ff6214;
	box-shadow: 0 18px 38px rgba(16, 35, 63, 0.16);
}

.certificate-tile:hover .certificate-tile__zoom,
.certificate-tile:focus-visible .certificate-tile__zoom {
	opacity: 1;
}

.certificate-tile:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: 4px;
}

.certificate-tile__name {
	color: var(--header-text);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.45;
}

/* Viewer
--------------------------------------------- */
body.certificate-viewer-open {
	overflow: hidden;
}

.certificate-viewer {
	position: fixed;
	inset: 0;
	z-index: 1109;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(0.75rem, 3vh, 2.5rem) 1rem;
}

.certificate-viewer[hidden] {
	display: none;
}

.certificate-viewer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(8, 16, 30, 0.88);
	opacity: 0;
	transition: opacity 200ms ease;
}

.certificate-viewer__dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(100%, 1000px);
	max-height: 100%;
	opacity: 0;
	transform: scale(0.97);
	transition: opacity 200ms ease, transform 220ms cubic-bezier(0.2, 0.8, 0.3, 1);
}

.certificate-viewer.is-open .certificate-viewer__backdrop {
	opacity: 1;
}

.certificate-viewer.is-open .certificate-viewer__dialog {
	opacity: 1;
	transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
	.certificate-viewer__backdrop,
	.certificate-viewer__dialog {
		transition: none;
	}
}

.certificate-viewer__bar {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.certificate-viewer__title {
	flex: 1 1 auto;
	margin: 0;
	color: #fff;
	font-size: clamp(1rem, 2vw, 1.25rem);
	font-weight: 700;
	line-height: 1.35;
}

.certificate-viewer__close {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	font-size: 1.05rem;
	cursor: pointer;
	transition: background 150ms ease, border-color 150ms ease;
}

.certificate-viewer__close:hover,
.certificate-viewer__close:focus-visible {
	background: #ff6214;
	border-color: #ff6214;
}

.certificate-viewer__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
	padding: 0.75rem;
	border-radius: 0.9rem;
	background: #fff;
}

.certificate-viewer__image {
	display: block;
	max-width: 100%;
	max-height: min(72vh, 780px);
	width: auto;
	height: auto;
	object-fit: contain;
}

.certificate-viewer__nav {
	position: absolute;
	top: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6rem;
	height: 2.6rem;
	border: 0;
	border-radius: 50%;
	background: #10233f;
	color: #fff;
	font-size: 1rem;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 150ms ease;
}

.certificate-viewer__nav--prev {
	left: -1.3rem;
}

.certificate-viewer__nav--next {
	right: -1.3rem;
}

.certificate-viewer__nav:hover,
.certificate-viewer__nav:focus-visible {
	background: #ff6214;
}

.certificate-viewer__nav[hidden] {
	display: none;
}

.certificate-viewer__count {
	margin: 0.75rem 0 0;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.85rem;
	font-weight: 600;
	text-align: center;
}

.certificate-viewer__count:empty {
	display: none;
}

@media screen and (max-width: 46.875em) {
	.certificates-grid__item {
		flex-basis: clamp(150px, 44%, 220px);
	}

	.certificate-tile__image {
		height: 170px;
	}

	.certificate-viewer__nav--prev {
		left: 0.35rem;
	}

	.certificate-viewer__nav--next {
		right: 0.35rem;
	}
}

@media screen and (max-width: 37.5em) {
	.certificates-page__shell {
		width: min(100% - 24px, 1280px);
	}
}

/*--------------------------------------------------------------
# Breadcrumbs, product applications, product FAQs
--------------------------------------------------------------*/
.ks-breadcrumbs {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
	font-size: 0.85rem;
}

.ks-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ks-breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--header-muted);
	list-style: none;
}

.ks-breadcrumbs__item a {
	color: var(--header-muted);
	text-decoration: none;
}

.ks-breadcrumbs__item a:hover,
.ks-breadcrumbs__item a:focus-visible {
	color: #ff6214;
}

.ks-breadcrumbs__item [aria-current="page"] {
	color: var(--header-text);
	font-weight: 600;
}

.ks-breadcrumbs__sep {
	color: var(--header-border);
}

.product-single__applications {
	margin-top: 2rem;
}

.product-single__application-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 0.7rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.product-single__application {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.8rem 0.95rem;
	border: 1px solid var(--header-border);
	border-radius: 0.6rem;
	background: #f8fafc;
	color: var(--header-text);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.5;
}

.product-single__application i {
	flex: 0 0 auto;
	margin-top: 0.15rem;
	color: var(--header-accent);
}

.product-single__faqs {
	margin-top: 2rem;
}

.product-faqs {
	display: grid;
	gap: 0.6rem;
}

.product-faq {
	border: 1px solid var(--header-border);
	border-radius: 0.6rem;
	background: #fff;
}

.product-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.9rem 1.1rem;
	color: var(--header-text);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
	list-style: none;
}

.product-faq__question::-webkit-details-marker {
	display: none;
}

.product-faq__question::after {
	content: "+";
	flex: 0 0 auto;
	color: #ff6214;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1;
}

.product-faq[open] .product-faq__question::after {
	content: "\2212";
}

.product-faq__question:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: -2px;
}

.product-faq__answer {
	padding: 0 1.1rem 1rem;
	color: #4a5768;
	font-size: 0.95rem;
	line-height: 1.8;
}

.product-faq__answer p {
	margin: 0;
}

/*--------------------------------------------------------------
# Comments
--------------------------------------------------------------*/
.comments-block {
	padding: clamp(1.4rem, 4vw, 2.3rem);
	border-radius: 1.2rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.08);
}

.single-post-page__comments .comments-block {
	box-shadow: none;
	padding: 0;
}

.comments-block__header {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	padding-bottom: 1.2rem;
	margin-bottom: 1.6rem;
	border-bottom: 1px solid #e7ecf3;
}

.comments-block__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	flex: 0 0 auto;
	border-radius: 1rem;
	background: linear-gradient(140deg, #1f2058, #10233f);
	color: #fff;
	font-size: 1.15rem;
}

.comments-block__title {
	margin: 0;
	color: #10233f;
	font-size: clamp(1.25rem, 2.6vw, 1.6rem);
	font-weight: 800;
	line-height: 1.2;
}

.comments-block__subtitle {
	margin: 0.3rem 0 0;
	color: #6b7a8d;
	font-size: 0.92rem;
	line-height: 1.5;
}

.comments-block__jump {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	padding: 0.65rem 1.3rem;
	border-radius: 999px;
	background: #fff1e8;
	color: #ff6214;
	font-size: 0.9rem;
	font-weight: 800;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.comments-block__jump:hover,
.comments-block__jump:focus-visible {
	background: #ff6214;
	color: #fff;
}

.comments-block__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.comments-block__list .children {
	list-style: none;
	margin: 1rem 0 0;
	padding-left: clamp(1rem, 3vw, 2.4rem);
	border-left: 2px solid #eef2f7;
}

.comment-card {
	margin: 0 0 1rem;
}

.comment-card__body {
	padding: 1.25rem 1.35rem;
	border: 1px solid #e7ecf3;
	border-radius: 1rem;
	background: #f9fbfd;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.comment-card__body:hover {
	border-color: #d7e0ec;
	box-shadow: 0 14px 30px rgba(16, 35, 63, 0.07);
	transform: translateY(-1px);
}

.comment-card.bypostauthor > .comment-card__body {
	border-color: rgba(255, 98, 20, 0.4);
	background: #fff8f3;
}

.comment-card__header {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin-bottom: 0.85rem;
}

.comment-card__avatar {
	flex: 0 0 auto;
	line-height: 0;
}

.comment-card__avatar img {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 6px 16px rgba(16, 35, 63, 0.14);
	object-fit: cover;
}

.comment-card__author {
	margin: 0;
	color: #10233f;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.3;
}

.comment-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	margin: 0.2rem 0 0;
	color: #7a889b;
	font-size: 0.85rem;
}

.comment-card__meta a {
	color: #ff6214;
	text-decoration: none;
}

.comment-card__notice {
	margin: 0 0 0.8rem;
	padding: 0.6rem 0.9rem;
	border-left: 3px solid #ff6214;
	border-radius: 0.5rem;
	background: #fff3ea;
	color: #a4470f;
	font-size: 0.88rem;
}

.comment-card__content {
	color: #4f5d6e;
	font-size: 0.99rem;
	line-height: 1.85;
}

.comment-card__content p {
	margin: 0 0 0.9rem;
}

.comment-card__content p:last-child {
	margin-bottom: 0;
}

.comment-card__footer {
	margin-top: 0.9rem;
}

.comment-card__reply a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.45rem 1rem;
	border-radius: 999px;
	background: #eef1f7;
	color: #1f2058;
	font-size: 0.85rem;
	font-weight: 800;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease;
}

.comment-card__reply a:hover,
.comment-card__reply a:focus-visible {
	background: #1f2058;
	color: #fff;
}

.comment-card--ping .comment-card__ping {
	margin: 0;
	color: #5f6f85;
	font-size: 0.92rem;
}

.comments-block__empty,
.comments-block__closed {
	margin: 0 0 1.6rem;
	padding: 1rem 1.2rem;
	border-radius: 0.9rem;
	background: #f4f7fb;
	color: #5f6f85;
	font-size: 0.95rem;
}

/* Comment form */
.comments-block__respond {
	margin-top: 1.8rem;
	padding: clamp(1.3rem, 3.5vw, 2rem);
	border-radius: 1.1rem;
	background: linear-gradient(160deg, #f7f9fc 0%, #eef2f8 100%);
	border: 1px solid #e4eaf2;
}

.comments-block__respond .comment-reply-title {
	margin: 0 0 0.4rem;
	color: #10233f;
	font-size: clamp(1.15rem, 2.4vw, 1.4rem);
	font-weight: 800;
}

.comments-block__respond .comment-reply-title small {
	display: inline-block;
	margin-left: 0.6rem;
	font-size: 0.85rem;
	font-weight: 700;
}

.comments-block__respond .comment-reply-title small a {
	color: #ff6214;
	text-decoration: none;
}

.comment-form__notes {
	margin: 0 0 1.3rem;
	color: #6b7a8d;
	font-size: 0.9rem;
	line-height: 1.6;
}

.comment-form {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.comment-form__field {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0;
}

.comment-form__field--full,
.comment-form__consent,
.comment-form__actions,
.comment-form__notes,
.comment-form .comment-notes,
.comment-form .must-log-in,
.comment-form .comment-form-cookies-consent,
.comment-form .logged-in-as {
	grid-column: 1 / -1;
}

.comment-form__field label {
	color: #10233f;
	font-size: 0.9rem;
	font-weight: 700;
}

.comment-form__required {
	color: #ff6214;
}

.comment-form__field input,
.comment-form__field textarea {
	width: 100%;
	border: 1px solid #d9e1ea;
	border-radius: 0.8rem;
	padding: 0.9rem 1rem;
	background: #fff;
	color: #10233f;
	font-size: 1rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.comment-form__field textarea {
	min-height: 9rem;
	resize: vertical;
}

.comment-form__field input:focus,
.comment-form__field textarea:focus {
	border-color: #1f2058;
	outline: 0;
	box-shadow: 0 0 0 4px rgba(31, 32, 88, 0.1);
}

.comment-form__consent {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	margin: 0;
	color: #5f6f85;
	font-size: 0.9rem;
}

.comment-form__consent input {
	margin-top: 0.15rem;
}

.comment-form .logged-in-as {
	margin: 0 0 0.4rem;
	color: #5f6f85;
	font-size: 0.92rem;
}

.comment-form .logged-in-as a {
	color: #ff6214;
	text-decoration: none;
	font-weight: 700;
}

.comment-form__actions {
	margin: 0.4rem 0 0;
}

.comment-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-width: 13rem;
	padding: 1rem 1.7rem;
	border: 0;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-size: 1rem;
	font-weight: 800;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.comment-form__submit:hover,
.comment-form__submit:focus-visible {
	background: #1f2058;
	color: #fff;
	transform: translateY(-1px);
	box-shadow: 0 14px 28px rgba(16, 35, 63, 0.22);
}

@media screen and (max-width: 60em) {
	.comment-form {
		grid-template-columns: 1fr 1fr;
	}
}

@media screen and (max-width: 37.5em) {
	.comments-block__header {
		gap: 0.8rem;
	}

	.comments-block__jump {
		margin-left: 0;
		width: 100%;
		justify-content: center;
	}

	.comment-form {
		grid-template-columns: 1fr;
	}

	.comment-form__submit {
		width: 100%;
	}

	.comments-block__list .children {
		padding-left: 0.85rem;
	}
}

.comment-form .comment-notes,
.comment-form .must-log-in {
	margin: 0 0 0.2rem;
	color: #6b7a8d;
	font-size: 0.9rem;
	line-height: 1.6;
}

.comment-form .comment-notes a,
.comment-form .must-log-in a {
	color: #ff6214;
	font-weight: 700;
	text-decoration: none;
}

.comment-form .required {
	color: #ff6214;
}

.comment-card .comment-respond {
	margin-top: 1rem;
}

/*--------------------------------------------------------------
# About: CEO message
--------------------------------------------------------------*/
.about-page__section--ceo {
	background: #fff;
}

.ceo-message {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	align-items: stretch;
	gap: clamp(1.5rem, 3.5vw, 3.2rem);
	padding: clamp(1.6rem, 3vw, 2.6rem);
	border-radius: 1.5rem;
	overflow: hidden;
	background:
		radial-gradient(circle at 88% 12%, rgba(255, 98, 20, 0.22), transparent 45%),
		linear-gradient(140deg, #1f2058 0%, #10233f 62%, #0d1b31 100%);
	box-shadow: 0 30px 60px rgba(16, 35, 63, 0.22);
}

.ceo-message::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 72px 72px;
	pointer-events: none;
}

.ceo-message--no-media {
	grid-template-columns: minmax(0, 1fr);
}

.ceo-message__media {
	position: relative;
	z-index: 1;
	align-self: center;
}

.ceo-message__frame {
	position: relative;
	border-radius: 1.2rem;
	overflow: hidden;
	box-shadow: 0 24px 44px rgba(0, 0, 0, 0.35);
}

.ceo-message__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: inherit;
	pointer-events: none;
}

.ceo-message__frame img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: top center;
}

.ceo-message__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(0.4rem, 1.5vw, 1.4rem) 0;
}

.ceo-message__quote {
	color: #ff6214;
	font-size: 1.9rem;
	line-height: 1;
	opacity: 0.9;
}

.ceo-message__title {
	margin: 0.9rem 0 0;
	color: #fff;
	font-size: clamp(1.7rem, 2.6vw, 2.5rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.01em;
}

.ceo-message__title::after {
	content: "";
	display: block;
	width: 3.4rem;
	height: 3px;
	margin-top: 0.9rem;
	border-radius: 999px;
	background: #ff6214;
}

.ceo-message__text {
	margin-top: 1.3rem;
	color: rgba(255, 255, 255, 0.78);
	font-size: 1rem;
	line-height: 1.95;
}

.ceo-message__text p {
	margin: 0 0 1rem;
}

.ceo-message__text p:last-child {
	margin-bottom: 0;
}

.ceo-message__signature {
	margin-top: 1.6rem;
	padding-top: 1.2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.ceo-message__name {
	margin: 0;
	color: #fff;
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: -0.005em;
}

.ceo-message__role {
	margin: 0.3rem 0 0;
	color: #ff8a4d;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

/*--------------------------------------------------------------
# About: Mission and Vision
--------------------------------------------------------------*/
.purpose-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(1.6rem, 3vw, 2.4rem);
	border: 1px solid #e4eaf3;
	border-radius: 1.2rem;
	background: #fff;
	box-shadow: 0 18px 34px rgba(16, 35, 63, 0.07);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.purpose-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--purpose-accent, #ff6214);
}

.purpose-card--mission {
	--purpose-accent: #ff6214;
	--purpose-tint: rgba(255, 98, 20, 0.12);
}

.purpose-card--vision {
	--purpose-accent: #2146f3;
	--purpose-tint: rgba(33, 70, 243, 0.12);
}

.purpose-card:hover,
.purpose-card:focus-within {
	transform: translateY(-4px);
	border-color: rgba(16, 35, 63, 0.16);
	box-shadow: 0 26px 46px rgba(16, 35, 63, 0.13);
}

.purpose-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.6rem;
	height: 3.6rem;
	border-radius: 1rem;
	background: var(--purpose-tint);
	color: var(--purpose-accent);
	font-size: 1.45rem;
	transition: transform 0.25s ease;
}

.purpose-card:hover .purpose-card__icon {
	transform: translateY(-2px) rotate(-4deg);
}

.purpose-card__title {
	margin: 1.1rem 0 0;
	color: #10233f;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.purpose-card__title::after {
	content: "";
	display: block;
	width: 2.4rem;
	height: 2px;
	margin-top: 0.75rem;
	border-radius: 999px;
	background: var(--purpose-accent);
	opacity: 0.55;
}

.purpose-card__text {
	margin: 0.9rem 0 0;
	color: #66778d;
	font-size: 1rem;
	line-height: 1.9;
}

@media screen and (max-width: 62em) {
	.ceo-message {
		grid-template-columns: minmax(0, 1fr);
	}

	.ceo-message__media {
		max-width: 260px;
	}

	.ceo-message__frame img {
		aspect-ratio: 1 / 1;
	}

	.ceo-message__text {
		max-height: none;
		overflow: visible;
		padding-right: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.purpose-card,
	.purpose-card__icon {
		transition: none;
	}

	.purpose-card:hover {
		transform: none;
	}

	.purpose-card:hover .purpose-card__icon {
		transform: none;
	}
}

@media screen and (max-width: 48em) {
	.about-page__mission-grid {
		grid-template-columns: 1fr;
	}
}

/*--------------------------------------------------------------
# About: Core values
--------------------------------------------------------------*/
.about-page__section--core-values {
	position: relative;
	background:
		linear-gradient(90deg, rgba(16, 35, 63, 0.028) 1px, transparent 1px) 0 0 / 140px 140px,
		linear-gradient(rgba(16, 35, 63, 0.028) 1px, transparent 1px) 0 0 / 140px 140px,
		#fff;
}

.about-page__core-values-title {
	text-align: center;
}

.about-page__core-values-title::after {
	content: "";
	display: block;
	width: 3.4rem;
	height: 3px;
	margin: 1rem auto 0;
	border-radius: 999px;
	background: #ff6214;
}

.about-page__core-values-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.15rem;
	margin-top: 2.6rem;
}

.value-card {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 1.1rem;
	height: 100%;
	padding: 1.6rem 1.5rem;
	border: 1px solid #e4eaf3;
	border-radius: 1rem;
	background: linear-gradient(180deg, #ffffff 0%, #fafbfd 100%);
	box-shadow: 0 12px 26px rgba(16, 35, 63, 0.06);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

/* Quarter-circle accent tucked into the top right corner. */
.value-card::after {
	content: "";
	position: absolute;
	top: -3.2rem;
	right: -3.2rem;
	width: 6.4rem;
	height: 6.4rem;
	border-radius: 50%;
	background: rgba(255, 98, 20, 0.09);
	transition: background 0.25s ease, transform 0.25s ease;
}

.value-card:hover,
.value-card:focus-within {
	transform: translateY(-4px);
	border-color: rgba(255, 98, 20, 0.35);
	box-shadow: 0 22px 40px rgba(16, 35, 63, 0.12);
}

.value-card:hover::after {
	background: rgba(255, 98, 20, 0.16);
	transform: scale(1.12);
}

.value-card__icon {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.5rem;
	height: 4.5rem;
	flex-shrink: 0;
	border-radius: 50%;
	background: #fff;
	box-shadow:
		inset 0 0 0 1px #e4eaf3,
		0 10px 20px rgba(16, 35, 63, 0.08);
	color: #ff6214;
	font-size: 1.35rem;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.value-card:hover .value-card__icon {
	transform: translateY(-2px);
	box-shadow:
		inset 0 0 0 1px rgba(255, 98, 20, 0.35),
		0 14px 26px rgba(16, 35, 63, 0.14);
}

/* Uploaded icons vary in size and ratio, so they are normalised here. */
.value-card__icon-image {
	display: block;
	width: 3.1rem;
	height: 3.1rem;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.value-card__body {
	min-width: 0;
	padding-top: 0.2rem;
}

.value-card__title {
	margin: 0;
	color: #10233f;
	font-size: 1.12rem;
	font-weight: 800;
	line-height: 1.32;
	letter-spacing: -0.005em;
}

.value-card__desc {
	margin: 0.6rem 0 0;
	color: #66778d;
	font-size: 0.97rem;
	line-height: 1.8;
}

@media screen and (max-width: 48em) {
	.value-card {
		padding: 1.35rem 1.25rem;
		gap: 0.9rem;
	}

	.value-card__icon {
		width: 3.8rem;
		height: 3.8rem;
		font-size: 1.15rem;
	}

	.value-card__icon-image {
		width: 2.6rem;
		height: 2.6rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.value-card,
	.value-card::after,
	.value-card__icon {
		transition: none;
	}

	.value-card:hover,
	.value-card:hover .value-card__icon,
	.value-card:hover::after {
		transform: none;
	}
}

/*--------------------------------------------------------------
# Project-category hero (image slider / video background)
--------------------------------------------------------------*/

.home-hero-slide__media--video {
	background: #0f2235;
}

.home-hero-slide__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.02);
}

.home-hero-slider--categories .home-hero-slide__slogan {
	color: rgba(255, 255, 255, 0.95);
	font-size: clamp(0.85rem, 1.4vw, 1.05rem);
	letter-spacing: 0.22em;
}

.home-hero-slider__tabs {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 4;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	padding: 0 clamp(1rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2.25rem);
}

@media screen and (min-width: 60.0625em) {

	/* The Prev/Next block sits bottom-right; keep the tabs out of its way. */
	.home-hero-slider__tabs {
		justify-content: flex-start;
		padding-right: 22rem;
		padding-left: clamp(4rem, 9vw, 8rem);
	}
}

.home-hero-slider__tab {
	padding: 0.6rem 1.4rem;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 999px;
	background: rgba(9, 20, 33, 0.45);
	color: #fff;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.home-hero-slider__tab:hover,
.home-hero-slider__tab:focus-visible {
	border-color: #ff6f00;
	background: rgba(255, 111, 0, 0.85);
	transform: translateY(-2px);
}

.home-hero-slider__tab.is-active {
	border-color: #ff6f00;
	background: #ff6f00;
}

@media screen and (max-width: 37.5em) {

	.home-hero-slider__tabs {
		gap: 0.4rem;
		padding-bottom: 1rem;
	}

	.home-hero-slider__tab {
		padding: 0.45rem 0.9rem;
		font-size: 0.72rem;
	}
}

/*--------------------------------------------------------------
# About BBSM Group page
--------------------------------------------------------------*/

.bbsm-hero__tagline {
	margin: 0 0 0.6rem;
	color: #ff6214;
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.bbsm-section__title {
	margin: 0 0 1.1rem;
	color: #10233f;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	line-height: 1.25;
}

.bbsm-intro__grid,
.bbsm-chairman__grid {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	align-items: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
}

.bbsm-chairman__grid {
	grid-template-columns: 0.8fr 1.2fr;
}

.bbsm-intro__text {
	color: #4f5d6e;
	line-height: 1.9;
}

.bbsm-intro__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 1.1rem;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.14);
}

.bbsm-chairman {
	background: #f6f8fb;
}

.bbsm-chairman__figure {
	margin: 0;
	overflow: hidden;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.1);
}

.bbsm-chairman__figure img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.bbsm-chairman__caption {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 1rem 1.25rem 1.25rem;
}

.bbsm-chairman__name {
	color: #10233f;
	font-size: 1.1rem;
	font-weight: 700;
}

.bbsm-chairman__role {
	color: #7c8797;
	font-size: 0.88rem;
}

.bbsm-chairman__quote {
	margin: 0;
	padding-left: clamp(1rem, 2vw, 1.6rem);
	border-left: 4px solid #ff6214;
	color: #4f5d6e;
	font-size: 1.02rem;
	line-height: 1.95;
}

.bbsm-chairman__signature {
	display: flex;
	flex-direction: column;
	margin-top: 1.4rem;
	color: #10233f;
}

.bbsm-chairman__signature span {
	color: #7c8797;
	font-size: 0.9rem;
}

.bbsm-companies__header {
	max-width: 760px;
	margin: 0 auto 2.2rem;
	color: #4f5d6e;
	line-height: 1.85;
	text-align: center;
}

.bbsm-companies__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* One or two companies shouldn't hug the left edge of a three-column grid. */
.bbsm-companies__grid--few {
	grid-template-columns: repeat(auto-fit, minmax(240px, 300px));
	justify-content: center;
}

.bbsm-company__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.65rem;
	height: 100%;
	padding: clamp(1.4rem, 3vw, 2rem);
	border: 1px solid #e6ebf2;
	border-radius: 1.1rem;
	background: #fff;
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

a.bbsm-company__link:hover,
a.bbsm-company__link:focus-visible {
	border-color: #ff6214;
	box-shadow: 0 18px 40px rgba(16, 35, 63, 0.12);
	transform: translateY(-6px);
}

.bbsm-company__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 84px;
}

.bbsm-company__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.bbsm-company__initial {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #fff4ec;
	color: #ff6214;
	font-size: 1.6rem;
	font-weight: 700;
}

.bbsm-company__name {
	color: #10233f;
	font-size: 1.05rem;
	font-weight: 700;
}

.bbsm-company__description {
	color: #7c8797;
	font-size: 0.9rem;
	line-height: 1.7;
}

/* No image uploaded: don't leave an empty column beside the text. */
.bbsm-grid--no-media {
	grid-template-columns: 1fr;
	max-width: 860px;
}

@media screen and (max-width: 60em) {

	.bbsm-intro__grid,
	.bbsm-chairman__grid {
		grid-template-columns: 1fr;
	}

	.bbsm-companies__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 37.5em) {

	.bbsm-companies__grid {
		grid-template-columns: 1fr;
	}
}

/* Justified body copy.
#
# p is justified globally (see the base typography rules), so these blocks
# already inherit it. Stating it here keeps it true if the BBSM markup is ever
# moved or restyled, and hyphenation stops justification opening up rivers of
# whitespace in the narrower column widths. */
.bbsm-intro__text,
.bbsm-intro__text p,
.bbsm-chairman__quote,
.bbsm-chairman__quote p,
.program-single__content p,
.bbsm-editor p {
	text-align: justify;
	-webkit-hyphens: auto;
	hyphens: auto;
	text-justify: inter-word;
}

/* Never hyphenate or justify a heading. */
.bbsm-section__title,
.bbsm-page h1,
.bbsm-page h2,
.bbsm-page h3 {
	text-align: left;
	-webkit-hyphens: manual;
	hyphens: manual;
}

.bbsm-companies__header .bbsm-section__title {
	text-align: center;
}

/*--------------------------------------------------------------
# Footer advertising banner (960x72)
--------------------------------------------------------------*/

.footer-ads {
	padding: clamp(1.25rem, 3vw, 2rem) 16px;
	background: #f2f5f9;
}

.footer-ads__shell {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.9rem;
	width: min(100% - 16px, 960px);
	margin: 0 auto;
}

.footer-ads__slot {
	width: 100%;
	max-width: 960px;
}

.footer-ads__link {
	display: block;
	transition: opacity 0.25s ease;
}

.footer-ads__link:hover,
.footer-ads__link:focus-visible {
	opacity: 0.88;
}

.footer-ads__image {
	display: block;
	width: 100%;
	max-width: 960px;
	height: auto;
	/* Holds the 960x72 slot before the image loads, so nothing shifts. */
	aspect-ratio: 960 / 72;
	margin: 0 auto;
	border-radius: 0.4rem;
	object-fit: cover;
	background: #e3e9f1;
}

/*--------------------------------------------------------------
# Welcome pop-up
--------------------------------------------------------------*/

body.has-welcome-popup {
	overflow: hidden;
}

.welcome-popup {
	position: fixed;
	inset: 0;
	z-index: 1200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.welcome-popup.is-open {
	opacity: 1;
}

.welcome-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(9, 20, 33, 0.72);
}

.welcome-popup__dialog {
	position: relative;
	width: min(100%, 520px);
	max-height: calc(100vh - 32px);
	overflow: auto;
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 30px 70px rgba(9, 20, 33, 0.35);
	transform: translateY(18px) scale(0.97);
	transition: transform 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.welcome-popup.is-open .welcome-popup__dialog {
	transform: none;
}

.welcome-popup__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 0;
	border-radius: 50%;
	background: rgba(9, 20, 33, 0.6);
	color: #fff;
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.25s ease;
}

.welcome-popup__close:hover,
.welcome-popup__close:focus-visible {
	background: #ff6214;
}

.welcome-popup__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 1.1rem 1.1rem 0 0;
}

.welcome-popup__body {
	padding: clamp(1.25rem, 3vw, 2rem);
	text-align: center;
}

.welcome-popup__title {
	margin: 0 0 0.75rem;
	color: #10233f;
	font-size: clamp(1.3rem, 2.5vw, 1.75rem);
}

.welcome-popup__text {
	color: #4f5d6e;
	line-height: 1.8;
}

.welcome-popup__button {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.25rem;
	padding: 0.8rem 1.6rem;
	border-radius: 999px;
	background: #ff6214;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.25s ease, background 0.25s ease;
}

.welcome-popup__button:hover,
.welcome-popup__button:focus-visible {
	background: #e5550f;
	transform: translateY(-2px);
}

/*--------------------------------------------------------------
# Reveal-on-scroll animations
#
# The hidden start state is scoped to html.ks-anim, which js/scroll-animations.js
# only adds when it is running and motion is allowed. No JS, no hiding.
--------------------------------------------------------------*/

.ks-anim [data-animate] {
	opacity: 0;
	transition:
		opacity 0.7s ease,
		transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--ks-anim-delay, 0ms);
	will-change: opacity, transform;
}

.ks-anim [data-animate="fade-up"] {
	transform: translateY(28px);
}

.ks-anim [data-animate="fade-down"] {
	transform: translateY(-28px);
}

.ks-anim [data-animate="fade-right"] {
	transform: translateX(-32px);
}

.ks-anim [data-animate="fade-left"] {
	transform: translateX(32px);
}

.ks-anim [data-animate="zoom-in"] {
	transform: scale(0.94);
}

.ks-anim [data-animate].is-revealed {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {

	.ks-anim [data-animate] {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

@media print {

	.ks-anim [data-animate] {
		opacity: 1;
		transform: none;
	}

	.footer-ads,
	.welcome-popup {
		display: none;
	}
}

/*--------------------------------------------------------------
# Hover & focus interaction layer
#
# The theme already styles ~98 hover states. This section only fills the gaps
# — card components that had none — and adds the shared behaviours that make
# the whole site feel consistent: a lift on cards, a slow zoom on card media,
# a sliding underline on prose links, and an arrow nudge on call-to-action
# buttons.
#
# Every rule pairs :hover with :focus-visible / :focus-within so keyboard users
# get the same feedback, and the whole layer is switched off under
# prefers-reduced-motion at the end.
--------------------------------------------------------------*/

:root {
	--ks-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--ks-lift: -6px;
	--ks-shadow-hover: 0 18px 40px rgba(16, 35, 63, 0.14);
}

/* --- Cards that previously had no hover state at all --- */

.home-project-card,
.home-program-card,
.home-contact__card,
.dealers-page__card,
.certificates-grid__item,
.products-page__card {
	transition:
		transform 0.35s var(--ks-ease),
		box-shadow 0.35s var(--ks-ease),
		border-color 0.35s var(--ks-ease);
}

.home-project-card:hover,
.home-project-card:focus-within,
.home-program-card:hover,
.home-program-card:focus-within,
.home-contact__card:hover,
.home-contact__card:focus-within,
.dealers-page__card:hover,
.dealers-page__card:focus-within,
.certificates-grid__item:hover,
.certificates-grid__item:focus-within,
.products-page__card:hover,
.products-page__card:focus-within {
	box-shadow: var(--ks-shadow-hover);
	transform: translateY(var(--ks-lift));
}

/* --- Card media: slow zoom behind a fixed frame --- */

.home-project-card__image-wrap,
.home-program-card__image-wrap,
.blog-card__media,
.team-card__media {
	overflow: hidden;
}

.home-project-card__image,
.home-program-card__image,
.blog-card__image,
.team-card__image {
	transition: transform 0.6s var(--ks-ease);
}

.home-project-card:hover .home-project-card__image,
.home-project-card:focus-within .home-project-card__image,
.home-program-card:hover .home-program-card__image,
.home-program-card:focus-within .home-program-card__image,
.blog-card:hover .blog-card__image,
.blog-card:focus-within .blog-card__image,
.team-card:hover .team-card__image,
.team-card:focus-within .team-card__image {
	transform: scale(1.06);
}

/* --- Card titles pick up the brand colour with their card --- */

.home-project-card__title,
.home-program-card__title,
.dealers-page__card-title {
	transition: color 0.3s var(--ks-ease);
}

.home-project-card:hover .home-project-card__title,
.home-project-card:focus-within .home-project-card__title,
.home-program-card:hover .home-program-card__title,
.home-program-card:focus-within .home-program-card__title,
.dealers-page__card:hover .dealers-page__card-title,
.dealers-page__card:focus-within .dealers-page__card-title {
	color: #ff6214;
}

/* --- Prose links: underline grows from the left --- */

.program-single__content a:not([class*="__button"]),
.bbsm-intro__text a,
.bbsm-chairman__quote a,
.entry-content a:not([class*="__button"]) {
	background-image: linear-gradient(#ff6214, #ff6214);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0% 2px;
	text-decoration: none;
	transition:
		background-size 0.35s var(--ks-ease),
		color 0.35s var(--ks-ease);
}

.program-single__content a:not([class*="__button"]):hover,
.program-single__content a:not([class*="__button"]):focus-visible,
.bbsm-intro__text a:hover,
.bbsm-intro__text a:focus-visible,
.bbsm-chairman__quote a:hover,
.bbsm-chairman__quote a:focus-visible,
.entry-content a:not([class*="__button"]):hover,
.entry-content a:not([class*="__button"]):focus-visible {
	background-size: 100% 2px;
	color: #ff6214;
}

/* --- Call-to-action buttons: lift, and nudge the arrow along --- */

.home-hero-slide__button,
.welcome-popup__button,
.product-single__cta,
.header-cta {
	transition:
		transform 0.3s var(--ks-ease),
		box-shadow 0.3s var(--ks-ease),
		background-color 0.3s var(--ks-ease),
		border-color 0.3s var(--ks-ease);
}

.home-hero-slide__button i,
.welcome-popup__button i,
.product-single__cta i,
.header-cta i {
	transition: transform 0.3s var(--ks-ease);
}

.home-hero-slide__button:hover i,
.home-hero-slide__button:focus-visible i,
.welcome-popup__button:hover i,
.welcome-popup__button:focus-visible i,
.product-single__cta:hover i,
.product-single__cta:focus-visible i,
.header-cta:hover i,
.header-cta:focus-visible i {
	transform: translateX(4px);
}

/* --- Group company logos react with their card --- */

.bbsm-company__logo img,
.bbsm-company__initial {
	transition:
		transform 0.35s var(--ks-ease),
		background-color 0.35s var(--ks-ease),
		color 0.35s var(--ks-ease);
}

a.bbsm-company__link:hover .bbsm-company__logo img,
a.bbsm-company__link:focus-visible .bbsm-company__logo img {
	transform: scale(1.06);
}

a.bbsm-company__link:hover .bbsm-company__initial,
a.bbsm-company__link:focus-visible .bbsm-company__initial {
	background: #ff6214;
	color: #fff;
	transform: scale(1.08);
}

/* --- Footer banner ad: a lift rather than a flat fade --- */

.footer-ads__link {
	transition:
		transform 0.3s var(--ks-ease),
		opacity 0.25s var(--ks-ease);
}

.footer-ads__link:hover,
.footer-ads__link:focus-visible {
	transform: translateY(-3px);
}

/* --- Keyboard focus is always visible, everywhere --- */

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: 3px;
}

/* --- Motion off: keep the colour feedback, drop the movement --- */

@media (prefers-reduced-motion: reduce) {

	.home-project-card,
	.home-program-card,
	.home-contact__card,
	.dealers-page__card,
	.certificates-grid__item,
	.products-page__card,
	.home-project-card__image,
	.home-program-card__image,
	.blog-card__image,
	.team-card__image,
	.home-hero-slide__button,
	.welcome-popup__button,
	.product-single__cta,
	.header-cta,
	.home-hero-slide__button i,
	.welcome-popup__button i,
	.product-single__cta i,
	.header-cta i,
	.bbsm-company__logo img,
	.bbsm-company__initial,
	.footer-ads__link {
		transition: none;
	}

	.home-project-card:hover,
	.home-program-card:hover,
	.home-contact__card:hover,
	.dealers-page__card:hover,
	.certificates-grid__item:hover,
	.products-page__card:hover,
	.footer-ads__link:hover,
	.home-project-card:hover .home-project-card__image,
	.home-program-card:hover .home-program-card__image,
	.blog-card:hover .blog-card__image,
	.team-card:hover .team-card__image,
	.home-hero-slide__button:hover i,
	.welcome-popup__button:hover i,
	.product-single__cta:hover i,
	.header-cta:hover i,
	a.bbsm-company__link:hover .bbsm-company__logo img,
	a.bbsm-company__link:hover .bbsm-company__initial {
		transform: none;
	}
}

/*--------------------------------------------------------------
# Box hover lift
#
# Every content box on the site nudges up slightly on hover. The list was
# derived from the stylesheet itself — the rules that set both a background
# and a border-radius, i.e. the things that actually read as a box — minus
# buttons, icons, badges, form controls, modal dialogs and the full-page
# article wrappers, none of which should move under the pointer.
#
# Cards that already had their own lift keep it; this only adds the ones that
# were static.
--------------------------------------------------------------*/

:root {
	--ks-lift-sm: -4px;
	--ks-shadow-sm: 0 14px 30px rgba(16, 35, 63, 0.12);
}

.bbsm-chairman__figure,
.career-card__meta-item,
.career-single__closed-state,
.career-single__content-card,
.career-single__form-card,
.career-single__form-notes,
.career-single__sidebar-card,
.career-single__summary-card,
.careers-archive__empty,
.ceo-message,
.certificate-card__frame,
.comment-card__body,
.comment-card__notice,
.comments-block__closed,
.comments-block__empty,
.comments-block__respond,
.contact-page__content-card,
.contact-page__cta-card,
.contact-page__details-card,
.contact-page__info-item,
.contact-page__location-card,
.contact-page__map-card,
.contact-page__stat-card,
.dealers-page__legend-item,
.get-quote-form__product-row,
.home-about__image-card,
.product-faq,
.product-showcase-card,
.product-single__application,
.product-single__feature,
.product-single__grade,
.product-single__media,
.product-single__related,
.product-single__size,
.product-single__specs,
.products-page__empty,
.project-single__meta,
.video-single__notice,
.video-single__player {
	transition:
		transform 0.3s var(--ks-ease),
		box-shadow 0.3s var(--ks-ease);
}

.bbsm-chairman__figure:hover,
.bbsm-chairman__figure:focus-within,
.career-card__meta-item:hover,
.career-single__closed-state:hover,
.career-single__content-card:hover,
.career-single__form-card:hover,
.career-single__form-card:focus-within,
.career-single__form-notes:hover,
.career-single__sidebar-card:hover,
.career-single__sidebar-card:focus-within,
.career-single__summary-card:hover,
.careers-archive__empty:hover,
.ceo-message:hover,
.certificate-card__frame:hover,
.comment-card__body:hover,
.comment-card__notice:hover,
.comments-block__closed:hover,
.comments-block__empty:hover,
.comments-block__respond:hover,
.comments-block__respond:focus-within,
.contact-page__content-card:hover,
.contact-page__content-card:focus-within,
.contact-page__cta-card:hover,
.contact-page__cta-card:focus-within,
.contact-page__details-card:hover,
.contact-page__info-item:hover,
.contact-page__location-card:hover,
.contact-page__map-card:hover,
.contact-page__stat-card:hover,
.dealers-page__legend-item:hover,
.get-quote-form__product-row:hover,
.get-quote-form__product-row:focus-within,
.home-about__image-card:hover,
.product-faq:hover,
.product-showcase-card:hover,
.product-showcase-card:focus-within,
.product-single__application:hover,
.product-single__feature:hover,
.product-single__grade:hover,
.product-single__media:hover,
.product-single__related:hover,
.product-single__size:hover,
.product-single__specs:hover,
.products-page__empty:hover,
.project-single__meta:hover,
.video-single__notice:hover,
.video-single__player:hover {
	box-shadow: var(--ks-shadow-sm);
	transform: translateY(var(--ks-lift-sm));
}

@media (prefers-reduced-motion: reduce) {

	.bbsm-chairman__figure,
	.career-card__meta-item,
	.career-single__closed-state,
	.career-single__content-card,
	.career-single__form-card,
	.career-single__form-notes,
	.career-single__sidebar-card,
	.career-single__summary-card,
	.careers-archive__empty,
	.ceo-message,
	.certificate-card__frame,
	.comment-card__body,
	.comment-card__notice,
	.comments-block__closed,
	.comments-block__empty,
	.comments-block__respond,
	.contact-page__content-card,
	.contact-page__cta-card,
	.contact-page__details-card,
	.contact-page__info-item,
	.contact-page__location-card,
	.contact-page__map-card,
	.contact-page__stat-card,
	.dealers-page__legend-item,
	.get-quote-form__product-row,
	.home-about__image-card,
	.product-faq,
	.product-showcase-card,
	.product-single__application,
	.product-single__feature,
	.product-single__grade,
	.product-single__media,
	.product-single__related,
	.product-single__size,
	.product-single__specs,
	.products-page__empty,
	.project-single__meta,
	.video-single__notice,
	.video-single__player {
		transition: none;
	}

	.bbsm-chairman__figure:hover,
	.career-card__meta-item:hover,
	.career-single__closed-state:hover,
	.career-single__content-card:hover,
	.career-single__form-card:hover,
	.career-single__form-notes:hover,
	.career-single__sidebar-card:hover,
	.career-single__summary-card:hover,
	.careers-archive__empty:hover,
	.ceo-message:hover,
	.certificate-card__frame:hover,
	.comment-card__body:hover,
	.comment-card__notice:hover,
	.comments-block__closed:hover,
	.comments-block__empty:hover,
	.comments-block__respond:hover,
	.contact-page__content-card:hover,
	.contact-page__cta-card:hover,
	.contact-page__details-card:hover,
	.contact-page__info-item:hover,
	.contact-page__location-card:hover,
	.contact-page__map-card:hover,
	.contact-page__stat-card:hover,
	.dealers-page__legend-item:hover,
	.get-quote-form__product-row:hover,
	.home-about__image-card:hover,
	.product-faq:hover,
	.product-showcase-card:hover,
	.product-single__application:hover,
	.product-single__feature:hover,
	.product-single__grade:hover,
	.product-single__media:hover,
	.product-single__related:hover,
	.product-single__size:hover,
	.product-single__specs:hover,
	.products-page__empty:hover,
	.project-single__meta:hover,
	.video-single__notice:hover,
	.video-single__player:hover {
		transform: none;
	}
}

/*--------------------------------------------------------------
# Pagination
#
# One component for both shapes WordPress emits:
#   paginate_links( 'type' => 'list' )  ->  ul.page-numbers > li > a.page-numbers
#   the_posts_pagination()              ->  nav.navigation.pagination > .nav-links
#
# Styling WordPress's own classes rather than a theme wrapper means every
# paginated listing on the site picks this up without touching its template.
# The theme's __pagination wrappers only supply the top margin.
#
# Note the `> li >` and `.nav-links >` scoping: .page-numbers is also the class
# on the <ul> itself, so unscoped rules would style the container as a pill too.
--------------------------------------------------------------*/
ul.page-numbers,
.navigation.pagination .nav-links {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.page-numbers > li {
	display: flex;
	margin: 0;
	list-style: none;
}

ul.page-numbers > li > .page-numbers,
.navigation.pagination .nav-links > .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	box-sizing: border-box;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.85rem;
	border: 1px solid #e1e8f2;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 8px 18px rgba(16, 35, 63, 0.07);
	color: #10233f;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease;
}

/* Only the links react to the pointer; the current page and the ellipsis do not. */
ul.page-numbers > li > a.page-numbers:hover,
.navigation.pagination .nav-links > a.page-numbers:hover {
	border-color: #cdd8e6;
	background: #eef3f9;
	box-shadow: 0 12px 22px rgba(16, 35, 63, 0.1);
	color: #10233f;
	transform: translateY(-2px);
}

ul.page-numbers > li > .page-numbers:focus-visible,
.navigation.pagination .nav-links > .page-numbers:focus-visible {
	outline: 2px solid #ff6214;
	outline-offset: 2px;
}

/*
 * The current page is the one solid orange chip, so it stays distinguishable
 * from whatever the pointer happens to be over.
 */
ul.page-numbers > li > .page-numbers.current,
.navigation.pagination .nav-links > .page-numbers.current {
	border-color: #ff6214;
	background: #ff6214;
	box-shadow: 0 12px 24px rgba(255, 98, 20, 0.28);
	color: #fff;
}

ul.page-numbers > li > .page-numbers.dots,
.navigation.pagination .nav-links > .page-numbers.dots {
	min-width: 1.75rem;
	padding: 0 0.25rem;
	border-color: transparent;
	background: transparent;
	box-shadow: none;
	color: #8494a8;
	letter-spacing: 0.08em;
}

/* Previous / Next carry a label, so they get room and a chevron. */
ul.page-numbers > li > .page-numbers.prev,
ul.page-numbers > li > .page-numbers.next,
.navigation.pagination .nav-links > .page-numbers.prev,
.navigation.pagination .nav-links > .page-numbers.next {
	padding: 0 1.15rem;
	color: #ff6214;
}

ul.page-numbers > li > a.page-numbers.prev:hover,
ul.page-numbers > li > a.page-numbers.next:hover,
.navigation.pagination .nav-links > a.page-numbers.prev:hover,
.navigation.pagination .nav-links > a.page-numbers.next:hover {
	border-color: #ff6214;
	background: #ff6214;
	box-shadow: 0 12px 24px rgba(255, 98, 20, 0.24);
	color: #fff;
}

/* Chevrons drawn in CSS: they inherit currentColor and need no icon font. */
.page-numbers.prev::before,
.page-numbers.next::after {
	content: "";
	width: 0.4em;
	height: 0.4em;
	border-color: currentColor;
	border-style: solid;
	border-width: 2px 2px 0 0;
}

.page-numbers.prev::before {
	transform: rotate(-135deg);
}

.page-numbers.next::after {
	transform: rotate(45deg);
}

@media screen and (max-width: 37.5em) {

	ul.page-numbers,
	.navigation.pagination .nav-links {
		gap: 0.4rem;
	}

	ul.page-numbers > li > .page-numbers,
	.navigation.pagination .nav-links > .page-numbers {
		min-width: 2.4rem;
		height: 2.4rem;
		padding: 0 0.6rem;
		font-size: 0.9rem;
	}

	ul.page-numbers > li > .page-numbers.prev,
	ul.page-numbers > li > .page-numbers.next,
	.navigation.pagination .nav-links > .page-numbers.prev,
	.navigation.pagination .nav-links > .page-numbers.next {
		padding: 0 0.85rem;
	}
}

@media (prefers-reduced-motion: reduce) {

	ul.page-numbers > li > .page-numbers,
	.navigation.pagination .nav-links > .page-numbers {
		transition: none;
	}

	ul.page-numbers > li > a.page-numbers:hover,
	.navigation.pagination .nav-links > a.page-numbers:hover {
		transform: none;
	}
}
