/* Berelian Product Studio storefront: gallery, variant cards, price table. Uses the theme's gold palette. */
.bps-gallery { --g-border: var(--wp--preset--color--stone-border, #DAD7D2); --g-gold: var(--wp--preset--color--accent-1, #B68235); display: flex; flex-direction: column; gap: .75rem; }
.bps-gallery__stage { position: relative; aspect-ratio: 4 / 3; background: var(--wp--preset--color--stone-surface, #EDEBE7); border: 1px solid var(--g-border); border-radius: var(--berelian-radius, .4rem); overflow: hidden; display: grid; place-items: center; }
.bps-gallery__zoom { display: block; width: 100%; height: 100%; cursor: zoom-in; }
.bps-gallery__img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bps-gallery__video { width: 100%; height: 100%; background: #111; display: block; }
.bps-gallery__thumbs { display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
.bps-gallery__thumb { flex: 0 0 72px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: var(--berelian-radius-sm, .25rem); background: var(--wp--preset--color--stone-surface, #EDEBE7); cursor: pointer; overflow: hidden; display: grid; place-items: center; }
.bps-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bps-gallery__thumb.is-active { border-color: var(--g-gold); }
.bps-gallery__thumb.is-video { background: #2b2620; }
.bps-gallery__play { color: #fff; font-size: 1.25rem; }
.bps-gallery__thumb:focus-visible { outline: 3px solid var(--g-gold); outline-offset: 1px; }

/* variant cards */
.bps-variant-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; margin: .5rem 0 1rem; }
.bps-variant-card { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "img title" "img price"; gap: .15rem .6rem; align-items: center; text-align: start; padding: .55rem .65rem; background: var(--wp--preset--color--base, #fff); border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); border-radius: var(--berelian-radius, .4rem); cursor: pointer; font: inherit; color: inherit; transition: border-color .15s, box-shadow .15s; position: relative; }
.bps-variant-card:hover { border-color: var(--wp--preset--color--accent-1, #B68235); }
.bps-variant-card.is-active { border-color: var(--wp--preset--color--accent-1, #B68235); box-shadow: 0 0 0 2px var(--wp--preset--color--accent-1, #B68235) inset; }
.bps-variant-card:focus-visible { outline: 3px solid var(--wp--preset--color--accent-1, #B68235); outline-offset: 2px; }
.bps-variant-card__img { grid-area: img; width: 44px; height: 44px; object-fit: cover; border-radius: var(--berelian-radius-sm, .25rem); }
.bps-variant-card__title { grid-area: title; font-weight: 700; font-size: .9rem; line-height: 1.5; }
.bps-variant-card__price { grid-area: price; font-size: .85rem; color: var(--wp--preset--color--accent-1-deep, #7D5411); }
.bps-variant-card__price small { color: var(--wp--preset--color--stone-muted, #6b665e); }
.bps-variant-card.is-out { opacity: .6; }
.bps-variant-card__stock { position: absolute; inset-block-start: .3rem; inset-inline-end: .4rem; font-size: .7rem; color: #a4161a; }
/* Single-attribute products: the cards replace the dropdown (still in the DOM for WooCommerce). */
.variations_form.bps-has-cards table.variations { position: absolute !important; inset-inline-start: 0 !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; margin: -1px !important; padding: 0 !important; border: 0 !important; }
.variations_form.bps-has-cards { position: relative; }

.bps-unit { font-size: .8em; color: var(--wp--preset--color--stone-muted, #6b665e); font-weight: 400; }

/* price table */
.bps-price-table { margin-block: 2rem; }
.bps-price-table__title { font-size: 1.15rem; margin-bottom: .75rem; }
.bps-price-table table { width: 100%; border-collapse: collapse; background: var(--wp--preset--color--base, #fff); border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); border-radius: var(--berelian-radius, .4rem); overflow: hidden; }
.bps-price-table th, .bps-price-table td { padding: .65rem .8rem; text-align: start; border-bottom: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); }
.bps-price-table th { background: var(--wp--preset--color--stone-surface, #EDEBE7); font-size: .85rem; }
.bps-price-table tbody tr { cursor: pointer; }
.bps-price-table tbody tr:hover, .bps-price-table tbody tr.is-active { background: #fbf5ea; }
.bps-price-table__note { font-size: .8rem; color: var(--wp--preset--color--stone-muted, #6b665e); margin-top: .5rem; }

@media (width <= 600px) {
	.bps-variant-cards { grid-template-columns: 1fr 1fr; }
	.bps-gallery__thumb { flex-basis: 60px; height: 60px; }
	.bps-price-table th, .bps-price-table td { padding: .5rem; font-size: .85rem; }
}

/* The theme lays the add-to-cart form out as a row: give the cards their own full-width line on top. */
form.variations_form:has(.bps-variant-cards) { flex-wrap: wrap; }
.bps-variant-cards { flex: 0 0 100%; width: 100%; order: -1; }

/* Prices: old price struck through, new price bold, whole-number discount badge. */
.price del, .wc-block-components-product-price del, .bps-variant-card__price del, .bps-price-table del, del .woocommerce-Price-amount, .wc-block-components-product-price__regular {
	text-decoration: line-through !important; text-decoration-thickness: 1.5px; opacity: .55; font-weight: 400; font-size: .9em;
}
.price ins, .bps-variant-card__price ins, .bps-price-table ins, .wc-block-components-product-price__value.is-discounted { text-decoration: none; font-weight: 700; background: none; }
.bps-off { display: inline-block; margin-inline-start: .35em; padding: 0 .45em; border-radius: 999px; background: #b3261e; color: #fff; font-size: .72rem; font-weight: 700; line-height: 1.6; vertical-align: middle; white-space: nowrap; }
.bps-variant-card__price del { display: block; }
/* Screen-reader-only price labels ("قیمت قبلی") must never show. */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.wc-block-components-product-price[hidden] { display: none !important; }
/* With variant cards the selected price is already shown on the card: hide WooCommerce's second copy under the cards. */
form.variations_form:has(.bps-variant-cards) .woocommerce-variation-price { display: none; }

/* Paid options and add-on products */
.bps-opts { flex: 0 0 100%; width: 100%; display: flex; flex-direction: column; gap: .8rem; margin: .25rem 0 1rem; }
.bps-opt-group { border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); border-radius: var(--berelian-radius, .4rem); padding: .6rem .8rem .7rem; margin: 0; background: var(--wp--preset--color--base, #fff); }
.bps-opt-group legend { font-weight: 700; padding: 0 .3rem; font-size: .95rem; }
.bps-req { color: #b3261e; }
.bps-opt-choices { display: flex; flex-wrap: wrap; gap: .45rem; }
.bps-opt-choice { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .7rem; border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); border-radius: 999px; cursor: pointer; background: #fffdf9; font-size: .9rem; }
.bps-opt-choice:has(input:checked) { border-color: var(--wp--preset--color--accent-1, #B68235); background: #fbf5ea; box-shadow: 0 0 0 1px var(--wp--preset--color--accent-1, #B68235) inset; }
.bps-opt-choice small { color: var(--wp--preset--color--accent-1-deep, #7D5411); font-size: .78rem; }
.bps-opt-choice input { accent-color: var(--wp--preset--color--accent-1, #B68235); margin: 0; }
.bps-addon { border: 1px dashed var(--wp--preset--color--accent-1, #B68235); border-radius: var(--berelian-radius, .4rem); padding: .7rem .8rem; background: #fffaf2; }
.bps-addon:has(.bps-addon__toggle input:checked) { border-style: solid; }
.bps-addon__toggle { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
.bps-addon__toggle input { width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--accent-1, #B68235); margin: 0; }
.bps-addon__toggle img { width: 48px; height: 48px; object-fit: cover; border-radius: var(--berelian-radius-sm, .25rem); }
.bps-addon__toggle span { display: flex; flex-direction: column; }
.bps-addon__toggle small { color: var(--wp--preset--color--stone-muted, #6b665e); font-size: .8rem; }
.bps-addon__body { margin-top: .7rem; display: flex; flex-direction: column; gap: .6rem; }
.bps-addon__body[hidden] { display: none; }
.bps-addon__dims { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .5rem; }
.bps-addon__dims label { display: flex; flex-direction: column; gap: .25rem; font-size: .85rem; font-weight: 600; }
.bps-addon__dims input { min-height: 42px; border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); border-radius: var(--berelian-radius-sm, .25rem); padding: .4rem .6rem; font: inherit; width: 100%; box-sizing: border-box; }
.bps-addon__sum { margin: 0; font-size: .9rem; color: var(--wp--preset--color--accent-1-deep, #7D5411); font-weight: 600; }
.bps-addon__sum.is-error { color: #b3261e; font-weight: 500; }
.bps-opts__total { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: .7rem .9rem; border-radius: var(--berelian-radius, .4rem); background: var(--wp--preset--color--stone-surface, #EDEBE7); font-weight: 700; }
.bps-opts__total small { font-weight: 400; color: var(--wp--preset--color--stone-muted, #6b665e); display: block; }
.bps-qty-locked { display: inline-block; min-width: 2rem; text-align: center; }
/* option lines under cart items (classic cart, checkout, order pages) */
dl.variation { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; font-size: .85rem; }
dl.variation dt, dl.variation dd { margin: 0; float: none; }
dl.variation dd p { margin: 0; }
/* Never split a price from "تومان"; in narrow variant boxes the old price sits on its own line. */
.woocommerce-Price-amount, .woocommerce-Price-amount bdi { white-space: nowrap; }
.bps-variant-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .3em; }
.bps-variant-card__price del { flex: 0 0 100%; }
.price > del, .wp-block-woocommerce-product-price del { margin-inline-end: .35em; }

/* gallery: variant caption, choose button, arrows; thumbs of variant photos get a small mark */
.bps-gallery__cap { position: absolute; inset-inline: .6rem; inset-block-end: .6rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .4rem .6rem; border-radius: var(--berelian-radius-sm, .25rem); background: rgb(255 255 255 / 92%); box-shadow: 0 2px 10px rgb(0 0 0 / 12%); font-size: .85rem; }
.bps-gallery__cap span { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bps-gallery__pick { border: 0; border-radius: 999px; padding: .3rem .8rem; background: var(--wp--preset--color--accent-1-deep, #7D5411); color: #fff; font: inherit; font-size: .8rem; cursor: pointer; white-space: nowrap; }
.bps-gallery__chosen { color: var(--wp--preset--color--accent-1-deep, #7D5411); font-size: .8rem; white-space: nowrap; }
.bps-gallery__nav { position: absolute; inset-block-start: 50%; transform: translateY(-50%); width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 0; background: rgb(255 255 255 / 85%); box-shadow: 0 1px 6px rgb(0 0 0 / 15%); font-size: 1.5rem; line-height: 1; cursor: pointer; color: #333; }
.bps-gallery__nav.is-prev { inset-inline-start: .5rem; }
.bps-gallery__nav.is-next { inset-inline-end: .5rem; }
.bps-gallery__stage:has(.bps-gallery__cap) .bps-gallery__nav { inset-block-start: calc(50% - 1.2rem); }

/* Whole photos, never cropped: the stage has a steady height and every image or video fits inside it. */
.bps-gallery__stage { aspect-ratio: auto; height: clamp(320px, 72vh, 720px); display: flex; align-items: center; justify-content: center; }
@media (max-width: 781px) { .bps-gallery__stage { height: clamp(280px, 62vh, 560px); } }
.bps-gallery__zoom { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 0; flex: 1 1 auto; }
.bps-gallery__img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; aspect-ratio: auto; }
.bps-gallery__video { width: 100%; height: 100%; object-fit: contain; }
.bps-gallery__thumb img { object-fit: contain; }

/* Videos under the gallery */
.bps-gallery__videos { display: flex; flex-direction: column; gap: .75rem; margin-top: .5rem; }
.bps-gallery__videos-title { font-size: 1rem; margin: 0; }
.bps-gallery__videoitem { margin: 0; background: #111; border-radius: var(--berelian-radius, .4rem); overflow: hidden; }
.bps-gallery__videoitem video { display: block; width: 100%; height: auto; max-height: 72vh; object-fit: contain; background: #111; }
.bps-gallery__videoitem figcaption { padding: .35rem .6rem; font-size: .8rem; color: #eee; background: #222; }
.bps-gallery__stage:has(.bps-gallery__cap) { padding-block-end: 3.1rem; box-sizing: border-box; }
.bps-gallery__cap { inset-block-end: .45rem; }

/* ── Buy box: one clear layout for simple and variable products ──
   variant boxes → options → note → quantity + add to cart (full width, easy to tap). */
form.cart .single_variation_wrap { flex: 0 0 100%; width: 100%; }
form.cart .woocommerce-variation-add-to-cart,
.berelian-add-to-cart form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem; width: 100%; }
form.cart .bps-opts { order: 1; flex: 0 0 100%; margin: 0; }
form.cart .berelian-custom-note { order: 2; flex: 0 0 100% !important; margin: 0 !important; gap: .3rem !important; }
form.cart .berelian-custom-note label { color: inherit !important; font-weight: 600; font-size: .9rem !important; }
form.cart .berelian-custom-note textarea { min-height: 2.75rem !important; border-radius: var(--berelian-radius-sm, .25rem); }
form.cart .quantity { order: 3; margin: 0 !important; display: flex; }
form.cart .berelian-qty-unit { order: 3; align-self: center; margin: 0 !important; color: var(--wp--preset--color--stone-muted, #6b665e); }
form.cart .quantity .qty { width: 5.5rem !important; min-block-size: 3.1rem !important; font-size: 1.05rem; }
form.cart .single_add_to_cart_button { order: 4; flex: 1 1 12rem; min-block-size: 3.1rem !important; font-size: 1.05rem !important; font-weight: 700 !important;
	background: var(--wp--preset--color--accent-1-deep, #7D5411) !important; color: #fff !important; border-color: var(--wp--preset--color--accent-1-deep, #7D5411) !important; border-radius: var(--berelian-radius-sm, .25rem) !important; }
form.cart .single_add_to_cart_button:hover { background: #5f3f0b !important; }
form.cart .single_add_to_cart_button.disabled { opacity: .55; }
/* No empty gap when a variant has no description and its duplicate price is hidden. */
form.cart .woocommerce-variation-description:empty { display: none; }
form.cart .woocommerce-variation.single_variation { margin: 0; }
form.cart .woocommerce-variation-availability:empty { display: none; }
.bps-variant-cards { margin-bottom: .25rem; }
/* Variant price line: readable sizes */
.bps-variant-card__price .bps-card-amt { font-weight: 700; font-size: .95rem; }
.bps-variant-card .bps-off { font-size: .68rem; }

@media (max-width: 600px) {
	.bps-opt-choices { flex-direction: column; }
	.bps-opt-choice { width: 100%; box-sizing: border-box; justify-content: space-between; padding: .65rem .8rem; border-radius: var(--berelian-radius, .4rem); min-height: 3rem; }
	.bps-opt-choice small { margin-inline-start: auto; }
	.bps-variant-cards { grid-template-columns: 1fr 1fr; gap: .5rem; }
	.bps-variant-card { padding: .5rem; grid-template-columns: 1fr; grid-template-areas: "title" "price"; }
	.bps-variant-card__img { display: none; }
	form.cart .single_add_to_cart_button { flex-basis: 100%; }
	form.cart .quantity { flex: 1 1 auto; }
	form.cart .quantity .qty { width: 100% !important; }
	.bps-addon__dims { grid-template-columns: 1fr 1fr 1fr; }
}
.bps-gallery__videos.is-moved { margin-block: 1.5rem; }
/* The theme wraps the unit label and the button in <p>: order those wrappers too. */
form.cart .woocommerce-variation-add-to-cart > p, .berelian-add-to-cart form.cart:not(.variations_form) > p { order: 4; margin: 0; display: flex; align-items: center; }
form.cart .woocommerce-variation-add-to-cart > p:has(.berelian-qty-unit), .berelian-add-to-cart form.cart > p:has(.berelian-qty-unit) { order: 3; }
form.cart .woocommerce-variation-add-to-cart > p:has(.single_add_to_cart_button), .berelian-add-to-cart form.cart > p:has(.single_add_to_cart_button) { flex: 1 1 12rem; }
form.cart p > .single_add_to_cart_button { width: 100%; }
form.cart p:empty { display: none; }
@media (max-width: 600px) {
	form.cart .woocommerce-variation-add-to-cart > p:has(.single_add_to_cart_button), .berelian-add-to-cart form.cart > p:has(.single_add_to_cart_button) { flex-basis: 100%; }
	form.cart .quantity { flex: 1 1 0; }
}
form.cart .berelian-custom-note br, form.cart .bps-opts br { display: none; }
form.cart .berelian-custom-note textarea { box-sizing: border-box; width: 100% !important; margin: 0; padding: .55rem .7rem; font: inherit; border: 1px solid var(--wp--preset--color--stone-border, #DAD7D2); }
@media (max-width: 600px) {
	form.cart .berelian-qty-unit { display: none; }
	form.cart .quantity { flex: 0 0 5.5rem; }
	form.cart .woocommerce-variation-add-to-cart > p:has(.single_add_to_cart_button), .berelian-add-to-cart form.cart > p:has(.single_add_to_cart_button) { flex: 1 1 0; }
}
.bps-variant-h1 { color: var(--wp--preset--color--accent-1-deep, #7D5411); }
.bps-pt-link { color: inherit; text-decoration: none; border-bottom: 1px dashed currentColor; }
.bps-pt-link:hover { color: var(--wp--preset--color--accent-1-deep, #7D5411); }
/* Arrows point outward on any text direction: previous on the right (›), next on the left (‹), as in RTL reading. */
.bps-gallery__nav.is-prev { right: .5rem !important; left: auto !important; inset-inline-start: auto; }
.bps-gallery__nav.is-next { left: .5rem !important; right: auto !important; inset-inline-end: auto; }
.bps-gallery__nav { direction: ltr; unicode-bidi: isolate; }
