/*
 * Brains On Board store styles: markup generated by bob-site (store.php, store.js) and the
 * WooCommerce markup inside the Breakdance frames (product, booking, confirm, thank-you).
 * Frame layouts themselves are Breakdance global classes (collection "BOB store").
 * Tokens come from the design system: --bde-palette-*, --bob-border, --bob-shadow*, --bob-radius.
 */

/* ---------- Product buy box (WooCommerce markup inside .bob-pdp-cart) ---------- */
.bob-pdp-cart table.variations,
.bob-pdp-cart table.variations tbody,
.bob-pdp-cart table.variations tr,
.bob-pdp-cart table.variations th,
.bob-pdp-cart table.variations td {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
}
.bob-pdp-cart table.variations {
	margin: 0;
}
body.breakdance .bob-pdp-cart table.variations th.label label {
	display: block;
	margin: 0 0 8px;
	font-family: var(--bde-body-font-family);
	font-size: 15px;
	font-weight: 700;
	color: var(--bde-palette-mute);
}
/* WooCommerce's "Clear" link: not needed with two toggle buttons (one is always chosen).
   !important because WooCommerce's script shows and hides it with inline styles. */
body.breakdance .bob-pdp-cart a.reset_variations {
	display: none !important;
}
/* The big price above follows the choice (store.js), so WooCommerce's own copy below is not needed. */
.bob-pdp-cart .woocommerce-variation-price {
	display: none;
}
.bob-pdp-price .woocommerce-price-suffix,
.bob-pdp-price .bob-pr-note {
	margin-left: 8px;
	font-size: 24px;
	color: var(--bde-palette-mute);
}
/* "$129 at your place" wraps as one unit (0.18.1): on phone-width /book/ cards it broke as
   "$129 at your" / "place". */
.bob-pr-onsite {
	white-space: nowrap;
}
body.breakdance .bob-pdp-cart button.single_add_to_cart_button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	padding: 16px 28px 14px;
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow);
	font-family: var(--bde-heading-font-family);
	font-size: 26px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1;
	transition: transform 100ms ease, box-shadow 100ms ease;
}
body.breakdance .bob-pdp-cart button.single_add_to_cart_button.button:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--bob-shadow-lift);
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
}
body.breakdance .bob-pdp-cart button.single_add_to_cart_button.button.disabled {
	opacity: 0.55;
}
@media (max-width: 767px) {
	body.breakdance .bob-pdp-cart button.single_add_to_cart_button.button {
		width: 100%;
		font-size: 24px;
	}
}

/* Other tiers: a plain "From $199". */
.bob-tier-price .bob-pr-note,
.bob-pdp-sticky-price .bob-pr-note,
.bob-pdp-sticky-price .woocommerce-price-suffix {
	display: none;
}
.bob-tier-price .bob-pr-main::before {
	content: "From ";
}

/* Sticky bar (phones): out of the way while the buy box is on screen. */
.bob-pdp.is-buy-visible .bob-pdp-sticky {
	transform: translateY(120%);
}

/* ---------- "Where" buttons ---------- */
.bob-where {
	display: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 4px 0 6px;
}
.bob-where-ready .bob-where {
	display: grid;
}
/* WooCommerce's dropdown stays in the form, out of sight, once the buttons are working. */
.bob-where-ready select,
.bob-where-ready .bde-woo-select {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
	clip-path: inset(50%) !important;
}
.bob-where .bob-where-opt {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 68px;
	padding: 12px 14px 10px;
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	background: var(--bde-palette-white);
	box-shadow: var(--bob-shadow-sm);
	font-family: var(--bde-heading-font-family);
	font-size: 24px;
	line-height: 1.05;
	letter-spacing: 0.05em;
	color: var(--bde-palette-dark);
	text-align: center;
	cursor: pointer;
	transition: transform 100ms ease, box-shadow 100ms ease, background-color 100ms ease;
}
.bob-where .bob-where-opt:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--bob-shadow);
}
.bob-where .bob-where-opt input {
	position: absolute;
	opacity: 0;
	inset: 0;
	margin: 0;
	cursor: pointer;
}
/* Chosen: navy with cream text (prompt 15), so the yellow Book button is the buy box's only yellow. */
.bob-where .bob-where-opt.is-selected {
	background: var(--bde-palette-dark);
	color: var(--bde-palette-paper);
	box-shadow: var(--bob-shadow);
}
.bob-where .bob-where-opt:has(input:focus-visible) {
	outline: 3px solid var(--bde-palette-accent);
	outline-offset: 3px;
}

/* ---------- "We come to you" note (WooCommerce variation description) ---------- */
.bob-onsite {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 6px 0 4px;
	padding: 10px 14px;
	border: 2px dashed var(--bde-palette-ink);
	border-radius: var(--bob-radius);
	background: var(--bde-palette-tint-info);
}
.bob-onsite-img {
	flex: 0 0 auto;
	width: 64px;
	height: auto;
}
.bob-onsite-text p {
	margin: 0;
	font-size: 16px;
	line-height: 1.4;
}

/* ---------- What's included, inside the buy box ---------- */
.bob-pdp-includes {
	margin: 18px 0 18px;
}
.bob-pdp-includes ul {
	margin: 0 0 10px;
}
.bob-pdp-includes p {
	margin: 0;
	font-size: 15px;
	color: var(--bde-palette-mute);
}

/* ---------- How many computers? (prompt 15) ----------
   Breakdance draws the -/+ buttons around WooCommerce's number box; here they become the site's
   comic buttons: white, ink outline, hard shadow, like the Where buttons. Product page: label on
   its own line, the stepper under it, the Book button below that. /booking/: the same stepper in
   the row, between the repair and its price. */
body.breakdance .bob-pdp-cart .woocommerce-variation-add-to-cart {
	row-gap: 0;
}
body.breakdance .bob-pdp-cart .bob-qty-label {
	flex: 0 0 100%;
	margin: 0 0 8px;
	font-family: var(--bde-body-font-family);
	font-size: 15px;
	font-weight: 700;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-pdp-cart .quantity {
	flex: 0 0 100%;
	margin: 0 0 22px;
}
body.breakdance .bob-pdp-cart .quantity,
body.breakdance .bob-cart-panel td.product-quantity .quantity {
	display: flex;
	align-items: center;
	gap: 10px;
	width: auto;
	max-width: none;
}
body.breakdance .bob-pdp-cart .quantity input.qty,
body.breakdance .bob-cart-panel td.product-quantity .quantity input.qty {
	width: 64px;
	height: 52px;
	margin: 0;
	padding: 4px 0 0;
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	background: var(--bde-palette-white);
	box-shadow: none;
	font-family: var(--bde-heading-font-family);
	font-size: 30px;
	line-height: 1;
	letter-spacing: 0.04em;
	color: var(--bde-palette-ink);
	text-align: center;
}
body.breakdance .bob-pdp-cart .quantity input.qty:focus-visible,
body.breakdance .bob-cart-panel td.product-quantity .quantity input.qty:focus-visible {
	outline: 3px solid var(--bde-palette-accent);
	outline-offset: 3px;
}
body.breakdance .bob-pdp-cart .quantity .bde-quantity-button,
body.breakdance .bob-cart-panel td.product-quantity .quantity .bde-quantity-button {
	position: static;
	top: auto;
	bottom: auto;
	left: auto;
	right: auto;
	transform: none;
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	padding: 0;
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	background: var(--bde-palette-white);
	box-shadow: var(--bob-shadow-sm);
	font-size: 18px; /* the icon is 1em square */
	color: var(--bde-palette-ink);
	transition: transform 100ms ease, box-shadow 100ms ease, opacity 100ms ease;
}
body.breakdance .bob-pdp-cart .quantity .bde-quantity-button:hover,
body.breakdance .bob-cart-panel td.product-quantity .quantity .bde-quantity-button:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--bob-shadow);
	background: var(--bde-palette-white);
	color: var(--bde-palette-ink);
}
body.breakdance .bob-pdp-cart .quantity .bde-quantity-button:focus-visible,
body.breakdance .bob-cart-panel td.product-quantity .quantity .bde-quantity-button:focus-visible {
	outline: 3px solid var(--bde-palette-accent);
	outline-offset: 3px;
}
/* At 1 or 10 the button that can't go further fades (store.js sets .is-limit). */
body.breakdance .bob-pdp-cart .quantity .bde-quantity-button.is-limit,
body.breakdance .bob-cart-panel td.product-quantity .quantity .bde-quantity-button.is-limit {
	opacity: 0.4;
	transform: none;
	box-shadow: var(--bob-shadow-sm);
	cursor: default;
}

/* ---------- Express pay (Stripe Link), below the reassurance line ---------- */
.bob-pdp-express {
	margin: 0 0 16px;
}
.bob-pdp-express #wc-stripe-express-checkout-element {
	margin-top: 0 !important; /* Stripe sets 1em inline */
}

/* ---------- /confirm/: Scan credit note above the express buttons (prompt 15) ----------
   Small and navy. Hidden until store.js sees Stripe's buttons showing. */
body.breakdance .bob-express-note {
	margin: 16px 0 0;
	font-family: var(--bde-body-font-family);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--bde-palette-dark);
}
body.breakdance .bob-express-note[hidden] {
	display: none;
}
/* Stripe sets a 1em top margin inline; under the note the buttons sit closer. */
body.breakdance .bob-express-note:not([hidden]) + #wc-stripe-express-checkout-element {
	margin-top: 8px !important;
}

/* ---------- Empty booking ---------- */
.bob-empty {
	margin: 0 auto 8px;
	max-width: 360px;
}
.bob-empty-img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Confirm your booking: two columns ---------- */
.bob-chk-main,
.bob-chk-aside {
	min-width: 0;
}
.bob-trust {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-top: 20px;
	padding: 16px 18px;
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	background: var(--bde-palette-tint-good);
	box-shadow: var(--bob-shadow-sm);
}
.bob-trust-img {
	flex: 0 0 auto;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	border: 2px solid var(--bde-palette-ink);
	object-fit: cover;
	background: var(--bde-palette-tint-warn);
}
.bob-trust-list {
	margin: 0;
	font-size: 16px;
}
.bob-trust-list li {
	margin: 4px 0;
}

/* ---------- Booking page: code field folded away ---------- */
.bob-coupon-toggle {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-weight: 600;
	color: var(--bde-palette-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.bob-coupon-collapsed {
	display: none !important;
}

/* ---------- Your booking (cart, inside .bob-cart-panel) ---------- */
body.breakdance .bob-cart-panel table.shop_table thead,
body.breakdance .bob-cart-panel td.product-thumbnail,
body.breakdance .bob-cart-panel td.product-price,
body.breakdance .bob-cart-panel button[name="update_cart"] {
	display: none;
}
/* How many computers (prompt 15): the stepper changes the booking straight away (Breakdance's
   script), so WooCommerce's Update button stays hidden. */
body.breakdance .bob-cart-panel td.product-quantity {
	white-space: nowrap;
}
@media (min-width: 768px) {
	body.breakdance .bob-cart-panel td.product-quantity {
		width: 1%; /* as narrow as the stepper */
	}
}
/* Phones: Breakdance puts the stepper on its own line under the repair; keep it clear of the
   dashed line under the row. */
@media (max-width: 767px) {
	body.breakdance .bob-cart-panel tr.woocommerce-cart-form__cart-item td.product-quantity {
		padding-bottom: 18px;
	}
}
body.breakdance .bob-cart-panel td.product-quantity::before {
	content: none;
	display: none;
}
body.breakdance .bob-cart-panel .bob-qty-label {
	display: block;
	margin: 0 0 6px;
	font-family: var(--bde-body-font-family);
	font-size: 14px;
	font-weight: 700;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-cart-panel table.shop_table {
	border: 0;
	border-radius: 0;
	background: none;
}
body.breakdance .bob-cart-panel tr.woocommerce-cart-form__cart-item td {
	padding: 6px 8px 18px;
	border: 0;
	border-bottom: 2px dashed rgba(20, 24, 31, 0.35);
	background: none;
	vertical-align: middle;
}
body.breakdance .bob-cart-panel td.product-name a {
	font-family: var(--bde-heading-font-family);
	font-size: 36px;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--bde-palette-dark);
	text-decoration: none;
}
body.breakdance .bob-cart-panel td.product-name dl.variation {
	margin: 6px 0 0;
	font-size: 16px;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-cart-panel td.product-subtotal {
	font-family: var(--bde-heading-font-family);
	font-size: 34px;
	text-align: right;
	color: var(--bde-palette-ink);
}
body.breakdance .bob-cart-panel td.actions {
	padding: 14px 8px 4px;
	border: 0;
	background: none;
}
body.breakdance .bob-cart-panel .coupon {
	display: flex;
	gap: 10px;
	margin-top: 10px;
}
body.breakdance .bob-cart-panel .cart_totals h2 {
	margin: 18px 0 6px;
	font-size: 28px;
}
body.breakdance .bob-cart-panel .cart_totals table.shop_table th,
body.breakdance .bob-cart-panel .cart_totals table.shop_table td {
	padding: 10px 8px;
	border: 0;
	border-top: 2px solid rgba(20, 24, 31, 0.12);
	background: none;
}
body.breakdance .bob-cart-panel .order-total td strong {
	font-family: var(--bde-heading-font-family);
	font-size: 34px;
	font-weight: 400;
}
body.breakdance .bob-chkpage small.includes_tax,
body.breakdance .bob-cart-panel small.includes_tax {
	display: block;
	font-family: var(--bde-body-font-family);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-cart-panel .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 64px;
	margin-top: 12px;
	padding: 16px 24px 14px;
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow);
	font-family: var(--bde-heading-font-family);
	font-size: 30px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1;
	text-decoration: none;
	transition: transform 100ms ease, box-shadow 100ms ease;
}
body.breakdance .bob-cart-panel .wc-proceed-to-checkout a.checkout-button:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--bob-shadow-lift);
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
}
body.breakdance .bob-cart-panel .wc-proceed-to-checkout a.checkout-button::after {
	content: none;
	display: none;
}
/* Empty booking: Crassus, the line, and the way back to the tiers. */
body.breakdance .bob-cart-panel .cart-empty.woocommerce-info {
	margin: 4px 0 18px;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
	text-align: center;
	font-family: var(--bde-heading-font-family);
	font-size: 40px;
	line-height: 1.05;
	letter-spacing: 0.02em;
	color: var(--bde-palette-dark);
}
body.breakdance .bob-cart-panel .cart-empty.woocommerce-info::before {
	content: none;
	display: none;
}
body.breakdance .bob-cart-panel .return-to-shop {
	display: flex;
	justify-content: center;
	margin: 0;
	text-align: center;
}
body.breakdance .bob-cart-panel .return-to-shop a.button.wc-backward {
	display: inline-flex;
	padding: 16px 28px 14px;
	/* "Pick a repair" starts a booking, so it's yellow like the Book buttons (27 Oct 2026). */
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow);
	font-family: var(--bde-heading-font-family);
	font-size: 26px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1;
}
@media (max-width: 767px) {
	body.breakdance .bob-cart-panel td.product-name a,
	body.breakdance .bob-cart-panel td.product-subtotal {
		font-size: 28px;
	}
	body.breakdance .bob-cart-panel .wc-proceed-to-checkout a.checkout-button {
		font-size: 26px;
	}
	body.breakdance .bob-cart-panel .cart-empty.woocommerce-info {
		font-size: 32px;
	}
}

/* ---------- Tables on the confirm and thank-you pages: readable header row ---------- */
body.breakdance .bob-chkpage table.shop_table thead th {
	color: var(--bde-palette-white);
}

/* ---------- Confirm your booking (checkout, inside .bob-chkpage) ---------- */
body.breakdance .bob-chkpage .breakdance-woocommerce form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
	column-gap: 44px;
	row-gap: 24px;
	align-items: start;
}
/* WooCommerce puts notices (Scan credit applied, checkout errors) at the top of the form: give
   them the full width so they don't take a column and push the form across. */
body.breakdance .bob-chkpage .breakdance-woocommerce form.checkout > .woocommerce-NoticeGroup {
	grid-column: 1 / -1;
}
body.breakdance .bob-chkpage .bob-chk-aside {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 110px);
}
body.breakdance .bob-chkpage .bde-order-review-column {
	width: 100%;
	max-width: none;
	flex: none;
	margin: 0;
	padding: 22px;
	background: var(--bde-palette-white);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow);
}
body.breakdance .bob-chkpage #order_review_heading {
	margin: 0 0 12px;
	font-size: 30px;
}
body.breakdance .bob-chkpage #customer_details,
body.breakdance .bob-chkpage #customer_details .col-1,
body.breakdance .bob-chkpage #customer_details .col-2 {
	width: 100%;
	max-width: none;
	float: none;
	flex: none;
	margin: 0;
}
body.breakdance .bob-chkpage .woocommerce-billing-fields h3,
body.breakdance .bob-chkpage .woocommerce-additional-fields h3 {
	margin: 18px 0 12px;
	font-size: 30px;
}
body.breakdance .bob-chkpage form.checkout input.input-text,
body.breakdance .bob-chkpage form.checkout textarea {
	min-height: 52px;
	font-size: 17px;
}
body.breakdance .bob-chkpage form.checkout textarea {
	min-height: 104px;
}
/* Stripe's hidden style probe: keep it inside its column so the page doesn't scroll sideways. */
body.breakdance .bob-chkpage #wc-stripe-hidden-style-input {
	left: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}
/* Payment methods as two big radio cards. */
body.breakdance .bob-chkpage #payment {
	margin-top: 22px;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
}
body.breakdance .bob-chkpage #payment ul.wc_payment_methods {
	display: grid;
	gap: 14px;
	margin: 0 0 18px;
	padding: 0;
	border: 0;
	background: none;
}
body.breakdance .bob-chkpage #payment ul.wc_payment_methods > li.wc_payment_method {
	margin: 0;
	padding: 16px 18px;
	background: var(--bde-palette-white);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow-sm);
	list-style: none;
}
body.breakdance .bob-chkpage #payment ul.wc_payment_methods > li.wc_payment_method:has(> input:checked) {
	background: var(--bde-palette-tint-warn);
	box-shadow: var(--bob-shadow);
}
body.breakdance .bob-chkpage #payment ul.wc_payment_methods > li.wc_payment_method > label {
	font-family: var(--bde-heading-font-family);
	font-size: 26px;
	letter-spacing: 0.04em;
	line-height: 1.1;
	color: var(--bde-palette-dark);
	cursor: pointer;
}
body.breakdance .bob-chkpage #payment ul.wc_payment_methods > li.wc_payment_method > input[type="radio"] {
	width: 22px;
	height: 22px;
	margin-right: 10px;
	vertical-align: -3px;
	accent-color: var(--bde-palette-dark);
}
body.breakdance .bob-chkpage #payment .payment_box {
	margin: 12px 0 0;
	padding: 12px 0 0;
	background: none;
	border: 0;
	font-size: 16px;
}
body.breakdance .bob-chkpage #payment .payment_box::before {
	content: none;
	display: none;
}
body.breakdance .bob-chkpage #payment .form-row.place-order {
	margin: 0;
	padding: 0;
	background: none;
}
body.breakdance .bob-chkpage #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 66px;
	margin-top: 16px;
	padding: 16px 24px 14px;
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow);
	font-family: var(--bde-heading-font-family);
	font-size: 32px;
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1;
	transition: transform 100ms ease, box-shadow 100ms ease;
}
body.breakdance .bob-chkpage #place_order:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--bob-shadow-lift);
	background: var(--bde-palette-highlight);
	color: var(--bde-palette-ink);
}
body.breakdance .bob-chkpage #place_order::after {
	content: none;
	display: none;
}
@media (max-width: 1023px) {
	body.breakdance .bob-chkpage .breakdance-woocommerce form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}
	body.breakdance .bob-chkpage .bob-chk-aside {
		position: static;
		order: -1;
	}
}
@media (max-width: 767px) {
	body.breakdance .bob-chkpage .bde-order-review-column {
		padding: 16px;
	}
	body.breakdance .bob-chkpage #place_order {
		font-size: 28px;
	}
}
/* Breakdance lays the payment box out as a flex row, which shrinks Stripe's card form to ~290px. */
body.breakdance .bob-chkpage #payment .payment_box {
	display: block;
}
body.breakdance .bob-chkpage #payment .payment_box fieldset {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
}
body.breakdance .bob-chkpage td.product-name dl.variation {
	display: block;
	margin: 4px 0 0;
	font-size: 15px;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-chkpage td.product-name dl.variation dt,
body.breakdance .bob-chkpage td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	white-space: normal;
	word-break: normal;
}
body.breakdance .bob-chkpage td.product-name dl.variation dd p {
	display: inline;
	margin: 0;
}
/* "Where: We come to you" on one readable line in the booking rows too (Breakdance's phone grid squeezes it). */
body.breakdance .bob-cart-panel td.product-name dl.variation {
	display: block;
}
body.breakdance .bob-cart-panel td.product-name dl.variation dt,
body.breakdance .bob-cart-panel td.product-name dl.variation dd {
	display: inline;
	margin: 0;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
}
body.breakdance .bob-cart-panel td.product-name dl.variation dd p {
	display: inline;
	margin: 0;
}
@media (max-width: 767px) {
	body.breakdance .bob-cart-panel tr.woocommerce-cart-form__cart-item td {
		border-bottom: 0;
	}
	body.breakdance .bob-cart-panel tr.woocommerce-cart-form__cart-item {
		border-bottom: 2px dashed rgba(20, 24, 31, 0.35);
	}
	body.breakdance .bob-cart-panel td.product-name {
		min-width: 0;
	}
}

/* ---------- You're on the bench (order received) ---------- */
/* Drop-off address, only on drop-off bookings (store.php), and the bank details while a
   bank-transfer booking waits for the money (payments.php). */
.bob-dropoff,
.bob-bacs {
	margin: 0 0 28px;
	padding: 18px 22px;
	background-color: var(--bde-palette-tint-warn);
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	box-shadow: var(--bob-shadow-sm);
}
body.breakdance .bob-dropoff .bob-dropoff-h,
body.breakdance .bob-bacs .bob-bacs-h {
	margin: 0 0 6px;
	font-family: var(--bde-heading-font-family);
	font-size: 26px;
	line-height: 1.05;
	letter-spacing: 0.04em;
	color: var(--bde-palette-dark);
}
body.breakdance .bob-bacs .bob-bacs-list {
	margin: 4px 0 10px;
}
body.breakdance .bob-bacs .bob-bacs-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0 12px;
	margin: 0 0 4px;
	font-size: 18px;
	line-height: 1.4;
}
body.breakdance .bob-bacs .bob-bacs-row dt {
	min-width: 150px;
	margin: 0;
	font-weight: 400;
}
body.breakdance .bob-bacs .bob-bacs-row dd {
	margin: 0;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
body.breakdance .bob-bacs .bob-bacs-ref p {
	margin: 0 0 6px;
	font-size: 18px;
}
body.breakdance .bob-bacs .bob-bacs-note {
	margin: 0;
	font-size: 16px;
}
.bob-dropoff-addr {
	margin: 0 0 6px;
	font-style: normal;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}
.bob-dropoff-hours {
	margin: 0 0 6px;
	font-size: 16px;
}
body.breakdance .bob-dropoff .bob-dropoff-dir {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 700;
}
body.breakdance .bob-dropoff .bob-dropoff-dir a {
	color: var(--bde-palette-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.bob-dropoff-note {
	margin: 0;
	font-size: 16px;
}

/* Confirm your booking: the pay page (a pay link) has its own line under the heading. */
body.breakdance .bob-chk-sub--pay {
	display: none;
}
body.breakdance.woocommerce-order-pay .bob-chk-sub--pay {
	display: block;
}
body.breakdance.woocommerce-order-pay .bob-chk-sub--checkout {
	display: none;
}
/* The hero headline already says it; WooCommerce's own notice would repeat it. */
body.breakdance .bob-chkpage .woocommerce-thankyou-order-received {
	display: none;
}
/* The customer's note is the last row of the order table; keep it in normal text, not the totals style. */
body.breakdance .bob-chkpage .woocommerce-table--order-details tfoot tr:last-child:not(:has(.woocommerce-Price-amount)) th,
body.breakdance .bob-chkpage .woocommerce-table--order-details tfoot tr:last-child:not(:has(.woocommerce-Price-amount)) td {
	font-family: var(--bde-body-font-family);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	color: var(--bde-palette-ink);
}
/* Order items list their choices as ul.wc-item-meta; keep "Where: We come to you" readable on phones. */
body.breakdance .bob-chkpage ul.wc-item-meta {
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	color: var(--bde-palette-mute);
}
body.breakdance .bob-chkpage ul.wc-item-meta li,
body.breakdance .bob-chkpage ul.wc-item-meta li strong,
body.breakdance .bob-chkpage ul.wc-item-meta li p {
	display: inline;
	margin: 0;
	white-space: normal;
	word-break: normal;
	overflow-wrap: normal;
}

/* ---------- Notices on repair pages (prompt 7) ----------
   WooCommerce prints "… is on your booking" above the page, outside Breakdance's notice styles,
   so it ran edge to edge. Line it up with the page content and give it the "done" tint. */
body.breakdance .bob-pdp > .woocommerce-notices-wrapper {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 24px;
}

body.breakdance .bob-pdp > .woocommerce-notices-wrapper:not(:empty) {
	padding-top: 16px;
}

body.breakdance .bob-pdp > .woocommerce-notices-wrapper .woocommerce-message,
body.breakdance .bob-pdp > .woocommerce-notices-wrapper .woocommerce-info,
body.breakdance .bob-pdp > .woocommerce-notices-wrapper .woocommerce-error {
	margin: 0 0 12px;
	padding: 12px 16px;
	border: var(--bob-border);
	border-radius: var(--bob-radius);
	background-color: var(--bde-palette-tint-good);
	color: var(--bde-palette-ink);
	font-weight: 600;
}

body.breakdance .bob-pdp > .woocommerce-notices-wrapper .woocommerce-error {
	background-color: var(--bde-palette-tint-bad);
}

body.breakdance .bob-pdp > .woocommerce-notices-wrapper .wc-forward {
	margin-left: 6px;
	color: var(--bde-palette-accent);
	font-weight: 700;
}

/* Focus is moved here for screen readers; no ring unless the visitor is using the keyboard. */
body.breakdance .bob-pdp > .woocommerce-notices-wrapper [tabindex="-1"]:focus:not(:focus-visible) {
	outline: none;
}

@media (max-width: 767px) {
	body.breakdance .bob-pdp > .woocommerce-notices-wrapper {
		padding-left: 16px;
		padding-right: 16px;
	}
}

/* Confirm your booking: "Have a Scan credit code?" in sentence case, as on Your booking. */
body.breakdance .woocommerce-form-coupon-toggle .showcoupon {
	text-transform: none;
}
