/**
 * Manuela Bross — site styles that theme.json cannot express.
 * Values are taken 1:1 from the former Bridge configuration (style_dynamic.css,
 * custom_css.css) and measured from the live site.
 */

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

:root {
	--mb-header-h: 157px;
	--mb-header-sticky-h: 60px;
	--mb-admin-bar: var(--wp-admin--admin-bar--height, 0px);
	--mb-ease: cubic-bezier(0.25, 0.1, 0.25, 1);
	--mb-icon-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 3h2v9.6l3.3-3.3 1.4 1.4L12 16.4l-5.7-5.7 1.4-1.4 3.3 3.3zM4 18h16v3H4z'/%3E%3C/svg%3E");
	--mb-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.6 4.6 11.2 6l5 5H3v2h13.2l-5 5 1.4 1.4L20 12z'/%3E%3C/svg%3E");
	--mb-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 5 7 7-7 7-1.4-1.4 5.6-5.6-5.6-5.6z'/%3E%3C/svg%3E");
	--mb-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 5h20v14H2zm2 2v.5l8 5 8-5V7zm16 2.9-8 5-8-5V17h16z'/%3E%3C/svg%3E");
	--mb-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v18H3zm4.6 3.5c-.8.4-1.3 1.3-1.1 2.5.6 3.6 3.9 7.2 7.6 8.5 1.3.5 2.4.1 3-.7l.5-.8-2.6-2-1.2 1.1c-1.6-.7-3-2.2-3.7-3.8l1.1-1.2-1.8-2.7z'/%3E%3C/svg%3E");
	--mb-icon-instagram: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3zm5 3.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm0 2a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM17.3 5.5a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4z'/%3E%3C/svg%3E");
	--mb-icon-heart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21 3.5 12.6A5.3 5.3 0 0 1 12 5.9a5.3 5.3 0 0 1 8.5 6.7z'/%3E%3C/svg%3E");
	--mb-icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1 5l7-3 8 3 7-3v17l-7 3-8-3-7 3zm8 -.3v14l6 2.3v-14z'/%3E%3C/svg%3E");
	--mb-icon-briefcase: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3h6a2 2 0 0 1 2 2v1h5v6H2V6h5V5a2 2 0 0 1 2-2zm0 2v1h6V5zM2 13h8v2h4v-2h8v8H2z'/%3E%3C/svg%3E");
	--mb-icon-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm-1.5 2.2A8 8 0 0 0 4.3 10H8c.2-2.2.9-4.2 2.5-5.8zm3 0C15.1 5.8 15.8 7.8 16 10h3.7a8 8 0 0 0-6.2-5.8zM14 10c-.2-2-.9-3.8-2-5.2-1.1 1.4-1.8 3.2-2 5.2zm-10 2a8 8 0 0 0 6.5 7.8C8.9 18.2 8.2 16.2 8 14H4.3zm6 2c.2 2 .9 3.8 2 5.2 1.1-1.4 1.8-3.2 2-5.2zm6 0c-.2 2.2-.9 4.2-2.5 5.8a8 8 0 0 0 6.2-5.8z'/%3E%3C/svg%3E");
	--mb-icon-home: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 1 12h3v9h6v-6h4v6h6v-9h3z'/%3E%3C/svg%3E");
}

html {
	scroll-behavior: smooth;
}

/* Bridge rows sit flush; spacing between sections comes from the sections themselves. */
.mb-main--front .wp-block-post-content > * {
	margin-block-start: 0;
}

/* Template parts sit flush (core adds the block gap between them). */
.wp-site-blocks > * {
	margin-block: 0;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

body {
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

a {
	transition: color 0.15s ease-out;
}

img {
	height: auto;
}

/* Default vertical rhythm inside content (Bridge used 0 top margin on rows). */
.mb-main > .wp-block-post-content > :first-child {
	margin-block-start: 0;
}

.wp-block-post-content > .alignfull + .alignfull {
	margin-block-start: 0;
}

/* Headings after running text get the space Bridge produced with empty paragraphs. */
.wp-block-post-content > p + .wp-block-heading {
	margin-block-start: 50px;
}

/* Bridge set paragraphs without spacing; consecutive paragraphs read as one text. */
.wp-block-post-content :where(p + p),
.wp-block-column :where(p + p) {
	margin-block-start: 0;
}

.mb-post__article .wp-block-post-content :where(p + p),
.is-style-sticky-info :where(p + p) {
	margin-block-start: 25px;
}

/* ---------- Icons (decorative, via CSS mask) ---------- */

.mb-icon::before,
.wp-block-button[class*="has-icon-"] .wp-block-button__link::after,
.wp-block-heading[class*="has-icon-"]::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--mb-icon) center / contain no-repeat;
	mask: var(--mb-icon) center / contain no-repeat;
	vertical-align: -0.12em;
}

.mb-icon::before { margin-right: 0.35em; }

.mb-icon-inline {
	display: inline-block;
	width: 1em;
	height: 1em;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--mb-icon) center / contain no-repeat;
	mask: var(--mb-icon) center / contain no-repeat;
	vertical-align: -0.15em;
}

.mb-icon--phone { --mb-icon: var(--mb-icon-phone); }
.mb-icon--mail { --mb-icon: var(--mb-icon-mail); }
.mb-icon--globe { --mb-icon: var(--mb-icon-globe); }

.wp-block-button[class*="has-icon-"] .wp-block-button__link::after {
	margin-left: 10px;
	width: 11px;
	height: 11px;
	vertical-align: -1px;
}

.has-icon-download { --mb-icon: var(--mb-icon-download); }
.has-icon-arrow { --mb-icon: var(--mb-icon-arrow); }
.has-icon-chevron { --mb-icon: var(--mb-icon-chevron); }
.has-icon-mail { --mb-icon: var(--mb-icon-mail); }
.has-icon-instagram { --mb-icon: var(--mb-icon-instagram); }
.has-icon-heart { --mb-icon: var(--mb-icon-heart); }
.has-icon-map { --mb-icon: var(--mb-icon-map); }
.has-icon-briefcase { --mb-icon: var(--mb-icon-briefcase); }

.wp-block-heading[class*="has-icon-"]::after {
	margin-left: 0.3em;
	width: 0.8em;
	height: 0.8em;
	vertical-align: 0;
	color: var(--mb-icon-color, currentColor);
}

/* ---------- Header ---------- */

.mb-header-wrap {
	position: absolute;
	inset: var(--mb-admin-bar) 0 auto;
	z-index: 110;
}

.mb-header {
	box-sizing: border-box;
	height: var(--mb-header-h);
	padding: 0 45px;
	align-items: center;
	background: transparent;
	transition: height 0.3s var(--mb-ease), background-color 0.3s;
}

.mb-header .wp-block-site-logo {
	line-height: 0;
}

.mb-header .wp-block-site-logo img {
	width: 81px;
	transition: width 0.3s var(--mb-ease);
}

.mb-header__actions {
	gap: 0;
}

/* Desktop header over the hero image: logo in the accent colour (the logo file
   is a one-colour transparent PNG, used as a mask). White states keep the dark logo. */
@media (min-width: 1001px) {
	.mb-header-wrap.is-overlay .mb-header:not(.is-stuck) .wp-block-site-logo a {
		display: block;
		background: var(--wp--preset--color--accent);
		-webkit-mask: url("../images/logo-dark.png") center / contain no-repeat;
		mask: url("../images/logo-dark.png") center / contain no-repeat;
	}

	.mb-header-wrap.is-overlay .mb-header:not(.is-stuck) .wp-block-site-logo img {
		opacity: 0;
	}
}

/* Compact sticky state after scrolling (Bridge "stick" header). */
.mb-header-sentinel {
	position: absolute;
	top: 340px;
	height: 1px;
	width: 1px;
	pointer-events: none;
}

.mb-header.is-stuck {
	position: fixed;
	inset: var(--mb-admin-bar) 0 auto;
	height: var(--mb-header-sticky-h);
	background: #fff;
	animation: mb-header-in 0.3s var(--mb-ease);
}

.mb-header.is-stuck .wp-block-site-logo img {
	width: 36px;
}

@keyframes mb-header-in {
	from { transform: translateY(-100%); }
}

@media (prefers-reduced-motion: reduce) {
	.mb-header, .mb-header.is-stuck { animation: none; transition: none; }
}

/* Main navigation */
.mb-nav-main .wp-block-navigation-item__content {
	padding: 0 17px;
	color: var(--wp--preset--color--muted);
	line-height: 26px;
}

.mb-nav-main .wp-block-navigation-item__content:hover,
.mb-nav-main .current-menu-item > .wp-block-navigation-item__content,
.mb-header.is-stuck .mb-nav-main .wp-block-navigation-item__content {
	color: var(--wp--preset--color--heading-alt);
}

.mb-nav-main .wp-block-navigation__container {
	gap: 0;
}

/* Search: the header icon opens a bar above the page (Bridge "slides from window top"). */
:root {
	--mb-searchbar-h: 50px;
	--mb-icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.3'%3E%3Ccircle cx='14.2' cy='9.8' r='8.2'/%3E%3Cpath d='M8.4 15.6 2.2 21.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.mb-search-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	margin: 0 0 0 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--accent);
	cursor: pointer;
}

/* Thin magnifier with the handle bottom-left, as in the former theme (ElegantIcons "icon_search"). */
.mb-search-toggle::before {
	content: "";
	width: 22px;
	height: 22px;
	/* Circle as tall as the burger icon (16px) and centred on it. */
	transform: translateY(2px);
	background: currentColor;
	-webkit-mask: var(--mb-icon-search) center / contain no-repeat;
	mask: var(--mb-icon-search) center / contain no-repeat;
}

.mb-header__actions {
	align-items: center;
}

.mb-searchbar {
	position: fixed;
	inset: var(--mb-admin-bar) 0 auto;
	z-index: 120;
	box-sizing: border-box;
	height: var(--mb-searchbar-h);
	padding: 0 45px;
	align-items: center;
	background: #262626;
	transform: translateY(-100%);
	visibility: hidden;
	transition: transform 0.3s var(--mb-ease), visibility 0s 0.3s;
}

.mb-search-open .mb-searchbar {
	transform: none;
	visibility: visible;
	transition: transform 0.3s var(--mb-ease);
}

/* The bar pushes the page (and the header) down instead of covering it. */
body {
	transition: padding-top 0.3s var(--mb-ease);
}

.mb-header-wrap,
.mb-header.is-stuck {
	transition: top 0.3s var(--mb-ease), height 0.3s var(--mb-ease), background-color 0.3s;
}

.mb-search-open body {
	padding-top: var(--mb-searchbar-h);
}

.mb-search-open .mb-header-wrap,
.mb-search-open .mb-header.is-stuck {
	top: calc(var(--mb-admin-bar) + var(--mb-searchbar-h));
}

.mb-searchbar__form {
	flex: 1;
	margin: 0;
}

.mb-searchbar__form .wp-block-search__inside-wrapper {
	align-items: center;
	gap: 10px;
	border: 0;
	padding: 0;
}

.mb-searchbar__form .wp-block-search__inside-wrapper::before {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	background: var(--wp--preset--color--muted);
	-webkit-mask: var(--mb-icon-search) center / contain no-repeat;
	mask: var(--mb-icon-search) center / contain no-repeat;
}

.mb-searchbar__form .wp-block-search__input {
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 13px;
	outline: 0;
}

.mb-searchbar__form .wp-block-search__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

.mb-searchbar__form .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.mb-searchbar__close {
	flex: none;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: currentColor;
	color: var(--wp--preset--color--accent);
	cursor: pointer;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='1.5'%3E%3Cpath d='m8 8 8 8M16 8l-8 8'/%3E%3C/svg%3E") center / 18px no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='black' stroke-width='1.5'%3E%3Cpath d='m8 8 8 8M16 8l-8 8'/%3E%3C/svg%3E") center / 18px no-repeat;
}

@media (max-width: 1000px) {
	.mb-searchbar { padding: 0 10px; }
	.mb-search-open .mb-header-wrap { top: auto; }
	.mb-searchbar__form .wp-block-search__inside-wrapper::before { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.mb-searchbar, body, .mb-header-wrap, .mb-header.is-stuck { transition: none; }
}

.mb-header.is-stuck .mb-search-toggle,
.mb-header.is-stuck .mb-nav-popup .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--heading-alt);
}

/* Fullscreen popup menu (burger) */
.mb-nav-popup {
	margin-left: 20px;
}

.mb-nav-popup .wp-block-navigation__responsive-container-open {
	padding: 4px;
	color: var(--wp--preset--color--accent);
}

.mb-nav-popup .wp-block-navigation__responsive-container-open svg {
	display: none;
}

/* Bridge used a bold "bars" icon. */
.mb-nav-popup .wp-block-navigation__responsive-container-open::before {
	content: "";
	display: block;
	width: 18px;
	height: 16px;
	background: linear-gradient(currentColor 0 0) top / 100% 3px no-repeat, linear-gradient(currentColor 0 0) center / 100% 3px no-repeat, linear-gradient(currentColor 0 0) bottom / 100% 3px no-repeat;
}

.mb-nav-popup .wp-block-navigation__responsive-container.is-menu-open {
	padding: 0;
}

.mb-nav-popup .is-menu-open .wp-block-navigation__responsive-close {
	max-width: none;
	height: 100%;
}

.mb-nav-popup .is-menu-open .wp-block-navigation__responsive-dialog {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.mb-nav-popup .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 40px;
	right: 45px;
	color: var(--wp--preset--color--accent);
}

.mb-nav-popup .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 0;
	align-items: center;
}

.mb-nav-popup .is-menu-open .wp-block-navigation__container {
	align-items: center;
	gap: 0;
}

.mb-nav-popup .is-menu-open .wp-block-navigation-item__content {
	padding: 0;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 40px;
	font-weight: 600;
	line-height: 62px;
	letter-spacing: 4px;
}

.mb-nav-popup .is-menu-open .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--accent);
}

.mb-nav-popup .is-home-icon .wp-block-navigation-item__label {
	display: inline-block;
	width: 26px;
	height: 26px;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	background: currentColor;
	-webkit-mask: var(--mb-icon-home) center / contain no-repeat;
	mask: var(--mb-icon-home) center / contain no-repeat;
	vertical-align: middle;
}

@media (max-width: 1000px) {
	.mb-nav-main { display: none; }
	.mb-nav-popup .is-menu-open .wp-block-navigation-item__content { font-size: 26px; line-height: 46px; }
}

/* ---------- Title area ---------- */

.mb-main {
	padding-top: 94px;
}

.mb-main--front {
	padding-top: 0;
}

.mb-title {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 142px;
	box-sizing: border-box;
}

.mb-title > * {
	width: 100%;
}

/* Bridge placed title + subtitle slightly lower than a centred block. */
.mb-title:has(> .mb-subtitle:not(:empty)) {
	padding-top: 14px;
}

.mb-title > .wp-block-post-title,
.mb-title > .wp-block-heading,
.mb-title > .wp-block-query-title {
	margin: 0;
	text-transform: uppercase;
}

.mb-subtitle {
	margin-top: 15px;
	font-size: 16px;
	line-height: 25px;
}

.mb-subtitle:empty {
	display: none;
}

@media (max-width: 1000px) {
	.mb-title { min-height: 0; padding-block: 40px 20px; }
	.mb-title > .wp-block-post-title,
	.mb-title > .wp-block-heading,
	.mb-title > .wp-block-query-title { font-size: 30px; line-height: 39px; }
}

/* ---------- Headings & text styles ---------- */

.is-style-boxed {
	display: table;
	font-family: var(--wp--preset--font-family--raleway);
	font-weight: 600;
	text-transform: uppercase;
	margin-inline: auto;
	padding: 10px 35px;
	border: 3px solid #fff;
	font-size: 45px;
	line-height: 1.07;
	letter-spacing: 2px;
}

.is-style-lead {
	font-size: 21px;
	line-height: 36px;
}

.is-style-small {
	font-size: 10px;
	line-height: 1.5;
}

@media (max-width: 768px) {
	.is-style-boxed { font-size: 28px; padding: 8px 18px; }
	.is-style-lead { font-size: 16px; line-height: 27px; }
}

/* Slider subtitle (h4 on Bridge slides) */
.wp-block-cover .is-style-boxed {
	margin-bottom: 0;
}

.wp-block-cover .mb-slide-subtitle {
	margin-top: 22px;
	font-size: 26px;
	font-weight: 600;
	line-height: 28px;
	letter-spacing: 1px;
	text-transform: none;
	color: #fff;
}

.wp-block-cover .mb-slide-subtitle + .wp-block-buttons,
.wp-block-cover .is-style-boxed + .wp-block-buttons {
	margin-top: 34px;
}

.wp-block-cover .wp-block-button__link {
	padding-block: 18px;
}

@media (max-width: 768px) {
	.wp-block-cover .mb-slide-subtitle { font-size: 18px; line-height: 22px; }
}

/* Hero slides (grouped on output, see manuelabross-core hero_slide_layout()):
   two equal outer rows put the middle row – the subtitle – exactly at the
   slider's vertical centre, level with the arrows. Without a subtitle the middle
   row stays free (arrow height), so title and button never cover the arrows. */
.wp-block-cover .mb-slide-grid {
	align-self: stretch;
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto minmax(0, 1fr);
}

.mb-slide-grid > .mb-slide__head,
.mb-slide-grid > .mb-slide__mid,
.mb-slide-grid > .mb-slide__foot {
	margin-block: 0;
}

.mb-slide-grid .mb-slide__head { align-self: end; padding-bottom: 22px; }

/* Slide content enters "all at once" (as in the former site) whenever a slide
   becomes active – also the first slide before the slider script runs, with the
   same animation, so it does not restart when the script marks it active. */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-manuelabross-hero-slider .wp-block-cover.is-active .mb-slide-grid > *,
	.wp-block-manuelabross-hero-slider:not(:has(.is-active)) .wp-block-cover:first-child .mb-slide-grid > * {
		animation: mb-slide-in 0.8s cubic-bezier(0.22, 0.61, 0.36, 1) 0.25s both;
	}
}

@keyframes mb-slide-in {
	from { opacity: 0; transform: translateY(20px); }
}

/* The grouping wrapper is not a layout container: centre aligned images (badge) here. */
.mb-slide-grid .mb-slide__head > .aligncenter {
	display: table;
	margin-inline: auto;
}
.mb-slide-grid .mb-slide__mid { align-self: center; }
.mb-slide-grid .mb-slide__foot { align-self: start; padding-top: 34px; }

.mb-slide-grid .mb-slide__mid:empty { min-height: 50px; }
.mb-slide-grid .mb-slide__head:has(+ .mb-slide__mid:empty) { padding-bottom: 8px; }
.mb-slide-grid .mb-slide__mid:empty + .mb-slide__foot { padding-top: 8px; }

.mb-slide-grid .mb-slide-subtitle,
.mb-slide-grid .wp-block-buttons {
	margin-block: 0;
}

/* Keep the subtitle text between the arrows (chevrons end ~53px from each edge). */
.mb-slide-grid .mb-slide-subtitle {
	max-width: calc(100vw - 124px);
	margin-inline: auto;
}

.wp-block-cover .wp-block-image.mb-slide-badge img {
	max-height: 150px;
	max-width: 250px;
	width: auto;
}

@media (max-width: 800px) {
	/* Also beats the centring rule inside the slide head (.mb-slide-grid … > .aligncenter). */
	.wp-block-cover .mb-slide-badge,
	.mb-slide-grid .mb-slide__head > .mb-slide-badge { display: none; }
}

/* ---------- Buttons ---------- */

.wp-block-button__link {
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: #fff;
}

.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent;
	border-color: #fff;
	color: #fff;
}

.wp-block-button.is-style-outline-light > .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--accent);
}

.wp-block-buttons.is-layout-flex {
	gap: 20px;
}

/* ---------- Price tables (Über uns) ---------- */

.is-style-price-table {
	position: relative;
	padding: 24px 20px 30px;
	background: var(--wp--preset--color--contrast);
	color: #fff;
	text-align: center;
	font-family: var(--wp--preset--font-family--open-sans);
}

.is-style-price-table.is-featured {
	margin-top: -22px;
	padding-top: 46px;
}

/* Stacked (one column, below 782px): the featured package must not be pulled
   up into the one above – same spacing between all three. */
@media (max-width: 781px) {
	.is-style-price-table.is-featured {
		margin-top: 0;
	}
}

.is-style-price-table .mb-price-badge {
	position: absolute;
	inset: 0 0 auto;
	margin: 0;
	padding: 2px;
	background: var(--wp--preset--color--accent);
	font-size: 11px;
	line-height: 20px;
}

.is-style-price-table h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	color: #fff;
}

.is-style-price-table .mb-price {
	margin: 4px 0 18px;
	font-size: 83px;
	font-weight: 200;
	line-height: 83px;
	color: #fff;
}

.is-style-price-table .mb-price sup {
	font-size: 16px;
	font-weight: 600;
	vertical-align: 46px;
	margin-right: 6px;
}

.is-style-price-table ul {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
	line-height: 18px;
}

.is-style-price-table li {
	padding: 2px 10px 13px;
}

@media (min-width: 601px) and (max-width: 1000px) {
	.is-style-price-table .mb-price { font-size: 48px; line-height: 56px; }
	.is-style-price-table .mb-price sup { vertical-align: 24px; }
}

/* ---------- Project single ---------- */

/* Space below the project navigation, as in the former site. */
.mb-main.mb-project {
	padding-bottom: 51px;
}

/* Project navigation (Bridge "portfolio_navigation"): previous / all projects /
   next. Link texts stay in the markup for screen readers and crawlers. */
.mb-project-nav {
	display: grid;
	grid-template-columns: 53px 1fr 53px;
	align-items: center;
	box-sizing: border-box;
	max-width: var(--wp--style--global--content-size);
	margin: 35px auto 0;
}

.mb-project-nav > * {
	margin: 0;
}

.mb-project-nav .post-navigation-link-previous { grid-column: 1; }
.mb-project-nav .mb-project-nav__all { grid-column: 2; justify-self: center; line-height: 0; }
.mb-project-nav .post-navigation-link-next { grid-column: 3; margin-right: 11px; } /* as in the former site */

.mb-project-nav a {
	position: relative;
	display: block;
	overflow: hidden;
	color: transparent;
	font-size: 0;
	text-decoration: none;
}

.mb-project-nav :is(.post-navigation-link-previous, .post-navigation-link-next) a {
	box-sizing: border-box;
	width: 42px;
	height: 42px;
	border: 2px solid #e5e5e5;
	border-radius: 4px;
	transition: background-color 0.2s, border-color 0.2s;
}

.mb-project-nav :is(.post-navigation-link-previous, .post-navigation-link-next) a::before {
	content: "";
	position: absolute;
	inset: 0;
	background: #b4b4b4;
	-webkit-mask: var(--mb-icon-chevron) center / 16px no-repeat;
	mask: var(--mb-icon-chevron) center / 16px no-repeat;
}

.mb-project-nav .post-navigation-link-previous a::before {
	transform: scaleX(-1);
}

.mb-project-nav :is(.post-navigation-link-previous, .post-navigation-link-next) a:is(:hover, :focus-visible) {
	border-color: #e3e3e3;
	background: #e3e3e3;
}

.mb-project-nav :is(.post-navigation-link-previous, .post-navigation-link-next) a:is(:hover, :focus-visible)::before {
	background: #303030;
}

/* 3×3 grid icon (19px) to the project overview. */
.mb-project-nav .mb-project-nav__all a {
	width: 19px;
	height: 19px;
	background: #dcdcdc;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M0 0h5v5H0zm7 0h5v5H7zm7 0h5v5h-5zM0 7h5v5H0zm7 0h5v5H7zm7 0h5v5h-5zM0 14h5v5H0zm7 0h5v5H7zm7 0h5v5h-5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19'%3E%3Cpath d='M0 0h5v5H0zm7 0h5v5H7zm7 0h5v5h-5zM0 7h5v5H0zm7 0h5v5H7zm7 0h5v5h-5zM0 14h5v5H0zm7 0h5v5H7zm7 0h5v5h-5z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: background-color 0.2s;
}

.mb-project-nav .mb-project-nav__all a:is(:hover, :focus-visible) {
	background: #303030;
}

.mb-project__columns {
	gap: 0;
}

.mb-project__columns > .wp-block-column {
	box-sizing: border-box;
}

.mb-project__columns > .wp-block-column:first-child {
	padding-right: 20px;
}

.mb-project__columns > .wp-block-column:last-child {
	padding-left: 20px;
}

@media (max-width: 781px) {
	.mb-project__columns > .wp-block-column { padding-inline: 0 !important; }
}

.mb-project__images .wp-block-image {
	margin-block: 0 18px;
}

.mb-project__images .wp-block-image img {
	width: 100%;
}

/* --mb-sticky-shift (header.js) is negative when the panel is taller than the
   window: it then scrolls along until its end is visible, and sticks there. */
.is-style-sticky-info {
	position: sticky;
	top: calc(var(--mb-header-sticky-h) + var(--mb-admin-bar) + 20px + var(--mb-sticky-shift, 0px));
	padding-top: 40px;
	font-family: var(--wp--preset--font-family--raleway);
}

.is-style-sticky-info h6 {
	margin: 0;
}

.is-style-sticky-info h6 ~ h6 {
	margin-top: 16px;
}

.is-style-sticky-info > * + * {
	margin-block-start: 0;
}

.is-style-sticky-info p {
	margin: 0;
}

.is-style-sticky-info p + p {
	margin-top: 25px;
}

.is-style-sticky-info .wp-block-post-terms {
	font-family: var(--wp--preset--font-family--open-sans);
	color: var(--wp--preset--color--heading-alt);
}

.is-style-sticky-info .wp-block-post-terms a {
	color: inherit;
}

@media (max-width: 781px) {
	.is-style-sticky-info { position: static; padding-top: 0; }
}

/* ---------- Project grid (masonry) ---------- */

.mb-filter {
	margin-bottom: 48px;
}

/* The filter spans the full window width (the grid keeps its side padding). */
.mb-projects .mb-filter {
	margin-inline: calc(-1 * max(9px, 2.5vw));
}

/* As in the former site: fixed spacing (22px either side of each item), no
   justified distribution. Above 600px the list is left-aligned and shrinks to
   its content, so a single row is centred and a second row starts at the left;
   up to 600px every row is centred; up to 480px the spacing is 10px. */
.mb-filter__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	width: fit-content;
	max-width: 100%;
	gap: 0;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.mb-filter__item {
	display: inline-block;
	padding: 0 22px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--wp--preset--color--text);
}

@media (max-width: 600px) {
	.mb-filter__list {
		justify-content: center;
		row-gap: 2px;
		width: auto;
	}
}

@media (max-width: 480px) {
	.mb-filter__item {
		padding: 0 10px;
	}
}

.mb-filter__item:hover {
	color: var(--wp--preset--color--accent);
}

.mb-masonry {
	--mb-gap: 8px;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0 var(--mb-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.mb-masonry.is-masonry-js {
	grid-auto-rows: 1px;
	align-items: start;
}

.mb-masonry > .wp-block-post {
	margin: 0;
	padding-bottom: 25px;
}

.mb-masonry > .wp-block-post[hidden] {
	display: none;
}

.mb-masonry__image {
	margin: 0;
	overflow: hidden;
}

.mb-masonry__image img {
	display: block;
	width: 100%;
	transition: transform 1.2s var(--mb-ease);
}

.mb-masonry > .wp-block-post:hover .mb-masonry__image img {
	transform: scale(1.06);
}

.mb-masonry__title {
	margin: 20px 10px 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 25px;
	letter-spacing: 1px;
}

.mb-masonry__title a {
	color: var(--wp--preset--color--contrast);
}

.mb-masonry__terms {
	margin: 8px 10px 0;
	font-size: 13px;
	line-height: 20px;
}

.mb-masonry__terms a {
	color: var(--wp--preset--color--text);
	pointer-events: none;
}



/* ---------- Stories (blog) ---------- */

.mb-post-list__item {
	gap: 23px;
	margin-bottom: 60px;
}

.mb-post-list__item > .wp-block-column:first-child {
	flex: 0 0 550px !important;
}

.mb-post-list__item > .wp-block-column:last-child {
	padding-top: 25px;
}

@media (max-width: 781px) {
	.mb-post-list__item > .wp-block-column:first-child { flex-basis: 100% !important; }
}

.mb-post__heading {
	margin: 0;
}

.mb-post__heading > * {
	display: inline;
}

.mb-post__date,
.mb-post__title {
	display: inline;
	margin: 0;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 30px;
	font-weight: 600;
	line-height: 39px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.mb-post__date {
	margin-right: 6px;
	color: #bebebe;
}

.mb-post-list .mb-post__title a {
	color: var(--wp--preset--color--contrast);
}

.mb-post__meta {
	margin-top: 4px;
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 14px;
	font-weight: 500;
	line-height: 26px;
	color: #bebebe;
}

.mb-post__meta a {
	color: inherit;
}

.mb-post-list__excerpt .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 22px;
	padding: 12px 22px;
	background: var(--wp--preset--color--accent);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
}

.mb-post-list__excerpt .wp-block-post-excerpt__more-link:hover {
	background: var(--wp--preset--color--accent-hover);
	color: #fff;
}

.mb-post .mb-post__date,
.mb-post .mb-post__title {
	font-size: 23px;
	line-height: 32px;
	letter-spacing: 1px;
}

.mb-post .mb-post__date {
	color: var(--wp--preset--color--accent);
}

.mb-post .mb-post__title {
	color: var(--wp--preset--color--contrast);
}

.mb-post .mb-post__author::before {
	content: "Autor*in: ";
}

.mb-post__article {
	padding-bottom: 64px;
}

/* ---------- Forms (Contact Form 7) ---------- */

.mb-hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.wpcf7 input:not([type="checkbox"], [type="radio"], [type="submit"]),
.wpcf7 textarea,
.wpcf7 select {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 12px;
	padding: 9px 12px;
	border: 1px solid #e6e6e6;
	border-radius: 0;
	background: #fff;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 1px;
	color: var(--wp--preset--color--contrast);
}

.wpcf7 textarea {
	height: 100px;
}

.wpcf7 .wpcf7-list-item {
	margin: 0 0 6px;
}

.wpcf7 .wpcf7-list-item-label {
	font-family: var(--wp--preset--font-family--open-sans);
	font-size: 12px;
	color: #000;
}

.wpcf7 :is(input, button)[type="submit"] {
	padding: 16px 28px;
	border: 2px solid var(--wp--preset--color--accent);
	border-radius: 0;
	background: var(--wp--preset--color--accent);
	color: #fff;
	font-family: var(--wp--preset--font-family--raleway);
	font-size: 11px;
	font-weight: 800;
	line-height: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	cursor: pointer;
}

.wpcf7 :is(input, button)[type="submit"]:hover {
	background: var(--wp--preset--color--accent-hover);
	border-color: var(--wp--preset--color--accent-hover);
}

.wpcf7 .mb-form-note {
	font-size: 10px;
	line-height: 22px;
}

/* Package selection only when "Interesse an Beratungspaketen" is ticked. */
.mb-packages {
	display: none;
}

.wpcf7-form:has(.mb-packages-toggle input:checked) .mb-packages {
	display: block;
}

.mb-packages select {
	color: var(--wp--preset--color--accent);
	font-size: 16px;
}

div.wpcf7-response-output {
	margin: 12px 0 0;
}

/* Newsletter (inline dark field + black button) */
.mb-newsletter {
	text-align: center;
}

/* The form may be wider than the narrow content steps (600–800px), as before. */
.mb-section-newsletter > .wpcf7 {
	max-width: none;
}

form.mb-newsletter {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 600px;
	margin: 25px auto 0;
}

.mb-newsletter .mb-newsletter__field {
	flex: 0 1 300px;
}

.mb-newsletter input[type="email"] {
	height: 55px;
	margin: 0;
	border: 1px solid transparent;
	background: var(--wp--preset--color--contrast);
	color: #fff;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
}

.mb-newsletter :is(input, button)[type="submit"] {
	height: 55px;
	padding: 0 30px;
	border: 0;
	background: #000;
	font-weight: 700;
}

.mb-newsletter :is(input, button)[type="submit"]:hover {
	background: var(--wp--preset--color--accent);
}

.mb-newsletter .mb-newsletter__privacy {
	flex-basis: 100%;
	margin-top: 26px;
}

.mb-newsletter .wpcf7-list-item-label {
	color: var(--wp--preset--color--dark);
}

.mb-newsletter .wpcf7-not-valid-tip {
	display: none;
}

/* CF7 wraps every control in <p>; its margins must not add up. */
form.mb-newsletter p {
	margin: 0;
}

/* The (hidden) CF7 spinner must not take space next to the button. */
.mb-newsletter .mb-newsletter__submit {
	position: relative;
}

.mb-newsletter .wpcf7-spinner {
	position: absolute;
	top: 50%;
	left: 100%;
	margin: -12px 0 0 8px;
}

/* Short labels below 600px ("GO", "den Datenschutz"), as in the former site. */
.mb-newsletter .mb-short { display: none; }

@media (max-width: 599px) {
	.mb-newsletter .mb-newsletter__field { flex-basis: 200px; }
	.mb-newsletter :is(input, button)[type="submit"] { width: 80px; padding: 0; }
	.mb-newsletter .mb-long { display: none; }
	.mb-newsletter .mb-short { display: inline; }
}

/* ---------- Sections ---------- */

.mb-intro h1 {
	margin-top: 0;
	line-height: 49px;
}

@media (max-width: 768px) {
	.mb-intro h1 { line-height: 34px; }
}

.mb-intro p {
	margin-top: 16px;
}

.mb-intro p + p {
	margin-top: 0;
}

.mb-intro__reviews {
	text-align: center;
}

/* Badge as in the former theme options (small, indented). */
#wprev-badge-1 {
	margin-left: 20px;
	font-size: 10px;
}

@media (min-width: 768px) and (max-width: 991px) {
	.mb-intro__reviews { display: none; }
}

.mb-section-newsletter .has-icon-heart {
	--mb-icon-color: #000;
}

/* As in the former site: full column width, fixed 430px height, cropped with
   the focus on the "Design Outlet Shop" badge on the right. */
.mb-outlet-banner a {
	display: block;
}

.mb-outlet-banner img {
	width: 100%;
	height: 430px;
	aspect-ratio: auto !important; /* the block's inline aspect-ratio would fight the fixed height */
	object-fit: cover;
	object-position: 90% 50%;
}

.mb-contact-columns,
.mb-portraits {
	padding-inline: 5px;
}

.mb-contact-details {
	font-size: 16px;
	line-height: 32px;
}

.mb-contact-details a {
	color: var(--wp--preset--color--text);
}

.mb-contact-columns .wp-block-heading[class*="has-icon-"] {
	--mb-icon-color: #000;
}

form.mb-contact .wpcf7-list-item {
	margin-left: 0;
}

.mb-form-check--muted .wpcf7-list-item-label {
	color: var(--wp--preset--color--mid);
}

.mb-section-newsletter .wp-block-heading {
	margin: 0;
}

.mb-reviews {
	overflow: hidden;
	color: #fff;
}

/* Third-party widgets: keep them inside the grid. */
.usedDesignBootstrap .row {
	margin-inline: 0;
}

.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-footer h4 {
	overflow: visible;
}

.usedDesignBootstrap a:hover,
.is-style-hover-fade a:hover img {
	opacity: 0.85;
}

/* Outlet grid: 3 columns on tablet, 2 on mobile (the plugin's Bootstrap grid
   shows 1–2 there, which makes every product fill the screen). */
@media (max-width: 1000px) {
	.usedDesignBootstrap .offersGrid {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 20px;
	}

	.usedDesignBootstrap .offersGrid::before,
	.usedDesignBootstrap .offersGrid::after {
		display: none;
	}

	.usedDesignBootstrap .offersGrid .offerGridItem {
		width: auto;
		float: none;
		padding: 0;
		margin: 0;
	}

	/* The plugin pulls each tile 10px outwards; inside a grid that overlaps. */
	.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-outer {
		margin: 0;
	}
}

@media (max-width: 599px) {
	.usedDesignBootstrap .offersGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
}

@media (max-width: 1000px) {
	/* Narrow tiles: title above price, manufacturer above discount. */
	.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-footer {
		height: auto;
		padding: 8px;
	}

	.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-footer :is(h4, .price, .manufacturer, .discount) {
		position: static;
		display: block;
		float: none;
		width: auto;
		max-width: 100%;
		text-align: left;
	}

	.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-footer h4 {
		overflow: hidden;
		margin: 0 0 2px;
		font-size: 13px;
		line-height: 1.3;
		text-overflow: ellipsis;
	}

	.usedDesignBootstrap .offersGrid .offerGridItem .wrapper-footer :is(.price, .manufacturer, .discount) {
		font-size: 12px;
		line-height: 1.5;
	}
}

#wprev-slider-2 .wprev_preview_tcolor1_T1 {
	font-size: 18px;
	line-height: 30px;
}

#wprev-slider-2 .wprevpro_t1_rname {
	display: none;
}

/* ---------- Footer ---------- */

.mb-footer a {
	color: var(--wp--preset--color--text);
}

.mb-footer a:hover {
	color: var(--wp--preset--color--accent);
}

.mb-footer__columns {
	align-items: center;
}

.mb-footer__logo {
	margin: 0;
}

.mb-footer__social .wp-social-link a {
	padding: 2px;
}

.mb-footer__social .wp-social-link:hover {
	color: var(--wp--preset--color--accent) !important;
}

@media (max-width: 781px) {
	.mb-footer .wp-block-column { text-align: center; }
	.mb-footer__logo { margin-inline: auto; }
	.mb-footer__social { justify-content: center !important; }
}

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

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.wp-block-cover.has-open-sans-font-family .is-style-boxed,
.wp-block-cover.has-open-sans-font-family .mb-slide-subtitle {
	font-family: var(--wp--preset--font-family--open-sans);
}

/* ---------- Responsive (Bridge's stepped grid and mobile header) ---------- */

/* Content width steps exactly as Bridge: 1100 → 950 → 768 → 600 → 420 → 300. */
@media (max-width: 1199px) { :root { --wp--style--global--content-size: 950px; } }
@media (max-width: 1000px) { :root { --wp--style--global--content-size: 768px; } }
@media (max-width: 800px)  { :root { --wp--style--global--content-size: 600px; } }
@media (max-width: 640px)  { :root { --wp--style--global--content-size: 420px; } }
@media (max-width: 480px)  { :root { --wp--style--global--content-size: 300px; } }

@media (max-width: 1000px) {
	/* Header: white bar, centred logo, icons right; content starts below it. */
	.mb-header-wrap,
	.mb-header-wrap.is-overlay {
		position: relative;
		inset: auto;
	}

	.mb-header {
		position: relative;
		justify-content: center;
		height: 100px;
		background: #fff;
	}

	.mb-header .wp-block-site-logo img {
		width: 80px;
	}

	/* Centred without transform: a transformed ancestor would become the
	   containing block of the fixed menu overlay and shrink it to this box. */
	.mb-header__actions {
		position: absolute;
		top: 0;
		right: 11px;
		bottom: 0;
	}

	/* 44px touch targets; icons stay where they were (gaps compensated). */
	.mb-search-toggle {
		width: 44px;
		height: 44px;
		margin-left: 0;
	}

	.mb-nav-popup {
		margin-left: 6px;
	}

	.mb-nav-popup .wp-block-navigation__responsive-container-open {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
	}

	/* Close button: same 44px target, exactly where the burger was. */
	.mb-nav-popup .is-menu-open .wp-block-navigation__responsive-container-close {
		top: 28px;
		right: 11px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
	}

	.mb-header.is-stuck .wp-block-site-logo img {
		width: 40px;
	}

	.mb-main {
		padding-top: 0;
	}

	.mb-masonry { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
	h2 { font-size: 24px; line-height: 33px; }
	.mb-title > .wp-block-post-title,
	.mb-title > .wp-block-heading,
	.mb-title > .wp-block-query-title { font-size: 30px; line-height: 39px; }
}

@media (max-width: 640px) {
	h1, .wp-block-post-title:is(h1),
	.mb-title > .wp-block-post-title,
	.mb-title > .wp-block-heading,
	.mb-title > .wp-block-query-title { font-size: 25px; line-height: 34px; }
	h2 { font-size: 20px; line-height: 29px; }
	h3 { font-size: 17px; line-height: 26px; }
	h4 { font-size: 14px; line-height: 23px; }
	h5 { font-size: 13px; line-height: 22px; }
	.mb-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
	.wp-block-button__link { padding-inline: 16px; }
	h1, .wp-block-post-title:is(h1),
	.mb-title > .wp-block-post-title,
	.mb-title > .wp-block-heading,
	.mb-title > .wp-block-query-title { font-size: 20px; line-height: 28px; }
	.mb-masonry { grid-template-columns: minmax(0, 1fr); }
}

.mb-projects {
	padding-inline: max(9px, 2.5vw);
}

/* Review Slider Pro 12 writes a fixed 3-line clamp into its inline CSS; honour the template's line setting. */
[id^="wprev-slider-"] .indrevlineclamp.indrevlineclamp[data-lines="5"] { -webkit-line-clamp: 5; }
[id^="wprev-slider-"] .indrevlineclamp.indrevlineclamp[data-lines="8"] { -webkit-line-clamp: 8; }
#wprev-slider-1 .indrevlineclamp[data-lines="5"],
#wprev-slider-2 .indrevlineclamp[data-lines="5"] { -webkit-line-clamp: 5; }
#wprev-slider-1 .indrevlineclamp[data-lines="8"],
#wprev-slider-2 .indrevlineclamp[data-lines="8"] { -webkit-line-clamp: 8; }

/* Instagram feed: square tiles regardless of the plugin's JS height calculation. */
#sb_instagram .sbi_photo {
	height: auto !important;
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

#sb_instagram .sbi_photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Review slider (WP Review Slider Pro 12, "Slick" mode): one row with 3/2/1
   reviews (plugin breakpoints 992/600px). Arrows and dots styled as before:
   dark 32px circles with a chevron, 9px outlined dots. */
/* Since Review Slider Pro 12.7.16 the template's side margin (30px) lands on
   the new slick wrapper (div#wprev-slider-1); our layout below sets the width. */
.mb-reviews #wprev-slider-1 {
	margin-inline: 0;
}

/* Room for the arrows beside the slider (max. 1100px). */
.mb-reviews .wprevgoslick {
	width: min(1100px, calc(100% - 50px));
	margin-inline: auto;
}

.mb-reviews .slickwprev-arrow {
	top: 50%;
	z-index: 2;
	width: 32px;
	height: 32px;
	margin-top: -16px;
	border-radius: 50%;
	/* The plugin forces "background: transparent !important"; an inset shadow draws the circle instead. */
	box-shadow: inset 0 0 0 16px rgba(0, 0, 0, 0.2);
	opacity: 0.6;
	transform: none;
}

.mb-reviews .slickwprev-arrow:hover,
.mb-reviews .slickwprev-arrow:focus-visible {
	opacity: 1;
}

.mb-reviews .slickwprev-arrow::before {
	content: "";
	position: absolute;
	inset: 8px;
	background: #fff;
	opacity: 1;
	-webkit-mask: var(--mb-icon-chevron) center / contain no-repeat;
	mask: var(--mb-icon-chevron) center / contain no-repeat;
}

.mb-reviews .slickwprev-prev { left: -40px; right: auto; }
.mb-reviews .slickwprev-prev::before { transform: scaleX(-1); }
.mb-reviews .slickwprev-next { right: -40px; left: auto; }

.mb-reviews .slickwprev-dots li {
	width: auto;
	height: auto;
	margin: 0 4px;
}

.mb-reviews .slickwprev-dots li button {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 1px solid #c3c3c3;
	border-radius: 50%;
	background: transparent;
}

.mb-reviews .slickwprev-dots li button::before {
	content: none;
}

.mb-reviews .slickwprev-dots li.slickwprev-active button {
	background: #c3c3c3;
}

/* Scroll reveal (assets/js/reveal.js adds .mb-reveal only to elements below the fold). */
.mb-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--mb-reveal-delay, 0ms), transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1) var(--mb-reveal-delay, 0ms);
}

.mb-reveal.is-revealed {
	opacity: 1;
	transform: none;
}

.mb-reveal--fade {
	transform: none;
}

@media print, (prefers-reduced-motion: reduce) {
	.mb-reveal { opacity: 1; transform: none; transition: none; }
}

