/* Blessed Circle Popup — frontend */

.bcp-overlay{
	position:fixed;inset:0;z-index:999999;
	height:100vh;height:100dvh;
	background:var(--bcp-overlay);
	display:none;align-items:center;justify-content:center;
	padding:clamp(10px,2.6vh,38px) 16px;overflow:hidden;
	-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
	opacity:0;transition:opacity .28s ease;
	font-family:var(--bcp-font-body);
}
.bcp-overlay.bcp-mounted{display:flex}
.bcp-overlay.bcp-visible{opacity:1}
.bcp-overlay.bcp-pos-bottom-right{align-items:flex-end;justify-content:flex-end;background:transparent;backdrop-filter:none}
.bcp-overlay.bcp-pos-bottom-left{align-items:flex-end;justify-content:flex-start;background:transparent;backdrop-filter:none}
.bcp-overlay.bcp-pos-bottom-right .bcp-modal,
.bcp-overlay.bcp-pos-bottom-left .bcp-modal{max-width:400px;box-shadow:0 18px 50px rgba(13,36,105,.28)}

.bcp-modal{
	position:relative;width:100%;max-width:var(--bcp-width);
	background:var(--bcp-bg);
	border-radius:var(--bcp-radius);
	box-shadow:0 30px 80px rgba(13,36,105,.30);
	overflow:hidden;
	transform:scale(.92);opacity:0;
	transition:transform .34s cubic-bezier(.2,.9,.3,1),opacity .34s ease;
	color:var(--bcp-text);
	max-height:100%;
	/* Content is auto-scaled to fit the screen, so the card never scrolls.
	   Hidden also keeps the decorative corners neatly clipped to the rounded edge. */
	overflow:hidden;
	overscroll-behavior:contain;
}
.bcp-visible .bcp-modal{transform:none;opacity:1}
.bcp-anim-fade .bcp-modal{transform:none}
.bcp-anim-slide-up .bcp-modal{transform:translateY(40px)}

.bcp-inner{
	position:relative;z-index:2;
	padding:clamp(22px,3.4vh,34px) clamp(20px,4.4vw,40px) clamp(20px,3vh,30px);
	text-align:center;
	transform-origin:top center;
}

/* Close */
.bcp-close{
	position:absolute;top:14px;right:16px;z-index:5;
	width:38px;height:38px;display:flex;align-items:center;justify-content:center;
	background:none;border:0;cursor:pointer;color:var(--bcp-navy);
	border-radius:50%;padding:0;line-height:0;transition:background .2s,transform .2s;
}
.bcp-close:hover{background:rgba(13,36,105,.08);transform:rotate(90deg)}

/* Decorations */
.bcp-wash{
	position:absolute;top:-70px;left:-70px;width:280px;height:230px;pointer-events:none;z-index:1;
	background:radial-gradient(closest-side,rgba(146,170,226,.62),rgba(146,170,226,.22) 60%,transparent 100%);
	filter:blur(6px);border-radius:50% 45% 55% 50%;
}
.bcp-leaf{position:absolute;bottom:0;width:min(150px,26vh);height:min(150px,26vh);color:#b4c6e8;pointer-events:none;z-index:1;opacity:.55}
.bcp-leaf-left{left:0}
.bcp-leaf-right{right:0;transform:scaleX(-1)}

/* Brand image — single slot, any format */
.bcp-brand{
	position:relative;margin:2px auto clamp(8px,1.6vh,14px);
	--bcp-brand-fit:min(var(--bcp-brand-size), 34vw, 24vh);
	width:var(--bcp-brand-fit);height:var(--bcp-brand-fit);
	display:flex;align-items:center;justify-content:center;
	color:var(--bcp-gold);
}
.bcp-brand-media{
	width:100%;height:100%;
	display:flex;align-items:center;justify-content:center;
	box-sizing:border-box;overflow:hidden;border-radius:50%;
}
.bcp-frame-outline .bcp-brand-media{
	border:1.5px solid var(--bcp-gold);
	padding:var(--bcp-brand-pad);
}
.bcp-frame-soft .bcp-brand-media{
	background:var(--bcp-box);
	padding:var(--bcp-brand-pad);
}
.bcp-frame-box .bcp-brand-media{
	border:1.5px solid var(--bcp-gold);
	border-radius:14px;padding:calc(var(--bcp-brand-pad) * .7) var(--bcp-brand-pad);
}
/* No frame: let wide logos use the full width instead of squeezing into a square */
.bcp-frame-none{width:auto;max-width:82%;height:var(--bcp-brand-fit)}
.bcp-frame-box{width:auto;max-width:82%;height:var(--bcp-brand-fit)}
.bcp-frame-none .bcp-brand-media,
.bcp-frame-box .bcp-brand-media{border-radius:0;overflow:visible;width:auto}
.bcp-frame-box .bcp-brand-media{border-radius:14px}
.bcp-brand-media img{
	max-width:100%;max-height:100%;width:auto;height:auto;
	object-fit:contain;display:block;
}
.bcp-brand-media svg{width:100%;height:100%}

.bcp-spark{position:absolute;background:var(--bcp-gold);border-radius:50%;opacity:.85}
.bcp-spark-1{width:7px;height:7px;top:14%;left:-13%}
.bcp-spark-2{width:5px;height:5px;top:33%;left:-23%;opacity:.6}
.bcp-spark-3{background:none;color:var(--bcp-gold);top:6%;right:-26%;width:26px;height:26px;line-height:0}
.bcp-spark-3 svg{width:26px;height:26px}

/* Headings */
.bcp-title{margin:0;padding:0;font-family:var(--bcp-font-heading);font-weight:700;line-height:1.16;letter-spacing:-.01em}
.bcp-title-1,.bcp-title-2{display:block}
.bcp-title-1{color:var(--bcp-navy);font-size:var(--bcp-heading-size);font-weight:500}
.bcp-title-2{color:var(--bcp-blue);font-size:calc(var(--bcp-heading-size) * 1.09);font-weight:700;margin-top:2px;letter-spacing:-.015em}

/* Divider */
.bcp-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:clamp(8px,1.4vh,14px) auto 0;max-width:74%;color:var(--bcp-gold)}
.bcp-divider .bcp-rule{flex:1;height:1px;background:var(--bcp-gold);opacity:.65;max-width:110px}
.bcp-divider svg{width:24px;height:24px;flex:none}

/* Subtitle */
.bcp-subtitle{margin:clamp(10px,1.7vh,16px) auto 0;max-width:88%;font-size:calc(var(--bcp-body-size) + 2px);line-height:1.5;color:var(--bcp-text);font-weight:400}
.bcp-subtitle strong{color:var(--bcp-blue);font-weight:600}

/* Promise box */
.bcp-promise{
	display:flex;align-items:center;gap:16px;text-align:left;
	background:var(--bcp-box);border-radius:12px;
	padding:clamp(11px,1.7vh,16px) 20px;margin:clamp(13px,2.1vh,20px) 0 clamp(14px,2.3vh,22px);
}
.bcp-promise-icon{flex:none;color:var(--bcp-blue);line-height:0}
.bcp-promise-icon svg{width:34px;height:34px;stroke-width:1.4}
.bcp-promise-text{font-size:calc(var(--bcp-body-size) - 1px);line-height:1.55;color:var(--bcp-text)}
.bcp-promise-text strong{color:var(--bcp-blue);font-weight:600}

/* Form */
.bcp-field{position:relative;margin-bottom:clamp(8px,1.3vh,12px)}
.bcp-field-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--bcp-blue);line-height:0;pointer-events:none}
.bcp-form input[type=text],.bcp-form input[type=tel]{
	width:100%;box-sizing:border-box;height:clamp(46px,6.6vh,58px);
	padding:0 18px 0 56px;margin:0;
	border:1.5px solid var(--bcp-border);border-radius:10px;
	background:#fff;color:var(--bcp-text);
	font-family:var(--bcp-font-body);font-size:calc(var(--bcp-body-size) + 1px);
	outline:none;box-shadow:none;transition:border-color .2s,box-shadow .2s;
}
.bcp-form input::placeholder{color:var(--bcp-muted);opacity:1}
.bcp-form input:focus{border-color:var(--bcp-blue);box-shadow:0 0 0 3px rgba(18,54,184,.12)}
.bcp-form input.bcp-invalid{border-color:#d9534f}

.bcp-submit{
	width:100%;display:flex;align-items:center;justify-content:center;gap:14px;
	height:clamp(50px,7.4vh,64px);margin-top:6px;padding:0 20px;
	background:var(--bcp-btn-bg);color:var(--bcp-btn-text);
	border:0;border-radius:10px;cursor:pointer;
	font-family:var(--bcp-font-body);font-size:calc(var(--bcp-body-size) + 3px);font-weight:600;
	transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
	box-shadow:0 10px 24px rgba(13,36,105,.22);
}
.bcp-submit:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(13,36,105,.30)}
.bcp-submit:active{transform:translateY(0)}
.bcp-submit[disabled]{opacity:.7;cursor:default;transform:none}
.bcp-btn-icon{color:var(--bcp-gold);line-height:0;flex:none}

.bcp-message{margin:12px 0 0;font-size:14px;line-height:1.5;display:none}
.bcp-message.bcp-show{display:block}
.bcp-message.bcp-ok{color:var(--bcp-blue);font-weight:600}
.bcp-message.bcp-err{color:#d9534f}

/* Consent */
.bcp-consent{
	display:block;margin:clamp(10px,1.7vh,16px) auto 0;max-width:92%;
	font-size:13px;line-height:1.55;color:#5a6070;
}
.bcp-lock{display:inline-block;vertical-align:-2px;margin-right:5px;color:var(--bcp-navy);line-height:0}

/* Footer */
.bcp-footer{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;gap:10px;margin:clamp(8px,1.4vh,14px) 0 0;flex-wrap:wrap}
.bcp-footer-text{font-size:calc(var(--bcp-body-size) + 1px);color:var(--bcp-text)}
.bcp-footer-script{
	position:relative;display:inline-block;
	font-family:var(--bcp-font-script);
	font-weight:700;font-style:normal;
	color:var(--bcp-blue);
	font-size:calc(var(--bcp-heading-size) * .92);
	line-height:1.05;letter-spacing:.005em;
	padding:0 8px .42em;
}
.bcp-footer-script .bcp-script-text{display:inline-block}
.bcp-swash{
	position:absolute;left:0;right:0;bottom:0;
	width:100%;height:.26em;
	color:var(--bcp-gold);
	overflow:visible;
}
.bcp-footer-heart{color:var(--bcp-gold);line-height:0}
.bcp-footer-heart svg{width:20px;height:20px}

/* Shortcode button */
button.bcp-open{
	display:inline-flex;align-items:center;justify-content:center;
	background:var(--bcp-btn-bg,#0d2469);color:#fff;border:0;border-radius:10px;
	padding:14px 26px;font-weight:600;cursor:pointer;font-size:16px;
}

/* Mobile */
@media (max-width:600px){
	.bcp-overlay{padding:clamp(10px,2vh,20px) 12px}
	.bcp-title-1{font-size:calc(var(--bcp-heading-size) * .62)}
	.bcp-title-2{font-size:calc(var(--bcp-heading-size) * .68)}
	.bcp-subtitle{max-width:100%;font-size:var(--bcp-body-size)}
	.bcp-promise{gap:12px;padding:14px 16px}
	.bcp-promise-icon svg{width:28px;height:28px}
	.bcp-form input[type=text],.bcp-form input[type=tel]{height:52px;padding-left:50px}
	.bcp-field-icon svg{width:21px;height:21px}
	.bcp-submit{height:56px;font-size:calc(var(--bcp-body-size) + 1px)}
	.bcp-leaf{width:min(120px,22vh);height:min(120px,22vh)}
	.bcp-brand{margin-bottom:10px}
	.bcp-spark-2{display:none}
	.bcp-footer-script{font-size:calc(var(--bcp-heading-size) * .74)}
	.bcp-consent{font-size:12px;max-width:100%}
	.bcp-overlay.bcp-pos-bottom-right .bcp-modal,
	.bcp-overlay.bcp-pos-bottom-left .bcp-modal{max-width:100%}
}

@media (prefers-reduced-motion:reduce){
	.bcp-overlay,.bcp-modal,.bcp-submit,.bcp-close{transition:none}
	.bcp-modal{transform:none}
}
