/* =========================================================================
   TNC FlipBook 3D — Exit-Intent Discount Popup
   Scoped styles (.tncfb-*). z-index raised to 999998/999999 so it sits
   above Divi's stacking (Divi uses 99999).
   ========================================================================= */

/* ---- Brand tokens (matched to tncflipbook.com) ---- */
.tncfb-popup{
	--tncfb-navy:#0B1B3A;
	--tncfb-navy-2:#12264E;
	--tncfb-blue:#2B6BFF;
	--tncfb-blue-dark:#1E53D6;
	--tncfb-gold:#F0B441;
	--tncfb-ink:#0B1B3A;
	--tncfb-muted:#5A6B87;
	--tncfb-line:#E3E9F4;
	--tncfb-surface:#FFFFFF;
}

/* ---- Isolation: stop the host theme (Divi/WP) from bleeding its own
   box-model, leading, text-alignment or button chrome into the popup.
   This is what keeps the width & spacing pixel-exact on the live site,
   where Divi forces `*{box-sizing:border-box}` and `body{line-height:1.7}`. */
.tncfb-overlay,
.tncfb-popup,
.tncfb-popup *,
.tncfb-popup *::before,
.tncfb-popup *::after{
	box-sizing:border-box;
}
.tncfb-popup{
	line-height:1.5;
	text-align:left;
	font-size:16px;
}
.tncfb-popup button,
.tncfb-popup a{
	-webkit-appearance:none;
	appearance:none;
	text-decoration:none;
}

.tncfb-overlay{
	position:fixed;inset:0;z-index:999998;
	background:rgba(11,27,58,.55);
	backdrop-filter:blur(3px);
	opacity:0;pointer-events:none;
	transition:opacity .28s ease;
}
.tncfb-overlay.tncfb-show{opacity:1;pointer-events:auto;}

.tncfb-popup{
	position:fixed;z-index:999999;left:50%;top:50%;
	width:min(780px,calc(100vw - 32px));
	transform:translate(-50%,-46%) scale(.96);
	opacity:0;pointer-events:none;
	transition:opacity .28s ease,transform .32s cubic-bezier(.21,.8,.35,1);
	font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.tncfb-popup.tncfb-show{
	opacity:1;pointer-events:auto;
	transform:translate(-50%,-50%) scale(1);
}

.tncfb-card{
	position:relative;
	display:flex;overflow:hidden;border-radius:22px;
	background:var(--tncfb-surface);
	box-shadow:0 24px 70px rgba(11,27,58,.35);
}

/* ---- Left visual panel: navy, mini 3D book ---- */
.tncfb-visual{
	flex:0 0 46%;position:relative;
	background:linear-gradient(160deg,var(--tncfb-navy) 0%,var(--tncfb-navy-2) 100%);
	color:#fff;display:flex;flex-direction:column;
	justify-content:center;align-items:center;
	padding:48px 28px;text-align:center;
}
.tncfb-visual::before{
	content:"";position:absolute;inset:0;
	background-image:radial-gradient(rgba(255,255,255,.08) 1px,transparent 1px);
	background-size:18px 18px;
}

/* mini 3D open book built in CSS — the signature element */
.tncfb-book{position:relative;width:120px;height:84px;perspective:520px;margin-bottom:30px;}
.tncfb-page{
	position:absolute;top:0;width:60px;height:84px;
	background:linear-gradient(90deg,#EDF2FB,#FFFFFF);
	border:1px solid rgba(11,27,58,.08);
}
.tncfb-page.tncfb-left{left:0;border-radius:6px 2px 2px 6px;transform:rotateY(24deg);transform-origin:right;}
.tncfb-page.tncfb-right{right:0;border-radius:2px 6px 6px 2px;transform:rotateY(-24deg);transform-origin:left;}
.tncfb-page.tncfb-flip{
	right:0;border-radius:2px 6px 6px 2px;transform-origin:left;
	animation:tncfbFlip 2.6s ease-in-out infinite;
	background:linear-gradient(90deg,#FFFFFF,#DCE6FA);
}
@keyframes tncfbFlip{
	0%,18%  {transform:rotateY(-24deg);}
	52%,64% {transform:rotateY(-158deg);}
	100%    {transform:rotateY(-24deg);}
}
.tncfb-badge3d{
	position:absolute;right:-14px;top:-14px;
	background:var(--tncfb-blue);color:#fff;
	font-size:12px;font-weight:800;letter-spacing:.02em;
	padding:5px 9px;border-radius:8px;
	box-shadow:0 6px 16px rgba(43,107,255,.45);
}
.tncfb-visual .tncfb-off{
	position:relative;font-size:44px;font-weight:800;line-height:1;
	letter-spacing:-0.02em;
}
.tncfb-visual .tncfb-off span{color:var(--tncfb-gold);}
.tncfb-visual .tncfb-off-sub{
	position:relative;margin-top:8px;font-size:13px;font-weight:600;
	color:rgba(255,255,255,.75);
}

/* ---- Right content panel ---- */
.tncfb-content{flex:1;padding:48px 44px 36px;}
.tncfb-eyebrow{
	display:inline-block;font-size:11px;font-weight:700;
	letter-spacing:.14em;text-transform:uppercase;
	color:var(--tncfb-blue);margin-bottom:16px;
}
.tncfb-title{
	margin:0 0 0;font-size:25px;line-height:1.3;
	font-family:"Plus Jakarta Sans",sans-serif;
	font-weight:800;color:var(--tncfb-ink);letter-spacing:-0.01em;
}
.tncfb-sub{margin:0 0 28px;font-size:15px;line-height:1.65;color:var(--tncfb-muted);font-family:"Plus Jakarta Sans",sans-serif;padding-bottom:0;}

/* ---- code display ---- */
.tncfb-code-row{display:flex;gap:12px;margin-bottom:14px;}
.tncfb-code{
	flex:1;display:flex;align-items:center;justify-content:center;
	border:2px dashed var(--tncfb-blue);border-radius:12px;
	background:rgba(43,107,255,.05);
	padding:16px 14px;font-size:20px;font-weight:800;
	letter-spacing:.14em;color:var(--tncfb-ink);
	font-variant-numeric:tabular-nums;user-select:all;
}
.tncfb-copy{
	border:1.5px solid var(--tncfb-line);border-radius:12px;cursor:pointer;
	background:#fff;color:var(--tncfb-ink);
	padding:0 22px;font-size:14px;font-weight:700;font-family:inherit;
	transition:border-color .15s ease,background .15s ease;
}
.tncfb-copy:hover{border-color:var(--tncfb-blue);color:var(--tncfb-blue);}
.tncfb-copy.tncfb-copied{background:var(--tncfb-blue);border-color:var(--tncfb-blue);color:#fff;}
.tncfb-cta{
	border:none;border-radius:12px;cursor:pointer;
	background:var(--tncfb-blue);color:#fff;
	padding:16px;font-size:15px;font-weight:700;font-family:inherit;
	transition:background .15s ease,transform .1s ease;
}
.tncfb-apply{display:block;text-align:center;text-decoration:none;box-sizing:border-box;width:100%;}
.tncfb-cta:hover{background:var(--tncfb-blue-dark);}
.tncfb-cta:active{transform:scale(.985);}
.tncfb-cta:focus-visible,.tncfb-copy:focus-visible,.tncfb-close:focus-visible{
	outline:2px solid var(--tncfb-blue);outline-offset:2px;
}
.tncfb-fineprint{margin:14px 0 0;font-size:12.5px;line-height:1.5;color:var(--tncfb-muted);text-align:center;}

.tncfb-trust{
	display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;justify-content:center;
	margin-top:30px;padding-top:22px;border-top:1px solid var(--tncfb-line);
	font-size:12.5px;font-weight:600;color:var(--tncfb-muted);
}
.tncfb-trust .tncfb-stars{color:var(--tncfb-gold);letter-spacing:1px;font-size:13px;}

.tncfb-close{
	position:absolute;top:12px;right:12px;z-index:3;
	width:34px;height:34px;flex:0 0 auto;padding:0;
	border:none;border-radius:50%;cursor:pointer;
	background:rgba(11,27,58,.06);color:var(--tncfb-ink);
	font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;
	transition:background .15s ease;
}
.tncfb-close:hover{background:rgba(11,27,58,.12);}

@media (max-width:560px){
	.tncfb-card{flex-direction:column;}
	.tncfb-visual{flex:none;padding:34px 24px 28px;}
	.tncfb-book{width:96px;height:66px;margin-bottom:18px;}
	.tncfb-page{width:48px;height:66px;}
	.tncfb-visual .tncfb-off{font-size:34px;}
	.tncfb-content{padding:30px 24px 26px;}
	.tncfb-title{font-size:21px;}
	.tncfb-sub{margin-bottom:22px;}
	.tncfb-trust{margin-top:24px;padding-top:18px;}
	.tncfb-close{background:rgba(255,255,255,.25);color:#fff;}
}

@media (prefers-reduced-motion:reduce){
	.tncfb-page.tncfb-flip{animation:none;}
	.tncfb-popup,.tncfb-overlay{transition:none;}
}
