/**
 * OZB Promo Banners, storefront.
 * Selectors start with :root:not(#ozb-pb) (the brand theme's own pattern) so
 * Flatsome's product-summary rules for links, lists and .price don't win.
 * House style: white cards, red #d71920 accents, charcoal #262626, condensed
 * bold headlines (the theme's own Archivo at 75% width, so no outside font).
 */

:root:not(#ozb-pb) .ozb-pb-bar,
:root:not(#ozb-pb) .ozb-pb-card,
:root:not(#ozb-pb) .ozb-pb-hero,
:root:not(#ozb-pb) .ozb-pb-knife,
:root:not(#ozb-pb) .ozb-pb-addons,
:root:not(#ozb-pb) .ozb-pb-cartline,
:root:not(#ozb-pb) .ozb-pb-offer,
:root:not(#ozb-pb) .ozb-pb-save,
:root:not(#ozb-pb) .ozb-pb-tile-pill {
	--ozb-pb-green: var(--ozb-green, #2f7a3a);
	--ozb-pb-red: #d71920;
	--ozb-pb-red-dk: #b3141a;
	--ozb-pb-char: #262626;
	--ozb-pb-line: #e6e5e2;
	--ozb-pb-head: var(--ozb-font, "Archivo", system-ui, sans-serif);
	--ozb-pb-font: var(--ozb-font, "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif);
	font-family: var(--ozb-pb-font);
	box-sizing: border-box;
}

:root:not(#ozb-pb) .ozb-pb-bar *,
:root:not(#ozb-pb) .ozb-pb-card *,
:root:not(#ozb-pb) .ozb-pb-hero *,
:root:not(#ozb-pb) .ozb-pb-knife *,
:root:not(#ozb-pb) .ozb-pb-addons *,
:root:not(#ozb-pb) .ozb-pb-offer *,
:root:not(#ozb-pb) .ozb-pb-save * {
	box-sizing: border-box;
}

:root:not(#ozb-pb) .ozb-pb-short { display: none; }
:root:not(#ozb-pb) [data-ozb-pb-restore][hidden] { display: none !important; }
/* ------------------------------------------------------------- top bar */

:root:not(#ozb-pb) .ozb-pb-bar {
	position: relative;
	z-index: 30;
	background: var(--ozb-pb-red);
	color: #fff;
}

:root:not(#ozb-pb) .ozb-pb-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px 18px;
	max-width: 1290px;
	margin: 0 auto;
	padding: 9px 20px;
}

:root:not(#ozb-pb) .ozb-pb-bar__msg {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	color: #fff;
	text-align: center;
}

:root:not(#ozb-pb) .ozb-pb-bar__cta,
:root:not(#ozb-pb) .ozb-pb-bar__cta:visited {
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}

:root:not(#ozb-pb) .ozb-pb-bar__cta:hover,
:root:not(#ozb-pb) .ozb-pb-bar__cta:focus {
	color: #fff;
	text-decoration-thickness: 2px;
}

:root:not(#ozb-pb) .ozb-pb-bar__cta:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
	border-radius: 2px;
}

/* ----------------------------------------------------------- countdown */

:root:not(#ozb-pb) .ozb-pb-cd {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

:root:not(#ozb-pb) .ozb-pb-cd.is-ended { display: none; }
:root:not(#ozb-pb) .ozb-pb-cd__unit {
	display: inline-flex;
	align-items: baseline;
	gap: 3px;
}

:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__unit {
	padding: 2px 7px;
	background: rgba(0, 0, 0, 0.2);
	border-radius: 5px;
}

:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__num {
	font-size: 15px;
	font-weight: 750;
}

:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__label {
	font-size: 12px;
	font-weight: 500;
	opacity: 0.9;
}

/* ------------------------------------------------- Camp Braai offer card */

/* Charcoal panel, white type, the Cleaver big on a white tile with a red sticker. */
:root:not(#ozb-pb) .ozb-pb-card {
	display: grid;
	grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
	gap: 20px;
	align-items: center;
	margin: 8px 0 24px;
	padding: 18px 20px 18px 18px;
	background: var(--ozb-pb-char);
	color: #fff;
	border: 0;
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(20, 18, 16, 0.18);
}

:root:not(#ozb-pb) .ozb-pb-card__media {
	position: relative;
	padding: 0 10px 10px 0;
}

:root:not(#ozb-pb) .ozb-pb-card__tile {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
}

:root:not(#ozb-pb) .ozb-pb-card__img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: contain;
	transform: scale(1.18);
}

/* Round red sticker, used on the card (bottom-right corner of the photo) and in the hero. */
:root:not(#ozb-pb) .ozb-pb-sticker {
	position: absolute;
	right: -4px;
	bottom: -4px;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 86px;
	height: 86px;
	color: #fff;
	text-align: center;
	background: var(--ozb-pb-red);
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	transform: rotate(-10deg);
}

:root:not(#ozb-pb) .ozb-pb-sticker__big {
	font-family: var(--ozb-pb-head);
	font-size: 25px;
	font-weight: 750;
	font-stretch: 75%;
	line-height: 0.95;
	letter-spacing: 0.02em;
}

:root:not(#ozb-pb) .ozb-pb-sticker__small {
	margin-top: 2px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.1;
	white-space: nowrap;
}

:root:not(#ozb-pb) .ozb-pb-card .ozb-pb-card__title {
	margin: 0 0 8px;
	font-family: var(--ozb-pb-head);
	font-size: 26px;
	font-weight: 750;
	font-stretch: 75%;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #fff;
}

:root:not(#ozb-pb) .ozb-pb-card__text {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.45;
	color: #fff;
}

:root:not(#ozb-pb) .ozb-pb-card__timer {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 8px;
	margin: 0 0 10px;
}

:root:not(#ozb-pb) .ozb-pb-card__ends {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #fff;
	opacity: 0.75;
}

/* Small and neat: one compact row of chips. */
:root:not(#ozb-pb) .ozb-pb-cd--card { gap: 4px; }
:root:not(#ozb-pb) .ozb-pb-cd--card .ozb-pb-cd__unit {
	gap: 2px;
	padding: 3px 6px;
	background: var(--ozb-pb-red);
	color: #fff;
	border-radius: 5px;
}

:root:not(#ozb-pb) .ozb-pb-cd--card .ozb-pb-cd__num {
	font-size: 14px;
	font-weight: 750;
	line-height: 1.2;
}

:root:not(#ozb-pb) .ozb-pb-cd--card .ozb-pb-cd__label {
	font-size: 11px;
	font-weight: 500;
	opacity: 0.9;
}

:root:not(#ozb-pb) .ozb-pb-cd--card .ozb-pb-cd__label .ozb-pb-long { display: none; }
:root:not(#ozb-pb) .ozb-pb-cd--card .ozb-pb-cd__label .ozb-pb-short { display: inline; }
:root:not(#ozb-pb) .ozb-pb-card__note {
	margin: 0;
	padding-top: 9px;
	font-size: 12px;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.72);
	border-top: 1px solid rgba(255, 255, 255, 0.16);
}

/* ------------------------------------------------------- homepage hero */

/* Lives inside Flatsome's own hero text box, over the campfire photo. */
:root:not(#ozb-pb) .ozb-pb-hero {
	position: relative;
	color: #fff;
}

/* The theme pins the hero box to the banner's bottom and lets it grow upward.
   Lower pin while the offer shows, so the taller offer text clears the header. */
:root:not(#ozb-pb) .ozb-hero .text-box.ozb-hero__box.ozb-pb-hero-box { bottom: 40px !important; }

/* Pill, then the Cleaver photo with its sticker. The photo overhangs the row
   above and below, so the row costs only the pill's height. */
:root:not(#ozb-pb) .ozb-pb-hero__top {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 0 0 14px;
}

:root:not(#ozb-pb) .ozb-pb-hero__badge {
	position: relative;
	flex: 0 0 auto;
	width: 68px;
	height: 68px;
	margin: -18px 0;
}

:root:not(#ozb-pb) .ozb-pb-hero__img {
	display: block;
	width: 68px;
	height: 68px;
	max-width: none;
	object-fit: cover;
	background: #fff;
	border: 4px solid #fff;
	border-radius: 50%;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
}

:root:not(#ozb-pb) .ozb-pb-sticker--sm {
	top: 50%;
	left: auto;
	right: -54px;
	bottom: auto;
	width: 64px;
	height: 64px;
	margin-top: -32px;
}

:root:not(#ozb-pb) .ozb-pb-sticker--sm .ozb-pb-sticker__big { font-size: 19px; }
:root:not(#ozb-pb) .ozb-pb-sticker--sm .ozb-pb-sticker__small { font-size: 9px; }

:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__kicker {
	display: inline-block;
	margin: 0;
	padding: 5px 12px;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	background: var(--ozb-pb-red);
	border-radius: 4px;
}

:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__title {
	/* The theme's hero title, a step smaller: the offer headline is longer. */
	font-size: clamp(38px, 4.4vw, 58px);
	margin-bottom: 14px;
	text-wrap: balance;
}

:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__lead {
	margin-bottom: 24px;
	font-weight: 600;
}

:root:not(#ozb-pb) .ozb-pb-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
}

/* ------------------------------------------------- knife page Sharpener badge */

:root:not(#ozb-pb) .ozb-pb-knife {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 6px 0 20px;
	padding: 10px 14px 10px 10px;
	color: var(--ozb-pb-char);
	background: #fff;
	border: 1px solid var(--ozb-pb-line);
	border-left: 4px solid var(--ozb-pb-red);
	border-radius: 10px;
}

:root:not(#ozb-pb) .ozb-pb-knife__media {
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	background: #f5f5f3;
	border-radius: 8px;
	overflow: hidden;
}

:root:not(#ozb-pb) .ozb-pb-knife__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	mix-blend-mode: multiply;
}

:root:not(#ozb-pb) .ozb-pb-knife .ozb-pb-knife__text {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--ozb-pb-char);
}

:root:not(#ozb-pb) .ozb-pb-knife__text strong {
	font-weight: 700;
	color: var(--ozb-pb-red);
}

/* ------------------------------------------------- add-on row (3 cards) */

:root:not(#ozb-pb) .ozb-pb-addons {
	margin: 6px 0 26px;
	color: var(--ozb-pb-char);
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addons__title {
	margin: 0 0 12px;
	font-family: var(--ozb-pb-head);
	font-size: 22px;
	font-weight: 750;
	font-stretch: 75%;
	line-height: 1.05;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--ozb-pb-char);
}

:root:not(#ozb-pb) .ozb-pb-addons__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

:root:not(#ozb-pb) .ozb-pb-addon {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 10px 10px 12px;
	background: #fff;
	border: 1px solid var(--ozb-pb-line);
	border-radius: 12px;
	list-style: none;
}

:root:not(#ozb-pb) .ozb-pb-addon__media {
	display: block;
	margin-bottom: 8px;
	background: #f5f5f3;
	border-radius: 8px;
	overflow: hidden;
}

:root:not(#ozb-pb) .ozb-pb-addon__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	mix-blend-mode: multiply;
}

:root:not(#ozb-pb) .ozb-pb-addon__name,
:root:not(#ozb-pb) .ozb-pb-addon__name:visited {
	display: block;
	min-height: 2.6em;
	margin-bottom: 4px;
	font-size: 14px;
	font-weight: 650;
	line-height: 1.3;
	color: var(--ozb-pb-char);
	text-decoration: none;
}

:root:not(#ozb-pb) .ozb-pb-addon__name:hover { text-decoration: underline; }
:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price {
	display: block;
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ozb-pb-red);
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price del {
	margin-right: 4px;
	font-size: 13px;
	font-weight: 500;
	color: #6e6b66;
	opacity: 1;
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price ins {
	text-decoration: none;
	color: var(--ozb-pb-red);
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price .amount,
:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price bdi {
	/* The site's custom CSS sets .product-summary price amounts to 30px !important. */
	font-size: inherit !important;
	font-weight: inherit;
	color: inherit;
}

/* Identical button on every card: fixed height, full card width, pinned to the bottom. */
:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn,
:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn:visited {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 40px;
	margin: auto 0 0;
	padding: 0 10px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	color: #fff;
	background: var(--ozb-pb-red);
	border: 0;
	border-radius: 999px;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease;
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn:hover,
:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn:focus {
	color: #fff;
	background: var(--ozb-pb-red-dk);
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn:focus-visible {
	outline: 2px solid var(--ozb-pb-char);
	outline-offset: 2px;
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn.is-disabled {
	background: #bdb9b3;
	cursor: default;
}

:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn.loading { opacity: 0.7; }
/* Woo adds a "View cart" link after an Ajax add; keep the cards level. */
:root:not(#ozb-pb) .ozb-pb-addon .added_to_cart {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	text-align: center;
	color: var(--ozb-pb-char);
}

/* ------------------------------------------------------------ cart line */

:root:not(#ozb-pb) .ozb-pb-cartline {
	margin: 14px 0 18px;
	padding: 12px 16px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--ozb-pb-char);
	background: #fff;
	border: 1px solid var(--ozb-pb-line);
	border-left: 4px solid var(--ozb-pb-red);
	border-radius: 10px;
}

:root:not(#ozb-pb) .ozb-pb-cartline a {
	font-weight: 700;
	color: var(--ozb-pb-red);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ------------------------------------------- Camp Braai second gift line */

/* Markup and look are the brand theme's own gift line; this only pulls the
   two lines together so they read as a pair. */
:root:not(#ozb-pb) .product-info .ozb-card-gift--single:has(+ .ozb-pb-gift-line) { margin-bottom: 6px; }
.ozb-pb-gift-line { color: var(--ozb-green, #2f7a3a); }

/* ------------------------------------------- cart and side cart offer bar */

:root:not(#ozb-pb) .ozb-pb-offer {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: 0 0 16px;
	padding: 10px 14px;
	color: var(--ozb-pb-char);
	background: #fff;
	border: 1px solid var(--ozb-pb-line);
	border-left: 4px solid var(--ozb-pb-red);
	border-radius: 10px;
}

:root:not(#ozb-pb) .ozb-pb-offer__icon {
	flex: none;
	width: 20px;
	height: 20px;
	color: var(--ozb-pb-red);
}

:root:not(#ozb-pb) .ozb-pb-offer .ozb-pb-offer__msg {
	flex: 1 1 320px;
	display: flex;
	flex-wrap: wrap;
	gap: 2px 16px;
	margin: 0;
	font-size: 14.5px;
	line-height: 1.4;
	color: var(--ozb-pb-char);
}

:root:not(#ozb-pb) .ozb-pb-offer__part { display: inline; }
:root:not(#ozb-pb) .ozb-pb-offer__part.is-in { font-weight: 700; flex: 1 0 100%; padding-left: 20px; text-indent: -20px; } /* each gift-added line on its own row, wrapped text clear of the tick */
:root:not(#ozb-pb) .ozb-pb-offer__tick {
	display: inline-block;
	width: 15px;
	height: 15px;
	margin: 0 5px 0 0;
	vertical-align: -2px;
	color: var(--ozb-pb-green);
}

:root:not(#ozb-pb) .ozb-pb-offer .ozb-pb-offer__link,
:root:not(#ozb-pb) .ozb-pb-offer .ozb-pb-offer__link:visited {
	font-weight: 700;
	color: var(--ozb-pb-red);
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: nowrap;
}

:root:not(#ozb-pb) .ozb-pb-offer__timer {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
}

:root:not(#ozb-pb) .ozb-pb-offer__ends {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #6e6b66;
}

/* Side cart drawer: same message, smaller, the timer on its own row. */
:root:not(#ozb-pb) .ozb-pb-offer--mini {
	gap: 6px 8px;
	margin: 0 0 12px;
	padding: 8px 10px;
	text-align: left;
}

:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-offer__icon { width: 16px; height: 16px; align-self: flex-start; margin-top: 1px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-offer__msg { flex: 1 1 0; flex-direction: column; gap: 3px; font-size: 13px; line-height: 1.35; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-offer__timer { flex: 1 0 100%; padding-left: 24px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-offer__ends { font-size: 10px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-cd--card .ozb-pb-cd__unit { padding: 2px 5px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-cd--card .ozb-pb-cd__num { font-size: 12px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-cd--card .ozb-pb-cd__label { font-size: 10px; }

/* ---------------------------------------------- checkout savings box */

:root:not(#ozb-pb) .ozb-pb-save {
	margin: 0 0 14px;
	padding: 12px 14px;
	color: var(--ozb-pb-char);
	background: #f4f8f2;
	border: 1px solid #d5e5cf;
	border-radius: 10px;
	text-align: left;
}

:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--ozb-pb-char);
}

:root:not(#ozb-pb) .ozb-pb-save__title strong { font-weight: 750; color: var(--ozb-pb-green); }

:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__list li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 3px 0;
	font-size: 13.5px;
	line-height: 1.35;
	list-style: none;
	border-top: 1px dashed #d5e5cf;
}

:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__list li:first-child { border-top: 0; }
:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__list li.is-gift span:first-child { font-weight: 600; color: var(--ozb-pb-green); }
:root:not(#ozb-pb) .ozb-pb-save .ozb-pb-save__list li span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ---------------------------------------------------- shop tile pills */

/* Bottom right of the photo: top left has the Save/New pills, top right the
   Engravable tag, and the Camp Braai photo has FREE TONGS printed top left. */
:root:not(#ozb-pb) .ozb-pb-tile-pill {
	position: absolute;
	top: auto;
	bottom: 10px;
	right: 10px;
	left: auto;
	z-index: 3;
	padding: 5px 10px;
	font-size: 11px;
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #fff;
	background: var(--ozb-pb-red);
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
	pointer-events: none;
}

/* The theme's gift line and ours share the tile's gift row (row 5 of the
   theme's card subgrid), one under the other, so buttons stay level. */
:root:not(#ozb-pb) .row:not(.row-slider) > .product-small.col .ozb-pb-tile-gifts { grid-row: 5; }
:root:not(#ozb-pb) .ozb-pb-tile-gifts { display: block; }

/* --------------------------------------------- T&C lines and terms */

/* Small print under each offer. "T&Cs apply" opens the full terms in place. */
:root:not(#ozb-pb) .ozb-pb-tc {
	display: block;
	margin: 10px 0 0;
	padding: 0;
	font-size: 12px;
	line-height: 1.45;
	text-align: left;
	color: #6e6b66;
}

:root:not(#ozb-pb) .ozb-pb-tc--dark { color: rgba(255, 255, 255, 0.82); }
:root:not(#ozb-pb) .ozb-pb-tc .ozb-pb-tc__line {
	display: block;
	margin: 0;
	padding: 0;
	font-size: inherit;
	font-weight: 400;
	line-height: inherit;
	letter-spacing: 0;
	text-transform: none;
	color: inherit;
	list-style: none;
	cursor: pointer;
}

:root:not(#ozb-pb) p.ozb-pb-tc .ozb-pb-tc__line { cursor: auto; }
:root:not(#ozb-pb) .ozb-pb-tc summary::-webkit-details-marker { display: none; }
:root:not(#ozb-pb) .ozb-pb-tc summary::marker { content: ""; }
:root:not(#ozb-pb) .ozb-pb-tc summary::before,
:root:not(#ozb-pb) .ozb-pb-tc summary::after { display: none; content: none; }

:root:not(#ozb-pb) .ozb-pb-tc__link {
	font-weight: 600;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: nowrap;
}

:root:not(#ozb-pb) .ozb-pb-tc summary:hover .ozb-pb-tc__link { text-decoration-thickness: 2px; }
:root:not(#ozb-pb) .ozb-pb-tc summary:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

:root:not(#ozb-pb) .ozb-pb-tc__terms {
	margin: 8px 0 0;
	padding: 10px 12px;
	color: var(--ozb-pb-char, #262626);
	background: #fff;
	border: 1px solid var(--ozb-pb-line, #e6e5e2);
	border-radius: 8px;
}

:root:not(#ozb-pb) .ozb-pb-tc__terms ol {
	margin: 0;
	padding: 0 0 0 18px;
	list-style: decimal;
}

:root:not(#ozb-pb) .ozb-pb-tc__terms li {
	margin: 0 0 4px;
	padding: 0;
	font-size: 12px;
	line-height: 1.45;
	color: var(--ozb-pb-char, #262626);
	list-style: decimal;
}

:root:not(#ozb-pb) .ozb-pb-tc__terms li:last-child { margin-bottom: 0; }

/* Cart offer bar naming both offers: one "T&Cs apply", a titled list for each. */
:root:not(#ozb-pb) .ozb-pb-tc__title {
	margin: 0 0 4px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.45;
	color: var(--ozb-pb-char, #262626);
}

/* Top bar: a second, smaller row under the message. */
:root:not(#ozb-pb) .ozb-pb-bar .ozb-pb-tc {
	flex: 1 0 100%;
	margin: -2px 0 0;
	font-size: 11.5px;
	text-align: center;
	color: rgba(255, 255, 255, 0.9);
}

:root:not(#ozb-pb) .ozb-pb-bar .ozb-pb-tc__terms {
	max-width: 760px;
	margin: 8px auto 2px;
	text-align: left;
}

/* Hero: under the buttons, over the photo. */
:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-tc {
	max-width: 520px;
	margin-top: 16px;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-tc__terms { text-shadow: none; }

/* Camp Braai card: under the dispatch note. */
:root:not(#ozb-pb) .ozb-pb-card .ozb-pb-tc { margin-top: 8px; color: rgba(255, 255, 255, 0.72); }
/* Terms open: keep the Cleaver photo at the top instead of re-centring it. */
:root:not(#ozb-pb) .ozb-pb-card:has(.ozb-pb-tc[open]) { align-items: start; }

/* Knife badge and cart bar. */
:root:not(#ozb-pb) .ozb-pb-knife__body { flex: 1 1 auto; min-width: 0; }
:root:not(#ozb-pb) .ozb-pb-knife .ozb-pb-tc { margin-top: 4px; }
:root:not(#ozb-pb) .ozb-pb-offer__small { flex: 1 0 100%; padding-left: 34px; }
:root:not(#ozb-pb) .ozb-pb-offer__small .ozb-pb-tc { margin-top: 2px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-offer__small { padding-left: 24px; }
:root:not(#ozb-pb) .ozb-pb-offer--mini .ozb-pb-tc { font-size: 11px; }

/* "Free Cleaver ships unengraved." */
:root:not(#ozb-pb) .ozb-pb-unengraved {
	margin: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ozb-pb-char, #262626);
}

:root:not(#ozb-pb) .ozb-pb-unengraved--dark { color: #fff; }
:root:not(#ozb-pb) .ozb-pb-offer__small .ozb-pb-unengraved { margin: 0; font-size: 12.5px; }

/* --------------------------------------------------------------- mobile */

@media (max-width: 849px) {
	:root:not(#ozb-pb) .ozb-pb-bar .ozb-pb-long,
	:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__label .ozb-pb-long { display: none; }
	:root:not(#ozb-pb) .ozb-pb-bar .ozb-pb-short,
	:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__label .ozb-pb-short { display: inline; }
	:root:not(#ozb-pb) .ozb-pb-bar__inner {
		gap: 5px 12px;
		padding: 8px 12px;
	}

	:root:not(#ozb-pb) .ozb-pb-bar__msg {
		flex: 1 0 100%;
		font-size: 14px;
	}

	:root:not(#ozb-pb) .ozb-pb-cd--bar { gap: 4px; }
	:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__unit { gap: 1px; padding: 1px 6px; }
	:root:not(#ozb-pb) .ozb-pb-cd--bar .ozb-pb-cd__num { font-size: 14px; }
	:root:not(#ozb-pb) .ozb-pb-bar__cta { font-size: 14px; }
}

@media (max-width: 549px) {
	/* Photo stacks above the text, still big. */
	:root:not(#ozb-pb) .ozb-pb-card {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 14px 14px 16px;
	}

	:root:not(#ozb-pb) .ozb-pb-card__media { padding: 0 8px 8px 0; }
	:root:not(#ozb-pb) .ozb-pb-card__tile { aspect-ratio: 16 / 10; }
	:root:not(#ozb-pb) .ozb-pb-card__img { transform: scale(1.3); }
	:root:not(#ozb-pb) .ozb-pb-card .ozb-pb-card__title { font-size: 28px; }
	:root:not(#ozb-pb) .ozb-pb-hero__top { gap: 12px; margin-bottom: 14px; }
	:root:not(#ozb-pb) .ozb-pb-hero__badge { width: 60px; height: 60px; margin: -16px 0; }
	:root:not(#ozb-pb) .ozb-pb-hero__img { width: 60px; height: 60px; border-width: 3px; }
	:root:not(#ozb-pb) .ozb-pb-sticker--sm { right: -50px; width: 60px; height: 60px; margin-top: -30px; }
	:root:not(#ozb-pb) .ozb-pb-sticker--sm .ozb-pb-sticker__big { font-size: 18px; }
	:root:not(#ozb-pb) .ozb-pb-sticker--sm .ozb-pb-sticker__small { font-size: 9px; }
	:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__kicker { font-size: 12px; }
	:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__title { font-size: 38px; }
	:root:not(#ozb-pb) .ozb-pb-hero .ozb-pb-hero__lead { margin-bottom: 18px; }
	/* Three equal cards stay side by side; they just get tighter. */
	:root:not(#ozb-pb) .ozb-pb-addons__grid { gap: 8px; }
	:root:not(#ozb-pb) .ozb-pb-addon { padding: 8px 8px 10px; }
	:root:not(#ozb-pb) .ozb-pb-addon__name,
	:root:not(#ozb-pb) .ozb-pb-addon__name:visited { min-height: 3.9em; font-size: 13px; }
	:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price { font-size: 14px; }
	:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-addon__price del { display: block; margin: 0; font-size: 12px; }
	:root:not(#ozb-pb) .ozb-pb-addons .ozb-pb-btn { height: 38px; padding: 0 6px; font-size: 13px; }
	/* Cart bar: one offer per line, the timer underneath. */
	:root:not(#ozb-pb) .ozb-pb-offer--cart { align-items: flex-start; padding: 10px 12px; }
	:root:not(#ozb-pb) .ozb-pb-offer--cart .ozb-pb-offer__msg { flex: 1 1 0; flex-direction: column; gap: 4px; font-size: 14px; }
	:root:not(#ozb-pb) .ozb-pb-offer--cart .ozb-pb-offer__timer { flex: 1 0 100%; padding-left: 34px; }
	:root:not(#ozb-pb) .ozb-pb-tile-pill { bottom: 8px; right: 8px; padding: 4px 8px; font-size: 10px; letter-spacing: 0.04em; }
}
