/* Don Joaco WooCommerce */
.woocommerce-page main.site-main,
.single-product main.site-main { width: min(calc(100% - 48px), 1320px); margin-inline: auto; padding: 54px 0 100px; }

.woocommerce-breadcrumb { margin: 0 0 34px !important; color: #777 !important; font-size: 11px !important; text-transform: uppercase; letter-spacing: .1em; }
.woocommerce-breadcrumb a { color: var(--dj-green-deep) !important; text-decoration: none; }

.post-type-archive-product .woocommerce-products-header { margin: 0 0 58px; padding: 72px clamp(28px,5vw,72px); background: var(--dj-green-deep); color: var(--dj-white); }
.post-type-archive-product .woocommerce-products-header__title { margin: 0 !important; max-width: 900px; color: var(--dj-white); font-size: clamp(48px,7vw,96px); line-height: .92; letter-spacing: -.05em; }
.post-type-archive-product .woocommerce-products-header .page-description { margin-top: 28px; max-width: 760px; }
.dj-shop-intro { margin-top: 28px; max-width: 830px; }
.dj-shop-intro__lead { margin: 0; font-size: clamp(20px,2.2vw,30px); line-height: 1.42; color: #eef3ee; }
.dj-shop-intro__meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.dj-shop-intro__meta span { border: 1px solid rgba(255,255,255,.42); padding: 9px 12px; font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }

.post-type-archive-product .woocommerce-result-count,
.post-type-archive-product .woocommerce-ordering { margin-bottom: 32px !important; }
.post-type-archive-product .woocommerce-ordering select { border: 1px solid var(--dj-line); background: var(--dj-white); border-radius: 0; padding: 10px 34px 10px 12px; min-height: 44px; }

.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 42px 24px; margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; }
.woocommerce ul.products li.product > a:first-child { display: block; color: var(--dj-black); text-decoration: none; }
.woocommerce ul.products li.product img { width: 100% !important; aspect-ratio: 1/1; object-fit: cover; margin: 0 0 18px !important; background: var(--dj-off); transition: transform .25s ease; }
.woocommerce ul.products li.product:hover img { transform: scale(.985); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 !important; margin: 0 0 10px !important; font-size: clamp(20px,1.8vw,27px) !important; line-height: 1.12; letter-spacing: -.025em; }
.woocommerce ul.products li.product .price { display: block; margin: 0 0 12px !important; color: var(--dj-black) !important; font-size: 17px !important; font-weight: 800 !important; }
.woocommerce ul.products li.product .wc-gzd-additional-info { margin: 4px 0 !important; color: #777; font-size: 11px; line-height: 1.4; }
.woocommerce ul.products li.product .button { margin-top: 16px !important; border: 1px solid var(--dj-black) !important; border-radius: 0 !important; background: var(--dj-black) !important; color: var(--dj-white) !important; padding: 14px 17px !important; font-size: 10px !important; font-weight: 800 !important; text-transform: uppercase; letter-spacing: .1em; transition: .2s ease; }
.woocommerce ul.products li.product .button:hover { background: var(--dj-green-deep) !important; border-color: var(--dj-green-deep) !important; }

/* Single product */
.single-product div.product { display: grid; grid-template-columns: 1.06fr .94fr; gap: clamp(36px,6vw,92px); align-items: start; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary { float: none !important; width: auto !important; margin: 0 !important; }
.single-product div.product .woocommerce-product-gallery img { width: 100%; }
.single-product div.product .summary { padding-top: 24px; }
.single-product .product_title { margin: 0 0 20px; font-size: clamp(42px,5.2vw,78px); line-height: .96; letter-spacing: -.05em; }
.single-product div.product p.price { margin: 0 0 12px !important; color: var(--dj-black) !important; font-size: 25px !important; font-weight: 800; }
.single-product .legal-price-info { color: #777; font-size: 12px; }
.single-product form.cart { display: flex; gap: 10px; align-items: stretch; margin: 34px 0 !important; }
.single-product .quantity .qty { height: 52px; width: 72px !important; border: 1px solid var(--dj-line); border-radius: 0; }
.single-product .single_add_to_cart_button { min-height: 52px; border-radius: 0 !important; background: var(--dj-green-deep) !important; color: var(--dj-white) !important; padding-inline: 24px !important; text-transform: uppercase; letter-spacing: .09em; font-size: 11px !important; }
.single-product .product_meta { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--dj-line); color: #666; font-size: 12px; line-height: 1.6; }
.single-product .product_meta a { color: var(--dj-green-deep); }
.single-product .woocommerce-tabs { grid-column: 1 / -1; margin-top: 58px; padding-top: 42px; border-top: 1px solid var(--dj-line); }
.single-product .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 28px !important; border-bottom: 1px solid var(--dj-line); }
.single-product .woocommerce-tabs ul.tabs::before { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li { border: 0 !important; border-radius: 0 !important; background: none !important; margin: 0 28px 0 0 !important; padding: 0 0 13px !important; }
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.single-product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--dj-green-deep) !important; }
.single-product .woocommerce-tabs .panel { max-width: 850px; font-size: 18px; line-height: 1.65; }
.single-product .woocommerce-tabs .panel h2 { font-size: 30px; letter-spacing: -.03em; }

/* Cart / checkout shared */
.woocommerce table.shop_table { border-radius: 0 !important; border-color: var(--dj-line) !important; }
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button { border-radius: 0 !important; }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background: var(--dj-green-deep) !important; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select { border: 1px solid var(--dj-line); border-radius: 0; min-height: 46px; padding: 10px 12px; }

@media (max-width: 980px) {
  .woocommerce ul.products { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .single-product div.product { grid-template-columns: 1fr; }
  .single-product .woocommerce-tabs { grid-column: 1; }
}

@media (max-width: 620px) {
  .woocommerce-page main.site-main,
  .single-product main.site-main { width: min(calc(100% - 32px), 1320px); padding-top: 34px; }
  .post-type-archive-product .woocommerce-products-header { padding: 48px 24px; margin-bottom: 40px; }
  .woocommerce ul.products { grid-template-columns: 1fr; gap: 38px; }
  .single-product .product_title { font-size: clamp(40px,12vw,60px); }
  .single-product form.cart { flex-wrap: wrap; }
  .single-product .single_add_to_cart_button { flex: 1; }
}
