/* JDT 1.4: deliberately scoped; header, cart and checkout keep theme styling. */
body.jdt-shop-enabled { --jds-red:#bd1736; --jds-pink:#f05670; --jds-ink:#202123; --jds-soft:#f4f4f2; --jds-line:#e3e4e0; }
body.jdt-shop-archive #main { padding-top:0; }
body.jdt-shop-archive #content { width:100%; max-width:1180px; margin-inline:auto; float:none; padding:0; }
body.jdt-shop-archive #primary { width:100%; float:none; }
body.jdt-shop-archive .shop-container { max-width:1180px; margin-inline:auto; }
/* Flatsome may supply its title and sidebar wrappers through theme hooks. */
body.jdt-shop-archive .category-page-title,body.jdt-shop-archive #shop-sidebar { display:none!important; }
body.jdt-shop-archive #main>.category-page-row { max-width:1180px; margin-inline:auto; }
body.jdt-shop-archive #main>.category-page-row>.col.large-9 { width:100%; max-width:100%; flex-basis:100%; padding-inline:0; }
.jds { width:100%; max-width:1180px; margin:0 auto; background:#fff; color:var(--jds-ink); font:14px/1.55 Lato,Arial,sans-serif; text-align:left; color-scheme:light; }
.jds *, .jds *::before, .jds *::after { box-sizing:border-box; }
.jds [hidden] { display:none!important; }
.jds h1,.jds h2,.jds h3,.jds p { color:inherit; font-family:inherit; }
.jds h1,.jds h2,.jds h3 { margin:0; font-weight:800; text-transform:none; }
.jds h1 { font-size:clamp(29px,3.3vw,40px); line-height:1.12; letter-spacing:-1px; overflow-wrap:anywhere; }
.jds h2 { font-size:clamp(24px,2.5vw,28px); line-height:1.2; letter-spacing:-.6px; }
.jds h3 { font-size:16px; line-height:1.4; }
.jds a { color:inherit; text-decoration:none; }
.jds a:hover { color:var(--jds-red); }
.jds a:focus-visible,.jds button:focus-visible,.jds input:focus-visible,.jds select:focus-visible,.jds summary:focus-visible,.jds [tabindex]:focus-visible { outline:3px solid var(--jds-red); outline-offset:4px; }
.jds button,.jds input,.jds select { font:inherit; min-width:0; max-width:100%; border-radius:2px; box-shadow:none; letter-spacing:normal; text-transform:none; margin:0; }
.jds button,.jds summary { cursor:pointer; }
.jds button { min-height:44px; background:var(--jds-red); border:1px solid var(--jds-red); color:#fff; font-weight:700; padding:10px 17px; }
.jds button:hover { background:#9e122b; color:#fff; }
.jds input,.jds select { min-height:44px; background:#fff; color:var(--jds-ink); border:1px solid #c8cbc6; padding:10px 12px; }
.jds img { display:block; max-width:100%; }
.jds .jds-preview { padding:12px 5%; background:#fff2c7; color:#4a3810; font-weight:700; }
.jds .jds-intro { background:var(--jds-ink); color:#fff; padding:28px 5% 35px; border-bottom:3px solid var(--jds-red); }
.jds .jds-intro em { color:var(--jds-pink); font-style:normal; }
.jds .jds-intro .woocommerce-breadcrumb { font-size:12px; color:#d0d2d5; margin:0 0 25px; font-weight:400; text-transform:none; line-height:1.7; }
.jds .jds-intro .woocommerce-breadcrumb a { color:#fff; }
.jds .jds-intro .woocommerce-breadcrumb a:hover { text-decoration:underline; }
.jds .jds-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.jds .jds-kicker { display:block; color:#656a6f; font-size:10px; line-height:1.5; font-weight:700; text-transform:uppercase; letter-spacing:1.8px; margin-bottom:9px; }
.jds .jds-intro .jds-kicker { color:#d0d2d5; }
.jds .jds-intro p { color:#d0d2d5; margin:15px 0 0; font-size:14px; }
.jds .jds-search { margin:0; }
.jds .jds-search label { display:block; color:#fff; font-size:13px; margin:0 0 10px; }
.jds .jds-search-box { display:flex; gap:4px; padding:4px; background:#fff; border-radius:2px; }
.jds .jds-search-box input[type=search] { width:100%; flex:1; border:0; font-size:16px; }
.jds .jds-search-box button { flex:none; display:flex; gap:13px; align-items:center; font-size:13px; }
.jds .jds-section { padding:34px 5% 38px; }
.jds .jds-soft { background:var(--jds-soft); border-block:1px solid var(--jds-line); }
.jds .jds-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:24px; }
.jds .jds-categories { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:15px; }
.jds .jds-category { display:flex; flex-direction:column; padding:15px; gap:17px; min-width:0; background:#fff; border:1px solid var(--jds-line); border-bottom:3px solid #d8dbd5; transition:border-color .15s; }
.jds .jds-category:hover { border-bottom-color:var(--jds-red); }
.jds .jds-category img { width:100%; height:118px; object-fit:contain; margin:0; }
.jds .jds-category-name { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; width:100%; min-width:0; font-weight:700; font-size:14px; line-height:1.45; margin-top:auto; white-space:normal; }
.jds .jds-category-label { display:block; min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; word-break:normal; hyphens:manual; text-wrap:pretty; }
.jds .jds-category-name>[aria-hidden="true"] { white-space:nowrap; line-height:inherit; }
/* Root categories carry the visual emphasis; all names remain complete. */
.jds .jds-main-categories { padding-block:42px 46px; }
.jds .jds-main-categories h2 { font-size:32px; }
.jds .jds-main-categories .jds-categories { gap:18px; }
.jds .jds-main-categories .jds-category { min-height:278px; padding:20px 16px 18px; gap:22px; background:#fafaf8; border-bottom-width:4px; }
.jds .jds-main-categories .jds-category img { height:176px; }
.jds .jds-main-categories .jds-category-name { font-size:17px; font-weight:800; line-height:1.35; }
.jds .jds-description:empty { display:none; }
.jds .jds-description:has(.term-description) { padding:26px 5% 0; }
.jds .jds-description .term-description { color:#555b60; font-size:14px; line-height:1.75; }
.jds .jds-description .term-description>*:last-child { margin-bottom:0; }
.jds .jds-arrows { display:flex; gap:8px; flex:none; }
.jds .jds-arrows button { width:44px; padding:0; background:#fff; color:var(--jds-ink); border:1px solid #c8cbc6; font-size:19px; }
.jds .jds-arrows button:hover:not(:disabled) { border-color:var(--jds-red); color:var(--jds-red); }
.jds .jds-arrows button:disabled { opacity:.35; cursor:default; }
.jds .jds-track { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 32px)/3); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; padding-bottom:12px; }
.jds .jds-latest-card { display:flex; flex-direction:column; min-width:0; padding:20px; background:#fff; border-bottom:3px solid #d8dbd5; scroll-snap-align:start; }
.jds .jds-latest-card:hover { border-bottom-color:var(--jds-red); }
.jds .jds-latest-image { margin-bottom:18px; }
.jds .jds-latest-image img { width:100%; height:150px; object-fit:contain; }
.jds .jds-latest-card h3 { margin:0 0 22px; }
.jds .jds-card-link { display:flex; justify-content:space-between; gap:12px; font-size:12px; color:#5e6469; padding-top:14px; border-top:1px solid var(--jds-line); margin-top:auto; }
/* Compact restock row: five cards, shorter images, smaller section heading. */
.jds .jds-restock { padding-block:24px 26px; }
.jds .jds-restock .jds-heading { margin-bottom:17px; }
.jds .jds-restock h2 { font-size:23px; }
.jds .jds-restock .jds-track { grid-auto-columns:calc((100% - 48px)/5); gap:12px; padding-bottom:9px; }
.jds .jds-restock .jds-latest-card { padding:13px; border-bottom-width:2px; }
.jds .jds-restock .jds-latest-image { margin-bottom:10px; }
.jds .jds-restock .jds-latest-image img { height:88px; }
.jds .jds-restock .jds-latest-card h3 { margin-bottom:13px; font-size:13px; font-weight:700; line-height:1.4; white-space:normal; overflow-wrap:anywhere; word-break:normal; text-wrap:pretty; }
.jds .jds-restock .jds-card-link { gap:8px; padding-top:10px; font-size:11px; }
.jds .jds-restock .jds-card-link>[aria-hidden="true"] { flex:none; }
.jds .jds-focus .metaslider { max-width:100%!important; margin-inline:auto; }
.jds .jds-focus .metaslider img { object-fit:contain; }
.jds .jds-community { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:30px 5%; background:var(--jds-soft); border-top:1px solid var(--jds-line); }
.jds .jds-community h2 { font-size:23px; }
.jds .jds-community p { color:#5e6469; margin:8px 0 0; }
.jds .jds-community>a { font-weight:700; padding:12px 0; border-bottom:1px solid #adb1a9; flex:none; }
.jds .jds-community>a span { margin-left:15px; }
.jds .jds-filters { margin-bottom:20px; }
.jds .jds-filters summary { display:flex; justify-content:space-between; gap:22px; align-items:center; width:fit-content; min-height:44px; padding:10px 18px; background:#fff; border:1px solid #c8cbc6; border-radius:2px; font-weight:700; list-style:none; }
.jds .jds-filters summary::-webkit-details-marker { display:none; }
.jds .jds-filters[open] summary { border-color:var(--jds-red); color:var(--jds-red); }
.jds .jds-filters[open] summary span { transform:rotate(45deg); }
.jds .jds-filters form { margin:12px 0 0; padding:20px; background:#fff; border:1px solid var(--jds-line); }
.jds .jds-filter-fields { display:flex; flex-wrap:wrap; gap:16px 22px; align-items:end; }
.jds .jds-filter-fields label { color:#4f565b; margin:0; font-weight:400; }
.jds .jds-filter-fields input[type=number] { display:block; width:130px; font-size:16px; margin-top:5px; }
.jds .jds-filter-fields .jds-stock { display:flex; gap:9px; align-items:center; min-height:44px; }
.jds .jds-filter-fields input[type=checkbox] { min-height:0; width:18px; height:18px; accent-color:var(--jds-red); }
.jds .jds-filter-fields a { align-self:center; text-decoration:underline; padding:10px 0; }
.jds .jds-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.jds .woocommerce-result-count { margin:0; font-size:13px; color:#596168; }
.jds .woocommerce-ordering { margin:0; max-width:100%; }
.jds .woocommerce-ordering select { width:auto; min-width:220px; padding-right:32px; font-size:14px; }
.jds .woocommerce-notices-wrapper { width:100%; }
.jds .woocommerce-notices-wrapper:empty { display:none; }
/* Both WooCommerce's standard list and Flatsome's product row are supported. */
body.jdt-shop-enabled .jds ul.products,body.jdt-shop-enabled .jds div.products { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; width:100%; max-width:none; margin:0!important; padding:0; list-style:none; }
body.jdt-shop-enabled .jds .products::before,body.jdt-shop-enabled .jds .products::after { display:none!important; }
body.jdt-shop-enabled .jds .products>.product { width:auto!important; max-width:none!important; flex-basis:auto!important; float:none!important; padding:16px!important; margin:0!important; background:#fff; border:1px solid var(--jds-line); border-bottom:3px solid #d8dbd5; min-width:0; display:flex; flex-direction:column; }
body.jdt-shop-enabled .jds .products>.product:hover { border-bottom-color:var(--jds-red); }
body.jdt-shop-enabled .jds .products>.product>.col-inner,body.jdt-shop-enabled .jds .products .product-small.box { height:100%; display:flex; flex-direction:column; width:100%; }
body.jdt-shop-enabled .jds .products .box-image { width:100%; margin:0 0 15px; }
body.jdt-shop-enabled .jds .products .box-image img,body.jdt-shop-enabled .jds .products>.product>a>img { width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; margin:0 0 15px; }
body.jdt-shop-enabled .jds .products .box-image img { margin:0; }
body.jdt-shop-enabled .jds .products .box-text { flex:1; width:100%; padding:0; display:flex; flex-direction:column; text-align:left; }
body.jdt-shop-enabled .jds .products .woocommerce-loop-product__title,body.jdt-shop-enabled .jds .products .name { font-size:16px; line-height:1.4; letter-spacing:-.2px; font-weight:700; color:var(--jds-ink); margin:8px 0 16px; min-width:0; white-space:normal; overflow-wrap:anywhere; word-break:normal; }
body.jdt-shop-enabled .jds .products .category { font-size:10px; letter-spacing:.8px; color:var(--jds-red); opacity:1; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
body.jdt-shop-enabled .jds .products .price { font-size:18px; font-weight:700; color:var(--jds-ink); opacity:1; margin:10px 0; }
body.jdt-shop-enabled .jds .products .amount { color:inherit; opacity:1; }
body.jdt-shop-enabled .jds .products .price-wrapper { margin-top:auto; }
body.jdt-shop-enabled .jds .products .price del { color:#687078; }
body.jdt-shop-enabled .jds .products .price ins { background:none; }
body.jdt-shop-enabled .jds .products .price small,body.jdt-shop-enabled .jds .products .wc-gzd-additional-info,body.jdt-shop-enabled .jds .products .legal-price-info { color:#5a6268; font-size:11px; line-height:1.5; font-weight:400; }
body.jdt-shop-enabled .jds .products a.button:not(.wishlist-button) { display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:44px; padding:10px 8px; margin:12px 0 0; background:var(--jds-red); border:1px solid var(--jds-red); border-radius:2px; color:#fff; font-size:12px; font-weight:700; text-transform:none; letter-spacing:0; line-height:1.4; white-space:normal; box-shadow:none; }
body.jdt-shop-enabled .jds .products a.button:not(.wishlist-button):hover { background:#9e122b; color:#fff; }
body.jdt-shop-enabled .jds .products .added_to_cart { display:block; font-size:12px; font-weight:700; padding:10px 0; color:var(--jds-red); }
.jds .woocommerce-pagination { margin-top:28px; }
.jds .jds-recent-products { overflow-x:auto; padding-bottom:12px; scrollbar-width:thin; scroll-snap-type:x mandatory; }
body.jdt-shop-enabled .jds .jds-recent-products .products { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 54px)/4); }
body.jdt-shop-enabled .jds .jds-recent-products .products>.product { scroll-snap-align:start; }
/* Product details retain the theme's WooCommerce forms, variation handling,
   gallery, tabs and third-party hooks. Only layout and visual tokens change. */
body.jdt-shop-enabled.single-product #shop-sidebar,body.jdt-shop-enabled.single-product .product-sidebar { display:none!important; }
body.jdt-shop-enabled.single-product .product-main>.row>.col.large-9 { max-width:100%; flex-basis:100%; }
body.jdt-shop-enabled.single-product .product-main { max-width:1180px; margin-inline:auto; }
body.jdt-shop-enabled.single-product .product-info .product-title { color:var(--jds-ink); font-size:clamp(25px,3vw,36px); line-height:1.18; }
body.jdt-shop-enabled.single-product .single_add_to_cart_button { background:var(--jds-red); color:#fff; border-radius:2px; min-height:46px; text-transform:none; letter-spacing:0; }
body.jdt-shop-enabled.single-product .single_add_to_cart_button:hover { background:#9e122b; }
body.jdt-shop-enabled.single-product .product-info .price { color:var(--jds-ink); }
@media(max-width:900px) {
    .jds .jds-categories { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .jds .jds-main-categories .jds-category { min-height:260px; }
    .jds .jds-main-categories .jds-category img { height:155px; }
    .jds .jds-restock .jds-track { grid-auto-columns:calc((100% - 36px)/4); }
    .jds .jds-intro-grid { gap:25px; }
    body.jdt-shop-enabled .jds ul.products,body.jdt-shop-enabled .jds div.products { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
    body.jdt-shop-enabled .jds .jds-recent-products .products { grid-template-columns:none; grid-auto-columns:calc((100% - 28px)/3); }
}
@media(max-width:640px) {
    .jds .jds-intro { padding:23px 5% 28px; }
    .jds .jds-intro-grid { grid-template-columns:1fr; gap:24px; }
    .jds .jds-section { padding:27px 5% 30px; }
    .jds .jds-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    .jds .jds-category { padding:13px; }
    .jds .jds-category img { height:112px; }
    .jds .jds-main-categories { padding-block:32px 36px; }
    .jds .jds-main-categories h2 { font-size:28px; }
    .jds .jds-main-categories .jds-categories { gap:12px; }
    .jds .jds-main-categories .jds-category { min-height:230px; padding:15px 13px; gap:17px; }
    .jds .jds-main-categories .jds-category img { height:140px; }
    .jds .jds-main-categories .jds-category-name { font-size:15px; }
    .jds .jds-heading { gap:12px; }
    .jds .jds-track { grid-auto-columns:calc((100% - 12px)/2); gap:12px; }
    .jds .jds-latest-card { padding:14px; }
    .jds .jds-latest-image img { height:110px; }
    .jds .jds-restock { padding-block:22px; }
    .jds .jds-restock h2 { font-size:21px; }
    .jds .jds-restock .jds-track { grid-auto-columns:calc((100% - 12px)/2); }
    .jds .jds-restock .jds-latest-image img { height:80px; }
    .jds .jds-community { flex-direction:column; align-items:start; gap:14px; }
    .jds .jds-toolbar { align-items:start; flex-direction:column; }
    .jds .woocommerce-ordering,.jds .woocommerce-ordering select { width:100%; }
    body.jdt-shop-enabled .jds ul.products,body.jdt-shop-enabled .jds div.products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
    body.jdt-shop-enabled .jds .products>.product { padding:12px!important; }
    body.jdt-shop-enabled .jds .products .woocommerce-loop-product__title,body.jdt-shop-enabled .jds .products .name { font-size:14px; }
    body.jdt-shop-enabled .jds .jds-recent-products .products { grid-template-columns:none; grid-auto-columns:calc((100% - 12px)/2); }
}
@media(max-width:380px) {
    .jds .jds-track { grid-auto-columns:85%; }
    .jds .jds-category-name { gap:7px; }
    .jds .jds-main-categories .jds-category { min-height:218px; padding-inline:11px; }
    .jds .jds-main-categories .jds-category img { height:120px; }
    .jds .jds-main-categories .jds-category-name { font-size:14px; }
    .jds .jds-restock .jds-latest-card { padding:10px; }
    .jds .jds-search-box button { padding:9px 11px; }
    .jds .jds-search-box button span { display:none; }
    body.jdt-shop-enabled .jds .products .price { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .jds * { scroll-behavior:auto!important; transition:none!important; } }
