/* 10.8 Storefront — product page. Builds on tp8s.css (tokens, cards, buttons). Breakpoints 600 / 990 / 1280. */
body.tp8s-pdp-page #bwp-main > .page-title.bwp-title, body.tp8s-pdp-page #bwp-main > .breadcrumb-noheading { display: none !important; } /* the theme's banner and English breadcrumb */
body.tp8s-pdp-page .bwp-mobile_toolbar { display: none !important; } /* the sticky add-to-cart bar takes its place */

.tp8s-pdp .tp8s-crumbs { margin-bottom: 10px; }
.tp8s-pdp .tp8s-crumbs [aria-current] { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.tp8s-pmain { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }

/* Gallery */
.tp8s-gal { min-width: 0; }
.tp8s-gal-stage { position: relative; margin: 0 calc(var(--pad) * -1); }
.tp8s-gal-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; outline: none; }
.tp8s-gal-track::-webkit-scrollbar { display: none; }
.tp8s-slide { flex: 0 0 100%; margin: 0 !important; aspect-ratio: 1 / 1; display: grid; place-items: center; background: #fff; scroll-snap-align: center; overflow: hidden; cursor: zoom-in; }
.tp8s-gimg { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: contain; padding: 4%; transition: transform .25s ease; }
.tp8s-gal-zoom { position: absolute !important; bottom: 12px; inset-inline-end: 12px; width: 40px !important; height: 40px !important; border-radius: 50% !important; background: var(--soft) !important; display: grid !important; place-items: center; z-index: 2; }
.tp8s-gal-zoom .tp8s-i { width: 19px; height: 19px; }
.tp8s-gal-count { position: absolute; bottom: 20px; font-size: 12px; background: var(--soft); padding: 3px 10px; border-radius: 999px; z-index: 2; direction: ltr; pointer-events: none; }
/* direction: ltr keeps "1 / 5" in order, so place it with physical sides (opposite the zoom button). */
.tp8s[dir="rtl"] .tp8s-gal-count { right: 14px; } .tp8s[dir="ltr"] .tp8s-gal-count { left: 14px; }
.tp8s-gal .tp8s-badge { top: 12px; inset-inline-start: 12px; font-size: 12px; padding: 7px 11px; }
.tp8s-gal-nav { display: none !important; }
.tp8s-dots { display: flex; gap: 6px; justify-content: center; margin-top: 8px; }
.tp8s-dots i { width: 6px; height: 6px; border-radius: 3px; background: #d5d5d0; transition: width .2s, background .2s; }
.tp8s-dots i.is-on { width: 18px; background: var(--ink); }
.tp8s-thumbs { display: none; }

/* Buy box */
.tp8s-info { min-width: 0; }
.tp8s-brandline { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tp8s-brandname { font: 600 12px/1.3 system-ui, -apple-system, 'Segoe UI', sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.tp8s-brandline .tp8s-link { font-size: 12.5px; }
.tp8s-ptitle { font-size: 20px !important; font-weight: 600 !important; line-height: 1.45 !important; margin: 6px 0 8px !important; }
.tp8s-pprice { font-size: 21px; font-weight: 700; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.tp8s-pprice .woocommerce-Price-currencySymbol { font-size: .7em; font-weight: 400; color: var(--muted); }
.tp8s-pprice del { order: 2; color: var(--muted); font-weight: 400; font-size: .72em; }
.tp8s-pprice ins { text-decoration: none; background: none; color: var(--accent); }
.tp8s-stock { display: flex; align-items: center; gap: 9px; margin: 10px 0 0 !important; font-size: 13.5px; color: #2f6b3d; }
.tp8s-stock i { width: 8px; height: 8px; border-radius: 50%; background: #3d8a52; box-shadow: 0 0 0 4px #e0f0e4; flex: none; }
.tp8s-stock.is-low { color: #8a5d0c; } .tp8s-stock.is-low i { background: #d39a2c; box-shadow: 0 0 0 4px #fbefd6; }
.tp8s-stock.is-out { color: var(--accent); } .tp8s-stock.is-out i { background: var(--accent); box-shadow: 0 0 0 4px #f8e2dc; }
.tp8s-short { color: #454b47; font-size: 14px; line-height: 1.85; margin: 12px 0 16px; }
.tp8s-short p { margin: 0 0 6px; }
.tp8s-buy { margin: 0; }
.tp8s-buyrow { display: flex; gap: 10px; align-items: stretch; }
.tp8s-buyrow.is-out { margin-top: 14px; }
.tp8s-qty { display: flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; height: 50px; padding: 0 4px; flex: none; }
.tp8s-qty input { width: 34px !important; height: 40px !important; border: 0 !important; background: none !important; text-align: center; font: inherit; font-weight: 600; font-size: 15px; padding: 0 !important; margin: 0 !important; box-shadow: none !important; -moz-appearance: textfield; color: var(--ink); }
.tp8s-qty input::-webkit-outer-spin-button, .tp8s-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.tp8s-qbtn { width: 40px !important; height: 40px !important; border-radius: 50% !important; display: grid !important; place-items: center; }
.tp8s-qbtn:hover { background: var(--soft) !important; }
.tp8s-qbtn .tp8s-i { width: 17px; height: 17px; }
.tp8s-add { flex: 1; display: inline-flex !important; align-items: center; justify-content: center; gap: 8px; height: 50px !important; padding: 0 18px !important; border-radius: 999px !important; background: var(--ink) !important; color: #fff !important; font-size: 15px !important; font-weight: 600 !important; border: 0 !important; line-height: 1 !important; text-transform: none !important; letter-spacing: 0 !important; min-width: 0; }
.tp8s-add .tp8s-i { width: 19px; height: 19px; }
.tp8s-add:hover { background: #000 !important; }
.tp8s-add.is-loading { pointer-events: none; opacity: .85; }
.tp8s-add.is-done { background: var(--brand) !important; }
.tp8s-wishbig { position: relative; flex: none; width: 50px !important; height: 50px !important; border-radius: 50% !important; border: 1px solid var(--line) !important; background: #fff !important; font-size: 0 !important; color: var(--ink) !important; display: grid !important; place-items: center; padding: 0 !important; }
.tp8s-wishbig > * { display: none !important; }
.tp8s-wishbig::before { content: ''; width: 20px; height: 20px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.4A4.2 4.2 0 0 1 12 7.6a4.2 4.2 0 0 1 7.5 2.5c0 5.8-7.5 10.4-7.5 10.4z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.4A4.2 4.2 0 0 1 12 7.6a4.2 4.2 0 0 1 7.5 2.5c0 5.8-7.5 10.4-7.5 10.4z'/%3E%3C/svg%3E") center / contain no-repeat; }
.tp8s-wishbig.woosw-added, .tp8s-wishbig.woosw-btn-added { color: var(--accent) !important; border-color: #f0d3cb !important; }
.tp8s-wishbig.woosw-added::before, .tp8s-wishbig.woosw-btn-added::before { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.4A4.2 4.2 0 0 1 12 7.6a4.2 4.2 0 0 1 7.5 2.5c0 5.8-7.5 10.4-7.5 10.4z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20.5s-7.5-4.6-7.5-10.4A4.2 4.2 0 0 1 12 7.6a4.2 4.2 0 0 1 7.5 2.5c0 5.8-7.5 10.4-7.5 10.4z'/%3E%3C/svg%3E"); }
.tp8s-now { width: 100%; margin-top: 10px; height: 48px !important; border-radius: 999px !important; border: 1.5px solid var(--ink) !important; background: #fff !important; color: var(--ink) !important; font-size: 15px !important; font-weight: 600 !important; display: flex !important; align-items: center; justify-content: center; text-transform: none !important; letter-spacing: 0 !important; line-height: 1 !important; padding: 0 16px !important; }
.tp8s-now:hover { background: var(--soft) !important; }
.tp8s-buy-msg { margin: 10px 0 0; font-size: 13.5px; color: var(--accent); }
.tp8s-buy-msg.is-ok { color: #2f6b3d; }
/* WooCommerce's own form (variable products) */
.tp8s-buy-wc form.cart { margin: 0 !important; }
.tp8s-buy-wc table.variations { width: 100%; margin: 0 0 12px !important; border: 0 !important; }
.tp8s-buy-wc table.variations th, .tp8s-buy-wc table.variations td { border: 0 !important; padding: 4px 0 !important; display: block; text-align: start; }
.tp8s-buy-wc select { width: 100% !important; height: 46px; border: 1px solid var(--line) !important; border-radius: 12px !important; padding: 0 12px !important; background-color: #fff; font: inherit; }
.tp8s-buy-wc .single_add_to_cart_button { height: 50px !important; border-radius: 999px !important; background: var(--ink) !important; color: #fff !important; font-weight: 600 !important; padding: 0 28px !important; }

/* Trust and details */
.tp8s-trust { margin: 18px 0 0 !important; border: 1px solid var(--line); border-radius: 14px; }
.tp8s-trust li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; font-size: 13.5px; line-height: 1.65; }
.tp8s-trust li + li { border-top: 1px solid var(--line); }
.tp8s-trust .tp8s-i { width: 21px; height: 21px; margin-top: 1px; color: var(--brand); }
.tp8s-trust small { display: block; color: var(--muted); font-size: 12.5px; }
.tp8s-marks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.tp8s-marks img { width: 40px; height: 26px; object-fit: contain; border: 1px solid var(--line); border-radius: 5px; padding: 2px 4px; background: #fff; }
.tp8s-acc { margin-top: 18px; border-top: 1px solid var(--line); }
.tp8s-acc-item { border-bottom: 1px solid var(--line); }
.tp8s-acc-item > summary { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 4px 2px; font-size: 15px; font-weight: 500; cursor: pointer; list-style: none; }
.tp8s-acc-item > summary::-webkit-details-marker { display: none; }
.tp8s-acc-item > summary > span { flex: 1; }
.tp8s-acc-item > summary em { font-style: normal; color: var(--muted); font-size: 13px; font-weight: 400; }
.tp8s-acc-item[open] > summary .tp8s-chev { transform: rotate(180deg); }
.tp8s-acc-body { padding: 0 2px 16px; font-size: 14px; line-height: 1.85; color: #3f4541; }
.tp8s-acc-body p { margin: 0 0 8px; }
.tp8s-prose ul, .tp8s-prose ol { margin: 6px 0 10px !important; padding-inline-start: 20px !important; }
.tp8s-prose li { list-style: disc !important; margin: 0 0 4px; }
.tp8s-prose strong { color: var(--ink); }
.tp8s-prose img { max-width: 100%; height: auto; border-radius: 10px; }
.tp8s-reviews h2 { font-size: 15px !important; margin: 0 0 8px !important; }
.tp8s-reviews input[type=text], .tp8s-reviews input[type=email], .tp8s-reviews textarea { width: 100%; border: 1px solid var(--line) !important; border-radius: 10px !important; padding: 10px 12px !important; font: inherit; }
.tp8s-reviews .submit, .tp8s-reviews input[type=submit] { height: 46px; border-radius: 999px !important; background: var(--ink) !important; color: #fff !important; padding: 0 24px !important; border: 0 !important; }
.tp8s-sku { margin: 12px 0 0 !important; font-size: 12px; color: var(--muted); }

/* Sticky add-to-cart (phones and tablets) */
.tp8s-sticky { position: fixed; inset: auto 0 0 0; z-index: 9990; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(0,0,0,.08); padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 10px; transform: translateY(110%); transition: transform .25s ease; }
.tp8s-sticky[hidden] { display: flex; visibility: hidden; }
.tp8s-sticky.is-shown { transform: none; visibility: visible; }
.tp8s-sticky img { width: 44px !important; height: 44px !important; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; flex: none; }
.tp8s-sticky-tx { flex: 1; min-width: 0; line-height: 1.35; }
.tp8s-sticky-tx b { display: block; font-size: 15px; }
.tp8s-sticky-tx span { display: block; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tp8s-sticky .tp8s-add { flex: none; height: 46px !important; font-size: 14px !important; padding: 0 18px !important; }
html.tp8s-has-sticky body { padding-bottom: 76px; }
html.tp8s-has-sticky .back-top { transform: translateY(-74px); transition: transform .25s; } /* the theme's back-to-top button sits above the bar */

/* Lightbox */
.tp8s-lightbox { width: 100vw; height: 100vh; height: 100dvh; max-width: 100vw; max-height: 100vh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: #fff; }
.tp8s-lightbox::backdrop { background: rgba(0,0,0,.6); }
.tp8s-lightbox img { width: 100%; height: 100%; object-fit: contain; padding: 56px 12px; box-sizing: border-box; }
.tp8s-lb-close { position: absolute !important; top: 12px; inset-inline-end: 12px; width: 44px !important; height: 44px !important; border-radius: 50% !important; background: var(--soft, #f6f5f2) !important; display: grid !important; place-items: center; }
.tp8s-lb-nav { position: absolute !important; top: 50%; transform: translateY(-50%); width: 46px !important; height: 46px !important; border-radius: 50% !important; background: #fff !important; box-shadow: 0 2px 10px rgba(0,0,0,.12); display: grid !important; place-items: center; }
.tp8s-lb-nav.is-prev { inset-inline-start: 12px; } .tp8s-lb-nav.is-next { inset-inline-end: 12px; }
.tp8s-lb-count { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); font-size: 13px; background: #f6f5f2; padding: 4px 12px; border-radius: 999px; direction: ltr; }

/* ≤ 360 px: room for the add-to-cart label next to the quantity and the heart */
@media (max-width: 360px) {
	.tp8s-qbtn { width: 34px !important; height: 34px !important; }
	.tp8s-qty input { width: 26px !important; }
	.tp8s-add { padding: 0 10px !important; font-size: 14px !important; }
	.tp8s-buy .tp8s-add .tp8s-i { display: none; }
	.tp8s-buyrow { gap: 8px; }
}

/* ≥ 600 px */
@media (min-width: 600px) {
	.tp8s-gal-stage { margin: 0; }
	.tp8s-slide { border-radius: 14px; }
	.tp8s-dots { display: none; }
	.tp8s-thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; scrollbar-width: none; }
	.tp8s-thumb { flex: none; width: 72px !important; height: 72px !important; border: 1px solid var(--line) !important; border-radius: 10px !important; padding: 4px !important; background: #fff !important; }
	.tp8s-thumb img { width: 100%; height: 100%; object-fit: contain; }
	.tp8s-thumb.is-on { border: 2px solid var(--ink) !important; }
	.tp8s-ptitle { font-size: 23px !important; }
}

/* ≥ 990 px: two columns, buy box follows the scroll */
@media (min-width: 990px) {
	.tp8s-pmain { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 6px; }
	.tp8s-info { position: sticky; top: calc(var(--tp8s-hh, 0px) + 20px); }
	.tp8s-ptitle { font-size: 27px !important; }
	.tp8s-pprice { font-size: 25px; }
	.tp8s-short { font-size: 14.5px; }
	.tp8s-add { height: 54px !important; font-size: 16px !important; }
	.tp8s-qty { height: 54px; } .tp8s-wishbig { width: 54px !important; height: 54px !important; }
	.tp8s-now { height: 50px !important; }
	.tp8s-sticky { display: none !important; }
	html.tp8s-has-sticky body { padding-bottom: 0; }
}
@media (min-width: 990px) and (hover: hover) and (pointer: fine) {
	.tp8s-gal-nav { display: grid !important; place-items: center; position: absolute !important; top: 50%; transform: translateY(-50%); width: 44px !important; height: 44px !important; border-radius: 50% !important; background: rgba(255,255,255,.92) !important; box-shadow: 0 2px 10px rgba(0,0,0,.1); opacity: 0; transition: opacity .2s; z-index: 2; }
	.tp8s-gal-nav.is-prev { inset-inline-start: 12px; } .tp8s-gal-nav.is-next { inset-inline-end: 12px; }
	.tp8s-gal-stage:hover .tp8s-gal-nav { opacity: 1; }
	.tp8s-slide.is-zooming .tp8s-gimg { transform: scale(2); transform-origin: var(--zx, 50%) var(--zy, 50%); }
	.tp8s-slide.is-zooming { cursor: zoom-out; }
}
@media (prefers-reduced-motion: reduce) {
	.tp8s-gimg, .tp8s-sticky, .tp8s-dots i { transition: none !important; }
}
