/*
Theme Name: Brutal WordPress
Theme URI: https://www.brutalist.design/
Author: MP Web / WordPress conversion for the template owner
Author URI: https://www.michaelpalmerwebdesign.com/
Description: Editable Gutenberg conversion of the purchased Brutal one-page Bootstrap template. Includes both layouts, responsive editable grids, unlimited content collections, Media Library images, plugin blocks, carousels and a native WordPress contact form.
Version: 2.9.17
Requires at least: 6.4
Requires PHP: 7.4
License: MIT
License URI: https://opensource.org/licenses/MIT
Text Domain: brutal-wp
Tags: one-page, custom-logo, featured-images, theme-options, portfolio
*/

/* WordPress-specific compatibility. The original design lives in assets/css/main*.css. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background: #fff;
  clip: auto !important;
  clip-path: none;
  color: #000;
  display: block;
  font-size: 14px;
  font-weight: 700;
  height: auto;
  left: 8px;
  line-height: normal;
  padding: 14px 18px;
  top: 8px;
  width: auto;
  z-index: 100000;
}

body.admin-bar nav.nav-fs {
  top: 32px;
}

nav div.anchor.brand .custom-logo-link {
  align-items: center;
  display: flex;
  height: 150px;
  padding: 15px 0;
  width: 100%;
}

nav div.anchor.brand .custom-logo {
  height: auto;
  max-height: 120px;
  max-width: 100%;
  width: auto;
}

nav.nav-fs div.anchor.brand .custom-logo-link {
  height: 100%;
  padding: 0;
}

nav.nav-fs div.anchor.brand .custom-logo {
  max-height: 37px;
}

nav.nav-fs ul.navlist {
  display: flex;
}

nav.nav-fs ul.navlist li {
  flex: 1 1 0;
  width: auto;
}

/* Header 2.3: geometry is stored in page blocks, never inferred from labels. */
nav.brutal-navigation-grid-nav {
  --brutal-nav-background: #fff;
  --brutal-nav-foreground: #000;
  background: var(--brutal-nav-background);
  box-sizing: border-box;
  color: var(--brutal-nav-foreground) !important;
  height: auto;
  margin: 0;
  max-width: none;
  padding: 0;
  width: 100%;
}

nav.nav-fs.brutal-navigation-grid-nav {
  --brutal-nav-background: #000;
  --brutal-nav-foreground: #fff;
}

html.nightmode-on nav.brutal-navigation-grid-nav,
html.brutal-night-active nav.brutal-navigation-grid-nav {
  --brutal-nav-background: #000;
  --brutal-nav-foreground: #fff;
}

html.nightmode-on nav.nav-fs.brutal-navigation-grid-nav,
html.brutal-night-active nav.nav-fs.brutal-navigation-grid-nav {
  --brutal-nav-background: #fff;
  --brutal-nav-foreground: #000;
}

.brutal-navigation-grid {
  display: grid;
  gap: var(--brutal-header-row-gap, 0) var(--brutal-header-column-gap, 0);
  grid-auto-rows: minmax(var(--brutal-header-row-height, 150px), auto);
  grid-template-columns: repeat(var(--brutal-header-columns, 12), minmax(0, 1fr));
  grid-template-rows: repeat(var(--brutal-header-rows, 1), minmax(var(--brutal-header-row-height, 150px), auto));
  width: 100%;
}

.brutal-navigation-cell {
  align-items: stretch;
  background: var(--brutal-nav-background);
  box-sizing: border-box;
  display: flex;
  grid-column: var(--brutal-cell-column-start, auto) / span var(--brutal-cell-column-span, 1);
  grid-row: var(--brutal-cell-row-start, auto) / span var(--brutal-cell-row-span, 1);
  min-height: var(--brutal-cell-min-height, 0);
  min-width: 0;
  color: var(--brutal-nav-foreground);
  outline: 1px solid var(--brutal-nav-foreground);
  outline-offset: -1px;
  overflow: hidden;
  padding: 0;
}

.brutal-navigation-cell:hover,
.brutal-navigation-cell:focus-within {
  background: var(--brutal-nav-foreground);
  color: var(--brutal-nav-background);
}

.brutal-navigation-cell > a:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: -4px;
}

.brutal-navigation-cell > a,
.brutal-navigation-cell > span {
  align-items: center;
  color: inherit;
  display: flex;
  flex: 1 1 auto;
  height: 100%;
  min-height: inherit;
  min-width: 0;
	padding: var(--brutal-cell-padding-y, 0) var(--brutal-cell-padding-x, 15px);
  text-decoration: none;
  width: 100%;
}

.brutal-navigation-cell-vertical-top {
  align-items: flex-start;
}

.brutal-navigation-cell-vertical-center {
  align-items: center;
}

.brutal-navigation-cell-vertical-bottom {
  align-items: flex-end;
}

.brutal-navigation-cell-vertical-stretch {
  align-items: stretch;
}

.brutal-navigation-cell-text-left,
.brutal-navigation-cell-text-left > a,
.brutal-navigation-cell-text-left > span {
  justify-content: flex-start;
  text-align: left;
}

.brutal-navigation-cell-text-center,
.brutal-navigation-cell-text-center > a,
.brutal-navigation-cell-text-center > span {
  justify-content: center;
  text-align: center;
}

.brutal-navigation-cell-text-right,
.brutal-navigation-cell-text-right > a,
.brutal-navigation-cell-text-right > span {
  justify-content: flex-end;
  text-align: right;
}

.brutal-navigation-cell-vertical-top > a,
.brutal-navigation-cell-vertical-top > span {
  align-items: flex-start;
}

.brutal-navigation-cell-vertical-center > a,
.brutal-navigation-cell-vertical-center > span {
  align-items: center;
}

.brutal-navigation-cell-vertical-bottom > a,
.brutal-navigation-cell-vertical-bottom > span {
  align-items: flex-end;
}

.brutal-navigation-cell-vertical-stretch > a,
.brutal-navigation-cell-vertical-stretch > span {
  align-items: stretch;
}

/* Version 2.6 uses the header exclusively for one full-width brand cell. */
.brutal-navigation-grid > .brutal-navigation-cell:not(.brutal-navigation-cell-brand) {
	display: none !important;
}

.brutal-navigation-grid > .brutal-navigation-cell-brand {
	grid-column: 1 / -1 !important;
	grid-row: 1 / -1 !important;
}

.brutal-navigation-brand-text {
	display: block;
	font-family: var(--brutal-cell-font-family, inherit);
	font-size: var(--brutal-cell-font-size, clamp(42px, 7vw, 100px));
	font-weight: var(--brutal-cell-font-weight, 500);
	letter-spacing: var(--brutal-cell-letter-spacing, 0);
	line-height: var(--brutal-cell-line-height, .95);
	overflow: hidden;
	text-transform: uppercase;
	white-space: nowrap;
	width: 100%;
}

.brutal-navigation-cell-fit-auto .brutal-navigation-brand-text .stretch_it {
  display: inline-block;
}

.brutal-navigation-label {
  font-family: var(--brutal-cell-font-family, inherit);
  font-size: var(--brutal-cell-font-size, inherit);
  font-weight: var(--brutal-cell-font-weight, inherit);
  letter-spacing: var(--brutal-cell-letter-spacing, 0);
  line-height: var(--brutal-cell-line-height, normal);
}

.brutal-navigation-cell-transform-none .brutal-navigation-brand-text,
.brutal-navigation-cell-transform-none .brutal-navigation-label {
  text-transform: none;
}

.brutal-navigation-cell-transform-uppercase .brutal-navigation-brand-text,
.brutal-navigation-cell-transform-uppercase .brutal-navigation-label {
  text-transform: uppercase;
}

.brutal-navigation-cell-transform-lowercase .brutal-navigation-brand-text,
.brutal-navigation-cell-transform-lowercase .brutal-navigation-label {
  text-transform: lowercase;
}

.brutal-navigation-image-wrap {
  align-items: center;
  display: flex;
  height: 100%;
  justify-content: inherit;
  min-width: 0;
  width: 100%;
}

.brutal-navigation-logo,
.brutal-navigation-image {
  display: block;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  width: auto;
}

.brutal-navigation-mobile-toggle {
  background: var(--brutal-nav-background);
  color: var(--brutal-nav-foreground);
  display: none;
}

nav.nav-fs.brutal-navigation-grid-nav .brutal-navigation-brand-text {
	font-size: var(--brutal-cell-font-size, 1.65em);
}

/* The left Hero column (for example TELEFON) can be aligned from the page editor. */
#hero > .brutal-hero-copy {
	display: flex !important;
  flex-direction: column;
}

#hero > .brutal-hero-copy-text-left {
  text-align: left;
}

#hero > .brutal-hero-copy-text-center {
  text-align: center;
}

#hero > .brutal-hero-copy-text-right {
  text-align: right;
}

#hero > .brutal-hero-copy-vertical-top {
  justify-content: flex-start;
}

#hero > .brutal-hero-copy-vertical-center {
  justify-content: center;
}

#hero > .brutal-hero-copy-vertical-bottom {
  justify-content: flex-end;
}

#hero .brutal-hero-title,
#fullscreen .brutal-hero-title {
	display: block;
	text-align: inherit;
	width: 100%;
}

#hero .brutal-hero-title-has-font-family,
#fullscreen .brutal-hero-title-has-font-family {
	font-family: var(--brutal-hero-title-font-family);
}

#hero .brutal-hero-title-has-font-size,
#fullscreen .brutal-hero-title-has-font-size {
	font-size: var(--brutal-hero-title-font-size);
}

#hero .brutal-hero-title-has-font-weight,
#fullscreen .brutal-hero-title-has-font-weight {
	font-weight: var(--brutal-hero-title-font-weight);
}

#hero .brutal-hero-title-has-letter-spacing,
#fullscreen .brutal-hero-title-has-letter-spacing {
	letter-spacing: var(--brutal-hero-title-letter-spacing);
}

#hero .brutal-hero-title-has-line-height,
#fullscreen .brutal-hero-title-has-line-height {
	line-height: var(--brutal-hero-title-line-height);
}

#hero .brutal-hero-title > span,
#fullscreen .brutal-hero-title > span {
	font-family: inherit !important;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

#hero .brutal-hero-title-fit-manual > span,
#fullscreen .brutal-hero-title-fit-manual > span {
	display: inline-block !important;
	letter-spacing: inherit;
	white-space: normal !important;
}

#hero .brutal-hero-title-fit-auto > span,
#fullscreen .brutal-hero-title-fit-auto > span {
	white-space: nowrap !important;
}

#hero .cta.brutal-hero-button-has-font-size,
#fullscreen .cta.brutal-hero-button-has-font-size {
	font-size: var(--brutal-hero-button-font-size) !important;
}

#hero .cta.brutal-hero-button-has-font-size {
	align-items: center;
	display: flex;
	justify-content: center;
}

#hero .cta.brutal-hero-button-has-font-size > span,
#fullscreen .cta.brutal-hero-button-has-font-size span {
	font-size: inherit !important;
}

#hero .cta.brutal-hero-button-has-font-size > span {
	top: auto !important;
}

#hero .cta.brutal-hero-button-no-underline > span::after {
	content: none !important;
	display: none !important;
}

#hero .cta.brutal-hero-button-no-link,
#fullscreen .cta.brutal-hero-button-no-link,
#fullscreen .cta.brutal-hero-button-no-link > a {
	cursor: default;
}

/* Portfolio keeps the full responsive attachment; this only changes its crop. */
#gallery.brutal-gallery-fit-cover .carousel-wrap .img-wrap img {
	object-fit: cover !important;
}

#gallery.brutal-gallery-fit-contain .carousel-wrap .img-wrap img {
	object-fit: contain !important;
}

.brutal-inline-size-80 {
	font-size: .8em !important;
}

.brutal-inline-size-125 {
	font-size: 1.25em !important;
}

.brutal-inline-size-150 {
	font-size: 1.5em !important;
}

.brutal-inline-size-200 {
	font-size: 2em !important;
}

#hero .cta span[class*="brutal-inline-size-"],
#fullscreen .cta span[class*="brutal-inline-size-"] {
	display: inline !important;
	height: auto !important;
	outline: 0 !important;
	overflow: visible !important;
	padding: 0 !important;
	position: static !important;
	top: auto !important;
	width: auto !important;
}

#hero .cta span[class*="brutal-inline-size-"]::after,
#fullscreen .cta span[class*="brutal-inline-size-"]::after {
	content: none !important;
}

/*
 * Portal logos live only inside the editable offer modal. A single border is
 * shared by neighbouring cells, while every source image keeps its proportions.
 */
.brutal-block-modal .modal-body .brutal-modal-logos {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	margin: 30px 0 0;
	min-width: 0;
	width: 100%;
}

.brutal-block-modal .modal-body .brutal-modal-logos-heading {
	color: inherit;
	margin: 0 0 14px;
	width: 100%;
}

.brutal-block-modal .modal-body .brutal-modal-logo {
	align-items: center;
	background: #fff;
	border: 1px solid #000;
	box-sizing: border-box;
	color: #000;
	display: flex;
	justify-content: center;
	min-height: 0;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	width: 100%;
}

.brutal-block-modal .modal-body .brutal-modal-logo + .brutal-modal-logo {
	border-top: 0;
}

.brutal-block-modal .modal-body .brutal-modal-logo-image {
	display: block;
	flex: 0 1 auto;
	height: auto !important;
	margin: 0 auto;
	max-width: 100% !important;
	object-fit: contain;
	width: var(--brutal-modal-logo-width, 160px);
}

/* The logo cards deliberately stay white in both palette variants. */
html.nightmode-on .brutal-block-modal .modal-body .brutal-modal-logo,
html.brutal-night-active .brutal-block-modal .modal-body .brutal-modal-logo {
	background: #fff;
	border-color: #000;
	color: #000;
}

html.nightmode-on .brutal-block-modal .modal-body .brutal-modal-logos-heading,
html.brutal-night-active .brutal-block-modal .modal-body .brutal-modal-logos-heading {
	color: #fff;
}

/* The editable offer/features section is a flat, equal-width 3/2/1 grid. */
.brutal-block-features {
	border-bottom: 0 !important;
}

.brutal-block-features .brutal-offer-section-title {
	border-left: 1px solid currentColor;
	border-right: 1px solid currentColor;
	border-top: 1px solid currentColor;
	box-sizing: border-box;
	flex: 0 0 100%;
	max-width: 100%;
	padding: 0 15px;
	text-align: center;
	width: 100%;
}

.brutal-block-features .brutal-offer-section-title h3 {
	margin: 0;
}

.brutal-block-features .brutal-offer-grid {
	border-left: 1px solid currentColor;
	border-top: 1px solid currentColor;
	box-sizing: border-box;
	display: grid;
	flex: 0 0 100%;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	max-width: 100%;
	width: 100%;
}

.brutal-block-features .brutal-offer-card {
	border-bottom: 1px solid currentColor;
	border-right: 1px solid currentColor;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 30px 15px;
}

.brutal-block-features .brutal-offer-card h4 {
	display: block;
	margin-bottom: 15px;
}

.brutal-block-features .brutal-offer-card p {
	margin-bottom: 30px;
}

.brutal-block-features .brutal-offer-card .btn-style-main {
	margin-top: auto;
}

@media screen and (max-width: 991.98px) {
	.brutal-block-features .brutal-offer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 575.98px) {
	.brutal-block-features .brutal-offer-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Keep both sides of the Kontakt/Usługi section on the same row lines. */
@media screen and (min-width: 992px) {
	.brutal-block-services {
		align-items: stretch;
	}

	.brutal-block-services > .brutal-services-side {
		display: flex;
		flex-direction: column;
	}

	.brutal-block-services .services-left,
	.brutal-block-services .services-right {
		display: grid;
		flex: 1 1 auto;
		grid-auto-rows: minmax(0, 1fr);
		height: 100%;
	}

	.brutal-block-services .brutal-service-card {
		max-width: 100%;
		width: 100%;
	}

	.brutal-block-services .brutal-service-card-has-image {
		--brutal-service-photo-width: clamp(130px, 42%, 240px);
		overflow: hidden;
		padding-right: calc(var(--brutal-service-photo-width) + 30px);
		position: relative;
	}

	.brutal-block-services .brutal-service-card-has-image .brutal-service-card-inner {
		height: 100%;
	}

	.brutal-block-services .brutal-service-card-media {
		border-left: 1px solid currentColor;
		bottom: 0;
		margin: 0;
		overflow: hidden;
		position: absolute;
		right: 0;
		top: 0;
		width: var(--brutal-service-photo-width);
	}
}

.brutal-block-services .brutal-service-card-inner,
.brutal-block-services .brutal-service-card-copy {
	min-width: 0;
}

.brutal-block-services .brutal-service-card-has-image .brutal-service-card-copy p {
	margin-bottom: 0;
	width: 100%;
}

.brutal-block-services .brutal-service-card-image {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center 25%;
	width: 100%;
}

@media screen and (max-width: 991.98px) {
	.brutal-block-services .brutal-service-card-has-image {
		display: flex;
		flex-direction: column;
		overflow: hidden;
		padding-bottom: 0 !important;
	}

	.brutal-block-services .brutal-service-card-has-image .brutal-service-card-inner {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		width: 100%;
	}

	.brutal-block-services .brutal-service-card-has-image .brutal-service-card-copy {
		margin-bottom: 24px;
	}

	.brutal-block-services .brutal-service-card-media {
		aspect-ratio: 4 / 3;
		border-left: 0;
		border-top: 1px solid currentColor;
		margin: auto -15px 0;
		overflow: hidden;
		position: relative;
		width: auto;
	}

	.brutal-block-services .brutal-service-card-image {
		inset: 0;
		position: absolute;
	}
}

@media screen and (max-width: 575.98px) {
	.brutal-block-services .brutal-services-list > .brutal-service-card {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
	}
}

/*
 * On phones CENNIK already supplies the full-width lower edge through its
 * final direct column. The vendor mobile rule also adds a top edge to the
 * immediately following OPINIE section; suppress that second owner so their
 * shared boundary remains exactly one pixel.
 */
@media screen and (max-width: 767px) {
	.brutal-block-prices + #products.brutal-block-products {
		border-top: 0;
	}
}

/*
 * Between the phone and tablet breakpoints the standard three prices remain
 * in one horizontal row. Their individual lower borders would sit directly
 * on the wrapper edge, so only that full-width wrapper draws the boundary.
 */
@media screen and (min-width: 576px) and (max-width: 767px) {
	#prices.brutal-block-prices:not(.has-flexible-prices)
	.prices-right > .brutal-price-column {
		border-bottom: 0;
	}
}

/*
 * OPINIE and KONTAKT must calculate their desktop thirds in exactly the same
 * coordinate system. Vendor borders sit inside fractional Bootstrap columns,
 * while the review dividers sit on the section percentage; depending on the
 * viewport this displaced the continuation by one or two device pixels.
 * Remove the competing inner edges and let two root-level guides own both
 * vertical boundaries. OPINIE has one-pixel outer borders, so one third of
 * their net two-pixel inset (0.333333px) is added on the borderless KONTAKT
 * section to reproduce the very same physical coordinates.
 */
.brutal-services-vertical-edge {
	display: none;
}

@media screen and (min-width: 992px) {
	.brutal-block-services > .services-center,
	#services:not(.brutal-block-services) > .services-center {
		border-left: 0 !important;
		border-right: 0 !important;
	}

	.brutal-block-services .services-left > .brutal-service-card,
	#services:not(.brutal-block-services) .services-left > div {
		border-right: 0 !important;
	}

	.brutal-block-services .services-right > .brutal-service-card,
	#services:not(.brutal-block-services) .services-right > div {
		border-left: 0 !important;
	}

	.brutal-services-vertical-edge {
		background: #000;
		bottom: 0;
		display: block;
		pointer-events: none;
		position: absolute;
		top: 0;
		width: 1px;
		z-index: 80;
	}

	.brutal-services-vertical-edge-left {
		left: calc(33.333333% + 0.333333px);
	}

	.brutal-services-vertical-edge-right {
		right: calc(33.333333% + 0.333333px);
	}

	html.nightmode-on .brutal-services-vertical-edge,
	html.brutal-night-active .brutal-services-vertical-edge {
		background: #fff;
	}
}

/* One safe, editor-controlled weight for all text inside a selected section. */
.brutal-section-has-font-weight {
	font-weight: var(--brutal-section-font-weight);
}

.brutal-section-has-font-weight :where(h1, h2, h3, h4, h5, h6, p, a, li, span, label, button, input, textarea) {
	font-weight: var(--brutal-section-font-weight) !important;
}

/* The dedicated TELEFON setting remains more specific than the whole-Hero setting. */
.brutal-section-has-font-weight .brutal-hero-title-has-font-weight {
	font-weight: var(--brutal-hero-title-font-weight) !important;
}

.brutal-section-has-font-weight strong,
.brutal-section-has-font-weight b,
.brutal-section-has-font-weight strong *,
.brutal-section-has-font-weight b * {
	font-weight: bolder !important;
}

/* Oferta i Cennik: wspólny rozmiar bazowy; rozmiar nadany zaznaczonemu fragmentowi nadal wygrywa. */
.brutal-block-features.brutal-section-has-font-size .brutal-offer-section-title h3,
.brutal-block-features.brutal-section-has-font-size .brutal-offer-copy h4,
.brutal-block-features.brutal-section-has-font-size .brutal-offer-copy p,
.brutal-block-features.brutal-section-has-font-size .btn-style-main > a,
.brutal-block-prices.brutal-section-has-font-size .prices-left h3,
.brutal-block-prices.brutal-section-has-font-size .prices-wrap > h4,
.brutal-block-prices.brutal-section-has-font-size .prices-wrap > p,
.brutal-block-prices.brutal-section-has-font-size .prices-wrap > span,
.brutal-block-prices.brutal-section-has-font-size .prices-details > h5,
.brutal-block-prices.brutal-section-has-font-size .prices-details > p,
.brutal-block-prices.brutal-section-has-font-size .prices-details > ul,
.brutal-block-prices.brutal-section-has-font-size .prices-details > span {
	font-size: var(--brutal-section-font-size) !important;
}

.brutal-honeypot {
  height: 0;
  left: -9999px;
  overflow: hidden;
  position: absolute;
  width: 0;
}

.contact-form .form-error {
  display: none;
}

.contact-form.active-error .form-error {
  background: rgba(255, 255, 255, .97);
  color: #000 !important;
  cursor: pointer;
  display: block;
  height: 100%;
  left: -15px;
  padding: 120px 15px 15px;
  position: absolute;
  right: -15px;
  text-align: center;
  top: 0;
  width: auto;
  z-index: 2;
}

.contact-form button[disabled] {
  cursor: wait;
  opacity: .65;
}

.brutal-basic-page {
  margin: 0 auto;
  max-width: 1120px;
  min-height: 65vh;
  padding: 80px 30px;
}

.brutal-basic-page h1 {
  margin-bottom: 30px;
}

.brutal-basic-page img {
  height: auto;
  max-width: 100%;
}

.brutal-empty-image {
  background: #f2f2f2;
  display: block;
  min-height: 120px;
}

div#contact ul#social li a {
  align-items: center;
  color: inherit;
  display: inline-flex;
  height: 100%;
  width: 100%;
}

/* Repeating collections remain usable after adding more cards than the demo contained. */
.brutal-block-prices.has-flexible-prices .prices-right > .brutal-price-column {
  flex: 1 1 260px;
  max-width: 100%;
  min-width: 0;
}

#prices.brutal-block-prices.has-flexible-prices,
#prices.brutal-block-prices.has-flexible-prices .prices-right {
  height: auto !important;
  min-height: 240px;
}

#prices.brutal-block-prices.has-flexible-prices .prices-right > .brutal-price-column {
  min-height: 240px;
}

.brutal-block-contact .brutal-social-list.has-flexible-socials {
  display: flex;
  flex-direction: column;
  height: auto !important;
  min-height: 100%;
}

.brutal-block-contact .brutal-social-list.has-flexible-socials > li {
  box-sizing: border-box !important;
  flex: 1 1 auto;
  height: auto !important;
  min-height: 70px;
  width: 100% !important;
}

@media screen and (max-width: 575px) {
  .brutal-block-prices.has-flexible-prices .prices-right > .brutal-price-column {
    flex: 0 0 100%;
  }
}

@media screen and (max-width: 991px) {
  .brutal-block-contact .brutal-social-list.has-flexible-socials {
    flex-direction: row;
    flex-wrap: wrap;
    min-height: 0;
  }

  .brutal-block-contact .brutal-social-list.has-flexible-socials > li {
    flex: 1 1 160px;
    width: auto !important;
  }
}

@media screen and (max-width: 575px) {
  .brutal-block-contact .brutal-social-list.has-flexible-socials {
    flex-direction: column;
  }

  .brutal-block-contact .brutal-social-list.has-flexible-socials > li {
    flex: 1 1 auto;
    width: 100% !important;
  }
}

/* The current Contact design always keeps Instagram and Facebook as two equal rows. */
#contact.brutal-block-contact ul.brutal-social-list.has-two-socials {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(60px, 1fr));
  height: 100% !important;
  min-height: 120px;
}

/*
 * The vendor layout offsets #social by the column's 15px gutters, but leaves
 * its width at the 290px content box. Extend only the desktop grid by both
 * gutters so the Instagram/Facebook divider reaches the adjacent form edge.
 */
@media screen and (min-width: 992px) {
  #contact.brutal-block-contact ul.brutal-social-list.has-two-socials {
    width: calc(100% + 30px) !important;
  }
}

#contact.brutal-block-contact ul.brutal-social-list.has-two-socials > li {
  align-items: center;
  border-bottom: 1px solid currentColor !important;
  border-right: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  height: auto !important;
  line-height: normal !important;
  min-height: 60px;
  padding: 15px !important;
  width: 100% !important;
}

#contact.brutal-block-contact ul.brutal-social-list.has-two-socials > li::before {
  display: none;
}

#contact.brutal-block-contact ul.brutal-social-list.has-two-socials > li:last-child {
  border-bottom: 0 !important;
}

/*
 * Draw section boundaries with one full-width edge instead of assembling them
 * from the borders of individual Bootstrap columns. The one-pixel negative
 * offset places the edge on the shared boundary without adding another row of
 * pixels when the preceding section already has its own lower edge.
 */
.brutal-block-prices,
.brutal-block-services,
#prices:not(.brutal-block-prices),
#services:not(.brutal-block-services) {
  position: relative;
}

.brutal-block-prices::before,
.brutal-block-services::before,
#prices:not(.brutal-block-prices)::before,
#services:not(.brutal-block-services)::before {
  background: #000;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: -1px;
  z-index: 100;
}

html.nightmode-on .brutal-block-prices::before,
html.nightmode-on .brutal-block-services::before,
html.nightmode-on #prices:not(.brutal-block-prices)::before,
html.nightmode-on #services:not(.brutal-block-services)::before,
html.brutal-night-active .brutal-block-prices::before,
html.brutal-night-active .brutal-block-services::before,
html.brutal-night-active #prices:not(.brutal-block-prices)::before,
html.brutal-night-active #services:not(.brutal-block-services)::before {
  background: #fff;
}

/*
 * The full-width edge replaces only the outside edge of CENNIK. At tablet
 * widths the second direct column keeps its top border as the internal line
 * between the stacked title and price cards.
 */
.brutal-block-prices > .prices-left,
#prices:not(.brutal-block-prices) > .prices-left {
  border-top: 0 !important;
}

/*
 * A custom Gutenberg anchor bypasses the vendor's desktop #prices reset.
 * Remove both column tops there; on tablets the rule above intentionally
 * leaves the second column's internal separator in place.
 */
@media screen and (min-width: 992px) {
  .brutal-block-prices > div,
  #prices:not(.brutal-block-prices) > div {
    border-top: 0 !important;
  }
}

.brutal-block-products .products-left-outer,
.brutal-block-products .products-right-outer {
  align-content: flex-start;
  position: relative;
}

#products.brutal-block-products {
  overflow: visible;
  position: relative;
}

.brutal-block-products > .products-center {
  border-bottom: 0;
  position: relative;
}

/*
 * One element owns the complete lower edge of OPINIE. Position it on the
 * section boundary, instead of drawing three separate inner lines which can
 * land on adjacent device-pixel rows and look thicker in selected segments.
 */
#products.brutal-block-products > .brutal-products-bottom-edge {
  background: #000;
  bottom: 0;
  display: block;
  height: 1px;
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  z-index: 100;
}

html.nightmode-on #products.brutal-block-products > .brutal-products-bottom-edge,
html.brutal-night-active #products.brutal-block-products > .brutal-products-bottom-edge {
  background: #fff;
}

/*
 * The full-width USŁUGI/KONTAKT edge above replaces the fragmented top borders
 * of its first visual row. This does not depend on direct sibling selectors,
 * so an invisible or empty WordPress block cannot bring the double segments
 * back. On stacked layouts only the visually first center cell loses its top
 * edge; the internal lines above the remaining service rows stay intact.
 */
@media screen and (min-width: 992px) {
  .brutal-block-services > .brutal-services-side,
  .brutal-block-services > .services-center,
  #services:not(.brutal-block-services) > div {
    border-top: 0 !important;
  }

  .brutal-block-services
  .brutal-services-list > .brutal-service-card:first-child,
  #services:not(.brutal-block-services) .services-left > div:first-child,
  #services:not(.brutal-block-services) .services-right > div:first-child {
    border-top: 0 !important;
  }
}

@media screen and (max-width: 991.98px) {
  .brutal-block-services > .services-center,
  #services:not(.brutal-block-services) > .services-center {
    border-top: 0 !important;
  }
}

@media screen and (max-width: 768px) and (orientation: portrait) {
  #products.brutal-block-products > .products-center {
    border-bottom: 0 !important;
  }
}

/*
 * Keep the vertical review-grid lines continuous and above the carousel
 * overlays. The horizontal lower edge is owned solely by the full-width
 * .brutal-products-bottom-edge element above.
 */
@media screen and (min-width: 992px) {
  #products.brutal-block-products > .products-center {
    border: 0;
    position: relative;
  }

  #products.brutal-block-products::before,
  #products.brutal-block-products::after {
    background: #000;
    bottom: 0;
    content: "";
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 1px;
    z-index: 80;
  }

  #products.brutal-block-products::before {
    left: 33.333333%;
  }

  #products.brutal-block-products::after {
    right: 33.333333%;
  }

  html.nightmode-on #products.brutal-block-products::before,
  html.nightmode-on #products.brutal-block-products::after,
  html.brutal-night-active #products.brutal-block-products::before,
  html.brutal-night-active #products.brutal-block-products::after {
    background: #fff;
  }
}

/* Portfolio cells may be an image or text, and may open their own URL. */
.brutal-block-products a.product-wrap.brutal-product-external {
  color: #000;
  display: block;
  height: 100%;
  position: relative;
  text-decoration: none;
  width: 100%;
}

.brutal-block-products .brutal-product-text-tile > .product-wrap {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: #fff;
  color: #000;
  display: flex;
  justify-content: center;
  min-height: 160px;
  outline: 1px solid currentColor;
  outline-offset: -1px;
  overflow: hidden;
  padding: 20px;
  position: relative;
  text-decoration: none;
  width: 100%;
}

/* Keep the one-pixel side-review frames inside their tiles. The vendor
 * stylesheet outlines review images directly; an outward outline would leak
 * below #products and visually double parts of the Contact separator. */
.brutal-block-products > .products-left-outer .product-wrap > img,
.brutal-block-products > .products-right-outer .product-wrap > img {
  outline-offset: -1px;
}

/*
 * On the three-column desktop layout, complete outlines on every side tile
 * duplicate the section perimeter and put two one-pixel strokes beside each
 * other. Let the section own its outside edges and draw every internal grid
 * seam exactly once. Pseudo-elements preserve the tiles' dimensions and work
 * for both image and text reviews, including the legacy markup.
 */
@media screen and (min-width: 992px) {
  #products.brutal-block-products
  .brutal-product-text-tile > .product-wrap,
  #products.brutal-block-products
  > .products-left-outer .product-wrap > img,
  #products.brutal-block-products
  > .products-right-outer .product-wrap > img {
    outline: 0;
  }

  #products.brutal-block-products .products-left,
  #products.brutal-block-products .products-right,
  #products.brutal-block-products
  .products-left > .col-6 + .col-6,
  #products.brutal-block-products
  .products-right > .col-6 + .col-6 {
    position: relative;
  }

  #products.brutal-block-products
  .products-left > .col-6 + .col-6::before,
  #products.brutal-block-products
  .products-right > .col-6 + .col-6::before,
  #products.brutal-block-products
  .products-left + .products-left::before,
  #products.brutal-block-products
  .products-right + .products-right::before {
    background: #000;
    content: "";
    pointer-events: none;
    position: absolute;
    z-index: 70;
  }

  #products.brutal-block-products
  .products-left > .col-6 + .col-6::before,
  #products.brutal-block-products
  .products-right > .col-6 + .col-6::before {
    bottom: 0;
    left: -1px;
    top: 0;
    width: 1px;
  }

  #products.brutal-block-products
  .products-left + .products-left::before,
  #products.brutal-block-products
  .products-right + .products-right::before {
    height: 1px;
    left: 0;
    right: 0;
    top: 0;
  }

  html.nightmode-on #products.brutal-block-products
  .products-left > .col-6 + .col-6::before,
  html.nightmode-on #products.brutal-block-products
  .products-right > .col-6 + .col-6::before,
  html.nightmode-on #products.brutal-block-products
  .products-left + .products-left::before,
  html.nightmode-on #products.brutal-block-products
  .products-right + .products-right::before,
  html.brutal-night-active #products.brutal-block-products
  .products-left > .col-6 + .col-6::before,
  html.brutal-night-active #products.brutal-block-products
  .products-right > .col-6 + .col-6::before,
  html.brutal-night-active #products.brutal-block-products
  .products-left + .products-left::before,
  html.brutal-night-active #products.brutal-block-products
  .products-right + .products-right::before {
    background: #fff;
  }
}

.brutal-block-products .brutal-product-tile-text {
  display: block;
  font-size: clamp(20px, 2vw, 38px);
  line-height: 1.1;
  overflow-wrap: anywhere;
  position: relative;
  text-transform: uppercase;
  z-index: 6;
}

#products.brutal-block-products .brutal-product-text-has-font-weight {
  font-weight: var(--brutal-product-text-font-weight) !important;
}

/* A selected per-review weight wins over the optional section-wide weight,
 * while native RichText bold formatting remains visibly bolder. */
#products.brutal-block-products.brutal-section-has-font-weight .brutal-product-text-has-font-weight span {
  font-weight: var(--brutal-product-text-font-weight) !important;
}

#products.brutal-block-products .brutal-product-text-has-font-weight strong,
#products.brutal-block-products .brutal-product-text-has-font-weight b,
#products.brutal-block-products .brutal-product-text-has-font-weight strong *,
#products.brutal-block-products .brutal-product-text-has-font-weight b * {
  font-weight: bolder !important;
}

.brutal-block-products .brutal-product-carousel-text {
  align-items: center;
  background: #fff;
  color: #000;
  display: flex;
  justify-content: center;
}

.brutal-block-products .brutal-product-carousel-copy {
  font-size: clamp(28px, 4vw, 64px);
  line-height: 1.05;
  max-width: 86%;
  overflow-wrap: anywhere;
  padding: 30px;
  text-transform: uppercase;
}

/* A tiny overscan hides borders captured inside uploaded review screenshots. */
#products.brutal-block-products .products-carousel .product-carousel-item.brutal-product-carousel-image-slide {
  overflow: hidden;
}

#products.brutal-block-products .products-carousel .product-carousel-item > img.brutal-product-carousel-image {
  height: calc(100% + 8px);
  left: -4px;
  max-width: none;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: -4px;
  width: calc(100% + 8px);
  z-index: 0;
}

.brutal-block-products .product-description {
  z-index: 2;
}

.brutal-block-products .product-description .product-link.is-visible {
  display: block !important;
}

.brutal-block-products .product-description .brutal-product-detail-link {
  border-bottom: 1px solid currentColor;
  color: inherit;
  display: inline-flex;
  gap: 8px;
  margin-top: 16px;
  position: relative;
  text-decoration: none;
  z-index: 60;
}

.brutal-block-products .product-description .brutal-product-detail-link:hover,
.brutal-block-products .product-description .brutal-product-detail-link:focus-visible {
  border-bottom-width: 3px;
}

@media screen and (max-width: 768px) and (orientation: portrait) {
  .brutal-block-products .product-description.has-detail-link p {
    bottom: 82px;
  }

  .brutal-block-products .product-description .brutal-product-detail-link {
    bottom: 45px;
    left: 15px;
    margin-top: 0;
    max-width: calc(100% - 30px);
    position: absolute;
  }
}

html.nightmode-on .brutal-block-products a.product-wrap.brutal-product-external,
html.nightmode-on .brutal-block-products .brutal-product-text-tile > .product-wrap,
html.nightmode-on .brutal-block-products .brutal-product-carousel-text,
html.brutal-night-active .brutal-block-products a.product-wrap.brutal-product-external,
html.brutal-night-active .brutal-block-products .brutal-product-text-tile > .product-wrap,
html.brutal-night-active .brutal-block-products .brutal-product-carousel-text {
  background: #000;
  color: #fff;
}

@media screen and (min-width: 992px) {
  #prices .prices-left.brutal-prices-title-align-center h3 {
    left: 0;
    right: 0;
    text-align: center;
    width: 100%;
  }

  #prices .prices-left.brutal-prices-title-align-right h3 {
    left: auto;
    right: 15px;
    text-align: right;
  }
}

/* Keep the portfolio photograph close to its native high-DPI display size.
 * The outer 8/4 grid stays untouched, so every vertical divider still lines
 * up with the neighbouring Brutal sections. */
#gallery.brutal-block-gallery {
  align-items: stretch;
  height: auto !important;
}

#gallery.brutal-block-gallery > .carousel-wrap {
  aspect-ratio: 768 / 513;
  background: #000;
  height: auto !important;
  max-height: var(--brutal-gallery-max-height, 513px);
  min-height: 0;
  position: relative;
}

#gallery.brutal-block-gallery .gallery-carousel,
#gallery.brutal-block-gallery .gallery-carousel .owl-stage-outer,
#gallery.brutal-block-gallery .gallery-carousel .owl-stage,
#gallery.brutal-block-gallery .gallery-carousel .owl-item,
#gallery.brutal-block-gallery .gallery-carousel .img-wrap {
  height: 100% !important;
  min-height: 0;
}

#gallery.brutal-block-gallery .gallery-carousel .img-wrap {
  align-items: center;
  background: #000;
  display: flex;
  justify-content: center;
}

#gallery.brutal-block-gallery .gallery-carousel .img-wrap img {
  display: block;
  height: 100% !important;
  max-height: 100%;
  max-width: var(--brutal-gallery-max-width, 768px);
  object-position: center;
  width: 100%;
}

#gallery.brutal-block-gallery > .gallery-right {
  align-self: stretch;
  height: auto !important;
  min-height: 0;
  position: relative;
}

/* On wide screens the carousel retains the original two-thirds column, but
 * the photograph itself is centred at its quality-safe size. */
@media (min-width: 992px) {
  #gallery.brutal-block-gallery > .carousel-wrap {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }

  #gallery.brutal-block-gallery > .gallery-right {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
    min-width: 0;
    width: 33.333333%;
  }
}

/* Accessible versions of the original white carousel arrow buttons. */
div#gallery .carousel-wrap .owl-nav > button.owl-prev,
div#gallery .carousel-wrap .owl-nav > button.owl-next {
  align-items: center;
  appearance: none;
  background: #fff !important;
  border: 1px solid #000;
  border-radius: 0;
  color: #000;
  display: inline-flex !important;
  font-size: 30px;
  height: 52px;
  justify-content: center;
  line-height: 1;
  margin: -26px 0 0;
  min-width: 56px;
  opacity: 1;
  padding: 0 12px !important;
  position: absolute;
  top: 50%;
  touch-action: manipulation;
}

div#gallery .carousel-wrap .owl-nav > button.owl-prev {
  left: 16px;
}

div#gallery .carousel-wrap .owl-nav > button.owl-next {
  right: 16px;
}

div#gallery .carousel-wrap .owl-nav > button > .brutal-carousel-arrow {
  display: block;
  font-size: 30px;
  line-height: 1;
  pointer-events: none;
}

div#gallery .carousel-wrap .owl-nav > button.owl-prev:hover,
div#gallery .carousel-wrap .owl-nav > button.owl-next:hover {
  background: #000 !important;
  color: #fff;
}

div#gallery .carousel-wrap .owl-nav > button.owl-prev.disabled,
div#gallery .carousel-wrap .owl-nav > button.owl-next.disabled {
  opacity: .5;
}

div#gallery .carousel-wrap .owl-nav > button.owl-prev.disabled:hover,
div#gallery .carousel-wrap .owl-nav > button.owl-next.disabled:hover {
  background: #fff !important;
  color: #000;
}

div#gallery .carousel-wrap .owl-nav > button.owl-prev:focus-visible,
div#gallery .carousel-wrap .owl-nav > button.owl-next:focus-visible {
  background: #fff !important;
  color: #000;
  outline: 3px solid #000;
  outline-offset: 2px;
}

html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-prev,
html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-next,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-prev,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-next {
  background: #fff !important;
  border-color: #000;
  color: #000;
}

html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-prev:hover,
html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-next:hover,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-prev:hover,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-next:hover {
  background: #000 !important;
  color: #fff;
}

html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-prev.disabled:hover,
html.nightmode-on div#gallery .carousel-wrap .owl-nav > button.owl-next.disabled:hover,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-prev.disabled:hover,
html.brutal-night-active div#gallery .carousel-wrap .owl-nav > button.owl-next.disabled:hover {
  background: #fff !important;
  color: #000;
}

/* Original lower-right arrows for the selected product/review. The blend mode
 * keeps the same bare-arrow treatment readable over both white review cards
 * and dark slides, while the invisible hit area remains touch friendly. */
div#products div.products-carousel div.owl-nav {
  align-items: center;
  display: flex;
  gap: 0;
  z-index: 70;
}

div#products div.products-carousel div.owl-nav > button.owl-prev,
div#products div.products-carousel div.owl-nav > button.owl-next {
  align-items: center;
  appearance: none;
  background: transparent !important;
  border: 0;
  border-radius: 0;
  color: #fff !important;
  display: inline-flex;
  font-size: 30px;
  height: 44px;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-width: 40px;
  opacity: 1;
  padding: 0 6px !important;
  position: relative;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}

div#products div.products-carousel div.owl-nav > button.owl-prev > .brutal-products-arrow,
div#products div.products-carousel div.owl-nav > button.owl-next > .brutal-products-arrow {
  display: block;
  font-size: 30px;
  line-height: 1;
  pointer-events: none;
}

div#products div.products-carousel div.owl-nav > button.owl-prev:hover,
div#products div.products-carousel div.owl-nav > button.owl-next:hover {
  background: transparent !important;
  color: #fff !important;
  opacity: 0.7;
}

div#products div.products-carousel div.owl-nav > button.owl-prev:focus-visible,
div#products div.products-carousel div.owl-nav > button.owl-next:focus-visible {
  background: transparent !important;
  color: #fff !important;
  outline: 2px solid currentColor;
  outline-offset: -5px;
}

/*
 * Keep every Clients card in one equal-height row. The original separator was
 * the border of the rotated role label, so an empty role shortened it by 24px.
 */
div#team .team-carousel .owl-stage {
  align-items: stretch;
  display: flex;
}

div#team .team-carousel .owl-item {
  display: flex;
  float: none;
  height: auto;
}

div#team .team-carousel .owl-item > .team-member {
  display: flex;
  min-width: 0;
  width: 100%;
}

div#team .team-carousel .team-wrap {
  display: grid;
  flex: 1;
  grid-template-columns: 35px minmax(0, 1fr);
  grid-template-rows: minmax(174px, 1fr) auto;
  min-height: 239px;
  min-width: 0;
}

div#team .team-carousel .team-wrap > p {
  grid-column: 1;
  grid-row: 1 / -1;
  height: auto;
  margin: 0;
  min-height: 0;
  overflow: hidden;
  position: relative;
  width: 35px;
}

div#team .team-carousel .team-wrap > p::after {
  border-right: 1px solid #000;
  bottom: 0;
  content: "";
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
}

div#team .team-carousel .team-wrap > p > span {
  align-items: center;
  border: 0 !important;
  bottom: 0;
  display: flex;
  height: auto;
  justify-content: center;
  left: 0;
  overflow: hidden;
  padding: 8px 5px;
  position: absolute;
  right: 0;
  text-overflow: ellipsis;
  top: 0;
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
  -webkit-transform-origin: center;
  transform-origin: center;
  white-space: nowrap;
  width: auto;
  writing-mode: vertical-rl;
}

div#team .team-carousel .team-wrap > div {
  align-self: center;
  aspect-ratio: 1 / 1;
  background: #fff;
  box-sizing: border-box;
  grid-column: 2;
  grid-row: 1;
  height: 150px;
  justify-self: center;
  left: auto;
  margin: 16px auto 8px;
  position: relative;
  right: auto;
  top: auto;
  width: 150px;
}

div#team .team-carousel .team-wrap > div > img {
  display: block;
  height: 100%;
  object-fit: contain;
  object-position: center;
  position: static;
  top: auto;
  width: 100%;
}

div#team .team-carousel .team-wrap > .team-member-name {
  bottom: auto;
  box-sizing: border-box;
  grid-column: 2;
  grid-row: 2;
  left: auto;
  line-height: 1.15;
  min-width: 0;
  overflow-wrap: anywhere;
  padding: 0 12px 12px;
  position: static;
  white-space: normal;
  width: auto;
}

div#team .team-carousel .team-member-name > a {
  overflow-wrap: anywhere;
  white-space: normal;
}

html.nightmode-on div#team .team-carousel .team-wrap > p::after,
html.brutal-night-active div#team .team-carousel .team-wrap > p::after {
  border-right-color: #fff;
}

@media (min-width: 768px) and (max-width: 991.98px) {
  div#team .team-carousel .team-member {
    border-right: 0;
  }
}

div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-prev,
div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-next {
  align-items: center;
  appearance: none;
  background: #fff !important;
  border: 1px solid #000;
  border-radius: 0;
  color: #000;
  display: inline-flex;
  height: 48px;
  justify-content: center;
  line-height: 1;
  margin: 6px 4px;
  min-width: 56px;
  padding: 0 12px !important;
  touch-action: manipulation;
}

div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-prev > .brutal-carousel-arrow,
div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-next > .brutal-carousel-arrow {
  color: #000;
  display: block;
  font-size: 30px;
  line-height: 1;
  pointer-events: none;
}

div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-prev:hover,
div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-next:hover {
  background: #000 !important;
  color: #fff;
}

div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-prev:hover > .brutal-carousel-arrow,
div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-next:hover > .brutal-carousel-arrow {
  color: #fff;
}

div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-prev:focus-visible,
div#team div.team-carousel-wrap div.team-carousel .owl-nav > button.owl-next:focus-visible {
  outline: 3px solid #000;
  outline-offset: 2px;
}

html.nightmode-on div#team div.team-carousel-wrap div.team-carousel .owl-nav > button,
html.brutal-night-active div#team div.team-carousel-wrap div.team-carousel .owl-nav > button {
  background: #fff !important;
  border-color: #000;
  color: #000;
}

html.nightmode-on div#team div.team-carousel-wrap div.team-carousel .owl-nav > button > .brutal-carousel-arrow,
html.brutal-night-active div#team div.team-carousel-wrap div.team-carousel .owl-nav > button > .brutal-carousel-arrow {
  color: #000;
}

html.nightmode-on div#team div.team-carousel-wrap div.team-carousel .owl-nav > button:hover,
html.brutal-night-active div#team div.team-carousel-wrap div.team-carousel .owl-nav > button:hover {
  background: #000 !important;
  color: #fff;
}

html.nightmode-on div#team div.team-carousel-wrap div.team-carousel .owl-nav > button:hover > .brutal-carousel-arrow,
html.brutal-night-active div#team div.team-carousel-wrap div.team-carousel .owl-nav > button:hover > .brutal-carousel-arrow {
  color: #fff;
}

@media (max-width: 768px) and (orientation: portrait) {
  div#products div.products-carousel div.owl-nav {
    bottom: 0;
    justify-content: center;
  }

  div#products div.products-carousel div.owl-nav > button.owl-prev,
  div#products div.products-carousel div.owl-nav > button.owl-next {
    height: 44px;
    line-height: 1;
    min-width: 44px;
  }

  div#products div.products-carousel div.owl-nav > button.owl-prev > .brutal-products-arrow,
  div#products div.products-carousel div.owl-nav > button.owl-next > .brutal-products-arrow {
    height: auto;
    line-height: 1;
  }
}

@media (max-width: 575.98px) {
  div#gallery .carousel-wrap .owl-nav > button.owl-prev,
  div#gallery .carousel-wrap .owl-nav > button.owl-next {
    font-size: 26px;
    height: 48px;
    line-height: 1;
    margin: -24px 0 0;
    min-width: 48px;
    padding: 0 8px !important;
  }

  div#gallery .carousel-wrap .owl-nav > button.owl-prev {
    left: 8px;
  }

  div#gallery .carousel-wrap .owl-nav > button.owl-next {
    right: 8px;
  }

  div#gallery .carousel-wrap .owl-nav > button > .brutal-carousel-arrow {
    font-size: 26px;
  }
}

/* Existing repeatable items can override the alignment imposed by the purchased layout. */
.brutal-editable-cell.brutal-align-left,
.brutal-editable-cell.brutal-align-left * {
  text-align: left !important;
}

.brutal-editable-cell.brutal-align-center,
.brutal-editable-cell.brutal-align-center * {
  text-align: center !important;
}

.brutal-editable-cell.brutal-align-right,
.brutal-editable-cell.brutal-align-right * {
  text-align: right !important;
}

/* A real CSS Grid block for freely editable Gutenberg cells. */
.brutal-block-grid-section {
  box-sizing: border-box;
  width: 100%;
}

.brutal-grid {
  --brutal-grid-gap: 0;
  display: grid;
  gap: var(--brutal-grid-gap);
  grid-auto-rows: minmax(var(--brutal-grid-row-height, 160px), auto);
  grid-template-columns: repeat(var(--brutal-grid-columns, 2), minmax(0, 1fr));
  grid-template-rows: repeat(var(--brutal-grid-rows, 1), minmax(var(--brutal-grid-row-height, 160px), auto));
  width: 100%;
}

.brutal-grid-desktop-1 {
  grid-template-columns: minmax(0, 1fr);
}

.brutal-grid-desktop-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.brutal-grid-desktop-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.brutal-grid-desktop-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.brutal-grid-desktop-6 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.brutal-grid-horizontal-left {
  justify-items: start;
}

.brutal-grid-horizontal-center {
  justify-items: center;
}

.brutal-grid-horizontal-right {
  justify-items: end;
}

.brutal-grid-horizontal-stretch {
  justify-items: stretch;
}

.brutal-grid-vertical-top {
  align-items: start;
}

.brutal-grid-vertical-center {
  align-items: center;
}

.brutal-grid-vertical-bottom {
  align-items: end;
}

.brutal-grid-vertical-stretch {
  align-items: stretch;
}

.brutal-grid-cell {
  border: 1px solid currentColor;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  grid-column: var(--brutal-cell-column-start, auto) / span var(--brutal-cell-column-span, 1);
  grid-row: var(--brutal-cell-row-start, auto) / span var(--brutal-cell-row-span, 1);
  min-height: var(--brutal-cell-min-height, 0);
  min-width: 0;
  padding: 30px;
  width: 100%;
}

.brutal-grid-horizontal-left > .brutal-grid-cell,
.brutal-grid-horizontal-center > .brutal-grid-cell,
.brutal-grid-horizontal-right > .brutal-grid-cell {
  width: auto;
}

.brutal-grid-cell-inner {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  width: 100%;
}

.brutal-grid-cell-vertical-top .brutal-grid-cell-inner {
  justify-content: flex-start;
}

.brutal-grid-cell-vertical-center .brutal-grid-cell-inner {
  justify-content: center;
}

.brutal-grid-cell-vertical-bottom .brutal-grid-cell-inner {
  justify-content: flex-end;
}

.brutal-grid-cell-vertical-stretch .brutal-grid-cell-inner {
  justify-content: stretch;
}

.brutal-grid-cell-text-left {
  text-align: left;
}

.brutal-grid-cell-text-center {
  text-align: center;
}

.brutal-grid-cell-text-right {
  text-align: right;
}

.brutal-grid-cell-text-center .wp-block-image,
.brutal-grid-cell-text-center .wp-block-buttons {
  justify-content: center;
  text-align: center;
}

.brutal-grid-cell-text-right .wp-block-image,
.brutal-grid-cell-text-right .wp-block-buttons {
  justify-content: flex-end;
  text-align: right;
}

.brutal-grid-cell-span-2 {
  grid-column: span 2;
}

.brutal-grid-cell-span-3 {
  grid-column: span 3;
}

.brutal-grid-cell-span-4 {
  grid-column: span 4;
}

.brutal-grid-cell-span-5 {
  grid-column: span 5;
}

.brutal-grid-cell-span-6 {
  grid-column: span 6;
}

@media screen and (min-width: 768px) and (max-width: 991px) {
	.brutal-grid {
		grid-template-rows: none;
	}

  .brutal-grid-tablet-1 {
    grid-template-columns: minmax(0, 1fr);
  }

  .brutal-grid-tablet-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .brutal-grid-tablet-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .brutal-grid-cell {
    grid-column: auto;
    grid-row: auto;
  }
}

@media screen and (max-width: 767px) {
	.brutal-grid {
		grid-auto-rows: minmax(120px, auto);
		grid-template-rows: none;
	}

  .brutal-grid-mobile-1 {
    grid-template-columns: minmax(0, 1fr);
  }

  .brutal-grid-mobile-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .brutal-grid-cell {
    grid-column: auto;
    grid-row: auto;
    min-height: 120px;
    padding: 24px 18px;
  }

  .brutal-navigation-grid {
    display: grid;
    grid-auto-rows: minmax(50px, auto);
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: none;
  }

  .brutal-navigation-cell {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    min-height: 50px;
  }

  .brutal-navigation-cell-brand {
    min-height: 110px;
  }

	.brutal-navigation-brand-text {
		font-size: var(--brutal-cell-font-size, clamp(42px, 18vw, 80px));
  }

  nav.nav-fs.brutal-navigation-grid-nav .brutal-navigation-cell:not(.brutal-navigation-cell-brand) {
    display: none;
  }

  nav.nav-fs.brutal-navigation-grid-nav .brutal-navigation-cell-brand {
    min-height: 50px;
  }

	nav.nav-fs.brutal-navigation-grid-nav .brutal-navigation-brand-text {
		font-size: var(--brutal-cell-font-size, 1.35em);
	}

  nav.nav-fs.brutal-navigation-grid-nav.is-mobile-open .brutal-navigation-cell:not(.brutal-navigation-cell-brand) {
    display: flex;
  }

  nav.nav-fs.brutal-navigation-grid-nav .brutal-navigation-mobile-toggle {
    background: var(--brutal-nav-background);
    border: 1px solid currentColor;
    color: var(--brutal-nav-foreground);
    display: block;
    padding: 7px 12px;
    position: absolute;
    right: 15px;
    top: 8px;
    z-index: 4;
  }
}

/* Core and plugin blocks inserted between Brutal sections keep a practical content width. */
.brutal-free-section > .col-12,
.brutal-block-content > :not(.row):not(.wp-block-brutal-modal):not(.brutal-block-modal):not(.brutal-block-grid-section) {
  margin-left: auto;
  margin-right: auto;
  max-width: 1120px;
}

.brutal-free-section img,
.brutal-block-content > :not(.row):not(.brutal-block-modal) img {
  height: auto;
  max-width: 100%;
}

@media screen and (max-width: 782px) {
  body.admin-bar nav.nav-fs {
    top: 46px;
  }
}

@media screen and (max-width: 767px) {
  .contact-form.active-error .form-error {
    padding-top: 22vh;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
