.cf7pm {
	--cf7pm-bg: #CE3026;
	--cf7pm-color: #fff;
	visibility: hidden;
	pointer-events: none;
	box-sizing: border-box;
}
.cf7pm *, .cf7pm *::before, .cf7pm *::after { box-sizing: border-box; }
.cf7pm.is-open { visibility: visible; pointer-events: auto; }

/* Shared content */
.cf7pm__box { background: var(--cf7pm-bg); color: var(--cf7pm-color); position: relative; outline: none; }
.cf7pm__title { margin: 0 0 8px; color: var(--cf7pm-color); font-size: 26px; line-height: 1.2; }
.cf7pm__desc, .cf7pm__desc p { margin: 0 0 14px; color: var(--cf7pm-color); font-size: 15px; line-height: 1.5; }
.cf7pm__desc p:last-child { margin-bottom: 0; }
.cf7pm .cf7pm__close {
	position: absolute; top: 10px; right: 12px; z-index: 5;
	display: flex; align-items: center; justify-content: center;
	width: 34px; height: 34px; min-width: 0; min-height: 0; margin: 0; padding: 0;
	background: transparent; border: 0; border-radius: 0; box-shadow: none;
	color: var(--cf7pm-color); font-size: 30px; line-height: 1; text-indent: 0;
	cursor: pointer; opacity: .9; visibility: visible;
}
.cf7pm .cf7pm__close:hover, .cf7pm .cf7pm__close:focus { opacity: 1; background: transparent; color: var(--cf7pm-color); box-shadow: none; }

/* CF7 form styling inside popup */
.cf7pm__form .wpcf7 { margin: 0; }
.cf7pm__form p { margin: 0 0 12px; color: var(--cf7pm-color); }
.cf7pm__form label { color: var(--cf7pm-color); }
.cf7pm__form input[type="text"],
.cf7pm__form input[type="email"],
.cf7pm__form input[type="tel"],
.cf7pm__form input[type="url"],
.cf7pm__form input[type="number"],
.cf7pm__form select,
.cf7pm__form textarea {
	width: 100%; padding: 10px 12px; border: 1px solid rgba(255,255,255,.6); border-radius: 4px;
	background: #fff; color: #222; font-size: 15px;
}
.cf7pm__form input[type="submit"] {
	background: var(--cf7pm-color); color: var(--cf7pm-bg); border: 0; border-radius: 4px;
	padding: 11px 26px; font-weight: 600; cursor: pointer;
}
.cf7pm__form input[type="submit"]:hover { opacity: .9; }
.cf7pm__form .wpcf7-response-output { color: var(--cf7pm-color); border-color: var(--cf7pm-color) !important; margin: 10px 0 0; }
.cf7pm__form .wpcf7-not-valid-tip { color: var(--cf7pm-color); font-weight: 600; }

/* ---------- Center popup ---------- */
.cf7pm--center {
	position: fixed; inset: 0; z-index: 99999;
	display: flex; align-items: center; justify-content: center; padding: 20px;
	opacity: 0; transition: opacity .3s ease, visibility .3s;
}
.cf7pm--center.is-open { opacity: 1; }
.cf7pm--center .cf7pm__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.65); }
.cf7pm--center .cf7pm__box {
	width: 100%; max-width: 520px; max-height: 90vh; overflow-y: auto;
	padding: 36px 32px 28px; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.4);
	transform: translateY(20px) scale(.97); transition: transform .3s ease;
}
.cf7pm--center.is-open .cf7pm__box { transform: none; }
body.cf7pm-lock { overflow: hidden; }

/* ---------- Slide-up bar ---------- */
.cf7pm--slider {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 99998;
	transform: translateY(105%); transition: transform .5s ease, visibility .5s;
}
.cf7pm--slider.is-open { transform: translateY(0); }
.cf7pm--slider .cf7pm__box { padding: 22px 60px 22px 24px; box-shadow: 0 -6px 24px rgba(0,0,0,.25); max-height: 90vh; overflow-y: auto; }
.cf7pm--slider .cf7pm__inner { max-width: 1100px; margin: 0 auto; display: flex; gap: 32px; align-items: center; }
.cf7pm--slider .cf7pm__text { flex: 1 1 40%; }
.cf7pm--slider .cf7pm__form { flex: 1 1 60%; }
.cf7pm--slider .cf7pm__title { font-size: 22px; }

@media (max-width: 767px) {
	.cf7pm--center .cf7pm__box { padding: 32px 20px 22px; }
	.cf7pm--slider .cf7pm__box { padding: 18px 44px 18px 16px; }
	.cf7pm--slider .cf7pm__inner { flex-direction: column; align-items: stretch; gap: 12px; }
	.cf7pm__title { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
	.cf7pm, .cf7pm__box { transition: none !important; }
}
