/* OLIO Consent 1.1.0 */
.oc-banner,.oc-banner *,.oc-reopen,.oc-embed,.oc-embed *{box-sizing:border-box;}

/* ---- Banner: vollbreite Leiste unten ---- */
.oc-banner{
	position:fixed;left:0;right:0;bottom:0;z-index:999990;
	pointer-events:none;
}
.oc-banner[hidden]{display:none !important;}
.oc-card{
	pointer-events:auto;
	position:relative;
	width:100%;
	background:#fff;
	border-top:1px solid #e7e2d6;
	box-shadow:0 -18px 48px rgba(0,0,0,.22);
	padding:20px 24px 18px;
	overflow:hidden;
	transform:translateY(100%);
	transition:transform .3s ease;
	font-family:inherit;
}
.oc-banner.is-open .oc-card{transform:none;}
.oc-accent{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#009C32,#FFEE00);}

.oc-inner{
	max-width:1240px;margin:0 auto;
	display:grid;gap:22px;
	grid-template-columns:1.15fr 1.2fr auto;
	align-items:center;
}
.oc-title{margin:0 0 6px;font-size:17px;font-weight:800;color:#12261a;line-height:1.3;display:flex;align-items:center;gap:9px;}
.oc-title-ic{width:22px;height:22px;color:#009C32;flex:0 0 auto;}
.oc-text{margin:0;font-size:13px;line-height:1.55;color:#4c5a50;}
.oc-text a{color:#009C32;text-decoration:underline;}

/* Kategorien */
.oc-cats{display:flex;flex-direction:column;gap:9px;}
.oc-cat{display:flex;align-items:center;gap:11px;cursor:pointer;margin:0;}
.oc-cat-ic{
	flex:0 0 auto;width:32px;height:32px;border-radius:9px;
	background:#eaf7ee;color:#009C32;
	display:flex;align-items:center;justify-content:center;
}
.oc-cat-ic svg{width:17px;height:17px;}
.oc-cat-text{display:flex;flex-direction:column;gap:0;min-width:0;flex:1;}
.oc-cat-text strong{font-size:13px;color:#12261a;}
.oc-cat-text small{font-size:11.5px;color:#7d877f;line-height:1.35;}

/* Switch */
.oc-switch{position:relative;flex:0 0 auto;width:40px;height:22px;margin-top:1px;}
.oc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;}
.oc-slider{
	position:absolute;inset:0;border-radius:99px;
	background:#d9d4c7;transition:background .18s ease;
}
.oc-slider::before{
	content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;
	background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);
	transition:transform .18s ease;
}
.oc-switch input:checked + .oc-slider{background:#009C32;}
.oc-switch input:checked + .oc-slider::before{transform:translateX(18px);}
.oc-switch input:disabled + .oc-slider{background:#009C32;opacity:.55;cursor:default;}
.oc-switch input:focus-visible + .oc-slider{outline:2px solid #009C32;outline-offset:2px;}

/* Buttons */
.oc-actions{display:flex;flex-direction:column;gap:9px;min-width:190px;}
.oc-actions .oc-btn{width:100%;}
.oc-btn{
	border:2px solid transparent;
	border-radius:99px;
	padding:0 22px;min-height:42px;
	font-size:13.5px;font-weight:700;cursor:pointer;
	transition:background-image .15s ease,color .15s ease,box-shadow .15s ease,transform .05s ease;
	background-origin:border-box;background-clip:padding-box,border-box;
}
.oc-btn:active{transform:translateY(1px);}
.oc-btn-all{
	color:#fff;
	background-image:linear-gradient(#009C32,#009C32),linear-gradient(90deg,#009C32,#FFEE00);
}
.oc-btn-all:hover{background-image:linear-gradient(#007d28,#007d28),linear-gradient(90deg,#009C32,#FFEE00);box-shadow:0 8px 20px rgba(0,156,50,.22);}
.oc-btn-save{
	color:#009C32;
	background-image:linear-gradient(#ffffff,#ffffff),linear-gradient(90deg,#009C32,#FFEE00);
}
.oc-btn-save:hover{background-image:linear-gradient(#009C32,#009C32),linear-gradient(90deg,#009C32,#FFEE00);color:#fff;}
.oc-btn-none{
	color:#6d7a70;background:#f1efe8;border-color:#f1efe8;
}
.oc-btn-none:hover{background:#e7e4da;border-color:#e7e4da;color:#4c5a50;}

/* ---- Map-Platzhalter ---- */
.oc-embed{
	line-height:1.5;
	display:flex;align-items:center;justify-content:center;
	background:#F7F4EC;
	border:1px dashed #cfc9b8;border-radius:10px;
	padding:22px;text-align:center;
}
.oc-embed-inner{max-width:340px;display:flex;flex-direction:column;align-items:center;gap:9px;}
.oc-embed-inner svg{width:34px;height:34px;color:#009C32;}
.oc-embed-inner p{margin:0;font-size:12.5px;line-height:1.5;color:#4c5a50;}
.oc-embed-load{
	border:2px solid transparent;border-radius:99px;
	padding:0 20px;min-height:38px;
	font-size:13px;font-weight:700;color:#fff;cursor:pointer;
	background-image:linear-gradient(#009C32,#009C32),linear-gradient(90deg,#009C32,#FFEE00);
	background-origin:border-box;background-clip:padding-box,border-box;
	transition:background-image .15s ease,box-shadow .15s ease;
}
.oc-embed-load:hover{background-image:linear-gradient(#007d28,#007d28),linear-gradient(90deg,#009C32,#FFEE00);box-shadow:0 8px 20px rgba(0,156,50,.22);}
.oc-embed-note{font-size:11px;line-height:1.45;color:#98a29a;display:block;}

/* ---- Reopen-Button ---- */
.oc-reopen{
	position:fixed;left:16px;bottom:16px;z-index:999989;
	width:44px;height:44px;border-radius:50%;
	border:2px solid transparent;cursor:pointer;
	color:#fff;
	background-image:linear-gradient(#009C32,#009C32),linear-gradient(90deg,#009C32,#FFEE00);
	background-origin:border-box;background-clip:padding-box,border-box;
	box-shadow:0 8px 22px rgba(0,0,0,.22);
	display:flex;align-items:center;justify-content:center;
	transition:transform .15s ease,box-shadow .15s ease;
}
.oc-reopen[hidden]{display:none !important;}
.oc-reopen svg{width:22px;height:22px;}
.oc-reopen:hover{transform:scale(1.07);box-shadow:0 10px 26px rgba(0,156,50,.32);}

@media (max-width:980px){
	.oc-inner{grid-template-columns:1fr;gap:14px;}
	.oc-actions{flex-direction:row;flex-wrap:wrap;min-width:0;}
	.oc-actions .oc-btn{width:auto;flex:1 1 auto;}
	.oc-card{max-height:86vh;overflow:auto;}
}
@media (max-width:600px){
	.oc-card{padding:16px 14px 14px;}
	.oc-text{display:none;}
	.oc-title{margin-bottom:2px;}
}
@media (prefers-reduced-motion:reduce){
	.oc-card,.oc-slider,.oc-slider::before{transition:none;}
}
