/*!
 * MZD Kooke - cookie consent banner. (c) Maze Digital - https://www.maze-digital.com/
 * Colours, sizes and font come from CSS custom properties printed from the settings
 * (.mzd-kooke { --kooke-*: ... }). Doubled selectors (.mzd-kooke.mzd-kooke) win over
 * theme / page builder button styles.
 */

.mzd-kooke {
	--kooke-bg: #ffffff;
	--kooke-title: #202a26;
	--kooke-text: #6b716e;
	--kooke-link: #6b716e;
	--kooke-line: #e7e9e8;
	--kooke-btn-bg: #202a26;
	--kooke-btn-text: #ffffff;
	--kooke-btn-bg-hover: #384641;
	--kooke-btn-text-hover: #ffffff;
	--kooke-width: 420px;
	--kooke-radius: 18px;
	--kooke-btn-radius: 10px;
	--kooke-backdrop: rgba(32, 42, 38, .28);
	--kooke-blur: 6px;
	--kooke-gap: 20px;
	position: fixed;
	z-index: 2147483000;
	box-sizing: border-box;
	width: min(var(--kooke-width), calc(100% - 32px));
	max-width: none;
	max-height: calc(100dvh - 32px);
	margin: auto;
	padding: 0;
	overflow-y: auto;
	border: 0;
	border-radius: var(--kooke-radius);
	background: var(--kooke-bg);
	color: var(--kooke-text);
	box-shadow: 0 24px 70px rgba(18, 26, 22, .22), 0 2px 8px rgba(18, 26, 22, .08);
	font-family: var(--kooke-font, inherit);
	text-align: left;
}
.mzd-kooke *, .mzd-kooke *::before, .mzd-kooke *::after { box-sizing: border-box; }
.mzd-kooke:not([open]) { display: none; }

/* ------------------------------------------------------------ positions */
.mzd-kooke.mzd-kooke--pos-center { inset: 0; }
.mzd-kooke.mzd-kooke--pos-bottom-left { inset: auto auto var(--kooke-gap) var(--kooke-gap); margin: 0; }
.mzd-kooke.mzd-kooke--pos-bottom-right { inset: auto var(--kooke-gap) var(--kooke-gap) auto; margin: 0; }
.mzd-kooke.mzd-kooke--pos-bottom-center,
.mzd-kooke.mzd-kooke--pos-inline { inset: auto 0 var(--kooke-gap); margin: 0 auto; }
.mzd-kooke.mzd-kooke--pos-bar { inset: auto 0 0; width: 100%; max-height: 80dvh; margin: 0; border-radius: var(--kooke-radius) var(--kooke-radius) 0 0; }

/* ------------------------------------------------------------ backdrops */
.mzd-kooke--backdrop-blur::backdrop { background: var(--kooke-backdrop); -webkit-backdrop-filter: blur(var(--kooke-blur)); backdrop-filter: blur(var(--kooke-blur)); }
.mzd-kooke--backdrop-dim::backdrop { background: var(--kooke-backdrop); }
.mzd-kooke--backdrop-none::backdrop { background: rgba(0, 0, 0, .12); }

/* ---------------------------------------------------------------- body */
.mzd-kooke .mzd-kooke__body { padding: 28px 28px 22px; }
.mzd-kooke.mzd-kooke--panel { inset: 0; width: min(max(var(--kooke-width), 520px), calc(100% - 32px)); }

.mzd-kooke.mzd-kooke .mzd-kooke__title {
	margin: 0 0 18px;
	padding: 0;
	color: var(--kooke-title);
	font: 700 19px/1.3 var(--kooke-font, inherit);
	letter-spacing: 0;
	text-transform: none;
}
.mzd-kooke .mzd-kooke__title:focus { outline: none; }
.mzd-kooke.mzd-kooke .mzd-kooke__text { margin: 0 0 22px; color: var(--kooke-text); font: 400 15.5px/1.6 var(--kooke-font, inherit); }

.mzd-kooke .mzd-kooke__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mzd-kooke.mzd-kooke .mzd-kooke__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 10px 14px;
	border: 0;
	border-radius: var(--kooke-btn-radius);
	background: var(--kooke-btn-bg);
	box-shadow: none;
	color: var(--kooke-btn-text);
	font: 700 15px/1.2 var(--kooke-font, inherit);
	letter-spacing: 0;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}
.mzd-kooke.mzd-kooke .mzd-kooke__btn:hover,
.mzd-kooke.mzd-kooke .mzd-kooke__btn:focus-visible { background: var(--kooke-btn-bg-hover); color: var(--kooke-btn-text-hover); }

.mzd-kooke.mzd-kooke .mzd-kooke__link {
	display: block;
	width: auto;
	min-height: 0;
	margin: 18px auto 0;
	padding: 4px 8px;
	border: 0;
	border-radius: 6px;
	background: none;
	box-shadow: none;
	color: var(--kooke-link);
	font: 600 15.5px/1.4 var(--kooke-font, inherit);
	letter-spacing: 0;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-align: center;
	text-underline-offset: 4px;
	text-transform: none;
	cursor: pointer;
}
.mzd-kooke.mzd-kooke .mzd-kooke__link:hover { background: none; color: var(--kooke-title); }

.mzd-kooke .mzd-kooke__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 30px; padding: 14px 20px 16px; border-top: 1px solid var(--kooke-line); }
.mzd-kooke.mzd-kooke .mzd-kooke__links a { color: var(--kooke-link); font: 600 13px/1.4 var(--kooke-font, inherit); text-decoration: none; }
.mzd-kooke.mzd-kooke .mzd-kooke__links a:hover { color: var(--kooke-title); text-decoration: underline; }

/* -------------------------------------------------------- bar layout */
@media (min-width: 900px) {
	.mzd-kooke--pos-bar .mzd-kooke__body { display: flex; align-items: center; gap: 40px; max-width: 1240px; margin: 0 auto; padding: 22px 30px; }
	.mzd-kooke--pos-bar .mzd-kooke__content { flex: 1; }
	.mzd-kooke.mzd-kooke--pos-bar .mzd-kooke__title { margin-bottom: 6px; }
	.mzd-kooke.mzd-kooke--pos-bar .mzd-kooke__text { margin: 0; }
	.mzd-kooke--pos-bar .mzd-kooke__controls { display: flex; flex-shrink: 0; align-items: center; gap: 16px; }
	.mzd-kooke--pos-bar .mzd-kooke__actions { grid-template-columns: auto auto; }
	.mzd-kooke.mzd-kooke--pos-bar .mzd-kooke__btn { padding: 10px 22px; }
	.mzd-kooke.mzd-kooke--pos-bar .mzd-kooke__link { margin: 0; }
	.mzd-kooke--pos-bar .mzd-kooke__links { max-width: 1240px; margin: 0 auto; padding: 10px 30px 14px; justify-content: flex-start; }
}

/* ---------------------------------------------------- preferences panel */
.mzd-kooke .mzd-kooke__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.mzd-kooke.mzd-kooke .mzd-kooke__heading .mzd-kooke__title { margin: 0; }
.mzd-kooke.mzd-kooke .mzd-kooke__close {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .05);
	box-shadow: none;
	color: var(--kooke-title);
	font: 400 24px/1 var(--kooke-font, inherit);
	cursor: pointer;
}
.mzd-kooke.mzd-kooke .mzd-kooke__close:hover { background: rgba(0, 0, 0, .1); color: var(--kooke-title); }
.mzd-kooke .mzd-kooke__options { margin-bottom: 22px; border-bottom: 1px solid var(--kooke-line); }
.mzd-kooke .mzd-kooke__category { border-top: 1px solid var(--kooke-line); }
.mzd-kooke .mzd-kooke__option { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0; padding: 15px 0; cursor: pointer; }
.mzd-kooke div.mzd-kooke__option { cursor: default; }
.mzd-kooke .mzd-kooke__option strong { display: block; color: var(--kooke-title); font: 700 15px/1.4 var(--kooke-font, inherit); }
.mzd-kooke .mzd-kooke__option small { display: block; margin-top: 4px; color: var(--kooke-text); font: 400 13px/1.55 var(--kooke-font, inherit); }
.mzd-kooke .mzd-kooke__services { margin: -6px 0 14px; padding: 0 0 0 12px; list-style: none; border-left: 2px solid var(--kooke-line); }
.mzd-kooke .mzd-kooke__services li { margin: 0; padding: 4px 0; line-height: 1.45; }
.mzd-kooke .mzd-kooke__services strong { display: inline; color: var(--kooke-title); font: 600 13px/1.45 var(--kooke-font, inherit); }
.mzd-kooke .mzd-kooke__provider { color: var(--kooke-text); font: 400 12px/1.45 var(--kooke-font, inherit); }
.mzd-kooke .mzd-kooke__provider::before { content: "· "; }
.mzd-kooke .mzd-kooke__services small { display: block; margin-top: 1px; color: var(--kooke-text); font: 400 12px/1.5 var(--kooke-font, inherit); }
.mzd-kooke .mzd-kooke__fixed { flex-shrink: 0; color: var(--kooke-text); font: 600 12px/1.3 var(--kooke-font, inherit); white-space: nowrap; }

.mzd-kooke.mzd-kooke .mzd-kooke__switch {
	position: relative;
	flex-shrink: 0;
	width: 44px;
	height: 26px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 13px;
	background: #cfd5d2;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color .2s ease;
}
.mzd-kooke .mzd-kooke__switch::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .2);
	transition: transform .2s ease;
}
.mzd-kooke.mzd-kooke .mzd-kooke__switch:checked { background: var(--kooke-btn-bg); }
.mzd-kooke .mzd-kooke__switch:checked::after { transform: translateX(18px); }

.mzd-kooke.mzd-kooke .mzd-kooke__status { margin: 10px 0 0; color: var(--kooke-title); font: 400 13px/1.5 var(--kooke-font, inherit); text-align: center; }
.mzd-kooke .mzd-kooke__status:empty { display: none; }

.mzd-kooke button:focus-visible, .mzd-kooke a:focus-visible, .mzd-kooke input:focus-visible { outline: 2px solid var(--kooke-btn-bg); outline-offset: 3px; }

/* --------------------------------------------------------------- mobile */
@media (max-width: 600px) {
	.mzd-kooke { --kooke-gap: 12px; }
	.mzd-kooke.mzd-kooke--pos-bottom-left,
	.mzd-kooke.mzd-kooke--pos-bottom-right,
	.mzd-kooke.mzd-kooke--pos-bottom-center,
	.mzd-kooke.mzd-kooke--pos-inline { inset: auto 0 var(--kooke-gap); width: calc(100% - 24px); margin: 0 auto; }
	.mzd-kooke .mzd-kooke__body { padding: 24px 20px 18px; }
	.mzd-kooke.mzd-kooke .mzd-kooke__text { font-size: 15px; }
	.mzd-kooke.mzd-kooke .mzd-kooke__btn { padding: 10px 8px; font-size: 14.5px; }
}

@media (prefers-reduced-motion: reduce) {
	.mzd-kooke *, .mzd-kooke *::after { transition: none !important; }
}
