/* Bridge remains the header owner. These rules style only Kouruset contracts. */
.kouruset-header-tools {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}
.kouruset-header-cart,
.kouruset-account-link {
	color: inherit;
	text-decoration: none;
}
.kouruset-header-cart__count {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--kouruset-red);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

/* Long desktop submenu labels are allowed to use the width they need. */
body.kouruset .drop_down .second .inner > ul > li > a,
body.kouruset .drop_down .second .inner ul li a {
	white-space: normal;
	overflow-wrap: break-word;
	line-height: 1.25;
}

@media (max-width: 1000px) {
	body.kouruset .mobile_menu a,
	body.kouruset nav.mobile_menu ul li a {
		white-space: normal;
		overflow-wrap: break-word;
		line-height: 1.3;
	}
	body.kouruset .header_top {
		padding-top: env(safe-area-inset-top, 0px);
	}
}


/* Bridge header remains the owner, but its runtime visibility/color
 * assumptions must not leave the existing logo or top widgets invisible. */
body.kouruset .header_top,
body.kouruset .header_top .container,
body.kouruset .header_top .container_inner {
	background: var(--kouruset-slate) !important;
	color: #fff !important;
}
body.kouruset .header_top p,
body.kouruset .header_top span,
body.kouruset .header_top a,
body.kouruset .header_top .header-widget,
body.kouruset .header_top .header-widget a,
body.kouruset .header_top .header-widget span {
	color: #fff !important;
}
body.kouruset header.page_header .q_logo a {
	visibility: visible !important;
}
body.kouruset header.page_header .q_logo img.normal {
	opacity: 1 !important;
	visibility: visible !important;
}

body.kouruset header.page_header nav.main_menu.drop_down .second .inner,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner > ul,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul {
	background: var(--kouruset-slate) !important;
}
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li a {
	background: transparent !important;
}
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li a,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li a span {
	color: #fff !important;
}
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li a:hover,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li a:hover span,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li.current-menu-item > a,
body.kouruset header.page_header nav.main_menu.drop_down .second .inner ul li.current-menu-item > a span {
	background: var(--kouruset-red) !important;
	color: #fff !important;
}

/* keep exactly one Bridge logo image. 's CSS background fallback could
 * visually overlap a real Bridge logo variant after cache/theme-mod recovery. */
body.kouruset header.page_header .logo_wrapper {
	width: 230px;
	min-width: 230px;
}
body.kouruset header.page_header .q_logo,
body.kouruset header.page_header .q_logo a {
	width: 220px !important;
	max-width: 220px !important;
}
body.kouruset header.page_header .q_logo a {
	height: 54px !important;
	visibility: visible !important;
	background: none !important;
	overflow: hidden;
}
body.kouruset header.page_header .q_logo a > img {
	display: none !important;
}
body.kouruset header.page_header .q_logo a > img.normal {
	display: block !important;
	position: relative !important;
	top: 50% !important;
	left: 0 !important;
	transform: translateY(-50%);
	height: auto !important;
	max-height: 54px !important;
	width: auto !important;
	max-width: 220px !important;
	opacity: 1 !important;
	visibility: visible !important;
	object-fit: contain;
}
body.kouruset header.page_header .q_logo_hidden,
body.kouruset header.page_header .logo_wrapper .q_logo ~ .q_logo {
	display: none !important;
}

/* The approved header uses a subtle light-grey social hover, not red-on-slate. */
body.kouruset .header_top .q_social_icon_holder a,
body.kouruset .header_top .q_social_icon_holder i,
body.kouruset .header_top .social_icon,
body.kouruset .header_top .social_icon i {
	transition: color .15s ease, opacity .15s ease;
}
body.kouruset .header_top .q_social_icon_holder a:hover,
body.kouruset .header_top .q_social_icon_holder a:hover i,
body.kouruset .header_top a:hover .social_icon,
body.kouruset .header_top a:hover .social_icon i {
	color: #c9cdd3 !important;
	opacity: 1 !important;
	text-decoration: none !important;
}

@media (max-width: 1000px) {
	body.kouruset header.page_header .logo_wrapper {
		width: 190px;
		min-width: 0;
	}
	body.kouruset header.page_header .q_logo,
	body.kouruset header.page_header .q_logo a {
		width: 180px !important;
		max-width: 180px !important;
	}
	body.kouruset header.page_header .q_logo a > img.normal {
		max-width: 180px !important;
		max-height: 48px !important;
	}
}

/* Align the existing Bridge logo markup with the desktop audience segment. */
@media (min-width: 1001px) {
	body.kouruset header.page_header .logo_wrapper { transform: translateY(-22px); }
	body.kouruset header.page_header .q_logo a { height: 43px !important; }
	body.kouruset header.page_header .q_logo a > img.normal { max-height: 43px !important; }
}
body.kouruset .header_top .q_social_icon_holder:hover,
body.kouruset .header_top .q_social_icon_holder:hover a,
body.kouruset .header_top .q_social_icon_holder:hover i,
body.kouruset .header_top .q_social_icon_holder:hover .qode_icon_font_awesome,
body.kouruset .header_top .q_social_icon_holder a:hover,
body.kouruset .header_top .q_social_icon_holder a:hover i {
	color: #c9cdd3 !important;
	background: transparent !important;
	opacity: 1 !important;
}


/* exact Bridge social-icon contract. */
body.kouruset .header_top .q_social_icon_holder .simple_social,
body.kouruset .header_top .q_social_icon_holder .qode_icon_font_awesome,
body.kouruset .header_top .q_social_icon_holder a,
body.kouruset .header_top .q_social_icon_holder i {
	background: transparent !important;
}
body.kouruset .header_top .q_social_icon_holder:hover .simple_social,
body.kouruset .header_top .q_social_icon_holder a:hover .simple_social,
body.kouruset .header_top .q_social_icon_holder:hover .qode_icon_font_awesome,
body.kouruset .header_top .q_social_icon_holder a:hover .qode_icon_font_awesome,
body.kouruset .header_top .simple_social:hover {
	color: #d9dde5 !important;
	background: transparent !important;
	opacity: 1 !important;
}

@media (max-width: 1000px) {
	body.kouruset nav.mobile_menu a[href*="kourubotti"],
	body.kouruset nav.mobile_menu li a[href*="kourubotti"] {
		background: transparent !important;
		color: inherit !important;
		font: inherit !important;
		letter-spacing: inherit !important;
		text-transform: inherit !important;
	}
	body.kouruset nav.mobile_menu a[href*="kourubotti"]:hover,
	body.kouruset nav.mobile_menu li.current-menu-item > a[href*="kourubotti"] {
		background: transparent !important;
		color: var(--kouruset-red) !important;
	}
}

/* normal Safari/Chrome browsing does not reliably paint browser chrome
 * from a meta tag alone. Paint the actual safe-area/topbar red on mobile and
 * keep the sticky header flush with the page edge. */
@media (max-width: 1000px) {
	html { background: var(--kouruset-red) !important; }
	body.kouruset { background: #fff !important; }
	body.kouruset .header_top,
	body.kouruset .header_top .container,
	body.kouruset .header_top .container_inner {
		background: var(--kouruset-red) !important;
		color: #fff !important;
	}
	body.kouruset .header_top a,
	body.kouruset .header_top span,
	body.kouruset .header_top p,
	body.kouruset .header_top i { color: #fff !important; }
	body.kouruset header.page_header,
	body.kouruset header.page_header.sticky,
	body.kouruset .header_top_bottom_holder {
		margin-top: 0 !important;
		top: 0 !important;
	}

	/* Kourubotti remains semantically current, but must look like its siblings. */
	body.kouruset nav.mobile_menu a[href*="kourubotti"],
	body.kouruset nav.mobile_menu li a[href*="kourubotti"],
	body.kouruset nav.mobile_menu li.current-menu-item > a[href*="kourubotti"],
	body.kouruset nav.mobile_menu li.current_page_item > a[href*="kourubotti"],
	body.kouruset nav.mobile_menu li.current-menu-ancestor > a[href*="kourubotti"] {
		background: transparent !important;
		color: inherit !important;
		font: inherit !important;
		letter-spacing: inherit !important;
		text-transform: inherit !important;
	}
}

/* Bridge may color the icon glyph itself after the anchor hover. Keep the
 * glyph white and achieve the approved light-grey hover with opacity. */
body.kouruset .header_top span.q_social_icon_holder.normal_social:hover,
body.kouruset .header_top span.q_social_icon_holder.normal_social:hover > a,
body.kouruset .header_top span.q_social_icon_holder.normal_social:hover i.simple_social,
body.kouruset .header_top .q_social_icon_holder a:hover i.simple_social {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	background: transparent !important;
	opacity: .74 !important;
	text-shadow: none !important;
}

/* one deterministic mobile header owner.
 * Keep the iOS safe-area + utility row red, place the logo and the single
 * Bridge mobile-menu control on opposite sides of a white main row, and let
 * the opened menu scroll inside its own padded rail. */
@media (max-width: 1000px) {
	:root {
		--kouruset-mobile-utility-h: 38px;
		--kouruset-mobile-main-h: 76px;
		--kouruset-mobile-header-h: calc(var(--kouruset-mobile-utility-h) + var(--kouruset-mobile-main-h) + env(safe-area-inset-top, 0px));
	}
	html {
		margin-top: 0 !important;
		background: var(--kouruset-red) !important;
	}
	body.kouruset {
		background: #fff !important;
	}
	body.kouruset.admin-bar #wpadminbar {
		display: none !important;
	}
	body.kouruset::before {
		content: "";
		position: fixed;
		z-index: 10030;
		top: 0;
		left: 0;
		right: 0;
		height: env(safe-area-inset-top, 0px);
		background: var(--kouruset-red);
		pointer-events: none;
	}

	body.kouruset header.page_header,
	body.kouruset header.page_header.stick,
	body.kouruset header.page_header.sticky,
	body.kouruset header.page_header.sticky_animate {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		width: 100% !important;
		height: var(--kouruset-mobile-header-h) !important;
		min-height: var(--kouruset-mobile-header-h) !important;
		margin: 0 !important;
		transform: none !important;
		-webkit-transform: none !important;
		transition: none !important;
		-webkit-transition: none !important;
		overflow: visible !important;
		background: #fff !important;
		z-index: 10020 !important;
	}
	body.kouruset .wrapper_inner > .content {
		margin-top: var(--kouruset-mobile-header-h) !important;
	}
	body.kouruset header.page_header .header_top_bottom_holder,
	body.kouruset header.page_header.sticky .header_top_bottom_holder,
	body.kouruset header.page_header.sticky_animate .header_top_bottom_holder {
		position: relative !important;
		top: 0 !important;
		height: var(--kouruset-mobile-header-h) !important;
		min-height: var(--kouruset-mobile-header-h) !important;
		transform: none !important;
		-webkit-transform: none !important;
		overflow: visible !important;
		background: #fff !important;
	}

	/* Red utility row: only the phone and cart/account contracts remain. */
	body.kouruset .header_top,
	body.kouruset header.page_header.sticky .header_top,
	body.kouruset header.page_header.sticky_animate .header_top {
		display: block !important;
		height: calc(var(--kouruset-mobile-utility-h) + env(safe-area-inset-top, 0px)) !important;
		min-height: calc(var(--kouruset-mobile-utility-h) + env(safe-area-inset-top, 0px)) !important;
		padding-top: env(safe-area-inset-top, 0px) !important;
		background: var(--kouruset-red) !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}
	body.kouruset .header_top > .container,
	body.kouruset .header_top > .container > .container_inner {
		height: var(--kouruset-mobile-utility-h) !important;
		min-height: var(--kouruset-mobile-utility-h) !important;
	}
	body.kouruset .header_top > .container > .container_inner {
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 12px !important;
		width: calc(100% - 32px) !important;
		max-width: none !important;
		margin: 0 auto !important;
	}
	body.kouruset .header_top .left,
	body.kouruset .header_top .right {
		float: none !important;
		width: auto !important;
		height: auto !important;
		min-width: 0 !important;
	}
	body.kouruset .header_top .left { flex: 1 1 auto !important; }
	body.kouruset .header_top .right { flex: 0 1 auto !important; }
	body.kouruset .header_top .left .inner,
	body.kouruset .header_top .right .inner {
		display: flex !important;
		align-items: center !important;
		gap: 5px !important;
		height: var(--kouruset-mobile-utility-h) !important;
		min-height: var(--kouruset-mobile-utility-h) !important;
		font-size: 11px !important;
		line-height: 1.2 !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
	body.kouruset .header_top .q_social_icon_holder,
	body.kouruset .header_top .social_icon,
	body.kouruset .header_top .simple_social {
		display: none !important;
	}

	/* keep utility text as a stable descendant of the fixed red row.
	 * Multi-device evidence sees the nodes on initial paint, while manual
	 * iPhone use reports intermittent missing text after header state changes.
	 * Reset Bridge sticky-state opacity/transform/vertical offsets without JS. */
	body.kouruset .header_top > .container > .container_inner,
	body.kouruset .header_top .left,
	body.kouruset .header_top .right,
	body.kouruset .header_top .left .inner,
	body.kouruset .header_top .right .inner,
	body.kouruset .header_top .header-widget,
	body.kouruset .header_top .textwidget {
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		-webkit-transform: none !important;
	}
	body.kouruset .header_top .left,
	body.kouruset .header_top .right {
		display: flex !important;
		align-items: center !important;
		align-self: stretch !important;
		height: var(--kouruset-mobile-utility-h) !important;
		min-height: var(--kouruset-mobile-utility-h) !important;
		line-height: normal !important;
	}
	body.kouruset .header_top .left .inner,
	body.kouruset .header_top .right .inner {
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}

	/* White main row: logo on the left, exactly one hamburger on the right. */
	body.kouruset .header_bottom,
	body.kouruset header.page_header.sticky .header_bottom,
	body.kouruset header.page_header.sticky_animate .header_bottom {
		position: relative !important;
		top: 0 !important;
		height: var(--kouruset-mobile-main-h) !important;
		min-height: var(--kouruset-mobile-main-h) !important;
		padding: 0 !important;
		background: #fff !important;
		overflow: visible !important;
	}
	body.kouruset .header_bottom > .container,
	body.kouruset .header_bottom > .container > .container_inner,
	body.kouruset .header_bottom .header_inner_left {
		position: relative !important;
		height: var(--kouruset-mobile-main-h) !important;
		min-height: var(--kouruset-mobile-main-h) !important;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	body.kouruset .side_menu_button_wrapper,
	body.kouruset .header_bottom .side_menu_button {
		display: none !important;
	}
	body.kouruset .mobile_menu_button {
		position: absolute !important;
		right: 18px !important;
		left: auto !important;
		top: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 44px !important;
		height: var(--kouruset-mobile-main-h) !important;
		margin: 0 !important;
		z-index: 6 !important;
	}
	body.kouruset .mobile_menu_button > span {
		display: grid !important;
		place-items: center !important;
		width: 36px !important;
		height: 44px !important;
		color: var(--kouruset-slate) !important;
	}
	body.kouruset header.page_header .logo_wrapper {
		position: absolute !important;
		left: 20px !important;
		right: auto !important;
		top: 0 !important;
		display: flex !important;
		align-items: center !important;
		width: 180px !important;
		min-width: 0 !important;
		height: var(--kouruset-mobile-main-h) !important;
		transform: none !important;
		-webkit-transform: none !important;
		z-index: 4 !important;
	}
	body.kouruset header.page_header .q_logo,
	body.kouruset header.page_header .q_logo a {
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start !important;
		width: 180px !important;
		max-width: 180px !important;
		height: var(--kouruset-mobile-main-h) !important;
	}
	body.kouruset header.page_header .q_logo a > img.normal {
		position: static !important;
		display: block !important;
		transform: none !important;
		-webkit-transform: none !important;
		width: auto !important;
		height: auto !important;
		max-width: 166px !important;
		max-height: 44px !important;
		margin: 0 !important;
	}

	/* The menu is a padded, independently scrolling panel below the header. */
	body.kouruset nav.mobile_menu {
		position: absolute !important;
		left: 12px !important;
		right: 12px !important;
		top: 100% !important;
		width: auto !important;
		max-height: calc(100dvh - var(--kouruset-mobile-header-h) - 8px) !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-y: contain;
		background: #fff !important;
		box-shadow: 0 10px 24px rgba(0,0,0,.16);
		z-index: 10025 !important;
	}
	body.kouruset nav.mobile_menu > ul {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 8px 14px max(20px, env(safe-area-inset-bottom, 0px)) !important;
		box-sizing: border-box !important;
	}
	body.kouruset nav.mobile_menu ul li {
		max-width: 100% !important;
		margin-left: 0 !important;
		box-sizing: border-box !important;
	}
	body.kouruset nav.mobile_menu ul li > a {
		display: flex !important;
		align-items: center !important;
		min-height: 48px !important;
		max-width: 100% !important;
		padding: 12px 48px 12px 14px !important;
		box-sizing: border-box !important;
		font-size: 13px !important;
		font-weight: 400 !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		color: var(--kouruset-slate) !important;
		background: transparent !important;
	}
	body.kouruset nav.mobile_menu ul li ul li > a {
		padding-left: 34px !important;
	}
	body.kouruset nav.mobile_menu ul li ul li ul li > a {
		padding-left: 52px !important;
	}
	body.kouruset nav.mobile_menu ul > li.has_sub > span.mobile_arrow {
		top: 0 !important;
		right: 8px !important;
		width: 40px !important;
		height: 48px !important;
		line-height: 48px !important;
		padding: 0 !important;
		text-align: center !important;
	}
	body.kouruset nav.mobile_menu ul li.active > a,
	body.kouruset nav.mobile_menu ul li.current-menu-item > a,
	body.kouruset nav.mobile_menu ul li.current_page_item > a {
		color: var(--kouruset-red) !important;
		background: transparent !important;
		font-weight: 400 !important;
	}

	/* Asennuspalvelu is a structural parent; do not let Bridge/current classes
	 * make it larger, heavier or differently colored than its sibling rows. */
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu > a > span,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.active > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current-menu-item > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current-menu-ancestor > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current_page_item > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current_page_ancestor > a {
		font-size: 13px !important;
		font-weight: 400 !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		color: var(--kouruset-slate) !important;
		background: transparent !important;
		box-shadow: none !important;
		text-decoration: none !important;
	}
	body.kouruset nav.mobile_menu li.kouruset-menu-kourubotti > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-kourubotti > a > span {
		font-size: 13px !important;
		font-weight: 400 !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
	}
}

/* Reset Bridge's remaining mobile logo positioning at the actual anchor/image
 * owner and keep both utility halves within a bounded 50/50 header contract. */
@media (max-width: 1000px) {
	body.kouruset header.page_header .logo_wrapper,
	body.kouruset header.page_header .q_logo,
	body.kouruset header.page_header .q_logo a,
	body.kouruset header.page_header .q_logo a > img,
	body.kouruset header.page_header .q_logo a > img.normal {
		left: auto !important;
		right: auto !important;
		top: auto !important;
		bottom: auto !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		transform: none !important;
		-webkit-transform: none !important;
	}
	body.kouruset header.page_header .logo_wrapper {
		left: 20px !important;
		top: 0 !important;
		overflow: visible !important;
	}
	body.kouruset header.page_header .q_logo {
		position: static !important;
		float: none !important;
		overflow: visible !important;
	}
	body.kouruset header.page_header .q_logo a {
		position: relative !important;
		float: none !important;
		inset: auto !important;
	}
	body.kouruset header.page_header .q_logo a > img,
	body.kouruset header.page_header .q_logo a > img.normal {
		position: relative !important;
		left: 0 !important;
		right: auto !important;
		top: auto !important;
		inset: auto !important;
	}

	body.kouruset .header_top > .container > .container_inner {
		gap: 8px !important;
	}
	body.kouruset .header_top .left,
	body.kouruset .header_top .right {
		flex: 0 1 50% !important;
		width: 50% !important;
		max-width: 50% !important;
		min-width: 0 !important;
	}
	body.kouruset .header_top .left .inner,
	body.kouruset .header_top .right .inner {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}
	body.kouruset .header_top .right .inner {
		justify-content: flex-end !important;
		text-align: right !important;
	}
	body.kouruset .header_top .header-widget,
	body.kouruset .header_top .textwidget,
	body.kouruset .header_top .header-widget p,
	body.kouruset .header_top .textwidget p {
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		font-size: 11px !important;
		line-height: 1.2 !important;
		white-space: nowrap !important;
		box-sizing: border-box !important;
	}

	/* One typographic contract for every top-level mobile row. A nested span in
	 * the Asennuspalvelu item must not inherit a different Bridge font/style. */
	body.kouruset nav.mobile_menu {
		left: 16px !important;
		right: 16px !important;
	}
	body.kouruset nav.mobile_menu > ul {
		padding: 12px 16px max(24px, env(safe-area-inset-bottom, 0px)) !important;
	}
	body.kouruset nav.mobile_menu > ul > li > a,
	body.kouruset nav.mobile_menu > ul > li > a > span {
		font-family: inherit !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
	}
	body.kouruset nav.mobile_menu ul li > a {
		padding-right: 52px !important;
		padding-left: 16px !important;
	}
	body.kouruset nav.mobile_menu ul li ul li > a {
		padding-left: 38px !important;
	}
	body.kouruset nav.mobile_menu ul li ul li ul li > a {
		padding-left: 58px !important;
	}
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu > a > span,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.active > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current-menu-item > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current-menu-ancestor > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current_page_item > a,
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu.current_page_ancestor > a {
		font-family: inherit !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		line-height: 1.35 !important;
		color: var(--kouruset-slate) !important;
		background: transparent !important;
	}
	body.kouruset nav.mobile_menu li.kouruset-menu-asennuspalvelu > a > span,
	body.kouruset nav.mobile_menu li.kouruset-menu-kourubotti > a > span {
		font: inherit !important;
		color: inherit !important;
		letter-spacing: inherit !important;
		text-transform: inherit !important;
	}
}

@media (max-width: 430px) {
	body.kouruset .header_top .header-widget,
	body.kouruset .header_top .textwidget,
	body.kouruset .header_top .header-widget p,
	body.kouruset .header_top .textwidget p {
		font-size: 10.5px !important;
	}
}

/* Bridge's own stylesheet renders the non-clickable mobile parent label
 * as `nav.mobile_menu ul li h3` (not an anchor or direct span). Keep the * iOS seam guard, but normalize the actual H3 with the same box and typography
 * as top-level links. */
@media (max-width: 1000px) {
	body.kouruset > .cdp-copy-alert-success {
		display: none !important;
	}
	body.kouruset::before {
		height: calc(env(safe-area-inset-top, 0px) + 6px) !important;
	}
	body.kouruset::after {
		content: "";
		position: fixed;
		z-index: 10031;
		top: calc(env(safe-area-inset-top, 0px) - 1px);
		left: 0;
		right: 0;
		height: 8px;
		background: var(--kouruset-red);
		pointer-events: none;
	}

	body.kouruset nav.mobile_menu > ul > li > a,
	body.kouruset nav.mobile_menu > ul > li > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu > h3 {
		display: flex !important;
		align-items: center !important;
		min-height: 48px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 12px 52px 12px 16px !important;
		box-sizing: border-box !important;
		font-family: inherit !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		line-height: 1.35 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		color: var(--kouruset-slate) !important;
		background: transparent !important;
		box-shadow: none !important;
		text-decoration: none !important;
	}
	body.kouruset nav.mobile_menu > ul > li > h3 > span,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu > h3 > span {
		font: inherit !important;
		color: inherit !important;
		letter-spacing: inherit !important;
		text-transform: inherit !important;
	}
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.active > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.current > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.current-menu-item > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.current-menu-ancestor > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.current_page_item > h3,
	body.kouruset nav.mobile_menu > ul > li.kouruset-menu-asennuspalvelu.current_page_ancestor > h3 {
		font-weight: 500 !important;
		color: var(--kouruset-slate) !important;
		background: transparent !important;
	}
}


/* Mobile Safari safe-area containment. Keep a fixed red paint layer behind
 * the safe-area/utility seam so page content cannot flash through while the
 * browser toolbar expands or collapses. */
@media (max-width: 1000px) {
	html {
		background-color: var(--kouruset-red) !important;
	}
	body.kouruset::before {
		top: -96px !important;
		height: calc(96px + env(safe-area-inset-top, 0px) + var(--kouruset-mobile-utility-h) + 12px) !important;
		background: var(--kouruset-red) !important;
		z-index: 10019 !important;
	}
	body.kouruset::after {
		display: none !important;
		content: none !important;
	}
	body.kouruset header.page_header .header_top,
	body.kouruset header.page_header .header_top_bottom_holder {
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
	}
}
