/* GPW Delivery Router: cart panel + checkout tweaks (brand: #003333, #006633, #CCCC33). */

.gpw-delivery {
	margin: 0 0 32px;
	padding: 24px;
	background: #F4F7F3;
	border: 1px solid rgba(0, 51, 51, 0.08);
	border-radius: 14px;
	font-family: "Source Sans Pro", sans-serif;
	color: #333333;
}
.gpw-delivery[hidden] { display: none; }

.gpw-delivery__title {
	margin: 0 0 12px;
	font-family: "DIN Condensed Bold", sans-serif;
	font-size: 26px;
	line-height: 1;
	text-transform: uppercase;
	color: #006633;
}

.gpw-delivery__intro,
.gpw-delivery__branch,
.gpw-delivery__note { margin: 0 0 12px; }
.gpw-delivery__note { color: #003333; font-weight: 600; }

.gpw-delivery__search { margin-bottom: 8px; }
.gpw-delivery__autocomplete { width: 100%; color-scheme: light; }

.gpw-delivery__address {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	align-items: baseline;
	justify-content: space-between;
	margin: 0 0 12px;
	padding: 12px 16px;
	background: #FFFFFF;
	border: 1px solid #c9d3cd;
	border-radius: 5px;
	font-weight: 600;
	color: #003333;
}

/* Scoped to beat the theme's [type="button"] reset (incl. :hover/:focus). */
.gpw-delivery .gpw-delivery__link,
.gpw-delivery .gpw-delivery__link:hover,
.gpw-delivery .gpw-delivery__link:focus {
	padding: 0;
	background: none;
	border: 0;
	border-radius: 0;
	color: #006633;
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.gpw-delivery .gpw-delivery__link:hover { color: #003333; }

.gpw-delivery__options { display: grid; gap: 10px; }
.gpw-delivery__option {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 14px 16px;
	background: #FFFFFF;
	border: 1px solid #c9d3cd;
	border-radius: 5px;
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.gpw-delivery__option:hover { border-color: #006633; }
.gpw-delivery__option.is-selected { border-color: #006633; box-shadow: inset 0 0 0 1px #006633; }
.gpw-delivery__option input { margin-top: 4px; accent-color: #006633; }
.gpw-delivery__option-text { display: grid; gap: 2px; flex: 1; }
.gpw-delivery__option-head { display: flex; justify-content: space-between; gap: 12px; color: #003333; }
.gpw-delivery__price { font-weight: 700; color: #006633; white-space: nowrap; }
.gpw-delivery__option small { color: #606060; font-size: 14px; }

.gpw-delivery__busy { margin: 8px 0 0; font-style: italic; color: #006633; }
.gpw-delivery__error { margin: 8px 0 0; color: #b42318; font-weight: 600; }

.gpw-delivery__blocked {
	padding: 16px;
	background: #FFFFFF;
	border-left: 4px solid #CCCC33;
	border-radius: 5px;
	color: #003333;
}
.gpw-delivery__blocked strong {
	display: block;
	margin-bottom: 4px;
	font-family: "DIN Condensed Bold", sans-serif;
	font-size: 22px;
	text-transform: uppercase;
}
.gpw-delivery__blocked p { margin: 0; }

.gpw-delivery__dialog {
	max-width: min(440px, calc(100vw - 32px));
	padding: 28px;
	border: 0;
	border-radius: 14px;
	text-align: center;
	color: #333333;
	font-family: "Source Sans Pro", sans-serif;
}
.gpw-delivery__dialog::backdrop { background: rgba(0, 51, 51, 0.6); }
.gpw-delivery__dialog h3 {
	margin: 0 0 8px;
	font-family: "DIN Condensed Bold", sans-serif;
	font-size: 30px;
	text-transform: uppercase;
	color: #006633;
}
.gpw-delivery__dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px; }

.gpw-delivery__dialog .gpw-delivery__button {
	display: inline-block;
	padding: 12px 24px;
	background: #006633;
	border: 2px solid #006633;
	border-radius: 5px;
	color: #FFFFFF;
	font: 600 15px "Source Sans Pro", sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}
.gpw-delivery__dialog .gpw-delivery__button:hover,
.gpw-delivery__dialog .gpw-delivery__button:focus { background: #003333; border-color: #003333; color: #FFFFFF; }
.gpw-delivery__dialog .gpw-delivery__button--outline { background: #FFFFFF; border-color: #006633; color: #006633; }

/* Cart: no checkout until a delivery option is ready; address only via the panel. */
body.gpw-not-ready .wc-block-cart__submit-container { display: none !important; }
.wc-block-cart .wc-block-components-shipping-calculator,
.wc-block-cart .wc-block-components-totals-shipping__change-address__link,
.wc-block-cart .wc-block-components-totals-shipping__change-address-button { display: none !important; }

/* Checkout: the shipping address comes from the cart. */
.gpw-delivery-checkout-note {
	margin: 0 0 12px;
	font-size: 14px;
	color: #606060;
}
.gpw-delivery-checkout-note a { color: #006633; font-weight: 600; }

/* Empty checkout "Browse store" button: site button style instead of the WP default pill. */
.wc-block-checkout-empty .wp-block-button__link,
.wc-block-checkout-empty .wp-block-button__link:visited {
	display: inline-block;
	height: auto;
	padding: 12px 24px;
	background: #006633;
	border: 2px solid #006633;
	border-radius: 5px;
	color: #FFFFFF;
	font: 600 15px/1.2 "Source Sans Pro", sans-serif;
	text-transform: uppercase;
	text-decoration: none;
}
.wc-block-checkout-empty .wp-block-button__link:hover,
.wc-block-checkout-empty .wp-block-button__link:focus { background: #003333; border-color: #003333; color: #FFFFFF; }

@media (max-width: 767px) {
	.gpw-delivery { padding: 16px; }
	.gpw-delivery__title { font-size: 22px; }
}

/* Pay-for-order and order-received pages (classic templates): match the block cart/checkout styling. */
:is(body.woocommerce-order-pay, body.woocommerce-order-received) table.shop_table {
	border: 1px solid #c9d3cd;
	border-radius: 14px;
	border-collapse: separate;
	overflow: hidden;
	background: #FFFFFF;
}
:is(body.woocommerce-order-pay, body.woocommerce-order-received) table.shop_table :is(th, td) {
	padding: 14px 16px;
	background: transparent;
	border-color: rgba(0, 51, 51, 0.08);
	color: #333333;
}
:is(body.woocommerce-order-pay, body.woocommerce-order-received) table.shop_table :is(thead th, tfoot th) { color: #003333; }
:is(body.woocommerce-order-pay, body.woocommerce-order-received) table.shop_table tfoot tr:nth-last-child(2) :is(th, td) {
	font-size: 18px;
	font-weight: 700;
	color: #003333;
}
:is(body.woocommerce-order-pay, body.woocommerce-order-received) a { color: #006633; }

body.woocommerce-order-pay #payment {
	margin-top: 32px;
	background: #F4F7F3;
	border: 1px solid rgba(0, 51, 51, 0.08);
	border-radius: 14px;
}
body.woocommerce-order-pay #payment ul.payment_methods { border-bottom-color: rgba(0, 51, 51, 0.08); }
body.woocommerce-order-pay #payment ul.payment_methods label { font-weight: 600; color: #003333; }
body.woocommerce-order-pay #payment div.payment_box {
	background: #FFFFFF;
	border: 1px solid #c9d3cd;
	border-radius: 5px;
	color: #333333;
}
body.woocommerce-order-pay #payment div.payment_box::before { border-bottom-color: #FFFFFF; }
body.woocommerce-order-pay #payment #place_order {
	padding: 14px 32px;
	background: #006633;
	border: 2px solid #006633;
	border-radius: 5px;
	color: #FFFFFF;
	font: 600 16px "Source Sans Pro", sans-serif;
	text-transform: uppercase;
}
body.woocommerce-order-pay #payment #place_order:hover,
body.woocommerce-order-pay #payment #place_order:focus { background: #003333; border-color: #003333; }

body.woocommerce-order-received .woocommerce-notice--success {
	font-size: 18px;
	font-weight: 600;
	color: #006633;
}
body.woocommerce-order-received ul.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 16px 0;
	margin: 0 0 40px;
	padding: 20px 24px;
	background: #F4F7F3;
	border: 1px solid rgba(0, 51, 51, 0.08);
	border-radius: 14px;
}
body.woocommerce-order-received ul.woocommerce-order-overview li {
	margin: 0;
	padding: 0 24px 0 0;
	margin-right: 24px;
	border-right: 1px solid rgba(0, 51, 51, 0.15);
	color: #606060;
}
body.woocommerce-order-received ul.woocommerce-order-overview li:last-child { border-right: 0; margin-right: 0; }
body.woocommerce-order-received ul.woocommerce-order-overview li strong { margin-top: 4px; font-size: 18px; color: #003333; }
body.woocommerce-order-received :is(.woocommerce-order-details__title, .woocommerce-column__title) {
	margin: 0 0 16px;
	font-family: "DIN Condensed Bold", sans-serif;
	font-size: 26px;
	text-transform: uppercase;
	color: #006633;
}
body.woocommerce-order-received .woocommerce-customer-details address {
	padding: 16px 20px;
	border: 1px solid #c9d3cd;
	border-radius: 14px;
	background: #FFFFFF;
}
body.woocommerce-order-received .woocommerce-order-details { margin-bottom: 40px; }
