/* =========================================================
   DEKORBUY — SINGLE PRODUCT PAGE
   Scoped to body.db-single-product
   ========================================================= */


/* ── Przelewy24 installment widget — hidden until configured ── */
p24-installment {
	display: none !important;
}

/* ── PayPal button — hidden on single product page ── */
.ppc-button-wrapper {
	display: none !important;
}

/* ── 1. Page bg & Astra reset: handled by .db-page-bg + .db-fullwidth in style.css ── */

/* Hide Astra sale badge (product-specific) */
body.db-single-product .ast-on-card-button {
	display: none !important;
}

/* Extra bottom padding for product page */
body.db-single-product .site-content,
body.db-single-product .content-area {
	padding-bottom: 32px !important;
}


/* ── 2b. WooCommerce notices (above product grid) ── */

body.db-single-product .woocommerce-notices-wrapper {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px;
}


/* ── 3. Breadcrumbs — base in style.css, page-specific overrides ── */

.db-sp-breadcrumbs {
	max-width: 1120px;
	margin: 0 auto;
	padding: 20px 24px 0;
}

.db-sp-breadcrumbs .sep {
	opacity: 0.4;
}


/* ── 4. Main product layout: 2-column grid ── */

body.db-single-product .ast-woocommerce-container {
	max-width: 1120px !important;
	margin: 0 auto !important;
	padding: 0 24px !important;
}

/* Override Astra/WooCommerce float-based layout with grid */
body.db-single-product div.product,
.woocommerce.single-product.db-single-product div.product {
	display: block !important;
	max-width: 100% !important;
	margin: 24px 0 0 !important;
	padding: 0 !important;
	float: none !important;
	background: transparent;
	border: none;
}

/* Card wrapper: gallery + summary */
.db-sp-card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 48px;
	row-gap: 12px;
	align-items: start;
	padding: 24px 32px;
	background: var(--db-white);
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius, 12px);
	box-sizing: border-box;
}

/* Cancel Astra's float:left + width:48% on gallery */
body.db-single-product div.product div.images,
body.db-single-product div.product .woocommerce-product-gallery,
.woocommerce.single-product div.product div.images,
.woocommerce div.product div.images {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	grid-column: 1 !important;
	grid-row: 1 !important;
}

/* Cancel Astra's float:right + width:48% on summary */
body.db-single-product div.product div.summary,
body.db-single-product div.product .summary.entry-summary,
.woocommerce.single-product div.product div.summary {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	clear: none !important;
	grid-column: 2 !important;
	grid-row: 1 !important;
	padding-top: 4px;
}

/* Tabs — inside the card, span full width */
body.db-single-product .db-sp-card .woocommerce-tabs {
	grid-column: 1 / -1;
}

/* Reco sections — outside the card, spaced */
body.db-single-product div.product .db-reco-section {
	margin-top: 20px;
}

/* Sale badge — position over gallery */
body.db-single-product .db-sp-card > .onsale,
body.db-single-product div.product > .onsale {
	grid-column: 1 !important;
	grid-row: 1 !important;
	align-self: start !important;
	justify-self: start !important;
	margin: 16px 0 0 16px;
	z-index: 5;
}


/* ── 5. Gallery styling ── */

body.db-single-product .woocommerce-product-gallery {
	position: relative;
}

/* Force images visible — WC/Flexslider can set opacity on various elements.
   Exclude .zoomImg so WC zoom overlay stays hidden until hover. */
body.db-single-product .woocommerce-product-gallery img:not(.zoomImg),
body.db-single-product .woocommerce-product-gallery a,
body.db-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
	opacity: 1 !important;
	visibility: visible !important;
}

/* Before Flexslider inits, hide all but first gallery image.
   Flexslider wraps __wrapper inside .flex-viewport, breaking this
   direct-child selector so all slides become visible for the slider. */
body.db-single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
	display: none;
}

/* Gallery viewport — no extra border now that parent card has it */
body.db-single-product .woocommerce-product-gallery .flex-viewport {
	border-radius: var(--db-radius-md);
	overflow: hidden;
	border: none;
}

/* Fallback: when no Flexslider (pre-init) */
body.db-single-product .woocommerce-product-gallery:not(.flexslider) > .woocommerce-product-gallery__wrapper {
	border-radius: var(--db-radius-md);
	overflow: hidden;
	border: none;
}

body.db-single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper img {
	border-radius: 0;
}

body.db-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	height: auto;
	display: block !important;
}

/* Thumbnails row */
body.db-single-product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex !important;
	gap: 10px;
	margin-top: 12px;
	padding: 0;
	list-style: none;
}

body.db-single-product .woocommerce-product-gallery .flex-control-thumbs li {
	width: 72px !important;
	height: 72px;
	border-radius: var(--db-radius-md);
	overflow: hidden;
	border: 2px solid var(--db-border);
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
	flex-shrink: 0;
}

body.db-single-product .woocommerce-product-gallery .flex-control-thumbs li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 1;
}

body.db-single-product .woocommerce-product-gallery .flex-control-thumbs li:hover {
	border-color: var(--db-primary);
}

body.db-single-product .woocommerce-product-gallery .flex-control-thumbs li .flex-active {
	border-color: var(--db-gold);
}

body.db-single-product .woocommerce-product-gallery .flex-control-thumbs li:has(.flex-active) {
	border-color: var(--db-gold);
	box-shadow: 0 0 0 1px var(--db-gold);
}

/* Sale badge */
body.db-single-product .onsale {
	position: absolute !important;
	top: 16px !important;
	left: 16px !important;
	right: auto !important;
	background: var(--db-gold) !important;
	color: var(--db-primary-dark) !important;
	font: 800 11px/1 var(--db-font-body) !important;
	letter-spacing: 1.5px !important;
	padding: 6px 12px !important;
	border-radius: 4px !important;
	min-height: auto !important;
	min-width: auto !important;
	line-height: 1 !important;
	z-index: 2;
}

/* Photoswipe trigger icon */
body.db-single-product .woocommerce-product-gallery__trigger {
	top: 16px !important;
	right: 16px !important;
	background: var(--db-white) !important;
	border-radius: 50% !important;
	width: 36px !important;
	height: 36px !important;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}


/* ── 6. Summary: Category label ── */

.db-sp-category {
	font: 700 11px/1 var(--db-font-body);
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--db-gold);
	margin-bottom: 8px;
}

.db-sp-category a {
	color: var(--db-gold);
	text-decoration: none;
	transition: color 0.2s;
}

.db-sp-category a:hover {
	color: var(--db-primary);
}

/* ── 11b2. Badge row (brand + autorska) ── */

.db-sp-badges {
	display: flex;
	align-items: center;
	gap: var(--db-space-sm);
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.db-sp-badge-brand,
.db-sp-badge-autorska {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 14px;
	font: 600 10px/1 var(--db-font-body);
	letter-spacing: 1.5px;
	text-transform: uppercase;
	border-radius: 20px;
}

/* Brand badge */
.db-sp-badge-brand {
	color: var(--db-primary);
	background: var(--db-surface);
	border: 1px solid var(--db-border);
	text-decoration: none !important;
	transition: border-color 0.2s, background-color 0.2s;
}

.db-sp-badge-brand:hover {
	border-color: var(--db-gold);
	background: #fdf6e3;
}

.db-sp-badge-brand__logo {
	width: 18px;
	height: 18px;
	object-fit: contain;
	border-radius: 50%;
}

/* Autorska Kolekcja badge */
.db-sp-badge-autorska {
	color: var(--db-primary);
	background: linear-gradient(135deg, #fdf6e3, #f5ecd0);
	border: 1px solid var(--db-gold);
	cursor: default;
}

.db-sp-badge-autorska svg {
	stroke: var(--db-gold);
	flex-shrink: 0;
}

.db-sp-badge-autorska__tooltip {
	position: absolute;
	left: 0;
	top: calc(100% + 10px);
	width: 280px;
	padding: 12px 16px;
	background: var(--db-primary);
	color: #fff;
	font: 400 12px/1.5 var(--db-font-body);
	letter-spacing: 0;
	text-transform: none;
	border-radius: var(--db-radius-md);
	box-shadow: 0 4px 20px rgba(27, 58, 107, 0.25);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s, visibility 0.25s;
	z-index: 100;
	pointer-events: none;
}

.db-sp-badge-autorska__tooltip::before {
	content: '';
	position: absolute;
	bottom: 100%;
	left: 24px;
	border: 6px solid transparent;
	border-bottom-color: var(--db-primary);
}

.db-sp-badge-autorska:hover .db-sp-badge-autorska__tooltip,
.db-sp-badge-autorska:focus .db-sp-badge-autorska__tooltip {
	opacity: 1;
	visibility: visible;
}


/* ── 7. Summary: Title ── */

body.db-single-product .product_title,
body.db-single-product h1.product_title.entry-title {
	font: 600 1.85rem/1.2 var(--db-font-display) !important;
	color: var(--db-primary) !important;
	margin-bottom: 8px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}


/* ── 8. Title decoration ── */

.db-sp-title-decoration {
	margin-bottom: 20px;
}

.db-sp-title-decoration .line {
	display: block;
	width: 40px;
	height: 2px;
	background: var(--db-gold);
	border-radius: 1px;
}


/* ── 9. Price ── */

body.db-single-product .summary .price {
	font: 600 1.65rem/1 var(--db-font-display) !important;
	color: var(--db-primary) !important;
	margin-bottom: 20px !important;
}

body.db-single-product .summary .price del {
	color: var(--db-text-light) !important;
	font-size: 1.1rem !important;
	font-weight: 400 !important;
	opacity: 0.6;
	margin-right: 10px;
}

body.db-single-product .summary .price ins {
	text-decoration: none;
	font-weight: 600;
}

.db-sp-save-badge {
	display: inline-block;
	font: 700 10px/1 var(--db-font-body);
	letter-spacing: 1px;
	background: rgba(var(--db-gold-rgb), 0.15);
	color: var(--db-gold);
	padding: 4px 8px;
	border-radius: 4px;
	margin-left: 10px;
	vertical-align: middle;
}


/* ── 10. Short description ── */

body.db-single-product .summary .woocommerce-product-details__short-description {
	font: 400 14.5px/1.75 var(--db-font-body);
	color: var(--db-text-light);
	margin-bottom: 24px;
}

body.db-single-product .summary .woocommerce-product-details__short-description ul {
	margin-top: 10px;
	padding-left: 0;
	list-style: none;
}

body.db-single-product .summary .woocommerce-product-details__short-description li {
	margin-bottom: 6px;
	padding-left: 18px;
	position: relative;
}

body.db-single-product .summary .woocommerce-product-details__short-description li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 8px;
	width: 6px;
	height: 6px;
	background: var(--db-gold);
	border-radius: 50%;
}


/* ── 11. Divider with dots ── */

.db-sp-divider {
	display: flex;
	align-items: center;
	gap: var(--db-space-sm);
	margin: 22px 0;
}

.db-sp-divider .line {
	flex: 1;
	height: 1px;
	background: var(--db-border);
}

.db-sp-divider .dots {
	font-size: 6px;
	letter-spacing: 4px;
	color: var(--db-gold);
	opacity: 0.5;
}


/* ── 11b. Low stock notice ── */

.db-low-stock {
	display: flex;
	align-items: center;
	gap: var(--db-space-sm);
	padding: 10px 16px;
	margin-bottom: 16px;
	background: #FFF8E6;
	border: 1px solid #E8C84A;
	border-radius: var(--db-radius-md);
	color: #8B6914;
	font-family: var(--db-font-body);
	font-size: 13px;
	font-weight: 500;
}

.db-low-stock svg {
	flex-shrink: 0;
	color: #D4A017;
}

.db-low-stock strong {
	font-weight: 700;
}

/* Out of stock badge */
body.db-single-product p.stock.out-of-stock {
	display: flex !important;
	align-items: center;
	gap: var(--db-space-sm);
	padding: 10px 16px;
	margin-bottom: 16px;
	background: #FEF2F2;
	border: 1px solid #FECACA;
	border-radius: var(--db-radius-md);
	color: var(--db-error);
	font-family: var(--db-font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

body.db-single-product p.stock.out-of-stock svg {
	flex-shrink: 0;
	color: var(--db-error);
}

/* ── 12. Add to cart form ── */

body.db-single-product .summary form.cart {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px !important;
}

body.db-single-product .summary form.cart .quantity {
	display: flex;
	align-items: center;
	border: 1.5px solid var(--db-border);
	border-radius: var(--db-radius-md);
	overflow: hidden;
	background: var(--db-white);
}

body.db-single-product .summary form.cart .quantity input.qty {
	width: 48px;
	height: 46px;
	border: none;
	border-left: 1.5px solid var(--db-border);
	border-right: 1.5px solid var(--db-border);
	text-align: center;
	font: 600 15px var(--db-font-body);
	color: var(--db-text);
	background: var(--db-white);
	-moz-appearance: textfield;
	padding: 0;
	margin: 0;
}

body.db-single-product .summary form.cart .quantity input.qty::-webkit-outer-spin-button,
body.db-single-product .summary form.cart .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Quantity +/- buttons (injected by JS) */
body.db-single-product .summary .db-qty-btn {
	width: 40px;
	height: 46px;
	border: none;
	background: var(--db-surface);
	font-size: 18px;
	color: var(--db-primary);
	cursor: pointer;
	transition: background 0.15s;
	font-family: var(--db-font-body);
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}

body.db-single-product .summary .db-qty-btn:hover {
	background: var(--db-border);
}

/* Add to cart button */
body.db-single-product .summary form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 54px;
	height: auto;
	background: var(--db-gold) !important;
	border: 2px solid var(--db-gold) !important;
	color: var(--db-primary-dark) !important;
	font: 700 13px/1 var(--db-font-body) !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	border-radius: var(--db-radius-md) !important;
	cursor: pointer;
	transition: all 0.25s;
	padding: 16px 32px;
	white-space: nowrap;
	overflow: visible !important;
	text-overflow: clip !important;
}

body.db-single-product .summary form.cart .single_add_to_cart_button:hover {
	background: var(--db-gold-hover) !important;
	border-color: var(--db-gold-hover) !important;
	box-shadow: 0 6px 20px rgba(200, 169, 81, 0.35);
	transform: translateY(-1px);
}


/* ── 13. Product meta ── */

body.db-single-product .product_meta {
	font: 400 13px/1.8 var(--db-font-body);
	color: var(--db-text-light);
	border-top: none !important;
	padding-top: 0 !important;
}

body.db-single-product .product_meta a {
	color: var(--db-primary);
	text-decoration: none;
	border-bottom: 1px dotted var(--db-border);
	transition: all 0.2s;
}

body.db-single-product .product_meta a:hover {
	color: var(--db-gold);
	border-bottom-color: var(--db-gold);
}


/* ── 14. Trust icons — overrides shared .db-trust base for horizontal layout ── */

.db-sp-trust {
	flex-direction: row;
	flex-wrap: wrap;
	gap: var(--db-space-md);
	margin-top: 8px;
	background: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

.db-sp-trust .db-trust__item {
	gap: 10px;
	font: 400 12px/1.35 var(--db-font-body);
	color: var(--db-text-light);
}

.db-sp-trust .db-trust__icon {
	width: 36px;
	height: 36px;
	border: 1px solid var(--db-border);
}

.db-sp-trust .db-trust__icon svg {
	stroke-width: 1.8;
}


/* ── 15. Full-width divider ── */

body.db-single-product .db-sp-divider--full {
	margin: 12px 0 0;
}

/* ── 16. Tabs ── */

body.db-single-product .woocommerce-tabs {
	padding: 8px 0 0;
}

body.db-single-product .woocommerce-tabs ul.tabs {
	display: flex !important;
	padding: 0 !important;
	margin: 0 0 24px !important;
	list-style: none !important;
	background: transparent !important;
	border: none !important;
	border-bottom: 2px solid var(--db-border) !important;
	border-radius: 0 !important;
	overflow: visible !important;
	gap: 0;
}

body.db-single-product .woocommerce-tabs ul.tabs::before,
body.db-single-product .woocommerce-tabs ul.tabs::after {
	display: none !important;
}

body.db-single-product .woocommerce-tabs ul.tabs li {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 0 -2px !important;
	border-radius: 0 !important;
	cursor: pointer;
	flex: 1;
}

body.db-single-product .woocommerce-tabs ul.tabs li.active {
	border-bottom: 3px solid var(--db-primary) !important;
}

body.db-single-product .woocommerce-tabs ul.tabs li::before,
body.db-single-product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
}

body.db-single-product .woocommerce-tabs ul.tabs li a {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	height: 100% !important;
	padding: 16px 24px !important;
	border: none !important;
	font-family: var(--db-font-body) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	line-height: 1 !important;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--db-text-light) !important;
	text-decoration: none !important;
	background: transparent !important;
	cursor: pointer;
	text-align: center;
	transition: color 0.2s;
}

body.db-single-product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--db-primary) !important;
}

body.db-single-product .woocommerce-tabs ul.tabs li a:focus,
body.db-single-product .woocommerce-tabs ul.tabs li a:active {
	outline: none !important;
	box-shadow: none !important;
}

body.db-single-product .woocommerce-tabs ul.tabs li.active a {
	color: var(--db-primary) !important;
	font-weight: 700 !important;
}

body.db-single-product .woocommerce-tabs .panel {
	padding: 16px 0 4px !important;
	font: 400 15px/1.85 var(--db-font-body);
	color: var(--db-text);
	margin: 0 !important;
}

body.db-single-product .woocommerce-tabs .panel h2 {
	font: 700 1.05rem/1.3 var(--db-font-body) !important;
	color: var(--db-primary) !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	margin-bottom: 14px !important;
}

body.db-single-product .woocommerce-tabs .panel h3,
body.db-single-product .woocommerce-tabs .panel h4 {
	font: 700 0.95rem/1.3 var(--db-font-body) !important;
	color: var(--db-primary) !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	margin: 28px 0 12px !important;
}

body.db-single-product .woocommerce-tabs .panel h3:first-child {
	margin-top: 0 !important;
}

body.db-single-product .woocommerce-tabs .panel p {
	margin-bottom: 14px;
}

body.db-single-product .woocommerce-tabs .panel ul {
	padding-left: 0;
	list-style: none;
	margin-bottom: 20px;
}

body.db-single-product .woocommerce-tabs .panel ul li {
	margin-bottom: 6px;
	padding-left: 18px;
	position: relative;
	font-size: 14.5px;
}

body.db-single-product .woocommerce-tabs .panel ul li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 9px;
	width: 6px;
	height: 6px;
	background: var(--db-gold);
	border-radius: 50%;
}

/* Info table */
body.db-single-product .woocommerce-tabs .panel table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--db-border);
}

body.db-single-product .woocommerce-tabs .panel table.shop_attributes th,
body.db-single-product .woocommerce-tabs .panel table.shop_attributes td {
	padding: 12px 16px !important;
	text-align: left;
	border: 1px solid var(--db-border) !important;
	font-size: 14px;
	background: none !important;
}

body.db-single-product .woocommerce-tabs .panel table.shop_attributes th {
	font-weight: 600;
	color: var(--db-primary);
	width: 35%;
	background: rgba(245, 247, 250, 0.6) !important;
}

body.db-single-product .woocommerce-tabs .panel table.shop_attributes td p {
	margin: 0;
}

body.db-single-product .woocommerce-tabs .panel table.shop_attributes tr:nth-child(even) td,
body.db-single-product .woocommerce-tabs .panel table.shop_attributes tr:nth-child(even) th {
	background: transparent !important;
}

/* Product meta (SKU, categories, tags, brand) in additional info tab */

.db-sp-meta {
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--db-border);
}

.db-sp-meta__row {
	display: flex;
	gap: 12px;
	padding: 8px 0;
	font-size: 13.5px;
	line-height: 1.6;
	border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.db-sp-meta__row:last-child {
	border-bottom: none;
}

.db-sp-meta__label {
	flex-shrink: 0;
	width: 90px;
	font-weight: 600;
	color: var(--db-primary);
	font-family: var(--db-font-body);
}

.db-sp-meta__value {
	color: var(--db-text-light);
}

.db-sp-meta__value a {
	color: var(--db-text-light);
	text-decoration: none;
	transition: color 0.2s;
}

.db-sp-meta__value a:hover {
	color: var(--db-primary);
}

/* Care instructions below attributes table */
.db-sp-care {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--db-border);
}

.db-sp-care h3 {
	font: 600 1.1rem/1.3 var(--db-font-display) !important;
	color: var(--db-primary) !important;
	margin: 0 0 12px !important;
}

.db-sp-care p {
	font: 400 14.5px/1.75 var(--db-font-body);
	color: var(--db-text-light);
}


/* ── 15b. Out of stock badge in product loops (reco sections) ── */

.woocommerce ul.products li.product .ast-shop-product-out-of-stock,
.woocommerce-page ul.products li.product .ast-shop-product-out-of-stock {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	left: auto !important;
	bottom: auto !important;
	z-index: 2;
	background: rgba(127, 29, 29, 0.88) !important;
	color: var(--db-white) !important;
	font: 700 10px/1 var(--db-font-body) !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	text-align: center !important;
	padding: 5px 10px !important;
	border-radius: 4px !important;
	transition: none !important;
	width: auto !important;
}

/* "Powiadom o dostępności" — inline-flex wrap inside standard .button */
.db-notify-wrap {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	vertical-align: middle;
}
.db-notify-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}
.db-notify-wrap > span {
	text-align: left;
}

/* ── 16. Recommendation sections (base reco styles in style.css 12c) ── */

/* Sequential section spacing (single-product stacks multiple reco sections) */
.db-reco-section + .db-reco-section {
	padding: 24px 32px;
}

.db-reco-section:last-of-type {
	padding-bottom: 24px;
}

/* Single-product reco overrides — flex column layout + add-to-cart button */
.db-reco-section ul.products li.product {
	overflow: visible !important;
	display: flex !important;
	flex-direction: column !important;
	padding-bottom: 0 !important;
}

/* Card content — high specificity to beat global style.css (.woocommerce ul.products li.product) */
.woocommerce .db-reco-section ul.products li.product .astra-shop-summary-wrap {
	padding: 14px 16px 16px !important;
	flex: 1;
	display: flex !important;
	overflow: visible !important;
	flex-direction: column !important;
	text-align: left !important;
}

.woocommerce .db-reco-section ul.products li.product .astra-shop-summary-wrap > * {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.woocommerce .db-reco-section ul.products li.product .ast-woo-product-category {
	position: relative !important;
	font: 700 10px/1 var(--db-font-body) !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	color: var(--db-gold) !important;
	padding: 0 !important;
	margin: 0 0 6px !important;
	display: block !important;
	overflow: visible !important;
	opacity: 1 !important;
}

.woocommerce .db-reco-section ul.products li.product .woocommerce-loop-product__title {
	font: 500 0.95rem/1.35 var(--db-font-display) !important;
	color: var(--db-primary) !important;
	text-transform: none !important;
	padding: 0 !important;
	margin: 0 0 8px !important;
}

.woocommerce .db-reco-section ul.products li.product .price {
	font: 700 1rem/1.2 var(--db-font-body) !important;
	color: var(--db-primary) !important;
	padding: 0 !important;
	margin: 0 0 4px !important;
	display: flex !important;
	align-items: baseline !important;
	gap: 6px !important;
	flex-wrap: wrap !important;
}

.woocommerce .db-reco-section ul.products li.product .price ins,
.woocommerce .db-reco-section ul.products li.product .price .amount {
	font: 700 1rem/1.2 var(--db-font-body) !important;
	color: var(--db-primary) !important;
	padding: 0 !important;
	text-decoration: none !important;
}

.woocommerce .db-reco-section ul.products li.product .price del,
.woocommerce .db-reco-section ul.products li.product .price del .amount {
	color: var(--db-text-light) !important;
	font-size: 0.8rem !important;
	font-weight: 400 !important;
	opacity: 0.65;
}

/* Add-to-cart button — outlined style matching shop cards */
.woocommerce .db-reco-section ul.products li.product .button,
.woocommerce .db-reco-section ul.products li.product .add_to_cart_button {
	background: transparent !important;
	color: var(--db-primary) !important;
	border: 1.5px solid var(--db-primary) !important;
	font: 700 11px/1 var(--db-font-body) !important;
	letter-spacing: 1.5px !important;
	text-transform: uppercase !important;
	border-radius: var(--db-radius-sm) !important;
	padding: 10px 16px !important;
	margin: auto 0 0 !important;
	display: block !important;
	text-align: center !important;
	width: 100% !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
}

.woocommerce .db-reco-section ul.products li.product .button:hover,
.woocommerce .db-reco-section ul.products li.product .add_to_cart_button:hover {
	background: var(--db-primary) !important;
	color: var(--db-white) !important;
	border-color: var(--db-primary) !important;
}

/* Hide Astra add-to-cart overlay on reco cards */
.woocommerce .db-reco-section ul.products li.product .ast-on-card-button {
	display: none !important;
}

/* Sale badge on reco cards */
.woocommerce .db-reco-section ul.products li.product .onsale {
	position: absolute !important;
	top: 10px !important;
	left: 10px !important;
	right: auto !important;
	background: var(--db-gold) !important;
	color: var(--db-primary-dark) !important;
	font: 800 10px/1 var(--db-font-body) !important;
	letter-spacing: 1.5px !important;
	padding: 5px 10px !important;
	border-radius: 4px !important;
	z-index: 2;
	min-width: unset !important;
	min-height: unset !important;
	width: auto !important;
	height: auto !important;
}


/* ── 17. Responsive ── */

@media (max-width: 768px) {
	body.db-single-product div.product,
	.woocommerce.single-product.db-single-product div.product {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
	}

	body.db-single-product div.product div.images,
	body.db-single-product div.product .woocommerce-product-gallery {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

	body.db-single-product div.product div.summary,
	body.db-single-product div.product .summary.entry-summary {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

	body.db-single-product div.product .woocommerce-tabs {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

	body.db-single-product div.product .db-reco-section {
		grid-column: 1 !important;
	}

	body.db-single-product div.product > .onsale {
		grid-row: auto !important;
	}

	/* Add-to-cart form: stack vertically on mobile */
	body.db-single-product .summary form.cart {
		flex-direction: column !important;
		gap: 10px !important;
	}

	body.db-single-product .summary form.cart .quantity {
		width: 100%;
		justify-content: center;
	}

	body.db-single-product .summary form.cart .single_add_to_cart_button {
		width: 100% !important;
		min-height: 56px !important;
		padding: 18px 24px !important;
		font-size: 14px !important;
		white-space: normal !important;
		text-align: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}

	/* Recommendations: horizontal scroll carousel on mobile */
	.db-reco-section ul.products {
		display: flex !important;
		overflow-x: auto !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
		gap: 12px !important;
		padding-bottom: 4px;
	}

	.db-reco-section ul.products::-webkit-scrollbar {
		display: none;
	}

	.db-reco-section ul.products li.product {
		flex: 0 0 calc((100% - 12px) / 1.5) !important;
		width: calc((100% - 12px) / 1.5) !important;
		scroll-snap-align: start;
		margin: 0 !important;
	}

	.db-sp-trust {
		flex-wrap: wrap;
	}
}

@media (max-width: 480px) {
	body.db-single-product .summary .db-qty-btn {
		width: 48px;
		height: 48px;
		font-size: 20px;
	}

	body.db-single-product .summary form.cart .quantity input.qty {
		width: 56px;
		height: 48px;
		font-size: 16px;
	}

	.db-reco-section {
		padding: 16px !important;
	}

	.db-sp-breadcrumbs {
		padding: 12px 16px 0;
	}

	body.db-single-product div.product {
		padding: 0 16px;
	}
}
