/*
 * 4AminoLabs Product Page — design styles.
 * Loaded only on product pages while the design is on (body.fpp-on).
 * Brand colors: purple #64489D, navy #0E1B4D, orange #E9962E.
 */

body.fpp-on {
	--fpp-purple: #64489D;
	--fpp-navy: #0E1B4D;
	--fpp-line: rgba(100, 72, 157, .15);
	--fpp-lavender: #D9D2EA;
	--fpp-lavender-bg: #F6F3FB;
	--fpp-box-width: 460px;
}

/* ---------- Shared box (Product Details, Concentration and Formulation) ---------- */
body.fpp-on .fpp-box {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 4px 0 14px;
	padding: 0;
	background: #fff;
	border: 1.5px solid var(--fpp-purple);
	border-radius: 10px;
	overflow: hidden;
	font-family: Aileron, sans-serif;
	text-align: left;
}
body.fpp-on .fpp-box__head {
	display: block;
	padding: 5px 12px;
	background: var(--fpp-purple);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.5;
	text-transform: uppercase;
}
body.fpp-on .fpp-row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 6px 12px;
	border-bottom: 1px solid var(--fpp-line);
	font-size: 14px;
	line-height: 1.35;
	color: var(--fpp-navy);
}
body.fpp-on .fpp-row:last-child {
	border-bottom: 0;
}
body.fpp-on .fpp-row__label {
	flex: 0 0 110px;
	padding-top: 1px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.35;
	text-transform: uppercase;
	color: var(--fpp-purple);
}
body.fpp-on .fpp-row__value {
	flex: 1 1 auto;
	min-width: 0;
	overflow-wrap: anywhere;
}
body.fpp-on .fpp-row__value a {
	color: var(--fpp-navy);
	text-decoration: none;
}
body.fpp-on .fpp-row__value a:hover {
	color: var(--fpp-purple);
}
body.fpp-on .fpp-details .fpp-row {
	align-items: center;
}
body.fpp-on .fpp-details .fpp-row__label {
	flex-basis: 96px;
}
body.fpp-on .fpp-stock {
	display: inline-block;
	padding: 1px 9px;
	border-radius: 20px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
}
body.fpp-on .fpp-stock--in { background: #E8F5E9; color: #2E7D32; }
body.fpp-on .fpp-stock--out { background: #FDECEA; color: #B3261E; }
body.fpp-on .fpp-stock--back { background: #FFF4E5; color: #9A5B00; }

/* The Product Details box replaces the rest of the product meta widget. */
body.fpp-on .product_meta > *:not(.fpp-details) {
	display: none !important;
}
body.fpp-on .product_meta,
body.fpp-on .product_meta.cro-meta {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
	max-width: none !important;
	overflow: visible !important;
}

/* ---------- Warning notice (e.g. GLP payment notice) ---------- */
body.fpp-on .fpp-warning {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 0 0 14px;
	padding: 12px 14px;
	background: #FDECEA;
	border: 1.5px solid #D93025;
	border-radius: 10px;
	font-family: Aileron, sans-serif;
	color: #8C1D18;
}
body.fpp-on .fpp-warning__icon {
	flex: 0 0 auto;
	width: 22px !important;
	height: 22px !important;
	margin-top: 1px;
	color: #D93025;
}
body.fpp-on .fpp-warning__title {
	margin: 0 0 2px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #B3261E;
}
body.fpp-on .fpp-warning__text {
	font-size: 14px;
	line-height: 1.5;
	color: #8C1D18;
}

/* ---------- Short description area ---------- */
body.fpp-on .elementor-widget-woocommerce-product-short-description {
	padding-top: 0 !important;
	padding-right: 0 !important;
}
body.fpp-on .woocommerce-product-details__short-description > .fpp-formulation:first-child {
	margin-top: 0;
}
body.fpp-on .fpp-sd-body {
	margin: 0 0 14px;
	font-family: Aileron, sans-serif;
	line-height: 1.65;
	color: #3d4460;
}

/* ---------- Price ---------- */
body.fpp-on .elementor-widget-woocommerce-product-price:not(.e-loop-item *) .price,
body.fpp-on .elementor-widget-woocommerce-product-price:not(.e-loop-item *) .price .woocommerce-Price-amount,
body.fpp-on .woocommerce-variation-price .price,
body.fpp-on .woocommerce-variation-price .price .woocommerce-Price-amount,
body.fpp-on .woocommerce-variation-price .price bdi,
body.fpp-on .woocommerce-variation-price .price .woocommerce-Price-currencySymbol {
	color: var(--fpp-purple) !important;
	font-size: 30px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
}

/* ---------- Price per mg ---------- */
body.fpp-on #aml-ppm {
	display: none !important; /* old box from snippet 15630 */
}
body.fpp-on .fpp-ppm {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 10px 0 0;
	padding: 10px 14px;
	background: #f8f6fc;
	border: 1px solid #e3dcf0;
	border-radius: 10px;
	font-size: 14px;
	line-height: 1.4;
}
body.fpp-on .fpp-ppm__title {
	margin-bottom: 4px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--fpp-purple);
}
body.fpp-on .fpp-ppm__row {
	padding: 4px 8px;
	border-radius: 6px;
	color: #333;
}
body.fpp-on .fpp-ppm__line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
body.fpp-on .fpp-ppm__row small,
body.fpp-on .fpp-ppm__bd {
	color: #777;
}
body.fpp-on .fpp-ppm__bd {
	margin-top: 2px;
	font-size: 12px;
	line-height: 1.35;
}
body.fpp-on .fpp-ppm__val {
	font-weight: 700;
	white-space: nowrap;
	color: #222;
}
body.fpp-on .fpp-ppm__row.is-active {
	background: var(--fpp-purple);
	color: #fff;
}
body.fpp-on .fpp-ppm__row.is-active .fpp-ppm__val,
body.fpp-on .fpp-ppm__row.is-active small,
body.fpp-on .fpp-ppm__row.is-active .fpp-ppm__bd {
	color: #fff;
}

/* ---------- Size options (variation swatches) ---------- */
body.fpp-on .variable-items-wrapper {
	gap: 8px !important;
}
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item {
	height: auto !important;
	min-height: 46px !important;
	margin: 2px 6px 6px 2px !important;
	padding: 8px 16px !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	box-shadow: 0 0 0 1px var(--fpp-lavender) !important;
}
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item:hover {
	box-shadow: 0 0 0 1px var(--fpp-purple) !important;
}
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item.selected,
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item.selected:hover {
	background: var(--fpp-lavender-bg) !important;
	box-shadow: 0 0 0 2px var(--fpp-purple) !important;
}
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item .variable-item-span {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #1d1d1d !important;
}
body.fpp-on .variable-items-wrapper .variable-item.button-variable-item.disabled {
	opacity: .5 !important;
}

/* ---------- Tier cards ---------- */
body.fpp-on .fpp-tiers {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 14px 0;
}
body.fpp-on .fpp-tiers__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}
body.fpp-on .fpp-tiers .fpp-tier {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 10px 8px !important;
	background: #fff !important;
	border: 1px solid var(--fpp-lavender) !important;
	border-radius: 10px !important;
	box-shadow: none !important;
	color: #1d1d1d !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	letter-spacing: normal !important;
	line-height: 1.3 !important;
	text-align: center;
	text-transform: none !important;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
body.fpp-on .fpp-tiers .fpp-tier:hover {
	border-color: var(--fpp-purple) !important;
}
body.fpp-on .fpp-tiers .fpp-tier.is-selected {
	background: var(--fpp-lavender-bg) !important;
	border: 2px solid var(--fpp-purple) !important;
	padding: 9px 7px !important;
}
body.fpp-on .fpp-tiers .fpp-tier:focus-visible {
	outline: 2px solid var(--fpp-purple);
	outline-offset: 2px;
}
body.fpp-on .fpp-tiers .fpp-tier.is-disabled,
body.fpp-on .fpp-tiers .fpp-tier:disabled {
	opacity: .45;
	cursor: not-allowed;
}
body.fpp-on .fpp-tier__q {
	font-size: 13px;
	color: #444;
}
body.fpp-on .fpp-tier__p {
	margin: 2px 0;
	font-size: 17px;
	font-weight: 700;
	color: #1d1d1d;
}
body.fpp-on .fpp-tier__s {
	font-size: 12px;
	font-weight: 600;
	color: #2E7D32;
}
body.fpp-on .fpp-tier__pop {
	position: absolute;
	top: -9px;
	left: 50%;
	transform: translateX(-50%);
	padding: 2px 8px;
	border-radius: 10px;
	background: var(--fpp-purple);
	color: #fff;
	font-size: 10px;
	line-height: 1.4;
	white-space: nowrap;
}

/* ---------- Research-use note ---------- */
body.fpp-on .fpp-note {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 16px 0 6px;
	padding: 10px 14px;
	background: #FFF8EE;
	border: 1px solid #F3D3A8;
	border-left: 4px solid var(--fpp-orange, #E9962E);
	border-radius: 10px;
	font-family: Aileron, sans-serif;
	font-size: 13px;
	line-height: 1.5;
	color: #6b5a3a;
}

/* ---------- Key Documents ---------- */
body.fpp-on .fpp-docs {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--fpp-box-width);
	margin: 22px 0 6px;
	padding: 20px 22px;
	background: #F6F2FC;
	border: 1px solid #E2D8F3;
	border-radius: 15px;
	font-family: Aileron, sans-serif;
	color: var(--fpp-navy);
}
body.fpp-on .fpp-docs__title {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 700;
	color: var(--fpp-navy);
}
body.fpp-on .fpp-docs__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
body.fpp-on .fpp-docs .fpp-docs__btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 20px;
	background: #fff;
	border: 2px solid var(--fpp-purple);
	border-radius: 999px;
	color: var(--fpp-purple);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: background .15s, color .15s, box-shadow .15s;
}
body.fpp-on .fpp-docs a.fpp-docs__btn:hover,
body.fpp-on .fpp-docs a.fpp-docs__btn:focus {
	background: var(--fpp-purple);
	color: #fff;
	box-shadow: 0 4px 12px rgba(100, 72, 157, .25);
	text-decoration: none;
}
body.fpp-on .fpp-docs .fpp-docs__btn--soon {
	background: #FBF9FE;
	border-style: dashed;
	border-color: #B9A9DC;
	color: #7E6CB0;
	cursor: default;
}
body.fpp-on .fpp-docs__btn svg {
	flex: 0 0 auto;
}
body.fpp-on .fpp-docs__sub {
	margin-left: 1px;
	padding-left: 7px;
	border-left: 1px solid currentColor;
	font-size: 13px;
	font-weight: 400;
	opacity: .85;
}
body.fpp-on .fpp-docs__note {
	margin: 12px 0 0;
	font-size: 14px;
	font-style: italic;
	color: #5b6275;
}
body.fpp-on .fpp-docs__legend {
	margin: 12px 0 0;
	font-size: 13px;
	color: #5b6275;
}
body.fpp-on .fpp-docs__all {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	margin: 14px 0 0;
	padding-top: 12px;
	border-top: 1px solid #E2D8F3;
	font-size: 15px;
}
body.fpp-on .fpp-docs__all span {
	font-weight: 700;
	color: var(--fpp-navy);
}
body.fpp-on .fpp-docs .fpp-docs__all a {
	font-weight: 700;
	color: var(--fpp-purple);
	text-decoration: none;
}
body.fpp-on .fpp-docs .fpp-docs__all a::after {
	content: " \2192";
}
body.fpp-on .fpp-docs .fpp-docs__all a:hover {
	color: #E9962E;
	text-decoration: underline;
}
body.fpp-on .fpp-docs__none {
	font-size: 15px;
}

/* ---------- Key Specifications table as cards ---------- */
body.fpp-on table.product-table {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	border-collapse: separate !important;
	table-layout: auto !important;
}
body.fpp-on table.product-table caption,
body.fpp-on table.product-table thead {
	display: none !important;
}
body.fpp-on table.product-table tbody {
	display: block !important;
	width: 100% !important;
}
body.fpp-on table.product-table tr {
	display: block !important;
	box-sizing: border-box;
	width: 100% !important;
	margin: 0 0 10px !important;
	padding: 12px 14px !important;
	background: #fff !important;
	border: 1px solid #E2D8F3 !important;
	border-radius: 12px !important;
	overflow: hidden;
}
body.fpp-on table.product-table td,
body.fpp-on table.product-table th {
	display: block !important;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 15px !important;
	line-height: 1.45 !important;
	color: var(--fpp-navy) !important;
	white-space: normal !important;
	overflow-wrap: anywhere !important;
}
body.fpp-on table.product-table td:first-child {
	margin: 0 0 4px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
	color: var(--fpp-purple) !important;
}

/* ---------- Mobile sticky Add to Cart bar (snippet 15258) ---------- */
body.fpp-on #fal-sticky-atc .fal-pill {
	height: 38px !important;
	background: #fff !important;
	border: 1px solid var(--fpp-lavender) !important;
	border-radius: 10px !important;
	color: #1d1d1d !important;
	font-weight: 700 !important;
	line-height: 36px !important;
}
body.fpp-on #fal-sticky-atc .fal-pill.is-on {
	background: var(--fpp-lavender-bg) !important;
	border: 2px solid var(--fpp-purple) !important;
	color: #1d1d1d !important;
	line-height: 34px !important;
}


/* ---------- Description sections as cards ---------- */
body.fpp-on .fppd {
	margin-top: 8px;
	font-family: Aileron, sans-serif;
	color: var(--fpp-navy);
}
body.fpp-on .fppd-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}
body.fpp-on .fppd-nav a {
	padding: 6px 14px;
	background: #fff;
	border: 1px solid var(--fpp-lavender);
	border-radius: 999px;
	color: var(--fpp-purple) !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background .15s, color .15s;
}
body.fpp-on .fppd-nav a:hover,
body.fpp-on .fppd-nav a:focus-visible {
	background: var(--fpp-purple);
	border-color: var(--fpp-purple);
	color: #fff !important;
}
body.fpp-on .fppd-card {
	margin: 0 0 16px;
	padding: 22px 24px;
	background: #fff;
	border: 1px solid #E2D8F3;
	border-radius: 14px;
	scroll-margin-top: 110px;
}
body.fpp-on .fppd .fppd-kicker {
	margin: 0 0 10px !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .07em !important;
	line-height: 1.4 !important;
	text-transform: uppercase !important;
	color: var(--fpp-purple) !important;
}
body.fpp-on .fppd-lead {
	margin: 0 0 12px;
	font-size: 18px;
	line-height: 1.6;
	color: var(--fpp-navy);
}
body.fpp-on .fppd-text {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.65;
	color: #3d4460;
}
body.fpp-on .fppd-ref {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	background: var(--fpp-lavender-bg);
	border-radius: 10px;
	color: var(--fpp-purple);
	font-size: 14px;
	line-height: 1.5;
}
body.fpp-on .fppd-ref > div {
	color: #3d4460;
}
body.fpp-on .fppd .fppd-svg {
	display: block;
	flex: 0 0 auto;
	width: 22px !important;
	height: 22px !important;
	max-width: none !important;
}
body.fpp-on .fppd-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 14px;
}
body.fpp-on .fppd-stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 14px;
	background: var(--fpp-lavender-bg);
	border-radius: 10px;
}
body.fpp-on .fppd-stat__label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--fpp-purple);
}
body.fpp-on .fppd-stat__big {
	font-size: 26px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--fpp-navy);
}
body.fpp-on .fppd-stat__small {
	font-size: 12px;
	color: #5b6275;
}
body.fpp-on .fppd-stat__val {
	margin-top: 4px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.35;
	color: var(--fpp-navy);
	overflow-wrap: anywhere;
}
body.fpp-on .fppd-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
body.fpp-on .fppd-item {
	padding: 14px 16px;
	border: 1px solid #E2D8F3;
	border-radius: 10px;
}
body.fpp-on .fppd-item--icon {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}
body.fpp-on .fppd-item__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	background: var(--fpp-lavender-bg);
	border-radius: 10px;
	color: var(--fpp-purple);
}
body.fpp-on .fppd-item__title {
	margin: 0 0 3px;
	font-size: 15px;
	font-weight: 700;
	color: var(--fpp-navy);
}
body.fpp-on .fppd-item__text {
	font-size: 14px;
	line-height: 1.55;
	color: #3d4460;
}
body.fpp-on .fppd-comply {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px 22px;
	background: #FFF8EE;
	border: 1px solid #F3D3A8;
	border-radius: 14px;
	scroll-margin-top: 110px;
}
body.fpp-on .fppd-comply__icon {
	color: #B86E12;
}
body.fpp-on .fppd-comply__icon .fppd-svg {
	width: 26px !important;
	height: 26px !important;
}
body.fpp-on .fppd .fppd-comply__title {
	margin: 0 0 4px !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	color: #6b4a1a !important;
}
body.fpp-on .fppd-comply p {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 1.6;
	color: #6b5a3a;
}
body.fpp-on .fppd-comply p:last-child {
	margin-bottom: 0;
}

/* ---------- Tablet & desktop ---------- */
@media (min-width: 768px) {
	body.fpp-on table.product-table tbody {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	body.fpp-on table.product-table tr {
		margin: 0 !important;
	}
}

/* ---------- Phones ---------- */
@media (max-width: 767px) {
	body.fpp-on ul.variable-items-wrapper {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 8px !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 2px !important;
	}
	body.fpp-on ul.variable-items-wrapper .variable-item.button-variable-item {
		justify-content: center !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 8px 6px !important;
	}
	body.fpp-on ul.variable-items-wrapper .variable-item.button-variable-item .variable-item-contents {
		justify-content: center !important;
		width: 100% !important;
	}
	body.fpp-on ul.variable-items-wrapper .variable-item.button-variable-item .variable-item-span {
		font-size: 14px !important;
		line-height: 1.25 !important;
		text-align: center !important;
		white-space: normal !important;
	}
	body.fpp-on .fpp-docs {
		padding: 16px;
	}
	body.fpp-on .fppd-card {
		padding: 18px;
	}
	body.fpp-on .fppd-lead {
		font-size: 17px;
	}
	body.fpp-on .fppd-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body.fpp-on .fppd-grid {
		grid-template-columns: 1fr;
	}
	body.fpp-on .fpp-docs .fpp-docs__btn {
		flex: 1 1 auto;
		justify-content: center;
	}
}
