.pcsh-notice-host {
	margin: 0 0 1.25em;
}

.pcsh-notice {
	padding: 14px 16px;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	background: #fcf9e8;
	color: #1d2327;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}

.pcsh-notice__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pcsh-notice__list li {
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.pcsh-notice__list li + li {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
	font-weight: 500;
}

.widget_shopping_cart .pcsh-notice,
.wc-block-mini-cart .pcsh-notice,
.wc-block-mini-cart__drawer .pcsh-notice,
.pcsh-notice-host--mini .pcsh-notice {
	margin: 0.75em 0;
	font-size: 13px;
}

.pcsh-notice-host--mini {
	margin: 0;
	padding: 0 1em;
}

.widget_shopping_cart .pcsh-notice-host--mini {
	padding: 0;
}

.pcsh-notice-host[hidden] {
	display: none;
}

/*
 * Orders are being refused. The classic buttons are real disabled buttons and
 * only need to look it. The block buttons are the block's own, which is why
 * the script flags the document and these make them inert; the click guard in
 * the script and the Store API do the refusing.
 */
.pcsh-checkout-stopped,
.pcsh-checkout-stopped:hover,
#place_order:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.pcsh-blocks-closed .wc-block-components-checkout-place-order-button,
.pcsh-blocks-closed .wc-block-cart__submit-button,
.pcsh-blocks-closed .wc-block-mini-cart__footer-checkout {
	opacity: 0.5;
	pointer-events: none;
	cursor: not-allowed;
}

.pcsh-blocks-closed .wc-block-components-express-payment,
.pcsh-blocks-closed .wc-block-components-express-payment-continue-rule {
	display: none !important;
}

/*
 * Cart and Checkout blocks. They own their submit buttons and offer no hook to
 * remove one, so the block script flags the document and these take the button
 * out of the flow. The Store API refuses the order regardless of this rule.
 */
.pcsh-blocks-hide-checkout .wc-block-cart__submit-button,
.pcsh-blocks-hide-checkout .wc-block-components-checkout-place-order-button,
.pcsh-blocks-hide-checkout .wc-block-mini-cart__footer-checkout {
	display: none !important;
}

/*
 * Express payment, which is a separate button from the submit one above and is
 * the shorter path to a paid order: one tap, no checkout form. Hiding the
 * submit button and leaving Apple Pay sitting under it would be the wrong half
 * to take away. The continue rule is the "or" divider between the two, which
 * has nothing left to divide.
 */
.pcsh-blocks-hide-checkout .wc-block-components-express-payment,
.pcsh-blocks-hide-checkout .wc-block-components-express-payment-continue-rule {
	display: none !important;
}

/*
 * The status display: the shortcode, the Ordering status block and the Elementor
 * widget. Everything is scoped to .pcsh-store-status because the bare status
 * sentence is also what the shortcode has always printed on its own, and a page
 * carrying it should look as it did. Edges are logical (start, end, inline,
 * block) so the layout turns round on its own for a right-to-left site.
 */
.pcsh-store-status {
	box-sizing: border-box;
	max-inline-size: 100%;
}

.pcsh-store-status p,
.pcsh-store-status dl {
	margin: 0;
}

.pcsh-store-status > * + * {
	margin-block-start: 0.5em;
}

.pcsh-store-status--align-start {
	text-align: start;
}

.pcsh-store-status--align-center {
	text-align: center;
}

.pcsh-store-status--align-end {
	text-align: end;
}

/*
 * The box takes its colours from the page rather than painting its own: a light
 * panel with the theme's light text on it was the one way this could be
 * unreadable on a dark theme.
 */
.pcsh-store-status--box {
	padding: 14px 16px;
	border: 1px solid rgba(128, 128, 128, 0.4);
	border-radius: 4px;
	background: rgba(128, 128, 128, 0.08);
}

.pcsh-store-status--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25em 1.25em;
}

.pcsh-store-status--inline > * + * {
	margin-block-start: 0;
}

.pcsh-store-status--inline.pcsh-store-status--align-center {
	justify-content: center;
}

.pcsh-store-status--inline.pcsh-store-status--align-end {
	justify-content: flex-end;
}

.pcsh-badge {
	display: inline-block;
	padding: 0.1em 0.7em;
	border-radius: 999px;
	font-size: 0.875em;
	font-weight: 600;
	line-height: 1.6;
	white-space: nowrap;
}

.pcsh-badge::before {
	content: "";
	display: inline-block;
	inline-size: 0.5em;
	block-size: 0.5em;
	margin-inline-end: 0.45em;
	border-radius: 50%;
	background: currentColor;
	vertical-align: 0.05em;
}

.pcsh-badge--open {
	background: #e6f4ea;
	color: #0b5a22;
}

.pcsh-badge--closed {
	background: #fbe9e9;
	color: #8a1c1c;
}

.pcsh-status-label {
	font-weight: 600;
}

/*
 * Rows are only there to be marked up as a group; the day and its hours sit in
 * two columns of one grid so the hours line up whatever the day names are.
 */
.pcsh-status-week {
	display: grid;
	grid-template-columns: max-content max-content;
	gap: 0.25em 1.5em;
	inline-size: fit-content;
	max-inline-size: 100%;
}

.pcsh-status-week__row {
	display: contents;
}

.pcsh-status-week dt,
.pcsh-status-week dd {
	margin: 0;
}

.pcsh-status-week__row--today dt,
.pcsh-status-week__row--today dd {
	font-weight: 700;
}

.pcsh-store-status--align-center .pcsh-status-week {
	margin-inline: auto;
}

.pcsh-store-status--align-end .pcsh-status-week {
	margin-inline-start: auto;
}

.pcsh-store-status--inline .pcsh-status-week {
	flex-basis: 100%;
}

.pcsh-visually-hidden {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
