/*
 * Bundle card. Layout only: fonts, colours and buttons come from the theme
 * (WooCommerce classes), so the card looks like the rest of the shop.
 */

.nfb-bundle {
	margin: 1.5em 0;
	padding: 1.25em;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 6px;
}

.nfb-bundle__title {
	margin: 0 0 0.75em;
	font-size: 1.15em;
}

.nfb-bundle__items {
	margin: 0 0 1em;
	padding: 0;
	list-style: none;
}

.nfb-bundle__item {
	margin: 0;
	padding: 0.4em 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.nfb-bundle__label {
	display: grid;
	grid-template-columns: auto auto 1fr auto auto;
	gap: 0.75em;
	align-items: center;
	margin: 0;
	cursor: default;
}

.nfb-bundle--frequently-bought-together .nfb-bundle__label {
	cursor: pointer;
}

.nfb-bundle__thumb img {
	display: block;
	width: 48px;
	height: 48px;
	object-fit: cover;
}

.nfb-bundle__name small {
	display: block;
	opacity: 0.7;
}

.nfb-bundle__qty {
	white-space: nowrap;
	opacity: 0.8;
}

.nfb-bundle__line {
	white-space: nowrap;
	text-align: right;
}

.nfb-bundle__item.is-unavailable {
	opacity: 0.55;
}

.nfb-bundle__totals {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.25em 1em;
	margin: 0 0 1em;
}

.nfb-bundle__totals dt,
.nfb-bundle__totals dd {
	margin: 0;
}

.nfb-bundle__totals dd {
	text-align: right;
}

.nfb-bundle__buy {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	align-items: center;
}

.nfb-bundle__buy .quantity {
	margin: 0;
}

.nfb-bundle__hint {
	margin: 0.5em 0 0;
	font-size: 0.9em;
}

.nfb-offers__title {
	margin-top: 1em;
}

.nfb-embed-note {
	padding: 0.75em 1em;
	border-left: 4px solid #dba617;
	background: #fcf9e8;
}

@media (max-width: 480px) {
	.nfb-bundle__label {
		grid-template-columns: auto auto 1fr auto;
	}

	.nfb-bundle__qty {
		display: none;
	}
}

/* Radio choice on a product page: just this product, or a bundle. */
.nfb-choice { margin: 0 0 1.25em; border: 1px solid rgba(0, 0, 0, .12); border-radius: 6px; }
.nfb-choice__title { margin: 0; padding: .75em 1em; font-weight: 600; border-bottom: 1px solid rgba(0, 0, 0, .08); }
.nfb-choice__option { border-bottom: 1px solid rgba(0, 0, 0, .08); }
.nfb-choice__option:last-child { border-bottom: 0; }
.nfb-choice__option > label { display: flex; align-items: center; gap: .6em; padding: .75em 1em; cursor: pointer; margin: 0; }
.nfb-choice__name { flex: 1; }
.nfb-choice__price { white-space: nowrap; }
.nfb-choice__option.is-open { background: rgba(0, 0, 0, .025); }
.nfb-choice__panel { padding: 0 1em 1em; }
.nfb-choice__panel .nfb-bundle { margin: 0; border: 0; padding: 0; box-shadow: none; }
/* With JavaScript: only the chosen bundle's card, and the page's one button. */
.nfb-choice--js .nfb-choice__option:not(.is-open) .nfb-choice__panel { display: none; }
.nfb-choice--js .nfb-choice__panel .nfb-bundle__buy { display: none; }
/* A variable product's own options do not apply to a bundle. */
form.cart.nfb-choice-bundle .variations,
form.cart.nfb-choice-bundle .single_variation_wrap .woocommerce-variation { display: none; }
form.cart.nfb-choice-bundle .single_add_to_cart_button.disabled { opacity: 1; cursor: pointer; }

/* Icons, in the style chosen in Settings › Design. */
.nfb-icon { display: inline-flex; align-items: center; justify-content: center; vertical-align: -0.15em; margin-right: .35em; line-height: 1; }
.nfb-icon svg { display: block; }
.nfb-icon--solid { padding: .2em; border-radius: 50%; background: currentColor; }
.nfb-icon--solid svg { stroke: #fff; width: .8em; height: .8em; }
.nfb-icon--dashicons { width: 1em; height: 1em; font-size: 1em; }
.nfb-bundle__savings .nfb-icon { opacity: .8; }
/* One bundle on the page starts open: its products and images in view. */
.nfb-choice__option.is-open > label { font-weight: 600; }

/* A bundle's own page: a column in the theme's content area. */
.nfb-landing { box-sizing: border-box; width: 100%; max-width: 720px; margin: 0 auto; padding: 2.5em 0; }
.nfb-landing--wide { max-width: 1200px; }
.nfb-landing__title { margin: 0 0 .75em; }
.nfb-landing__banner { display: block; margin: 0 0 1.5em; }
.nfb-landing__banner img { display: block; width: 100%; height: auto; border-radius: 6px; }
.nfb-landing__text { margin: 0 0 1.5em; }
.nfb-landing .nfb-bundle { margin-top: 0; }
/* Some block themes leave WooCommerce's quantity box unstyled here. */
.nfb-landing .nfb-bundle__buy .qty { min-width: 3.5em; min-height: 2.5em; text-align: center; }
@media (max-width: 600px) {
	.nfb-landing { padding: 1.5em 0; }
}
/* Read by screen readers and search engines, not shown. */
.nfb-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
