/* AuditCert E-Book Popup */
.acp-overlay, .acp-overlay * , .acp-float, .acp-float * { box-sizing: border-box; }
.acp-overlay {
	--acp-navy: #12305a; --acp-navy2: #1b4278; --acp-green: #5e9c5e; --acp-lime: #a9c45a;
	--acp-ink: #1e2a3a; --acp-muted: #5b6b7c;
	position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center;
	padding: 20px; background: rgba(8, 22, 46, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	opacity: 0; visibility: hidden; transition: opacity .35s ease, visibility .35s ease; overflow-y: auto;
	font-family: "Poppins", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
.acp-overlay.acp-open-now { opacity: 1; visibility: visible; }
body.acp-lock { overflow: hidden; }

.acp-modal {
	position: relative; display: grid; grid-template-columns: 1fr 1.08fr; width: 100%; max-width: 900px;
	background: #fff; border-radius: 24px; overflow: hidden; margin: auto;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .08);
	transform: translateY(40px) scale(.94); opacity: 0;
	transition: transform .55s cubic-bezier(.2, 1.1, .3, 1), opacity .4s ease;
}
.acp-open-now .acp-modal { transform: none; opacity: 1; }

.acp-close {
	position: absolute; top: 12px; right: 14px; z-index: 10; width: 38px; height: 38px; border-radius: 50%;
	border: 0; background: rgba(18, 48, 90, .08); color: var(--acp-navy); font-size: 26px; line-height: 1; cursor: pointer;
	transition: transform .25s, background .25s, color .25s; padding: 0;
}
.acp-close:hover { background: var(--acp-navy); color: #fff; transform: rotate(90deg); }

/* ---------- Left panel ---------- */
.acp-left {
	position: relative; padding: 38px 30px 30px; color: #fff; overflow: hidden;
	background: linear-gradient(155deg, #0d2750 0%, var(--acp-navy) 45%, var(--acp-navy2) 100%);
	display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.acp-left::after {
	content: ""; position: absolute; left: -20%; right: -20%; bottom: -70px; height: 190px;
	background: radial-gradient(ellipse at 70% 0, var(--acp-green) 0 38%, transparent 39%), radial-gradient(ellipse at 90% 20%, var(--acp-lime) 0 30%, transparent 31%);
	opacity: .55; pointer-events: none;
}
.acp-orb { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .06); pointer-events: none; }
.acp-orb-1 { width: 240px; height: 240px; top: -90px; left: -80px; }
.acp-orb-2 { width: 140px; height: 140px; bottom: 90px; right: -50px; background: rgba(169, 196, 90, .12); }

.acp-ribbon {
	position: absolute; top: 20px; left: -46px; width: 170px; text-align: center; transform: rotate(-38deg);
	background: linear-gradient(90deg, var(--acp-lime), #c4dc6e); color: var(--acp-navy); font-weight: 800; font-size: 11px;
	letter-spacing: 1px; padding: 7px 0; z-index: 3; box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
}
.acp-book-wrap { perspective: 900px; z-index: 2; margin-bottom: 22px; }
.acp-book {
	position: relative; width: 190px; border-radius: 4px 10px 10px 4px; transform: rotateY(-22deg) rotateX(4deg);
	box-shadow: -10px 14px 30px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .15);
	animation: acp-float 4.5s ease-in-out infinite; transform-style: preserve-3d;
}
.acp-book::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 9px; z-index: 2;
	background: linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(255, 255, 255, .15) 60%, transparent);
	border-radius: 4px 0 0 4px;
}
.acp-book img { display: block; width: 100%; height: auto; border-radius: 4px 10px 10px 4px; }
.acp-shine {
	position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none;
}
.acp-shine::after {
	content: ""; position: absolute; top: -20%; left: -60%; width: 40%; height: 140%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg);
	animation: acp-shine 3.8s ease-in-out infinite;
}
@keyframes acp-float { 0%, 100% { transform: rotateY(-22deg) rotateX(4deg) translateY(0); } 50% { transform: rotateY(-16deg) rotateX(2deg) translateY(-10px); } }
@keyframes acp-shine { 0%, 55% { left: -60%; } 100% { left: 140%; } }

.acp-benefits { list-style: none; margin: 0; padding: 0; z-index: 2; width: 100%; }
.acp-benefits li {
	display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.45; margin: 0 0 10px; color: #e8f0fa;
	padding: 0; list-style: none;
}
.acp-tick {
	flex: 0 0 22px; height: 22px; border-radius: 50%; background: var(--acp-lime); color: var(--acp-navy);
	font-weight: 800; font-size: 12px; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px;
}

/* ---------- Right panel ---------- */
.acp-right { position: relative; padding: 34px 36px 26px; background: #fff; display: flex; flex-direction: column; justify-content: center; }
.acp-logo { display: block; width: 58px; height: auto; margin: 0 0 8px; }
.acp-title { margin: 0 0 8px; font-size: 25px; line-height: 1.2; font-weight: 800; color: var(--acp-navy); letter-spacing: -.3px; }
.acp-sub { margin: 0 0 14px; font-size: 13px; line-height: 1.6; color: var(--acp-muted); }
.acp-divider { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: var(--acp-green); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .8px; }
.acp-divider::before, .acp-divider::after { content: ""; flex: 1; height: 1px; background: #dce8df; }

.acp-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.acp-field { position: relative; margin-bottom: 10px; }
.acp-ico { position: absolute; left: 13px; top: 50%; width: 17px; height: 17px; transform: translateY(-50%); fill: #8aa08f; pointer-events: none; transition: fill .2s; }
.acp-field input {
	width: 100%; height: 46px; padding: 0 12px 0 40px; border: 1.5px solid #dbe5de; border-radius: 12px; background: #f6faf7;
	font: 500 13.5px/1 "Poppins", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--acp-ink); outline: none; box-shadow: none; margin: 0;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.acp-field input::placeholder { color: #8b9aa8; font-weight: 400; }
.acp-field input:focus { border-color: var(--acp-green); background: #fff; box-shadow: 0 0 0 4px rgba(94, 156, 94, .15); }
.acp-field:focus-within .acp-ico { fill: var(--acp-green); }
.acp-field input.acp-invalid { border-color: #d9534f; background: #fff6f5; }
.acp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.acp-msg { min-height: 0; font-size: 12.5px; color: #c0392b; font-weight: 600; margin: 0 0 6px; }
.acp-msg:empty { display: none; }

.acp-btn {
	position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 52px;
	border: 0; border-radius: 50px; cursor: pointer; overflow: hidden; text-decoration: none;
	background: linear-gradient(90deg, var(--acp-green), #4a8a4f 60%, var(--acp-green)); background-size: 200% 100%;
	color: #fff !important; font: 700 15px/1 "Poppins", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing: .2px;
	box-shadow: 0 10px 24px rgba(94, 156, 94, .45); transition: transform .2s, box-shadow .2s, background-position .5s;
	animation: acp-pulse 2.2s infinite;
}
.acp-btn:hover { transform: translateY(-2px); background-position: 100% 0; box-shadow: 0 14px 30px rgba(94, 156, 94, .55); color: #fff; }
.acp-btn::after {
	content: ""; position: absolute; top: 0; left: -70%; width: 45%; height: 100%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg);
	animation: acp-shine 2.8s ease-in-out infinite;
}
.acp-arrow { font-size: 19px; transition: transform .25s; }
.acp-btn:hover .acp-arrow { transform: translateX(5px); }
.acp-btn[disabled] { opacity: .75; cursor: wait; animation: none; }
@keyframes acp-pulse { 0%, 100% { box-shadow: 0 10px 24px rgba(94, 156, 94, .45), 0 0 0 0 rgba(94, 156, 94, .45); } 50% { box-shadow: 0 10px 24px rgba(94, 156, 94, .45), 0 0 0 12px rgba(94, 156, 94, 0); } }
.acp-privacy { margin: 12px 0 0; text-align: center; font-size: 11.5px; color: #8190a0; }

/* ---------- Success ---------- */
.acp-success-view { position: relative; text-align: center; padding: 6px 0; }
.acp-success-view[hidden], .acp-form-view[hidden] { display: none; }
.acp-check { width: 86px; height: 86px; margin: 0 auto 14px; }
.acp-check svg { width: 100%; height: 100%; }
.acp-check circle { fill: #eaf3e8; stroke: var(--acp-green); stroke-width: 2.5; stroke-dasharray: 160; stroke-dashoffset: 160; animation: acp-draw .7s .1s forwards; }
.acp-check path { fill: none; stroke: var(--acp-green); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 40; animation: acp-draw .5s .65s forwards; }
@keyframes acp-draw { to { stroke-dashoffset: 0; } }
.acp-success-view .acp-sub { margin-bottom: 20px; }
.acp-confetti i { position: absolute; top: 20px; left: 50%; width: 8px; height: 14px; opacity: 0; border-radius: 2px; }
.acp-success-show .acp-confetti i { animation: acp-conf 1.6s ease-out forwards; }
.acp-confetti i:nth-child(1) { background: #a9c45a; --x: -150px; --r: 200deg; }
.acp-confetti i:nth-child(2) { background: #5e9c5e; --x: -100px; --r: -160deg; animation-delay: .05s; }
.acp-confetti i:nth-child(3) { background: #12305a; --x: -60px; --r: 300deg; animation-delay: .1s; }
.acp-confetti i:nth-child(4) { background: #e0a526; --x: -20px; --r: -240deg; animation-delay: .02s; }
.acp-confetti i:nth-child(5) { background: #a9c45a; --x: 20px; --r: 180deg; animation-delay: .08s; }
.acp-confetti i:nth-child(6) { background: #5e9c5e; --x: 60px; --r: -200deg; animation-delay: .12s; }
.acp-confetti i:nth-child(7) { background: #1b4278; --x: 100px; --r: 260deg; animation-delay: .04s; }
.acp-confetti i:nth-child(8) { background: #e0a526; --x: 140px; --r: -300deg; animation-delay: .09s; }
.acp-confetti i:nth-child(9) { background: #a9c45a; --x: -120px; --r: 120deg; animation-delay: .15s; }
.acp-confetti i:nth-child(10) { background: #5e9c5e; --x: 120px; --r: -120deg; animation-delay: .13s; }
@keyframes acp-conf { 0% { opacity: 1; transform: translate(0, 0) rotate(0); } 100% { opacity: 0; transform: translate(var(--x), 230px) rotate(var(--r)); } }

/* ---------- Floating tab & inline button ---------- */
.acp-float {
	position: fixed; left: 18px; bottom: 18px; z-index: 99990; display: none; align-items: center; gap: 8px;
	border: 0; cursor: pointer; padding: 11px 18px 11px 14px; border-radius: 50px; color: #fff;
	background: linear-gradient(90deg, #12305a, #1b4278); box-shadow: 0 10px 26px rgba(18, 48, 90, .45);
	font: 700 13px/1 "Poppins", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; animation: acp-bounce 3.2s ease-in-out infinite;
}
.acp-float.acp-visible { display: inline-flex; }
.acp-float:hover { background: linear-gradient(90deg, #5e9c5e, #4a8a4f); color: #fff; }
.acp-float-ico { font-size: 17px; }
@keyframes acp-bounce { 0%, 88%, 100% { transform: translateY(0); } 92% { transform: translateY(-8px); } 96% { transform: translateY(0); } 98% { transform: translateY(-3px); } }
.acp-inline-btn {
	display: inline-block; cursor: pointer; border: 0; border-radius: 50px; padding: 15px 32px; color: #fff;
	background: linear-gradient(90deg, #5e9c5e, #4a8a4f); font-weight: 700; font-size: 15px; box-shadow: 0 8px 20px rgba(94, 156, 94, .4);
	transition: transform .2s;
}
.acp-inline-btn:hover { transform: translateY(-2px); color: #fff; }

/* ---------- Responsive ---------- */
@media (max-width: 820px) {
	.acp-overlay { padding: 12px; align-items: flex-start; }
	.acp-modal { grid-template-columns: 1fr; max-width: 480px; border-radius: 20px; }
	.acp-left { padding: 26px 22px 22px; flex-direction: row; flex-wrap: wrap; gap: 14px; justify-content: flex-start; }
	.acp-left::after, .acp-orb-2 { display: none; }
	.acp-book-wrap { margin: 0; flex: 0 0 96px; }
	.acp-book { width: 96px; animation: none; transform: rotateY(-14deg); }
	.acp-benefits { flex: 1 1 140px; width: auto; }
	.acp-benefits li { font-size: 12px; margin-bottom: 7px; }
	.acp-ribbon { display: none; }
	.acp-right { padding: 22px 22px 22px; }
	.acp-title { font-size: 21px; }
	.acp-logo { display: none; }
	.acp-close { background: rgba(255, 255, 255, .92); }
}
@media (max-width: 480px) {
	.acp-row { grid-template-columns: 1fr; gap: 0; }
	.acp-benefits li:nth-child(3) { display: none; }
	.acp-float-txt { display: none; }
	.acp-float { padding: 12px 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.acp-overlay *, .acp-float { animation: none !important; transition: none !important; }
}
