/*
 * Birgit Blasche – component styles.
 * Tokens (colours, fonts, sizes) live in theme.json; this file ports the
 * original one-pager styles to block markup, mobile first.
 * Breakpoints: 800px (tablet), 1020px (desktop header), 1280px (multi-column), 1600px (wide).
 */

:root {
	--bb-gray: var(--wp--preset--color--gray);
	--bb-dark: var(--wp--preset--color--dark);
	--bb-black: var(--wp--preset--color--black);
	--bb-gold: var(--wp--preset--color--gold);
	--bb-teal: var(--wp--preset--color--teal);
	--bb-wide: var(--wp--style--global--wide-size, 1280px);
	/* left edge shared by logo panel, hero claim and stuck brand */
	--bb-edge: 60px;
	--bb-header-offset: 60px;
}
@media (min-width: 1400px) {
	:root {
		--bb-edge: calc((100vw - var(--bb-wide)) / 2);
	}
}

/* ---------- base ---------- */

html {
	scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
strong,
b {
	font-weight: 600;
}
img,
video {
	display: block;
}
[id] {
	scroll-margin-top: var(--bb-header-offset);
}
body .wp-site-blocks > * {
	margin-block: 0;
}
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* ---------- header: logo, sticky brand, navigation ---------- */

/* The template part wrapper is transparent so the brand can stick across the whole page. */
.bb-header {
	display: contents;
}
.bb-logo {
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 40px 50px 0px;
	background: var(--wp--preset--color--white);
}
.bb-logo img {
	max-width: 100%;
	height: auto;
}
.bb-brand {
	position: sticky;
	top: 0;
	z-index: 5;
	margin: 0;
	padding: 15px 0 10px calc(50% - 140px);
	background: var(--wp--preset--color--white);
	font-size: 24.5px;
	line-height: 25px;
	font-weight: 400;
	letter-spacing: 6px;
	word-spacing: 8px;
	text-transform: uppercase;
	transition: padding 1s ease, font-size 1s ease, box-shadow 1s ease;
}
.bb-brand a {
	color: var(--bb-black);
	text-decoration: none;
}
body.is-stuck .bb-brand {
	padding-left: 24px;
	box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.1);
}
@media (max-width: 374px) {
	body.is-stuck .bb-brand {
		font-size: 18px;
	}
}
@media (min-width: 800px) {
	body.is-stuck .bb-brand {
		padding-left: var(--bb-edge);
	}
}

.bb-nav {
	margin: 0;
}
.bb-nav a {
	color: var(--bb-black);
	text-decoration: none;
}
.bb-nav a:hover,
.bb-nav a:focus-visible {
	color: var(--bb-teal);
}

/* mobile: hamburger slides in once the brand is stuck */
.bb-nav .wp-block-navigation__responsive-container-open {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 6;
	padding: 13px 20px;
	color: var(--bb-black);
	transform: translateX(100%);
	transition: transform 1s ease;
}
body.is-stuck .bb-nav .wp-block-navigation__responsive-container-open,
.bb-nav .wp-block-navigation__responsive-container-open:focus-visible {
	transform: none;
}
.bb-nav .wp-block-navigation__responsive-container-open svg {
	width: 28px;
	height: 28px;
}
/* open menu: starts below the sticky brand bar (50px), so the branding stays visible;
   the close button takes the hamburger's place in that bar */
.bb-nav .wp-block-navigation__responsive-container.is-menu-open {
	top: 50px;
	padding: 0;
	overflow: visible;
	background: var(--wp--preset--color--white);
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	height: 100%;
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	/* the overlay keeps a transform from its fade-in, so position relative to it */
	position: absolute;
	top: -50px;
	right: 0;
	padding: 13px 20px;
	color: var(--bb-black);
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 28px;
	height: 28px;
}
/* while open, the X replaces the hamburger */
.bb-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open {
	visibility: hidden;
}
/* menu items centred vertically in the open area */
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	flex: 0 0 auto;
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	justify-content: center;
	height: 100%;
	min-height: 0;
	padding: 0;
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: center !important;
}
.bb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding: 12px 25px;
	font-size: 1.375rem;
	font-weight: 600;
}

@media (min-width: 1020px) {
	:root {
		--bb-header-offset: 70px;
	}

	.bb-nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 4;
		height: 60px;
		padding-right: max(25px, calc(var(--bb-edge) - 15px));
		background: var(--wp--preset--color--white);
		transition: box-shadow 0.8s ease;
	}
	body.is-stuck .bb-nav {
		box-shadow: 0 5px 8px 0 rgba(0, 0, 0, 0.1);
	}
	.bb-nav .wp-block-navigation__responsive-container-open,
	.bb-nav .wp-block-navigation__responsive-container-close {
		display: none;
	}
	.bb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: block;
		position: static;
	}
	.bb-nav .wp-block-navigation__container {
		gap: 0;
	}
	.bb-nav .wp-block-navigation-item__content {
		padding: 18px 15px;
		font-size: 1rem;
		text-transform: uppercase;
	}

	/* logo panel overlapping the hero */
	.bb-logo {
		position: relative;
		z-index: 5;
		justify-content: flex-start;
		width: 355px;
		margin-left: var(--bb-edge);
		padding: 50px 40px 0;
		box-shadow: 0 60px 50px rgba(0, 0, 0, 0.1);
	}
	.bb-brand,
	body.is-stuck .bb-brand {
		width: 355px;
		margin-left: var(--bb-edge);
		padding: 20px 0 30px 40px;
		box-shadow: none;
	}
	body.is-stuck .bb-brand {
		padding-top: 20px;
		padding-bottom: 15px;
	}
}

/* ---------- footer ---------- */

.bb-footer {
	padding: 30px 25px;
	color: var(--bb-dark);
	font-size: var(--wp--preset--font-size--small);
}
.bb-footer__inner {
	gap: 0 1.5em;
}
.bb-footer p {
	margin: 0;
}
.bb-footer a {
	color: inherit;
	text-decoration: none;
}
.bb-footer a:hover {
	text-decoration: underline;
}

/* ---------- content pages (Impressum, Datenschutz) ---------- */

.bb-main--page {
	padding-top: 40px;
	padding-bottom: 90px;
}
.bb-main--page .wp-block-post-content h2 {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	margin-top: 2em;
}

/* ---------- hero (bb/hero) ---------- */

.wp-block-bb-hero {
	position: relative;
	margin-block: 0;
}
.wp-block-bb-hero img {
	width: 100%;
	height: auto;
}
.bb-hero__placeholder {
	padding: 80px 25px;
	background: var(--bb-gray);
	text-align: center;
}
.bb-hero__claim {
	padding: 20px;
	background: var(--bb-gray);
	color: var(--bb-gold);
	font-size: 1.35rem;
	line-height: 2.25rem;
	text-align: center;
}
.wp-block-bb-hero:not(.is-style-fullscreen) .bb-hero__claim {
	font-size: 0.9rem;
	line-height: 1.4rem;
}
.wp-block-bb-hero.is-style-fullscreen {
	margin-block: 25px 70px;
}
@media (min-width: 360px) {
	.wp-block-bb-hero:not(.is-style-fullscreen) .bb-hero__claim {
		font-size: 1rem;
		line-height: 1.5rem;
	}
}
@media (min-width: 800px) {
	.bb-hero__claim {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 140px;
		padding: 20px 20px 20px var(--bb-edge);
		background: transparent;
		color: var(--wp--preset--color--white);
		font-size: 2rem;
		line-height: 3rem;
		text-align: left;
	}
	.wp-block-bb-hero:not(.is-style-fullscreen) .bb-hero__claim {
		height: 100px;
		font-size: 1.2rem;
		line-height: 1.6rem;
	}
	.wp-block-bb-hero.is-style-fullscreen {
		margin-bottom: 150px;
	}
}
@media (min-width: 1100px) {
	.wp-block-bb-hero:not(.is-style-fullscreen) .bb-hero__claim {
		height: 120px;
		font-size: 1.5rem;
		line-height: 2.2rem;
	}
}
/* Desktop start screen: the hero fills the viewport, the logo panel overlaps its white
   top area. The picture is 70% of the viewport height; the image scales up proportionally
   and is clipped on the left (Birgit stands on the right). */
@media (min-width: 1020px) {
	.wp-block-bb-hero.is-style-fullscreen {
		height: 100vh;
		height: 100svh;
		margin-top: -362px;
	}
	.wp-block-bb-hero.is-style-fullscreen .bb-hero__picture {
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		display: block;
		height: 70%;
	}
	.wp-block-bb-hero.is-style-fullscreen img {
		height: 100%;
		object-fit: cover;
		object-position: 100% 0;
	}
}
/* portrait screens: don't let the start screen grow taller than it is wide */
@media (min-width: 1020px) and (orientation: portrait) {
	.wp-block-bb-hero.is-style-fullscreen {
		max-height: 100vw;
	}
}

/* ---------- sections ---------- */

.bb-section {
	margin-top: 25px;
	margin-bottom: 70px;
}
.bb-section-title {
	margin: 25px 25px 15px;
	text-align: center;
}
@media (min-width: 800px) {
	.bb-section {
		margin-bottom: 150px;
	}
	.bb-section-title {
		margin: 35px 40px;
		line-height: 1.5;
	}
}

/* text column */
.wp-block-group.bb-text {
	margin: 40px 25px;
}
.bb-text > * {
	margin-block: 10px;
}
@media (min-width: 800px) {
	.wp-block-group.bb-text {
		max-width: 600px;
		margin: 90px auto;
	}
}

/* gray list band */
.wp-block-group.bb-list {
	margin: 40px 0;
	padding: 40px 25px;
	background: var(--bb-gray);
}
.bb-list > p {
	margin: 10px 0 10px 25px;
}
@media (min-width: 800px) {
	.wp-block-group.bb-list {
		padding: 80px 25px;
	}
	.bb-list > * {
		max-width: 600px;
		margin-inline: auto;
	}
	.bb-list > p {
		max-width: 540px;
		margin-inline: auto;
		margin-bottom: 2rem;
	}
}

/* check-mark list (block style) */
.wp-block-list.is-style-check {
	padding-left: 0;
	list-style: none;
}
.wp-block-list.is-style-check li {
	margin: 10px 0 0;
	padding-left: 25px;
	background: url(../img/list.png) no-repeat 0 0.25em / 15px;
}
@media (min-width: 800px) {
	.wp-block-list.is-style-check li {
		padding-left: 30px;
	}
}
.bb-clients li {
	font-weight: 600;
}
.bb-qualifications li strong {
	display: block;
}

/* two columns from 1280px: text | list card */
@media (min-width: 1280px) {
	.bb-split {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
		gap: clamp(50px, 5vw, 90px);
		max-width: var(--bb-wide);
		margin: 90px auto;
		padding-inline: 40px;
	}
	.bb-split > .bb-text,
	.bb-split > .bb-list {
		max-width: none;
		margin: 0;
	}
	.bb-split > .bb-list {
		padding: 60px 50px;
	}
	/* optional: give the text the card's padding, so the first lines align */
	.bb-split > .bb-text--padded {
		padding: 60px 50px;
	}
	.bb-split > * > :first-child,
	.bb-split > .bb-list > .wp-block-list > li:first-child {
		margin-top: 0;
	}
	.bb-split > .bb-list > * {
		max-width: none;
	}
	.bb-split > .bb-list > p {
		margin-left: 0;
	}
}

/* call to action */
.wp-block-group.bb-teaser {
	margin: 70px 25px;
	text-align: center;
}
.bb-teaser p {
	font-size: var(--wp--preset--font-size--large);
}
.bb-teaser .wp-block-buttons {
	justify-content: center;
}

/* brush button (block style) */
.wp-block-button.is-style-brush .wp-block-button__link {
	display: inline-block;
	height: 50px;
	margin: 25px 0 10px;
	padding: 0 30px;
	background: url(../img/button.webp) no-repeat center / 100% 100%;
	border-radius: 0;
	color: var(--wp--preset--color--white);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 50px;
	text-decoration: none;
}
@media (min-width: 800px) {
	.wp-block-button.is-style-brush .wp-block-button__link {
		height: 60px;
		padding: 0 40px;
		font-size: 1.35rem;
		line-height: 60px;
	}
}

/* image + dark caption band (media-text block style) */
.wp-block-media-text.is-style-caption-dark {
	margin: 0;
	background: var(--bb-dark);
	color: var(--wp--preset--color--white);
}
.is-style-caption-dark .wp-block-media-text__content {
	padding: 10px 25px 25px;
}
.is-style-caption-dark h3 {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.65rem;
	font-weight: 500;
}
.is-style-caption-dark h3 + p {
	margin-top: 25px;
}
.is-style-caption-dark p {
	margin: 10px 0;
}
@media (max-width: 799px) {
	.wp-block-media-text.is-style-caption-dark {
		grid-template-columns: 100% !important;
	}
	.is-style-caption-dark .wp-block-media-text__media {
		grid-column: 1;
		grid-row: 1;
	}
	.is-style-caption-dark .wp-block-media-text__content {
		grid-column: 1;
		grid-row: 2;
	}
}
@media (min-width: 800px) {
	.is-style-caption-dark .wp-block-media-text__content {
		padding: 25px 8%;
	}
	.is-style-caption-dark h3 {
		font-size: 1.5rem;
		line-height: 1.9rem;
	}
}
/* very wide screens: keep the band full-bleed but stop the 1500px images from upscaling */
@media (min-width: 1600px) {
	.wp-block-media-text.is-style-caption-dark {
		padding-inline: calc((100% - 1440px) / 2);
	}
}

/* paged list (assets/js/paged-list.js): 10 items per page, "next" arrow on the right, counter below */
.bb-pager-wrap {
	/* horizontal swipes turn the pages (paged-list.js), vertical ones scroll */
	touch-action: pan-y;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 25px 20px;
}
.bb-pager-wrap .wp-block-list {
	margin: 0;
}
.bb-pager-wrap .wp-block-list > li:first-child {
	margin-top: 0;
}
.bb-paged.is-turning > li {
	animation: bb-fade-in 0.5s ease;
}
@keyframes bb-fade-in {
	from {
		opacity: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.bb-paged.is-turning > li {
		animation: none;
	}
}
.bb-pager-wrap .bb-dots {
	grid-column: 1;
}
.bb-pager__next {
	width: 28px;
	height: 40px;
	padding: 0;
	border: 0;
	background: url(../img/arrow-right.png) no-repeat center / contain;
	cursor: pointer;
}
.bb-pager__next:focus-visible {
	outline: 2px solid var(--bb-gold);
	outline-offset: 4px;
}
@media (min-width: 800px) {
	.bb-pager__next {
		width: 42px;
		height: 60px;
	}
}

/* pagination dots (carousels and paged lists) */

.bb-dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	/* dots at least 24px apart (centre to centre), so each counts as a large enough touch target */
	gap: 6px;
}
/* dot window on small screens (view.js sets the width and shift) */
.bb-dots__track {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: inherit;
}
.bb-dots.is-windowed {
	flex: none;
	justify-content: flex-start;
	overflow: hidden;
}
.bb-dots.is-windowed .bb-dots__track {
	flex-wrap: nowrap;
	justify-content: flex-start;
	transition: transform 0.3s ease;
}
.bb-dots.is-windowed .bb-dot {
	flex: none;
	transition: transform 0.3s ease;
}
.bb-dots.is-windowed .bb-dot.is-near-edge {
	transform: scale(0.75);
}
.bb-dots.is-windowed .bb-dot.is-edge {
	transform: scale(0.5);
}
.bb-dot {
	--dot: url(../img/dot-ring-1.png);
	position: relative;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.bb-dot:nth-child(4n + 2) {
	--dot: url(../img/dot-ring-2.png);
}
.bb-dot:nth-child(4n + 3) {
	--dot: url(../img/dot-ring-3.png);
}
.bb-dot:nth-child(4n + 4) {
	--dot: url(../img/dot-ring-4.png);
}
.bb-dot::after {
	content: "";
	position: absolute;
	inset: 35%;
	border-radius: 50%;
	background: var(--bb-gold);
}
.bb-dot::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--bb-teal);
	-webkit-mask: var(--dot) no-repeat center / contain;
	mask: var(--dot) no-repeat center / contain;
	opacity: 0;
}
.bb-dot.is-active::before {
	opacity: 1;
}
.bb-dot:focus-visible {
	outline: 2px solid var(--bb-gold);
	outline-offset: 1px;
}
@media (min-width: 800px) {
	.bb-dots {
		gap: 4px;
	}
	.bb-dot {
		width: 22px;
		height: 22px;
	}
}

/* ---------- carousel (bb/carousel) ---------- */

.wp-block-bb-carousel {
	position: relative;
	margin: 50px 0;
}
.bb-carousel__track {
	position: relative;
	display: flex;
	align-items: flex-start;
	overflow-x: auto;
	overflow-y: hidden;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	transition: height 0.4s ease;
}
.bb-carousel__track::-webkit-scrollbar {
	display: none;
}
.bb-carousel__track:focus-visible {
	outline: 2px solid var(--bb-gold);
	outline-offset: 4px;
}
.bb-carousel__track > * {
	flex: 0 0 100%;
	margin: 0 !important;
	scroll-snap-align: center;
}
.bb-carousel__nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 20px 0 0;
}
.bb-carousel__prev,
.bb-carousel__next {
	width: 21px;
	height: 30px;
	padding: 0;
	border: 0;
	background: url(../img/arrow-left.png) no-repeat center / contain;
	cursor: pointer;
}
.bb-carousel__next {
	background-image: url(../img/arrow-right.png);
}
.is-single .bb-carousel__nav {
	display: none;
}

/* quotes */
.wp-block-bb-carousel.is-variant-quotes {
	padding: 40px 25px;
	background: var(--bb-gray);
	text-align: center;
}
.is-variant-quotes .wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-weight: 600;
	quotes: "„" "“";
}
.is-variant-quotes .wp-block-quote p {
	margin: 0 0 1em;
}
.is-variant-quotes .wp-block-quote p:first-of-type::before {
	content: open-quote;
}
.is-variant-quotes .wp-block-quote p:last-of-type::after {
	content: close-quote;
}
.is-variant-quotes .wp-block-quote cite {
	display: block;
	margin-top: 40px;
	font-size: inherit;
	font-style: normal;
	font-weight: 400;
}

/* videos */
.is-variant-videos .wp-block-video {
	position: relative;
	background: var(--bb-gray);
}
.is-variant-videos video {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.is-variant-videos .bb-carousel__nav {
	padding: 0 25px;
}
.bb-sound {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 90px;
	height: 90px;
	padding: 0;
	border: 0;
	background: url(../img/mute.svg) no-repeat 23px 23px / 40px;
	cursor: pointer;
}
.bb-sound.is-on {
	background-image: url(../img/unmute.svg);
}

@media (min-width: 800px) {
	.wp-block-bb-carousel {
		--card: clamp(600px, 55vw, 900px);
		--gap: clamp(30px, 4vw, 80px);
		margin: 60px 0;
	}
	.bb-carousel__track {
		gap: var(--gap);
		padding-inline: calc((100% - var(--card)) / 2);
	}
	.bb-carousel__track > * {
		flex-basis: var(--card);
	}
	.bb-carousel__track > :not(.is-active) {
		cursor: pointer;
	}

	/* quotes: gray cards, neighbours peek in as empty cards */
	.wp-block-bb-carousel.is-variant-quotes {
		padding: 0;
		background: none;
	}
	.is-variant-quotes .bb-carousel__track > * {
		padding: 70px 100px;
		background: var(--bb-gray);
	}
	.is-variant-quotes .bb-carousel__track > * > * {
		opacity: 0;
		transition: opacity 0.8s ease;
	}
	.is-variant-quotes .bb-carousel__track > .is-active > * {
		opacity: 1;
	}
	/* dots centred under the card; the arrows are positioned on the neighbours */
	.bb-carousel__nav {
		justify-content: center;
		margin: 25px 0 0;
	}
	/* arrows sit on the peeking neighbours, near the screen edges (as in the original) */
	.wp-block-bb-carousel {
		--peek: calc((100vw - var(--card)) / 2 - var(--gap));
		--arrow-inset: max(15px, calc(var(--peek) / 2 - 35px));
	}
	.wp-block-bb-carousel .bb-carousel__prev,
	.wp-block-bb-carousel .bb-carousel__next {
		position: absolute;
		z-index: 1;
		width: 70px;
		height: 100px;
	}
	.wp-block-bb-carousel .bb-carousel__prev {
		left: var(--arrow-inset);
	}
	.wp-block-bb-carousel .bb-carousel__next {
		right: var(--arrow-inset);
	}
	.is-variant-quotes .bb-carousel__prev,
	.is-variant-quotes .bb-carousel__next {
		top: 160px;
	}

	/* videos: centred card, faded neighbours */
	.is-variant-videos .bb-carousel__track > * {
		transition: opacity 0.5s ease;
	}
	.is-variant-videos .bb-carousel__track > :not(.is-active) {
		opacity: 0.3;
	}
	.is-variant-videos .bb-carousel__nav {
		padding: 0;
	}
	.is-variant-videos .bb-carousel__prev,
	.is-variant-videos .bb-carousel__next {
		top: calc(var(--card) * 9 / 32 - 50px);
	}
}

/* editor: show slides as a plain list */
.wp-block-bb-carousel.is-editor .bb-carousel__track {
	display: block;
	overflow: visible;
	padding: 0;
	height: auto !important;
}
.wp-block-bb-carousel.is-editor .bb-carousel__track > * {
	margin: 0 0 20px !important;
	padding: 30px;
	background: var(--bb-gray);
	opacity: 1;
}
.wp-block-bb-carousel.is-editor .bb-carousel__track > * > * {
	opacity: 1;
}
.bb-carousel__editor-label {
	margin-bottom: 10px;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--bb-dark);
}

/* ---------- contact ---------- */

.wp-block-group.bb-contact__address {
	margin: 40px 25px;
}
.bb-contact__address a {
	display: inline-block;
	margin-left: 20px;
	padding: 5px 15px;
	background: url(../img/button.webp) no-repeat center / 100% 100%;
	color: var(--wp--preset--color--white);
	font-weight: 600;
	text-decoration: none;
}
.wp-block-group.bb-contact__form {
	padding: 20px 25px 40px;
	background: var(--bb-gray);
}
@media (min-width: 800px) {
	.wp-block-group.bb-contact__address {
		max-width: 600px;
		margin: 90px auto;
	}
	.wp-block-group.bb-contact__form {
		padding: 70px;
	}
	.bb-contact__form > * {
		max-width: 600px;
		margin-inline: auto;
	}
}
@media (min-width: 1020px) {
	.bb-contact {
		display: grid;
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		gap: clamp(50px, 6vw, 110px);
		padding: 80px max(40px, calc((100% - var(--bb-wide)) / 2 + 40px));
		background: var(--bb-gray);
	}
	.wp-block-group.bb-contact__address,
	.wp-block-group.bb-contact__form {
		max-width: none;
		margin: 0;
		padding: 0;
	}
	.bb-contact__form > * {
		max-width: none;
	}
}

/* WPForms: reuse the original form look (WPForms set to "base styles only") */
.bb-contact__form .wpforms-container {
	margin-block: 0;
	hyphens: manual;
}
.bb-contact__form .wpforms-field {
	padding: 0;
	margin: 0;
}
.bb-contact__form .wpforms-field-label {
	display: block;
	margin: 20px 0 5px;
	font-weight: 600;
}
.bb-contact__form .wpforms-field:first-child .wpforms-field-label {
	margin-top: 0;
}
.bb-contact__form .wpforms-required-label {
	display: none;
}
.bb-contact__form input[type="text"],
.bb-contact__form input[type="email"],
.bb-contact__form textarea {
	display: block;
	width: 100%;
	max-width: none !important;
	height: 44px;
	padding: 0 15px;
	border: 2px solid var(--wp--preset--color--white);
	border-radius: 0;
	background: var(--wp--preset--color--white);
	box-shadow: none;
	font: inherit;
	line-height: 40px;
	outline: none;
}
.bb-contact__form textarea {
	height: 156px;
	padding: 10px 15px;
	line-height: 1.7rem;
	resize: vertical;
}
.bb-contact__form input[type="text"]:focus,
.bb-contact__form input[type="email"]:focus,
.bb-contact__form textarea:focus {
	border-color: var(--bb-gold);
}
.bb-contact__form .wpforms-field-checkbox ul,
.bb-contact__form .wpforms-field-gdpr-checkbox ul {
	margin: 25px 0 0;
	padding: 0;
	list-style: none;
}
.bb-contact__form .wpforms-field-checkbox li,
.bb-contact__form .wpforms-field-gdpr-checkbox li {
	display: flex;
	gap: 20px;
	align-items: flex-start;
}
.bb-contact__form input[type="checkbox"] {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--bb-teal);
	cursor: pointer;
}
.bb-contact__form .wpforms-field-checkbox label,
.bb-contact__form .wpforms-field-gdpr-checkbox label {
	cursor: pointer;
}
.bb-contact__form .wpforms-submit-container {
	margin-top: 25px;
	padding: 0;
	text-align: center;
}
.bb-contact__form button[type="submit"] {
	height: 50px;
	padding: 0 30px;
	border: 0;
	border-radius: 0;
	background: url(../img/button.webp) no-repeat center / 100% 100%;
	color: var(--wp--preset--color--white);
	font: inherit;
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 50px;
	cursor: pointer;
}
.bb-contact__form label.wpforms-error,
.bb-contact__form .wpforms-error {
	color: #a4262c;
	font-size: var(--wp--preset--font-size--small);
}
.bb-contact__form .wpforms-confirmation-container-full {
	margin: 0;
	padding: 25px;
	border: 0;
	background: var(--wp--preset--color--white);
	color: var(--bb-black);
	text-align: center;
	font-weight: 600;
}
@media (min-width: 800px) {
	.bb-contact__form .wpforms-submit-container {
		margin-top: 40px;
	}
}
