/* Boutik Consent */
.bc-root {
	--bc-bg: #fff;
	--bc-text: #1a1a1a;
	--bc-accent: #1a1a1a;
	--bc-accent-text: #fff;
	--bc-radius: 8px;
	--bc-shadow: 0 8px 32px rgba(0, 0, 0, .18);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	color: var(--bc-text);
}
.bc-root, .bc-root *, .bc-root *::before, .bc-root *::after { box-sizing: border-box; }
.bc-root [hidden] { display: none !important; }

.bc-banner {
	position: fixed;
	z-index: 2147483000;
	background: var(--bc-bg);
	color: var(--bc-text);
	box-shadow: var(--bc-shadow);
	padding: 24px;
	margin: 0;
	border: 0;
}
.bc-banner--bar {
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	align-items: center;
	justify-content: space-between;
}
.bc-banner--bar .bc-banner__body { flex: 1 1 480px; max-width: 75ch; }
.bc-banner--box {
	left: 16px;
	bottom: 16px;
	width: min(440px, calc(100vw - 32px));
	border-radius: var(--bc-radius);
}
.bc-banner--modal {
	width: min(560px, calc(100vw - 32px));
	border-radius: var(--bc-radius);
	position: fixed;
	inset: 0;
	margin: auto;
	height: fit-content;
}
.bc-banner--modal::backdrop, .bc-prefs::backdrop { background: rgba(0, 0, 0, .5); }

.bc-root .bc-title {
	font-size: 18px;
	line-height: 1.3;
	font-weight: 600;
	margin: 0 0 8px;
	color: inherit;
	letter-spacing: 0;
	text-transform: none;
}
.bc-message { margin: 0 0 8px; }
.bc-links { margin: 0; font-size: 14px; }
.bc-root a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

.bc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.bc-banner--bar .bc-actions { margin-top: 0; }
.bc-banner--box .bc-actions .bc-btn { flex: 1 1 auto; }

.bc-root .bc-btn {
	appearance: none;
	font: inherit;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.2;
	min-height: 44px;
	padding: 12px 20px;
	border-radius: 6px;
	border: 2px solid var(--bc-accent);
	background: var(--bc-accent);
	color: var(--bc-accent-text);
	cursor: pointer;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
}
.bc-root .bc-btn--ghost { background: transparent; color: var(--bc-text); border-color: currentColor; }
.bc-root .bc-btn:hover { filter: brightness(1.15); }
.bc-root .bc-btn:focus-visible, .bc-root .bc-link:focus-visible, .bc-close:focus-visible, .bc-float:focus-visible, .bc-switch input:focus-visible + .bc-switch__track {
	outline: 3px solid var(--bc-accent);
	outline-offset: 2px;
}
.bc-root .bc-link {
	appearance: none;
	background: none;
	border: 0;
	padding: 4px 0;
	font: inherit;
	font-size: 14px;
	color: inherit;
	text-decoration: underline;
	cursor: pointer;
}

/* Preferences dialog */
.bc-prefs {
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	padding: 0;
	border: 0;
	border-radius: var(--bc-radius);
	background: var(--bc-bg);
	color: var(--bc-text);
	box-shadow: var(--bc-shadow);
	z-index: 2147483001;
}
.bc-prefs[open] { display: flex; }
.bc-prefs__form { display: flex; flex-direction: column; width: 100%; max-height: calc(100vh - 32px); margin: 0; }
.bc-prefs__head { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px 12px; }
.bc-prefs__head .bc-title { margin: 0; }
.bc-prefs__body { overflow-y: auto; padding: 0 24px; }
.bc-prefs__foot { padding: 16px 24px 24px; border-top: 1px solid rgba(127, 127, 127, .3); }
.bc-consent-id { font-size: 13px; margin: 0 0 8px; opacity: .8; }
.bc-consent-id code { font-size: 12px; word-break: break-all; }
.bc-close {
	appearance: none;
	background: none;
	border: 0;
	color: inherit;
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	cursor: pointer;
	border-radius: 6px;
	margin-right: -12px;
}

.bc-cat { padding: 16px 0; border-top: 1px solid rgba(127, 127, 127, .3); }
.bc-cat:first-child { border-top: 0; }
.bc-cat__desc { margin: 8px 0 0 56px; font-size: 14px; }
.bc-cat__services { margin: 8px 0 0 56px; font-size: 14px; }
.bc-cat__services summary { cursor: pointer; min-height: 32px; display: list-item; }
.bc-cat__services ul { margin: 4px 0 0; padding-left: 20px; }
.bc-cat__label { font-weight: 600; }
.bc-cat__always { font-size: 13px; opacity: .75; margin-left: auto; }

.bc-switch { display: flex; align-items: center; gap: 12px; cursor: pointer; min-height: 44px; }
.bc-switch input { position: absolute; opacity: 0; width: 44px; height: 24px; margin: 0; }
.bc-switch__track {
	flex: 0 0 44px;
	height: 24px;
	border-radius: 12px;
	background: rgba(127, 127, 127, .5);
	position: relative;
	transition: background .2s;
}
.bc-switch__track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	transition: transform .2s;
}
.bc-switch input:checked + .bc-switch__track { background: var(--bc-accent); }
.bc-switch input:checked + .bc-switch__track::after { transform: translateX(20px); }
.bc-switch input:disabled + .bc-switch__track { opacity: .6; }
.bc-switch input:disabled ~ * { cursor: default; }

/* Floating button */
.bc-float {
	position: fixed;
	left: 16px;
	bottom: 16px;
	z-index: 2147482999;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 0;
	background: var(--bc-accent);
	color: var(--bc-accent-text);
	display: grid;
	place-items: center;
	cursor: pointer;
	box-shadow: var(--bc-shadow);
	padding: 0;
}

/* Placeholder for blocked embeds */
.bc-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	text-align: center;
	width: 100%;
	min-height: 200px;
	aspect-ratio: 16 / 9;
	padding: 24px;
	background: #f2f2f2;
	color: #1a1a1a;
	border-radius: 4px;
}
.bc-placeholder p { margin: 0; max-width: 52ch; font-size: 14px; }
.elementor-widget-video .bc-placeholder { position: absolute; inset: 0; z-index: 2; height: 100%; }

.bc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 600px) {
	.bc-banner { padding: 20px 16px; }
	.bc-banner--box { left: 8px; right: 8px; bottom: 8px; width: auto; }
	.bc-actions .bc-btn { flex: 1 1 100%; }
	.bc-cat__desc, .bc-cat__services { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.bc-switch__track, .bc-switch__track::after { transition: none; }
}

/* Notice in forms protected by a blocked CAPTCHA */
.bc-form-notice {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 0 0 16px;
	padding: 12px 16px;
	border: 2px solid rgba(127, 127, 127, .4);
	border-radius: 6px;
	font-size: 14px;
	color: inherit;
}
.bc-form-notice p { margin: 0; flex: 1 1 240px; }
.bc-form-notice--alert { border-color: var(--bc-accent); }
.bc-form-notice:focus { outline: 3px solid var(--bc-accent); outline-offset: 2px; }

/* Cookie Policy tables */
.bc-policy__table { margin: 0 0 24px; }
.bc-policy table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.4; }
.bc-policy th, .bc-policy td { text-align: left; vertical-align: top; padding: 8px 12px 8px 0; border-bottom: 1px solid rgba(127, 127, 127, .3); }
.bc-policy th { font-weight: 600; white-space: nowrap; }
.bc-policy td code { font-size: 13px; word-break: break-all; }
.bc-policy td:first-child { min-width: 9em; }
.bc-policy td:nth-child(3) { min-width: 14em; }
.bc-policy__activity { display: grid; grid-template-columns: minmax(8em, 12em) 1fr; gap: 6px 16px; margin: 0 0 24px; }
.bc-policy__activity dt { font-weight: 600; }
.bc-policy__activity dd { margin: 0; }
@media (max-width: 600px) { .bc-policy__activity { grid-template-columns: 1fr; } .bc-policy__activity dd { margin-bottom: 8px; } }
