/*
Privacy Policy popup.
Same design tokens and open/close motion as the demo popup
(assets/css/demo-request.css) — no colors/fonts are redefined here.
*/
.cpm-overlay{
	position:fixed;
	inset:0;
	background:rgba(20,52,59,.55);
	backdrop-filter:blur(3px);
	-webkit-backdrop-filter:blur(3px);
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
	z-index:1000;
	opacity:0;
	visibility:hidden;
	transition:opacity .25s ease,visibility 0s linear .25s;
}
.cpm-overlay.is-open{
	opacity:1;
	visibility:visible;
	transition:opacity .25s ease,visibility 0s linear 0s;
}
.cpm-box{
	background:var(--white);
	border-radius:22px;
	width:100%;
	max-width:760px;
	height:min(820px,calc(100vh - 48px));
	display:flex;
	flex-direction:column;
	overflow:hidden;
	box-shadow:0 30px 80px rgba(20,52,59,.30);
	transform:translateY(18px) scale(.97);
	opacity:0;
	transition:transform .25s ease,opacity .25s ease;
}
.cpm-overlay.is-open .cpm-box{
	transform:translateY(0) scale(1);
	opacity:1;
}

/* Header */
.cpm-head{
	position:relative;
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:16px;
	padding:28px 32px 22px;
	background:linear-gradient(180deg,var(--teal-mist) 0%,var(--white) 100%);
	border-bottom:1px solid var(--line);
	flex-shrink:0;
}
.cpm-eyebrow{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:12.5px;
	font-weight:600;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:var(--teal);
	margin-bottom:6px;
}
.cpm-head h2{font-size:30px;color:var(--ink)}
.cpm-close{
	width:36px;
	height:36px;
	flex-shrink:0;
	border:none;
	background:var(--white);
	color:var(--ink);
	border-radius:100px;
	font-size:21px;
	line-height:1;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 2px 8px rgba(20,52,59,.12);
	transition:background .15s ease,transform .15s ease;
}
.cpm-close:hover{background:var(--teal-mist);transform:rotate(90deg)}
.cpm-close:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.cpm-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:transparent}
.cpm-progress span{display:block;height:100%;width:0;background:var(--teal);border-radius:0 3px 3px 0;transition:width .1s linear}

/* Scrollable body — reuses .entry-content typography from main.css */
.cpm-body{
	flex:1;
	overflow-y:auto;
	overscroll-behavior:contain;
	padding:26px 32px 32px;
	max-width:none;
	margin:0;
	font-size:15.5px;
	line-height:1.7;
	scroll-behavior:smooth;
}
.cpm-body:focus{outline:none}
.cpm-body:focus-visible{box-shadow:inset 0 0 0 3px var(--teal-mist)}
.cpm-body .policy-updated{
	display:inline-block;
	text-align:left;
	font-size:13.5px;
	background:var(--paper);
	border:1px solid var(--line);
	border-radius:100px;
	padding:4px 14px;
	margin-bottom:1.4em;
}
.cpm-body h2{
	font-size:21px;
	margin:1.9em 0 .6em;
	padding-left:14px;
	border-left:3px solid var(--coral);
}
.cpm-body h3{font-size:15.5px;margin-top:1.2em}
.cpm-body ul{list-style:none;padding-left:0}
.cpm-body li{position:relative;padding-left:22px}
.cpm-body li::before{
	content:"";
	position:absolute;
	left:4px;
	top:.62em;
	width:7px;
	height:7px;
	border-radius:50%;
	background:var(--teal);
}
.cpm-body .policy-contact{
	background:var(--teal-mist);
	border-radius:14px;
	padding:18px 20px;
}

/* Footer */
.cpm-foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:16px 32px;
	border-top:1px solid var(--line);
	background:var(--paper);
	flex-shrink:0;
}
.cpm-full{color:var(--teal);font-weight:600;font-size:15px;text-decoration:none}
.cpm-full:hover{color:var(--teal-deep);text-decoration:underline}
.cpm-done{padding:11px 26px;font-size:15.5px}

/* Mobile: bottom sheet */
@media (max-width:600px){
	.cpm-overlay{padding:0;align-items:flex-end}
	.cpm-box{
		max-width:none;
		height:92vh;
		height:92dvh;
		border-radius:22px 22px 0 0;
		transform:translateY(40px);
	}
	.cpm-overlay.is-open .cpm-box{transform:translateY(0)}
	.cpm-head{padding:22px 20px 18px}
	.cpm-head h2{font-size:24px}
	.cpm-body{padding:20px 20px 28px;font-size:15px}
	.cpm-foot{padding:12px 20px calc(12px + env(safe-area-inset-bottom))}
	.cpm-done{padding:10px 22px}
}
@media (prefers-reduced-motion:reduce){
	.cpm-box,.cpm-close,.cpm-progress span{transition:none}
	.cpm-body{scroll-behavior:auto}
}
