/* =========================================================================
   Matrix Insight — cookies & consent banner
   Deliberately self-contained: it has to look right even if the theme is
   swapped, and it must never inherit a style that hides a button.
   ========================================================================= */

.mi-cc{
	--cc-navy:#0b1f3a;
	--cc-blue:#1268e8;
	--cc-blue-2:#2f8bff;
	--cc-ink:#3d4a5c;
	--cc-line:#e3e8ef;
	--cc-bg:#f6f8fb;
	position:fixed;
	inset:0;
	z-index:2147483000;
	display:flex;
	font-family:inherit;
}
.mi-cc[hidden]{display:none}
html.mi-cc-open{overflow:hidden}

.mi-cc-backdrop{
	position:absolute;inset:0;
	background:rgba(9,20,38,.55);
	backdrop-filter:blur(2px);
	-webkit-backdrop-filter:blur(2px);
}

.mi-cc-box{
	position:relative;
	background:#fff;
	border-radius:20px;
	box-shadow:0 30px 80px rgba(9,20,38,.3),0 2px 8px rgba(9,20,38,.12);
	width:min(600px,calc(100vw - 32px));
	max-height:calc(100vh - 32px);
	overflow:auto;
	margin:auto;
	padding:30px 32px 26px;
	-webkit-overflow-scrolling:touch;
}

/* Bottom-left card — the default, least intrusive and still unmissable. */
.mi-cc-corner{align-items:flex-end;justify-content:flex-start}
.mi-cc-corner .mi-cc-backdrop{background:rgba(9,20,38,.35)}
.mi-cc-corner .mi-cc-box{margin:0 0 20px 20px}

/* Full-width bar. */
.mi-cc-bar{align-items:flex-end}
.mi-cc-bar .mi-cc-box{width:min(1180px,calc(100vw - 32px));margin:0 auto 16px;border-radius:18px}
.mi-cc-bar [data-pane="intro"]{display:grid;grid-template-columns:1fr auto;gap:10px 34px;align-items:center}
.mi-cc-bar [data-pane="intro"] .mi-cc-logo{grid-column:1;margin-bottom:6px}
.mi-cc-bar [data-pane="intro"] .mi-cc-actions{grid-column:2;grid-row:1 / span 4;flex-direction:column;align-self:center;min-width:230px}
.mi-cc-bar [data-pane="intro"] .mi-cc-more,
.mi-cc-bar [data-pane="intro"] .mi-cc-links{grid-column:1;text-align:left;width:auto;justify-self:start}
.mi-cc-bar [data-pane="intro"] .mi-cc-more{padding-left:0}

/* Centred. */
.mi-cc-centre{align-items:center;justify-content:center}

/* ---- intro pane ------------------------------------------------------- */

.mi-cc-pane{display:block}
.mi-cc-pane[hidden]{display:none}

.mi-cc-logo{display:block;width:auto;height:40px;margin:0 0 16px}
.mi-cc-logo-sm{height:30px;margin:0}

.mi-cc-box h2{
	margin:0 0 10px;
	font-size:21px;
	line-height:1.28;
	font-weight:800;
	color:var(--cc-navy);
	letter-spacing:-.01em;
}
.mi-cc-box p{margin:0 0 12px;font-size:14.5px;line-height:1.62;color:var(--cc-ink)}
.mi-cc-box p strong{color:var(--cc-navy)}
.mi-cc-note{
	font-size:12.8px!important;
	line-height:1.55!important;
	color:#6b7a90!important;
	background:var(--cc-bg);
	border:1px solid var(--cc-line);
	border-radius:11px;
	padding:10px 13px;
}

/* ---- buttons ---------------------------------------------------------- */

.mi-cc-actions{
	display:flex;
	gap:10px;
	margin:16px 0 10px;
}
.mi-cc-btn{
	flex:1 1 0;
	min-height:46px;
	padding:12px 16px;
	border-radius:12px;
	border:1.5px solid transparent;
	font:inherit;
	font-size:14.5px;
	font-weight:700;
	line-height:1.2;
	cursor:pointer;
	text-align:center;
	transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}
.mi-cc-btn:focus-visible{outline:3px solid var(--cc-blue-2);outline-offset:2px}
.mi-cc-btn:active{transform:translateY(1px)}

/* Reject and Accept are the same size and weight on purpose: a German court
   will throw out a banner where saying no is harder than saying yes. */
.mi-cc-btn-deny{
	background:#fff;
	color:var(--cc-navy);
	border-color:#c7d2e0;
}
.mi-cc-btn-deny:hover{background:var(--cc-bg);border-color:#a9bace}
.mi-cc-btn-allow{
	background:linear-gradient(135deg,var(--cc-blue),var(--cc-blue-2));
	color:#fff;
	box-shadow:0 8px 20px rgba(18,104,232,.28);
}
.mi-cc-btn-allow:hover{box-shadow:0 10px 26px rgba(18,104,232,.36)}
.mi-cc-btn-save{
	background:var(--cc-navy);
	color:#fff;
}
.mi-cc-btn-save:hover{background:#15325a}

.mi-cc-more{
	display:block;
	width:100%;
	margin:0 0 10px;
	padding:8px 4px;
	background:none;
	border:0;
	font:inherit;
	font-size:13.5px;
	font-weight:600;
	color:var(--cc-blue);
	text-decoration:underline;
	text-underline-offset:3px;
	cursor:pointer;
}
.mi-cc-more:hover{color:var(--cc-navy)}
.mi-cc-more:focus-visible{outline:3px solid var(--cc-blue-2);outline-offset:2px;border-radius:6px}

.mi-cc-links{
	margin:0!important;
	font-size:12.5px!important;
	color:#8a97a8!important;
	text-align:center;
}
.mi-cc-links a{color:#6b7a90;text-decoration:underline;text-underline-offset:2px}
.mi-cc-links a:hover{color:var(--cc-blue)}
.mi-cc-links span{margin:0 5px}

.mi-cc-ref{
	margin:8px 0 0!important;
	font-size:11.5px!important;
	color:#9aa6b6!important;
	text-align:center;
}

/* ---- settings pane ---------------------------------------------------- */

.mi-cc-head{display:flex;align-items:center;gap:14px;margin:0 0 16px}
.mi-cc-head h2{margin:0}

/* The list scrolls when there are more groups than fit; the fade at the
   bottom is the only hint people reliably notice. */
.mi-cc-groups-wrap{position:relative}
.mi-cc-groups-wrap::after{
	content:"";
	position:absolute;left:0;right:0;bottom:0;height:34px;
	background:linear-gradient(to top,#fff,rgba(255,255,255,0));
	pointer-events:none;
	opacity:1;
	transition:opacity .2s ease;
}
.mi-cc-groups-wrap.is-end::after{opacity:0}
.mi-cc-groups{
	max-height:min(50vh,420px);
	overflow:auto;
	margin:0 -6px 4px;
	padding:0 6px 6px;
	scrollbar-width:thin;
}
.mi-cc-group{
	border:1px solid var(--cc-line);
	border-radius:14px;
	padding:14px 16px;
	margin:0 0 10px;
	background:#fff;
}
.mi-cc-group-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mi-cc-always{
	font-size:11px;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#1a7f37;
	background:#e6f4ea;
	border-radius:999px;
	padding:3px 9px;
	white-space:nowrap;
}
.mi-cc-why{margin:9px 0 0!important;font-size:13.2px!important;line-height:1.58!important;color:#6b7a90!important}

/* The switch */
.mi-cc-switch{display:flex;align-items:center;gap:11px;cursor:pointer}
.mi-cc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.mi-cc-track{
	flex:0 0 44px;
	width:44px;height:25px;
	border-radius:999px;
	background:#cdd6e2;
	position:relative;
	transition:background .2s ease;
}
.mi-cc-track::after{
	content:"";
	position:absolute;top:3px;left:3px;
	width:19px;height:19px;
	border-radius:50%;
	background:#fff;
	box-shadow:0 1px 3px rgba(9,20,38,.3);
	transition:transform .2s ease;
}
.mi-cc-switch input:checked + .mi-cc-track{background:var(--cc-blue)}
.mi-cc-switch input:checked + .mi-cc-track::after{transform:translateX(19px)}
.mi-cc-switch input:disabled + .mi-cc-track{background:#9fd4b1;cursor:not-allowed}
.mi-cc-switch input:focus-visible + .mi-cc-track{outline:3px solid var(--cc-blue-2);outline-offset:2px}
.mi-cc-name{font-size:15px;font-weight:700;color:var(--cc-navy)}

.mi-cc-services{margin:10px 0 0;border-top:1px solid var(--cc-line);padding-top:9px}
.mi-cc-services > summary{
	cursor:pointer;
	font-size:12.5px;
	font-weight:700;
	color:var(--cc-blue);
	list-style:none;
}
.mi-cc-services > summary::-webkit-details-marker{display:none}
.mi-cc-services > summary::before{content:"+ ";font-weight:800}
.mi-cc-services[open] > summary::before{content:"– "}
.mi-cc-service{margin:11px 0 0;padding:11px 13px;background:var(--cc-bg);border-radius:10px}
.mi-cc-service strong{display:block;font-size:13.5px;color:var(--cc-navy);margin-bottom:5px}
.mi-cc-service dl{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-size:12.2px;line-height:1.5}
.mi-cc-service dt{color:#8a97a8;white-space:nowrap}
.mi-cc-service dd{margin:0;color:var(--cc-ink);overflow-wrap:anywhere}

/* ---- the small corner button ------------------------------------------ */

.mi-cc-float{
	position:fixed;
	left:16px;bottom:16px;
	z-index:2147482000;
	width:42px;height:42px;
	border-radius:50%;
	border:1px solid var(--cc-line, #e3e8ef);
	background:#fff;
	color:#6b7a90;
	font-size:19px;
	line-height:1;
	cursor:pointer;
	box-shadow:0 6px 18px rgba(9,20,38,.14);
	transition:transform .18s ease,color .18s ease;
}
.mi-cc-float[hidden]{display:none}
.mi-cc-float:hover{transform:rotate(45deg);color:#1268e8}
.mi-cc-float:focus-visible{outline:3px solid #2f8bff;outline-offset:2px}

/* ---- blocked embeds ---------------------------------------------------- */

.mi-cc-embed{
	position:relative;
	border-radius:16px;
	overflow:hidden;
	background:linear-gradient(135deg,#0b1f3a,#16437f);
	aspect-ratio:16/9;
	margin:0 0 24px;
}
.mi-cc-embed iframe{width:100%;height:100%;border:0;display:block}
.mi-cc-embed-ask{
	position:absolute;inset:0;
	display:flex;flex-direction:column;align-items:center;justify-content:center;
	gap:4px;
	text-align:center;
	padding:22px;
	color:#fff;
}
.mi-cc-embed-ask p{margin:0 0 6px;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.85);max-width:44ch}
.mi-cc-embed-ask p strong{font-size:16px;color:#fff}
.mi-cc-embed-ask .mi-cc-btn{flex:0 0 auto;min-width:170px;margin-top:4px}
.mi-cc-embed-ask .mi-cc-more{color:#9ecbff;width:auto;margin:2px 0 0}
.mi-cc-embed.is-on .mi-cc-embed-ask{display:none}

/* ---- the cookie-policy table ------------------------------------------- */

.mi-cookie-table{margin:24px 0}
.mi-cookie-table h3{margin:26px 0 6px}
.mi-cookie-table table{width:100%;border-collapse:collapse;margin:10px 0 0;font-size:14px}
.mi-cookie-table th,.mi-cookie-table td{border:1px solid var(--mi-line,#e3e8ef);padding:9px 11px;text-align:left;vertical-align:top}
.mi-cookie-table th{background:var(--mi-bg,#f6f8fb);font-weight:700;font-size:13px}
.mi-cookie-table td small{color:#8a97a8}
.mi-cc-inline-link{
	background:none;border:0;padding:0;font:inherit;
	color:var(--mi-blue,#1268e8);text-decoration:underline;cursor:pointer;
}

/* ---- phones ------------------------------------------------------------ */

@media(max-width:640px){
	.mi-cc-corner,.mi-cc-bar{align-items:flex-end}
	.mi-cc-corner .mi-cc-box,.mi-cc-bar .mi-cc-box{
		margin:0 8px 8px;
		width:calc(100vw - 16px);
		border-radius:18px;
		padding:22px 20px 20px;
		max-height:calc(100vh - 24px);
	}
	.mi-cc-bar [data-pane="intro"]{display:block}
	.mi-cc-bar [data-pane="intro"] .mi-cc-actions{min-width:0}
	.mi-cc-box h2{font-size:19px}
	.mi-cc-box p{font-size:14px}
	.mi-cc-actions{flex-direction:column;gap:8px}
	.mi-cc-btn{width:100%}
	.mi-cc-logo{height:32px}
	.mi-cc-groups{max-height:52vh}
	.mi-cc-head{gap:10px}
	.mi-cc-service dl{grid-template-columns:1fr}
	.mi-cc-service dt{margin-top:5px}
	.mi-cookie-table table,.mi-cookie-table thead,.mi-cookie-table tbody,.mi-cookie-table tr,.mi-cookie-table th,.mi-cookie-table td{display:block}
	.mi-cookie-table thead{display:none}
	.mi-cookie-table tr{margin:0 0 12px;border:1px solid var(--mi-line,#e3e8ef);border-radius:10px;overflow:hidden}
	.mi-cookie-table td{border:0;border-bottom:1px solid var(--mi-line,#e3e8ef)}
}

@media(prefers-reduced-motion:reduce){
	.mi-cc-btn,.mi-cc-track,.mi-cc-track::after,.mi-cc-float{transition:none}
}

/* The footer link sits in a nav of <a> elements, so it has to look like one. */
.mi-cc-foot-link{
	background:none;border:0;padding:0;margin:0;
	font:inherit;color:inherit;cursor:pointer;
	text-decoration:none;
	opacity:.85;
}
.mi-cc-foot-link:hover{opacity:1;text-decoration:underline}
.mi-cc-foot-link:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}
