/* Dreamsetup Product Specs v0.2.66 */

/*
 * BIURKA REGULOWANE — ukrywamy wyłącznie standardowy zakres ceny
 * WooCommerce znajdujący się nad wariantami.
 *
 * Dolna cena wariantu pozostaje bez zmian.
 */
.single-product.ds-product-category-desks .summary > .price {
	display: none !important;
}



.ds-product-specs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 5px;
	margin: 9px 24px 0;
	padding: 0;
}

.ds-product-spec {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 25px;
	padding: 0 9px;
	box-sizing: border-box;
	border: 1px solid #d5d7dc;
	border-radius: 4px;
	background: #f7f7f9;
	color: #4b515b;
	font-size: 10px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .35px;
	white-space: nowrap;
	text-transform: uppercase;
}



/* Katalog — cena standardowa nad promocyjną */
.woocommerce ul.products li.product .price .ds-catalog-price-standard,
.woocommerce-page ul.products li.product .price .ds-catalog-price-standard,
.single-product ul.products li.product .price .ds-catalog-price-standard {
	display: block !important;
	width: 100%;
	margin: 0;
	color: #8a8f98;
	font-size: 10px;
	line-height: 1.15;
	font-weight: 500;
}

.woocommerce ul.products li.product .price del.ds-catalog-price-standard,
.woocommerce-page ul.products li.product .price del.ds-catalog-price-standard,
.single-product ul.products li.product .price del.ds-catalog-price-standard {
	opacity: 1;
}

.woocommerce ul.products li.product .price .ds-catalog-price-sale,
.woocommerce-page ul.products li.product .price .ds-catalog-price-sale,
.single-product ul.products li.product .price .ds-catalog-price-sale {
	display: block !important;
	width: 100%;
	margin: 1px 0 0;
	color: #8b00ff;
	font-size: inherit;
	line-height: 1.25;
	font-weight: 700;
	text-decoration: none;
}

.woocommerce ul.products li.product .price .ds-catalog-price-sale .woocommerce-Price-amount,
.woocommerce-page ul.products li.product .price .ds-catalog-price-sale .woocommerce-Price-amount,
.single-product ul.products li.product .price .ds-catalog-price-sale .woocommerce-Price-amount {
	color: inherit;
}

/* Katalog — produkt bez promocji: cena regularna ma taką samą hierarchię
   wizualną jak cena promocyjna. Del z ceną przekreśloną pozostaje mały. */
.woocommerce ul.products li.product .price > .ds-catalog-price-standard:not(del),
.woocommerce-page ul.products li.product .price > .ds-catalog-price-standard:not(del),
.single-product ul.products li.product .price > .ds-catalog-price-standard:not(del) {
	display: block !important;
	width: 100%;
	margin: 0;
	color: #8b00ff;
	font-size: 22px;
	line-height: 1.25;
	font-weight: 700;
	text-decoration: none;
}

/*
 * SINGLE PRODUCT:
 * The JavaScript moves the block immediately after the real WooCommerce
 * product title. These margins only control visual spacing.
 */
.single-product .ds-product-specs {
	margin: 9px 0 0;
}

/*
 * Secondary product cards on a single-product page (recently viewed,
 * related products, etc.) use the same inner horizontal spacing as the
 * normal catalog cards. The main product specs above must remain flush
 * with the single-product title, so this is intentionally scoped to cards.
 */
.single-product li.product .ds-product-specs,
.single-product .wc-block-grid__product .ds-product-specs {
	margin: 9px 24px 0;
}

@media (max-width: 600px) {
	.ds-product-specs {
		gap: 4px;
		margin: 7px 16px 0;
	}

	.single-product .ds-product-specs {
		margin-top: 8px;
	}

	.single-product li.product .ds-product-specs,
	.single-product .wc-block-grid__product .ds-product-specs {
		margin: 8px 16px 0;
	}

	.ds-product-spec {
		height: 24px;
		padding: 0 8px;
		font-size: 9px;
	}
}





/* v0.2.29 — desk catalog features use the same information-block approach as PC cards. */
.woocommerce ul.products li.product .ds-product-specs.ds-desk-feature-list,
.woocommerce-page ul.products li.product .ds-product-specs.ds-desk-feature-list,
.single-product li.product .ds-product-specs.ds-desk-feature-list {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 10px 24px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.ds-desk-feature {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 8px 0 9px;
    border-bottom: 1px solid #e9e4ee;
    min-width: 0;
}
.ds-desk-feature:first-child { padding-top: 0; }
.ds-desk-feature:last-child { border-bottom: 0; padding-bottom: 2px; }
.ds-desk-feature__label {
    display: block;
    color: #777481;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.25;
    letter-spacing: .7px;
    text-transform: uppercase;
}
.ds-desk-feature__value {
    display: block;
    color: #17141a;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.woocommerce ul.products li.product:has(.ds-desk-feature-list) .price,
.woocommerce-page ul.products li.product:has(.ds-desk-feature-list) .price {
    margin-top: 8px !important;
    color: #111015 !important;
    font-size: 22px !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
}
@media (max-width: 767px) {
    .woocommerce ul.products li.product .ds-product-specs.ds-desk-feature-list,
    .woocommerce-page ul.products li.product .ds-product-specs.ds-desk-feature-list,
    .single-product li.product .ds-product-specs.ds-desk-feature-list {
        margin: 9px 16px 0 !important;
    }
    .ds-desk-feature { padding: 7px 0 8px; }
    .ds-desk-feature__label { font-size: 9px; }
    .ds-desk-feature__value { font-size: 13px; }
    .woocommerce ul.products li.product:has(.ds-desk-feature-list) .price,
    .woocommerce-page ul.products li.product:has(.ds-desk-feature-list) .price {
        margin-top: 7px !important;
        font-size: 20px !important;
    }
}

/* v0.2.30 — configurable desk card presentation. The product title is deliberately untouched. */
.woocommerce ul.products li.product .ds-product-specs.ds-desk-feature-list,
.woocommerce-page ul.products li.product .ds-product-specs.ds-desk-feature-list,
.single-product li.product .ds-product-specs.ds-desk-feature-list {
    margin-left: var(--ds-desk-card-gutter, 24px) !important;
    margin-right: var(--ds-desk-card-gutter, 24px) !important;
}
.ds-desk-feature { padding-top: var(--ds-desk-block-spacing, 8px); padding-bottom: calc(var(--ds-desk-block-spacing, 8px) + 1px); }
.ds-desk-feature__label { font-size: var(--ds-desk-label-size, 10px); }
.ds-desk-feature__value { font-size: var(--ds-desk-value-size, 14px); }
.ds-product-specs[data-show-labels="0"] .ds-desk-feature { padding-top: 5px; }
@media (max-width: 767px) {
  .woocommerce ul.products li.product .ds-product-specs.ds-desk-feature-list,
  .woocommerce-page ul.products li.product .ds-product-specs.ds-desk-feature-list,
  .single-product li.product .ds-product-specs.ds-desk-feature-list {
    margin-left: min(var(--ds-desk-card-gutter, 16px), 16px) !important;
    margin-right: min(var(--ds-desk-card-gutter, 16px), 16px) !important;
  }
}
/* Optional compact badge mode, scoped only to this plugin's desk specs. */
.woocommerce ul.products li.product .ds-product-specs:not(.ds-desk-feature-list) .ds-desk-feature,
.woocommerce-page ul.products li.product .ds-product-specs:not(.ds-desk-feature-list) .ds-desk-feature {
  display:inline-flex; flex-direction:column; gap:2px; padding:6px 9px; margin:0 4px 4px 0;
  border:1px solid #e4d0f7; border-radius:6px; background:#fbf7ff;
}
.woocommerce ul.products li.product .ds-product-specs:not(.ds-desk-feature-list) .ds-desk-feature__label,
.woocommerce-page ul.products li.product .ds-product-specs:not(.ds-desk-feature-list) .ds-desk-feature__label { letter-spacing:.3px; }

/* v0.2.32 — optional additional text under desk-card feature values. */
.ds-desk-feature__description {
	display: block;
	color: #777481;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.45;
	overflow-wrap: anywhere;
}
@media (max-width: 767px) {
	.ds-desk-feature__description { font-size: 12px; }
}


/* v0.2.34 — single product: render desk specifications as a stable vertical list.
 * The main product summary is not an li.product loop card, so it was missing
 * the desk-feature layout rules and the features collapsed into one row.
 */
.single-product .summary .ds-product-specs.ds-desk-feature-list {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 9px 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 0 !important;
    background: transparent !important;
}
.single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
@media (max-width: 767px) {
    .single-product .summary .ds-product-specs.ds-desk-feature-list {
        margin-top: 8px !important;
    }
}


/* v0.2.36 — single product: equal-size specification tiles in one row above title. */
.single-product .summary .ds-product-specs.ds-desk-feature-list {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
}
.single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 58px !important;
    box-sizing: border-box !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    border: 1px solid #e7e3eb !important;
    border-radius: 8px !important;
    background: #fff !important;
}
.single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature__label {
    display: block !important;
    margin: 0 !important;
    font-size: 9px !important;
    line-height: 1.25 !important;
    letter-spacing: .4px !important;
    text-transform: uppercase !important;
    color: #7b8190 !important;
}
.single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature__value {
    display: block !important;
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    overflow-wrap: anywhere !important;
    color: #18243a !important;
}
.single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature__description {
    margin: 0 !important;
    font-size: 10px !important;
    line-height: 1.3 !important;
    color: #7b8190 !important;
}
@media (max-width: 767px) {
    .single-product .summary .ds-product-specs.ds-desk-feature-list {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }
    .single-product .summary .ds-product-specs.ds-desk-feature-list .ds-desk-feature {
        padding: 9px 10px !important;
    }
}
@media (max-width: 380px) {
    .single-product .summary .ds-product-specs.ds-desk-feature-list {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* v0.2.66 — apply the label/value gap to the actual subgrid item; dynamic left-aligned label width retained.
 * A shared subgrid makes the value column start immediately after the widest
 * label in this product card. No fixed-width label column is used.
 */
body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 {
    display: grid !important;
    grid-template-columns: fit-content(44%) minmax(0, 1fr) !important;
    grid-auto-rows: min-content !important;
    column-gap: 19px !important;
    row-gap: 0 !important;
    align-items: start !important;
    min-width: 0 !important;
    margin: 10px var(--ds-desk-card-gutter, 22px) 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature {
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-template-columns: subgrid !important;
    grid-template-rows: auto auto !important;
    /* IMPORTANT: the legacy .ds-desk-feature { gap: 3px } rule
       targets this element, so set the horizontal gap here directly.
       Changing only the parent grid's gap does not override this local gap. */
    column-gap: 19px !important;
    row-gap: 0 !important;
    align-items: baseline !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 7px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e5e5e9 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature:first-child,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature:first-child {
    padding-top: 0 !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature:last-child,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature:last-child {
    padding-bottom: 3px !important;
    border-bottom: 0 !important;
}

/* Flatten the inner wrapper so the label, value and description share the row grid. */
body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main {
    display: contents !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__label,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__label {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #777780 !important;
    font-size: var(--ds-desk-label-size, 10px) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    letter-spacing: .3px !important;
    text-align: left !important;
    text-transform: uppercase !important;
    overflow-wrap: anywhere !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__value,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__value {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #202124 !important;
    font-size: var(--ds-desk-value-size, 14px) !important;
    font-weight: 650 !important;
    line-height: 1.4 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    color: #9296a0 !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-align: left !important;
}

/* Browsers without subgrid keep the compact inline pattern, with natural per-row label width. */
@supports not (grid-template-columns: subgrid) {
    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature {
        display: block !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main {
        display: grid !important;
        grid-template-columns: max-content minmax(0, 1fr) !important;
        column-gap: 19px !important;
        align-items: baseline !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__label,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__label {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__value,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__value {
        grid-column: 2 !important;
        grid-row: 1 !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description {
        margin-left: 0 !important;
    }
}

@media (max-width: 767px) {
    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 {
        grid-template-columns: fit-content(48%) minmax(0, 1fr) !important;
        column-gap: 16px !important;
        margin-top: 8px !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature {
        column-gap: 16px !important;
        row-gap: 0 !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description,
    body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__description {
        font-size: 10px !important;
    }

    @supports not (grid-template-columns: subgrid) {
        body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main,
        body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263 .ds-desk-feature__main {
            column-gap: 16px !important;
        }
    }
}

/* When labels are disabled in settings, values and descriptions use the full card width. */
body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"],
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"] {
    grid-template-columns: minmax(0, 1fr) !important;
}

body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"] .ds-desk-feature__value,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"] .ds-desk-feature__value,
body:not(.single-product) ul.products li.product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"] .ds-desk-feature__description,
body:not(.single-product) .wc-block-grid__product .ds-product-specs.ds-desk-feature-inline-v0263[data-show-labels="0"] .ds-desk-feature__description {
    grid-column: 1 !important;
}
