.fp-shop-intro { max-width: 850px; margin-bottom: 48px; }
.fp-shop-intro h1 { font-size: clamp(40px, 4.5vw, 64px); }
.fp-shop-tools { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 24px; padding: 26px 0; border-block: 1px solid var(--fp-line); margin-bottom: 36px; }
.fp-shop-categories { display: flex; gap: 12px 24px; flex-wrap: wrap; }
.fp-shop-categories a { font-size: 14px; text-decoration: none; color: var(--fp-muted); }
.fp-shop-categories a[aria-current], .fp-shop-categories a:hover { color: var(--fp-green); text-decoration: underline; font-weight: 600; }
.woocommerce-product-search { display: flex; gap: 8px; flex: 1 1 300px; max-width: 400px; }
.woocommerce-product-search input { min-width: 0; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 32px; font-size: 14px; color: var(--fp-muted); }
.woocommerce .woocommerce-breadcrumb a { color: var(--fp-muted); }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; margin: 0 0 64px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none; width: auto; margin: 0; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: cover; margin-bottom: 18px; border-radius: var(--fp-radius); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; margin-bottom: 10px; color: var(--fp-ink); font-size: 21px; line-height: 1.3; letter-spacing: -.02em; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--fp-green); }
.woocommerce ul.products li.product .price { color: var(--fp-ink); font-size: 17px; margin: 10px 0 0; }
.woocommerce ul.products li.product .button { align-self: start; margin-top: 20px; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { font-size: 14px; margin-bottom: 30px; }
.woocommerce div.product { overflow-wrap: anywhere; }
.woocommerce div.product div.images { width: 49%; }
.woocommerce div.product div.summary { width: 44%; }
.woocommerce div.product .product_title { font-size: clamp(36px, 4vw, 56px); margin-bottom: 24px; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--fp-green-dark); font-size: 27px; }
.woocommerce-product-details__short-description { color: var(--fp-muted); font-size: 18px; margin-block: 24px; }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 42px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin-bottom: 32px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--fp-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; border-radius: 0; background: none; margin: 0 25px 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 3px solid var(--fp-green); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight: 600; color: var(--fp-ink); padding: 16px 0; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 820px; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size: 30px; margin-top: 38px; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 23px; margin-top: 28px; }
.woocommerce div.product .product_meta { border-top: 1px solid var(--fp-line); padding-top: 24px; margin-top: 30px; color: var(--fp-muted); font-size: 14px; }
.woocommerce div.product .product_meta > span { display: block; margin-bottom: 8px; }
.woocommerce div.product form.cart { margin-top: 30px; }
.woocommerce div.product form.cart .variations th { padding: 12px 15px 12px 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations td { padding-block: 10px; }
.woocommerce div.product form.cart .variations select { max-width: 100%; }
.woocommerce div.product form.cart div.quantity { margin-right: 12px; }
.woocommerce .quantity input.qty { width: 80px; }
.woocommerce table.cart td.actions .coupon .input-text { width: 160px; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #respond input#submit.alt { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 23px; background: var(--fp-green); color: #fff; border: 1px solid var(--fp-green); border-radius: var(--fp-radius); font: 650 15px/1.4 var(--fp-font); }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--fp-green-dark); color: #fff; }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .55; }
.fp-product-enquiry { margin-block: 30px; padding: 28px; background: var(--fp-mint); border-radius: var(--fp-radius); }
.fp-product-enquiry p { font-size: 16px; }
.fp-shop-help { clear: both; margin-top: 60px; padding: 40px; background: var(--fp-mint); }
.fp-shop-help h2 { font-size: 30px; }
.fp-shop-help p { max-width: 65ch; }
.woocommerce .related { clear: both; padding-top: 36px; }
.woocommerce .related h2 { font-size: 32px; margin-bottom: 30px; }
.woocommerce-info, .woocommerce-message { background: var(--fp-mint); border-color: var(--fp-green); color: var(--fp-ink); }
.woocommerce-info::before, .woocommerce-message::before { color: var(--fp-green); }
.woocommerce-error { background: #fff1ef; }
.woocommerce table.shop_table { border: 1px solid var(--fp-line); border-radius: var(--fp-radius); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 18px 14px; }
.woocommerce .cart-collaterals .cart_totals h2, .woocommerce-checkout h3 { font-size: 29px; }
.woocommerce form .form-row { margin-bottom: 18px; padding: 0; }
.woocommerce form .form-row label { font-size: 15px; margin-bottom: 8px; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { border-color: var(--fp-line); padding: 28px; }
.woocommerce-checkout #payment { background: var(--fp-paper); }
.woocommerce-MyAccount-navigation { padding: 24px; border: 1px solid var(--fp-line); }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation a { display: block; padding: 8px 0; }
.woocommerce-MyAccount-navigation .is-active a { font-weight: 700; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 8px; }
.woocommerce nav.woocommerce-pagination ul li { border: 1px solid var(--fp-line); }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; padding: 13px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--fp-mint); color: var(--fp-green-dark); }
.wc-block-components-button:not(.is-link) { border-radius: var(--fp-radius); background: var(--fp-green); color: #fff; font-weight: 650; }
.wc-block-components-checkout-step__heading { font-size: 24px; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
    .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; }
    .woocommerce div.product div.summary { padding-top: 26px; }
    .woocommerce ul.products { gap: 32px 18px; }
    .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }
    .woocommerce ul.products li.product .button { padding-inline: 14px; }
    .woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { float: none; }
    .woocommerce div.product .woocommerce-tabs ul.tabs li { margin-right: 16px; font-size: 14px; }
    .fp-shop-help { padding: 28px 22px; }
    .woocommerce-MyAccount-navigation { margin-bottom: 28px; }
    .fp-product-enquiry { padding: 24px; }
}
