@charset "UTF-8";
/* CSS Document */

/* Prevent Chrome from scaling text independently of the page */
html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
html, body {
	margin: 0;
}

div#ukumbi_body {
	max-width: 1100px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	padding: 0.75rem;
}

div#ukumbi_all_contents {
	position: relative;
	max-width: 1100px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/* Responsive panel image */
.ukumbi-panel-wrap {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.ukumbi-panel {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Small viewports: keep banner tall enough for hamburger, crop image from the right below min width */
@media (max-width: 1100px) {
	.ukumbi-panel-wrap {
		min-height: 56px;
	}
}
@media (max-width: 660px) {
	.ukumbi-panel {
		min-width: 660px;
		max-width: none;
		width: 660px;
	}
}

/* Header: nav (hamburger is in panel-wrap on small screens) */
.ukumbi-header {
	position: relative;
	width: 100%;
}
.ukumbi-menu-toggle {
	display: none;
	margin: 0;
	padding: 12px 16px;
	border: none;
	background: #fff;
	color: #3b4e2d;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	align-items: center;
}
.ukumbi-menu-toggle-bar {
	display: block;
	width: 22px;
	height: 3px;
	background: #3b4e2d;
	transition: transform 0.2s, opacity 0.2s;
}
.ukumbi-menu-toggle[aria-expanded="true"] .ukumbi-menu-toggle-bar:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
.ukumbi-menu-toggle[aria-expanded="true"] .ukumbi-menu-toggle-bar:nth-child(2) {
	opacity: 0;
}
.ukumbi-menu-toggle[aria-expanded="true"] .ukumbi-menu-toggle-bar:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

/* Menu: base styles (all viewports) */
ul.mod-menu {
	list-style-type: none;
	padding-left: 0;
}

ul.mod-menu li a {
	color: #3b4e2d;
	text-transform: uppercase;
	font-weight: bold;
	font-family: Arial, sans-serif;
	font-size: large;
}

ul.mod-menu li.active a {
	color: #41ad49;
}

/* Desktop-only: horizontal layout and auto-resize space (applies to large screens only) */
@media (min-width: 1101px) {
	div#ukumbi_menu {
		width: 100%;
		display: table;
		padding-bottom: 60px;
		padding-top: 5px;
	}

	ul.mod-menu {
		position: static;
	}

	ul.mod-menu li {
		float: left;
		padding-right: 20px;
		text-align: left;
	}

	ul.mod-menu li:last-of-type {
		padding-right: 0;
	}

	ul.mod-menu li ul {
		font-size: large;
		position: absolute;
		left: 0px;
		padding: 0px;
		list-style-type: none;
		color: #3b4e2d;
		margin-top: 10px;
		display: none;
	}
	/* Show sub-menus only for the current page's branch: active item's children, or any submenu that contains .active */
	ul.mod-menu li.active > ul,
	ul.mod-menu li ul:has(li.active) {
		display: block;
	}

	ul.mod-menu li ul li {
		float: left;
		padding-right: 20px;
	}

	ul.mod-menu li ul li a {
		text-align: left;
		font-size: medium;
	}

	ul.mod-menu li.active ul li a {
		color: #3b4e2d;
	}

	ul.mod-menu li.active ul li.active a {
		color: #41ad49;
	}

	/* Gallery: single row, wrap after 5 images, spread to full width */
	table.ukumbi_gallery,
	table.ukumbi_gallery tbody {
		display: block;
		width: 100%;
	}
	table.ukumbi_gallery tbody tr {
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		gap: 8px;
	}
	table.ukumbi_gallery tbody tr td {
		flex: 0 0 calc((100% - 4 * 8px) / 5);
		box-sizing: border-box;
		padding: 5px;
		text-align: center;
	}
	table.ukumbi_gallery tbody tr td img {
		width: 100%;
		height: auto;
		display: block;
	}
}


/* määrittää linkien ulkonäön yleisesti */	
a {
	color: #41ad49;
	text-decoration: none;
}


img {
	border: 0px;
}

/* sisällön ulkonäkö yleisesti */
div#ukumbi_content {
	font-size: 14px;
	font-family: TimesNewRoman, serif;
	text-align: justify;
}

/* artikkelien otsikot */
div#ukumbi_content td.contentheading {
	font-family: Arial, sans-serif;
	color: #3b4e2d;
	font-weight: bold;
	font-size: 16px;
	padding-bottom: 15px;
	text-transform: uppercase;
}

/* sisältö, kappale */
div#ukumbi_content p {
	line-height: 150%;
	margin-bottom: 10px;
	margin-top: 0;
}

div#ukumbi_content p.ukumbi_no_transl {
	font-style: italic;
	color: #3b4e2d;
}

/* sisältö, otsikot */
div#ukumbi_content h1,
div#ukumbi_content h2 {
	font-family: Arial, sans-serif;
	color: #3b4e2d;
	font-size: 15px;
	margin: 0px;
	padding-bottom: 10px;
	text-transform: uppercase;
}
div#ukumbi_content h3 {
	font-family: Arial, sans-serif;
	color: #3b4e2d;
	font-size: small;
	margin: 0px;
	padding-bottom: 10px;
	text-transform: uppercase;
}
div#ukumbi_content h4 {
	font-family: Arial, sans-serif;
	color: #3b4e2d;
	font-size:small;
	margin: 0px;
}

/* sisältö, taulukot */
div.item-page table tr td {
	vertical-align: top;
	margin: 0;
}

table.price-list tr td {
    height: 22px;
}

/* Main page layout table: images column top; narrow = stack, center, images scale */
div#ukumbi_content table.ukumbi_frontpage_table td:last-child {
	vertical-align: top;
}
/* Ukumbi Slider (Swiper): sized by largest image (JS). Wrapper gets width/height from script; never exceed column. Hidden until sized to avoid flash. */
div#ukumbi_content .ukumbi-swiper-wrap.ukumbi-swiper-until-sized {
	opacity: 0;
}
div#ukumbi_content .ukumbi-swiper-wrap {
	display: block;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	transition: opacity 0.15s ease-out;
}
div#ukumbi_content .ukumbi-swiper {
	width: 100%;
	height: 100%;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	--swiper-navigation-color: #41ad49;
	--swiper-navigation-size: 28px;
}
/* Bar below image: dots centered, prev left / next right (same width as image) */
div#ukumbi_content .ukumbi-swiper-bar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(44px * var(--ukumbi-scale, 1));
	width: 100%;
	box-sizing: border-box;
}
div#ukumbi_content .ukumbi-swiper .swiper-slide {
	position: relative;
}
div#ukumbi_content .ukumbi-swiper .ukumbi-slide-inner {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
}
div#ukumbi_content .ukumbi-swiper .swiper-slide img {
	max-width: 100%;
	width: auto;
	height: auto;
	display: block;
	vertical-align: top;
}
/* Caption, arrows, dots scale with slider (--ukumbi-scale set by JS from displayed vs natural width) */
/* Caption overlay: grey bar at bottom of image (inner wraps image so caption stays on image) */
div#ukumbi_content .ukumbi-swiper .ukumbi-slide-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, 0.6);
	color: #fff;
	padding: calc(8px * var(--ukumbi-scale, 1)) calc(12px * var(--ukumbi-scale, 1));
	font-family: Arial, sans-serif;
	font-size: calc(14px * var(--ukumbi-scale, 1));
	text-align: right;
}
div#ukumbi_content .ukumbi-swiper .ukumbi-slide-title {
	font-weight: bold;
}
div#ukumbi_content .ukumbi-swiper .ukumbi-slide-subtitle {
	opacity: 0.9;
}
/* Prev left, next right of bar (image width); vertically centered in bar */
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-prev,
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	color: #41ad49;
	width: calc(20px * var(--ukumbi-scale, 1));
	height: calc(20px * var(--ukumbi-scale, 1));
}
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-prev {
	left: 0;
	right: auto;
}
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-next {
	right: 0;
	left: auto;
}
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-prev::after,
div#ukumbi_content .ukumbi-swiper-bar .swiper-button-next::after {
	font-size: calc(14px * var(--ukumbi-scale, 1));
	font-weight: bold;
}
/* Pagination dots in bar below image; current dot in Ukumbi green */
div#ukumbi_content .ukumbi-swiper-bar .swiper-pagination {
	position: relative;
	top: auto;
	bottom: auto;
	padding: calc(8px * var(--ukumbi-scale, 1)) 0;
}
div#ukumbi_content .ukumbi-swiper-bar .swiper-pagination-bullet {
	width: calc(8px * var(--ukumbi-scale, 1));
	height: calc(8px * var(--ukumbi-scale, 1));
	background: rgba(0, 0, 0, 0.35);
}
div#ukumbi_content .ukumbi-swiper-bar .swiper-pagination-bullet-active {
	background: #41ad49;
	opacity: 1;
}
body.ukumbi-narrow div#ukumbi_content .ukumbi-swiper {
	width: 100%;
}
body.ukumbi-narrow div#ukumbi_content .ukumbi-swiper .swiper-slide img {
	max-width: 100%;
	width: auto;
	margin-left: auto;
	margin-right: auto;
}

/* sisältö, neliökuvataulukot */
table.ukumbi_gallery {
	width: 100%;
	margin: 0;
}

table.ukumbi_gallery td {
    padding: 5px;
}

table.ukumbi_gallery img {
	border: 3px solid #ffffff;
    padding: 0px;
}

table.ukumbi_gallery img:hover {
	border: 3px solid #41ad49; 
}

/* Text cell next to intro images: add class="ukumbi-intro-text" to the <td>; padding on desktop, full width in narrow */
.ukumbi-intro-text {
	vertical-align: top;
	padding-right: 20px;
}
body.ukumbi-narrow .ukumbi-intro-text {
	padding-right: 0;
}

/* Intro image cells (1–3 images before gallery): same hover as gallery; add class="ukumbi_intro_image" to each image <td> in Joomla */
.ukumbi_intro_image img {
	border: 3px solid #ffffff;
	padding: 0;
}
.ukumbi_intro_image img:hover {
	border: 3px solid #41ad49;
}

/* uutisten päivämäärä */
dl.article-info {
	font-size: smaller;
	color: #3b4e2d;
}

dt.article-info-term {
	display: none;
}

dl.article-info dd {
	margin-left: 0px;
}


/* poistetaan rumat tesktit ja kuva liittymislomakkeesta */
div.contact h3 {
	display: none;
}

div.contact-address span.jicons-icons {
	display: none;
}

div.contact-address span {
	font-style:normal;
}

div.contact-form fieldset {
	border: none;
}

div.contact-form fieldset legend {
	display: none;
}

/* slideshow */
div.besps_ctrl_left a, .besps_ctrl_right a {
	text-decoration:none;
}
div.besps_holder {
	margin-right: 0;
}
div.bs_inside span {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 10px;
	padding-left: 5px;
}


/* uutisboxi */
div#latestnews {
	width: 275px;
	height: 275px;
	background-color: #41ad49;
	margin-left: 4px;
	text-align: left;
}

div#latestnews ul {
	list-style-type: none;
	padding: 20px;
	margin: 0px;
}

div#latestnews li {
	padding-bottom: 8px;
}

div#latestnews a {
	color: #FFFFFF;
	text-decoration: none;
	font-family: Helvetica, Arial, sans-serif;
	font-size: small;
	font-weight: bold;
}

/* footer ulkonäkö */
div#ukumbi_footer {
	font-family: Arial, sans-serif;
	color: #3b4e2d;
	text-align: center;
	padding-top: 23px;
}

div#ukumbi_footer table.ukumbi_footer_bar {
	margin: 0 auto;
	border: 0;
	border-collapse: separate;
	border-spacing: 2.5em 0.5em;
	width: auto;
	max-width: 100%;
}

div#ukumbi_footer table.ukumbi_footer_bar td {
	width: 50%;
	vertical-align: middle;
	white-space: nowrap;
}

div#ukumbi_footer .ukumbi_footer_social {
	color: #41ad49;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	text-decoration: none;
}

div#ukumbi_footer .ukumbi_footer_email {
	color: #41ad49;
	text-decoration: none;
}

@media (max-width: 520px) {
	div#ukumbi_footer table.ukumbi_footer_bar,
	div#ukumbi_footer table.ukumbi_footer_bar tbody,
	div#ukumbi_footer table.ukumbi_footer_bar tr {
		display: block;
		width: 100%;
	}
	div#ukumbi_footer table.ukumbi_footer_bar td {
		display: block;
		width: 100%;
		white-space: normal;
		text-align: center;
		padding: 0.25em 0;
	}
}

/* sisäänkirjautuneelle käyttäjälle */

/* piilottaa tooltips */

div[role=tooltip] {
	display: none;
}

/* piilottaa menun "edit"-linkki */

ul.mod-menu a.jmodedit {
	display: none;
}

/* tekee edit-linkista napin näköinen */

div.icons a, a.btn-link {
	background-color: #199319;
	color: white;
	display: inline-block;
	padding: 5px 15px;
	margin: 5px 0px;
	font-family: Helvetica, Arial, sans-serif;
	font-size: small;
	font-weight: bold;
	text-decoration: none;
	text-align: center;
}

/* class on piste, id on risuaita */

/* ========== Responsive: small screens ========== */
@media (max-width: 1100px) {
	html, body {
		overflow-x: hidden;
	}
	body {
		width: 100%;
		min-width: 100%;
	}
	div#ukumbi_body,
	div#ukumbi_all_contents {
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
	div#ukumbi_all_contents {
		padding-left: 0;
		padding-right: 0;
		padding-top: 0;
	}
	div#ukumbi_content img {
		max-width: 100%;
		height: auto;
		display: block;
	}
	.ukumbi-menu-toggle {
		display: flex;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		right: 8px;
		z-index: 1002;
		box-shadow: 0 1px 4px rgba(0,0,0,0.2);
	}
	.ukumbi-nav {
		display: none;
		position: fixed;
		inset: 0;
		z-index: 1001;
		background: rgba(30, 40, 25, 0.96);
		padding: 60px 16px 24px;
		overflow-y: auto;
	}
	body.ukumbi-menu-open {
		overflow: hidden;
	}
	body.ukumbi-menu-open .ukumbi-nav {
		display: block;
	}
	.ukumbi-nav ul.mod-menu {
		display: block;
		max-width: 320px;
		margin: 0 auto;
		background: #f5f5f0;
		padding: 16px;
		box-shadow: 0 4px 24px rgba(59, 78, 45, 0.15);
		border: 1px solid rgba(59, 78, 45, 0.2);
		list-style: none;
	}
	.ukumbi-nav ul.mod-menu li {
		float: none;
		padding: 0;
		border-bottom: 1px solid rgba(59, 78, 45, 0.18);
	}
	.ukumbi-nav ul.mod-menu li:last-of-type {
		border-bottom: none;
	}
	.ukumbi-nav ul.mod-menu li a {
		display: block;
		padding: 12px 0;
		font-family: Arial, sans-serif;
		font-weight: bold;
		text-transform: uppercase;
		color: #3b4e2d;
	}
	/* Only the current page path in Ukumbi green; siblings in theme dark green */
	.ukumbi-nav ul.mod-menu li.active > a,
	.ukumbi-nav ul.mod-menu li:has(li.active) > a {
		color: #41ad49;
	}
	.ukumbi-nav ul.mod-menu li ul {
		display: none;
		position: static;
		margin-top: 0;
		margin-left: 16px;
		padding-bottom: 8px;
		list-style: none;
		padding-left: 0;
	}
	.ukumbi-nav ul.mod-menu li.ukumbi-sub-open ul {
		display: block;
	}
	.ukumbi-nav ul.mod-menu li.has-sub > a {
		padding-right: 32px;
		position: relative;
	}
	.ukumbi-nav ul.mod-menu li.has-sub .ukumbi-sub-toggle {
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		width: 28px;
		cursor: pointer;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.ukumbi-nav ul.mod-menu li.has-sub .ukumbi-sub-toggle::before {
		content: "";
		display: block;
		border: solid #3b4e2d;
		border-width: 0 2px 2px 0;
		width: 8px;
		height: 8px;
		transform: rotate(45deg);
		transition: transform 0.2s;
		margin-top: -4px;
	}
	.ukumbi-nav ul.mod-menu li.has-sub.ukumbi-sub-open .ukumbi-sub-toggle::before {
		transform: rotate(-135deg);
		margin-top: -6px;
	}
	.ukumbi-nav ul.mod-menu li ul li {
		float: none;
		padding: 0;
		border: none;
	}
	.ukumbi-nav ul.mod-menu li ul li a {
		padding: 6px 0;
		font-size: medium;
		font-family: Arial, sans-serif;
		color: #3b4e2d;
	}

	/* Content tables (except gallery and tables that have intro image cells): stack each cell on its own line */
	div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)),
	div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)) tbody,
	div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)) tr {
		display: block;
		width: 100%;
	}
	div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)) td,
	div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)) th {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}
	table.price-list tr td {
		height: auto;
		min-height: 22px;
	}

	/* Gallery: wrap into rows (bounded width), then center the block of rows */
	table.ukumbi_gallery {
		width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	table.ukumbi_gallery tbody {
		display: block;
		width: 100%;
	}
	table.ukumbi_gallery tr {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
		width: 100%;
	}
	table.ukumbi_gallery td {
		flex: 0 0 auto;
		width: min-content;
		box-sizing: border-box;
		text-align: center;
		padding: 5px;
	}
	table.ukumbi_gallery td:only-child {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}
	table.ukumbi_gallery td img {
		display: block;
		height: auto;
		vertical-align: top;
	}
	/* Override content img scaling so thumbnails keep natural size until row wraps (selector must beat div#ukumbi_content img) */
	div#ukumbi_content table.ukumbi_gallery td img {
		max-width: none;
	}
	table.ukumbi_gallery td:only-child img {
		max-width: 100%;
		width: auto;
	}

	/* Intro image cells: 1–3 images side-by-side or stacked, block centered (same as gallery) */
	table:has(td.ukumbi_intro_image) {
		width: 100%;
		display: block;
	}
	table:has(td.ukumbi_intro_image) tbody {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		width: 100%;
	}
	table:has(td.ukumbi_intro_image) tr {
		display: contents;
	}
	table:has(td.ukumbi_intro_image) td[rowspan] {
		width: 100%;
		display: block;
		box-sizing: border-box;
	}
	table:has(td.ukumbi_intro_image) td.ukumbi_intro_image {
		flex: 0 0 auto;
		display: block;
		box-sizing: border-box;
		padding: 5px;
	}
	table:has(td.ukumbi_intro_image) td.ukumbi_intro_image img {
		display: block;
		height: auto;
		vertical-align: top;
	}
	div#ukumbi_content table:has(td.ukumbi_intro_image) td.ukumbi_intro_image img {
		max-width: none;
	}
}

/* Page title: breadcrumb path to current leaf, shown only in narrow mode */
.ukumbi-page-title {
	display: none;
	margin: 0;
	padding: 0.6rem 0 0.9rem;
	font-family: Arial, sans-serif;
	font-size: 1.5rem;
	font-weight: bold;
	text-transform: uppercase;
	color: #41ad49;
	line-height: 1.2;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 0.5rem;
}
body.ukumbi-narrow .ukumbi-page-title.ukumbi-breadcrumb-filled,
body.ukumbi-narrow .ukumbi-page-title:has(.ukumbi-breadcrumb-item) {
	display: flex;
	align-items: baseline;
	padding-top: 23px;
	padding-bottom: 33px;
}
.ukumbi-page-title .ukumbi-breadcrumb-item {
	color: inherit;
	line-height: 1;
	text-decoration: none;
}
/* Second and later breadcrumb items match desktop submenu size */
.ukumbi-page-title .ukumbi-breadcrumb-item:not(:first-child) {
	font-size: medium;
}
/* Dot sized and aligned to the second (medium) breadcrumb element */
.ukumbi-page-title .ukumbi-breadcrumb-sep {
	display: inline-block;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: #41ad49;
	flex-shrink: 0;
	margin: 0 0;
	align-self: baseline;
	vertical-align: baseline;
	transform: translateY(-50%);
}

/* Narrow layout via JS (body.ukumbi-narrow) so Chrome applies same layout as media query */
body.ukumbi-narrow {
	width: 100%;
	min-width: 100%;
	overflow-x: hidden;
}
body.ukumbi-narrow div#ukumbi_body,
body.ukumbi-narrow div#ukumbi_all_contents {
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
body.ukumbi-narrow div#ukumbi_all_contents {
	padding-left: 0;
	padding-right: 0;
	padding-top: 0;
}
body.ukumbi-narrow div#ukumbi_content img {
	max-width: 100%;
	height: auto;
	display: block;
}
body.ukumbi-narrow .ukumbi-menu-toggle {
	display: flex;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 8px;
	z-index: 1002;
	box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
body.ukumbi-narrow .ukumbi-nav {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1001;
	background: rgba(30, 40, 25, 0.96);
	padding: 60px 16px 24px;
	overflow-y: auto;
}
body.ukumbi-narrow.ukumbi-menu-open {
	overflow: hidden;
}
body.ukumbi-narrow.ukumbi-menu-open .ukumbi-nav {
	display: block;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu {
	display: block;
	max-width: 320px;
	margin: 0 auto;
	background: #f5f5f0;
	padding: 16px;
	box-shadow: 0 4px 24px rgba(59, 78, 45, 0.15);
	border: 1px solid rgba(59, 78, 45, 0.2);
	list-style: none;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li {
	float: none;
	padding: 0;
	border-bottom: 1px solid rgba(59, 78, 45, 0.18);
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li:last-of-type {
	border-bottom: none;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li a {
	display: block;
	padding: 12px 0;
	font-family: Arial, sans-serif;
	font-weight: bold;
	text-transform: uppercase;
	color: #3b4e2d;
}
/* Only the current page path in Ukumbi green; siblings in theme dark green */
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.active > a,
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li:has(li.active) > a {
	color: #41ad49;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li ul {
	display: none;
	position: static;
	margin-top: 0;
	margin-left: 16px;
	padding-bottom: 8px;
	list-style: none;
	padding-left: 0;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.ukumbi-sub-open ul {
	display: block;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub > a {
	padding-right: 32px;
	position: relative;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub .ukumbi-sub-toggle {
	position: absolute;
	right: 0;
	top: 0;
	bottom: 0;
	width: 28px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub .ukumbi-sub-toggle::before {
	content: "";
	display: block;
	border: solid #3b4e2d;
	border-width: 0 2px 2px 0;
	width: 8px;
	height: 8px;
	transform: rotate(45deg);
	transition: transform 0.2s, border-color 0.2s;
	margin-top: -4px;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub.ukumbi-sub-open .ukumbi-sub-toggle::before {
	transform: rotate(-135deg);
	margin-top: -6px;
}
/* Arrow in Ukumbi green when this item is on the active path */
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub.active .ukumbi-sub-toggle::before,
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li.has-sub:has(li.active) .ukumbi-sub-toggle::before {
	border-color: #41ad49;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li ul li {
	float: none;
	padding: 0;
	border: none;
}
body.ukumbi-narrow .ukumbi-nav ul.mod-menu li ul li a {
	padding: 6px 0;
	font-size: medium;
	font-family: Arial, sans-serif;
	color: #3b4e2d;
}
body.ukumbi-narrow div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)):not(.ukumbi_frontpage_table),
body.ukumbi-narrow div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)):not(.ukumbi_frontpage_table) tbody,
body.ukumbi-narrow div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)):not(.ukumbi_frontpage_table) tr {
	display: block;
	width: 100%;
}
body.ukumbi-narrow div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)):not(.ukumbi_frontpage_table) td,
body.ukumbi-narrow div#ukumbi_content table:not(.ukumbi_gallery):not(:has(td.ukumbi_intro_image)):not(.ukumbi_frontpage_table) th {
	display: block;
	width: 100%;
	box-sizing: border-box;
}
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table,
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table tbody,
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table tr {
	display: block;
	width: 100%;
}
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table td {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table td:first-child {
	text-align: left;
}
body.ukumbi-narrow div#ukumbi_content table.ukumbi_frontpage_table td img {
	max-width: 100%;
	height: auto;
	display: block;
	margin-left: auto;
	margin-right: auto;
}
body.ukumbi-narrow table.price-list tr td {
	height: auto;
	min-height: 22px;
}
body.ukumbi-narrow table.ukumbi_gallery {
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}
body.ukumbi-narrow table.ukumbi_gallery tbody {
	display: block;
	width: 100%;
}
body.ukumbi-narrow table.ukumbi_gallery tr {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	width: 100%;
}
body.ukumbi-narrow table.ukumbi_gallery td {
	flex: 0 0 auto;
	width: min-content;
	box-sizing: border-box;
	text-align: center;
	padding: 5px;
}
body.ukumbi-narrow table.ukumbi_gallery td:only-child {
	flex: 1 1 100%;
	width: 100%;
	max-width: 100%;
}
body.ukumbi-narrow table.ukumbi_gallery td img {
	display: block;
	height: auto;
	vertical-align: top;
}
/* Natural size until row wraps; override content img scaling */
body.ukumbi-narrow div#ukumbi_content table.ukumbi_gallery td img {
	max-width: none;
}
body.ukumbi-narrow table.ukumbi_gallery td:only-child img {
	max-width: 100%;
	width: auto;
}
/* When viewport is too narrow to contain natural-size thumbnails, allow them to shrink */
@media (max-width: 300px) {
	body.ukumbi-narrow table.ukumbi_gallery td {
		flex: 0 1 auto;
		min-width: 100px;
		max-width: 100%;
		width: auto;
	}
	body.ukumbi-narrow table.ukumbi_gallery td img {
		width: 100%;
		max-width: 100%;
	}
	body.ukumbi-narrow div#ukumbi_content table.ukumbi_gallery td img {
		max-width: 100%;
	}
}
/* Intro image cells: 1–3 images side-by-side or stacked, block centered */
body.ukumbi-narrow table:has(td.ukumbi_intro_image) {
	width: 100%;
	display: block;
}
body.ukumbi-narrow table:has(td.ukumbi_intro_image) tbody {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
}
body.ukumbi-narrow table:has(td.ukumbi_intro_image) tr {
	display: contents;
}
body.ukumbi-narrow table:has(td.ukumbi_intro_image) td[rowspan] {
	width: 100%;
	display: block;
	box-sizing: border-box;
}
body.ukumbi-narrow table:has(td.ukumbi_intro_image) td.ukumbi_intro_image {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	display: block;
	box-sizing: border-box;
	padding: 5px;
}
body.ukumbi-narrow table:has(td.ukumbi_intro_image) td.ukumbi_intro_image img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: top;
	max-width: 100%;
}