/*bizco-head:bizco-alert-css*/

/* THE BELL, EVERY SELECTOR THAT CAN DRAW IT. Blocksy renders it from the 'woo'
   icon font, glyph \e901, out of exactly two rules:
     legacy-notice.scss  ::before on .woocommerce-info / -error / -message /
                         .woocommerce-thankyou-order-received
     store-notice.scss   ::before on .demo_store, the WooCommerce store notice
                         banner. That one is switched off today, but it is a
                         checkbox in WooCommerce > Settings > General, so it is
                         killed here rather than left to be rediscovered.
   The first three of those classes get the mark strip further down instead of
   a plain kill; the glyph is unset for all of them here first, with no
   :not() guard, so no combination of classes can bring it back. */
.woocommerce-thankyou-order-received::before,.demo_store::before{
	content:none !important;display:none !important}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message)::before{
	font-family:inherit !important;content:"" !important}

/* JS-BUILT NOTICES NEVER REACH THE TEMPLATE, so the legacy classes are dressed
   as the component rather than merely stripped of their bell.
   Five places assemble notice markup in the browser and put it straight into
   the DOM, never touching wc_get_template, so the override above cannot see
   them:
     - checkout.js twice, for an unparseable checkout response and for an
       outright network failure ("There was an error processing your order...")
     - add-to-cart-variation.js, when the chosen attributes match no variation
     - Stripe's classic and UPE bundles, which wrap every gateway refusal
       (card declined, incorrect CVC, SCA give-up) in their own
       <ul class="woocommerce-error">. That is the live MAX checkout path.
   Chasing five scripts would leave the sixth. Instead the bell's own ::before
   is reused as the coloured mark strip: any element carrying a legacy notice
   class, from any plugin present or future, lands in the component's skin with
   no markup of its own. */
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert){
	position:relative;display:block;overflow:hidden;list-style:none !important;
	background:#fff !important;border:1px solid #E4EAE6 !important;
	border-radius:12px !important;box-shadow:0 1px 2px rgba(22,33,27,.05);
	font-family:'Outfit',system-ui,sans-serif;
	font-size:15px;font-weight:700;line-height:1.35;
	margin:0 0 18px !important;min-height:0 !important;
	padding:14px 18px 14px 66px !important;text-align:left}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert)::before{
	content:"" !important;display:block !important;position:absolute;
	left:0;top:0;bottom:0;width:48px;height:auto;margin:0;padding:0;
	font-size:0;line-height:0;border:0;border-radius:0;
	background-repeat:no-repeat;background-position:center;background-size:22px 22px}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert) li{
	list-style:none !important;margin:0 0 5px !important;padding:0 !important}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert) li:last-child{
	margin-bottom:0 !important}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert) p{
	margin:0 !important}
:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert) a{
	color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.woocommerce-error:not(.bizco-alert){color:#8C1D16}
.woocommerce-error:not(.bizco-alert)::before{background-color:#C6382C;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v7'/%3E%3Ccircle cx='12' cy='17.4' r='1.35' fill='%23fff' stroke='none'/%3E%3C/svg%3E")}
.woocommerce-info:not(.bizco-alert){color:#3A4F66}
.woocommerce-info:not(.bizco-alert)::before{background-color:#5B7794;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 11v7'/%3E%3Ccircle cx='12' cy='6.9' r='1.35' fill='%23fff' stroke='none'/%3E%3C/svg%3E")}
.woocommerce-message:not(.bizco-alert){color:#0F5230}
.woocommerce-message:not(.bizco-alert)::before{background-color:#0F9558;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8.5-9'/%3E%3C/svg%3E")}

.bizco-alert{display:flex;align-items:stretch;background:#fff;border:1px solid #E4EAE6;
	border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(22,33,27,.05);
	font-family:'Outfit',system-ui,sans-serif;margin:0 0 18px;text-align:left}
/* The hook class every block borrows so the cart, checkout and add-to-cart
   scripts can find it also drags in the whole WooCommerce Blocks notice component (white card,
   4px radius, 16px padding, .875em type, 12px gap) plus two Blocksy overrides
   of it (border:none + background repaint on .woocommerce-page, 2rem margin).
   Every box property those set is restored to this component's own values
   here. !important is unavoidable: the blocks sheet marks its padding
   !important, and Blocksy's override is a three-class selector. Scoped to the
   pair so the plain .bizco-alert rule above stays overridable. */
.bizco-alert.wc-block-components-notice-banner{
	align-content:stretch !important;align-items:stretch !important;
	background:#fff !important;border:1px solid #E4EAE6 !important;
	border-radius:12px !important;box-sizing:border-box !important;
	color:inherit !important;display:flex !important;
	font-size:inherit !important;font-weight:inherit !important;
	gap:0 !important;line-height:inherit !important;
	margin:0 0 18px !important;padding:0 !important}
.bizco-alert__mark{flex:none;width:48px;display:flex;align-items:center;justify-content:center}
.bizco-alert__in{flex:1;min-width:0;padding:15px 18px;display:flex;gap:14px;
	align-items:center;flex-wrap:wrap}
.bizco-alert__tx{flex:1;min-width:200px}
.bizco-alert__t{display:block;font-size:15px;font-weight:700;line-height:1.35;margin:0 0 2px}
.bizco-alert__b{margin:0 !important;font-size:14.5px;line-height:1.5;color:#6B7280}
.bizco-alert.is-one .bizco-alert__in{padding:14px 18px}
.bizco-alert.is-one .bizco-alert__t{margin:0}
.bizco-alert__list{margin:4px 0 0 !important;padding:0 !important;list-style:none !important}
.bizco-alert__list li{position:relative;margin:0 0 5px !important;padding:0 0 0 15px !important;
	list-style:none !important;font-size:14.5px;line-height:1.5;color:#6B7280;overflow-wrap:anywhere}
.bizco-alert__list li:last-child{margin-bottom:0 !important}
.bizco-alert__list li::before{content:"";position:absolute;left:2px;top:9px;width:4px;height:4px;
	border-radius:50%;background:currentColor;opacity:.5}
.bizco-alert__act{flex:none}
.bizco-alert a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.bizco-alert__b a,.bizco-alert__list a{color:#0C7A47;text-decoration:none;font-weight:700}
.bizco-alert__b a:hover,.bizco-alert__list a:hover{color:#0F5230;text-decoration:underline}
/* The shipped tonal neutral, 40px / radius 8 / 15px 600. */
.bizco-alert__btn{display:inline-flex !important;align-items:center;justify-content:center;
	height:40px;padding:0 18px !important;border-radius:8px !important;background:#EEF2F5 !important;
	color:#3A4F66 !important;font-size:15px !important;font-weight:600 !important;
	text-decoration:none !important;border:0 !important;white-space:nowrap;line-height:1 !important;
	box-shadow:none !important;margin:0 !important;min-height:0 !important}
.bizco-alert__btn:hover{background:#E1E8EE !important;color:#192A3D !important}

/* The glyph, as a background image. See the note by bizco_alert_icon. */
.bizco-alert__mark::after{content:"";width:22px;height:22px;background-repeat:no-repeat;
	background-position:center;background-size:contain}
.bizco-alert--e .bizco-alert__mark{background:#C6382C}
.bizco-alert--e .bizco-alert__mark::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v7'/%3E%3Ccircle cx='12' cy='17.4' r='1.35' fill='%23fff' stroke='none'/%3E%3C/svg%3E")}
.bizco-alert--n .bizco-alert__mark::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 11v7'/%3E%3Ccircle cx='12' cy='6.9' r='1.35' fill='%23fff' stroke='none'/%3E%3C/svg%3E")}
.bizco-alert--s .bizco-alert__mark::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8.5-9'/%3E%3C/svg%3E")}
.bizco-alert--e .bizco-alert__t{color:#8C1D16}
.bizco-alert--n .bizco-alert__mark{background:#5B7794}
.bizco-alert--n .bizco-alert__t{color:#3A4F66}
.bizco-alert--s .bizco-alert__mark{background:#0F9558}
.bizco-alert--s .bizco-alert__t{color:#0F5230}

/* Woo gives its own wrapper a bottom margin; the block owns its spacing now. */
.woocommerce-notices-wrapper:has(.bizco-alert){margin-bottom:0}
/* bizco-test-chk01b1n3 v1: centre (fix group TEST-CHK-01-B1-N3, test case CHK-01-B1-N3, owner
   report 2026-09-22: "the alert that comes up on the home page is not centered vertically in the
   whitespace that it sits in, but rather is glued to the top"; owner decision the same day,
   option B of two previewed side by side: keep the band exactly as tall as it is now).
   The block owns its spacing, and that spacing is 18px BELOW and nothing above - right wherever
   something already sits above the box (the shop and category title bands, the search category
   strip, the cart), wrong on a plain page, where the notices wrapper is the FIRST child of
   <article> and the card ends up touching the bottom of the green menu bar with all of its clear
   space underneath. Splitting the 18px into 9 above and 9 below leaves the band the same height
   (94px at 1440, 132px at 390) with the card in the middle of it. Padding, not a margin, so the
   gap cannot collapse out of the band; only the LAST card gives up its bottom margin, so two
   alerts printed at once still stand 18px apart. Scoped to the first-child case so no other
   surface moves, and an empty wrapper holds no .bizco-alert, so a page raising no notice keeps
   every pixel it has. !important because the block-notice hook class two rules up marks the
   same property. */
article > .woocommerce-notices-wrapper:first-child:has(.bizco-alert){padding:9px 0}
/* bizco-test-chk01b1n3 v1a: has-pair. Both halves of the centring carry :has(), so a browser
   that does not know :has() (Firefox before 121) drops BOTH and sees the page exactly as it was
   before this group - rather than dropping only the padding, keeping this line, and squeezing the
   card against the menu bar above and the section below. */
article > .woocommerce-notices-wrapper:first-child:has(.bizco-alert) .bizco-alert:last-child{margin-bottom:0 !important}
@media (max-width:600px){
	:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert){
		padding-left:57px !important}
	:is(.woocommerce-error,.woocommerce-info,.woocommerce-message):not(.bizco-alert)::before{width:42px}
	.bizco-alert__mark{width:42px}
	.bizco-alert__in{padding:13px 15px;gap:10px}
	.bizco-alert__tx{min-width:0}
	.bizco-alert__act{width:100%}
	.bizco-alert__btn{width:100%}
}

/*bizco-head:bizco-stocklim-css*/

/* bizco-stocklim v1: the site's own error alert (snippet 172), placed under the quantity it is about */
.bizco-alert.bizco-stocklim{margin:10px 0 0 !important}
/* shop cards: a sibling right under the price / quantity row (that row does not wrap on phones), compact */
li.product > .bizco-alert.bizco-stocklim{width:100%;box-sizing:border-box;margin:8px 0 0 !important}
li.product > .bizco-alert.bizco-stocklim .bizco-alert__mark{width:34px}
li.product > .bizco-alert.bizco-stocklim .bizco-alert__mark::after{width:18px;height:18px}
li.product > .bizco-alert.bizco-stocklim .bizco-alert__in{padding:9px 11px}
li.product > .bizco-alert.bizco-stocklim .bizco-alert__tx{min-width:0}
li.product > .bizco-alert.bizco-stocklim .bizco-alert__t{font-size:13.5px}
.bizco-rr-row > .bizco-alert.bizco-stocklim{grid-column:1 / -1;margin:2px 0 0 !important}
body.woocommerce-cart .shop_table tr.woocommerce-cart-form__cart-item > td.bizco-stocklim-cell{grid-column:1 / -1;display:block}
body.woocommerce-cart .shop_table td.bizco-stocklim-cell > .bizco-alert.bizco-stocklim{margin:6px 0 0 !important}
/* The Place Order line on the cart and Rapid Restock pages (snippets 145, 147) was plain red text. Owner 2026-09-16:
   every refusal wears the same red alert with the ! as the rest of the site. Same values as snippet 172's legacy
   notice skin; the line's own writers are untouched (they set its text), the green info variant (is-info) is kept. */
p.bizco-cart-payerr:not(.is-info){position:relative;display:block;overflow:hidden;background:#fff;
	border:1px solid #E4EAE6;border-radius:12px;box-shadow:0 1px 2px rgba(22,33,27,.05);
	font-family:'Outfit',system-ui,sans-serif;font-size:15px;font-weight:700;line-height:1.35;color:#8C1D16;
	min-height:48px;padding:14px 18px 14px 66px;text-align:left}
p.bizco-cart-payerr:not(.is-info)[hidden]{display:none}
p.bizco-cart-payerr:not(.is-info)::before{content:"";position:absolute;left:0;top:0;bottom:0;width:48px;
	background-color:#C6382C;background-repeat:no-repeat;background-position:center;background-size:22px 22px;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M12 6v7'/%3E%3Ccircle cx='12' cy='17.4' r='1.35' fill='%23fff' stroke='none'/%3E%3C/svg%3E")}

/*bizco-head:bizco-ilink*/

	.bizco-ft-keepbtn,.bizco-ft-locadd,.bizco-mxadd-changecard,.bizco-mxadd-addcard,
	.bizco-ft-entcard-pm a,.bizco-ft-entcard-pm-warn a,
	.bizco-acct-link,.bizco-ref-copylink,.bizco-lostpw-link,.bizco-auth-link,.bizco-wl-toggle,
	.bizco-mh-textbtn,.bizco-mh-sectlink,.bizco-mh-statlink,.bizco-mh-bizmore a,.bizco-mh-locadd,
	.bizco-mh-bizline a,.bizco-ntf-more a,.bizco-ntf-markall,.bizco-inv-toast-link,.bizco-cart-addcard,a.bizco-ilink,button.bizco-ilink{
		font-family:Outfit,sans-serif !important;font-size:13px !important;font-weight:700 !important;
		color:#0C7A47 !important;text-decoration:none !important;background:transparent !important;
		transform:none !important;box-shadow:none !important;cursor:pointer}
	.bizco-ft-keepbtn:hover,.bizco-ft-locadd:hover,.bizco-mxadd-changecard:hover,.bizco-mxadd-addcard:hover,.bizco-ft-entcard-pm a:hover,.bizco-ft-entcard-pm-warn a:hover,.bizco-acct-link:hover,.bizco-ref-copylink:hover,.bizco-lostpw-link:hover,.bizco-auth-link:hover,.bizco-wl-toggle:hover,.bizco-mh-textbtn:hover,.bizco-mh-sectlink:hover,.bizco-mh-statlink:hover,.bizco-mh-bizmore a:hover,.bizco-mh-locadd:hover,.bizco-mh-bizline a:hover,.bizco-ntf-more a:hover,.bizco-ntf-markall:hover,.bizco-inv-toast-link:hover,.bizco-cart-addcard:hover,a.bizco-ilink:hover,button.bizco-ilink:hover{
		color:#0F5230 !important;text-decoration:underline !important;text-underline-offset:2px !important;
		background:transparent !important;transform:none !important;box-shadow:none !important}
	
/*bizco-head:bizco-hold-panel-css*/

	.bizco-hold-panel{margin:0 0 26px}
	/* The theme puts a 31px top margin on links styled as buttons; with the
	   paragraph's own margin that read as a huge gap under the sentence. */
	.bizco-hold-cta{margin:14px 0 0 !important}
	/* Something upstream sets a 31px top margin on button-shaped links, so
	   this states the whole path to beat it. */
	.bizco-hold-panel .bizco-hold-item .bizco-hold-cta a.bizco-cta-green,
	.bizco-hold-cta a{margin:0 !important}
	/* Amber, like the button on the membership screen: same job, same colour.
	   Needs !important on all three - post 89's .bizco-cta-green (written for
	   the home CTA card, a name collision) sets background !important. */
	.bizco-ft .bizco-hold-cta .bizco-cta-green,
	.bizco-hold-cta .bizco-cta-green{
		display:inline-block;text-decoration:none;padding:13px 24px;border-radius:8px;
		font-size:15px;font-weight:700;line-height:1.25;
		background:#F7DE9A !important;color:#3B2F07 !important;
		box-shadow:0 1px 2px rgba(90,70,10,.16) !important}
	.bizco-ft .bizco-hold-cta .bizco-cta-green:hover,
	.bizco-hold-cta .bizco-cta-green:hover{
		background:#F2D078 !important;color:#3B2F07 !important}
	/* === SAVED CARDS ON A PHONE ==========================================
	   Woo's shop_table_responsive turns every CELL into its own row and
	   prefixes it with data-title, so three columns became nine lines of
	   "Payment Methods:", "Expires:" and a bare ":" from the actions cell
	   whose title is &nbsp;. Each card is a card instead: name and pill on
	   one line, expiry under it, the action on the right.
	   Desktop is untouched, it reads correctly as a table. */
	@media (max-width:767.98px){
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods,
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods tbody{display:block;border:0;width:100%}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods thead{display:none}
		/* TEST-F-5: phone table (owner 2026-09-16). Each card is already its own white card, so the table
		   around them paints nothing. The border:0 above loses to 134's bizco-acct-p4 table rule (same
		   specificity, later in the page); this one names the account wrapper to win. */
		body.bizco-pm-list .bizco-acct table.woocommerce-MyAccount-paymentMethods{background:none;border:0;border-radius:0}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods tr{
			display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
			gap:0 14px;margin:0 0 12px;padding:14px 16px;background:#fff;
			border:1px solid #E4E8EC;border-radius:14px}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods td{
			display:block;width:auto;border:0 !important;padding:0 !important;
			text-align:left !important;background:none !important}
		/* the repeated labels are the whole problem */
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods td::before{display:none !important}
		/* "11/29" on its own says nothing, so this one label earns its place */
		body.bizco-pm-list .payment-method-expires{
			grid-column:1;grid-row:2;font-size:13.5px;color:#5b6472}
		body.bizco-pm-list .bizco-pm-explab{display:inline}
		body.bizco-pm-list .payment-method-actions{justify-self:end}
		body.bizco-pm-list .payment-method-actions .button{
			padding:8px 14px !important;font-size:13.5px !important;line-height:1.2 !important;
			min-height:0 !important;white-space:nowrap}
		/* The cell is display:contents so its two spans become grid items in
		   their own right; that is the only way to put the pills BELOW the
		   expiry when they live inside the method cell. */
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods td.payment-method-method{display:contents}
		body.bizco-pm-list .bizco-pm-name{
			grid-column:1;grid-row:1;font-weight:600;color:#16211B;line-height:1.4}
		body.bizco-pm-list .bizco-pm-pills{
			grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-card-pill{margin:0 !important}
		body.bizco-pm-list .payment-method-actions{grid-column:2;grid-row:1 / span 3}
		/* The base rule that hides this lives LATER in the sheet, so matching
		   its specificity would lose on source order. */
		body.bizco-pm-list .bizco-pm-sechead--mob{display:block !important}
		/* "Delete" is a word-sized button beside a one-line card. The label
		   stays in the accessibility tree, it is only sized out of sight.
		   THE ICON IS THE BUTTON'S OWN BACKGROUND, not a ::before: as a
		   pseudo inside an inline-flex button it was a flex item whose width
		   never reached the grid column's intrinsic sizing, so the column
		   stayed 25px and the button collapsed to its padding. An explicit
		   square with a background image has no such argument to lose. */
		body.bizco-pm-list .payment-method-actions .button{
			width:42px !important;height:42px !important;padding:0 !important;
			min-width:0 !important;font-size:0 !important;line-height:0 !important;
			/* The icon IS the control here: no fill, no border, no shadow. The
			   42px box stays for the tap target even though nothing paints it. */
			background-color:transparent !important;border:0 !important;
			box-shadow:none !important;border-radius:8px !important;
			background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F9558' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.8h15'/%3E%3Cpath d='M9.6 6.8V5.4c0-.62.5-1.12 1.12-1.12h2.56c.62 0 1.12.5 1.12 1.12v1.4'/%3E%3Cpath d='M6.9 6.8l.62 11.6c.04.79.7 1.4 1.49 1.4h5.98c.79 0 1.45-.61 1.49-1.4l.62-11.6'/%3E%3Cpath d='M10.5 10.4v5.9'/%3E%3Cpath d='M13.5 10.4v5.9'/%3E%3C/svg%3E") !important;
			background-repeat:no-repeat !important;background-position:center !important;
			background-size:21px 21px !important}
		body.bizco-pm-list .payment-method-actions .button:hover,
		body.bizco-pm-list .payment-method-actions .button:focus{
			background-color:#F1F5F2 !important;
			background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D7F4B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.8h15'/%3E%3Cpath d='M9.6 6.8V5.4c0-.62.5-1.12 1.12-1.12h2.56c.62 0 1.12.5 1.12 1.12v1.4'/%3E%3Cpath d='M6.9 6.8l.62 11.6c.04.79.7 1.4 1.49 1.4h5.98c.79 0 1.45-.61 1.49-1.4l.62-11.6'/%3E%3Cpath d='M10.5 10.4v5.9'/%3E%3Cpath d='M13.5 10.4v5.9'/%3E%3C/svg%3E") !important}
		body.bizco-pm-list .bizco-pm-none td{grid-column:1 / -1;padding:2px 0 !important}
	}
	/* bizco-cardlock v1 (2026-08-27): the locked Delete control. Same 40px
	   box, 8px radius and 15px/500 type as the live Delete button; the side
	   padding is pulled to 11px to pay for the padlock, which lands the two
	   within ~2px of each other so the actions column never jumps. */
	.bizco-pm-locked{display:inline-flex;align-items:center;justify-content:center;gap:6px;
		height:40px;padding:0 11px;border:0;border-radius:8px;background:#EEF2F5;color:#9AA39D;
		font-family:inherit;font-size:15px;font-weight:500;line-height:1;cursor:not-allowed;white-space:nowrap}
	.bizco-pm-locked svg{width:14px;height:14px;flex:0 0 14px}
	.bizco-pm-why{display:block;margin-top:3px;font-size:13px;line-height:1.45;color:#5F6B63}
	.bizco-pm-why svg{width:13px;height:13px;vertical-align:-2px;margin-right:5px;color:#8A948E}
	@media (max-width:767.98px){
		/* The method cell is display:contents here, so its children are grid
		   items in their own right. The reason sits under the pills (row 4), which
		   pushes it down a row, and the actions cell has to grow to span the new
		   row or the control stops sitting centred.
		   TEST-F-5a: pills above reason (owner 2026-09-16). The pills take row 3 and the reason row 4, so the
		   "Default for" pill sits above the padlock line on a phone exactly as it does on the desktop table. */
		body.bizco-pm-list .bizco-pm-why{grid-column:1;grid-row:4;margin-top:6px}
		body.bizco-pm-list .bizco-pm-pills{grid-row:3}
		body.bizco-pm-list .payment-method-actions{grid-column:2;grid-row:1 / span 4}
		/* Match the 42px icon-only treatment the real Delete button gets here:
		   on a phone the icon IS the control, so no fill and no border, exactly
		   like the trash button beside it. The desktop plate maps to the filled
		   green button; there is no filled button here to map to. */
		body.bizco-pm-list .payment-method-actions .bizco-pm-locked{
			width:42px;height:42px;padding:0;gap:0;font-size:0;line-height:0;background:transparent}
		body.bizco-pm-list .payment-method-actions .bizco-pm-locked svg{width:18px;height:18px;flex:0 0 18px}
	}
	.bizco-pm-explab{display:none}
	/* Section titles, taking the table header's own values so the two read as
	   one system: 15px/600 in #2D2D2D over a 2px #E1E8ED rule, measured off
	   .woocommerce-MyAccount-paymentMethods thead th rather than guessed. */
	.bizco-pm-sechead{margin:34px 0 16px !important;padding:0 0 15px !important;
		font-weight:600 !important;font-size:15px !important;line-height:1.3 !important;
		color:#2D2D2D !important;border-bottom:2px solid #E1E8ED !important}
	.bizco-pm-sechead--mob{display:none !important}
	/* bizco-ui-cardsgap v1 (owner 2026-10-01): on a phone, "Payment Methods" sits as close under the Saved
	   Cards heading as the Store Credits box sits under its heading (top margin 34px -> 12px, the heading's
	   own bottom margin; 36px -> 14px from the words). After a hold panel it keeps its 34px. */
	.bizco-pm-sechead--mob{margin-top:12px !important}
	.bizco-hold-panel ~ .bizco-pm-sechead--mob{margin-top:34px !important}
	/* bizco-ui-addpmgap v1 (owner 2026-10-01): on a phone each card keeps 12px under it, which stacked on
	   this title's 34px (46px from the last card to "Add a payment method"; desktop 35px). Straight after
	   the card list it takes 22px: 34px from the last card. */
	@media (max-width:767.98px){
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods + .bizco-pm-sechead{margin-top:22px !important}
	}
	body.bizco-pm-list .bizco-addcard{margin-top:0}
	body.bizco-pm-list .bizco-cart-paynote{margin:0 0 8px;font-size:13.5px;line-height:1.55;color:#3F4A46}
	body.bizco-pm-list .bizco-cart-addcard{display:inline-flex;align-items:center;background:none;border:0;
		padding:2px 0;color:#0C7A47;font-family:Outfit,sans-serif;font-size:13.5px;font-weight:700;cursor:pointer}
	body.bizco-pm-list .bizco-cart-addcard:hover{color:#0F5230;text-decoration:underline;text-underline-offset:2px}
	/* Beats the mobile rule below, which sets display:flex at a higher
	   specificity: an empty span was still claiming a grid row and its top
	   margin, which is what stopped the card contents centring. */
	body.bizco-pm-list .bizco-pm-pills:empty{display:none !important}
	/* The inline form replaces the link to the second screen. */
	body.bizco-pm-list .woocommerce-MyAccount-content > p > a.button[href*="add-payment-method"],
	body.bizco-pm-list .woocommerce-MyAccount-content > a.button[href*="add-payment-method"]{display:none}
	.bizco-addcard{margin-top:26px;padding:22px 24px;border:1px solid #E2E8E4;
		border-radius:12px;background:#fff}
	/* the wrapper is the panel here, so the form must not draw a second one */
	body.bizco-pm-list .bizco-addcard #add_payment_method{
		padding:0;border:0;border-radius:0;background:transparent}
	.bizco-hold-item{background:#FBF6E9;border:1px solid #F0E1B9;border-radius:14px;padding:20px 24px;margin:0 0 14px}
	.bizco-hold-head{margin:0 0 6px;font-size:15.5px;line-height:1.6;color:#16211B}
	.bizco-hold-amt{margin:0 0 14px;font-size:15.5px;color:#16211B}
	.bizco-hold-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
	.bizco-hold-lab{font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#5C480F;flex:0 0 100%}
	.bizco-hold-form select{height:46px;padding:0 12px;border:1px solid #E0D4AE;border-radius:9px;background:#fff;min-width:260px}
	.bizco-hold-form .bizco-cta-green{margin:0 !important}
	/* THE UPDATE-PAYMENT SCREEN.
	   Two routes, one decision. They are separate forms posting to different
	   handlers, so they cannot share a submit button - instead only the chosen
	   route is on screen, which leaves exactly one button, one checkbox and one
	   charge note visible at any time. */
	/* The theme gives the FIRST label a 7.25px bottom margin, and flex stretch
	   then grew the SECOND label's border box to match the first's outer
	   height - so the unchecked one rendered 7px taller. Zero the margin. */
	/* Section headings on both card screens read as headings. The rule that
	   used to do this was lost in a CSS rewrite, so the billing one rendered
	   at the theme's 400 weight. */
	.bizco-newcard-head,
	.bizco-pmpick-head,
	.bizco-addcard .bizco-pmpick-head{
		margin:0 0 18px !important;font-weight:700 !important;font-size:16px !important;
		line-height:1.3;color:#16211B}
	/* Woo's submit is the theme's small 3px-radius button; make it the same
	   object as every other CTA on these two screens. */
	body.bizco-pm-update #place_order,
	body.bizco-pm-update .bizco-pmpick button[type="submit"]{
		height:auto !important;min-height:40px !important;
		padding:5px 20px !important;border-radius:8px !important;
		font-size:16px !important;font-weight:500 !important;line-height:1.4 !important;
		background:#0F9558 !important;color:#fff !important;border:0 !important;
		box-shadow:none !important;transform:none !important;
		transition:background .15s}
	body.bizco-pm-update #place_order:hover,
	body.bizco-pm-update .bizco-pmpick button[type="submit"]:hover{
		background:#0F5230 !important;box-shadow:none !important;transform:none !important}
	.bizco-card-pill-more{cursor:help}
	.bizco-card-pill-held{background:#F6C344 !important;color:#16211B !important} /* bizco-ui-boldpills v1: e03 */
	.bizco-pmpick-none{margin:0 !important;font-size:14.5px;color:#5b6472}
	.bizco-restart-picker{margin:0 0 18px;padding:22px 24px;border:1px solid #E2E8E4;
		border-radius:12px;background:#fff}
	.bizco-restart-locs{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}
	.bizco-restart-locs li{margin:0}
	.bizco-restart-locs label{display:flex;align-items:center;gap:11px;flex-wrap:wrap;cursor:pointer;
		padding:13px 15px;border:1px solid #E2E8E4;border-radius:10px;font-size:14.5px}
	.bizco-restart-locs label:hover{border-color:#CFE3D6;background:#F7FAF8}
	.bizco-restart-locs input{margin:0;flex:0 0 auto;accent-color:#0F9558}
	.bizco-restart-addr{color:#16211B}
	.bizco-restart-price{margin-left:auto;font-weight:700;color:#0F5230;white-space:nowrap}
	.bizco-restart-total{display:flex;align-items:baseline;justify-content:space-between;
		margin:0 !important;padding-top:14px;border-top:1px solid #E2E8E4;font-size:15px}
	.bizco-restart-total strong{font-size:19px;color:#0F5230}
	.bizco-restart-none{margin:12px 0 0 !important;font-size:13.5px;color:#8A1F19}
	@media (max-width:600px){.bizco-restart-price{margin-left:0;width:100%}}
	/* An active membership with no card WILL fail at its next renewal, so it
	   is a warning, not a neutral fact. Amber like the On hold pill rather
	   than red: nothing has gone wrong yet. */
	.bizco-ft-entcard-pm-warn{color:#8a6d1a !important;font-weight:600}
	/* colour/decoration now owned by the site-wide bizco-ilink spec (148) */
	.bizco-ft-entcard-pm-warn a{}
	.bizco-pm-none td{color:#5b6472;font-size:14.5px;padding-top:18px;padding-bottom:18px}
	/* WORKING STATE while Stripe authenticates. The overlay is ours rather
	   than blockUI's because blockUI sets opacity on the overlay itself, which
	   would fade the spinner and the words along with it. */
	.bizco-pm-busy{position:absolute;inset:0;z-index:5;display:flex;
		flex-direction:column;align-items:center;justify-content:center;gap:14px;
		background:rgba(255,255,255,.82);border-radius:12px;backdrop-filter:blur(1px)}
	.bizco-pm-busy__spin{width:34px;height:34px;border-radius:50%;
		border:3px solid #D8E6DD;border-top-color:#0F9558;
		animation:bizco-pm-spin .8s linear infinite}
	.bizco-pm-busy__txt{font-size:14.5px;font-weight:600;color:#16211B}
	@keyframes bizco-pm-spin{to{transform:rotate(360deg)}}
	@media (prefers-reduced-motion:reduce){
		.bizco-pm-busy__spin{animation-duration:2.4s}
	}
	/* blockUI's own grey wash would sit on top of ours and dull it. */
	body.bizco-pm-update #add_payment_method .blockUI.blockOverlay{opacity:0 !important}
	/* A routine card change is not a warning: same panel, calm colours. */
	/* The amber lives on .bizco-hold-item, not the panel, so the calm variant
	   has to reach the child or a routine card change still looks like an alert. */
	/* A routine card change is not an alert, so it gets no panel at all - just
	   a heading and a line of context above the form. The boxed treatment is
	   reserved for a hold, where something actually needs attention. */
	.bizco-hold-panel--info{margin:0 0 20px !important}
	.bizco-hold-panel--info .bizco-hold-item{
		background:transparent;border:0;border-radius:0;padding:0;margin:0}
	.bizco-hold-panel--info .bizco-hold-head{margin:0 0 8px !important}
	/* This is the page title for the restart flow, not a sentence, so it is
	   sized as one. The wordmark rides on the cap height of the text. */
	.bizco-restart-head{font-size:26px !important;line-height:1.25 !important;margin:0 0 10px !important}
	.bizco-restart-head strong{font-weight:700}
	/* post 89 pins this exact asset with img.wp-image-539{height:20px!important}
	   for the header announcement bar. A .bizco-ft-scoped selector does not
	   apply here - the restart screen is not inside that wrapper - so this
	   matches on the wp-image class to outrank it without touching the bar. */
	.bizco-restart-head img,
	.bizco-restart-head img[class*="wp-image-"]{
		height:38px !important;max-height:none !important;width:auto !important;
		vertical-align:middle;position:relative;top:-0.06em;margin:0 .1em;display:inline-block}
	@media (max-width:600px){
		.bizco-restart-head img,
		.bizco-restart-head img[class*="wp-image-"]{height:30px !important}
	}
	@media (max-width:600px){.bizco-restart-head{font-size:22px !important}}
	.bizco-hold-panel--info .bizco-hold-note{margin:0 !important;color:#5b6472}
	.bizco-pmswitch{display:flex;gap:8px;margin:0 0 18px;flex-wrap:wrap;align-items:stretch}
	/* bizco-test-sumsel3 v1: pm-switch (fix group TEST-SUM-SEL-3, owner 2026-09-16): the two routes wear the order summary's choice
	   row (fix groups TEST-SUM-SEL-1 and 2) instead of the bright green button pair: 1px #D9E0DB at 8px, 12px 14px inside, hover
	   #BFCCC4, the real radio drawn as the 16px dot; chosen = a #0F5230 border plus a 1px inner ring (reads 2px, nothing moves),
	   the dot's 5px #0F5230 rim and #EFF7F2; keyboard focus = the same ring. Still side by side; the toggle script reads the same
	   inputs. */
	.bizco-pmswitch label{
		display:inline-flex;align-items:center;gap:10px;cursor:pointer;
		margin:0 !important;padding:12px 14px;border:1px solid #D9E0DB;border-radius:8px;background:#fff;
		font-size:14.5px;font-weight:600;color:#16211B;transition:border-color .15s ease,background-color .15s ease}
	.bizco-pmswitch label:hover{border-color:#BFCCC4}
	.bizco-pmswitch label:has(input:checked){border-color:#0F5230;box-shadow:inset 0 0 0 1px #0F5230;background:#EFF7F2}
	.bizco-pmswitch label:has(input:focus-visible){border-color:#0F5230;box-shadow:inset 0 0 0 1px #0F5230}
	.bizco-pmswitch input{-webkit-appearance:none;appearance:none;flex:none;width:16px;height:16px;margin:0;padding:0;
		border-radius:50%;border:1.5px solid #9AA6A0;box-sizing:border-box;background:#fff;cursor:inherit;outline:0 none;
		transition:border .15s ease}
	.bizco-pmswitch input:checked{border:5px solid #0F5230}
	body.bizco-pm-update #add_payment_method,
	.bizco-pmpanel{
		margin:0;padding:22px 24px;border:1px solid #E2E8E4;border-radius:12px;background:#fff}
	body.bizco-pm-mode-new .bizco-pmpanel{display:none}
	body.bizco-pm-mode-saved #add_payment_method{display:none}
	/* bizco-test-sumsel3 v1: lone-card (fix group TEST-SUM-SEL-3, owner 2026-09-16). With one way to pay, WooCommerce's add-card
	   form still printed a browser radio button in front of "Credit / Debit Card" (Billing, the update and restart screens): a
	   choice with one option. Hidden the way WooCommerce's own checkout hides a lone one (display:none); the radio stays in the
	   form, chosen, so the card still goes to the card gateway, and the words and icon stay as the form's label. A second payment
	   type would bring the radios back (:only-child). */
	#add_payment_method .woocommerce-PaymentMethods > li:only-child > input.input-radio{display:none}
	.bizco-hold-optin{margin:18px 0 0 !important}
	.bizco-hold-optin label{display:flex;align-items:center;gap:9px;font-size:14.5px}
	.bizco-hold-charge-note{margin:12px 0 0 !important;font-size:13px;color:#5b6472}
	.bizco-pmpanel .bizco-cta-green{margin:18px 0 0 !important}
	/* The theme pins selects to height:40px with border-box, shorter than
	   12px+12px padding plus a 24.75px line box, so the option text was clipped.
	   appearance:none also removes the native arrow, so one is drawn back on. */
	.bizco-pmpick select{
		width:100%;max-width:420px;display:block;margin:0;
		padding:12px 40px 12px 14px;height:auto !important;min-height:48px;line-height:1.4;
		border:1px solid #CFD8D3;border-radius:8px;color:#16211B;font-size:15px;
		-webkit-appearance:none;appearance:none;
		background-color:#fff;
		background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 8%27%3E%3Cpath d=%27M1 1l5 5 5-5%27 fill=%27none%27 stroke=%27%235b6472%27 stroke-width=%272%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
		background-repeat:no-repeat;background-position:right 14px center;background-size:12px 8px}
	.bizco-pmpick select:focus{outline:2px solid #0F9558;outline-offset:1px}
	.bizco-hold-note{margin:12px 0 0;font-size:13.5px;color:#5b6472}
	
/*bizco-head:bizco-cardbad1-woo*/
#wc-stripe-hidden-invalid-input{border-color:#B91C1C !important;background-color:#FFF7F6 !important;box-shadow:0 0 0 3px rgba(185,28,28,.12) !important}
/*bizco-head:bizco-cards-css*/

	.bizco-card-pill{display:inline-block;margin-left:8px;padding:3px 10px;border-radius:999px;
		font-size:11px;font-weight:700;letter-spacing:.02em;vertical-align:1px}
	.bizco-card-pill-default{background:#0F5230;color:#FFFFFF}
	.bizco-card-pill-declined{background:#B3261E;color:#FFFFFF} /* bizco-ui-boldpills v1: e04 */
	/* TEST-F-5: pill css (owner 2026-09-16). The 8px between the card name and its pills sits on the NAME,
	   so a pill that drops to the next line starts flush with the name above it instead of 8px in. Desktop
	   table only: the phone cards lay the pills out with their own gap. */
	@media (min-width:768px){
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-pm-name{margin-right:8px}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-card-pill{margin-left:0;margin-right:8px}
		body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-card-pill:last-child{margin-right:0}
	}
	/* Short state, set by the pill-fit script when the whole label would take two lines: the business name
	   alone on one line, cut with an ellipsis only if even the name is wider than the cell. "Default for"
	   stays in the page for screen readers. */
	body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-card-pill.is-short{
		white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top}
	body.bizco-pm-list .woocommerce-MyAccount-paymentMethods .bizco-card-pill.is-short .bizco-card-pill-pre{
		position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);
		white-space:nowrap;border:0}
	/* Stripe's own test-mode hint does not belong in front of a customer. */
	.woocommerce-PaymentBox .testmode-info{display:none !important}
	.bizco-hold-charge-note{margin:12px 0 0;font-size:14px;color:#5b6472}
	.bizco-hold-optin{margin:14px 0 0}
	.bizco-hold-optin label{display:flex;align-items:center;gap:9px;font-size:14.5px}
	.bizco-hold-optin input{accent-color:#0f9558;width:19px;height:19px;margin:0}
	/* 32px of fieldset margin + 25px of box padding sat between the card fields
	   and the checkbox. */
	#add_payment_method #wc-stripe-upe-form{margin-bottom:0 !important}
	#add_payment_method .woocommerce-PaymentBox{padding-bottom:0 !important}
	.bizco-hold-optin{margin:16px 0 0}
	#add_payment_method #place_order{margin-top:22px !important}
	.bizco-ft-entfix{margin:12px 0 0}
	.bizco-ft .bizco-ft-entfix .bizco-cta-green{margin:0 !important}
	/* Same call to action as the footer banner CTA on a hold, so it takes the
	   same amber. Colour only: padding, radius and shadow geometry stay the
	   green button's.
	   EVERY declaration needs !important. Two rules outrank a plain one:
	   .bizco-ft .bizco-cta-green sets colour and shadow !important, and post
	   89's .bizco-cta-green (written for the HOME PAGE CTA CARD, a class-name
	   collision) sets background:var(--bizco-cta-bg) !important. Its value is
	   the same green, which is why nothing ever looked wrong here before. */
	.bizco-ft .bizco-ft-entfix .bizco-cta-green{
		background:#F7DE9A !important;color:#3B2F07 !important;
		box-shadow:0 1px 2px rgba(90,70,10,.16) !important}
	.bizco-ft .bizco-ft-entfix .bizco-cta-green:hover{
		background:#F2D078 !important;color:#3B2F07 !important;
		box-shadow:0 2px 5px rgba(90,70,10,.15) !important}
	
/*bizco-head:bizco-dc-css*/

	/* bizco-dc v2 (2026-08-27). Owner rule: use styling that already ships.
	   Every value below is lifted from a live component and the source is
	   named. Nothing here is a new look. */
	.bizco-dc{margin:22px 0 0;padding:20px 0 0;border-top:1px solid #EDF1F3}
	/* heading = .bizco-pmpick-head, the heading already on this screen, with
	   the Optional pill pulled out of the paragraph onto the same line */
	.bizco-dc-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 6px}
	.bizco-dc-h{margin:0 !important;font-weight:700;font-size:16px;line-height:1.3;color:#16211B}
	/* = .bizco-card-pill geometry + the .bizco-card-pill-none palette */
	.bizco-dc-opt{display:inline-block;padding:3px 10px;border-radius:999px;background:#EEF2F5;
		color:#3A4F66;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.55}
	/* = .bizco-cart-paynote */
	.bizco-dc-lead{margin:0 0 14px !important;font-size:13.5px;line-height:1.55;color:#3F4A46;max-width:660px}
	.bizco-dc-note{margin:12px 0 0 !important;font-size:13.5px;line-height:1.55;color:#5b6472}
	/* = .bizco-cart-cards / .bizco-restart-locs. EVERY multi-choice list on
	   this site is a stack of separate cards, never a box with dividers; v1's
	   hairline list was the outlier. */
	.bizco-dc-rows{display:grid;gap:8px}
	/* = .bizco-mxadd-cardrow + .bizco-rr .bizco-cart-card */
	.bizco-dc-row{display:flex;align-items:center;gap:10px;padding:11px 12px;margin:0;background:#fff;
		border:1px solid #E4EAE6;border-radius:10px;cursor:pointer;font-size:14px;color:#161A1C;
		transition:border-color .12s ease,box-shadow .12s ease}
	.bizco-dc-row:hover{border-color:#BFCCC4}                       /* = .bizco-cart-card:hover */
	/* chosen = border + ring, NO fill. The ring reads as 2px without reflow,
	   and no fill keeps this clear of the light greens being retired. */
	.bizco-dc-row:has(input:checked){border-color:#0F9558;box-shadow:0 0 0 1px #0F9558}
	.bizco-dc-row input{accent-color:#0f9558;width:18px;height:18px;margin:0;flex:0 0 auto}
	.bizco-dc-txt{min-width:0;flex:1 1 auto;line-height:1.35}
	.bizco-dc-txt strong{font-weight:600;color:#161A1C}
	.bizco-dc-was{display:block;font-size:12.5px;color:#6B7280;margin-top:2px;line-height:1.4}  /* = -card-exp */
	.bizco-dc-bad{color:#B3261E !important}  /* bizco-dispute-hold v1d: css. = .bizco-card-pill-declined text */
	.bizco-dc-now{display:none;font-size:12.5px;font-weight:600;color:#0C7A47;margin-top:2px;line-height:1.4}
	/* T3 (owner, 2026-08-27): a ticked row stops describing the present and
	   names the move. Pure CSS on purpose - the 3D Secure return is a GET with
	   none of our scripts running, so the chosen state cannot depend on JS.
	   Deliberately NOT a strike-through or an arrow: line-through appears
	   nowhere on this site, and the arrow only ever means "go here". */
	.bizco-dc-row:has(input:checked) .bizco-dc-was{display:none}
	.bizco-dc-row:has(input:checked) .bizco-dc-now{display:block}
	/* the two radios are a choice, not a before and after, so their line stays */
	/* bizco-test-sumsel2 v1: pick-look (fix group TEST-SUM-SEL-2, owner 2026-09-16): these two radios ("Make it the default for ..."
	   or "Reactivate ...", and "Just save the card for now") wear the order summary's choice row (180 .bizco-nd-row, 145 / 147
	   .bizco-cart-card, fix group TEST-SUM-SEL-1): 1px #D9E0DB at 8px, 12px 14px inside, the real radio drawn as the 16px dot level
	   with the first line; chosen = a #0F5230 border plus a 1px inner ring (reads 2px, nothing moves), the dot's 5px #0F5230 rim
	   and #EFF7F2. Pure CSS, so the 3D Secure return (no scripts) looks the same. The several-businesses checkbox list keeps its
	   own look. The hover rule is restated here because this row rule would otherwise outrank .bizco-dc-row:hover. */
	.bizco-dc-rows--pick .bizco-dc-row{align-items:flex-start;padding:12px 14px;border-color:#D9E0DB;border-radius:8px;
		transition:border-color .15s ease,background-color .15s ease}
	.bizco-dc-rows--pick .bizco-dc-row:hover{border-color:#BFCCC4}
	.bizco-dc-rows--pick .bizco-dc-row:has(input:checked){border-color:#0F5230;box-shadow:inset 0 0 0 1px #0F5230;background:#EFF7F2}
	.bizco-dc-rows--pick .bizco-dc-row:has(input:focus-visible){border-color:#0F5230;box-shadow:inset 0 0 0 1px #0F5230}
	.bizco-dc-rows--pick .bizco-dc-row input{-webkit-appearance:none;appearance:none;flex:none;width:16px;height:16px;margin:2px 0 0;
		padding:0;border-radius:50%;border:1.5px solid #9AA6A0;box-sizing:border-box;background:#fff;cursor:inherit;outline:0 none;
		transition:border .15s ease}
	.bizco-dc-rows--pick .bizco-dc-row input:checked{border:5px solid #0F5230}
	.bizco-dc-rows--pick .bizco-dc-row:has(input:checked) .bizco-dc-was{display:block}
	/* bizco-test-sumsel3 v1: biz-list (fix group TEST-SUM-SEL-3, owner 2026-09-16): the several-businesses tick-box list wears the
	   order summary's choice row too (1px #D9E0DB at 8px, 12px 14px inside, hover #BFCCC4; ticked = a #0F5230 border plus a 1px
	   inner ring and #EFF7F2), with the real checkbox drawn as a 16px box level with the first line (1.5px #9AA6A0 at 4px;
	   ticked = #0F5230 with a white tick). The On hold / Needs a card pill sits level with the business name (as the order
	   summary's DEFAULT pill does). Pure CSS, so the 3D Secure return (no scripts) looks the same. The locked-row rules below
	   keep their own look: they come later and the chosen rules skip .is-locked. */
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row{align-items:flex-start;padding:12px 14px;border-color:#D9E0DB;
		border-radius:8px;transition:border-color .15s ease,background-color .15s ease}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row:not(.is-locked):hover{border-color:#BFCCC4}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row:not(.is-locked):has(input:checked){border-color:#0F5230;
		box-shadow:inset 0 0 0 1px #0F5230;background:#EFF7F2}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row:not(.is-locked):has(input:focus-visible){border-color:#0F5230;
		box-shadow:inset 0 0 0 1px #0F5230}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row .bizco-card-pill{margin:-2px 0}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row input{-webkit-appearance:none;appearance:none;flex:none;width:16px;
		height:16px;margin:2px 0 0;padding:0;border-radius:4px;border:1.5px solid #9AA6A0;box-sizing:border-box;
		background:#fff center / 11px 11px no-repeat;cursor:inherit;outline:0 none;
		transition:background-color .15s ease,border-color .15s ease}
	.bizco-dc-rows:not(.bizco-dc-rows--pick) .bizco-dc-row input:checked{border-color:#0F5230;background-color:#0F5230;
		background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
	/* Locked row: a change-picker state that cannot occur on this screen, since
	   the card being added does not exist yet. Needs three classes to beat
	   :has(input:checked), which scores (0,2,1) because :has takes the
	   specificity of its argument. */
	.bizco-dc-rows .bizco-dc-row.is-locked{background:#F7F9FA;cursor:default;
		border-color:#E4EAE6;box-shadow:none}
	.bizco-dc-rows .bizco-dc-row.is-locked input{opacity:.45}
	.bizco-dc-rows .bizco-dc-row.is-locked .bizco-dc-txt strong{color:#6B7680}
	/* = .bizco-cart-taxnote. Written by the script, so it must stay hidden when
	   empty; give [hidden] its own rule since nothing here sets display. */
	.bizco-dc-sum{margin:10px 0 0 !important;font-size:12.5px;line-height:1.5;color:#0C7A47;font-weight:600}
	.bizco-dc-sum[hidden]{display:none}
	/* The money, immediately above the submit button. Takes the shipped
	   .bizco-hold-charge-note values so it reads as the same sentence the
	   update screen prints under its own button. Same [hidden] rule as the
	   line above: nothing here sets display, so give it its own. */
	.bizco-dc-charge{margin:12px 0 0 !important;font-size:14px;line-height:1.55;color:#5b6472}
	.bizco-dc-charge[hidden]{display:none}
	.bizco-dc-charge strong{color:#16211B;font-weight:700}
	/* The one pill this block adds; the rest come from bizco-cards-css. */
	.bizco-card-pill-none{background:#5B6472;color:#FFFFFF} /* bizco-ui-boldpills v1: e13 */
	.bizco-dc .bizco-card-pill{margin-left:0;flex:0 0 auto}
	/* The single-business success block is snippet 172's alert used whole, so
	   it contributes no styling here beyond its own spacing. */
	.bizco-dc .bizco-alert{margin:0}
	
/*bizco-head:bizco-prompt-css*/

	body.bizco-noann .ct-header [data-device="desktop"] [data-row="top"],
	body.bizco-noann .ct-header [data-device="mobile"] [data-row="bottom"]{display:none}
	.bizco-footer-banner__cta{white-space:nowrap}
	/* The hold banner swaps the wordmark for the warning mark, so it needs its
	   own box: the img rules are all img-typed and will not reach a span. */
	/* Sized against the banner, not the old wordmark box: the brand rules in
	   post 89 are img-typed but some are not, so this states its own size. */
	.bizco-footer-banner .bizco-footer-banner__brand--warn{
		display:block;width:104px;height:104px;flex:0 0 auto;max-width:none
	}
	.bizco-footer-banner__brand--warn svg{width:100%;height:100%;display:block}
	@media (max-width:1317px){.bizco-footer-banner .bizco-footer-banner__brand--warn{width:88px;height:88px}}
	@media (max-width:767px){.bizco-footer-banner .bizco-footer-banner__brand--warn{width:76px;height:76px;margin-inline:auto}}
	/* Amber CTA to match the mark, dark text because yellow cannot carry white. */
	.bizco-footer-banner--hold .bizco-footer-banner__cta,
	.bizco-footer-banner--past-due .bizco-footer-banner__cta{
		background:#F7DE9A !important;color:#3B2F07 !important;border-color:#E3C878 !important;
	}
	.bizco-footer-banner--hold .bizco-footer-banner__cta:hover,
	.bizco-footer-banner--past-due .bizco-footer-banner__cta:hover{background:#F2D078 !important}
	/* The rule beside the mark is brand green everywhere else; on the hold
	   banner it sits next to an amber mark and an amber button, so it moves too.
	   Both forms are covered: a grid item in the 768-1317 band, a left border
	   on the copy elsewhere. */
	.bizco-footer-banner--past-due .bizco-footer-banner__inner::before{background:#E3C878 !important}
	.bizco-footer-banner--past-due .bizco-footer-banner__copy{border-left-color:#E3C878 !important}
	/* A cancellation is not a warning to act on a deadline, it has already
	   happened, so it reads red rather than amber. */
	body.bizco-cancelled-notice .ct-header [data-device="desktop"] [data-row="top"],
	body.bizco-cancelled-notice .ct-header [data-device="mobile"] [data-row="bottom"]{
		background-color:#F6D2CF !important;
	}
	body.bizco-cancelled-notice .ct-header [data-device="desktop"] [data-row="top"] :is(p,span,a),
	body.bizco-cancelled-notice .ct-header [data-device="mobile"] [data-row="bottom"] :is(p,span,a){
		color:#6B1512 !important;
	}
	.bizco-footer-banner--cancelled .bizco-footer-banner__cta{
		background:#F6D2CF !important;color:#6B1512 !important;border-color:#E0A9A4 !important;
	}
	.bizco-footer-banner--cancelled .bizco-footer-banner__cta:hover{background:#F0BFBA !important}
	.bizco-footer-banner--cancelled .bizco-footer-banner__inner::before{background:#E0A9A4 !important}
	.bizco-footer-banner--cancelled .bizco-footer-banner__copy{border-left-color:#E0A9A4 !important}
	/* bizco-dispute-hold v3b: width (owner 2026-09-28). The long cancelled line wraps under the title instead of stretching the card to 90% of the page. */
	.bizco-footer-banner--cancelled .bizco-footer-banner__subtext,
	.bizco-home-cta--cancelled .bizco-footer-banner__subtext{max-width:460px}
	/* AN ACCOUNT ON HOLD GETS A WARNING BAR, NOT THE BRAND GREEN ONE.
	   past_due is the only state where every membership is frozen, so it is the
	   only one that earns the colour change. Both header rows are covered: the
	   desktop announcement lives in [data-row=top], the phone one in
	   [data-row=bottom], and post 89 paints the whole mobile header green with
	   !important, so the row override needs it too. */
	body.bizco-state-past_due .ct-header [data-device="desktop"] [data-row="top"],
	body.bizco-partial-hold .ct-header [data-device="desktop"] [data-row="top"],
	body.bizco-state-past_due .ct-header [data-device="mobile"] [data-row="bottom"],
	body.bizco-partial-hold .ct-header [data-device="mobile"] [data-row="bottom"]{
		background-color:#F7DE9A !important;
	}
	body.bizco-state-past_due .ct-header [data-device="desktop"] [data-row="top"] :is(p,span,a),
	body.bizco-partial-hold .ct-header [data-device="desktop"] [data-row="top"] :is(p,span,a),
	body.bizco-state-past_due .ct-header [data-device="mobile"] [data-row="bottom"] :is(p,span,a),
	body.bizco-partial-hold .ct-header [data-device="mobile"] [data-row="bottom"] :is(p,span,a){
		color:#3B2F07 !important;
	}
	body.bizco-state-past_due .ct-header [data-device="desktop"] [data-row="top"] a,
	body.bizco-state-past_due .ct-header [data-device="mobile"] [data-row="bottom"] a{
		text-decoration-color:#8A6D1A !important;
	}
	/* THE ANNOUNCEMENT NEVER OVERFLOWS ITS BAR.
	   text-align:center cannot centre a line wider than its box - the excess
	   all goes to the right - so the guarantee has to be that no tier is ever
	   wider than the container. These are the no-JS defaults, deliberately
	   conservative; the fit script upgrades a tier whenever there is room. */
	.bizco-ann{white-space:nowrap;text-align:center;margin:0}
	/* THE BAR MUST NOT BE ABLE TO WIDEN THE PAGE. On the phone row the copy is
	   nowrap, so a tier that does not fit pushed the document wider, which
	   changed the bar's OWN clientWidth, which changed which tier fits, which
	   changed the width again. Below ~300px that settled into a permanent
	   two-state oscillation and the whole page shook. Clipped here, the
	   available width is a constant and the fit converges in one pass. */
	/* THE BAR IS A FLEX ITEM SIZED BY ITS OWN CONTENT, which is the whole bug:
	   measured at 300px its clientWidth swung between 244 and 264 depending on
	   which tier was showing, with the document a constant 300 and not one
	   window resize event. A wide tier grew the bar, the bigger bar made the
	   wide tier fit, the narrow tier shrank it again: a loop with no outside
	   cause, which is why it only appeared once nothing fit.
	   flex:1 1 0 with min-width:0 takes the width from the ROW instead, so the
	   available space is a constant and the fit converges in one pass. */
	/* THE FLEX ITEM IS BLOCKSY'S .ct-header-text, NOT this paragraph, which is
	   why sizing .bizco-ann changed nothing. Walking the chain at 300px:
	     p.bizco-ann        244 / 264
	     .entry-content     244 / 264
	     .ct-header-text    244 / 264   <- flex item, hugs its content
	     (its parent)       264         <- constant
	   A wide tier grew that item, the bigger box made the wide tier fit, the
	   narrow tier shrank it again. No window resize, no outside cause: the
	   copy was sizing the box that decides which copy fits. min-width:0 with
	   flex:1 1 0 takes the width from the ROW, so it is a constant.
	   Scoped with :has() so other header-text elements are untouched.
	   flex-basis:100% rather than 0 so it claims the whole row: at basis 0 it
	   settled on 244 of an available 264 and wrapped sooner than it had to. */
	.ct-header-text:has(.bizco-ann){min-width:0;flex:1 1 100%}
	.bizco-ann{overflow:hidden;max-width:100%;min-width:0}
	.bizco-ann-full,.bizco-ann-med,.bizco-ann-short,.bizco-ann-xs{display:none}
	.bizco-ann-full{display:inline}
	@media (max-width:999.98px){.bizco-ann-full{display:none}.bizco-ann-med{display:inline}}
	@media (max-width:620px){.bizco-ann-med{display:none}.bizco-ann-short{display:inline}}
	@media (max-width:359.98px){.bizco-ann-short{display:none}.bizco-ann-xs{display:inline}}
	/* Once the script has measured, its pick wins at every width. */
	.bizco-ann[data-tier] .bizco-ann-full,
	.bizco-ann[data-tier] .bizco-ann-med,
	.bizco-ann[data-tier] .bizco-ann-short,
	.bizco-ann[data-tier] .bizco-ann-xs{display:none}
	.bizco-ann[data-tier="full"] .bizco-ann-full,
	.bizco-ann[data-tier="med"] .bizco-ann-med,
	.bizco-ann[data-tier="short"] .bizco-ann-short,
	.bizco-ann[data-tier="xs"] .bizco-ann-xs{display:inline}
	/* Last resort: even the shortest string is wider than the bar. Wrapping
	   keeps it centred; overflowing does not. Outguns post 89's mobile
	   white-space:nowrap !important, which is 0,4,0. */
	.ct-header [data-device] [data-row] .entry-content p.bizco-ann-wrap{white-space:normal !important}
	/* One mark per row. Both bars are light now (grey #e9e9e9), so both take
	   the green pill; the white "inverted" one belonged to the old green phone
	   header and would float as a white badge on grey. Warning bars emit a
	   single green mark and skip this. */
	.bizco-ann-mk--m{display:none}
	.ct-header [data-device="mobile"] .bizco-ann-mk--d{display:none}
	.ct-header [data-device="mobile"] .bizco-ann-mk--m{display:inline}
	/* Optional clauses, each named for the width it disappears at. The
	   announcement row is nowrap, so every phone string has to fit inside
	   .ct-container, which is 88% of the viewport. */
	@media (max-width:399.98px){.bizco-ann-hide-400{display:none}}
	@media (max-width:389.98px){.bizco-ann-hide-390{display:none}}
	@media (max-width:379.98px){.bizco-ann-hide-380{display:none}}
	@media (max-width:359.98px){.bizco-cta-hide-360{display:none}}
	@media (max-width:329.98px){.bizco-ann-hide-330{display:none}}
	@media (max-width:349.98px){.bizco-ann-hide-350{display:none}}
	
/*bizco-head:bizco-req*/
.required,abbr.required,span.required,.woocommerce form .form-row .required,.wc-block-components-label .required,.wpforms-required-label{color:#0F9558 !important;text-decoration:none;border:0 !important}
