/*
 * Monster Blocks: front-end styles. Uses Monster Theme's --mt-* variables when
 * present, with plain fallbacks otherwise. The device rules (column widths per row
 * setting, spacer heights, hiding by device) are added after this file from the
 * site's or page's breakpoints (render.php: monster_blocks_responsive_css()).
 */

.mb-content { overflow-wrap: break-word; }

/* Full-width rows break out of the content column in CSS, so nothing moves on load. */
html:has(.mb-row--full, .mb-row--full_content) body { overflow-x: clip; }

/* Rows */
.mb-row {
	--mb-gap: var(--mb-gap-d, 30px);
	--mb-gap-lines: initial; /* each row's own (set on it), never its outer row's */
	position: relative;
	margin-bottom: var(--mb-after, 30px);
	padding-top: var(--mb-pt, 0);
	padding-bottom: var(--mb-pb, 0);
	background-position: center;
	background-size: cover;
}
.mb-row--full,
.mb-row--full_content {
	/* --mb-vw is the visible width without the scrollbar (measured in the page head). */
	width: var(--mb-vw, 100vw);
	margin-right: calc(50% - var(--mb-vw, 100vw) / 2);
	margin-left: calc(50% - var(--mb-vw, 100vw) / 2);
}
.mt-layout-boxed .mb-row--full,
.mt-layout-boxed .mb-row--full_content {
	width: min(var(--mb-vw, 100vw), var(--mt-box-width, 1240px));
	margin-right: calc(50% - min(var(--mb-vw, 100vw), var(--mt-box-width, 1240px)) / 2);
	margin-left: calc(50% - min(var(--mb-vw, 100vw), var(--mt-box-width, 1240px)) / 2);
}
.mb-row--full_content > .mb-row__inner {
	max-width: calc(var(--mt-content-width, 1200px) + 2 * var(--mt-pad, 20px));
	margin-right: auto;
	margin-left: auto;
	/* The row's own side padding (--mb-pl / --mb-pr) comes inside the box, after the theme's. */
	padding-right: calc(var(--mt-pad, 20px) + var(--mb-pr, 0px));
	padding-left: calc(var(--mt-pad, 20px) + var(--mb-pl, 0px));
}
.mb-row__overlay { position: absolute; inset: 0; pointer-events: none; }
/* Parallax: the picture is a taller layer in a clipped box behind the content; the script
   moves it up to 15% of the row's height either way as the row passes the screen. */
.mb-row__bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.mb-row__bg-img { position: absolute; top: -15%; right: 0; left: 0; height: 130%; background-position: center; background-size: cover; will-change: transform; }
/* At least as tall as the screen, content in the middle. */
.mb-row--screen { display: flex; flex-direction: column; justify-content: center; min-height: 100vh; min-height: 100svh; }
.mb-row--screen > .mb-row__inner { width: 100%; }
.mb-row__inner { position: relative; display: flex; flex-wrap: wrap; align-items: var(--mb-valign, stretch); gap: var(--mb-gap, 30px); row-gap: var(--mb-gap-lines, var(--mb-gap, 30px)); }
.mb-row--custom-text h1, .mb-row--custom-text h2, .mb-row--custom-text h3,
.mb-row--custom-text h4, .mb-row--custom-text h5, .mb-row--custom-text h6 { color: inherit; }

/* Rows and columns measure padding inside their width, whatever the theme does (Monster
   Theme does this for everything; The7 does not, and columns with side padding stacked). */
.mb-row, .mb-row__inner, .mb-col { box-sizing: border-box; }

/* Columns: widths add up exactly, gaps included. */
.mb-col {
	--mb-w: var(--mb-w-d, 1);
	--mb-off: var(--mb-off-d, 0);
	flex: 0 0 calc(var(--mb-w) * 100% - var(--mb-gap, 30px) * (1 - var(--mb-w)));
	min-width: 0;
	/* Offset: the width of an empty column of that size, plus its gap. */
	margin-left: calc(var(--mb-off) * (100% + var(--mb-gap, 30px)));
}
.mb-col > :last-child { margin-bottom: 0; }
/* A block's own "Space under" (the site's is printed with the device rules when it has one). */
.mb-col > [style*="--mb-block-space"]:not(:last-child) { margin-bottom: var(--mb-block-space); }
/* A column with a picture behind it; an empty one (a photo beside cards) keeps a height on phones. */
.mb-col--bg { background-position: center; background-size: cover; }
.mb-col--bg:empty { min-height: 300px; }

/* A row shown as slides: its columns are the slides (Carousel block's script and styles). */
.mb-row__inner--slides { display: block; }
.mb-row__inner--slides .mb-slides { margin-bottom: 0; }
.mb-slides .mb-carousel__slide > .mb-col { margin-left: 0; }

.mb-align-left { text-align: left; }
.mb-align-center { text-align: center; }
.mb-align-right { text-align: right; }

/* Text */
.mb-text { margin-bottom: 1.2em; }
.mb-text > :last-child { margin-bottom: 0; }

/* Heading */
.mb-heading { margin-bottom: var(--mb-after, 20px); }
.mb-heading__title { margin: 0; color: inherit; }
.mb-heading .mb-heading__title { color: var(--mt-heading, inherit); }
.mb-heading[style*="color:"] .mb-heading__title, .mb-row--custom-text .mb-heading__title { color: inherit; }
.mb-heading__title--sized { font-size: var(--mb-size); }
.mb-heading__sub { margin: 0.4em 0 0; color: var(--mt-muted, #777); font-size: 1.05em; }

/* Image */
.mb-image { margin: 0 0 1.2em; }
.mb-image__img { display: inline-block; width: 100%; max-width: var(--mb-max, 100%); height: auto; border-radius: var(--mb-radius, 0); vertical-align: middle; }
.mb-image figcaption { margin-top: 0.5em; color: var(--mt-muted, #777); font-size: 0.875em; }

/* Button */
.mb-btn-wrap { margin-bottom: 1.2em; }
.mb-btn { background: var(--mb-btn, var(--mt-accent, #c00)); color: var(--mb-btn-text, var(--mt-accent-text, #fff)); }
.mb-btn:hover { background: var(--mb-btn, var(--mt-accent-hover, #a00)); color: var(--mb-btn-text, var(--mt-accent-text, #fff)); filter: brightness(1.08); }
.mb-btn--outline { border: 2px solid var(--mb-btn, var(--mt-accent, #c00)); background: transparent; color: var(--mb-btn, var(--mt-accent, #c00)); }
.mb-btn--outline:hover { background: var(--mb-btn, var(--mt-accent, #c00)); color: var(--mb-btn-text, var(--mt-accent-text, #fff)); }
.mb-btn--s { padding: calc(var(--mt-button-py, 12px) * 0.7) calc(var(--mt-button-px, 22px) * 0.7); font-size: 0.875em; }
.mb-btn--l { padding: calc(var(--mt-button-py, 12px) * 1.3) calc(var(--mt-button-px, 22px) * 1.3); font-size: 1.15em; }
.mb-btn--full { display: flex; box-sizing: border-box; width: 100%; } /* its padding inside its width under any theme (The7 does not set border-box) */
.mb-btn .mt-icon { width: 1.1em; height: 1.1em; }

/* Spacer (tablet and phone heights come with the device rules) */
.mb-spacer { height: var(--mb-h, 30px); }

/* Divider */
hr.mb-divider { width: var(--mb-width, 100%); margin: var(--mb-space, 20px) auto; border: 0; border-top: var(--mb-line); }
.mb-divider--title { display: flex; align-items: center; gap: 16px; width: var(--mb-width, 100%); margin: var(--mb-space, 20px) auto; }
.mb-divider--title::before, .mb-divider--title::after { flex: 1; border-top: var(--mb-line); content: ""; }
.mb-divider__title { display: inline-flex; align-items: center; gap: 0.5em; color: var(--mt-heading, inherit); font-family: var(--mt-font-heading, inherit); font-weight: var(--mt-heading-weight, 700); text-transform: var(--mt-heading-transform, none); }
.mb-divider__icon { display: inline-flex; color: var(--mb-icon-color, inherit); }
.mb-divider__icon .mt-icon { width: var(--mb-icon-size, 1.2em); height: var(--mb-icon-size, 1.2em); }
.mb-divider--icon { gap: 10px; }

/* Icon box */
.mb-iconbox { margin-bottom: 1.2em; }
.mb-iconbox__icon { display: inline-flex; align-items: center; justify-content: center; width: calc(var(--mb-icon-size, 30px) + 34px); height: calc(var(--mb-icon-size, 30px) + 34px); margin-bottom: 12px; border-radius: 50%; background: color-mix(in srgb, currentColor 12%, transparent); color: var(--mt-accent, #c00); }
.mb-iconbox__icon .mt-icon { width: var(--mb-icon-size, 30px); height: var(--mb-icon-size, 30px); }
.mb-iconbox--plain .mb-iconbox__icon { width: auto; height: auto; margin-bottom: 16px; border-radius: 0; background: none; }
.mb-iconbox--solid .mb-iconbox__icon { background: var(--mt-accent, #c00); color: var(--mt-accent-text, #fff); }
.mb-iconbox__title { margin: 0 0 0.4em; font-size: var(--mt-h4, 20px); }
.mb-iconbox__title a { color: inherit; text-decoration: none; }
.mb-iconbox__text { margin: 0; }
.mb-iconbox--left { display: flex; align-items: flex-start; gap: 16px; text-align: left; }
.mb-iconbox--left .mb-iconbox__icon { flex: none; margin-bottom: 0; }

/* FAQ toggle */
.mb-toggle { margin-bottom: 10px; border-bottom: 1px solid var(--mt-border, #ddd); }
.mb-toggle__q { position: relative; padding: 14px 32px 14px 0; color: var(--mt-heading, inherit); font-family: var(--mt-font-heading, inherit); font-weight: var(--mt-heading-weight, 700); cursor: pointer; list-style: none; }
.mb-toggle__q::-webkit-details-marker { display: none; }
.mb-toggle__q::after { position: absolute; top: 50%; right: 6px; width: 0.5em; height: 0.5em; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; content: ""; transform: translateY(-70%) rotate(45deg); transition: transform 0.2s; }
.mb-toggle[open] .mb-toggle__q::after { transform: translateY(-30%) rotate(-135deg); }
.mb-toggle__h { display: inline; margin: 0; color: inherit; }
.mb-toggle__a { padding: 0 0 14px; }
/* Compact, as WPBakery's own toggle: no lines or padding, the mark before the question. */
.mb-toggle--compact { margin-bottom: 22px; border-bottom: 0; }
/* A plain question is set as WPBakery sets it, like the text round it; a question set as a
   heading keeps the heading's own font, weight and colour. */
.mb-toggle--compact .mb-toggle__q { padding: 0 0 0 24px; color: inherit; font-family: inherit; font-weight: inherit; }
.mb-toggle--compact .mb-toggle__h { color: var(--mt-heading, inherit); }
.mb-toggle--compact .mb-toggle__q::after { right: auto; left: 4px; }
.mb-toggle--compact .mb-toggle__a { padding: 12px 0 0 24px; }

/* Icon (one on its own) */
.mb-icon { margin-bottom: 1.2em; line-height: 0; }
.mb-icon__i { display: inline-flex; color: var(--mt-accent, #c00); }
.mb-icon__i .mt-icon { width: var(--mb-icon-size, 40px); height: var(--mb-icon-size, 40px); }
.mb-toggle__a > :last-child { margin-bottom: 0; }

/* Named Dropdown buttons */
.mb-dd { --mb-dd-bg: var(--mt-accent, #c00); --mb-dd-text: var(--mt-accent-text, #fff); margin: 0 0 16px; }
.mb-dd__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	min-height: 84px;
	padding: 18px 22px;
	border-radius: 12px;
	background: var(--mb-dd-bg);
	color: var(--mb-dd-text);
	font-family: var(--mt-font-heading, inherit);
	font-size: 23px;
	font-weight: var(--mt-heading-weight, 700);
	line-height: 1.12;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	cursor: pointer;
	list-style: none;
	-webkit-tap-highlight-color: transparent;
	transition: filter 0.15s;
}
.mb-dd__btn::-webkit-details-marker { display: none; }
.mb-dd__btn::marker { content: ""; }
.mb-dd__btn:hover { filter: brightness(1.08); }
.mb-dd__btn:active { filter: brightness(0.88); }
.mb-dd__btn:focus-visible { outline: 3px solid var(--mb-dd-bg); outline-offset: 3px; }
.mb-dd__name { flex: 1 1 auto; }
.mb-dd__btn::after { flex: none; width: 14px; height: 14px; margin: -8px 6px 0 0; border-right: 4px solid currentColor; border-bottom: 4px solid currentColor; content: ""; transform: rotate(45deg); transition: transform 0.2s; }
.mb-dd[open] > .mb-dd__btn { border-radius: 12px 12px 0 0; }
.mb-dd[open] > .mb-dd__btn::after { margin-top: 8px; transform: rotate(-135deg); }
.mb-dd__panel { padding: 20px 18px 8px; border: 2px solid var(--mb-dd-bg); border-top: 0; border-radius: 0 0 12px 12px; background: var(--mb-dd-panel, color-mix(in srgb, currentColor 6%, transparent)); font-size: var(--mb-dd-size, inherit); }
.mb-dd[open] > .mb-dd__panel { animation: mb-dd-open 0.25s ease-out; }
.mb-dd__panel > :first-child { margin-top: 0; }
.mb-dd__panel > :last-child { margin-bottom: 12px; }
.mb-dd--m .mb-dd__btn { min-height: 64px; padding: 14px 18px; font-size: 19px; }
.mb-dd--s .mb-dd__btn { min-height: 48px; padding: 10px 16px; font-size: 16px; }
.mb-dd--m .mb-dd__btn::after, .mb-dd--s .mb-dd__btn::after { width: 10px; height: 10px; border-width: 0 3px 3px 0; }
@keyframes mb-dd-open { from { opacity: 0; transform: translateY(-6px); } }

/* Video: a cover with a play button until pressed */
.mb-video { position: relative; height: 0; margin-bottom: 1.2em; padding-top: var(--mb-ratio, 56.25%); overflow: hidden; background: #111; }
.mb-video iframe, .mb-video__play { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mb-video__play { padding: 0; background: #111; cursor: pointer; }
.mb-video__poster { width: 100%; height: 100%; object-fit: cover; }
.mb-video__icon { position: absolute; top: 50%; left: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; background: var(--mt-accent, #c00); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35); }
.mb-video__icon::after { position: absolute; top: 50%; left: 54%; border-width: 14px 0 14px 22px; border-style: solid; border-color: transparent transparent transparent #fff; content: ""; transform: translate(-50%, -50%); }

.mb-code { margin-bottom: 1.2em; }

/* Images in galleries and carousels */
.mb-media { position: relative; margin: 0; }
.mb-media a { display: block; }
.mb-media__img { display: block; width: 100%; height: auto; }
.mb-media a:hover .mb-media__img { opacity: 0.92; }
.mb-media figcaption { margin-top: 6px; color: var(--mt-muted, #777); font-size: 0.875em; }
.mb-gallery--cropped .mb-media, .mb-carousel--cropped .mb-media { overflow: hidden; }
.mb-gallery--cropped .mb-media::before, .mb-carousel--cropped .mb-media::before { display: block; padding-top: var(--mb-ratio); content: ""; }
.mb-gallery--cropped .mb-media__img, .mb-carousel--cropped .mb-media__img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: var(--mb-focus, center); }
.mb-gallery--cropped figcaption, .mb-carousel figcaption { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 18px 12px 8px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.75)); color: #fff; }

/* Gallery */
.mb-gallery { --mb-cols: var(--mb-cols-d, 3); margin-bottom: 1.2em; }
.mb-gallery--grid { display: grid; grid-template-columns: repeat(var(--mb-cols), minmax(0, 1fr)); gap: var(--mb-gap, 12px); }
.mb-gallery--masonry { column-count: var(--mb-cols); column-gap: var(--mb-gap, 12px); }
.mb-gallery--masonry .mb-media { margin-bottom: var(--mb-gap, 12px); break-inside: avoid; }

/* Carousel */
.mb-carousel { --mb-per: var(--mb-per-d, 1); position: relative; margin-bottom: 1.2em; }
.mb-carousel__track { display: flex; align-items: stretch; gap: var(--mb-gap, 0px); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.mb-carousel__track::-webkit-scrollbar { display: none; }
.mb-carousel__track:focus-visible { outline: 2px solid var(--mt-accent, #c00); outline-offset: 2px; }
.mb-carousel__slide { flex: 0 0 calc((100% - (var(--mb-per) - 1) * var(--mb-gap, 0px)) / var(--mb-per)); min-width: 0; scroll-snap-align: start; }
.mb-carousel__arrow { position: absolute; top: 50%; z-index: 2; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--mb-arrow-bg, rgba(0, 0, 0, 0.55)); color: var(--mb-arrow, #fff); font-size: 30px; line-height: 1; cursor: pointer; transform: translateY(-50%); }
.mb-carousel.has-dots .mb-carousel__arrow { top: calc(50% - 15px); }
.mb-carousel__arrow:hover { background: var(--mt-accent, #c00); }
.mb-carousel__arrow--prev { left: 10px; }
.mb-carousel__arrow--next { right: 10px; }
.mb-carousel__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 12px; }
.mb-carousel__dot { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: var(--mt-border, #ccc); cursor: pointer; }
.mb-carousel__dot.is-active { background: var(--mt-accent, #c00); }

/* Posts grid */
.mb-posts { --mb-cols: var(--mb-cols-d, 3); margin-bottom: 1.2em; }
.mb-posts--grid { display: grid; grid-template-columns: repeat(var(--mb-cols), minmax(0, 1fr)); gap: 24px; }
.mb-card { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--mt-border, #e2e2e2); background: var(--mt-page-bg, #fff); }
.mb-card[hidden] { display: none; }

/* Category buttons over a posts grid */
.mb-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 24px; }
.mb-filter__btn { padding: 6px 16px; border: 0; border-radius: var(--mt-radius, 4px); background: none; color: inherit; font: inherit; cursor: pointer; }
.mb-filter__btn:hover, .mb-filter__btn:focus-visible { color: var(--mt-accent, #c00); }
.mb-filter__btn.is-active, .mb-filter__btn.is-active:hover { background: var(--mt-accent, #c00); color: var(--mt-accent-text, #fff); }
.mb-card__media { position: relative; display: block; overflow: hidden; }
.mb-card__img { display: block; width: 100%; height: auto; }
.mb-card__img--empty { min-height: 160px; background: var(--mt-surface, #f2f2f2); }
.mb-posts--cropped .mb-card__media::before { display: block; padding-top: var(--mb-ratio); content: ""; }
.mb-posts--cropped .mb-card__img { position: absolute; inset: 0; height: 100%; min-height: 0; object-fit: cover; object-position: var(--mb-focus, center); }
.mb-card__body { display: flex; flex: 1; flex-direction: column; padding: 18px; }
.mb-card__date { margin: 0 0 6px; color: var(--mt-muted, #777); font-size: 0.85em; }
.mb-card__title { margin: 0 0 8px; font-size: 1.15rem; }
.mb-card__title a { color: inherit; text-decoration: none; }
.mb-card__sub { margin: -4px 0 10px; color: var(--mt-muted, #777); font-size: 0.9em; }
.mb-card__cats { margin: -4px 0 10px; color: var(--mt-muted, #777); font-size: 0.85em; }
.mb-posts--overlay .mb-card__cats { color: #fff; opacity: 0.85; }
.mb-card--quote .mb-card__text { margin-bottom: 16px; }
.mb-card--quote .mb-card__title { margin-bottom: 4px; font-size: 1rem; }
.mb-card--quote .mb-card__sub { margin: 0; }
.mb-posts--center .mb-card__body { align-items: center; text-align: center; }
.mb-posts--center .mb-card__btn { align-self: center; }
/* No pictures (testimonials, mostly): the words stand on whatever is behind the row. */
.mb-posts--plain .mb-card { border: 0; background: none; }
.mb-posts--plain .mb-card__title, .mb-posts--plain .mb-card__text { color: inherit; }
.mb-posts--plain .mb-card__sub { color: inherit; opacity: 0.75; }
.mb-card__text { margin: 0 0 12px; }
.mb-card__btn { align-self: flex-start; margin-top: auto; }
.mb-posts--overlay .mb-card { position: relative; overflow: hidden; border: 0; }
.mb-posts--overlay .mb-card__body { position: absolute; right: 0; bottom: 0; left: 0; flex: none; padding: 40px 18px 18px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.8)); }
.mb-posts--overlay .mb-card__title, .mb-posts--overlay .mb-card__date, .mb-posts--overlay .mb-card__sub, .mb-posts--overlay .mb-card__text { color: #fff; }

/* Counter */
.mb-counter { margin-bottom: 1.2em; }
.mb-counter__icon { display: inline-flex; margin-bottom: 6px; color: var(--mt-accent, #c00); }
.mb-counter__icon .mt-icon { width: 40px; height: 40px; }
.mb-counter__number { margin: 0; color: var(--mt-accent, #c00); font-family: var(--mt-font-heading, inherit); font-size: clamp(2rem, 5vw, 3.2rem); font-variant-numeric: tabular-nums; font-weight: var(--mt-heading-weight, 700); line-height: 1.1; }
.mb-counter__label { margin: 0.3em 0 0; color: var(--mt-heading, inherit); font-weight: 600; text-transform: var(--mt-heading-transform, none); }

/* Social icons */
.mb-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 1.2em; padding: 0; list-style: none; }
.mb-social.mb-align-center { justify-content: center; }
.mb-social.mb-align-right { justify-content: flex-end; }
.mb-social a { display: inline-flex; align-items: center; justify-content: center; width: var(--mb-size, 40px); height: var(--mb-size, 40px); background: var(--mt-accent, #c00); color: var(--mt-accent-text, #fff); text-decoration: none; transition: filter 0.15s; }
.mb-social a:hover { filter: brightness(1.12); }
.mb-social--round a { border-radius: 50%; }
.mb-social--square a { border-radius: var(--mt-radius, 4px); }
.mb-social--plain a { background: none; color: var(--mt-heading, inherit); }
.mb-social .mt-icon { width: calc(var(--mb-size, 40px) * 0.45); height: calc(var(--mb-size, 40px) * 0.45); }

/* Quote */
.mb-quote { margin: 0 0 1.2em; }
.mb-quote p { margin: 0 0 0.6em; }
.mb-quote--line { padding: 0.2em 0 0.2em 1.2em; border-left: 4px solid var(--mt-accent, #c00); font-size: 1.1em; font-style: italic; }
.mb-quote--big { padding: 0; border: 0; font-family: var(--mt-font-heading, inherit); font-size: clamp(1.3rem, 3vw, 1.8rem); text-align: center; }
.mb-quote--big::before { display: block; color: var(--mt-accent, #c00); font-size: 3em; line-height: 0.6; content: "\201C"; }
.mb-quote__cite { display: block; color: var(--mt-muted, #777); font-size: 0.9rem; font-style: normal; }
.mb-quote__cite strong { color: var(--mt-heading, inherit); }

/* Message box */
.mb-message { margin: 0 0 1.2em; padding: 14px 18px; border-left: 4px solid; border-radius: var(--mt-input-radius, 0); color: #1d2327; }
.mb-message > :last-child { margin-bottom: 0; }
.mb-message a { color: inherit; }
.mb-message--info { border-color: #2271b1; background: #eef5fb; }
.mb-message--success { border-color: #1e8e3e; background: #e9f6ec; }
.mb-message--warning { border-color: #d29b00; background: #fdf6e3; }
.mb-message--error { border-color: #d63638; background: #fcebec; }

/* Map: a panel until the visitor asks for the map */
.mb-map { position: relative; height: var(--mb-h, 400px); margin-bottom: 1.2em; overflow: hidden; border-radius: var(--mt-input-radius, 0); background: var(--mt-surface, #eee); }
.mb-map iframe { width: 100%; height: 100%; border: 0; }
.mb-map__cover { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; height: 100%; padding: 20px; text-align: center; }
.mb-map__cover .mt-icon { width: 36px; height: 36px; color: var(--mt-accent, #c00); }
.mb-map__address { margin: 0; color: var(--mt-heading, inherit); font-weight: 600; }
.mb-map__open { font-size: 0.875em; }

/* Progress bars */
.mb-progress { margin-bottom: 1.2em; }
.mb-progress__item { margin-bottom: 14px; }
.mb-progress__label { display: flex; justify-content: space-between; margin-bottom: 6px; color: var(--mt-heading, inherit); font-weight: 600; }
.mb-progress__track { height: 10px; overflow: hidden; border-radius: 999px; background: var(--mt-surface, #eee); }
.mb-progress__bar { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--mb-bar, var(--mt-accent, #c00)); transition: width 1.2s ease; }
.mb-progress.is-in .mb-progress__bar { width: var(--mb-value); }

/* Lightbox */
.mb-lightbox { position: fixed; inset: 0; z-index: 100100; display: flex; align-items: center; justify-content: center; padding: 40px 64px; background: rgba(0, 0, 0, 0.92); }
.mb-lightbox[hidden] { display: none; }
.mb-lightbox figure { margin: 0; text-align: center; }
.mb-lightbox img { max-width: 100%; max-height: calc(100vh - 120px); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); object-fit: contain; }
.mb-lightbox figcaption { margin-top: 10px; color: #eee; }
.mb-lightbox button { position: absolute; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.14); color: #fff; font-size: 28px; line-height: 48px; cursor: pointer; }
.mb-lightbox button:hover { background: var(--mt-accent, #c00); }
.mb-lightbox__close { top: 16px; right: 16px; }
.mb-lightbox__prev { top: 50%; left: 12px; transform: translateY(-50%); }
.mb-lightbox__next { top: 50%; right: 12px; transform: translateY(-50%); }

.mb-booking, .mb-products { margin-bottom: 1.2em; }

@media (max-width: 600px) {
	.mb-lightbox { padding: 56px 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.mb-progress__bar { width: var(--mb-value); transition: none; }
	.mb-dd[open] > .mb-dd__panel { animation: none; }
	.mb-dd__btn::after { transition: none; }
}
