/* Profusion H2O WooCommerce Style 1.0.1.
   Scoped to recognised WooCommerce pages and their commerce content.
   Native WooCommerce templates, validation, responsive checkout and scripts stay intact. */
body.pfh-woo-style {
  --pfh-blue: #16298d;
  --pfh-teal: #22a5b9;
  --pfh-ink: #253849;
  --pfh-muted: #526171;
  --pfh-line: #dee5ef;
  --pfh-pale: #f5f8fc;
}
/* Astra page shell; custom Elementor sections retain their own typography. */
body.pfh-woo-style #content { background: var(--pfh-pale); }
body.pfh-woo-style #primary { min-width: 0; }
body.pfh-woo-style #primary :is(.entry-title, .woocommerce-products-header__title) {
  color: var(--pfh-blue); font-family: Arial, Helvetica, sans-serif;
  font-size: clamp(32px, 3.8vw, 48px); font-weight: 700;
  line-height: 1.15; letter-spacing: -.025em; text-wrap: balance;
}
body.pfh-woo-style #primary .woocommerce-products-header {
  padding: 0; margin: 0; border: 0; min-height: 0;
}
/* Astra can leave the archive header empty when its title is displayed in a banner.
   Do not reserve space or draw a divider for that empty wrapper.
   Keep real archive titles and descriptions visible. */
body.pfh-woo-catalogue #primary {
  margin-top: 32px; padding-top: 0;
}
body.pfh-woo-catalogue #primary .woocommerce-products-header > :last-child {
  margin-bottom: 24px;
}
@media (max-width: 600px) {
  body.pfh-woo-catalogue #primary { margin-top: 24px; }
}
/* Commerce roots only: avoid header cart, footer and the custom HTML sections. */
body.pfh-woo-style #primary :is(.woocommerce, .woocommerce-products-header, .woocommerce-breadcrumb, .woocommerce-result-count, .woocommerce-ordering, ul.products, div.product, .woocommerce-pagination, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-product-collection) {
  font-family: Arial, Helvetica, sans-serif; color: var(--pfh-ink); line-height: 1.7;
}
body.pfh-woo-style #primary :is(.woocommerce, ul.products, div.product, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-product-collection) {
  --wp--preset--color--primary: #16298d;
  --wp--preset--color--contrast: #253849;
  --wp--preset--color--base: #ffffff;
  --wp--preset--color--accent: #22a5b9;
}
body.pfh-woo-style #primary :is(.woocommerce, div.product) :is(h2, h3, h4) {
  color: var(--pfh-blue); font-family: Arial, Helvetica, sans-serif;
  font-weight: 700; line-height: 1.3; letter-spacing: -.015em;
}
body.pfh-woo-style #primary :is(.woocommerce, div.product) h2 { font-size: clamp(24px, 2.6vw, 32px); }
body.pfh-woo-style #primary :is(.woocommerce, div.product) h3 { font-size: 22px; }
body.pfh-woo-style #primary :is(.woocommerce, div.product, ul.products) a:not(.button):not(.remove):not(.star-rating) { color: var(--pfh-blue); }
body.pfh-woo-style #primary :is(.woocommerce, div.product, ul.products, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wp-block-woocommerce-product-collection) :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--pfh-blue); outline-offset: 3px;
}
/* Only action buttons, never all buttons: quantity, password, gateway and remove controls remain native. */
body.pfh-woo-style #primary :is(.woocommerce, div.product, ul.products) :is(a.button, button.button, input.button),
body.pfh-woo-style #primary :is(.wc-block-components-button:not(.is-link), .wp-block-woocommerce-product-button .wp-block-button__link) {
  background: var(--pfh-blue); border: 2px solid var(--pfh-blue); border-radius: 7px;
  color: #fff; min-height: 50px; padding: 13px 18px; box-shadow: none;
  font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: 700;
  line-height: 1.5; text-align: center; text-decoration: none; white-space: normal;
  transition: background .2s ease, border-color .2s ease;
}
body.pfh-woo-style #primary :is(.woocommerce, div.product, ul.products) :is(a.button, button.button, input.button):hover,
body.pfh-woo-style #primary :is(.wc-block-components-button:not(.is-link), .wp-block-woocommerce-product-button .wp-block-button__link):hover {
  background: #101f70; border-color: #101f70; color: #fff;
}
body.pfh-woo-style #primary :is(.woocommerce, div.product) :is(button.button, input.button):disabled,
body.pfh-woo-style #primary .wc-block-components-button:disabled { opacity: .5; cursor: not-allowed; }
/* Classic WooCommerce form fields. Block fields retain their floating-label geometry. */
body.pfh-woo-style #primary .woocommerce :is(.form-row, .woocommerce-form-row) :is(input.input-text, textarea, select),
body.pfh-woo-style #primary :is(.woocommerce-ordering select, .woocommerce .coupon .input-text, div.product .variations select) {
  background: #fff; color: var(--pfh-ink); border: 1px solid #a5b3c4;
  border-radius: 7px; min-height: 48px; padding: 11px 13px;
  font: 16px/1.5 Arial, Helvetica, sans-serif; box-shadow: none; max-width: 100%;
}
body.pfh-woo-style #primary .woocommerce .form-row label { font-weight: 600; color: var(--pfh-ink); }
body.pfh-woo-style #primary .woocommerce .form-row.woocommerce-invalid :is(input.input-text, select, textarea) { border-color: #b42318; }
body.pfh-woo-style #primary .woocommerce .form-row.woocommerce-validated :is(input.input-text, select, textarea) { border-color: #267047; }
body.pfh-woo-style #primary .woocommerce :is(input[type=checkbox], input[type=radio]) { accent-color: var(--pfh-blue); }
body.pfh-woo-style #primary .woocommerce .select2-container .select2-selection--single {
  border: 1px solid #a5b3c4; border-radius: 7px; min-height: 48px; background: #fff;
}
body.pfh-woo-style #primary .woocommerce .select2-selection--single .select2-selection__rendered { line-height: 46px; padding-left: 13px; color: var(--pfh-ink); }
body.pfh-woo-style #primary .woocommerce .select2-selection--single .select2-selection__arrow { height: 46px; }
/* Catalogue cards: works with WooCommerce's classic list and Astra summary wrappers. */
body.pfh-woo-style #primary ul.products:not(.wc-block-product-template) {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px;
  margin: 24px 0 36px; padding: 0; list-style: none;
}
body.pfh-woo-style #primary ul.products:not(.wc-block-product-template)::before,
body.pfh-woo-style #primary ul.products:not(.wc-block-product-template)::after { content: none; }
body.pfh-woo-style #primary ul.products li.product,
body.pfh-woo-style #primary .wc-block-product-template > li {
  float: none; width: auto; min-width: 0; margin: 0; padding: 22px;
  background: #fff; border: 1px solid var(--pfh-line); border-top: 3px solid var(--pfh-teal);
  border-radius: 12px; box-shadow: 0 8px 24px rgba(22,41,141,.04);
}
body.pfh-woo-style #primary ul.products li.product :is(.woocommerce-loop-product__title, .woocommerce-loop-category__title) {
  color: var(--pfh-blue); font: 700 21px/1.35 Arial, Helvetica, sans-serif;
  letter-spacing: -.015em; padding: 0; margin: 18px 0 12px;
}
body.pfh-woo-style #primary ul.products li.product a img {
  width: 100%; aspect-ratio: 1; object-fit: contain; background: #fff;
  border-radius: 8px; margin: 0 0 16px;
}
body.pfh-woo-style #primary ul.products li.product .price {
  color: var(--pfh-blue); font-size: 19px; font-weight: 700; margin: 12px 0;
}
body.pfh-woo-style #primary ul.products li.product .price del { color: var(--pfh-muted); font-size: 15px; }
body.pfh-woo-style #primary ul.products li.product .price ins { background: transparent; text-decoration: none; }
body.pfh-woo-style #primary ul.products li.product .button { margin-top: 14px; }
body.pfh-woo-style #primary :is(ul.products, div.product) .onsale {
  background: var(--pfh-teal); color: #10215f; font-weight: 700;
  border-radius: 6px; min-height: 0; min-width: 0; line-height: 1.5; padding: 6px 12px;
}
body.pfh-woo-style #primary .woocommerce-pagination ul { border: 0; display: inline-flex; flex-wrap: wrap; gap: 8px; }
body.pfh-woo-style #primary .woocommerce-pagination ul li { border: 0; }
body.pfh-woo-style #primary .woocommerce-pagination ul li :is(a, span) {
  padding: 12px 16px; border: 1px solid var(--pfh-line); border-radius: 7px; background: #fff; color: var(--pfh-blue);
}
body.pfh-woo-style #primary .woocommerce-pagination ul li :is(.current, a:hover) { background: var(--pfh-blue); color: #fff; }
/* Product detail: retain gallery zoom, variations and stock behaviour. */
body.pfh-woo-style #primary div.product .product_title { color: var(--pfh-blue); font: 700 clamp(28px,3vw,40px)/1.2 Arial,Helvetica,sans-serif; letter-spacing: -.025em; }
body.pfh-woo-style #primary div.product .summary > .price { color: var(--pfh-blue); font-size: 25px; font-weight: 700; }
body.pfh-woo-style #primary div.product .woocommerce-product-gallery img { border-radius: 10px; }
body.pfh-woo-style #primary div.product .woocommerce-tabs .panel { padding: 28px; background: #fff; border: 1px solid var(--pfh-line); border-radius: 12px; }
body.pfh-woo-style #primary div.product .woocommerce-tabs ul.tabs li.active { border-top-color: var(--pfh-teal); }
body.pfh-woo-style #primary .quantity .qty { min-height: 48px; border: 1px solid #a5b3c4; border-radius: 6px; color: var(--pfh-ink); font-size: 16px; }
/* Account navigation, login and account details. */
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; list-style: none; border: 1px solid var(--pfh-line); border-radius: 12px; overflow: hidden; background: #fff; }
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation li { margin: 0; border: 0; border-bottom: 1px solid var(--pfh-line); }
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation a { display: block; padding: 16px 20px; color: var(--pfh-blue); font-weight: 700; text-decoration: none; }
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation .is-active a { background: var(--pfh-blue); color: #fff; border-left: 4px solid var(--pfh-teal); }
body.pfh-woo-account #primary .woocommerce-MyAccount-navigation li:not(.is-active) a:hover { background: #edf8fa; }
body.pfh-woo-account #primary .woocommerce-MyAccount-content { background: #fff; padding: 28px; border: 1px solid var(--pfh-line); border-top: 3px solid var(--pfh-teal); border-radius: 12px; min-width: 0; box-sizing: border-box; }
body.pfh-woo-style #primary .woocommerce :is(form.login, form.register, form.lost_reset_password) { padding: 28px; background: #fff; border: 1px solid var(--pfh-line); border-top: 3px solid var(--pfh-teal); border-radius: 12px; }
/* Classic tables/cart/checkout. Keep native table responsiveness and validation. */
body.pfh-woo-style #primary .woocommerce table.shop_table { background: #fff; border: 1px solid var(--pfh-line); border-radius: 10px; border-collapse: separate; border-spacing: 0; }
body.pfh-woo-style #primary .woocommerce table.shop_table :is(th, td) { padding: 16px; border-color: var(--pfh-line); }
body.pfh-woo-style #primary .woocommerce table.shop_table th { color: var(--pfh-blue); font-weight: 700; background: #f5f8fc; }
body.pfh-woo-style #primary .woocommerce table.shop_table a.remove { color: #b42318 !important; }
body.pfh-woo-style #primary .woocommerce table.shop_table a.remove:hover { background: #b42318; color: #fff !important; }
body.pfh-woo-cart #primary .cart_totals { background: #fff; border: 1px solid var(--pfh-line); border-top: 4px solid var(--pfh-teal); border-radius: 12px; padding: 26px; box-sizing: border-box; }
body.pfh-woo-checkout #primary .woocommerce-checkout #customer_details { background: #fff; padding: 24px; border: 1px solid var(--pfh-line); border-radius: 12px; box-sizing: border-box; }
body.pfh-woo-checkout #primary #payment { background: #f5f8fc; border: 1px solid var(--pfh-line); border-radius: 12px; }
body.pfh-woo-checkout #primary #payment .payment_box { background: #fff; color: var(--pfh-ink); }
body.pfh-woo-checkout #primary #payment .payment_box::before { border-bottom-color: #fff; }
body.pfh-woo-style #primary :is(.woocommerce-message, .woocommerce-info) { background: #edf8fa; border-top-color: var(--pfh-teal); color: var(--pfh-ink); border-radius: 7px; }
body.pfh-woo-style #primary :is(.woocommerce-message, .woocommerce-info)::before { color: var(--pfh-blue); }
body.pfh-woo-style #primary .woocommerce-error { background: #fff5f4; border-top-color: #b42318; color: #7a271a; border-radius: 7px; }
/* Standard block roots and documented button component; do not rearrange React internals. */
body.pfh-woo-style #primary :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { background: #fff; border-top: 4px solid var(--pfh-teal); border-radius: 12px; padding: 28px; box-shadow: 0 8px 24px rgba(22,41,141,.04); box-sizing: border-box; }
body.pfh-woo-style #primary :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) a:not(.wc-block-components-button):not(.wp-element-button) { color: var(--pfh-blue); }
body.pfh-woo-style #primary .wc-block-components-button.is-link { color: var(--pfh-blue); }
body.pfh-woo-style #primary .wc-block-cart__submit-container { background: #fff; }
body.pfh-woo-style #primary .wc-block-components-order-summary-item__quantity { background: #fff; border-color: var(--pfh-blue); color: var(--pfh-blue); box-shadow: 0 0 0 2px #fff; }
@media (max-width: 1024px) {
  body.pfh-woo-style #primary ul.products:not(.wc-block-product-template) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
}
@media (max-width: 600px) {
  body.pfh-woo-style #primary ul.products:not(.wc-block-product-template) { grid-template-columns: minmax(0,1fr); gap: 18px; }
  body.pfh-woo-style #primary ul.products li.product { padding: 22px; }
  body.pfh-woo-style #primary ul.products li.product .button { display: block; }
  body.pfh-woo-style #primary :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { padding: 18px 14px; }
  body.pfh-woo-account #primary .woocommerce-MyAccount-content { padding: 20px; margin-top: 24px; }
  body.pfh-woo-style #primary .woocommerce :is(form.login, form.register, form.lost_reset_password),
  body.pfh-woo-cart #primary .cart_totals,
  body.pfh-woo-style #primary div.product .woocommerce-tabs .panel { padding: 20px; }
  body.pfh-woo-style #primary .woocommerce table.shop_table :is(th, td) { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  body.pfh-woo-style #primary :is(.button, .wc-block-components-button) { transition: none; }
}
