/* WordPress integration; the original frontend stylesheet stays intact. */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; padding: 16px; top: 8px; left: 8px; z-index: 100000; background: white; color: #007f3e; }
:focus-visible { outline: 3px solid #007f3e; outline-offset: 4px; }
.header .main-bar .logo .sitename { font-family: var(--heading-font); font-size: 32px; font-weight: 700; color: var(--heading-color); }
.custom-logo { max-height: 70px; width: auto; max-width: min(280px, 55vw); }
.header .custom-logo-link { display: inline-flex; align-items: center; }
.header .custom-logo { width: 240px; height: auto; max-width: 48vw; max-height: none; }
.footer .heleomo-footer-brand { display: inline-flex !important; width: min(240px, 100%); padding: 6px; border-radius: 6px; background: white; }
.footer .heleomo-footer-brand img { width: 100%; height: auto; }
.mobile-nav-toggle { background: transparent; border: 0; padding: 8px; }
.mobile-search-inner { display: flex; align-items: center; gap: 8px; }
.heleomo-reading-width { max-width: 900px; }
.entry-content { line-height: 1.8; overflow-wrap: anywhere; }
.entry-content img { max-width: 100%; height: auto; }
.entry-content > * + * { margin-top: 1.25rem; }
.entry-content .alignwide { max-width: 1140px; }
.heleomo-result-card { padding: 24px; background: var(--surface-color); border: 1px solid #e3eae7; border-radius: 12px; overflow-wrap: anywhere; }
.heleomo-result-card img { width: 100%; height: 220px; object-fit: cover; }
.heleomo-empty-state { border: 1px solid #dfe9e3; border-radius: 12px; background: #f4f7f6; padding: 40px 24px; }
.search .page-title h1, .search .page-title .breadcrumbs { min-width: 0; }
.search .page-title h1, .search .page-title .breadcrumbs li, .search #search-empty .error-text { overflow-wrap: anywhere; }
.heleomo-enquiry-button, .woocommerce a.button.heleomo-enquiry-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--accent-color); color: white; border: 1px solid var(--accent-color); padding: 12px 22px; border-radius: 6px; font-size: 15px; font-weight: 600; line-height: 1.4; text-decoration: none; }
.heleomo-enquiry-button:hover, .woocommerce a.button.heleomo-enquiry-button:hover { background: #006332; color: white; }
.heleomo-enquiry-note { font-size: 14px; margin-top: 16px; color: #5a6577; }
.heleomo-price-on-request { font-weight: 600; color: var(--accent-color); }
.cards-2 .category-image img { object-fit: cover; }
.products-list .product-image img { object-fit: contain; }
.products-list .product-price { flex-wrap: wrap; margin-bottom: 14px; }
/* Twelve tracks allow six category cards and four product cards in one native loop. */
.woocommerce ul.products { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none; margin: 0; width: auto !important; padding: 20px; border: 1px solid #e3eae7; border-radius: 12px; background: white; min-width: 0; grid-column: auto / span 3; }
.woocommerce ul.products li.product-category { grid-column: auto / span 2; overflow-wrap: anywhere; }
.woocommerce ul.products li.product:not(.product-category) { display: flex; flex-direction: column; align-items: flex-start; }
.woocommerce ul.products li.product:not(.product-category) > .woocommerce-loop-product__link { width: 100%; }
.woocommerce ul.products li.product:not(.product-category) > .heleomo-product-link { margin-top: auto; }
.woocommerce .heleomo-catalog-navigation { padding: 20px; margin-bottom: 36px; border: 1px solid #dfe9e3; border-radius: 6px; background: color-mix(in srgb, var(--accent-color), transparent 96%); }
.woocommerce .heleomo-catalog-navigation .woocommerce-products-header { background: transparent; padding: 0; margin-bottom: 24px; }
.woocommerce .heleomo-catalog-navigation .woocommerce-products-header:last-child { margin-bottom: 0; }
.woocommerce .heleomo-catalog-navigation .heleomo-category-navigation { margin: 0; }
.woocommerce .heleomo-catalog-navigation .heleomo-category-navigation + .heleomo-category-navigation { margin-top: 24px; }
.woocommerce ul.products[class*="columns-"] li.product { margin-bottom: 0; }
.woocommerce ul.products li.product-category.heleomo-category-current { border: 2px solid var(--accent-color); padding: 19px; }
.woocommerce ul.products li.product-category.heleomo-category-icon a img { background: var(--accent-color); }
.heleomo-category-navigation { margin: 24px 0 32px; }
.heleomo-category-back { margin: 20px 0 24px; }
.woocommerce .heleomo-category-back--mobile { display: none; }
.woocommerce a.button.heleomo-category-back-link { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 10px 16px; border: 1px solid var(--accent-color); border-radius: 6px; background: transparent; color: var(--accent-color); font-size: 14px; line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.woocommerce a.button.heleomo-category-back-link:hover { background: var(--accent-color); color: white; }
.heleomo-product-category-context, .woocommerce .woocommerce-products-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; margin: 0 0 32px; padding: 16px; background-color: color-mix(in srgb, var(--accent-color), transparent 96%); border-radius: 6px; }
.heleomo-product-category-name, .woocommerce .woocommerce-products-header__title { min-width: 0; margin: 0; font-family: var(--heading-font); font-size: clamp(24px, 2.5vw, 34px); font-weight: 500; line-height: 1.3; overflow-wrap: anywhere; }
.woocommerce .woocommerce-products-header__title { padding: 0; background: transparent; color: var(--heading-color); }
.woocommerce .woocommerce-products-header > .heleomo-category-back { margin: 0; max-width: 100%; }
.woocommerce .woocommerce-products-header > :not(.woocommerce-products-header__title):not(.heleomo-category-back) { flex-basis: 100%; width: 100%; min-width: 0; overflow-wrap: anywhere; }
.heleomo-product-category-name a { color: var(--heading-color); }
.heleomo-product-category-name a:hover { color: var(--accent-color); }
.woocommerce .heleomo-category-navigation ul.products { margin-bottom: 0; }
.woocommerce ul.products li.product-category + li.product:not(.product-category) { grid-column-start: 1; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 20px; line-height: 1.4; }
.woocommerce ul.products li.product a img { aspect-ratio: 4/3; object-fit: contain; }
.woocommerce ul.products li.product .price { color: var(--accent-color); font-size: 18px; margin-bottom: 16px; }
.woocommerce div.product div.images img { object-fit: contain; }
/* Floated FlexSlider slides otherwise leave the wrapper at height 0. Keep an
   intrinsic viewport height when resize/focus recalculation briefly measures 0. */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { display: flow-root; }
.woocommerce div.product div.images .flex-viewport { height: auto !important; }
.woocommerce div.product div.images .woocommerce-product-gallery__image > a { cursor: pointer; }
/* Match product-details.html's compact thumb-strip; keep native gallery events. */
.woocommerce div.product div.images .flex-control-thumbs { display: flex; flex-wrap: nowrap; gap: 8px; margin-top: 12px; padding: 2px; overflow-x: auto; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; flex: 0 0 72px; width: 72px; height: 72px; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs li img { width: 100%; height: 100%; object-fit: cover; border: 2px solid color-mix(in srgb, var(--default-color), transparent 88%); border-radius: 6px; opacity: 1; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.woocommerce div.product div.images .flex-control-thumbs li img:hover { border-color: color-mix(in srgb, var(--accent-color), transparent 50%); }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { border-color: var(--accent-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-color), transparent 80%); }
.woocommerce div.product .product_title { font-size: clamp(26px, 3vw, 38px); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--accent-color); font-size: 24px; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 24px; }
.woocommerce table.shop_attributes td p { padding: 8px; }
.woocommerce .woocommerce-ordering select { padding: 10px; border: 1px solid #dfe9e3; max-width: 100%; }
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info { border-top-color: var(--accent-color); }
.woocommerce span.onsale { background: var(--accent-color); }
.woocommerce .related.products { clear: both; padding-top: 32px; }
.woocommerce nav.woocommerce-pagination ul { border-color: #dfe9e3; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { padding: 12px 16px; }
@media (min-width: 1200px) {
  .navmenu .dropdown:focus-within > ul { opacity: 1; top: 100%; visibility: visible; }
}
@media (max-width: 991px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce ul.products li.product { grid-column: auto; }
}
@media (max-width: 575px) {
  .woocommerce .woocommerce-products-header > .heleomo-category-back { display: none; }
  .woocommerce .heleomo-catalog-navigation > .heleomo-category-back--mobile { display: block; margin: 24px 0 0; text-align:center; }
  .woocommerce .heleomo-catalog-navigation { padding: 12px; margin-bottom: 24px; }
  .woocommerce .heleomo-catalog-navigation ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .woocommerce .heleomo-catalog-navigation ul.products li.product-category { grid-column: auto; margin: 0; padding: 12px; }
  .woocommerce .heleomo-catalog-navigation ul.products li.product-category.heleomo-category-current { padding: 11px; }
  .heleomo-product-category-context, .woocommerce .woocommerce-products-header { flex-direction: column; align-items: flex-start; }
  .header .main-bar .logo .sitename { font-size: 27px; }
  .header .utility-bar .utility-links .utility-link { padding: 4px 6px; font-size: 11px; }
  .woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
  .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; }
  .heleomo-enquiry-button { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}
