.fnoc-wrap,
.fnoc-wrap *,
.fnoc-bundle-inline-slot,
.fnoc-bundle-inline-slot *,
.fnoc-bundle-popup-slot,
.fnoc-bundle-popup-slot * {
	box-sizing: border-box;
}

.fnoc-wrap {
	width: 100%;
	max-width: 1180px;
	margin: 26px auto;
	padding: 0 16px;
	clear: both;
}

.fnoc-card {
	position: relative;
	overflow: hidden;
	width: 100%;
	padding: clamp(26px, 3.5vw, 38px) clamp(20px, 6vw, 72px) 20px;
	border: 1px solid #ffcda9;
	border-radius: 24px;
	background:
		radial-gradient(circle at 50% 42%, rgba(255, 146, 65, 0.11), transparent 35%),
		radial-gradient(circle at 88% 9%, rgba(255, 147, 67, 0.12), transparent 25%),
		linear-gradient(135deg, #fffdfb 0%, #fff8f1 55%, #fffaf5 100%);
	box-shadow:
		0 18px 45px rgba(25, 35, 50, 0.09),
		0 5px 18px rgba(255, 104, 0, 0.07);
	transition: opacity .35s ease, transform .35s ease;
}

.fnoc-card.fnoc-is-expired {
	opacity: 0;
	transform: translateY(8px);
}

.fnoc-content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.fnoc-title {
	margin: 0 0 18px;
	font-family: inherit;
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.035em;
	color: #152033;
}

.fnoc-title span {
	display: block;
	margin-bottom: 5px;
	font-size: 1.18em;
	color: #ff5b00;
}

.fnoc-timer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(7px, 1.2vw, 13px);
	margin: 0 auto 17px;
}

.fnoc-time-box {
	display: flex;
	flex: 0 1 118px;
	min-width: 86px;
	min-height: 94px;
	padding: 12px 9px 10px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	border: 1px solid rgba(255, 255, 255, .9);
	border-radius: 17px;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 8px 20px rgba(22, 31, 45, .06);
}

.fnoc-time-box strong {
	font-size: clamp(34px, 4vw, 44px);
	line-height: .95;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	color: #ff5b00;
}

.fnoc-time-box span {
	margin-top: 7px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .03em;
	color: #68707c;
}

.fnoc-colon {
	margin-top: -8px;
	font-size: clamp(25px, 3vw, 34px);
	font-weight: 700;
	color: #172136;
}

.fnoc-description {
	max-width: 680px;
	margin: 0 auto 15px;
	font-size: clamp(15px, 1.7vw, 18px);
	line-height: 1.42;
	color: #1b2739;
}

.fnoc-description strong,
.fnoc-note strong {
	font-weight: 750;
	color: #ff5b00;
}

.fnoc-code-row {
	display: grid;
	grid-template-columns: auto minmax(0, auto) 38px;
	align-items: center;
	justify-content: center;
	gap: 13px;
	width: 100%;
	min-height: 62px;
	margin: 0 auto 12px;
	padding: 9px 18px;
	border: 1px dashed #ffc495;
	border-radius: 15px;
	background: rgba(255, 250, 246, .78);
}

.fnoc-code-label {
	font-size: clamp(14px, 1.6vw, 17px);
	color: #69717c;
}

.fnoc-code {
	font-size: clamp(19px, 2.3vw, 25px);
	font-weight: 800;
	letter-spacing: .02em;
	color: #ff5b00;
	word-break: break-all;
}

.fnoc-copy {
	position: relative;
	display: inline-flex;
	width: 38px;
	height: 38px;
	padding: 7px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: #ff5b00;
	cursor: pointer;
	font-size: 0 !important;
	line-height: 0 !important;
	transition: background-color .2s ease, transform .2s ease;
}

.fnoc-copy:hover,
.fnoc-copy:focus-visible {
	background: rgba(255, 91, 0, .09);
	outline: none;
	transform: translateY(-1px);
}

.fnoc-copy svg {
	display: block;
	width: 23px;
	height: 23px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
}

.fnoc-copy .screen-reader-text,
.fnoc-copy .woocommerce-screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.fnoc-copy.fnoc-copied::after {
	content: "Copied";
	position: absolute;
	top: -36px;
	left: 50%;
	z-index: 10;
	padding: 6px 9px;
	border-radius: 7px;
	background: #172136;
	color: #fff;
	font-size: 12px;
	line-height: 1.2;
	font-weight: 600;
	white-space: nowrap;
	transform: translateX(-50%);
}

.fnoc-shop-button {
	display: flex;
	width: 100%;
	min-height: 58px;
	padding: 12px 22px;
	align-items: center;
	justify-content: center;
	gap: 18px;
	border-radius: 16px;
	background: linear-gradient(90deg, #ff6900 0%, #ff5200 100%);
	box-shadow: 0 10px 22px rgba(255, 91, 0, .20);
	color: #fff !important;
	font-size: clamp(17px, 2vw, 21px);
	font-weight: 750;
	text-decoration: none !important;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.fnoc-shop-button:hover,
.fnoc-shop-button:focus-visible {
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 14px 27px rgba(255, 91, 0, .27);
	filter: saturate(1.08);
	outline: none;
}

.fnoc-shop-button svg {
	width: 23px;
	height: 23px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	transition: transform .2s ease;
}

.fnoc-shop-button:hover svg {
	transform: translateX(4px);
}

.fnoc-note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 14px 0 0;
	font-size: clamp(12px, 1.4vw, 15px);
	line-height: 1.4;
	color: #727984;
}

.fnoc-note svg {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: #ff5b00;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.fnoc-gift {
	position: absolute;
	top: 16px;
	right: 25px;
	width: 70px;
	height: 70px;
	color: rgba(255, 128, 30, .09);
	transform: rotate(10deg);
}

.fnoc-gift svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.fnoc-spark {
	position: absolute;
	z-index: 1;
	color: rgba(255, 132, 40, .25);
	font-size: 18px;
}

.fnoc-spark-one {
	top: 22%;
	left: 12%;
}

.fnoc-spark-two {
	top: 37%;
	right: 11%;
	font-size: 14px;
}

/* Bundle savings bar and slide-in notification */
.fnoc-bundle-inline-slot {
	width: 100%;
	margin: 0 0 16px;
	clear: both;
}

/* Bottom-left on desktop and mobile. */
.fnoc-bundle-popup-slot {
	position: fixed;
	z-index: 999999;
	top: auto;
	bottom: 18px;
	left: 18px;
	width: min(420px, calc(100vw - 36px));
	opacity: 0;
	visibility: hidden;
	transform: translateX(calc(-100% - 40px));
	transition: transform .38s cubic-bezier(.2,.8,.2,1), opacity .28s ease, visibility .28s ease;
}

.fnoc-bundle-popup-slot.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

.fnoc-bundle-widget {
	position: relative;
	overflow: hidden;
	width: 100%;
	border: 1px solid rgba(202, 83, 210, .14);
	border-radius: 15px;
	background: linear-gradient(100deg, #ffe9fb 0%, #f4d5fb 100%);
	box-shadow: 0 10px 28px rgba(53, 37, 69, .16);
	color: #171226;
}

.fnoc-bundle-widget-inline {
	border-radius: 14px;
	box-shadow: none;
}

.fnoc-bundle-widget.is-unlocked {
	background: linear-gradient(100deg, #eafcf2 0%, #dff8ec 100%);
	border-color: rgba(28, 166, 94, .18);
}

.fnoc-bundle-summary {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) 30px;
	align-items: center;
	gap: 9px;
	width: 100%;
	min-height: 54px;
	padding: 7px 36px 7px 8px;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	text-transform: none;
	cursor: pointer;
}

.fnoc-bundle-widget-inline .fnoc-bundle-summary {
	padding-right: 10px;
}

.fnoc-bundle-summary:focus-visible {
	outline: 2px solid #d738c3;
	outline-offset: -3px;
}

.fnoc-bundle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .9);
	color: #d638bf;
	font-size: 16px;
	font-weight: 800;
	box-shadow: 0 3px 10px rgba(42, 23, 54, .06);
}

.fnoc-bundle-widget.is-unlocked .fnoc-bundle-icon {
	color: #149655;
}

.fnoc-bundle-copy {
	display: block;
	min-width: 0;
}

.fnoc-bundle-copy strong,
.fnoc-bundle-copy small {
	display: block;
	text-transform: none;
}

.fnoc-bundle-copy strong {
	margin-bottom: 0;
	font-size: 14px;
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: .08em;
	color: #171226;
	text-transform: uppercase;
}

.fnoc-bundle-copy small {
	overflow: hidden;
	font-size: 10.5px;
	line-height: 1.25;
	font-weight: 500;
	letter-spacing: .05em;
	color: #614e68;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fnoc-bundle-plus {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 29px;
	height: 29px;
	border-radius: 50%;
	background: #d936bf;
	color: #fff;
	font-size: 20px;
	font-weight: 600;
	line-height: 1;
}

.fnoc-bundle-widget.is-unlocked .fnoc-bundle-plus {
	background: #15965a;
}

.fnoc-bundle-progress {
	height: 3px;
	background: rgba(255, 255, 255, .45);
}

.fnoc-bundle-progress span {
	display: block;
	height: 100%;
	border-radius: 99px;
	background: linear-gradient(90deg, #bd37d5, #ec4db4);
	transition: width .35s ease;
}

.fnoc-bundle-widget.is-unlocked .fnoc-bundle-progress span {
	background: linear-gradient(90deg, #29b76e, #15965a);
}

/* The popup is open by default; compact two-column tiers keep its height low. */
.fnoc-bundle-details {
	padding: 7px 8px 9px;
	border-top: 1px solid rgba(84, 42, 93, .08);
	background: rgba(255, 255, 255, .48);
}

.fnoc-bundle-details ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fnoc-bundle-tier {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 6px;
	min-width: 0;
	padding: 7px 8px;
	border: 0;
	border-radius: 9px;
	background: rgba(255, 255, 255, .54);
}

.fnoc-bundle-tier span,
.fnoc-bundle-tier strong,
.fnoc-bundle-tier small {
	display: block;
	min-width: 0;
}

.fnoc-bundle-tier strong {
	font-size: 11.5px;
	line-height: 1.15;
	color: #24182a;
}

.fnoc-bundle-tier small {
	overflow: hidden;
	margin-top: 1px;
	font-size: 9.5px;
	line-height: 1.2;
	color: #74647a;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fnoc-bundle-tier b {
	max-width: 86px;
	padding: 4px 6px;
	overflow: hidden;
	border-radius: 7px;
	background: rgba(255, 255, 255, .82);
	font-size: 9.5px;
	line-height: 1.15;
	color: #71426d;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fnoc-bundle-tier.is-unlocked b {
	background: #fff;
	color: #14844e;
}

.fnoc-bundle-actions {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 6px;
	margin-top: 7px;
}

.fnoc-bundle-apply,
.fnoc-bundle-copy-code {
	min-height: 32px;
	padding: 6px 10px;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 750;
	cursor: pointer;
}

.fnoc-bundle-apply {
	border: 1px solid #15965a;
	background: #15965a;
	color: #fff;
}

.fnoc-bundle-apply:disabled {
	opacity: .65;
	cursor: default;
}

.fnoc-bundle-copy-code {
	border: 1px solid rgba(31, 24, 37, .16);
	background: #fff;
	color: #2d2232;
}

.fnoc-bundle-feedback {
	min-height: 0;
	margin-top: 4px;
	font-size: 10px;
	line-height: 1.25;
	color: #29754e;
}

.fnoc-bundle-close {
	position: absolute;
	z-index: 4;
	top: 4px;
	right: 4px;
	display: block;
	width: 25px;
	height: 25px;
	padding: 0;
	border: 1px solid rgba(31, 22, 36, .1);
	border-radius: 50%;
	background: #fff;
	color: #4c3c51;
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 3px 9px rgba(35, 22, 42, .11);
}

@media (max-width: 640px) {
	.fnoc-wrap {
		margin: 18px auto;
		padding: 0 7px;
	}

	.fnoc-card {
		padding: 24px 11px 16px;
		border-radius: 19px;
	}

	.fnoc-title {
		margin-bottom: 15px;
		font-size: 27px;
	}

	.fnoc-title span {
		margin-bottom: 4px;
	}

	.fnoc-timer {
		gap: 5px;
		margin-bottom: 14px;
	}

	.fnoc-time-box {
		flex-basis: 90px;
		min-width: 0;
		min-height: 76px;
		padding: 8px 5px 7px;
		border-radius: 13px;
	}

	.fnoc-time-box strong {
		font-size: 30px;
	}

	.fnoc-time-box span {
		margin-top: 5px;
		font-size: 10px;
	}

	.fnoc-colon {
		margin-top: -5px;
		font-size: 20px;
	}

	.fnoc-description {
		margin-bottom: 12px;
		font-size: 13px;
		line-height: 1.4;
	}

	.fnoc-code-row {
		grid-template-columns: auto minmax(0, auto) 34px;
		gap: 6px;
		min-height: 53px;
		padding: 7px 9px;
		border-radius: 13px;
	}

	.fnoc-code-label {
		font-size: 11px;
	}

	.fnoc-code {
		font-size: 17px;
		text-align: center;
	}

	.fnoc-copy {
		width: 32px;
		height: 32px;
		padding: 5px;
	}

	.fnoc-copy svg {
		width: 21px;
		height: 21px;
	}

	.fnoc-shop-button {
		min-height: 50px;
		padding: 10px 16px;
		border-radius: 14px;
		font-size: 17px;
	}

	.fnoc-shop-button svg {
		width: 20px;
		height: 20px;
	}

	.fnoc-note {
		gap: 6px;
		margin-top: 11px;
		font-size: 11px;
	}

	.fnoc-note svg {
		flex-basis: 17px;
		width: 17px;
		height: 17px;
	}

	.fnoc-gift {
		top: 10px;
		right: 10px;
		width: 50px;
		height: 50px;
	}

	.fnoc-spark-one {
		left: 4%;
	}

	.fnoc-spark-two {
		right: 3%;
	}

	.fnoc-bundle-popup-slot {
		top: auto;
		bottom: 8px;
		left: 8px;
		width: calc(100vw - 16px);
	}

	.fnoc-bundle-widget {
		border-radius: 13px;
	}

	.fnoc-bundle-summary {
		grid-template-columns: 32px minmax(0, 1fr) 26px;
		gap: 7px;
		min-height: 47px;
		padding: 5px 31px 5px 7px;
	}

	.fnoc-bundle-icon {
		width: 32px;
		height: 32px;
		font-size: 14px;
	}

	.fnoc-bundle-copy strong {
		font-size: 12.5px;
		letter-spacing: .07em;
	}

	.fnoc-bundle-copy small {
		font-size: 9px;
		line-height: 1.15;
		white-space: nowrap;
	}

	.fnoc-bundle-plus {
		width: 26px;
		height: 26px;
		font-size: 18px;
	}

	.fnoc-bundle-details {
		padding: 5px 6px 7px;
	}

	.fnoc-bundle-details ul {
		gap: 5px;
	}

	.fnoc-bundle-tier {
		gap: 4px;
		padding: 5px 6px;
		border-radius: 8px;
	}

	.fnoc-bundle-tier strong {
		font-size: 10.5px;
	}

	.fnoc-bundle-tier small,
	.fnoc-bundle-tier b {
		font-size: 8.5px;
	}

	.fnoc-bundle-tier b {
		max-width: 70px;
		padding: 3px 5px;
	}

	.fnoc-bundle-actions {
		margin-top: 5px;
	}

	.fnoc-bundle-apply,
	.fnoc-bundle-copy-code {
		min-height: 29px;
		padding: 5px 8px;
		font-size: 10px;
	}

	.fnoc-bundle-close {
		top: 3px;
		right: 3px;
		width: 23px;
		height: 23px;
		font-size: 16px;
	}
}



/* Applied WooCommerce coupons inside the custom ADSS order summary. */
.advsmms-ov2-summary-totals .fnoc-adss-discount-row {
	color: #15965a;
}

.advsmms-ov2-summary-totals .fnoc-adss-discount-label {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.advsmms-ov2-summary-totals .fnoc-adss-coupon-code {
	display: inline-flex;
	align-items: center;
	max-width: 150px;
	padding: 3px 7px;
	overflow: hidden;
	border: 1px dashed rgba(21, 150, 90, .34);
	border-radius: 6px;
	background: rgba(21, 150, 90, .07);
	color: #117946;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .10em;
	line-height: 1.2;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.advsmms-ov2-summary-totals .fnoc-adss-discount-value {
	color: #15965a;
	font-weight: 800;
	white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
	.fnoc-card,
	.fnoc-copy,
	.fnoc-shop-button,
	.fnoc-shop-button svg,
	.fnoc-bundle-popup-slot,
	.fnoc-bundle-progress span {
		transition: none;
	}
}
