/* Dam Writers Chat 1.3.1 - launcher only (the panel CSS loads on first click). Design G5 (owner rev 5).
   The guide robot sits in a docking ring; on wide screens a white pill line is joined to it.
   Bottom-right, 20 px + safe area. z-index 61: above scroll-to-top (60, centred pill), below the
   cookie banner (2147483000). Hidden while the banner is open (html.dwc-open).
   Phones: the round robot only. Below 380 px the centred "Back to top" pill could touch it, so there
   the launcher sits at a fixed height clear of the pill (never jumps).
   The pill line shows from 1100 px: below that the line and the Back-to-top pill (EN and NL) would
   meet on tablets. Everything is scoped under .dwcb / .dwcb-*. */
.dwcb {
	display: none;
	--dwcb-pink: #d02878;
	--dwcb-pink-dark: #a81e5d;
	--dwcb-hot: #e8418e;
	--dwcb-soft: #fdf4f8;
	--dwcb-tint: #fce9f1;
	--dwcb-ink: #161e29;
	--dwcb-body: #515967;
	--dwcb-sans: var(--wp--preset--font-family--sans, Montserrat, ui-sans-serif, system-ui, sans-serif);
	--dwcb-mono: var(--wp--preset--font-family--mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
}
.dwcb.dwcb--ready { display: block; }
.dwcb-launcher {
	position: fixed;
	z-index: 61;
	right: calc(20px + env(safe-area-inset-right, 0px));
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	display: inline-flex;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	font: 700 15px/1 var(--dwcb-sans);
	color: var(--dwcb-ink);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	color-scheme: only light;
	text-transform: none;
	letter-spacing: normal;
}
.dwcb-launcher *, .dwcb-tz * { box-sizing: border-box; }
/* The robot in its docking ring */
.dwcb-launcher__icon {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 40%, #222b40, #0a0f1b 70%);
	box-shadow: 0 0 0 2px var(--dwcb-hot), 0 0 22px rgba(232, 65, 142, .65), 0 10px 26px -6px rgba(7, 11, 20, .7), inset 0 0 14px rgba(232, 65, 142, .35);
	overflow: visible;
}
.dwcb-ln-ring { position: absolute; inset: -6px; border-radius: 50%; border: 1px dashed rgba(127, 227, 200, .6); pointer-events: none; }
.dwcb-ln-head { position: relative; display: block; width: 46px; height: 46px; margin-top: 2px; transform: rotate(var(--dwcb-tilt, 0deg)); transition: transform .3s ease-out; }
.dwcb-ln-head .dwcb-robot { display: block; width: 46px; height: 46px; filter: drop-shadow(0 0 8px rgba(232, 65, 142, .5)); }
.dwcb-ln-x { display: none; place-items: center; color: #fff; }
.dwcb-ln-x svg { width: 26px; height: 26px; }
.dwcb-launcher__test {
	position: absolute;
	right: -10px;
	bottom: -7px;
	z-index: 2;
	padding: 2px 5px;
	border-radius: 6px;
	background: var(--dwcb-ink);
	color: #fff;
	box-shadow: 0 0 0 1.5px #fff;
	font: 700 9.5px/1.2 var(--dwcb-mono);
	letter-spacing: .08em;
	pointer-events: none;
}
/* Robot parts: eyes follow the cursor, blink; the arm only shows during the intro */
.dwcb-robot { overflow: visible; }
.dwcb-robot__look { transform: translate(var(--dwcb-lx, 0px), var(--dwcb-ly, 0px)); transition: transform .25s ease-out; }
.dwcb-robot__eyes { transform-origin: 32px 31px; }
.dwcb-robot__ant { filter: drop-shadow(0 0 3px #e8418e); }
.dwcb-robot__mouth { transform-box: fill-box; transform-origin: 50% 0; transition: transform .2s ease; }
.dwcb-launcher:hover .dwcb-robot__look, .dwcb-launcher:focus-visible .dwcb-robot__look { transform: translate(0, -1.8px); }
.dwcb-launcher:hover .dwcb-robot__mouth, .dwcb-launcher:focus-visible .dwcb-robot__mouth { transform: scale(1.3, 1.9); }
.dwcb-ln-arm { position: absolute; z-index: -1; right: -7px; top: 15px; width: 14px; height: 24px; transform-origin: 50% 100%; transform: rotate(30deg) translateY(14px) scale(.3); opacity: 0; pointer-events: none; }
.dwcb-ln-arm::before { content: ""; position: absolute; left: 4.5px; bottom: 0; width: 5px; height: 15px; border-radius: 3px; background: #e8418e; }
.dwcb-ln-arm i { position: absolute; left: 0; top: 0; width: 14px; height: 13px; border-radius: 7px 7px 6px 6px; background: linear-gradient(180deg, #fff3f8, #f7c3da); box-shadow: 0 0 0 1.3px #e8418e; }
.dwcb-ln-arm i::before { content: ""; position: absolute; left: -3px; top: 5px; width: 5px; height: 4px; border-radius: 3px; background: #ffe9f2; box-shadow: 0 0 0 1.2px #e8418e; transform: rotate(-30deg); }
/* Intro: the robot peeks up out of its ring and waves */
.dwcb-launcher.dwcb-is-hi .dwcb-ln-head { transform: translateY(-15px) rotate(-6deg); }
.dwcb-launcher.dwcb-is-hi .dwcb-ln-arm { opacity: 1; transform: rotate(24deg); }
/* Open (desktop): the ring shows a chevron; the pill line hides */
.dwcb-launcher[aria-expanded="true"] .dwcb-launcher__label,
.dwcb-launcher[aria-expanded="true"] .dwcb-ln-head { display: none; }
.dwcb-launcher[aria-expanded="true"] .dwcb-ln-x { display: grid; }
/* Pill line (hidden on narrow screens; the button keeps its accessible name) */
.dwcb-launcher__label { display: none; }
.dwcb-launcher:focus { outline: none; }
.dwcb-launcher:focus-visible .dwcb-launcher__icon { outline: 3px solid var(--dwcb-ink); outline-offset: 5px; }
@media (min-width: 768px) {
	.dwcb-launcher__icon { width: 60px; height: 60px; }
}
@media (min-width: 1100px) {
	.dwcb-launcher { transition: transform .25s cubic-bezier(.2, .8, .2, 1); }
	.dwcb-launcher__label {
		position: relative;
		display: inline-flex;
		align-items: center;
		gap: 10px;
		height: 50px;
		margin-right: -30px;
		padding: 0 42px 0 16px;
		border-radius: 999px;
		background: #fff;
		color: var(--dwcb-ink);
		font: 700 15px/1 var(--dwcb-sans);
		white-space: nowrap;
		box-shadow: inset 0 0 0 1.5px #f2b9d2, 0 10px 26px -10px rgba(168, 30, 93, .45), 0 2px 6px rgba(22, 30, 41, .08);
		transition: box-shadow .25s ease, background .25s ease;
	}
	.dwcb-ln-live { position: relative; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--dwcb-pink); }
	.dwcb-ln-live::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(232, 65, 142, .45); opacity: 0; }
	.dwcb-ln-txt { position: relative; display: inline-flex; align-items: center; height: 20px; white-space: nowrap; }
	.dwcb-ln-line { display: block; line-height: 20px; }
	.dwcb-ln-caret { display: inline-block; width: 2px; height: 17px; margin-left: 2px; background: var(--dwcb-pink); }
	.dwcb-ln-arr { display: grid; place-items: center; width: 0; height: 26px; margin-left: -10px; overflow: hidden; border-radius: 50%; color: #fff; background: var(--dwcb-pink); opacity: 0; transition: width .25s ease, margin .25s ease, opacity .2s ease; }
	.dwcb-ln-arr svg { flex: none; width: 15px; height: 15px; }
	.dwcb-launcher:hover, .dwcb-launcher:focus-visible { transform: translateY(-2px); }
	.dwcb-launcher:hover .dwcb-launcher__label, .dwcb-launcher:focus-visible .dwcb-launcher__label { background: var(--dwcb-soft); box-shadow: inset 0 0 0 2px var(--dwcb-pink), 0 14px 30px -10px rgba(208, 40, 120, .6), 0 0 22px -4px rgba(232, 65, 142, .45); }
	.dwcb-launcher:hover .dwcb-ln-arr, .dwcb-launcher:focus-visible .dwcb-ln-arr { width: 26px; margin-left: 0; opacity: 1; }
	.dwcb-launcher:focus-visible .dwcb-launcher__label { outline: 3px solid var(--dwcb-ink); outline-offset: 3px; }
}
@media (max-width: 379px) {
	/* Clear of the centred scroll-to-top pill (52 px high at 20 px from the bottom). */
	.dwcb-launcher { bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
}

/* ---- Intro bubble: "👋 Hi!" with a × (once per session) ---- */
.dwcb-tz {
	position: fixed;
	z-index: 62;
	right: calc(66px + env(safe-area-inset-right, 0px));
	bottom: calc(86px + env(safe-area-inset-bottom, 0px));
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(8px) scale(.96);
	transform-origin: 100% 100%;
	transition: opacity .3s ease, transform .35s cubic-bezier(.2, .9, .3, 1.3), visibility 0s .3s;
	font-family: var(--dwcb-sans);
}
.dwcb-tz.dwcb-is-on { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .3s ease, transform .35s cubic-bezier(.2, .9, .3, 1.3), visibility 0s; }
.dwcb-tz__open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	margin: 0;
	padding: 0 16px 0 12px;
	border: 0;
	border-radius: 999px;
	background: var(--dwcb-pink);
	color: #fff;
	font: 700 16px/1.25 var(--dwcb-sans);
	text-align: left;
	text-transform: none;
	letter-spacing: normal;
	cursor: pointer;
	box-shadow: 0 8px 20px -6px rgba(208, 40, 120, .6);
}
.dwcb-tz__wave { display: inline-block; font-size: 18px; transform-origin: 70% 80%; }
.dwcb-tz__x { position: absolute; right: -12px; top: -12px; display: grid; place-items: center; width: 24px; height: 24px; margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--dwcb-ink); color: #fff; cursor: pointer; box-shadow: 0 2px 6px rgba(22, 30, 41, .3); }
.dwcb-tz__x::before { content: ""; position: absolute; inset: -10px; } /* 44 px hit area */
.dwcb-tz__live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.dwcb-tz__x svg { width: 13px; height: 13px; }
.dwcb-tz :focus { outline: none; }
.dwcb-tz :focus-visible { outline: 3px solid var(--dwcb-ink); outline-offset: 3px; }
.dwcb-tz__x:focus-visible { outline-color: var(--dwcb-pink); }
.dwcb-tz__sparks { position: absolute; left: 50%; top: 50%; pointer-events: none; }
.dwcb-tz__sparks i { position: absolute; left: -5px; top: -5px; width: 11px; height: 11px; opacity: 0; background: #e8418e; clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.dwcb-tz__sparks i:nth-child(even) { background: #a81e5d; width: 7px; height: 7px; }
.dwcb-tz__sparks i:nth-child(3n) { background: #f49cc3; }
@media (min-width: 1100px) { .dwcb-tz { right: calc(82px + env(safe-area-inset-right, 0px)); bottom: calc(82px + env(safe-area-inset-bottom, 0px)); } }
@media (max-width: 379px) { .dwcb-tz { bottom: calc(134px + env(safe-area-inset-bottom, 0px)); } }

/* ---- Motion (only without reduced motion) ---- */
@media (prefers-reduced-motion: no-preference) {
	.dwcb-robot__eyes { animation: dwcb-blink 5s infinite; }
	.dwcb-ln-ring { animation: dwcb-spin 14s linear infinite; }
	/* Every pop (first + every ~3 s) restarts these: the class is removed and added again. */
	.dwcb-launcher.dwcb-is-hi .dwcb-ln-head { transition: transform .35s cubic-bezier(.2, .9, .3, 1.4); }
	.dwcb-launcher.dwcb-is-hi.dwcb-is-pop .dwcb-ln-head { animation: dwcb-peek .7s cubic-bezier(.2, .9, .3, 1.4) both; }
	.dwcb-launcher.dwcb-is-hi .dwcb-ln-arm { transition: opacity .2s ease, transform .3s cubic-bezier(.2, .9, .3, 1.4); }
	.dwcb-launcher.dwcb-is-hi.dwcb-is-pop .dwcb-ln-arm { animation: dwcb-arm .6s .2s ease-in-out 3 alternate; }
	.dwcb-tz.dwcb-is-on.dwcb-is-pop { animation: dwcb-spring .7s cubic-bezier(.2, 1.6, .4, 1) both; }
	.dwcb-tz.dwcb-is-on.dwcb-is-pop.dwcb-is-repeat { animation: dwcb-repop .6s cubic-bezier(.2, 1.4, .4, 1) both; }
	.dwcb-tz.dwcb-is-on.dwcb-is-pop .dwcb-tz__wave { animation: dwcb-hand .6s .2s ease-in-out 3 alternate; }
	.dwcb-tz.dwcb-is-on.dwcb-is-pop .dwcb-tz__sparks i { animation: dwcb-spark 1s .12s cubic-bezier(.2, .7, .3, 1) both; }
	.dwcb-tz.dwcb-is-on.dwcb-is-pop .dwcb-tz__sparks i:nth-child(odd) { animation-delay: .18s; }
	/* Repeats: lighter sparkles (four, smaller). */
	.dwcb-tz.dwcb-is-repeat .dwcb-tz__sparks i:nth-child(n+5) { display: none; }
	.dwcb-tz.dwcb-is-repeat .dwcb-tz__sparks i { width: 7px; height: 7px; }
}
@media (min-width: 1100px) and (prefers-reduced-motion: no-preference) {
	.dwcb-ln-live::after { animation: dwcb-live 2.4s ease-out infinite; }
	.dwcb-ln-caret { animation: dwcb-caret .8s steps(1) infinite; }
}
@media (prefers-reduced-motion: reduce) {
	.dwcb-launcher, .dwcb-launcher:hover, .dwcb-launcher:focus-visible { transform: none; transition: none; }
	.dwcb-launcher *, .dwcb-tz, .dwcb-tz * { animation: none !important; transition: none !important; }
	.dwcb-tz, .dwcb-tz.dwcb-is-on { transform: none; }
	.dwcb-tz__sparks { display: none; }
}
@keyframes dwcb-blink { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.1); } }
@keyframes dwcb-spin { to { transform: rotate(360deg); } }
@keyframes dwcb-peek { 0% { transform: translateY(6px); } 60% { transform: translateY(-19px) rotate(-8deg); } 100% { transform: translateY(-15px) rotate(-6deg); } }
@keyframes dwcb-arm { from { transform: rotate(4deg); } to { transform: rotate(46deg); } }
@keyframes dwcb-hand { from { transform: rotate(-12deg); } to { transform: rotate(22deg); } }
@keyframes dwcb-spring { 0% { transform: translateY(14px) scale(.4); opacity: 0; } 60% { transform: translateY(-4px) scale(1.08); opacity: 1; } 100% { transform: none; } }
@keyframes dwcb-spark { 0% { opacity: 0; transform: translate(0, 0) scale(.3) rotate(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1.2) rotate(90deg); } }
@keyframes dwcb-repop { 0% { transform: scale(.92); } 55% { transform: scale(1.05); } 100% { transform: none; } }
@keyframes dwcb-bounce { 0%, 100% { transform: none; } 30% { transform: translateY(-8px); } 55% { transform: translateY(0); } 72% { transform: translateY(-3px); } }
@keyframes dwcb-tilt { 30% { transform: rotate(-10deg) translateY(-3px); } 60% { transform: rotate(6deg); } }
@keyframes dwcb-live { 0% { transform: scale(.6); opacity: .9; } 80%, 100% { transform: scale(1.6); opacity: 0; } }
@keyframes dwcb-caret { 50% { opacity: 0; } }

/* 1.3.1: the launcher and the intro bubble pause while the page scrolls and while the panel is open. */
.dwcb.dwcb-is-scrolling .dwcb-launcher *, .dwcb.dwcb-is-scrolling .dwcb-tz, .dwcb.dwcb-is-scrolling .dwcb-tz *,
.dwcb-launcher[aria-expanded="true"] *, .dwcb-launcher[aria-expanded="true"] *::after { animation-play-state: paused !important; }
@media (max-width: 600px), (prefers-reduced-data: reduce) {
	.dwcb-ln-head .dwcb-robot, .dwcb-robot__ant { filter: none; }
}

/* ---- Hide paths ---- */
html.dwc-open .dwcb-launcher, html.dwc-open .dwcb-tz { display: none; }
.dwcb--sheet .dwcb-launcher, .dwcb--sheet .dwcb-tz { display: none; }
.dwcb--off .dwcb-launcher, .dwcb--off .dwcb-tz { display: none; }
@media (forced-colors: active) {
	.dwcb-launcher__icon, .dwcb-launcher__label, .dwcb-tz__open { border: 1px solid ButtonText; }
}
@media print { .dwcb { display: none !important; } }
