/**
Theme Name: Marlin Coast Home Brew
Author: WiseInternet
Author URI: https://wiseinternet.com.au
Description: Marlin Coast Home Brew - Astra child theme
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: marlin-coast-home-brew
Template: astra
*/

/* ==========================================================================
   Header
   ========================================================================== */

#ast-mobile-header .ast-primary-header-bar {
	border: 0 !important;
}

.ast-site-identity,
.site-logo-img {
	padding: 0 !important;
}

/* Desktop: fluid logo, search fills remaining space */
#ast-desktop-header .site-primary-header-wrap .ast-builder-grid-row {
	grid-template-columns: auto minmax(0, 1fr);
}

#ast-desktop-header .custom-logo-link img {
	width: clamp(240px, 43vw, 570px);
	max-width: 100%;
	height: auto;
}

#ast-desktop-header .site-header-primary-section-right {
	min-width: 0;
}

#ast-desktop-header .ast-header-search {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 480px;
}

/* Mobile: search spans the below-header row */
#ast-mobile-header .ast-header-search {
	flex: 1 1 auto;
	min-width: 0;
}

/* Search: both headers */
.ast-header-search .search-box,
.ast-header-search .search-form,
.ast-header-search .search-form label {
	width: 100%;
	min-width: 0;
}

.ast-header-search .search-form label {
	flex: 1 1 auto;
}

.ast-header-search form.search-form .search-field {
	width: 100% !important;
	padding-right: 3em !important;
}

button.search-submit.normal-search {
	padding: 0 .5em !important;
	box-shadow: none !important;
}

/* Desktop: tighter gap between search and cart (Astra pads each item 10px) */
#ast-desktop-header .site-header-primary-section-right > .ast-header-search {
	padding-right: 0;
}

#ast-desktop-header .site-header-primary-section-right > .ast-header-woo-cart {
	padding-left: 8px;
}

/* Top bar account links: [mchb_account_links] */
.mchb-account-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em;
}

.mchb-account-links__sep {
	opacity: .5;
}

/* Cart count badge: vibrant blue */
.ast-site-header-cart .ast-addon-cart-wrap i.astra-icon::after {
	background-color: var(--ast-global-color-8);
	color: var(--ast-global-color-4);
}

/* Menu */
#ast-desktop-header .sub-menu {
	padding: 4px 0;
}

#ast-desktop-header .sub-menu .sub-menu {
	margin-top: -4px;
}

/* Mobile menu (off-canvas)
   ========================================================================== */

/* Rows: consistent 44px tap targets, room on the right for the toggle */
#ast-mobile-popup .main-header-menu .menu-link {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding-top: 0;
	padding-bottom: 0;
	padding-right: 56px;
}

/* No leading ">" on links */
#ast-mobile-popup .main-header-menu .menu-link > .ast-icon.icon-arrow {
	display: none;
}

/* Sub-menu indents (without the arrow) */
#ast-mobile-popup .main-header-menu .sub-menu .menu-link {
	padding-left: 32px;
}

#ast-mobile-popup .main-header-menu .sub-menu .sub-menu .menu-link {
	padding-left: 44px;
}

/* Toggles: plain chevron aligned to its row (were getting Astra's global button styles) */
#ast-mobile-popup .main-header-menu .menu-item-has-children > .ast-menu-toggle {
	position: absolute;
	top: 0;
	right: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 4px;
	background: none;
	box-shadow: none;
	color: inherit;
	overflow: hidden; /* Astra sets overflow-y: auto on expanded toggles, which shows a scrollbar */
}

#ast-mobile-popup .main-header-menu .menu-item-has-children > .ast-menu-toggle:hover {
	background: var(--ast-global-color-5);
}

#ast-mobile-popup .ast-menu-toggle .ast-icon svg {
	width: 14px;
	height: 14px;
	margin: 0;
}

/* Close button: larger icon, 48px target */
#ast-mobile-popup .ast-mobile-popup-header .menu-toggle-close {
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
}

#ast-mobile-popup .ast-mobile-popup-header .menu-toggle-close svg {
	width: 24px;
	height: 24px;
	margin: 0;
}

/* Focus styles for keyboard users only (Astra focuses the close button on open and gives it a dotted border) */
#ast-mobile-popup :is(.menu-toggle-close, .ast-menu-toggle):focus:not(:focus-visible),
.astra-cart-drawer .astra-cart-drawer-close:focus:not(:focus-visible) {
	border: 0;
	outline: 0;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.home .site .site-content #primary {
	margin: 0 !important;
}

/* Content headings: tight to the content that follows them */
.entry-content :is(h1, h2, h3, h4, h5, h6) {
	margin-bottom: .5rem;
}

/* Cancel the block gap after a heading so the .5rem above isn't swallowed by it */
.entry-content :is(h1, h2, h3, h4, h5, h6) + * {
	margin-top: 0;
}

/* Heading underline (.heading-underline, product titles): see css/heading-underline.css (also loaded in the block editor) */

/* Lets carousels bleed to the screen edge without a horizontal page scrollbar */
body {
	overflow-x: clip;
}

/* ==========================================================================
   Forms: one control height (matches buttons, 48px)
   ========================================================================== */

:root {
	--mchb-control-height: 48px;
}

:is(
	input[type="text"],
	input[type="email"],
	input[type="password"],
	input[type="tel"],
	input[type="url"],
	input[type="search"],
	input[type="number"],
	input[type="date"],
	select
) {
	min-height: var(--mchb-control-height);
}

/* Select2 (country/state on checkout) */
.select2-container .select2-selection--single {
	display: flex;
	align-items: center;
	min-height: var(--mchb-control-height);
}

.select2-container .select2-selection--single .select2-selection__arrow {
	top: 50%;
	transform: translateY(-50%);
}

/* Quantity +/- (single product, cart) */
.woocommerce .quantity :is(.qty, .minus, .plus) {
	height: var(--mchb-control-height);
}

/* Radios & checkboxes: custom drawn (accent-color gives a dark tick on orange and odd-looking radios) */
input:is([type="radio"], [type="checkbox"]),
.woocommerce form .form-row input:is([type="radio"], [type="checkbox"]) {
	appearance: none;
	display: inline-grid;
	place-content: center;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0;
	padding: 0;
	border: 2px solid color-mix(in srgb, var(--ast-global-color-3) 55%, #fff);
	background: #fff;
	vertical-align: middle;
	cursor: pointer;
}

input[type="checkbox"] {
	border-radius: 3px;
}

input[type="radio"],
input[type="radio"]:checked {
	border-radius: 50%;
	background: #fff;
}

input:is([type="radio"], [type="checkbox"]):checked,
.woocommerce form .form-row input:is([type="radio"], [type="checkbox"]):checked {
	border-color: var(--ast-global-color-0);
	box-shadow: none;
}

input[type="checkbox"]:checked,
.woocommerce form .form-row input[type="checkbox"]:checked {
	background: var(--ast-global-color-0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}

input[type="radio"]::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--ast-global-color-0);
	transform: scale(0);
	transition: transform .1s ease-in-out;
}

input[type="radio"]:checked::before {
	transform: scale(1);
}

input:is([type="radio"], [type="checkbox"]):focus-visible {
	outline: 2px solid var(--ast-global-color-0);
	outline-offset: 2px;
}

input:is([type="radio"], [type="checkbox"]):disabled {
	opacity: .5;
	cursor: not-allowed;
}

/* ==========================================================================
   Shop: classic product listings
   ========================================================================== */

.ast-shop-toolbar-container {
	margin-bottom: 32px !important;
}

/* Stacked (mobile header): Astra spaces each panel with margin-bottom; drop it on the last so the gap matches desktop */
.ast-header-break-point .ast-shop-toolbar-container .ast-shop-toolbar-aside-wrap:last-child {
	margin-bottom: 0;
}

/* Hide the toolbar when it's empty (archives showing only subcategories have no count/sorting) */
.ast-shop-toolbar-container:not(:has(.ast-shop-toolbar-aside-wrap > *)) {
	display: none;
}

.woocommerce-ordering select {
	border: 1px solid var(--ast-border-color) !important;
	height: auto;
	padding: 0.75em 2em 0.75em 1em !important;
	border-radius: 4px !important;
}

li.product .astra-shop-thumbnail-wrap {
	margin-bottom: 0 !important;
}

li.product .astra-shop-thumbnail-wrap img {
	aspect-ratio: 1/1;
	object-fit: contain;
	margin: 0 !important;
}

/* Add to cart: pin to the bottom so buttons line up across a row */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap .button {
	margin-top: auto;
}

/* Minimum space between price and add to cart (Astra: .5em ≈ 7px) */
.woocommerce ul.products li.product .astra-shop-summary-wrap .price {
	margin-bottom: 1rem;
}

li.product-category img {
	aspect-ratio: 1/1;
	object-fit: contain !important;
	margin: 0 !important;
	height: auto !important;
}

li.product-category h2 {
	margin: 16px 0 0 !important;
	background: none !important;
	position: static !important;
	height: auto !important;
	padding: 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
}

li.product-category h2 .count {
	font-family: 'Open Sans', sans-serif;
	text-transform: none;
	font-weight: normal;
	font-size: .875em !important;
}

/* ==========================================================================
   Shop: product blocks (Product Collection) – match classic listings
   ========================================================================== */

/* Images: fit whole product in a square, like the shop (overrides block's inline object-fit) */
.wc-block-product .wc-block-components-product-image img {
	object-fit: contain !important;
}

/* Titles: no underline */
.wc-block-product .wp-block-post-title a {
	text-decoration: none;
}

/* Grid layout: 40px between rows like the shop (block default is 20px); columns stay 20px */
.wc-block-product-template:is(.wc-block-product-template__responsive, .is-flex-container) {
	row-gap: 40px;
}

/* Add to cart: pin to the bottom so buttons line up across a row */
.wc-block-product-template.is-layout-flex {
	align-items: stretch;
}

.wc-block-product-template .wc-block-product {
	display: flex;
	flex-direction: column;
}

.wc-block-product-template .wc-block-product .wc-block-components-product-button {
	margin-top: auto;
}

/* Minimum space between price and add to cart, same as classic listings (block default .75rem) */
.wc-block-product-template .wc-block-product .wp-block-woocommerce-product-price {
	margin-bottom: 1rem;
}

/* Buttons: no block shadow */
.wc-block-product .wp-block-button__link {
	box-shadow: none;
}

/* Sale badge: small circle top right, like Astra's shop badge */
.wc-block-product .wc-block-components-product-image .wc-block-components-product-sale-badge {
	position: absolute;
	top: 0;
	right: 0;
	left: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3em;
	height: 3em;
	margin: -.5em -.5em 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--ast-global-color-10);
	color: var(--ast-global-color-2);
	font-size: .8rem;
	font-weight: 400;
	line-height: 1;
	text-transform: none;
	z-index: 9;
}

.wc-block-product .wc-block-components-product-sale-badge__text::after {
	content: "!";
}

/* ==========================================================================
   Shop: product carousel
   ========================================================================== */

/* Exact columns, overflow to the screen edges, aligned with the content.
   cqw = % of the block's width (a % in scroll-padding would use the carousel's own width). */
.wp-block-woocommerce-product-collection:has(> .is-product-collection-layout-carousel) {
	container-type: inline-size;
}

.wp-block-woocommerce-product-collection .is-product-collection-layout-carousel {
	--carousel-cols: 2;
	--carousel-gap: 20px;
	--carousel-inset: calc(50vw - 50cqw);
	gap: var(--carousel-gap);
	max-width: none;
	margin-inline: calc(50cqw - 50vw) !important;
	padding: 8px var(--carousel-inset) !important;
	scroll-padding: 0 var(--carousel-inset);
}

.wp-block-woocommerce-product-collection .is-product-collection-layout-carousel .wc-block-product {
	flex: 0 0 calc((100% - (var(--carousel-cols) - 1) * var(--carousel-gap)) / var(--carousel-cols));
	min-width: 0;
	max-width: none;
	scroll-snap-align: start;
}

@container carousel (min-width: 600px) {
	.wp-block-woocommerce-product-collection .wc-block-product {
		--carousel-cols: 3;
	}
}

@container carousel (min-width: 922px) {
	.wp-block-woocommerce-product-collection .wc-block-product {
		--carousel-cols: 4;
	}
}

@container carousel (min-width: 1200px) {
	.wp-block-woocommerce-product-collection .wc-block-product {
		--carousel-cols: 5;
	}
}

/* Next/previous: closer together (block default gap is 24px) */
.wc-product-collection-carousel-header .wc-block-next-previous-buttons {
	gap: 8px;
}

/* Next/previous: undo Astra's global button styling */
.wc-block-next-previous-buttons .wc-block-next-previous-buttons__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--ast-border-color);
	border-radius: 4px;
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-2);
	box-shadow: none;
}

.wc-block-next-previous-buttons .wc-block-next-previous-buttons__button:hover,
.wc-block-next-previous-buttons .wc-block-next-previous-buttons__button:focus-visible {
	border-color: var(--ast-global-color-0);
	background: var(--ast-global-color-0);
	color: var(--ast-global-color-4);
}

.wc-block-next-previous-buttons .wc-block-next-previous-buttons__button[aria-disabled="true"] {
	border-color: var(--ast-border-color);
	background: var(--ast-global-color-4);
	color: var(--ast-global-color-2);
}

.wc-block-next-previous-buttons .wc-block-next-previous-buttons__icon {
	padding: 0;
}

/* ==========================================================================
   Single product
   ========================================================================== */

/* Add to cart: same 48px as other buttons (Astra gives this one 10px padding) */
.woocommerce-js.single-product div.product form.cart .single_add_to_cart_button {
	padding-top: 12px;
	padding-bottom: 12px;
	line-height: 24px;
}

/* Price: smaller currency symbol, raised to the top of the figures */
.woocommerce-js.single-product div.product .summary .price .woocommerce-Price-currencySymbol {
	margin-right: .05em;
	font-size: .6em;
	vertical-align: .5em;
}

/* Old (struck-through) sale price: keep the symbol inline so the strike runs through it */
.woocommerce-js.single-product div.product .summary .price del .woocommerce-Price-currencySymbol {
	margin-right: 0;
	font-size: inherit;
	vertical-align: baseline;
}

/* Price: room above the add to cart row */
.woocommerce-js.single-product div.product .summary p.price {
	margin-bottom: 1rem;
}

/* Tabs
   ========================================================================== */

/* Same type as the main menu (Oswald 400, 17px) */
.woocommerce-js.single-product div.product .woocommerce-tabs ul.tabs li a {
	padding: .75em 0;
	color: var(--ast-global-color-3);
	font-family: 'Oswald', sans-serif;
	font-size: 17px;
	font-weight: 400;
	text-transform: uppercase;
}

.woocommerce-js.single-product div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce-js.single-product div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--ast-global-color-2);
}

/* Rule below the tabs, not above */
.woocommerce-js.single-product div.product .woocommerce-tabs ul.tabs::before {
	top: auto;
	bottom: 0;
}

/* Active tab highlight: accent colour, sitting on the rule */
.woocommerce-js.single-product div.product .woocommerce-tabs ul.tabs li.active::before {
	top: auto;
	bottom: 0;
	z-index: 1;
	background: var(--ast-global-color-0);
}

/* ==========================================================================
   Cart & checkout
   ========================================================================== */

/* Notices: subtle box instead of a heavy coloured top rule */
.woocommerce-js :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	margin-bottom: 1em;
	border: 1px solid var(--ast-border-color);
	border-radius: 4px;
	background-color: var(--ast-global-color-4);
	box-shadow: 0 2px 6px rgba(17, 26, 51, .06);
	color: var(--ast-global-color-3);
}

.woocommerce-js :is(.woocommerce-message, .woocommerce-info)::before {
	color: var(--ast-global-color-3);
}

.woocommerce-js :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) {
	text-decoration: underline;
}

/* Errors: same box, red so they still stand out */
.woocommerce-js .woocommerce-error {
	border-color: #f1b5aa;
	background-color: #fdf3f1;
}

.woocommerce-js .woocommerce-error::before {
	color: #c62d1f;
}

/* Coupon button: same 48px as the field beside it (Astra gives it 8px padding) */
.woocommerce form.checkout_coupon .button {
	padding: 12px 20px;
	line-height: 24px;
}

/* Gift card form (YITH): theme colours and a single input + button row.
   YITH prints its colours with !important, so these need it too. */
.ywgc_enter_code,
.ywgc_enter_code:hover {
	margin: 0 0 2em;
	padding: 0;
	background: none;
	color: inherit;
}

.ywgc_enter_code > div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.ywgc_enter_code > div::after,
.ywgc_enter_code .clear {
	display: none;
}

.ywgc_enter_code > div > p:first-child {
	flex: 0 0 100%;
	margin: 0 0 .5em;
}

.ywgc_enter_code .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

.ywgc_enter_code .form-row-first {
	flex: 1 1 240px;
	max-width: 400px;
}

.ywgc_enter_code .form-row-first input {
	width: 100%;
}

.ywgc_enter_code .ywgc_apply_gift_card_button {
	background-color: var(--ast-global-color-0) !important;
	color: var(--ast-global-color-4) !important;
}

.ywgc_enter_code .ywgc_apply_gift_card_button:hover,
.ywgc_enter_code .ywgc_apply_gift_card_button:focus-visible {
	background-color: var(--ast-global-color-1) !important;
}

/* "Deliver to a different address?": full heading size, checkbox beside it */
#ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	cursor: pointer;
}

/* Terms checkbox: text wraps beside the checkbox, not under it */
/* Selector beats Astra's .woocommerce form .form-row label.checkbox { display: inline } */
.woocommerce form .woocommerce-terms-and-conditions-wrapper .form-row label.checkbox {
	display: block;
	position: relative;
	padding-left: 1.75em;
	font-weight: 400;
	line-height: 1.6;
}

.woocommerce form .woocommerce-terms-and-conditions-wrapper .form-row label.checkbox input[type="checkbox"] {
	position: absolute;
	top: .3em;
	left: 0;
	margin: 0;
}

/* Checkout add-ons ("Before Order Summary"): sit in the order column as their own card.
   Astra floats the columns; unfloated, the add-ons pushed the order summary below the billing form. */
#wc_checkout_add_ons {
	margin-bottom: 2em;
	padding: 1.5em;
	border: 2px solid var(--ast-border-color);
}

@media (min-width: 922px) {
	.woocommerce-checkout form.checkout #wc_checkout_add_ons {
		width: 40%;
		float: right;
		clear: right;
	}
}

#wc_checkout_add_ons .form-row {
	margin: 0;
	padding: 0;
}

#wc_checkout_add_ons .form-row > label:first-child {
	display: block;
	margin-bottom: 1em;
	font-weight: 400;
	line-height: 1.6;
}

#wc_checkout_add_ons .woocommerce-input-wrapper {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: .5em .6em;
}

#wc_checkout_add_ons .woocommerce-input-wrapper br {
	display: none;
}

#wc_checkout_add_ons .woocommerce-input-wrapper input {
	margin: 0;
}

#wc_checkout_add_ons .woocommerce-input-wrapper label {
	margin: 0;
	font-weight: 600;
	cursor: pointer;
}

/* Order review: flex rows so shipping options can span the full width
   (a table cell can't span both columns without colspan) */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table :is(thead, tbody, tfoot) {
	display: block;
}

.woocommerce-checkout-review-order-table tr {
	display: flex;
}

.woocommerce-checkout-review-order-table :is(th, td) {
	display: block;
}

.woocommerce-checkout-review-order-table tr > :first-child {
	flex: 1 1 auto;
}

.woocommerce-checkout-review-order-table tr > :last-child:not(:first-child) {
	flex: 0 0 auto;
	text-align: right;
}

.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals {
	flex-wrap: wrap;
}

/* #order_review beats Astra's modern checkout width: 40% */
#order_review .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > * {
	flex: 0 0 100%;
	width: 100%;
	text-align: left;
}

#order_review .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
	padding-bottom: 0;
	border-bottom: 0;
}

.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td {
	padding-top: .5em;
	border-top: 0;
}

/* Flex rows; !important undoes Astra's hanging indent (its ul#shipping_method li:not(... #shipping_method li) has two IDs) */
#shipping_method li {
	display: flex;
	align-items: center;
	gap: .5em;
	padding-left: 0 !important;
	text-indent: 0 !important;
	text-align: left;
}

#shipping_method li input {
	margin: 0;
}

/* Shipping options: price pushed to the right */
ul#shipping_method.woocommerce-shipping-methods li label {
	display: flex;
	flex: 1 1 auto;
	justify-content: space-between;
	gap: 1em;
	margin: 0;
}

/* Regular weight, like the other values in the table */
ul#shipping_method.woocommerce-shipping-methods li label .amount {
	font-weight: inherit;
}

/* Checkout labels at the base font size (Astra/plugins use 14–14.7px) */
#wc_checkout_add_ons :is(label, .form-row),
#order_review :is(.wc_payment_method label, .payment_box, .woocommerce-terms-and-conditions-wrapper label) {
	font-size: 1rem;
}

/* Payment methods: radio closer to its label, like the shipping options */
#payment ul.payment_methods li.wc_payment_method > input[type="radio"] {
	margin: 0 .5em 0 0;
}

#payment .wc_payment_method > label {
	margin: 0;
	vertical-align: middle;
}

/* Payment box arrow: sit flush on the box (its em offsets no longer match its px size at the base font size) */
.woocommerce-checkout #payment ul.payment_methods div.payment_box::before {
	top: auto;
	bottom: 100%;
	margin-top: 0;
	margin-bottom: 0;
}

/* Order review & cart totals: one font size throughout (Astra Pro shrinks product names to 13px, shipping labels to 14px) */
.woocommerce-checkout-review-order-table :is(.ast-product-image, .ast-product-name),
#shipping_method label {
	font-size: inherit;
	line-height: inherit;
}

/* Labels and values line up: Astra pads label cells 14px but value cells 10px */
#order_review .woocommerce-checkout-review-order-table :is(th, td) {
	padding-top: 12px;
	padding-bottom: 12px;
}

/* Place order: same size as the cart's Proceed to checkout */
#place_order {
	padding: 1em;
	font-size: 1.1rem;
	line-height: 1.8;
}

/* Gift card form: YITH's inner row has -14px side margins and 15px padding, pulling it out of line */
.ywgc_enter_code > div {
	margin: 0;
}

.ywgc_enter_code > div > p {
	padding: 0;
}

/* Space between the notices and the cart / checkout form below them */
.ywgc_have_code ~ :is(.woocommerce-cart-form, form.checkout) {
	margin-top: 2em;
}

/* ==========================================================================
   WooCommerce tables (cart, checkout, order details, account): open style
   ========================================================================== */

/* No outer border, no header/footer backgrounds, base font size */
.woocommerce-js table.shop_table,
.woocommerce-page table.shop_table {
	border: 0;
	border-radius: 0;
	font-size: 1rem;
}

.woocommerce-js table.shop_table :is(thead, tbody, tfoot, tr),
.woocommerce-page table.shop_table :is(thead, tbody, tfoot, tr) {
	background: none;
}

/* Rules between rows only (thead th listed separately: Astra zeroes its border with a more specific selector) */
.woocommerce-js table.shop_table :is(th, td),
.woocommerce-page table.shop_table :is(th, td),
.woocommerce-js table.shop_table thead th,
.woocommerce-page table.shop_table thead th {
	border: 0;
	border-bottom: 1px solid var(--ast-border-color);
	background: none;
}

/* Flush with the content edge */
.woocommerce-js table.shop_table tr > :first-child,
.woocommerce-page table.shop_table tr > :first-child {
	padding-left: 0;
}

.woocommerce-js table.shop_table tr > :last-child,
.woocommerce-page table.shop_table tr > :last-child {
	padding-right: 0;
}

/* Product names at the base size (Astra Pro sets .cart_item .product-name div to 13px) */
.woocommerce-js table.shop_table :is(.product-name, .product-name div, .product-name a, .woocommerce-table__product-name a) {
	font-size: inherit;
}

/* Cart thumbnails: 48px */
.woocommerce-js table.shop_table .product-thumbnail {
	width: 48px;
}

.woocommerce-js table.shop_table .product-thumbnail img {
	width: 48px;
	max-width: 48px;
	height: 48px;
	object-fit: contain;
}

/* Cart totals: open, no box */
.woocommerce-cart .cart-collaterals .cart_totals {
	padding: 0;
	border: 0;
}

/* Single rules: Astra adds a top border to totals rows on top of the bottom rule */
.woocommerce-cart .cart-collaterals .cart_totals table tr :is(th, td) {
	border-top: 0;
}

.woocommerce-cart .cart-collaterals .cart_totals > h2 {
	margin: 0 0 .5em;
	padding: 0;
	border: 0;
	background: none;
}

/* Order details & addresses (thank you page, My Account): plain headings, no boxes */
.woocommerce :is(.woocommerce-customer-details, .woocommerce-MyAccount-content, .woocommerce-Addresses, .woocommerce-order) :is(.woocommerce-column__title, .woocommerce-Address-title, .woocommerce-order-details__title),
.woocommerce-page.woocommerce-checkout .woocommerce-order h2:is(.woocommerce-column__title, .woocommerce-order-details__title) {
	margin: 0 0 .5em;
	padding: 0;
	border: 0;
	background: none;
}

.woocommerce :is(.woocommerce-customer-details, .woocommerce-MyAccount-content, .woocommerce-Addresses) address,
.woocommerce-page.woocommerce-checkout .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	border-radius: 0;
}

/* Additional information (product tabs): same open table style, no dotted borders or zebra rows */
.woocommerce-js div.product .woocommerce-tabs table.shop_attributes {
	border: 0;
	font-size: 1rem;
}

.woocommerce-js div.product .woocommerce-tabs table.shop_attributes :is(th, td),
.woocommerce-js div.product .woocommerce-tabs table.shop_attributes tr:nth-child(even) :is(th, td) {
	padding: .75em 1em .75em 0;
	border: 0;
	border-bottom: 1px solid var(--ast-border-color);
	background: none;
	font-style: normal;
}

.woocommerce-js div.product .woocommerce-tabs table.shop_attributes th {
	width: 30%;
	font-weight: 600;
	text-align: left;
}

.woocommerce-js div.product .woocommerce-tabs table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* Product names in cart, mini cart, order review and order details: same style as loop product titles.
   #primary on order details beats Astra Pro's td.woocommerce-table__product-name.product-name a { font-weight: 600 } */
.woocommerce-cart table.shop_table td.product-name :is(> a, .ast-product-name a),
.woocommerce-checkout-review-order-table td.product-name :is(.ast-product-name, .product-quantity),
#primary .woocommerce-table--order-details td.product-name :is(a, .product-quantity),
:is(.astra-cart-drawer, .widget_shopping_cart) .woocommerce-mini-cart-item > a:not(.remove) {
	color: var(--ast-global-color-2);
	font-size: inherit;
	font-family: 'Oswald', sans-serif;
	font-weight: 400;
	text-transform: uppercase;
	text-decoration: none;
}

.woocommerce-cart table.shop_table td.product-name :is(> a, .ast-product-name a):hover,
:is(.astra-cart-drawer, .widget_shopping_cart) .woocommerce-mini-cart-item > a:not(.remove):hover,
.woocommerce-table--order-details td.product-name a:hover {
	color: var(--ast-global-color-0);
}

/* Shipping destination: lighter, with "Change address" right under it (beats .entry-content p margin) */
.woocommerce p.woocommerce-shipping-destination {
	margin: .5em 0 .25em;
	color: color-mix(in srgb, var(--ast-global-color-3) 75%, #fff);
}

.woocommerce-shipping-calculator .shipping-calculator-button {
	text-decoration: underline;
}

/* Order details & order pay (My Account, thank you page): Astra Pro tints the footer, drops its row
   rules, indents cells and outlines the table. #primary outranks those class-only selectors. */
#primary :is(.woocommerce-order-details, .woocommerce-order-pay) table.shop_table {
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

#primary :is(.woocommerce-order-details, .woocommerce-order-pay) table.shop_table tr :is(th, td) {
	padding: 12px 1em 12px 0;
	border: 0;
	border-bottom: 1px solid var(--ast-border-color);
	background: none;
	font-size: 1rem;
	line-height: inherit;
}

#primary :is(.woocommerce-order-details, .woocommerce-order-pay) table.shop_table tr > :last-child {
	padding-right: 0;
}
