/* Knapphus 1:1 styles — desktop-first, pixel-tracked to Figma file y7ZntHshL3SGsF3B8OEkPz */

:root {
	--kn-blue: #014244;
	--kn-muted: #f7faf9;
	--kn-orange: #ff8024;
	--kn-grey: #939598;
	--kn-border: #d7d6d6;
	--kn-overlay: #21202e;
	--kn-text: #42454a;
}

body {
	color: var(--kn-text);
	font-family: 'Inter', system-ui, sans-serif;
	font-size: 18px;
	line-height: 1.55;
}

/* === Hero (HOME) =================================================== */
.kn-hero {
	position: relative;
	width: 100%;
	min-height: 1024px;
	background: var(--kn-blue);
	color: #fff;
	overflow: hidden;
}
.kn-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	border: 0;
}
.kn-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--kn-overlay);
	opacity: 0.4;
	pointer-events: none;
	z-index: 1;
}
.kn-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 1440px;
	margin: 0 auto;
	padding: 596px 60px 0 60px;
}
.kn-hero__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 24px 0;
}
.kn-hero__headline {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 60px;
	line-height: 68px;
	color: #fff;
	margin: 0;
	max-width: 650px;
}
.kn-hero__headline .kn-hero__accent {
	color: var(--kn-orange);
}
.kn-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-top: 64px;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 20px;
	padding: 0 24px;
	width: 293px;
	height: 56px;
	border-radius: 10px;
	text-decoration: none;
	transition: background 0.15s;
}
.kn-hero__cta:hover { background: #e8731f; color: #fff; }
.kn-hero__cta::after {
	content: "";
	width: 26px;
	height: 12px;
	margin-left: auto;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M19.5 1L25 6L19.5 11M25 6H1'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M19.5 1L25 6L19.5 11M25 6H1'/></svg>") no-repeat center / contain;
}

/* === Header (transparent overlay variant, used on home) ============= */
.kn-header-over {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 10;
	padding: 21px 53px;
	max-width: 1440px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #fff;
}
.kn-header-over__logo { width: 241px; height: 75px; display: block; }
.kn-header-over__nav {
	display: flex;
	align-items: center;
	gap: 36px;
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: #fff;
}
.kn-header-over__nav a {
	color: #fff;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.kn-header-over__nav a:hover { color: var(--kn-orange); }
.kn-nav__icon, .kn-nav__caret {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	display: block;
}

/* === Header dropdown overlay (Figma node 295:214 / Group 28) ======== */
.kn-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--kn-muted);
	color: var(--kn-blue);
	z-index: 50;
	box-shadow: 0 12px 32px rgba(20, 20, 30, 0.12);
	animation: kn-dropdown-in 0.18s ease-out;
}
.kn-dropdown[hidden] { display: none; }
@keyframes kn-dropdown-in {
	from { opacity: 0; transform: translateY(-8px); }
	to { opacity: 1; transform: translateY(0); }
}
.kn-dropdown__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 60px 60px 80px;
	display: grid;
	grid-template-columns: 407px 1fr;
	gap: 80px;
	align-items: start;
}
.kn-dropdown__image {
	width: 407px;
	height: 391px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}
.kn-dropdown__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 36px;
}
.kn-dropdown__menu a {
	font-family: 'Inter', sans-serif;
	font-size: 24px;
	font-weight: 400;
	color: var(--kn-blue);
	text-decoration: none;
	transition: color 0.15s;
}
.kn-dropdown__menu a:hover { color: var(--kn-orange); }

/* Caret rotation when the trigger is in the open state */
[data-kn-dropdown-trigger][aria-expanded="true"] .kn-nav__caret {
	transform: rotate(180deg);
}
.kn-nav__caret { transition: transform 0.18s ease; }

/* Header containers must be positioning context for the absolute dropdown */
.kn-header { position: relative; }
/* .kn-header-over is already position:absolute so it serves as the container */

/* ==================================================================
   Subpage block extensions + new block styles (Sprint 2)
   ================================================================== */

/* ---------- Hero — secondary CTA, body, short variant ---------- */
.kn-hero--short { min-height: 480px; }
.kn-hero--short .kn-hero__inner { padding-top: 220px; }
.kn-hero__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 28px;
	max-width: 650px;
	color: #fff;
	margin: 24px 0 0;
}
.kn-hero__ctas { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 64px; }
.kn-hero__ctas .kn-hero__cta { margin-top: 0; }
.kn-hero__cta--secondary {
	background: transparent;
	border: 2px solid #fff;
}
.kn-hero__cta--secondary:hover { background: rgba(255, 255, 255, 0.12); }

/* ---------- CTA banner — secondary CTA, checklist, full-width ---------- */
.kn-cta--full .kn-cta__inner { grid-template-columns: 1fr; max-width: 1200px; }
.kn-cta__buttons { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.kn-cta__btn--secondary {
	background: transparent;
	border: 2px solid #fff;
	padding: 12px 22px;
}
.kn-cta__btn--secondary:hover { background: rgba(255, 255, 255, 0.12); }
.kn-cta__checklist {
	list-style: none;
	padding: 0;
	margin: 16px 0 28px;
	display: grid;
	gap: 10px;
}
.kn-cta__checklist li {
	position: relative;
	padding-left: 32px;
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-size: 17px;
	line-height: 1.4;
}
.kn-cta__checklist li::before {
	content: "";
	position: absolute;
	left: 0; top: 3px;
	width: 20px;
	height: 20px;
	background-color: var(--kn-orange);
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
}

/* ---------- Document list (block: knapphus/document-list) ---------- */
.kn-block-documents .kn-docs__inner,
section.kn-docs .kn-docs__inner {
	max-width: 980px;
	margin: 0 auto;
	padding: 80px 60px;
}
.kn-docs__list {
	list-style: none;
	margin: 32px 0 0;
	padding: 0;
	border-top: 1px solid var(--kn-border);
}
.kn-docs__list li {
	border-bottom: 1px solid var(--kn-border);
}
.kn-docs__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0;
	color: var(--kn-blue);
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 18px;
	text-decoration: none;
	transition: color 0.15s;
}
.kn-docs__list a:hover { color: var(--kn-orange); }
.kn-docs__icon { width: 22px; height: 22px; flex-shrink: 0; }

/* ---------- Category tabs (block: knapphus/category-tabs) ---------- */
.kn-cat-tabs {
	background: #fff;
	border-bottom: 1px solid var(--kn-border);
}
.kn-cat-tabs__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 16px 60px;
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.kn-cat-tabs__tab {
	padding: 10px 20px;
	border-radius: 999px;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 15px;
	color: var(--kn-blue);
	text-decoration: none;
	border: 1px solid var(--kn-border);
	transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.kn-cat-tabs__tab:hover { color: var(--kn-orange); border-color: var(--kn-orange); }
.kn-cat-tabs__tab.is-active {
	background: var(--kn-orange);
	color: #fff;
	border-color: var(--kn-orange);
}

/* ---------- Comparison cards (block: knapphus/comparison-cards) ---------- */
.kn-compare__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 80px 60px;
}
.kn-compare__head { text-align: center; margin-bottom: 40px; }
.kn-compare__head .kn-eyebrow {
	justify-content: center;
	display: inline-block;
	color: var(--kn-orange);
}
.kn-compare__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 8px 0 0;
}
.kn-compare__grid { display: grid; gap: 24px; }
.kn-compare__card {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 12px;
	padding: 40px;
	display: flex;
	flex-direction: column;
}
.kn-compare__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: var(--kn-blue);
	margin: 0 0 6px;
}
.kn-compare__subtitle {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--kn-grey);
	margin: 0 0 24px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.kn-compare__features {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: grid;
	gap: 12px;
}
.kn-compare__features li {
	position: relative;
	padding-left: 32px;
	font-family: 'Inter', sans-serif;
	font-size: 17px;
	color: var(--kn-blue);
	line-height: 1.45;
}
.kn-compare__features li::before {
	content: "";
	position: absolute;
	left: 0; top: 3px;
	width: 20px;
	height: 20px;
	background-color: var(--kn-orange);
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
}
.kn-compare__cta {
	margin-top: auto;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 17px;
	padding: 14px 24px;
	border-radius: 10px;
	text-decoration: none;
	text-align: center;
	transition: background 0.15s;
}
.kn-compare__cta:hover { background: #e8731f; }

/* ---------- Contact persons (block: knapphus/contact-persons) ---------- */
section.kn-persons { padding: 80px 60px; }
.kn-persons .kn-persons__inner { max-width: 1320px; padding: 0; }
.kn-persons__head { text-align: center; margin-bottom: 40px; }
.kn-persons__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 8px 0 12px;
}
.kn-persons__head p {
	max-width: 720px;
	margin: 0 auto;
	font-family: 'Inter', sans-serif;
	color: var(--kn-blue);
}
.kn-persons__grid { display: grid; gap: 24px; }
.kn-person {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 12px;
	padding: 28px;
	display: flex;
	gap: 20px;
	align-items: flex-start;
}
.kn-person__avatar {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.kn-person__body { flex: 1; }
.kn-person__name {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0 0 4px;
}
.kn-person__role {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--kn-grey);
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.kn-person__region,
.kn-person__phone,
.kn-person__email {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--kn-blue);
	margin: 4px 0;
}
.kn-person__phone a,
.kn-person__email a { color: var(--kn-blue); text-decoration: none; }
.kn-person__phone a:hover,
.kn-person__email a:hover { color: var(--kn-orange); }

/* ---------- App feature (block: knapphus/app-feature) ---------- */
section.kn-app { padding: 80px 60px; background: transparent; }
.kn-app .kn-app__inner {
	max-width: 1320px;
	margin: 0 auto;
	background: var(--kn-blue);
	color: #fff;
	border-radius: 16px;
	padding: 60px;
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 60px;
	align-items: center;
}
.kn-app__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 16px;
}
.kn-app__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 36px;
	margin: 0 0 16px;
	color: #fff;
}
.kn-app__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 1.5;
	color: #fff;
	margin: 0 0 24px;
}
.kn-app__checklist {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
	display: grid;
	gap: 10px;
}
.kn-app__checklist li {
	position: relative;
	padding-left: 32px;
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
}
.kn-app__checklist li::before {
	content: "";
	position: absolute;
	left: 0; top: 3px;
	width: 20px;
	height: 20px;
	background-color: var(--kn-orange);
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") no-repeat center / contain;
}
.kn-app__badges { display: flex; gap: 12px; flex-wrap: wrap; }
.kn-app__badges img { height: 48px; width: auto; }
.kn-app__image { width: 100%; height: auto; display: block; border-radius: 12px; }

/* ---------- Accordion split (block: knapphus/accordion-split) ---------- */
.kn-acc__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 80px 60px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.kn-acc__text h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 8px 0 16px;
}
.kn-acc__text p {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	margin: 0 0 24px;
}
.kn-acc__image {
	width: 100%;
	border-radius: 12px;
	display: block;
}
.kn-acc__list { display: flex; flex-direction: column; gap: 0; }
.kn-acc__item {
	border-bottom: 1px solid var(--kn-border);
	padding: 0;
}
.kn-acc__item summary {
	list-style: none;
	cursor: pointer;
	padding: 18px 32px 18px 0;
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 20px;
	color: var(--kn-blue);
	position: relative;
	transition: color 0.15s;
}
.kn-acc__item summary::-webkit-details-marker { display: none; }
.kn-acc__item summary::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='5' x2='12' y2='19'/><line x1='5' y1='12' x2='19' y2='12'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='5' x2='12' y2='19'/><line x1='5' y1='12' x2='19' y2='12'/></svg>") no-repeat center / contain;
	transition: transform 0.18s;
}
.kn-acc__item[open] summary::after {
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><line x1='5' y1='12' x2='19' y2='12'/></svg>") no-repeat center / contain;
}
.kn-acc__item:hover summary { color: var(--kn-orange); }
.kn-acc__item-body {
	padding: 0 0 18px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.55;
	color: var(--kn-blue);
	margin: 0;
}

/* ---------- Fluent Forms — adopt theme look ---------- */
.kn-form--fluent .fluentform .ff-el-input--label label,
.kn-form--fluent .fluentform legend {
	font-family: 'Inter', sans-serif;
	color: var(--kn-blue);
	font-weight: 500;
}
.kn-form--fluent .fluentform .ff-el-form-control,
.kn-form--fluent .fluentform input[type="text"],
.kn-form--fluent .fluentform input[type="email"],
.kn-form--fluent .fluentform input[type="tel"],
.kn-form--fluent .fluentform input[type="date"],
.kn-form--fluent .fluentform textarea,
.kn-form--fluent .fluentform select {
	border: 1px solid var(--kn-border);
	border-radius: 8px;
	padding: 12px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	width: 100%;
}
.kn-form--fluent .fluentform .ff-btn-submit,
.kn-form--fluent .fluentform button[type="submit"] {
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 17px;
	padding: 14px 28px;
	border-radius: 10px;
	border: 0;
	cursor: pointer;
	transition: background 0.15s;
}
.kn-form--fluent .fluentform .ff-btn-submit:hover,
.kn-form--fluent .fluentform button[type="submit"]:hover { background: #e8731f; }

/* Fluent Forms wraps checkbox/radio groups in ff_list_buttons + photo-holder
 * markup that hides the actual checkbox and renders each option as a wide pill.
 * Override to a plain stacked checkbox list matching the theme. */
.kn-form--fluent .fluentform .ff_list_buttons,
.kn-form--fluent .fluentform .ff_el_checkable_photo_holders {
	display: flex !important;
	flex-direction: column;
	gap: 8px;
	background: none !important;
}
.kn-form--fluent .fluentform .ff-el-image-holder {
	display: block !important;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	width: auto !important;
	height: auto !important;
}
.kn-form--fluent .fluentform .ff-el-image-input-src {
	display: none !important;
}
.kn-form--fluent .fluentform .ff-el-form-check-label {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--kn-blue);
	cursor: pointer;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
	box-shadow: none !important;
	text-align: left;
	width: auto;
	font-weight: 400;
}
.kn-form--fluent .fluentform .ff-el-form-check-input {
	display: inline-block !important;
	position: static !important;
	opacity: 1 !important;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--kn-orange);
	flex-shrink: 0;
	visibility: visible !important;
	clip: auto !important;
}
.kn-form--fluent .fluentform .ff-el-form-check-label span {
	flex: 1;
	background: none !important;
}
.kn-form-bound {
	border: 1px dashed var(--kn-orange);
	background: #fff5ec;
	padding: 12px 16px;
	border-radius: 6px;
	margin: 16px 0;
	font-family: 'Inter', sans-serif;
}
.kn-form-bound p { margin: 4px 0 0; font-size: 13px; }

/* ---------- Order form (block: knapphus/order-form, placeholder) ---------- */
.kn-orderform { padding: 80px 60px; }
.kn-orderform__inner { max-width: 880px; margin: 0 auto; }
.kn-orderform__head { text-align: center; margin-bottom: 40px; }
.kn-orderform__head .kn-eyebrow { color: var(--kn-orange); display: inline-block; }
.kn-orderform__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 8px 0 12px;
}
.kn-orderform__head p {
	font-family: 'Inter', sans-serif;
	color: var(--kn-blue);
	margin: 0;
}
.kn-orderform__note {
	margin-top: 24px;
	font-size: 13px;
	color: var(--kn-grey);
	text-align: center;
	font-style: italic;
}

/* Anchor that lets the hero sit at top:0 with overlay header on top */
.kn-hero-wrap { position: relative; }

/* === Header (light variant, used on subpages) ====================== */
.kn-header {
	background: #fff;
	padding: 21px 53px;
	border-bottom: 1px solid var(--kn-border);
}
.kn-header__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.kn-header__logo { width: 241px; height: 75px; display: block; }
.kn-header__nav {
	display: flex;
	align-items: center;
	gap: 36px;
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
}
.kn-header__nav a {
	color: var(--kn-blue);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.kn-header__nav a:hover { color: var(--kn-orange); }

/* === Section eyebrow =============================================== */
.kn-eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 16px 0;
}

/* === Section: "Alt du trenger – på ett sted" ======================= */
.kn-section {
	max-width: 1440px;
	margin: 0 auto;
	padding: 80px 60px;
}
.kn-section__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 0 0 24px 0;
}
.kn-section__lede {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: var(--kn-blue);
	max-width: 874px;
	margin: 0 0 48px 0;
}

/* === Service tiles grid (5 + top-left header) ====================== */
.kn-services {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 19px;
	margin-top: 16px;
}
.kn-services__header {
	padding: 0 16px 0 0;
}
.kn-services__header .kn-eyebrow { margin-bottom: 12px; }
.kn-services__header .kn-section__title { margin: 0 0 16px 0; }
.kn-services__header p {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-tile {
	position: relative;
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	padding: 38px;
	height: 334px;
	display: flex;
	flex-direction: column;
}
.kn-tile__icon {
	width: 62px;
	height: 62px;
	border-radius: 10px;
	background: var(--kn-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 26px;
}
.kn-tile__icon img { width: 43px; height: 43px; display: block; }
.kn-tile__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: var(--kn-blue);
	margin: 0 0 12px 0;
}
.kn-tile__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	color: var(--kn-blue);
	margin: 0 0 auto 0;
}
.kn-tile__link {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 18px;
	color: var(--kn-blue);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
}
.kn-tile__link:hover { color: var(--kn-orange); }
.kn-tile__link::after {
	content: "";
	width: 22px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
}

/* === Dark teal CTA banner (left text / right image) ================ */
.kn-cta {
	background: var(--kn-blue);
	color: #fff;
	overflow: hidden;
}
.kn-cta__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 659px;
	gap: 60px;
	align-items: center;
	min-height: 569px;
	padding-left: 60px;
}
.kn-cta__text { padding: 60px 0; }
.kn-cta__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-cta__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	line-height: 1.13;
	margin: 0 0 16px 0;
	color: #fff;
}
.kn-cta__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	margin: 0 0 32px 0;
	color: #fff;
}
.kn-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 20px;
	padding: 16px 28px;
	border-radius: 10px;
	text-decoration: none;
}
.kn-cta__btn:hover { background: #e8731f; color: #fff; }
.kn-cta__btn::after {
	content: "";
	width: 22px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
}
.kn-cta__image {
	height: 569px;
	width: 100%;
	max-width: 659px;
	object-fit: cover;
	border-radius: 0 10px 10px 0;
	display: block;
	justify-self: end;
}
.kn-cta { overflow: hidden; }

/* === Contact form section ("Hva kan vi hjelpe deg med i dag?") ===== */
.kn-contact {
	background: #fff;
	padding: 80px 60px;
}
.kn-contact__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 480px 1fr;
	gap: 80px;
}
.kn-contact__intro .kn-eyebrow { color: var(--kn-orange); }
.kn-contact__intro h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
	line-height: 1.1;
}
.kn-contact__intro p {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	margin: 0 0 32px 0;
}
.kn-contact__details {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	line-height: 1.8;
}
.kn-contact__details a { color: var(--kn-blue); text-decoration: none; }
.kn-contact__details strong {
	display: block;
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin-top: 16px;
}
.kn-form { display: grid; gap: 16px; }
.kn-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.kn-form input[type="text"],
.kn-form input[type="email"],
.kn-form input[type="tel"],
.kn-form textarea {
	width: 100%;
	background: var(--kn-muted);
	border: 1px solid var(--kn-border);
	border-radius: 6px;
	padding: 14px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
}
.kn-form input:focus, .kn-form textarea:focus {
	outline: none;
	border-color: var(--kn-orange);
}
.kn-form fieldset {
	border: 0;
	padding: 0;
	margin: 8px 0 0 0;
}
.kn-form fieldset legend {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: var(--kn-blue);
	margin-bottom: 12px;
}
.kn-form__checks {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px 16px;
	font-size: 15px;
}
.kn-form__checks label {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--kn-blue);
}
.kn-form__submit {
	background: var(--kn-orange);
	color: #fff;
	border: 0;
	padding: 16px 28px;
	border-radius: 10px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 18px;
	cursor: pointer;
	justify-self: start;
}
.kn-form__submit:hover { background: #e8731f; }

/* === Nettbutikk (product showcase) ================================ */
.kn-shop {
	background: #fff;
	padding: 80px 60px;
}
.kn-shop__inner { max-width: 1440px; margin: 0 auto; }
.kn-shop__head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	margin-bottom: 32px;
}
.kn-shop h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-shop__all {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	color: var(--kn-orange);
	text-decoration: none;
	font-size: 16px;
}
.kn-shop__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.kn-product {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.kn-product__img { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; background: var(--kn-muted); }
.kn-product__body { padding: 16px 20px; flex: 1; display: flex; flex-direction: column; }
.kn-product__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: var(--kn-blue);
	margin: 0 0 4px 0;
}
.kn-product__cat {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: var(--kn-grey);
	margin: 0 0 12px 0;
}
.kn-product__cta {
	margin-top: auto;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 14px;
	text-decoration: none;
	padding: 10px 16px;
	border-radius: 6px;
	text-align: center;
	display: block;
}
.kn-product__cta:hover { background: #e8731f; color: #fff; }

/* === Nærmeste avdeling (map + branches) ============================ */
.kn-branches {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-branches__inner { max-width: 1440px; margin: 0 auto; }
.kn-branches__head .kn-eyebrow { color: var(--kn-orange); }
.kn-branches__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
	line-height: 1.1;
}
.kn-branches__head p {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	max-width: 720px;
	margin: 0 0 32px 0;
}
.kn-branches__grid {
	display: grid;
	grid-template-columns: 1fr 540px;
	gap: 48px;
	margin-top: 32px;
}
.kn-search {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 6px;
	padding: 14px 16px;
	width: 100%;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	margin-bottom: 16px;
}
.kn-branch {
	padding: 20px 0;
	border-bottom: 1px solid var(--kn-border);
}
.kn-branch h3 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0 0 4px 0;
}
.kn-branch p {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-branches__map {
	width: 100%;
	height: 578px;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--kn-border);
	display: block;
}

/* === Smøreolje + AdBlue feature (dark teal split) ================== */
.kn-feature-split {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-feature-split__inner {
	max-width: 1440px;
	margin: 0 auto;
	background: var(--kn-blue);
	color: #fff;
	border-radius: 12px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
}
.kn-feature-split__text { padding: 60px; }
.kn-feature-split__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-feature-split__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 40px;
	line-height: 1.13;
	margin: 0 0 16px 0;
	color: #fff;
}
.kn-feature-split__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	margin: 0 0 28px 0;
	color: #fff;
}
.kn-feature-split__cta {
	display: inline-flex;
	gap: 10px;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 18px;
	padding: 14px 24px;
	border-radius: 10px;
	text-decoration: none;
}
.kn-feature-split__image {
	width: 100%;
	height: 100%;
	min-height: 460px;
	object-fit: contain;
	background: var(--kn-blue);
	padding: 32px;
}

/* === Stats banner (bottom of every page) =========================== */
.kn-stats {
	background: var(--kn-blue);
	color: #fff;
	padding: 48px 0;
}
.kn-stats__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 60px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	text-align: center;
}
.kn-stats__num {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	line-height: 1.1;
	margin: 0 0 8px 0;
}
.kn-stats__label {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	margin: 0;
	opacity: 0.9;
}

/* === Footer ========================================================= */
.kn-footer {
	background: var(--kn-muted);
	padding: 64px 0 32px 0;
	color: var(--kn-blue);
}
.kn-footer__inner {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 60px;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 48px;
}
.kn-footer__col h4 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
}
.kn-footer__col ul { list-style: none; padding: 0; margin: 0; }
.kn-footer__col li { margin-bottom: 8px; font-size: 15px; }
.kn-footer__col a { color: var(--kn-blue); text-decoration: none; }
.kn-footer__col a:hover { color: var(--kn-orange); }
.kn-footer__brand img { width: 180px; height: auto; margin-bottom: 16px; }
.kn-footer__brand p { font-size: 15px; line-height: 1.6; margin: 0; }
.kn-footer__legal {
	max-width: 1440px;
	margin: 32px auto 0 auto;
	padding: 16px 60px 0 60px;
	border-top: 1px solid rgba(1, 66, 68, 0.15);
	font-size: 13px;
	display: flex;
	gap: 24px;
}
.kn-footer__legal a { color: var(--kn-blue); text-decoration: none; }

/* === Responsive: scale gracefully below 1440px ===================== */
@media (max-width: 1200px) {
	.kn-hero { min-height: 720px; }
	.kn-hero__inner { padding-top: 360px; padding-left: 32px; padding-right: 32px; }
	.kn-hero__headline { font-size: 44px; line-height: 50px; }
	.kn-section { padding: 56px 32px; }
	.kn-services { grid-template-columns: repeat(2, 1fr); }
	.kn-tile { height: auto; }
	.kn-footer__inner { grid-template-columns: 1fr 1fr; padding: 0 32px; }
}
@media (max-width: 720px) {
	.kn-hero { min-height: 560px; }
	.kn-hero__inner { padding-top: 280px; }
	.kn-hero__headline { font-size: 32px; line-height: 38px; }
	.kn-hero__cta { width: auto; padding: 0 20px; }
	.kn-services { grid-template-columns: 1fr; }
	.kn-stats__inner { grid-template-columns: 1fr; }
	.kn-footer__inner { grid-template-columns: 1fr; }
	.kn-header__inner, .kn-header-over { flex-wrap: wrap; padding: 16px 24px; }
	.kn-header__nav, .kn-header-over__nav { gap: 16px; font-size: 15px; }
}

/* ==================================================================
   Responsive block rules (Sprint 3) — all custom blocks
   ================================================================== */

/* ---------- Tablet (≤ 1024px) ---------- */
@media (max-width: 1024px) {
	.kn-section { padding: 56px 32px; }
	.kn-cta__inner,
	.kn-feature-split__inner,
	.kn-app .kn-app__inner,
	.kn-acc__inner,
	.kn-branches__inner > .kn-branches__grid,
	.kn-contact__inner,
	.kn-compare__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.kn-app .kn-app__inner { padding: 40px; }
	.kn-app__image { max-width: 380px; margin: 0 auto; }
	.kn-cta__image,
	.kn-feature-split__image,
	.kn-acc__image { width: 100%; max-height: 420px; object-fit: cover; }
	.kn-shop__grid { grid-template-columns: repeat(2, 1fr) !important; }
	.kn-persons__grid { grid-template-columns: repeat(2, 1fr) !important; }
	.kn-compare__grid { grid-template-columns: 1fr !important; }
	.kn-branches__map { max-height: 360px; object-fit: cover; }
	.kn-dropdown__inner {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 32px 32px 40px;
	}
	.kn-dropdown__image { width: 100%; max-width: 480px; height: auto; }
}

/* ---------- Phone (≤ 720px) ---------- */
@media (max-width: 720px) {
	.kn-section { padding: 48px 20px; }
	.kn-hero__inner { padding-left: 20px; padding-right: 20px; }
	.kn-hero__body { font-size: 16px; line-height: 24px; }
	.kn-hero__ctas { flex-direction: column; gap: 12px; align-items: stretch; margin-top: 32px; }
	.kn-hero__ctas .kn-hero__cta { width: 100%; justify-content: center; }
	.kn-shop__grid { grid-template-columns: 1fr !important; }
	.kn-persons__grid { grid-template-columns: 1fr !important; }
	.kn-app { padding: 48px 20px; }
	.kn-app .kn-app__inner {
		padding: 32px 24px;
		border-radius: 12px;
	}
	.kn-app__title { font-size: 28px; }
	.kn-app__body, .kn-app__checklist li { font-size: 15px; }
	.kn-app__badges img { height: 42px; }
	.kn-cta {
		padding: 48px 20px;
	}
	.kn-cta__inner {
		padding: 32px 24px;
		border-radius: 12px;
	}
	.kn-cta__title { font-size: 28px; }
	.kn-cta__buttons { flex-direction: column; align-items: stretch; }
	.kn-cta__btn { justify-content: center; }
	.kn-feature-split { padding: 48px 20px; }
	.kn-feature-split__inner {
		padding: 32px 24px;
		border-radius: 12px;
	}
	.kn-feature-split__title { font-size: 28px; }
	.kn-acc__inner { padding: 48px 20px; }
	.kn-acc__text h2 { font-size: 26px; }
	.kn-acc__item summary { font-size: 17px; padding-right: 28px; }
	.kn-compare__inner { padding: 48px 20px; }
	.kn-compare__head h2 { font-size: 26px; }
	.kn-compare__card { padding: 28px; }
	.kn-compare__title { font-size: 24px; }
	section.kn-persons { padding: 48px 20px; }
	.kn-persons__head h2 { font-size: 26px; }
	.kn-person { padding: 20px; gap: 16px; }
	.kn-person__avatar { width: 64px; height: 64px; }
	.kn-person__name { font-size: 18px; }
	.kn-branches__inner > .kn-branches__head h2 { font-size: 28px; }
	.kn-contact__inner h2 { font-size: 28px; }
	.kn-contact .kn-form__row { grid-template-columns: 1fr; }
	.kn-orderform { padding: 48px 20px; }
	.kn-orderform__head h2 { font-size: 26px; }
	.kn-docs .kn-docs__inner,
	section.kn-docs .kn-docs__inner { padding: 48px 20px; }
	.kn-docs__list a { font-size: 16px; padding: 14px 0; }
	.kn-cat-tabs__inner {
		padding: 12px 20px;
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.kn-cat-tabs__inner::-webkit-scrollbar { display: none; }
	.kn-cat-tabs__tab { white-space: nowrap; flex-shrink: 0; padding: 8px 16px; font-size: 14px; }
	.kn-dropdown__inner { padding: 24px 20px 32px; }
	.kn-dropdown__menu { gap: 22px; }
	.kn-dropdown__menu a { font-size: 20px; }
	.kn-eyebrow { font-size: 14px; }
}

/* ==================================================================
   A11y — focus-visible states for keyboard navigation
   Single orange outline + offset across every interactive element.
   ================================================================== */
.kn-header-over__nav a:focus-visible,
.kn-header__nav a:focus-visible,
[data-kn-dropdown-trigger]:focus-visible,
.kn-dropdown__menu a:focus-visible,
.kn-hero__cta:focus-visible,
.kn-cta__btn:focus-visible,
.kn-feature-split__cta:focus-visible,
.kn-tile__link:focus-visible,
.kn-product__cta:focus-visible,
.kn-shop__all:focus-visible,
.kn-compare__cta:focus-visible,
.kn-docs__list a:focus-visible,
.kn-cat-tabs__tab:focus-visible,
.kn-acc__item summary:focus-visible,
.kn-person__phone a:focus-visible,
.kn-person__email a:focus-visible,
.kn-footer a:focus-visible,
.kn-form__submit:focus-visible,
.kn-form--fluent button:focus-visible {
	outline: 2px solid var(--kn-orange);
	outline-offset: 3px;
	border-radius: 4px;
}
.kn-form input:focus-visible,
.kn-form textarea:focus-visible,
.kn-form--fluent input:focus-visible,
.kn-form--fluent textarea:focus-visible,
.kn-form--fluent select:focus-visible,
.kn-search:focus-visible {
	outline: 2px solid var(--kn-orange);
	outline-offset: 1px;
	border-color: var(--kn-orange);
}
/* Skip the default browser dotted outline on the marker we hide */
.kn-acc__item summary:focus { outline: none; }

/* Screen-reader-only utility */
.kn-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

/* ---------- Small phone (≤ 480px) ---------- */
@media (max-width: 480px) {
	.kn-hero__headline { font-size: 28px; line-height: 34px; }
	.kn-cta__title,
	.kn-feature-split__title,
	.kn-app__title,
	.kn-compare__head h2,
	.kn-persons__head h2,
	.kn-acc__text h2,
	.kn-orderform__head h2 { font-size: 24px; }
	.kn-app__badges { flex-direction: column; gap: 8px; }
	.kn-app__badges img { height: 44px; width: auto; }
	.kn-shop__inner,
	.kn-compare__inner,
	.kn-acc__inner { padding: 40px 16px; }
	.kn-person { flex-direction: column; text-align: center; align-items: center; }
}

/* === Subpage hero (used on Drivstoff, Teknikk, Tanker, Produkter, Kort) === */
.kn-subhero {
	position: relative;
	width: 100%;
	min-height: 1024px;
	background-size: cover;
	background-position: center;
	color: #fff;
}
.kn-subhero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--kn-overlay);
	opacity: 0.4;
	pointer-events: none;
}
.kn-subhero__inner {
	position: relative;
	max-width: 1440px;
	margin: 0 auto;
	padding: 596px 60px 0 60px;
}
.kn-subhero__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 24px 0;
}
.kn-subhero__headline {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 60px;
	line-height: 68px;
	color: #fff;
	margin: 0;
	max-width: 720px;
}
.kn-subhero__headline .kn-accent { color: var(--kn-orange); }
.kn-subhero__lede {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: #fff;
	max-width: 640px;
	margin: 24px 0 0 0;
}
.kn-subhero__ctas {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 40px;
}
.kn-btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: var(--kn-orange);
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 20px;
	padding: 16px 24px;
	border-radius: 10px;
	text-decoration: none;
	transition: background 0.15s;
}
.kn-btn-primary:hover { background: #e8731f; color: #fff; }
.kn-btn-primary svg { width: 22px; height: 10px; }
.kn-btn-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 20px;
	text-decoration: none;
}
.kn-btn-link:hover { color: var(--kn-orange); }

/* === App showcase (dark teal w/ phone/tablet mockup + checklist + badges) === */
.kn-app {
	background: var(--kn-blue);
	color: #fff;
	overflow: hidden;
}
.kn-app__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 580px;
	gap: 60px;
	align-items: center;
	min-height: 540px;
	padding: 60px;
}
.kn-app__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-app__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	line-height: 1.13;
	margin: 0 0 16px 0;
	color: #fff;
}
.kn-app__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	margin: 0 0 24px 0;
	color: #fff;
}
.kn-app__checklist {
	list-style: none;
	padding: 0;
	margin: 0 0 28px 0;
	display: grid;
	gap: 12px;
}
.kn-app__checklist li {
	display: flex;
	align-items: start;
	gap: 12px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
}
.kn-app__checklist li::before {
	content: "";
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	border: 2px solid var(--kn-orange);
	border-radius: 50%;
	background: #fff;
	margin-top: 2px;
}
.kn-app__badges {
	display: flex;
	gap: 12px;
	align-items: center;
}
.kn-app__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #000;
	color: #fff;
	border-radius: 8px;
	padding: 8px 14px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	text-decoration: none;
}
.kn-app__badge svg { width: 20px; height: 24px; }
.kn-app__badge small { display: block; font-size: 10px; opacity: 0.8; }
.kn-app__badge strong { display: block; font-size: 15px; font-weight: 600; }
.kn-app__image {
	width: 100%;
	max-width: 580px;
	height: auto;
	justify-self: end;
}
.kn-app__image-placeholder {
	width: 100%;
	height: 460px;
	background: rgba(255,255,255,0.05);
	border: 1px dashed rgba(255,255,255,0.2);
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255,255,255,0.5);
	font-style: italic;
}

/* === Contact persons grid (real named contacts grouped by region) === */
.kn-persons {
	background: #fff;
	padding: 80px 60px;
}
.kn-persons__inner { max-width: 1440px; margin: 0 auto; }
.kn-persons__head .kn-eyebrow { color: var(--kn-orange); }
.kn-persons__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 48px;
	color: var(--kn-blue);
	margin: 0 0 32px 0;
	line-height: 1.1;
}
.kn-persons__group {
	margin-top: 40px;
}
.kn-persons__region {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 20px 0;
}
.kn-persons__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.kn-person {
	text-align: center;
	background: var(--kn-muted);
	border-radius: 10px;
	padding: 24px 16px;
}
.kn-person__avatar {
	width: 88px;
	height: 88px;
	border-radius: 50%;
	background: var(--kn-border);
	margin: 0 auto 12px;
	object-fit: cover;
	display: block;
}
.kn-person__name {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 16px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-person__role {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: var(--kn-grey);
	margin: 2px 0 8px;
}
.kn-person__phone {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 15px;
	color: var(--kn-blue);
	margin: 0 0 2px;
	display: block;
}
.kn-person__email {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: var(--kn-grey);
	margin: 0;
	text-decoration: none;
}

/* === Tank CTA card (Trenger du en tank?) ============================ */
.kn-tank-cta {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-tank-cta__inner {
	max-width: 1440px;
	margin: 0 auto;
	background: var(--kn-blue);
	color: #fff;
	border-radius: 12px;
	overflow: hidden;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	min-height: 380px;
}
.kn-tank-cta__text { padding: 60px; }
.kn-tank-cta__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 40px;
	margin: 0 0 16px 0;
	color: #fff;
}
.kn-tank-cta__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 26px;
	margin: 0 0 24px 0;
	color: #fff;
}
.kn-tank-cta__img {
	width: 100%;
	height: 100%;
	min-height: 380px;
	object-fit: contain;
	padding: 32px;
}

/* === Related cards ("Se også") ==================================== */
.kn-related {
	background: #fff;
	padding: 60px;
}
.kn-related__inner { max-width: 1440px; margin: 0 auto; }
.kn-related__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 0 0 24px 0;
}
.kn-related__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.kn-related__card {
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	padding: 32px;
	display: flex;
	flex-direction: column;
}
.kn-related__card h3 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 24px;
	color: var(--kn-blue);
	margin: 0 0 12px 0;
}
.kn-related__card p {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 24px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
}
.kn-related__card a {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	color: var(--kn-orange);
	text-decoration: none;
	margin-top: auto;
}

/* === Order form section (Bestill drivstoff) ======================= */
.kn-orderform {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-orderform__inner {
	max-width: 1100px;
	margin: 0 auto;
}
.kn-orderform__head {
	text-align: center;
	margin-bottom: 40px;
}
.kn-orderform__head .kn-eyebrow { color: var(--kn-orange); justify-content: center; display: block; }
.kn-orderform__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 40px;
	color: var(--kn-blue);
	margin: 0 0 12px;
}
.kn-orderform__head p {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	max-width: 720px;
	margin: 0 auto;
}
.kn-orderform__box {
	background: #fff;
	border-radius: 12px;
	padding: 40px;
	display: grid;
	gap: 16px;
}
.kn-orderform__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.kn-orderform label {
	display: grid;
	gap: 6px;
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.5px;
	color: var(--kn-blue);
}
.kn-orderform input, .kn-orderform select, .kn-orderform textarea {
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 16px;
	padding: 12px 14px;
	border: 1px solid var(--kn-border);
	border-radius: 6px;
	color: var(--kn-blue);
	background: #fff;
}
.kn-orderform input:focus, .kn-orderform select:focus, .kn-orderform textarea:focus {
	outline: none;
	border-color: var(--kn-orange);
}
.kn-orderform__submit {
	background: var(--kn-orange);
	color: #fff;
	border: 0;
	padding: 16px 28px;
	border-radius: 10px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 18px;
	cursor: pointer;
	justify-self: start;
}
.kn-orderform__submit:hover { background: #e8731f; }

/* === Teknikk: category cards row (4 small cards) =================== */
.kn-tk-cats {
	background: #fff;
	padding: 60px;
}
.kn-tk-cats__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.kn-tk-cat {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	padding: 24px;
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 95px;
}
.kn-tk-cat__icon {
	flex-shrink: 0;
	width: 62px;
	height: 62px;
	border-radius: 10px;
	background: var(--kn-muted);
	display: flex;
	align-items: center;
	justify-content: center;
}
.kn-tk-cat__icon img { width: 43px; height: 43px; }
.kn-tk-cat__title {
	font-family: 'Inter', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0;
}

/* === Teknikk: feature card (lys blå card with text + image + list) === */
.kn-tk-feature {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-tk-feature__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
}
.kn-tk-feature__text .kn-eyebrow { color: var(--kn-orange); }
.kn-tk-feature__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
}
.kn-tk-feature__body {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-tk-feature__img {
	width: 100%;
	height: 100%;
	max-height: 470px;
	object-fit: cover;
	border-radius: 10px;
}
.kn-tk-feature__accordion {
	display: grid;
	gap: 16px;
	margin-top: 24px;
}
.kn-tk-feature__row {
	background: #fff;
	border-radius: 10px;
	padding: 22px 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
	cursor: pointer;
	border: 0;
	text-align: left;
}
.kn-tk-feature__row::after {
	content: "+";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	background: var(--kn-muted);
	border-radius: 5px;
	font-weight: 400;
	font-size: 20px;
	color: var(--kn-blue);
}

/* === Teknikk: dark teal Automat block with checklist + 2 CTAs ====== */
.kn-tk-automat {
	background: #fff;
	padding: 0 60px 80px;
}
.kn-tk-automat__inner {
	max-width: 1440px;
	margin: 0 auto;
	background: var(--kn-blue);
	color: #fff;
	border-radius: 12px;
	padding: 60px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: start;
}
.kn-tk-automat__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: #fff;
	margin: 0 0 16px 0;
}
.kn-tk-automat__body {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: #fff;
	margin: 0 0 24px 0;
}
.kn-tk-automat__buttons { display: flex; gap: 12px; flex-wrap: wrap; }
.kn-tk-automat__checks {
	display: grid;
	gap: 24px;
}
.kn-tk-automat__check {
	display: grid;
	grid-template-columns: 24px 1fr;
	gap: 16px;
	align-items: start;
}
.kn-tk-automat__check img { width: 24px; height: 24px; margin-top: 4px; }
.kn-tk-automat__check h4 {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 20px;
	color: #fff;
	margin: 0 0 4px 0;
}
.kn-tk-automat__check p {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 24px;
	color: #fff;
	margin: 0;
}

/* === Teknikk: Fjernpeiling lys blå card with Soolo app image ======= */
.kn-tk-soolo {
	background: #fff;
	padding: 60px;
}
.kn-tk-soolo__inner {
	max-width: 1440px;
	margin: 0 auto;
	background: var(--kn-muted);
	border-radius: 12px;
	padding: 60px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
.kn-tk-soolo__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: var(--kn-blue);
	margin: 0 0 16px;
}
.kn-tk-soolo__body {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: var(--kn-blue);
	margin: 0 0 24px;
}
.kn-tk-soolo__link {
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	color: var(--kn-orange);
	font-size: 16px;
	text-decoration: none;
	display: inline-flex;
	gap: 8px;
	align-items: center;
}
.kn-tk-soolo__img {
	width: 100%;
	height: auto;
	max-height: 410px;
	object-fit: contain;
}

/* === Teknikk: contact form section with person card ================ */
.kn-tk-contact {
	background: #fff;
	padding: 80px 60px;
}
.kn-tk-contact__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 427px 1fr;
	gap: 24px;
}
.kn-tk-contact__head {
	grid-column: 1 / -1;
	margin-bottom: 16px;
}
.kn-tk-contact__head .kn-eyebrow { color: var(--kn-orange); }
.kn-tk-contact__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: var(--kn-blue);
	margin: 0 0 16px;
}
.kn-tk-contact__head p {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-tk-contact__person {
	background: var(--kn-muted);
	border-radius: 10px;
	padding: 28px;
	text-align: left;
}
.kn-tk-contact__avatar {
	width: 121px;
	height: 121px;
	border-radius: 50%;
	background: var(--kn-border);
	margin-bottom: 24px;
	display: block;
	object-fit: cover;
}
.kn-tk-contact__person h3 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 24px;
	color: var(--kn-blue);
	margin: 0 0 6px 0;
}
.kn-tk-contact__person p {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	margin: 0;
	line-height: 28px;
}
.kn-tk-contact__person a {
	color: var(--kn-blue);
	text-decoration: none;
}
.kn-tk-contact__form {
	background: var(--kn-muted);
	border-radius: 10px;
	padding: 40px;
	display: grid;
	gap: 20px;
}
.kn-tk-contact__form label {
	display: grid;
	gap: 6px;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
}
.kn-tk-contact__form label .req { color: var(--kn-orange); }
.kn-tk-contact__form input, .kn-tk-contact__form textarea {
	background: #fff;
	border: 0;
	border-radius: 10px;
	padding: 14px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
}
.kn-tk-contact__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.kn-tk-contact__submit {
	background: var(--kn-orange);
	color: #fff;
	border: 0;
	padding: 18px 28px;
	border-radius: 10px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 20px;
	cursor: pointer;
	justify-self: start;
}

/* === Kort: 2-card comparison (Knapphus Kortet vs St1 Business) ===== */
.kn-kort-compare {
	background: var(--kn-muted);
	padding: 0 60px 80px;
}
.kn-kort-compare__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: -550px;
	position: relative;
	z-index: 5;
}
.kn-kort-card {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	padding: 40px;
}
.kn-kort-card__icon {
	width: 79px;
	height: 79px;
	border-radius: 10px;
	background: var(--kn-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 24px;
}
.kn-kort-card__icon img { max-width: 54px; max-height: 54px; }
.kn-kort-card__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
}
.kn-kort-card__body {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	line-height: 28px;
	color: var(--kn-blue);
	margin: 0 0 20px 0;
}
.kn-kort-card__bullets {
	list-style: none;
	padding: 0;
	margin: 0 0 24px 0;
	display: grid;
	gap: 8px;
}
.kn-kort-card__bullets li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
}
.kn-kort-card__bullets li img { width: 20px; height: 20px; }
.kn-kort-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--kn-orange);
	color: var(--kn-blue);
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 16px;
	padding: 10px 20px;
	border-radius: 10px;
	text-decoration: none;
	background: transparent;
}
.kn-kort-card__btn:hover { background: var(--kn-orange); color: #fff; }

/* === Kort: KE Fast Fuel app (big dark teal panel with phone mockup) === */
.kn-kort-app {
	background: var(--kn-muted);
	padding: 0 60px 80px;
}
.kn-kort-app__inner {
	max-width: 1440px;
	margin: 0 auto;
	background: var(--kn-blue);
	color: #fff;
	border-radius: 12px;
	display: grid;
	grid-template-columns: 1fr 647px;
	gap: 0;
	overflow: hidden;
	min-height: 699px;
}
.kn-kort-app__text { padding: 88px 60px; }
.kn-kort-app__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-kort-app__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: #fff;
	margin: 0 0 16px 0;
}
.kn-kort-app__body {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: #fff;
	margin: 0 0 28px 0;
}
.kn-kort-app__checks {
	list-style: none;
	padding: 0;
	margin: 0 0 32px 0;
	display: grid;
	gap: 12px;
}
.kn-kort-app__checks li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: #fff;
}
.kn-kort-app__checks li img { width: 24px; height: 24px; }
.kn-kort-app__badges { display: flex; gap: 16px; }
.kn-kort-app__badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	color: #000;
	border-radius: 6px;
	padding: 8px 12px;
	font-family: 'Inter', sans-serif;
	font-size: 9px;
	text-decoration: none;
	min-width: 120px;
}
.kn-kort-app__badge svg { width: 20px; height: 24px; flex-shrink: 0; fill: #000; }
.kn-kort-app__badge small { display: block; font-size: 9px; line-height: 1.2; }
.kn-kort-app__badge strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.2; }
.kn-kort-app__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	min-height: 699px;
}

/* === Kort: 2-person contact section (Astrid + Bjørn) =============== */
.kn-kort-contact {
	background: #fff;
	padding: 80px 60px;
}
.kn-kort-contact__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 24px;
	align-items: center;
}
.kn-kort-contact__head .kn-eyebrow { color: var(--kn-orange); }
.kn-kort-contact__head h2 {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: var(--kn-blue);
	margin: 0 0 16px;
}
.kn-kort-contact__head p {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-kort-contact__card {
	background: var(--kn-muted);
	border-radius: 10px;
	padding: 28px;
}
.kn-kort-contact__avatar {
	width: 121px;
	height: 121px;
	border-radius: 50%;
	background: var(--kn-border);
	display: block;
	margin: 0 0 24px;
	object-fit: cover;
}
.kn-kort-contact__name {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 24px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-kort-contact__role {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	margin: 4px 0 0;
}
.kn-kort-contact__phone {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 16px 0 0;
	text-decoration: none;
	display: block;
}
.kn-kort-contact__email {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	text-decoration: none;
}

/* === Kort: Stations dark teal split (Over 70 stasjoner) ============ */
.kn-kort-stations {
	background: #fff;
	padding: 80px 60px;
}
.kn-kort-stations__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-radius: 10px;
	overflow: hidden;
}
.kn-kort-stations__text {
	background: var(--kn-blue);
	color: #fff;
	padding: 80px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.kn-kort-stations__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-kort-stations__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: #fff;
	margin: 0 0 16px 0;
}
.kn-kort-stations__body {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	line-height: 28px;
	color: #fff;
	margin: 0 0 24px 0;
}
.kn-kort-stations__link {
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	color: var(--kn-orange);
	font-size: 16px;
	text-decoration: none;
}
.kn-kort-stations__img {
	width: 100%;
	height: 569px;
	object-fit: cover;
}

/* === Kort-order centered intro (used on kort-bedrift / kort-privat) === */
.kn-order-intro {
	background: #fff;
	padding: 80px 60px 32px;
}
.kn-order-intro__inner {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}
.kn-order-intro__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 52px;
	line-height: 60px;
	color: var(--kn-blue);
	margin: 0 0 16px;
}
.kn-order-intro__lede {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	margin: 0;
}

/* === Order form (kort-bedrift / kort-privat) ====================== */
.kn-order-form {
	background: #fff;
	padding: 0 60px 80px;
}
.kn-order-form__inner {
	max-width: 900px;
	margin: 0 auto;
	background: var(--kn-muted);
	border-radius: 12px;
	padding: 40px;
	display: grid;
	gap: 16px;
}
.kn-order-form label {
	display: grid;
	gap: 6px;
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: var(--kn-orange);
}
.kn-order-form label .req { color: var(--kn-orange); }
.kn-order-form input[type="text"],
.kn-order-form input[type="email"],
.kn-order-form input[type="tel"],
.kn-order-form input[type="date"] {
	background: #fff;
	border: 0;
	border-radius: 6px;
	padding: 12px 14px;
	font-family: 'Inter', sans-serif;
	font-weight: 400;
	font-size: 16px;
	color: var(--kn-blue);
}
.kn-order-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.kn-order-form__radio {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--kn-blue);
	display: flex;
	align-items: center;
	gap: 8px;
}
.kn-order-form__radios { display: flex; gap: 24px; }
.kn-order-form__divider {
	border: 0;
	border-top: 1px solid var(--kn-orange);
	margin: 16px 0;
}
.kn-order-form__section-title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 18px;
	color: var(--kn-blue);
	text-align: center;
	margin: 0 0 8px;
}
.kn-order-form__hint {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--kn-grey);
	text-align: center;
	margin: 0 0 16px;
}
.kn-order-form__hint a { color: var(--kn-orange); text-decoration: none; }
.kn-order-form__card-slot {
	background: #fff;
	border-radius: 8px;
	padding: 16px;
}
.kn-order-form__card-slot-label {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 14px;
	color: var(--kn-blue);
	margin: 0 0 8px;
}
.kn-order-form__card-slot-row {
	display: grid;
	grid-template-columns: auto auto 1fr;
	gap: 12px;
	align-items: center;
}
.kn-order-form__terms {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--kn-blue);
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}
.kn-order-form__submit {
	background: var(--kn-orange);
	color: #fff;
	border: 0;
	padding: 14px 28px;
	border-radius: 8px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 16px;
	cursor: pointer;
	justify-self: start;
}

/* === Tanker: 2 product cards (Tanker / Utstyr) ====================== */
.kn-tk-products {
	background: var(--kn-muted);
	padding: 40px 60px;
}
.kn-tk-products__inner {
	max-width: 1440px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.kn-tk-product-card {
	background: #fff;
	border: 1px solid var(--kn-border);
	border-radius: 10px;
	overflow: hidden;
}
.kn-tk-product-card__img {
	width: 100%;
	height: 320px;
	object-fit: contain;
	background: var(--kn-muted);
	padding: 24px;
}
.kn-tk-product-card__body { padding: 32px 36px 36px; }
.kn-tk-product-card__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 28px;
	color: var(--kn-blue);
	margin: 0 0 16px 0;
}
.kn-tk-product-card__lede {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	color: var(--kn-blue);
	margin: 0 0 20px 0;
}
.kn-tk-product-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid var(--kn-orange);
	color: var(--kn-blue);
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 16px;
	padding: 8px 18px;
	border-radius: 10px;
	text-decoration: none;
}
.kn-tk-product-card__btn:hover { background: var(--kn-orange); color: #fff; }

/* === Tanker: Docs list (PDF downloads) ============================ */
.kn-docs {
	background: #fff;
	padding: 60px;
}
.kn-docs__inner {
	max-width: 1440px;
	margin: 0 auto;
}
.kn-docs__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 0 0 8px;
}
.kn-docs__lede {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	color: var(--kn-blue);
	margin: 0 0 32px;
}
.kn-docs__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	max-width: 880px;
}
.kn-docs__item {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	color: var(--kn-blue);
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	text-decoration: none;
}
.kn-docs__item img { width: 43px; height: 43px; }
.kn-docs__item:hover { color: var(--kn-orange); }

/* === Logo strip (DE STOLER PÅ OSS) ================================= */
.kn-logos {
	background: #fff;
	padding: 64px 60px;
}
.kn-logos__inner { max-width: 1440px; margin: 0 auto; text-align: center; }
.kn-logos__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 12px 0;
}
.kn-logos__title {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 32px;
	color: var(--kn-blue);
	margin: 0 0 40px 0;
}
.kn-logos__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	flex-wrap: wrap;
}
.kn-logos__item {
	flex: 1 1 0;
	min-width: 140px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.kn-logos__item img {
	max-width: 100%;
	max-height: 64px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.65;
	transition: filter 0.2s, opacity 0.2s;
}
.kn-logos__item img:hover { filter: grayscale(0); opacity: 1; }
.kn-logos__placeholder {
	width: 100%;
	height: 56px;
	border: 1px dashed var(--kn-border);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--kn-grey);
	font-family: 'Inter', sans-serif;
	font-size: 13px;
}

/* === Testimonial (Et utdrag av hva kundene sier) ================== */
.kn-testimonial {
	background: var(--kn-muted);
	padding: 80px 60px;
}
.kn-testimonial__inner {
	max-width: 900px;
	margin: 0 auto;
	text-align: center;
}
.kn-testimonial__eyebrow {
	font-family: 'Outfit', sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 1.12px;
	text-transform: uppercase;
	color: var(--kn-orange);
	margin: 0 0 24px 0;
}
.kn-testimonial__quote {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 36px;
	line-height: 1.3;
	color: var(--kn-blue);
	margin: 0 0 32px 0;
}
.kn-testimonial__person {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
}
.kn-testimonial__avatar {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--kn-border);
}
.kn-testimonial__meta { text-align: left; }
.kn-testimonial__name {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
	font-size: 18px;
	color: var(--kn-blue);
	margin: 0;
}
.kn-testimonial__role {
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	color: var(--kn-grey);
	margin: 2px 0 0;
}

/* === Native-block module overrides (editable Hero / Services) ======= */
/* These sections are built from core blocks (button/image), so the look
   that used to live on raw <a>/<svg> markup is re-applied to the block
   wrappers here. Decorative arrows use a CSS mask + currentColor so they
   inherit the link colour (and the hover swap) automatically. */

/* Hero headline accent — orange word (editable inline text colour).
   Reset the <mark> user-agent background so it reads as coloured text,
   not a highlight box. */
.kn-hero__headline mark.has-inline-color {
	color: var(--kn-orange);
	background: none;
}

/* Feature-split CTA arrow (block renders a bare <a>, no inline svg) */
.kn-feature-split__cta { align-items: center; }
.kn-feature-split__cta::after {
	content: "";
	width: 22px;
	height: 10px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
	        mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 10' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M16 1l5 4-5 4M21 5H1'/></svg>") no-repeat center / contain;
}

/* Feature-split light variant (was the inline-styled AdBlue section) */
.kn-feature-split.is-light { background: #fff; }
.kn-feature-split.is-light .kn-feature-split__inner {
	background: var(--kn-muted);
	color: var(--kn-blue);
}
.kn-feature-split.is-light .kn-feature-split__eyebrow { color: var(--kn-orange); }
.kn-feature-split.is-light .kn-feature-split__title,
.kn-feature-split.is-light .kn-feature-split__body { color: var(--kn-blue); }
