/**
 * SCFS15 slide-in promo popup (browsing)
 */

.scfs-promo-popup {
	--scfs-navy: #0a2540;
	--scfs-ocean: #0066cc;
	--scfs-ocean-deep: #004a99;
	--scfs-amber: #c47b0a;
	--scfs-cream: #fff8ee;
	position: fixed;
	inset: 0;
	z-index: 100010;
	pointer-events: none;
	font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.scfs-promo-popup[hidden] {
	display: none !important;
}

.scfs-promo-popup.is-open {
	pointer-events: auto;
}

.scfs-promo-popup__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(7, 26, 44, 0.42);
	opacity: 0;
	transition: opacity 0.35s ease;
}

.scfs-promo-popup.is-open .scfs-promo-popup__backdrop {
	opacity: 1;
}

.scfs-promo-popup__panel {
	position: absolute;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	width: min(100% - 2rem, 380px);
	background:
		radial-gradient(circle at top right, rgba(0, 102, 204, 0.12), transparent 42%),
		linear-gradient(165deg, #ffffff 0%, var(--scfs-cream) 100%);
	border: 1px solid rgba(10, 37, 64, 0.1);
	border-radius: 22px;
	box-shadow: 0 22px 60px rgba(10, 37, 64, 0.28);
	padding: 1.35rem 1.25rem 1.15rem;
	transform: translate3d(110%, 40px, 0) scale(0.96);
	opacity: 0;
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s ease;
	overflow: hidden;
}

.scfs-promo-popup.is-open .scfs-promo-popup__panel {
	transform: translate3d(0, 0, 0) scale(1);
	opacity: 1;
}

.scfs-promo-popup__panel::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 5px;
	background: linear-gradient(180deg, var(--scfs-amber), var(--scfs-ocean));
}

.scfs-promo-popup__close {
	position: absolute;
	top: 0.7rem;
	right: 0.7rem;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	border: 1px solid rgba(10, 37, 64, 0.12);
	background: rgba(255, 255, 255, 0.9);
	color: var(--scfs-navy);
	font-size: 1.3rem;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	z-index: 2;
}

.scfs-promo-popup__close:hover,
.scfs-promo-popup__close:focus-visible {
	background: #fff;
	outline: 2px solid var(--scfs-ocean);
	outline-offset: 2px;
}

.scfs-promo-popup__badge {
	width: 72px;
	height: 72px;
	border-radius: 20px;
	display: grid;
	place-content: center;
	text-align: center;
	background: linear-gradient(145deg, var(--scfs-navy), var(--scfs-ocean));
	color: #fff;
	box-shadow: 0 12px 28px rgba(0, 102, 204, 0.28);
	margin-bottom: 1rem;
}

.scfs-promo-popup__badge span {
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1;
}

.scfs-promo-popup__badge small {
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	font-weight: 700;
}

.scfs-promo-slider {
	min-height: 148px;
	margin-bottom: 1rem;
}

.scfs-promo-slide[hidden] {
	display: none;
}

.scfs-promo-slide__eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--scfs-amber);
}

.scfs-promo-slide__title {
	margin: 0 0 0.55rem;
	font-size: 1.28rem;
	line-height: 1.25;
	color: var(--scfs-navy);
	font-weight: 700;
	padding-right: 1.5rem;
}

.scfs-promo-slide__text {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	color: #445261;
}

.scfs-promo-slider__dots {
	display: flex;
	gap: 0.4rem;
	margin-top: 0.95rem;
}

.scfs-promo-slider__dot {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	border: 0;
	padding: 0;
	background: rgba(10, 37, 64, 0.2);
	cursor: pointer;
	transition: width 0.25s ease, background 0.25s ease;
}

.scfs-promo-slider__dot.is-active {
	width: 22px;
	background: var(--scfs-ocean);
}

.scfs-promo-popup__actions {
	display: grid;
	gap: 0.55rem;
}

.scfs-promo-popup__code {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	min-height: 48px;
	padding: 0.45rem 0.55rem 0.45rem 0.85rem;
	border-radius: 999px;
	border: 1px dashed rgba(0, 102, 204, 0.45);
	background: #fff;
	cursor: pointer;
	font: inherit;
	color: var(--scfs-navy);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.scfs-promo-popup__code:hover,
.scfs-promo-popup__code:focus-visible {
	border-color: var(--scfs-ocean);
	box-shadow: 0 10px 22px rgba(0, 102, 204, 0.14);
	transform: translateY(-1px);
	outline: none;
}

.scfs-promo-popup__code.is-copied {
	border-style: solid;
	border-color: #1a7f4b;
}

.scfs-promo-popup__code-label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #667788;
	display: block;
}

.scfs-promo-popup__code-value {
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	color: var(--scfs-ocean-deep);
}

.scfs-promo-popup__code-hint {
	font-size: 0.78rem;
	font-weight: 700;
	color: #fff;
	background: var(--scfs-ocean);
	border-radius: 999px;
	padding: 0.4rem 0.8rem;
	white-space: nowrap;
}

.scfs-promo-popup__code.is-copied .scfs-promo-popup__code-hint {
	background: #1a7f4b;
}

.scfs-promo-popup__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.7rem 1rem;
	border-radius: 999px;
	background: var(--scfs-navy);
	color: #fff !important;
	text-decoration: none !important;
	font-weight: 700;
	font-size: 0.95rem;
	transition: background 0.2s ease, transform 0.2s ease;
}

.scfs-promo-popup__cta:hover,
.scfs-promo-popup__cta:focus-visible {
	background: var(--scfs-ocean);
	transform: translateY(-1px);
	outline: none;
}

.scfs-promo-popup__fine {
	margin: 0.75rem 0 0;
	font-size: 0.75rem;
	color: #6a7784;
	text-align: center;
}

@media (max-width: 560px) {
	.scfs-promo-popup__panel {
		right: 0.75rem;
		left: 0.75rem;
		bottom: 0.75rem;
		width: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.scfs-promo-popup__backdrop,
	.scfs-promo-popup__panel,
	.scfs-promo-popup__code,
	.scfs-promo-popup__cta,
	.scfs-promo-slider__dot {
		transition: none !important;
	}

	.scfs-promo-popup__panel {
		transform: none;
	}
}

/* Always-active floating promo tab */
.scfs-promo-launcher {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(5.5rem, calc(env(safe-area-inset-bottom) + 5rem));
	z-index: 100009;
	width: 64px;
	height: 64px;
	border-radius: 18px;
	border: 0;
	cursor: pointer;
	display: grid;
	place-content: center;
	background: linear-gradient(145deg, #0a2540, #0066cc);
	color: #fff;
	box-shadow: 0 14px 32px rgba(0, 102, 204, 0.35);
	transform: translateX(120%);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.35s ease, opacity 0.35s ease;
	font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.scfs-promo-launcher[hidden] {
	display: none !important;
}

.scfs-promo-launcher.is-visible {
	transform: translateX(0);
	opacity: 1;
	pointer-events: auto;
}

.scfs-promo-launcher__pct {
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1;
}

.scfs-promo-launcher__txt {
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.scfs-promo-launcher:hover,
.scfs-promo-launcher:focus-visible {
	filter: brightness(1.06);
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.scfs-promo-popup.is-active .scfs-promo-popup__panel {
	animation: scfs-promo-pulse 1.2s ease 1;
}

@keyframes scfs-promo-pulse {
	0% { box-shadow: 0 22px 60px rgba(10, 37, 64, 0.28); }
	40% { box-shadow: 0 22px 60px rgba(0, 102, 204, 0.45); }
	100% { box-shadow: 0 22px 60px rgba(10, 37, 64, 0.28); }
}
