/* Beatific Haven Shop Style 1.0.0. Scoped to WooCommerce pages and their main content. */
body.bhwc {
  --bhwc-green: #304536;
  --bhwc-hover: #24382b;
  --bhwc-sage: #bed3c3;
  --bhwc-ivory: #f8f7f2;
  --bhwc-text: #354039;
  --bhwc-border: #dce4d9;
  --bhwc-heading: "Cormorant Garamond", Georgia, serif;
  --bhwc-body: "Inter", Arial, sans-serif;
  background: var(--bhwc-ivory);
}
body.bhwc :is(main, .site-main) {
  color: var(--bhwc-text);
  font-family: var(--bhwc-body);
  line-height: 1.7;
}
body.bhwc #main, body.bhwc main.site-main {
  width: 100%;
  max-width: 1240px;
  padding: 38px 32px 80px;
  margin-inline: auto;
  box-sizing: border-box;
}
body.bhwc main *, body.bhwc .site-main * { box-sizing: border-box; }
body.bhwc main :is(h1,h2,h3,h4) {
  color: var(--bhwc-green);
  font-family: var(--bhwc-heading);
  font-weight: 600;
  line-height: 1.2;
}
body.bhwc main h1 { font-size: clamp(36px,4.4vw,58px); letter-spacing: -.025em; }
body.bhwc main h2 { font-size: clamp(27px,3vw,36px); }
body.bhwc main h3 { font-size: 25px; }
body.bhwc main a { color: var(--bhwc-green); text-underline-offset: 4px; }
body.bhwc main a:hover { color: var(--bhwc-hover); }
body.bhwc main :is(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid var(--bhwc-green); outline-offset: 3px;
}
body.bhwc main .woocommerce-breadcrumb { margin-bottom: 24px; color: #526454; font-size: 13px; }
body.bhwc main .woocommerce-breadcrumb a { text-decoration: underline; }

/* Native archive title and description retain their heading and SEO semantics. */
body.bhwc main .woocommerce-products-header {
  padding: clamp(28px,4vw,48px);
  margin-bottom: 32px;
  border-radius: 16px;
  background: var(--bhwc-sage);
}
body.bhwc main .woocommerce-products-header h1 { margin: 0 0 18px; }
body.bhwc main .woocommerce-products-header .term-description { max-width: 760px; }
body.bhwc main .bhwc-intro { max-width: 650px; margin: 0 0 26px; font-size: 16px; }
.bhwc-search { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; }
.bhwc-search-field { flex: 2 1 240px; }
.bhwc-category-field { flex: 1 1 210px; }
.bhwc-search label { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 600; }
body.bhwc main .bhwc-search :is(input[type=search],select) {
  width: 100%; height: 50px; padding: 11px 14px; border: 1px solid #8fa794;
  border-radius: 6px; color: var(--bhwc-text); background: #fff; font: inherit;
}
body.bhwc main .bhwc-search button { min-height: 50px; }
body.bhwc main .woocommerce-result-count { margin: 12px 0 24px; font-size: 14px; }
body.bhwc main .woocommerce-ordering { margin-bottom: 24px; max-width: 100%; }
body.bhwc main .woocommerce-ordering select {
  max-width: 100%; min-height: 46px; border: 1px solid var(--bhwc-border);
  border-radius: 6px; background: #fff; padding: 10px 34px 10px 14px; color: var(--bhwc-text);
}

/* Product cards, including related products and cross-sells. */
body.bhwc main ul.products {
  display: flex !important; flex-wrap: wrap; align-items: stretch; gap: 24px;
  clear: both; margin: 0 0 36px !important; padding: 0 !important; list-style: none;
}
body.bhwc main ul.products::before, body.bhwc main ul.products::after { display: none !important; }
body.bhwc main ul.products li.product {
  display: flex; flex-direction: column; position: relative;
  float: none !important; clear: none !important; width: calc((100% - 72px)/4) !important;
  min-width: 0; margin: 0 !important; padding: 18px;
  border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff;
  box-shadow: 0 5px 18px rgb(48 69 54 / 4%);
}
body.bhwc main ul.products li.product a { text-decoration: none; }
body.bhwc main ul.products li.product a img {
  display: block; width: 100%; height: auto; aspect-ratio: 1;
  object-fit: contain; margin: 0 0 20px; border-radius: 7px; background: #fafbf8;
}
body.bhwc main ul.products li.product :is(.woocommerce-loop-product__title,.woocommerce-loop-category__title) {
  font: 600 16px/1.5 var(--bhwc-body); color: var(--bhwc-green); margin: 0 0 12px; padding: 0; overflow-wrap: anywhere;
}
body.bhwc main ul.products li.product .price { color: var(--bhwc-green); font-size: 17px; font-weight: 600; margin: 0 0 20px; }
body.bhwc main ul.products li.product .button { margin-top: auto; text-align: center; }
body.bhwc main ul.products li.product .added_to_cart { padding-top: 12px; text-align: center; text-decoration: underline; }
body.bhwc main .price ins { background: transparent; text-decoration: none; }
body.bhwc main .price del { opacity: .7; font-weight: 400; }
body.bhwc main .star-rating { color: var(--bhwc-green); }
body.bhwc main .onsale {
  min-width: 0; min-height: 0; padding: 7px 12px; border-radius: 5px;
  background: var(--bhwc-green); color: #fff; font: 600 12px/1.5 var(--bhwc-body);
}
body.bhwc main ul.products li.product .onsale { top: 26px; left: 26px; right: auto; margin: 0; }

/* Only commerce action buttons: payment-provider buttons are left intact. */
body.bhwc main :is(.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,a.button,button.single_add_to_cart_button,.bhwc-search button,.wc-block-components-button:not(.is-link),.wp-block-button__link) {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 20px; border: 1px solid var(--bhwc-green);
  border-radius: 6px; background: var(--bhwc-green); color: #fff;
  font: 600 14px/1.5 var(--bhwc-body); text-decoration: none; white-space: normal;
  box-shadow: none;
}
body.bhwc main :is(a.button,button.button,input.button,.bhwc-search button,.wc-block-components-button:not(.is-link),.wp-block-button__link):hover {
  background: var(--bhwc-hover); color: #fff; border-color: var(--bhwc-hover);
}
body.bhwc main :is(button:disabled,.button.disabled) { opacity: .5; cursor: not-allowed; }
body.bhwc main .woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; gap: 8px; border: 0; }
body.bhwc main .woocommerce-pagination ul li { border: 0; }
body.bhwc main .woocommerce-pagination ul li :is(a,span) {
  display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
  border: 1px solid var(--bhwc-border); border-radius: 6px; background: #fff; color: var(--bhwc-green);
}
body.bhwc main .woocommerce-pagination ul li :is(.current,a:hover) { background: var(--bhwc-green); color: #fff; }

/* Product details: preserve gallery scripts, variation forms and tab behaviour. */
body.bhwc.single-product main div.product .product_title { margin: 0 0 20px; font-size: clamp(32px,3.5vw,48px); }
body.bhwc.single-product main div.product div.images { width: 47%; }
body.bhwc.single-product main div.product div.summary { width: 47%; }
body.bhwc.single-product main .woocommerce-product-gallery__image { background: #fff; border-radius: 12px; }
body.bhwc.single-product main .woocommerce-product-gallery__image img { border-radius: 12px; }
body.bhwc.single-product main div.product :is(p.price,span.price) { color: var(--bhwc-green); font-size: 25px; }
body.bhwc.single-product main .woocommerce-product-details__short-description { margin: 24px 0; }
body.bhwc.single-product main .woocommerce-product-details__short-description p { line-height: 1.85; }
body.bhwc.single-product main .product_meta { padding-top: 22px; border-top: 1px solid var(--bhwc-border); font-size: 13px; }
body.bhwc.single-product main .product_meta > span { display: block; margin-bottom: 8px; }
body.bhwc main .quantity .qty { min-height: 48px; width: 76px; padding: 8px; border: 1px solid #91a492; border-radius: 6px; background: #fff; color: var(--bhwc-text); }
body.bhwc main div.product form.cart .button { min-height: 48px; }
body.bhwc main div.product .woocommerce-tabs { padding-top: 28px; clear: both; }
body.bhwc main div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0 0 16px; }
body.bhwc main div.product .woocommerce-tabs ul.tabs::before,
body.bhwc main div.product .woocommerce-tabs ul.tabs li::before,
body.bhwc main div.product .woocommerce-tabs ul.tabs li::after { display: none; }
body.bhwc main div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--bhwc-border); border-radius: 6px; background: #fff; }
body.bhwc main div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 12px 18px; color: var(--bhwc-green); font: 600 14px/1.5 var(--bhwc-body); }
body.bhwc main div.product .woocommerce-tabs ul.tabs li.active { background: var(--bhwc-sage); }
body.bhwc main div.product .woocommerce-tabs .panel { padding: 28px; border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
body.bhwc main .related { margin-top: 48px; }

/* Classic forms and notices. Do not override block floating-label geometry. */
body.bhwc main .woocommerce form .form-row :is(input.input-text,textarea,select),
body.bhwc main .woocommerce form :is(input#coupon_code,input#username,input#password) {
  min-height: 48px; padding: 12px; border: 1px solid #91a492; border-radius: 6px;
  background: #fff; color: var(--bhwc-text); font: inherit; max-width: 100%;
}
body.bhwc main .woocommerce form .form-row label { color: var(--bhwc-green); font-size: 14px; font-weight: 500; }
body.bhwc main .woocommerce form .form-row textarea { min-height: 120px; }
body.bhwc main input:is([type=checkbox],[type=radio]) { accent-color: var(--bhwc-green); }
body.bhwc main .select2-container .select2-selection--single { height: 48px; border-color: #91a492; border-radius: 6px; }
body.bhwc main .select2-container .select2-selection__rendered { line-height: 46px; padding-left: 12px; }
body.bhwc main .select2-container .select2-selection__arrow { height: 46px; }
body.bhwc main :is(.woocommerce-message,.woocommerce-info) { background: #edf3ec; border-top-color: var(--bhwc-green); color: var(--bhwc-text); border-radius: 6px; }
body.bhwc main :is(.woocommerce-message,.woocommerce-info)::before { color: var(--bhwc-green); }
body.bhwc main .woocommerce-error { border-radius: 6px; }
body.bhwc main table.shop_table { border: 1px solid var(--bhwc-border); border-collapse: separate; border-radius: 10px; background: #fff; }
body.bhwc main table.shop_table th { color: var(--bhwc-green); font-weight: 600; background: #edf3ec; }
body.bhwc main table.shop_table :is(th,td) { padding: 16px; border-color: var(--bhwc-border); }
body.bhwc main table.shop_table .product-name a { font-weight: 600; text-decoration: none; }
body.bhwc main table.shop_table .product-thumbnail img { width: 72px; border-radius: 6px; }
body.bhwc main a.remove { min-width: 28px; min-height: 28px; }
body.bhwc main .cart-collaterals .cart_totals { padding: 26px; border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff; }
body.bhwc main .cart-collaterals .cross-sells ul.products li.product { width: calc((100% - 24px)/2) !important; }
body.bhwc main #payment { border: 1px solid var(--bhwc-border); border-radius: 10px; background: #edf3ec; }
body.bhwc main #payment div.payment_box { background: #fff; color: var(--bhwc-text); }
body.bhwc main #payment div.payment_box::before { border-bottom-color: #fff; }
body.bhwc main .woocommerce-checkout #customer_details { margin-bottom: 32px; }
body.bhwc main .woocommerce form :is(fieldset) { border: 1px solid var(--bhwc-border); padding: 20px; margin-top: 24px; }

/* Cart/Checkout blocks: inherit branding, leave responsive layouts and gateway UI to Woo. */
body.bhwc main :is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) {
  color: var(--bhwc-text); font-family: var(--bhwc-body);
  --wp--preset--color--contrast: #304536;
  --wp--preset--color--base: #ffffff;
  --wp--preset--color--primary: #304536;
}
body.bhwc main :is(.wc-block-components-title,.wc-block-cart__totals-title) { color: var(--bhwc-green); font-family: var(--bhwc-heading); }
body.bhwc main :is(.wc-block-components-sidebar,.wc-block-components-order-summary) { border-radius: 10px; }
body.bhwc main .wc-block-components-sidebar { padding: 24px; border: 1px solid var(--bhwc-border); background: #fff; }
body.bhwc main .wc-block-components-product-name { color: var(--bhwc-green); font-weight: 600; text-decoration: none; }
body.bhwc main .wc-block-components-product-image img { border-radius: 6px; }
body.bhwc main .wc-block-components-quantity-selector { border-radius: 6px; background: #fff; }
body.bhwc main .wc-block-components-quantity-selector button { color: var(--bhwc-green); }
body.bhwc main .wc-block-components-text-input input,
body.bhwc main .wc-block-components-combobox .wc-block-components-combobox-control input,
body.bhwc main .wc-blocks-components-select select { border-color: #91a492; border-radius: 6px; color: var(--bhwc-text); background-color: #fff; }
body.bhwc main .wc-block-components-totals-wrapper { border-color: var(--bhwc-border); }

/* Account navigation, login, addresses and orders. */
body.bhwc main .woocommerce-MyAccount-navigation { width: 25%; padding: 12px; border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff; }
body.bhwc main .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
body.bhwc main .woocommerce-MyAccount-navigation li { margin: 3px 0; }
body.bhwc main .woocommerce-MyAccount-navigation a { display: block; padding: 13px 16px; border-radius: 6px; font-weight: 500; text-decoration: none; }
body.bhwc main .woocommerce-MyAccount-navigation :is(.is-active a,a:hover) { background: var(--bhwc-sage); color: var(--bhwc-green); }
body.bhwc main .woocommerce-MyAccount-content { width: 71%; min-width: 0; padding: 30px; border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
body.bhwc main .woocommerce :is(form.login,form.register,form.lost_reset_password) { padding: 28px; border: 1px solid var(--bhwc-border); border-radius: 12px; background: #fff; }
body.bhwc main .woocommerce-Address address { font-style: normal; line-height: 1.9; }

@media (max-width:1024px) {
  body.bhwc #main, body.bhwc main.site-main { padding: 28px 24px 60px; }
  body.bhwc main ul.products li.product { width: calc((100% - 24px)/2) !important; }
  body.bhwc main .woocommerce-MyAccount-content { padding: 22px; }
}
@media (max-width:767px) {
  body.bhwc #main, body.bhwc main.site-main { padding: 24px 20px 48px; }
  body.bhwc main .woocommerce-products-header { padding: 26px 20px; border-radius: 10px; }
  .bhwc-search > div, .bhwc-search button { flex: 1 1 100%; width: 100%; }
  body.bhwc main .woocommerce-ordering, body.bhwc main .woocommerce-result-count { float: none; }
  body.bhwc main .woocommerce-ordering select { width: 100%; }
  body.bhwc.single-product main div.product div.images,
  body.bhwc.single-product main div.product div.summary { float: none; width: 100%; }
  body.bhwc main .woocommerce-MyAccount-navigation,
  body.bhwc main .woocommerce-MyAccount-content { float: none; width: 100%; margin-bottom: 24px; }
  body.bhwc main .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 4px; }
  body.bhwc main .woocommerce-MyAccount-navigation a { padding: 10px 12px; }
  body.bhwc main .woocommerce-tabs .panel { padding: 20px !important; }
  body.bhwc main .wc-block-components-sidebar { padding: 18px; }
  body.bhwc main .cart-collaterals .cart_totals { padding: 20px; }
  body.bhwc main table.shop_table :is(th,td) { padding: 12px; }
}
@media (max-width:480px) {
  body.bhwc main ul.products { gap: 18px; }
  body.bhwc main ul.products li.product,
  body.bhwc main .cart-collaterals .cross-sells ul.products li.product { width: 100% !important; }
}
