/*! Plus 57 Cookie Consent 1.0.0 - all rules scoped to #p57cc-root to resist theme/Elementor styles. */
#p57cc-root {
	--p57cc-cream: #fff8ec;
	--p57cc-navy: #0e2a5a;
	--p57cc-yellow: #ffc72c;
	--p57cc-red: #d62839;
	--p57cc-blue: #1f5fbf;
	--p57cc-serif: "DM Serif Display", Georgia, "Times New Roman", serif;
	--p57cc-sans: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-family: var(--p57cc-sans);
	font-size: 15px;
	line-height: 1.5;
	color: var(--p57cc-navy);
	text-align: left;
	-webkit-text-size-adjust: 100%;
}
#p57cc-root *,
#p57cc-root *::before,
#p57cc-root *::after { box-sizing: border-box; }
#p57cc-root [hidden] { display: none !important; }

/* tricolor accent line */
#p57cc-root .p57cc-bar {
	height: 4px;
	background: linear-gradient(90deg, var(--p57cc-yellow) 0 50%, var(--p57cc-blue) 50% 75%, var(--p57cc-red) 75% 100%);
}

/* ---------- banner ---------- */
#p57cc-root .p57cc-banner {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 99990;
	max-width: 980px;
	max-height: calc(100vh - 32px);
	margin: 0 auto;
	overflow: auto;
	background: var(--p57cc-cream);
	color: var(--p57cc-navy);
	border-radius: 18px;
	box-shadow: 0 10px 34px rgba(14, 42, 90, .22), 0 2px 6px rgba(14, 42, 90, .12);
	animation: p57cc-rise .35s ease-out both;
}
#p57cc-root .p57cc-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 28px;
	padding: 18px 24px 20px;
}
#p57cc-root .p57cc-copy { flex: 1 1 380px; min-width: 0; }
#p57cc-root .p57cc-title {
	margin: 0 0 4px;
	font: 400 24px/1.2 var(--p57cc-serif);
	color: var(--p57cc-navy);
	letter-spacing: 0;
	text-transform: none;
}
#p57cc-root .p57cc-text,
#p57cc-root .p57cc-note { margin: 0; font: 500 14.5px/1.5 var(--p57cc-sans); color: var(--p57cc-navy); }
#p57cc-root .p57cc-note { margin-top: 6px; font-size: 13px; font-weight: 600; }
#p57cc-root a.p57cc-privacy,
#p57cc-root a.p57cc-privacy:visited {
	color: var(--p57cc-navy);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}
#p57cc-root a.p57cc-privacy:hover { text-decoration-thickness: 2px; }
#p57cc-root .p57cc-actions {
	display: grid;
	flex: 0 0 auto;
	grid-template-columns: 1fr 1fr;
	gap: 8px 10px;
	width: 400px;
	max-width: 100%;
}
#p57cc-root .p57cc-actions .p57cc-btn-text { grid-column: 1 / -1; min-height: 40px; }

/* ---------- buttons ---------- */
#p57cc-root .p57cc-btn {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 10px 20px;
	border: 2px solid var(--p57cc-navy);
	border-radius: 999px;
	background: transparent;
	color: var(--p57cc-navy);
	font: 700 14.5px/1.2 var(--p57cc-sans);
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	text-align: center;
	white-space: normal;
	box-shadow: none;
	cursor: pointer;
	transition: background-color .15s, box-shadow .15s, transform .15s;
}
#p57cc-root .p57cc-btn.p57cc-btn-primary { background: var(--p57cc-yellow); border-color: var(--p57cc-yellow); color: var(--p57cc-navy); }
#p57cc-root .p57cc-btn.p57cc-btn-primary:hover,
#p57cc-root .p57cc-btn.p57cc-btn-primary:focus { background: #ffd35c; border-color: #ffd35c; color: var(--p57cc-navy); }
#p57cc-root .p57cc-btn.p57cc-btn-outline { background: transparent; border-color: var(--p57cc-navy); color: var(--p57cc-navy); }
#p57cc-root .p57cc-btn.p57cc-btn-outline:hover,
#p57cc-root .p57cc-btn.p57cc-btn-outline:focus { background: rgba(14, 42, 90, .08); border-color: var(--p57cc-navy); color: var(--p57cc-navy); }
#p57cc-root .p57cc-btn.p57cc-btn-text { background: transparent; border-color: transparent; color: var(--p57cc-navy); text-decoration: underline; text-underline-offset: 3px; }
#p57cc-root .p57cc-btn.p57cc-btn-text:hover,
#p57cc-root .p57cc-btn.p57cc-btn-text:focus { background: rgba(14, 42, 90, .08); border-color: transparent; color: var(--p57cc-navy); }
#p57cc-root .p57cc-btn:focus-visible,
#p57cc-root .p57cc-tab:focus-visible,
#p57cc-root .p57cc-close:focus-visible,
#p57cc-root a.p57cc-privacy:focus-visible,
#p57cc-root .p57cc-modal:focus-visible { outline: 3px solid var(--p57cc-blue); outline-offset: 2px; }

/* ---------- floating tab ---------- */
#p57cc-root .p57cc-tab {
	appearance: none;
	-webkit-appearance: none;
	position: fixed;
	left: 12px;
	bottom: 12px;
	z-index: 99980;
	margin: 0;
	padding: 7px 13px;
	border: 1.5px solid var(--p57cc-navy);
	border-radius: 999px;
	background: var(--p57cc-cream);
	color: var(--p57cc-navy);
	font: 700 12px/1.2 var(--p57cc-sans);
	letter-spacing: 0;
	text-transform: none;
	box-shadow: 0 3px 10px rgba(14, 42, 90, .2);
	cursor: pointer;
}
#p57cc-root .p57cc-tab:hover { background: #fff; color: var(--p57cc-navy); border-color: var(--p57cc-navy); }

/* ---------- modal ---------- */
#p57cc-root .p57cc-overlay {
	position: fixed;
	inset: 0;
	z-index: 99995;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(14, 42, 90, .55);
}
#p57cc-root .p57cc-modal {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 560px;
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	overflow: hidden;
	background: var(--p57cc-cream);
	color: var(--p57cc-navy);
	border-radius: 20px;
	box-shadow: 0 18px 50px rgba(14, 42, 90, .35);
}
#p57cc-root .p57cc-mhead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 22px 0; }
#p57cc-root .p57cc-mtitle { margin: 0; font: 400 26px/1.2 var(--p57cc-serif); color: var(--p57cc-navy); letter-spacing: 0; text-transform: none; }
#p57cc-root .p57cc-close {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	margin: -4px -8px 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--p57cc-navy);
	font: 400 28px/1 var(--p57cc-sans);
	box-shadow: none;
	cursor: pointer;
}
#p57cc-root .p57cc-close:hover { background: rgba(14, 42, 90, .08); color: var(--p57cc-navy); }
#p57cc-root .p57cc-mbody { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 22px 12px; -webkit-overflow-scrolling: touch; }
#p57cc-root .p57cc-mintro { margin: 0 0 8px; font: 500 14.5px/1.5 var(--p57cc-sans); color: var(--p57cc-navy); }
#p57cc-root .p57cc-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	border-top: 1px solid rgba(14, 42, 90, .15);
}
#p57cc-root .p57cc-rtext { min-width: 0; }
#p57cc-root .p57cc-rname { display: block; margin: 0 0 2px; font: 800 15.5px/1.3 var(--p57cc-sans); color: var(--p57cc-navy); cursor: pointer; }
#p57cc-root .p57cc-fixed .p57cc-rname { cursor: default; }
#p57cc-root .p57cc-rdesc { margin: 0; font: 500 13.5px/1.45 var(--p57cc-sans); color: var(--p57cc-navy); opacity: .88; }
#p57cc-root .p57cc-badge {
	display: inline-block;
	margin-top: 6px;
	padding: 2px 9px;
	border-radius: 999px;
	background: rgba(14, 42, 90, .1);
	font: 700 11.5px/1.5 var(--p57cc-sans);
}

/* switch: real checkbox on top of a styled track */
#p57cc-root .p57cc-switch { position: relative; flex: 0 0 auto; width: 48px; height: 28px; margin-top: 2px; }
#p57cc-root .p57cc-switch input {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}
#p57cc-root .p57cc-switch input:disabled { cursor: not-allowed; }
#p57cc-root .p57cc-track {
	position: absolute;
	inset: 0;
	border-radius: 999px;
	background: #c9cfdb;
	transition: background-color .15s;
}
#p57cc-root .p57cc-track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
	transition: transform .15s;
}
#p57cc-root .p57cc-switch input:checked + .p57cc-track { background: var(--p57cc-navy); }
#p57cc-root .p57cc-switch input:checked + .p57cc-track::after { transform: translateX(20px); }
#p57cc-root .p57cc-switch input:disabled + .p57cc-track { opacity: .55; }
#p57cc-root .p57cc-switch input:focus-visible + .p57cc-track { outline: 3px solid var(--p57cc-blue); outline-offset: 2px; }

#p57cc-root .p57cc-mfoot {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	padding: 14px 22px 18px;
	border-top: 1px solid rgba(14, 42, 90, .15);
	background: var(--p57cc-cream);
}
#p57cc-root .p57cc-mfoot .p57cc-btn { flex: 1 1 140px; }
html.p57cc-lock { overflow: hidden; }

@keyframes p57cc-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
	#p57cc-root .p57cc-banner { animation: none; }
	#p57cc-root .p57cc-btn, #p57cc-root .p57cc-track, #p57cc-root .p57cc-track::after { transition: none; }
}

/* ---------- small screens ---------- */
@media (max-width: 640px) {
	#p57cc-root .p57cc-banner { left: 10px; right: 10px; bottom: 10px; max-height: calc(100vh - 20px); border-radius: 16px; }
	#p57cc-root .p57cc-inner { padding: 14px 16px 16px; gap: 12px; }
	#p57cc-root .p57cc-copy { flex-basis: 100%; }
	#p57cc-root .p57cc-title { font-size: 21px; }
	#p57cc-root .p57cc-text { font-size: 14px; }
	#p57cc-root .p57cc-actions { grid-template-columns: 1fr; width: 100%; gap: 8px; }
	#p57cc-root .p57cc-btn { width: 100%; min-height: 44px; }
	#p57cc-root .p57cc-actions .p57cc-btn-text { min-height: 44px; }
	#p57cc-root .p57cc-overlay { align-items: flex-end; padding: 0; }
	#p57cc-root .p57cc-modal { max-width: none; max-height: 92vh; max-height: 92dvh; border-radius: 20px 20px 0 0; }
	#p57cc-root .p57cc-mhead { padding: 14px 16px 0; }
	#p57cc-root .p57cc-mbody { padding: 6px 16px 10px; }
	#p57cc-root .p57cc-mfoot { flex-direction: column; padding: 12px 16px 16px; gap: 8px; }
	#p57cc-root .p57cc-mfoot .p57cc-btn { flex: 0 0 auto; width: 100%; }
}
