/* Tillbo look for WooCommerce pages: grid, cards, filters, product page, notices, block cart and checkout */
body.woocommerce, body.woocommerce-page { background-color: #ffffff; color: #1f1d2b; font-family: 'Nunito Sans', system-ui, sans-serif; }
.woocommerce h1, .woocommerce h2, .woocommerce h3, .woocommerce-page h1, .woocommerce-page h2 { font-family: 'Rubik', system-ui, sans-serif; color: #1f1d2b; letter-spacing: -.01em; }
.woocommerce a { color: #c2452a; }

/* Archive header from Dreamformer */
.df-shop-hero { background-color: #f5f4f8 !important; border-radius: 18px !important; }
.df-shop-hero__eyebrow { font: 600 13px 'Nunito Sans', system-ui, sans-serif !important; letter-spacing: .04em; color: #5d5a6b !important; }

/* Filter bar */
.tb-filter { margin: 0 0 16px; border: 1px solid #e6e4ea; border-radius: 16px; background-color: #ffffff; }
.tb-filter-toggle { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; font: 700 15px 'Rubik', system-ui, sans-serif; color: #1f1d2b; cursor: pointer; list-style: none; }
.tb-filter-toggle::-webkit-details-marker { display: none; }
.tb-filter-toggle::before { content: ""; width: 18px; height: 12px; background: linear-gradient(#1f1d2b, #1f1d2b) 0 0 / 18px 2px no-repeat, linear-gradient(#1f1d2b, #1f1d2b) 3px 5px / 12px 2px no-repeat, linear-gradient(#1f1d2b, #1f1d2b) 6px 10px / 6px 2px no-repeat; }
.tb-filter-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background-color: #ff6b4a; color: #1f1d2b; font-size: 12px; }
.tb-filter-form { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 4px 16px 16px; }
.tb-f { display: grid; gap: 4px; }
.tb-f-label { font: 600 13px 'Nunito Sans', system-ui, sans-serif; color: #5d5a6b; }
.tb-f-input { width: 100%; min-height: 44px; padding: 0 10px; border: 1px solid #cfccd8; border-radius: 12px; background-color: #ffffff; color: #1f1d2b; font: 500 15px 'Nunito Sans', system-ui, sans-serif; }
.tb-f-input:focus { outline: 2px solid #c2452a; outline-offset: 1px; }
.tb-f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tb-f-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font: 500 15px 'Nunito Sans', system-ui, sans-serif; color: #1f1d2b; cursor: pointer; }
.tb-f-check input { width: 20px; height: 20px; accent-color: #c2452a; }
.tb-f-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tb-f-go { min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background-color: #1f1d2b; color: #ffffff; font: 700 15px 'Rubik', system-ui, sans-serif; cursor: pointer; }
.tb-f-go:hover { background-color: #ff6b4a; color: #1f1d2b; }
.tb-f-clear { display: inline-flex; align-items: center; min-height: 44px; color: #c2452a; font-weight: 600; }

/* Product grid */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 32px !important; padding: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { position: relative; display: flex; flex-direction: column; width: auto !important; margin: 0 !important; padding: 10px !important; float: none !important; border: 1px solid #e6e4ea; border-radius: 16px; background-color: #ffffff; }
.woocommerce ul.products li.product:hover { border-color: #1f1d2b; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; margin: 0 0 8px !important; background-color: #ffffff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font: 600 14px/1.3 'Nunito Sans', system-ui, sans-serif !important; color: #1f1d2b; padding: 0 !important; margin: 0 0 6px !important; }
.woocommerce ul.products li.product .price { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 0 0 4px !important; font: 800 18px 'Rubik', system-ui, sans-serif !important; color: #1f1d2b !important; }
.woocommerce ul.products li.product .price del { order: 2; font-size: 13px; font-weight: 500; color: #5d5a6b; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: #d42a3c; }
.woocommerce ul.products li.product .button { margin-top: auto !important; display: flex !important; align-items: center; justify-content: center; min-height: 44px; border-radius: 999px !important; background-color: #1f1d2b !important; color: #ffffff !important; font: 700 14px 'Rubik', system-ui, sans-serif !important; padding: 0 10px !important; }
.woocommerce ul.products li.product .button:hover { background-color: #ff6b4a !important; color: #1f1d2b !important; }
.woocommerce ul.products li.product .added_to_cart { display: flex; align-items: center; justify-content: center; min-height: 44px; font-weight: 600; color: #c2452a; }
.woocommerce span.onsale { top: 8px !important; left: 8px !important; right: auto !important; min-width: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 2px 7px !important; border-radius: 3px !important; background-color: #d42a3c !important; color: #ffffff !important; font: 700 13px/1.5 'Rubik', system-ui, sans-serif !important; }
.tb-delivery { position: relative; margin: 0 0 10px !important; padding-left: 14px; font-size: 13px; line-height: 1.35; color: #1d6b3a; font-weight: 600; }
.tb-delivery::before { content: ""; position: absolute; left: 0; top: 5px; width: 8px; height: 8px; border-radius: 50%; background-color: #2fa35a; }

/* Breadcrumbs, counts, sorting, paging */
.woocommerce .woocommerce-breadcrumb { font-size: 14px; color: #5d5a6b; margin-bottom: 12px; }
.woocommerce .woocommerce-result-count { font-size: 14px; color: #5d5a6b; }
.woocommerce .woocommerce-ordering select { min-height: 44px; padding: 0 10px; border: 1px solid #cfccd8; border-radius: 999px; background-color: #ffffff; color: #1f1d2b; font: 500 15px 'Nunito Sans', system-ui, sans-serif; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }

/* Single product */
.woocommerce div.product .product_title { font: 800 clamp(1.4rem, 4.5vw, 2rem)/1.15 'Rubik', system-ui, sans-serif; color: #1f1d2b; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font: 800 28px 'Rubik', system-ui, sans-serif !important; color: #1f1d2b !important; }
.woocommerce div.product p.price ins { text-decoration: none; color: #d42a3c; }
.woocommerce div.product form.cart .button, .woocommerce .single_add_to_cart_button { min-height: 52px; padding: 0 28px !important; border-radius: 999px !important; background-color: #1f1d2b !important; color: #ffffff !important; font: 800 16px 'Rubik', system-ui, sans-serif !important; }
.woocommerce div.product form.cart .button:hover { background-color: #ff6b4a !important; color: #1f1d2b !important; }
.woocommerce div.product form.cart div.quantity .qty { min-height: 52px; width: 64px; border: 1px solid #cfccd8; border-radius: 4px; }
.woocommerce div.product .woocommerce-product-gallery__trigger { width: 44px !important; height: 44px !important; display: grid !important; place-items: center; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { min-height: 44px; display: inline-flex; align-items: center; }
.woocommerce div.product .woocommerce-product-attributes th { font-weight: 700; color: #1f1d2b; }
.woocommerce div.product .woocommerce-product-attributes td a { color: #c2452a; }

/* Notices */
.woocommerce-message, .woocommerce-info { border-top-color: #c2452a !important; background-color: #f5f4f8 !important; color: #1f1d2b !important; }
.woocommerce-message::before, .woocommerce-info::before { color: #c2452a !important; }
.woocommerce-message .button { border-radius: 999px !important; background-color: #1f1d2b !important; color: #ffffff !important; }

/* Block cart and checkout */
.wc-block-components-button:not(.is-link) { min-height: 52px; border-radius: 999px !important; background-color: #1f1d2b !important; color: #ffffff !important; font: 800 16px 'Rubik', system-ui, sans-serif !important; }
.wc-block-components-button:not(.is-link):hover { background-color: #ff6b4a !important; color: #1f1d2b !important; }
.wp-block-button__link { min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }
.wc-block-grid__product-price, .wc-block-grid__product-price *, .wc-block-components-product-price, .wc-block-components-product-price * { font-size: 14px !important; }
.wc-block-grid__product-onsale, .wc-block-grid__product-onsale * { font-size: 13px !important; }

@media (min-width: 768px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .tb-filter-form { grid-template-columns: 1fr 1fr 1.2fr auto; align-items: end; }
  .tb-f-actions { grid-column: 1 / -1; }
}
@media (min-width: 1100px) {
  .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tb-filter-form { grid-template-columns: 1fr 1fr 1.2fr auto auto; }
  .tb-f-actions { grid-column: auto; }
}

/* Compatible models on the product page */
.tb-fits { margin: 0 0 16px; }
.tb-fits-label { margin: 0 0 6px !important; font: 700 14px 'Rubik', system-ui, sans-serif; color: #1f1d2b; }
.tb-fits-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 !important; padding: 0 !important; list-style: none; }
.tb-fits-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 1px solid #cfccd8; border-radius: 999px; color: #1f1d2b !important; font-size: 14px; font-weight: 600; text-decoration: none !important; }
.tb-fits-link:hover { border-color: #c2452a; color: #c2452a !important; }
.woocommerce div.product .summary .stock { display: none; }

/* Warm palette touches */
.woocommerce ul.products li.product a img { border-radius: 12px; background-color: #f5f4f8; mix-blend-mode: multiply; }
.woocommerce ul.products li.product .price { font-weight: 800 !important; }
.tb-fits-link { background-color: #fff6d6; border-color: #fff6d6 !important; }
.tb-fits-link:hover { background-color: #ffd447; border-color: #ffd447 !important; color: #1f1d2b !important; }
.tb-filter-toggle::before { filter: none; }
.df-shop-hero { background-color: #fff6d6 !important; }
.tb-fits { margin: 18px 0 !important; }
.tb-fits-more { margin-top: 6px; }
.tb-fits-more[open] .tb-fits-toggle { display: none; }
.tb-fits-toggle { display: inline-flex; align-items: center; min-height: 44px; color: #c2452a; font-weight: 800; cursor: pointer; list-style: none; }
.tb-fits-toggle::-webkit-details-marker { display: none; }
