/* Google Preferred Sources for BuyOnlineClass */

.boc-ps {
	margin: 30px auto;
	max-width: 800px;
}

.boc-ps--box {
	padding: 25px 15px;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background-color: #ffffff;
	box-shadow: 0 2px 8px rgba( 0, 0, 0, 0.05 );
}

.boc-ps--dark.boc-ps--box {
	border-color: #3c4043;
	background-color: #1f1f1f;
}

.boc-ps--center {
	text-align: center;
}

.boc-ps--left {
	text-align: left;
}

.boc-ps--right {
	text-align: right;
}

.boc-ps__title {
	margin: 0 0 8px;
	color: #1e293b;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
}

.boc-ps__text {
	margin: 0 0 15px;
	color: #475569;
	font-size: 14px;
	line-height: 1.5;
}

.boc-ps--dark .boc-ps__title {
	color: #e8eaed;
}

.boc-ps--dark .boc-ps__text {
	color: #bdc1c6;
}

.boc-ps__action {
	display: flex;
}

.boc-ps--center .boc-ps__action {
	justify-content: center;
}

.boc-ps--left .boc-ps__action {
	justify-content: flex-start;
}

.boc-ps--right .boc-ps__action {
	justify-content: flex-end;
}

/* Custom button, styled to sit next to Google's own button without clashing. */
.boc-ps__button {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	max-width: 100%;
	margin: 0;
	padding: 10px 18px;
	border: 1px solid var( --boc-ps-border, #dadce0 );
	border-radius: 10px;
	background-color: var( --boc-ps-bg, #ffffff );
	box-shadow: 0 1px 2px rgba( 60, 64, 67, 0.15 );
	color: var( --boc-ps-fg, #1f1f1f );
	font-family: "Google Sans", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.boc-ps__button:hover {
	border-color: #d2d5d9;
	background-color: #f8f9fa;
	box-shadow: 0 1px 3px rgba( 60, 64, 67, 0.2 );
}

.boc-ps__button:focus-visible {
	outline: 2px solid #1a73e8;
	outline-offset: 2px;
}

.boc-ps__button--dark {
	border-color: var( --boc-ps-border, #5f6368 );
	background-color: var( --boc-ps-bg, #1f1f1f );
	color: var( --boc-ps-fg, #e8eaed );
	box-shadow: none;
}

.boc-ps__button--dark:hover {
	border-color: #6f7378;
	background-color: #2a2b2d;
	box-shadow: none;
}

.boc-ps__button--busy {
	opacity: 0.7;
	cursor: progress;
}

/* bgcolor / fontcolor. The border follows the background unless a theme default applies. */
.boc-ps__button--custom-bg {
	--boc-ps-border: var( --boc-ps-bg );
}

.boc-ps__button--custom-bg:hover,
.boc-ps__button--dark.boc-ps__button--custom-bg:hover {
	border-color: var( --boc-ps-bg );
	background-color: var( --boc-ps-bg );
	filter: brightness( 0.92 );
}

/* Sizes: sm | md (default) | lg | xl. */
.boc-ps__button--sm {
	gap: 8px;
	padding: 7px 14px;
	border-radius: 8px;
	font-size: 13px;
}

.boc-ps__button--sm .boc-ps__icon {
	width: 16px;
	height: 16px;
}

.boc-ps__button--lg {
	gap: 12px;
	padding: 13px 24px;
	border-radius: 12px;
	font-size: 16px;
}

.boc-ps__button--lg .boc-ps__icon {
	width: 22px;
	height: 22px;
}

.boc-ps__button--xl {
	gap: 14px;
	padding: 17px 32px;
	border-radius: 14px;
	font-size: 18px;
}

.boc-ps__button--xl .boc-ps__icon {
	width: 26px;
	height: 26px;
}

/* Google's own button renders its own markup, so it can only be scaled. */
.boc-ps__native {
	transform-origin: center;
}

.boc-ps--left .boc-ps__native {
	transform-origin: left center;
}

.boc-ps--right .boc-ps__native {
	transform-origin: right center;
}

.boc-ps--size-sm .boc-ps__native {
	transform: scale( 0.9 );
}

.boc-ps--size-lg .boc-ps__native {
	transform: scale( 1.15 );
}

.boc-ps--size-xl .boc-ps__native {
	transform: scale( 1.3 );
}

.boc-ps__icon {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	display: block;
}

.boc-ps__label {
	display: block;
}

.boc-ps [hidden] {
	display: none !important;
}
