
/* ================================================================
   True Biology Researcher Verification v5.1.9   Rebuilt to match the supplied compact cream-card reference.
   ================================================================ */

.stb-age-gate,
.stb-age-gate *,
.stb-age-gate *::before,
.stb-age-gate *::after{
	box-sizing:border-box!important;
	margin:0!important;
	padding:0!important;
	font-style:normal!important;
	font-synthesis:none!important;
	text-transform:none!important;
}

.stb-age-gate [hidden]{display:none!important}

.stb-age-gate{
	--stb-cream:#F7F3EC;
	--stb-white:#FFFFFF;
	--stb-ink:#1A1A1A;
	--stb-body:#68645E;
	--stb-muted:#96918A;
	--stb-border:#E8E4DD;
	--stb-disabled:#AAA7A3;
	--stb-backdrop:rgba(82,76,67,.72);
	--stb-font:"Poppins",Arial,sans-serif;

	position:fixed!important;
	inset:0!important;
	z-index:2147483000!important;
	display:none;
	align-items:center!important;
	justify-content:center!important;
	padding:max(5px,env(safe-area-inset-top,0px))
	        max(5px,env(safe-area-inset-right,0px))
	        max(5px,env(safe-area-inset-bottom,0px))
	        max(5px,env(safe-area-inset-left,0px))!important;
	overflow:hidden!important;
	color:var(--stb-ink)!important;
	font-family:var(--stb-font)!important;
	font-size:16px!important;
	line-height:1.5!important;
	-webkit-font-smoothing:antialiased!important;
	-moz-osx-font-smoothing:grayscale!important;
	text-rendering:optimizeLegibility!important;
	isolation:isolate!important;
}

html.stb-age-pending .stb-age-gate{display:flex!important}
html.stb-age-verified .stb-age-gate{display:none!important}
html.stb-age-pending,
html.stb-age-pending body{
	overflow:hidden!important;
	overscroll-behavior:none!important;
}

.stb-age-backdrop{
	position:absolute!important;
	inset:0!important;
	background:var(--stb-backdrop)!important;
	backdrop-filter:none!important;
	-webkit-backdrop-filter:none!important;
	filter:none!important;
}

.stb-age-gate,
.stb-age-gate::before,
.stb-age-gate::after,
.stb-age-backdrop,
.stb-age-dialog{
	backdrop-filter:none!important;
	-webkit-backdrop-filter:none!important;
	filter:none!important;
}

.stb-age-dialog{
	position:relative!important;
	z-index:2!important;
	display:block!important;
	width:min(560px,100%)!important;
	max-width:560px!important;
	max-height:calc(100dvh - 10px)!important;
	overflow-y:auto!important;
	overscroll-behavior:contain!important;
	padding:47px 44px 41px!important;
	background:var(--stb-cream)!important;
	border:0!important;
	border-radius:22px!important;
	box-shadow:0 22px 58px rgba(36,31,25,.20)!important;
	outline:0!important;
	text-align:left!important;
	scrollbar-width:thin!important;
	animation:stbGateIn .28s ease-out both!important;
}

@keyframes stbGateIn{
	from{opacity:0;transform:translateY(7px) scale(.995)}
	to{opacity:1;transform:none}
}

.stb-age-dialog::-webkit-scrollbar{width:5px}
.stb-age-dialog::-webkit-scrollbar-thumb{
	background:#CFC9C0!important;
	border-radius:20px!important;
}

.stb-age-eyebrow{
	display:block!important;
	color:#99958F!important;
	font-family:var(--stb-font)!important;
	font-size:11px!important;
	font-weight:400!important;
	line-height:1.35!important;
	letter-spacing:.085em!important;
	text-transform:uppercase!important;
}

.stb-age-dialog h2{
	display:block!important;
	margin-top:14px!important;
	color:var(--stb-ink)!important;
	font-family:var(--stb-font)!important;
	font-size:26px!important;
	font-weight:500!important;
	line-height:1.23!important;
	letter-spacing:-.035em!important;
	text-wrap:balance!important;
}

.stb-age-primary{
	display:block!important;
	margin-top:15px!important;
	max-width:100%!important;
	color:var(--stb-body)!important;
	font-family:var(--stb-font)!important;
	font-size:13px!important;
	font-weight:400!important;
	line-height:1.55!important;
	letter-spacing:-.012em!important;
	text-wrap:pretty!important;
}

.stb-age-confirmations{
	display:grid!important;
	grid-template-columns:1fr!important;
	gap:10px!important;
	width:100%!important;
	margin-top:18px!important;
}

.stb-age-confirm{
	display:flex!important;
	align-items:center!important;
	gap:12px!important;
	width:100%!important;
	min-height:49px!important;
	padding:12px 16px!important;
	background:var(--stb-white)!important;
	border:1px solid transparent!important;
	border-radius:13px!important;
	color:var(--stb-ink)!important;
	cursor:pointer!important;
	user-select:none!important;
	-webkit-user-select:none!important;
	-webkit-tap-highlight-color:transparent!important;
	transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease!important;
}

.stb-age-confirm:nth-child(2){
	min-height:68px!important;
	align-items:flex-start!important;
	padding-top:13px!important;
	padding-bottom:13px!important;
}

.stb-age-confirm:hover{
	border-color:#DDD8CF!important;
	box-shadow:0 2px 9px rgba(45,39,32,.04)!important;
}

.stb-age-confirm.is-checked{
	border-color:#D8D3CB!important;
	background:#FFF!important;
}

.stb-age-confirm-input{
	appearance:none!important;
	-webkit-appearance:none!important;
	display:grid!important;
	place-content:center!important;
	flex:0 0 13px!important;
	width:13px!important;
	height:13px!important;
	margin-top:1px!important;
	background:#FFF!important;
	border:1px solid #8F8E8A!important;
	border-radius:2px!important;
	outline:0!important;
	cursor:pointer!important;
}

.stb-age-confirm:nth-child(2) .stb-age-confirm-input{
	margin-top:2px!important;
}

.stb-age-confirm-input::before{
	content:""!important;
	width:7px!important;
	height:4px!important;
	border-left:1.7px solid #FFF!important;
	border-bottom:1.7px solid #FFF!important;
	transform:rotate(-45deg) scale(0)!important;
	transform-origin:center!important;
	transition:transform .12s ease!important;
}

.stb-age-confirm-input:checked{
	background:var(--stb-ink)!important;
	border-color:var(--stb-ink)!important;
}

.stb-age-confirm-input:checked::before{
	transform:rotate(-45deg) scale(1)!important;
}

.stb-age-confirm-input:focus-visible{
	outline:2px solid rgba(26,26,26,.28)!important;
	outline-offset:3px!important;
}

.stb-age-confirm-text{
	display:block!important;
	min-width:0!important;
	color:#373533!important;
	font-family:var(--stb-font)!important;
	font-size:13px!important;
	font-weight:400!important;
	line-height:1.55!important;
	letter-spacing:-.012em!important;
}

.stb-age-confirm-text strong{
	font-family:inherit!important;
	font-weight:500!important;
	color:#292725!important;
}

.stb-age-error{
	display:block!important;
	margin-top:9px!important;
	color:#943D31!important;
	font-family:var(--stb-font)!important;
	font-size:11px!important;
	font-weight:500!important;
	line-height:1.45!important;
}

.stb-age-enter,
.stb-age-exit{
	appearance:none!important;
	-webkit-appearance:none!important;
	font-family:var(--stb-font)!important;
	text-align:center!important;
	-webkit-tap-highlight-color:transparent!important;
}

.stb-age-gate .stb-age-enter{
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	width:100%!important;
	min-height:56px!important;
	margin-top:16px!important;
	padding:13px 20px!important;
	background:var(--stb-ink)!important;
	background-image:none!important;
	border:0!important;
	border-radius:999px!important;
	box-shadow:none!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
	font-size:15.5px!important;
	font-weight:600!important;
	line-height:1.25!important;
	letter-spacing:-.02em!important;
	cursor:pointer!important;
	transition:background-color .16s ease,transform .16s ease!important;
}

.stb-age-gate .stb-age-enter:hover,
.stb-age-gate .stb-age-enter:focus{
	background:#000!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
}

.stb-age-gate .stb-age-enter:active{
	transform:translateY(1px)!important;
}

.stb-age-gate .stb-age-enter.is-locked,
.stb-age-gate .stb-age-enter.is-locked:hover,
.stb-age-gate .stb-age-enter.is-locked:focus{
	background:var(--stb-disabled)!important;
	background-color:var(--stb-disabled)!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
	cursor:not-allowed!important;
	transform:none!important;
}

.stb-age-gate .stb-age-enter:focus-visible,
.stb-age-gate .stb-age-exit:focus-visible{
	outline:2px solid rgba(26,26,26,.35)!important;
	outline-offset:3px!important;
}

.stb-age-gate .stb-age-exit{
	display:block!important;
	width:auto!important;
	margin:10px auto 0!important;
	padding:3px 2px!important;
	background:transparent!important;
	background-image:none!important;
	border:0!important;
	border-radius:0!important;
	box-shadow:none!important;
	color:#96918A!important;
	-webkit-text-fill-color:#96918A!important;
	font-size:11px!important;
	font-weight:400!important;
	line-height:1.45!important;
	text-decoration:underline!important;
	text-decoration-thickness:.7px!important;
	text-underline-offset:2px!important;
	cursor:pointer!important;
}

.stb-age-gate .stb-age-exit:hover{
	color:#5D5953!important;
	-webkit-text-fill-color:#5D5953!important;
}

.stb-age-footnote{
	display:block!important;
	margin-top:17px!important;
	color:#AAA69F!important;
	font-family:var(--stb-font)!important;
	font-size:8.7px!important;
	font-weight:400!important;
	line-height:1.65!important;
	letter-spacing:.075em!important;
	text-transform:uppercase!important;
}

/* Mobile */
@media (max-width:600px){
	.stb-age-gate{
		align-items:center!important;
		padding:max(6px,env(safe-area-inset-top,0px))
		        max(6px,env(safe-area-inset-right,0px))
		        max(6px,env(safe-area-inset-bottom,0px))
		        max(6px,env(safe-area-inset-left,0px))!important;
	}

	.stb-age-dialog{
		width:100%!important;
		max-height:calc(100dvh - 12px)!important;
		padding:34px 26px 30px!important;
		border-radius:20px!important;
	}

	.stb-age-dialog h2{
		font-size:24px!important;
		line-height:1.25!important;
	}

	.stb-age-primary{
		font-size:12.8px!important;
	}

	.stb-age-confirm{
		padding-left:14px!important;
		padding-right:14px!important;
	}

	.stb-age-confirm-text{
		font-size:12.7px!important;
	}

	.stb-age-footnote{
		font-size:8.2px!important;
	}
}

@media (max-width:380px){
	.stb-age-dialog{
		padding:28px 20px 25px!important;
	}

	.stb-age-dialog h2{
		font-size:22px!important;
	}

	.stb-age-confirm{
		gap:10px!important;
	}
}

/* Short viewport / landscape */
@media (max-height:560px){
	.stb-age-gate{
		align-items:flex-start!important;
	}

	.stb-age-dialog{
		margin:auto 0!important;
		padding-top:28px!important;
		padding-bottom:26px!important;
	}

	.stb-age-dialog h2{margin-top:10px!important}
	.stb-age-primary{margin-top:10px!important}
	.stb-age-confirmations{margin-top:14px!important}
	.stb-age-gate .stb-age-enter{margin-top:13px!important}
	.stb-age-footnote{margin-top:13px!important}
}

@media (prefers-reduced-motion:reduce){
	.stb-age-gate *,
	.stb-age-gate *::before,
	.stb-age-gate *::after{
		animation:none!important;
		transition:none!important;
	}
}

@media (forced-colors:active){
	.stb-age-dialog{border:2px solid CanvasText!important}
	.stb-age-confirm{border:1px solid CanvasText!important}
}


/* ================================================================
   First-order 15% off popup — shown only after researcher verification.
   No backdrop blur is used anywhere.
   ================================================================ */
.stb-offer,
.stb-offer *,
.stb-offer *::before,
.stb-offer *::after{
	box-sizing:border-box!important;
	margin:0!important;
	padding:0!important;
	font-style:normal!important;
	font-synthesis:none!important;
	text-transform:none!important;
}

.stb-offer[hidden],
.stb-offer [hidden]{display:none!important}

html.stb-offer-open,
html.stb-offer-open body{
	overflow:hidden!important;
	overscroll-behavior:none!important;
}

.stb-offer{
	--stbo-cream:#F7F3EC;
	--stbo-warm:#F1DDB4;
	--stbo-ink:#1A1A1A;
	--stbo-body:#6E6962;
	--stbo-muted:#9C9790;
	--stbo-line:#BEBAB4;
	--stbo-font:"Poppins",Arial,sans-serif;

	position:fixed!important;
	inset:0!important;
	z-index:2147483001!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	padding:max(12px,env(safe-area-inset-top,0px))
	        max(12px,env(safe-area-inset-right,0px))
	        max(12px,env(safe-area-inset-bottom,0px))
	        max(12px,env(safe-area-inset-left,0px))!important;
	font-family:var(--stbo-font)!important;
	color:var(--stbo-ink)!important;
	isolation:isolate!important;
	-webkit-font-smoothing:antialiased!important;
	-moz-osx-font-smoothing:grayscale!important;
}

.stb-offer,
.stb-offer-overlay,
.stb-offer-card{
	backdrop-filter:none!important;
	-webkit-backdrop-filter:none!important;
	filter:none!important;
}

.stb-offer-overlay{
	position:absolute!important;
	inset:0!important;
	z-index:0!important;
	background:rgba(83,76,64,.58)!important;
	cursor:pointer!important;
}

.stb-offer-card{
	position:relative!important;
	z-index:1!important;
	display:grid!important;
	grid-template-columns:1fr 1fr!important;
	width:min(720px,calc(100vw - 24px))!important;
	max-width:720px!important;
	min-height:371px!important;
	max-height:calc(100dvh - 24px)!important;
	overflow:auto!important;
	background:var(--stbo-cream)!important;
	border:0!important;
	border-radius:21px!important;
	box-shadow:0 24px 70px rgba(31,27,22,.22)!important;
	outline:0!important;
	animation:stbOfferIn .28s cubic-bezier(.22,.8,.28,1) both!important;
}

@keyframes stbOfferIn{
	from{opacity:0;transform:translateY(8px) scale(.992)}
	to{opacity:1;transform:none}
}

.stb-offer-visual{
	position:relative!important;
	min-height:371px!important;
	overflow:hidden!important;
	background:var(--stbo-warm)!important;
	border-radius:21px 0 0 21px!important;
}

.stb-offer-visual img{
	display:block!important;
	width:100%!important;
	height:100%!important;
	min-height:371px!important;
	object-fit:cover!important;
	object-position:center!important;
	border:0!important;
	border-radius:0!important;
	box-shadow:none!important;
}

.stb-offer-content{
	position:relative!important;
	display:flex!important;
	align-items:center!important;
	min-width:0!important;
	padding:38px 38px 27px!important;
	background:var(--stbo-cream)!important;
	border-radius:0 21px 21px 0!important;
}

.stb-offer-content > div{
	width:100%!important;
}

.stb-offer-x{
	appearance:none!important;
	-webkit-appearance:none!important;
	position:absolute!important;
	top:18px!important;
	right:18px!important;
	z-index:4!important;
	display:block!important;
	width:22px!important;
	height:22px!important;
	background:transparent!important;
	border:0!important;
	border-radius:50%!important;
	box-shadow:none!important;
	cursor:pointer!important;
}

.stb-offer-x::before,
.stb-offer-x::after{
	content:""!important;
	position:absolute!important;
	left:10px!important;
	top:2px!important;
	width:1.2px!important;
	height:18px!important;
	background:#A9A49D!important;
	transform-origin:center!important;
}

.stb-offer-x::before{transform:rotate(45deg)!important}
.stb-offer-x::after{transform:rotate(-45deg)!important}

.stb-offer-x:hover::before,
.stb-offer-x:hover::after{background:#5C5853!important}

.stb-offer h3{
	display:block!important;
	max-width:290px!important;
	color:var(--stbo-ink)!important;
	font-family:var(--stbo-font)!important;
	font-size:29px!important;
	font-weight:500!important;
	line-height:1.08!important;
	letter-spacing:-.045em!important;
	text-wrap:balance!important;
}

.stb-offer-copy{
	display:block!important;
	margin-top:12px!important;
	max-width:295px!important;
	color:var(--stbo-body)!important;
	font-family:var(--stbo-font)!important;
	font-size:12.5px!important;
	font-weight:400!important;
	line-height:1.55!important;
	letter-spacing:-.014em!important;
}

.stb-offer-form{
	display:block!important;
	width:100%!important;
	margin-top:18px!important;
}

.stb-offer .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;
	white-space:nowrap!important;
	border:0!important;
}

.stb-offer-form input[type="email"]{
	appearance:none!important;
	-webkit-appearance:none!important;
	display:block!important;
	width:100%!important;
	height:47px!important;
	padding:0 20px!important;
	background:#FFF!important;
	background-image:none!important;
	border:1px solid #BEBBB6!important;
	border-radius:999px!important;
	box-shadow:none!important;
	outline:0!important;
	color:#242220!important;
	-webkit-text-fill-color:#242220!important;
	font-family:var(--stbo-font)!important;
	font-size:12.5px!important;
	font-weight:400!important;
	line-height:45px!important;
}

.stb-offer-form input[type="email"]::placeholder{
	color:#8E8983!important;
	opacity:1!important;
}

.stb-offer-form input[type="email"]:focus{
	border-color:#4D4944!important;
	box-shadow:0 0 0 2px rgba(26,26,26,.08)!important;
}

.stb-offer-form button[type="submit"]{
	appearance:none!important;
	-webkit-appearance:none!important;
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	width:100%!important;
	min-height:52px!important;
	margin-top:10px!important;
	padding:12px 18px!important;
	background:#191919!important;
	background-image:none!important;
	border:0!important;
	border-radius:999px!important;
	box-shadow:none!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
	font-family:var(--stbo-font)!important;
	font-size:14px!important;
	font-weight:600!important;
	line-height:1.25!important;
	cursor:pointer!important;
}

.stb-offer-form button[type="submit"]:hover,
.stb-offer-form button[type="submit"]:focus{
	background:#000!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
}

.stb-offer-form button[type="submit"][disabled]{
	opacity:.62!important;
	cursor:wait!important;
}

.stb-offer-status{
	min-height:0!important;
	margin-top:7px!important;
	color:#8E3C31!important;
	font-family:var(--stbo-font)!important;
	font-size:10.5px!important;
	font-weight:500!important;
	line-height:1.4!important;
}

.stb-offer-status:empty{display:none!important}

.stb-offer-meta{
	display:block!important;
	margin-top:10px!important;
	color:#A7A29B!important;
	font-family:var(--stbo-font)!important;
	font-size:8.7px!important;
	font-weight:400!important;
	line-height:1.45!important;
	letter-spacing:.085em!important;
	text-transform:uppercase!important;
}

.stb-offer-no{
	appearance:none!important;
	-webkit-appearance:none!important;
	display:block!important;
	width:auto!important;
	margin:10px auto 0!important;
	padding:2px 1px!important;
	background:transparent!important;
	background-image:none!important;
	border:0!important;
	border-radius:0!important;
	box-shadow:none!important;
	color:#A29D96!important;
	-webkit-text-fill-color:#A29D96!important;
	font-family:var(--stbo-font)!important;
	font-size:10.5px!important;
	font-weight:400!important;
	line-height:1.45!important;
	text-decoration:underline!important;
	text-decoration-thickness:.7px!important;
	text-underline-offset:2px!important;
	cursor:pointer!important;
}

.stb-offer-no:hover{
	color:#5E5954!important;
	-webkit-text-fill-color:#5E5954!important;
}

.stb-offer-success-kicker{
	color:#9D9891!important;
	font-family:var(--stbo-font)!important;
	font-size:9px!important;
	font-weight:500!important;
	line-height:1.4!important;
	letter-spacing:.12em!important;
	text-transform:uppercase!important;
}

.stb-offer-success h3{
	margin-top:10px!important;
}

.stb-offer-success-copy{
	margin-top:12px!important;
	color:var(--stbo-body)!important;
	font-family:var(--stbo-font)!important;
	font-size:12.5px!important;
	line-height:1.55!important;
}

.stb-offer-coupon{
	display:grid!important;
	grid-template-columns:1fr auto!important;
	gap:8px!important;
	align-items:center!important;
	margin-top:18px!important;
	padding:8px!important;
	background:#FFF!important;
	border:1px solid #D3CEC6!important;
	border-radius:12px!important;
}

.stb-offer-coupon code{
	display:block!important;
	padding:0 8px!important;
	color:#1C1A18!important;
	font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;
	font-size:14px!important;
	font-weight:700!important;
	letter-spacing:.04em!important;
	word-break:break-all!important;
}

.stb-offer-coupon button,
.stb-offer-done{
	appearance:none!important;
	-webkit-appearance:none!important;
	border:0!important;
	background:#191919!important;
	color:#FFF!important;
	-webkit-text-fill-color:#FFF!important;
	font-family:var(--stbo-font)!important;
	cursor:pointer!important;
}

.stb-offer-coupon button{
	min-height:36px!important;
	padding:8px 12px!important;
	border-radius:9px!important;
	font-size:10.5px!important;
	font-weight:600!important;
}

.stb-offer-done{
	display:flex!important;
	align-items:center!important;
	justify-content:center!important;
	width:100%!important;
	min-height:50px!important;
	margin-top:14px!important;
	padding:12px 18px!important;
	border-radius:999px!important;
	font-size:13px!important;
	font-weight:600!important;
}

.stb-offer button:focus-visible,
.stb-offer input:focus-visible{
	outline:2px solid rgba(26,26,26,.35)!important;
	outline-offset:3px!important;
}

@media (max-width:680px){
	.stb-offer{
		align-items:flex-start!important;
		overflow-y:auto!important;
	}

	.stb-offer-card{
		grid-template-columns:1fr!important;
		width:min(430px,calc(100vw - 20px))!important;
		min-height:0!important;
		max-height:none!important;
		margin:auto 0!important;
		overflow:hidden!important;
		border-radius:20px!important;
	}

	.stb-offer-visual{
		min-height:185px!important;
		height:185px!important;
		border-radius:20px 20px 0 0!important;
	}

	.stb-offer-visual img{
		min-height:185px!important;
		height:185px!important;
		object-position:center 45%!important;
	}

	.stb-offer-content{
		padding:29px 27px 25px!important;
		border-radius:0 0 20px 20px!important;
	}

	.stb-offer-x{
		top:14px!important;
		right:14px!important;
		background:rgba(247,243,236,.82)!important;
	}

	.stb-offer h3{
		font-size:27px!important;
	}

	.stb-offer-copy{
		font-size:12.2px!important;
	}
}

@media (max-width:390px){
	.stb-offer-visual{
		height:155px!important;
		min-height:155px!important;
	}

	.stb-offer-visual img{
		height:155px!important;
		min-height:155px!important;
	}

	.stb-offer-content{
		padding:25px 21px 22px!important;
	}

	.stb-offer h3{
		font-size:25px!important;
	}
}

@media (max-height:520px) and (min-width:681px){
	.stb-offer-card{
		min-height:0!important;
	}

	.stb-offer-visual,
	.stb-offer-visual img{
		min-height:320px!important;
	}

	.stb-offer-content{
		padding-top:27px!important;
		padding-bottom:23px!important;
	}
}


/* ================================================================
   v5.1.2 — STRONG MOBILE RESPONSIVE OVERRIDES
   Sihab Siddik
   - Keeps verification card inside the usable mobile viewport.
   - Makes the offer popup properly sized and scrollable.
   - Shows the FULL offer image without cropping.
   - Handles narrow phones, safe areas and short/landscape screens.
   ================================================================ */

/* Never crop the promotional artwork. */
.stb-offer-visual img{
	object-fit:contain!important;
	object-position:center center!important;
	background:var(--stbo-warm)!important;
}

/* Modern mobile viewport safety. */
@media (max-width:680px){

	.stb-offer{
		align-items:center!important;
		justify-content:center!important;
		width:100vw!important;
		height:100vh!important;
		height:100dvh!important;
		min-height:100svh!important;
		padding:
			max(10px,env(safe-area-inset-top,0px))
			max(10px,env(safe-area-inset-right,0px))
			max(10px,env(safe-area-inset-bottom,0px))
			max(10px,env(safe-area-inset-left,0px))!important;
		overflow:hidden!important;
	}

	.stb-offer-card{
		display:block!important;
		width:min(420px,100%)!important;
		max-width:420px!important;
		min-width:0!important;
		min-height:0!important;
		max-height:calc(100vh - 20px)!important;
		max-height:calc(100dvh - 20px)!important;
		margin:0 auto!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		overscroll-behavior:contain!important;
		-webkit-overflow-scrolling:touch!important;
		border-radius:18px!important;
		scrollbar-width:thin!important;
	}

	.stb-offer-card::-webkit-scrollbar{
		width:4px!important;
	}

	.stb-offer-card::-webkit-scrollbar-thumb{
		background:rgba(26,26,26,.20)!important;
		border-radius:999px!important;
	}

	.stb-offer-visual{
		display:flex!important;
		align-items:center!important;
		justify-content:center!important;
		width:100%!important;
		height:clamp(180px,52vw,230px)!important;
		min-height:0!important;
		max-height:230px!important;
		padding:10px!important;
		overflow:hidden!important;
		background:var(--stbo-warm)!important;
		border-radius:18px 18px 0 0!important;
	}

	.stb-offer-visual img{
		display:block!important;
		width:100%!important;
		max-width:100%!important;
		height:100%!important;
		min-height:0!important;
		max-height:100%!important;
		margin:auto!important;
		object-fit:contain!important;
		object-position:center center!important;
	}

	.stb-offer-content{
		display:block!important;
		width:100%!important;
		min-width:0!important;
		padding:25px 22px 22px!important;
		border-radius:0 0 18px 18px!important;
	}

	.stb-offer-content > div{
		width:100%!important;
		max-width:none!important;
	}

	.stb-offer-x{
		position:absolute!important;
		top:12px!important;
		right:12px!important;
		width:36px!important;
		height:36px!important;
		min-width:36px!important;
		z-index:10!important;
		background:rgba(247,243,236,.94)!important;
		border:1px solid rgba(26,26,26,.08)!important;
		box-shadow:0 4px 14px rgba(26,26,26,.08)!important;
	}

	.stb-offer-x::before,
	.stb-offer-x::after{
		left:17px!important;
		top:9px!important;
		height:16px!important;
	}

	.stb-offer h3{
		max-width:100%!important;
		padding-right:26px!important;
		font-size:clamp(24px,7vw,28px)!important;
		line-height:1.08!important;
	}

	.stb-offer-copy{
		max-width:100%!important;
		margin-top:10px!important;
		font-size:12.5px!important;
		line-height:1.55!important;
	}

	.stb-offer-form{
		margin-top:16px!important;
	}

	.stb-offer-form input[type="email"]{
		width:100%!important;
		height:48px!important;
		min-height:48px!important;
		padding:0 17px!important;
		font-size:16px!important; /* Prevents iOS zoom on focus. */
		line-height:normal!important;
	}

	.stb-offer-form button[type="submit"]{
		width:100%!important;
		min-height:50px!important;
		margin-top:9px!important;
		padding:11px 16px!important;
		font-size:13.5px!important;
	}

	.stb-offer-meta{
		margin-top:9px!important;
		font-size:8px!important;
		line-height:1.5!important;
		letter-spacing:.06em!important;
	}

	.stb-offer-no{
		margin-top:9px!important;
		font-size:10px!important;
	}

	.stb-offer-coupon{
		grid-template-columns:minmax(0,1fr) auto!important;
		width:100%!important;
		margin-top:15px!important;
	}

	.stb-offer-coupon code{
		min-width:0!important;
		padding:0 5px!important;
		font-size:12px!important;
		overflow-wrap:anywhere!important;
		word-break:break-word!important;
	}

	.stb-offer-done{
		min-height:48px!important;
	}
}

/* Narrow phones: use nearly the full available width without touching edges. */
@media (max-width:390px){

	.stb-offer{
		padding:
			max(7px,env(safe-area-inset-top,0px))
			max(7px,env(safe-area-inset-right,0px))
			max(7px,env(safe-area-inset-bottom,0px))
			max(7px,env(safe-area-inset-left,0px))!important;
	}

	.stb-offer-card{
		width:100%!important;
		max-height:calc(100dvh - 14px)!important;
		border-radius:16px!important;
	}

	.stb-offer-visual{
		height:clamp(165px,50vw,195px)!important;
		max-height:195px!important;
		padding:8px!important;
		border-radius:16px 16px 0 0!important;
	}

	.stb-offer-content{
		padding:21px 17px 19px!important;
		border-radius:0 0 16px 16px!important;
	}

	.stb-offer h3{
		font-size:24px!important;
		padding-right:30px!important;
	}

	.stb-offer-copy{
		font-size:12px!important;
	}

	.stb-offer-x{
		top:9px!important;
		right:9px!important;
	}

	.stb-offer-coupon{
		grid-template-columns:1fr!important;
	}

	.stb-offer-coupon button{
		width:100%!important;
	}
}

/* Short mobile screens / landscape: reduce artwork height and let card scroll. */
@media (max-width:680px) and (max-height:700px){

	.stb-offer{
		align-items:flex-start!important;
		overflow:hidden!important;
	}

	.stb-offer-card{
		max-height:calc(100dvh - 14px)!important;
		margin:auto!important;
	}

	.stb-offer-visual{
		height:150px!important;
		max-height:150px!important;
	}

	.stb-offer-content{
		padding-top:20px!important;
		padding-bottom:18px!important;
	}

	.stb-offer h3{
		font-size:23px!important;
	}

	.stb-offer-copy{
		margin-top:8px!important;
	}

	.stb-offer-form{
		margin-top:12px!important;
	}
}

/* Researcher verification popup: true mobile width + usable viewport. */
@media (max-width:600px){

	.stb-age-gate{
		align-items:center!important;
		justify-content:center!important;
		width:100vw!important;
		height:100vh!important;
		height:100dvh!important;
		min-height:100svh!important;
		padding:
			max(9px,env(safe-area-inset-top,0px))
			max(9px,env(safe-area-inset-right,0px))
			max(9px,env(safe-area-inset-bottom,0px))
			max(9px,env(safe-area-inset-left,0px))!important;
		overflow:hidden!important;
	}

	.stb-age-dialog{
		width:min(520px,100%)!important;
		max-width:520px!important;
		max-height:calc(100vh - 18px)!important;
		max-height:calc(100dvh - 18px)!important;
		margin:0 auto!important;
		padding:28px 22px 24px!important;
		overflow-x:hidden!important;
		overflow-y:auto!important;
		-webkit-overflow-scrolling:touch!important;
		overscroll-behavior:contain!important;
		border-radius:18px!important;
	}

	.stb-age-dialog h2{
		margin-top:11px!important;
		font-size:clamp(22px,6.8vw,25px)!important;
		line-height:1.18!important;
	}

	.stb-age-primary{
		margin-top:11px!important;
		font-size:12.5px!important;
		line-height:1.5!important;
	}

	.stb-age-confirmations{
		gap:8px!important;
		margin-top:14px!important;
	}

	.stb-age-confirm,
	.stb-age-confirm:nth-child(2){
		min-height:0!important;
		padding:11px 12px!important;
		gap:10px!important;
		align-items:flex-start!important;
		border-radius:11px!important;
	}

	.stb-age-confirm-input{
		flex-basis:16px!important;
		width:16px!important;
		height:16px!important;
		min-width:16px!important;
		margin-top:1px!important;
	}

	.stb-age-confirm-text{
		font-size:12.2px!important;
		line-height:1.48!important;
	}

	.stb-age-gate .stb-age-enter{
		min-height:50px!important;
		margin-top:13px!important;
		padding:11px 15px!important;
		font-size:14px!important;
	}

	.stb-age-gate .stb-age-exit{
		margin-top:8px!important;
	}

	.stb-age-footnote{
		margin-top:12px!important;
		font-size:7.6px!important;
		line-height:1.5!important;
		letter-spacing:.055em!important;
	}
}

/* Extra narrow verification devices. */
@media (max-width:380px){

	.stb-age-gate{
		padding:
			max(6px,env(safe-area-inset-top,0px))
			max(6px,env(safe-area-inset-right,0px))
			max(6px,env(safe-area-inset-bottom,0px))
			max(6px,env(safe-area-inset-left,0px))!important;
	}

	.stb-age-dialog{
		max-height:calc(100dvh - 12px)!important;
		padding:23px 16px 20px!important;
		border-radius:16px!important;
	}

	.stb-age-eyebrow{
		font-size:9.5px!important;
	}

	.stb-age-dialog h2{
		font-size:21px!important;
	}

	.stb-age-primary{
		font-size:11.8px!important;
	}

	.stb-age-confirm-text{
		font-size:11.8px!important;
	}

	.stb-age-footnote{
		font-size:7.2px!important;
	}
}

/* Short viewport verification screens scroll inside the card, not behind it. */
@media (max-width:600px) and (max-height:640px){

	.stb-age-gate{
		align-items:flex-start!important;
	}

	.stb-age-dialog{
		margin:auto!important;
		padding-top:20px!important;
		padding-bottom:18px!important;
	}

	.stb-age-dialog h2{
		margin-top:8px!important;
		font-size:20px!important;
	}

	.stb-age-primary{
		margin-top:8px!important;
	}

	.stb-age-confirmations{
		margin-top:10px!important;
	}

	.stb-age-gate .stb-age-enter{
		margin-top:10px!important;
	}

	.stb-age-footnote{
		margin-top:9px!important;
	}
}




/* ================================================================
   v5.1.3 — MOBILE RIGHT-GUTTER / FULL-VIEWPORT FIX
   Sihab Siddik
   Prevent themes, scrollbar reservation, or modal padding from
   leaving a visible strip on the right while either popup is open.
   ================================================================ */

html.stb-age-pending,
html.stb-offer-open{
	width:100%!important;
	max-width:100%!important;
	margin:0!important;
	padding:0!important;
	overflow:hidden!important;
	overflow-x:hidden!important;
	scrollbar-gutter:auto!important;
	-ms-overflow-style:none!important;
	scrollbar-width:none!important;
}

html.stb-age-pending body,
html.stb-offer-open body{
	width:100%!important;
	max-width:100%!important;
	margin-left:0!important;
	margin-right:0!important;
	padding-right:0!important;
	overflow:hidden!important;
	overflow-x:hidden!important;
	overscroll-behavior:none!important;
	scrollbar-gutter:auto!important;
	-ms-overflow-style:none!important;
	scrollbar-width:none!important;
}

html.stb-age-pending::-webkit-scrollbar,
html.stb-age-pending body::-webkit-scrollbar,
html.stb-offer-open::-webkit-scrollbar,
html.stb-offer-open body::-webkit-scrollbar{
	display:none!important;
	width:0!important;
	height:0!important;
}

/* Full-screen layers must ignore theme container widths and body padding. */
.stb-age-gate,
.stb-offer{
	left:0!important;
	right:0!important;
	top:0!important;
	bottom:0!important;
	inset:0!important;
	width:100%!important;
	max-width:none!important;
	min-width:100%!important;
	margin:0!important;
	transform:none!important;
}

@media (max-width:680px){
	.stb-age-gate,
	.stb-offer{
		width:100%!important;
		max-width:100%!important;
		min-width:100%!important;
		left:0!important;
		right:0!important;
		margin:0!important;
	}
}



/* ================================================================
   v5.1.4 — HARD VIEWPORT / SCROLLBAR LOCK
   Sihab Siddik
   Fixes the persistent right-side mobile gutter caused by browser
   or theme scroll containers. This lock is active only while the
   verification or offer modal is open.
   ================================================================ */

html.stb-viewport-hard-lock{
	width:100vw!important;
	max-width:100vw!important;
	height:100vh!important;
	height:100dvh!important;
	max-height:100dvh!important;
	margin:0!important;
	padding:0!important;
	overflow:hidden!important;
	overflow:clip!important;
	overflow-x:hidden!important;
	overflow-y:hidden!important;
	overscroll-behavior:none!important;
	scrollbar-gutter:auto!important;
	-ms-overflow-style:none!important;
	scrollbar-width:none!important;
}

html.stb-viewport-hard-lock body{
	position:fixed!important;
	top:calc(var(--stb-lock-scroll-y, 0px) * -1)!important;
	left:0!important;
	right:0!important;
	bottom:auto!important;
	inset-inline:0!important;
	width:100vw!important;
	min-width:100vw!important;
	max-width:100vw!important;
	height:100vh!important;
	height:100dvh!important;
	min-height:100dvh!important;
	max-height:100dvh!important;
	margin:0!important;
	padding-right:0!important;
	border:0!important;
	overflow:hidden!important;
	overflow:clip!important;
	overscroll-behavior:none!important;
	scrollbar-gutter:auto!important;
	-ms-overflow-style:none!important;
	scrollbar-width:none!important;
}

html.stb-viewport-hard-lock::-webkit-scrollbar,
html.stb-viewport-hard-lock body::-webkit-scrollbar,
html.stb-viewport-hard-lock #page::-webkit-scrollbar,
html.stb-viewport-hard-lock .site::-webkit-scrollbar,
html.stb-viewport-hard-lock .website-wrapper::-webkit-scrollbar,
html.stb-viewport-hard-lock .main-page-wrapper::-webkit-scrollbar,
html.stb-viewport-hard-lock .page-wrapper::-webkit-scrollbar,
html.stb-viewport-hard-lock .site-content::-webkit-scrollbar{
	display:none!important;
	width:0!important;
	height:0!important;
	background:transparent!important;
}

html.stb-viewport-hard-lock #page,
html.stb-viewport-hard-lock .site,
html.stb-viewport-hard-lock .website-wrapper,
html.stb-viewport-hard-lock .main-page-wrapper,
html.stb-viewport-hard-lock .page-wrapper,
html.stb-viewport-hard-lock .site-content{
	scrollbar-width:none!important;
	-ms-overflow-style:none!important;
	scrollbar-gutter:auto!important;
}

/* Force modal layers to the actual viewport instead of a theme container. */
html.stb-viewport-hard-lock .stb-age-gate,
html.stb-viewport-hard-lock .stb-offer{
	position:fixed!important;
	top:0!important;
	left:0!important;
	right:0!important;
	bottom:0!important;
	inset:0!important;
	inset-inline:0!important;
	width:100vw!important;
	min-width:100vw!important;
	max-width:100vw!important;
	height:100vh!important;
	height:100dvh!important;
	min-height:100dvh!important;
	max-height:100dvh!important;
	margin:0!important;
	transform:none!important;
}

/* Slight overscan removes sub-pixel/theme edge gaps behind the cards. */
html.stb-viewport-hard-lock .stb-age-backdrop,
html.stb-viewport-hard-lock .stb-offer-overlay{
	position:fixed!important;
	top:-3px!important;
	left:-3px!important;
	right:-3px!important;
	bottom:-3px!important;
	inset:-3px!important;
	width:calc(100vw + 6px)!important;
	height:calc(100vh + 6px)!important;
	height:calc(100dvh + 6px)!important;
	max-width:none!important;
	max-height:none!important;
	margin:0!important;
}

@media (max-width:680px){
	html.stb-viewport-hard-lock .stb-age-gate,
	html.stb-viewport-hard-lock .stb-offer{
		padding-left:max(7px,env(safe-area-inset-left,0px))!important;
		padding-right:max(7px,env(safe-area-inset-right,0px))!important;
	}
}



/* ================================================================
   v5.1.5 — TRUE VIEWPORT CENTERING / THEME-INDEPENDENT PORTAL
   Sihab Siddik
   This is intentionally the LAST modal rule block so older media
   queries cannot push the verification card to one side or upward.
   ================================================================ */

html.stb-age-pending .stb-age-gate,
html.stb-viewport-hard-lock .stb-age-gate{
    position:fixed!important;
    inset:0!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    display:block!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    transform:none!important;
    contain:none!important;
}

html.stb-age-pending .stb-age-backdrop,
html.stb-viewport-hard-lock .stb-age-backdrop{
    position:absolute!important;
    inset:-4px!important;
    width:calc(100% + 8px)!important;
    height:calc(100% + 8px)!important;
    margin:0!important;
}

/* Center the CARD itself, not its parent layout. */
html.stb-age-pending .stb-age-dialog,
html.stb-viewport-hard-lock .stb-age-dialog{
    position:absolute!important;
    z-index:5!important;
    top:50%!important;
    left:50%!important;
    right:auto!important;
    bottom:auto!important;
    width:min(560px,calc(100vw - 24px))!important;
    max-width:560px!important;
    max-height:calc(100dvh - 24px)!important;
    margin:0!important;
    translate:none!important;
    transform:translate3d(-50%,-50%,0)!important;
    transform-origin:center center!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
}

@media (max-width:600px){
    html.stb-age-pending .stb-age-dialog,
    html.stb-viewport-hard-lock .stb-age-dialog{
        width:calc(100vw - 20px)!important;
        max-width:520px!important;
        max-height:calc(100dvh - 20px)!important;
        padding:28px 22px 24px!important;
        border-radius:18px!important;
    }
}

@media (max-width:380px){
    html.stb-age-pending .stb-age-dialog,
    html.stb-viewport-hard-lock .stb-age-dialog{
        width:calc(100vw - 12px)!important;
        max-height:calc(100dvh - 12px)!important;
        padding:23px 16px 20px!important;
        border-radius:16px!important;
    }
}

/* Even on short/landscape phones, remain centered; content scrolls
   INSIDE the card instead of moving the card to the top. */
@media (max-height:640px){
    html.stb-age-pending .stb-age-dialog,
    html.stb-viewport-hard-lock .stb-age-dialog{
        top:50%!important;
        left:50%!important;
        margin:0!important;
        max-height:calc(100dvh - 12px)!important;
        transform:translate3d(-50%,-50%,0)!important;
    }
}

/* Offer popup gets the same viewport-independent center treatment. */
html.stb-offer-open .stb-offer,
html.stb-viewport-hard-lock .stb-offer{
    position:fixed!important;
    inset:0!important;
    display:block!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
}

html.stb-offer-open .stb-offer-card,
html.stb-viewport-hard-lock .stb-offer-card{
    position:absolute!important;
    top:50%!important;
    left:50%!important;
    right:auto!important;
    bottom:auto!important;
    margin:0!important;
    max-height:calc(100dvh - 20px)!important;
    transform:translate3d(-50%,-50%,0)!important;
    transform-origin:center center!important;
}

@media (max-width:680px){
    html.stb-offer-open .stb-offer-card,
    html.stb-viewport-hard-lock .stb-offer-card{
        width:calc(100vw - 20px)!important;
        max-width:420px!important;
        overflow-x:hidden!important;
        overflow-y:auto!important;
    }
}


/* v5.1.6 — offer close control must always be clickable */
.stb-offer .stb-offer-x{
	pointer-events:auto!important;
	touch-action:manipulation!important;
	-webkit-tap-highlight-color:transparent!important;
	z-index:2147483646!important;
}

.stb-offer-card{
	pointer-events:auto!important;
}

.stb-offer-overlay{
	pointer-events:auto!important;
}


/* v5.1.8 — hard sequencing shield: discount can never render while age gate is pending. */
html.stb-age-pending .stb-offer,
html:not(.stb-age-verified) .stb-offer{
	display:none!important;
	visibility:hidden!important;
	pointer-events:none!important;
}

@media print{
	.stb-age-gate,.stb-offer{display:none!important}
}
