
.bridge-suit.text-black * {
	--bs-text-opacity: 1;
	color: rgba( var( --bs-black-rgb ), var( --bs-text-opacity ) ) !important;
}
.bridge-suit.text-danger * {
	--bs-text-opacity: 1;
	color: rgba( var( --bs-danger-rgb ), var( --bs-text-opacity ) ) !important;
}

/* CU-86cb76kuh Bridge brand book p.23: regular bullet lists (the "disk" editor
   option and plain content lists) use a tilted spade — the FontAwesome solid
   spade rotated 90° clockwise — instead of a round dot. Staxxo renders list
   bullets as native markers, so the native marker is hidden and the spade is
   drawn as a masked ::before, coloured by the whitelabel bullet colour with
   the list item's text colour as fallback. Checkmark lists are excluded.
   Wysiwyg lists are the only classless uls inside a content block (template
   lists always carry a class), so matching on the absence of a class also
   reaches lists rendered without the .owcb-text wrapper, e.g. inside cards. */
.owcb-block ul:not( [class] ):not( [style*="list-style-type: checkmark;"] ) > li,
ul[style*="list-style-type: disc;"]:not( .pagination ) > li {
	position: relative;
	list-style: none;
}
.owcb-block ul:not( [class] ):not( [style*="list-style-type: checkmark;"] ) > li::before,
ul[style*="list-style-type: disc;"]:not( .pagination ) > li::before {
	content: '';
	position: absolute;
	top: 0.3em;
	left: -1.3em;
	width: 0.9em;
	height: 0.9em;
	background: var( --bullets-bullet-bg-color, currentColor );
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath transform='rotate(90 256 256)' d='M278 12.5c-12.3-11.7-31.7-11.7-44 0L168 75.1 40 196.3c-51.3 48.6-53.5 129.6-4.9 181s129.6 53.5 181 4.9l8-7.6 0 73.4-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-73.4 8 7.6c51.3 48.6 132.3 46.4 181-4.9s46.4-132.3-4.9-181L344 75.1 278 12.5z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath transform='rotate(90 256 256)' d='M278 12.5c-12.3-11.7-31.7-11.7-44 0L168 75.1 40 196.3c-51.3 48.6-53.5 129.6-4.9 181s129.6 53.5 181 4.9l8-7.6 0 73.4-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-73.4 8 7.6c51.3 48.6 132.3 46.4 181-4.9s46.4-132.3-4.9-181L344 75.1 278 12.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Centered or right-aligned text (a text-center/text-end wrapper, or the
   editor's per-item inline text-align): the absolutely-positioned spade would
   stay at the li's left edge, so render it inline so it follows the text. */
:is( .text-center, .text-end, [style*="text-align: center"], [style*="text-align: right"] ) ul:not( [class] ):not( [style*="list-style-type: checkmark;"] ) > li::before,
.owcb-block ul:not( [class] ):not( [style*="list-style-type: checkmark;"] ) > li:is( [style*="text-align: center"], [style*="text-align: right"] )::before,
:is( .text-center, .text-end, [style*="text-align: center"], [style*="text-align: right"] ) ul[style*="list-style-type: disc;"]:not( .pagination ) > li::before,
ul[style*="list-style-type: disc;"]:not( .pagination ) > li:is( [style*="text-align: center"], [style*="text-align: right"] )::before {
	position: static;
	display: inline-block;
	margin-right: 0.4em;
	vertical-align: -0.1em;
}

/* CU-86cb96xum — create-event interstitial. Bootstrap has no fixed-size box
   utility, so the round icon badges next to each numbered block need a size. */
.modbridge-intro__icon {
	width: 5rem;
	height: 5rem;
	flex: 0 0 auto;
}

/* Sticky action bar. It has to bleed into the modal body's 1.5rem padding on
   all four sides: without the negative bottom margin and matching `bottom`
   offset it would stop short of the scroll container's edge, leaving a strip
   where content stays visible sliding underneath. Spacing lives here rather
   than in utility classes so the two can't disagree. */
.modbridge-intro__actions {
	bottom: -1.5rem;
	margin: 1.5rem -1.5rem -1.5rem;
	padding: 1rem 1.5rem 1.5rem;
}
