/*
 * WooCommerce on a dark theme. Loads only on shop pages (see inc/woocommerce.php), on top of
 * WooCommerce's own layout CSS. Printful products use the same product templates, so they
 * pick this up too.
 */

.shop { padding-top: var(--wp--preset--spacing--40, 2rem); }

.woocommerce-breadcrumb { margin: 0 0 1.5rem !important; color: var(--pt-muted) !important; font-size: 0.875rem !important; }
.woocommerce-breadcrumb a { color: var(--pt-muted) !important; }
.woocommerce-products-header__title { font-family: var(--pt-display); font-weight: 700; font-size: var(--wp--preset--font-size--xx-large, 3rem); margin: 0 0 1rem; }

/* Sorting and result count */
.woocommerce .woocommerce-result-count { color: var(--pt-muted); }
.woocommerce .woocommerce-ordering select { width: auto; }

/* Product grid */
.woocommerce ul.products { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); margin: 0 0 2rem; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important;
	display: flex; flex-direction: column;
	padding: 0 0 1.25rem; overflow: hidden;
	background: var(--pt-surface); border: 1px solid var(--pt-line); border-radius: var(--pt-radius);
}
.woocommerce ul.products li.product a img { margin: 0 0 1rem; aspect-ratio: 1; object-fit: cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
	padding: 0 1.25rem !important; font-family: var(--pt-display); font-weight: 700; font-size: 1.2rem !important; color: var(--pt-text);
}
.woocommerce ul.products li.product .price { padding: 0 1.25rem; }
.woocommerce ul.products li.product .button { margin: auto 1.25rem 0; }
.woocommerce ul.products li.product .star-rating { margin-left: 1.25rem; }

/* Prices */
.woocommerce div.product p.price, .woocommerce div.product span.price,
.woocommerce ul.products li.product .price { color: var(--pt-lilac) !important; font-weight: 700; }
.woocommerce .price del { color: var(--pt-muted); opacity: 0.8; }
.woocommerce .price ins { text-decoration: none; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	min-height: 48px; padding: 0.8rem 1.5rem; border-radius: var(--pt-radius);
	font-weight: 700; line-height: 1.2;
	/* Same purple gradient as the rest of the site (see "Buttons" in main.css). */
	background-color: #7a3ad8;
	background-image: var(--pt-btn-sheen), var(--pt-btn-grad);
	background-size: 250% 100%, 200% 100%;
	background-position: 140% 0, 0% 0;
	background-repeat: no-repeat;
	color: var(--pt-white);
	text-shadow: 0 1px 2px rgb(0 0 0 / 0.25);
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.25), 0 4px 14px rgb(74 43 196 / 0.3);
	transition: background-position 0.7s ease, box-shadow 0.3s ease, transform 0.15s ease, filter 0.3s ease;
}
.woocommerce :is(a.button, button.button, input.button, #respond input#submit):is(:hover, :focus-visible) {
	background-color: #7a3ad8;
	background-image: var(--pt-btn-sheen), var(--pt-btn-grad);
	background-position: -40% 0, 100% 0;
	color: var(--pt-white);
	box-shadow: var(--pt-btn-glow);
	filter: brightness(1.1) saturate(1.1);
}
.woocommerce :is(a.button, button.button, input.button, #respond input#submit):active {
	transform: scale(0.97);
	box-shadow: var(--pt-btn-glow-strong);
	filter: brightness(1.2) saturate(1.15);
}
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { background: var(--pt-raised); color: var(--pt-muted); }
.woocommerce a.added_to_cart { display: block; padding: 0.5rem 1.25rem 0; color: var(--pt-accent); }

/* Sale badge */
.woocommerce span.onsale {
	min-width: 0; min-height: 0; padding: 0.3rem 0.7rem; line-height: 1.3; border-radius: 99px;
	background: var(--pt-lilac); color: var(--pt-base); font-weight: 700; top: 0.75rem; left: 0.75rem;
}

/* Single product */
.woocommerce div.product .product_title { font-family: var(--pt-display); font-weight: 700; font-size: var(--wp--preset--font-size--xx-large, 2.75rem); line-height: 1.1; }
.woocommerce div.product .woocommerce-product-gallery img { border-radius: var(--pt-radius); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: stretch; }
.woocommerce div.product form.cart .button { float: none; }
.woocommerce div.product form.cart table.variations { width: 100%; }
.woocommerce .quantity .qty { width: 5rem; min-height: 48px; text-align: center; }
.woocommerce div.product .product_meta { margin-top: 1.5rem; color: var(--pt-muted); font-size: 0.875rem; }
.woocommerce div.product .product_meta a { color: var(--pt-muted); }

.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 2.5rem 0 0; border-bottom: 1px solid var(--pt-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 0.9rem 1.1rem; color: var(--pt-muted); font-weight: 700; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border-bottom-color: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--pt-text); box-shadow: inset 0 -2px 0 var(--pt-lilac); }
.woocommerce div.product .woocommerce-tabs .panel { padding-top: 1.5rem; }

.woocommerce .star-rating, .woocommerce p.stars a { color: var(--pt-lilac); }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--pt-line); border-radius: var(--pt-radius); }

.related.products > h2, .upsells.products > h2 { font-family: var(--pt-display); font-weight: 700; margin-top: 3rem; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	background: var(--pt-surface) !important; color: var(--pt-text) !important;
	border-top-color: var(--pt-accent) !important; border-radius: 0 0 var(--pt-radius) var(--pt-radius);
}
.woocommerce-error { border-top-color: #ff6b8b !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--pt-accent) !important; }

/* Tables (classic cart, account orders) */
.woocommerce table.shop_table { border-color: var(--pt-line); border-radius: var(--pt-radius); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--pt-line) !important; }

/* Forms */
.woocommerce form .form-row .input-text, .woocommerce form .form-row select,
.woocommerce-page form .form-row .input-text, .woocommerce-page form .form-row select { background: var(--pt-surface); color: var(--pt-text); border-color: var(--pt-line); }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon { border-color: var(--pt-line) !important; border-radius: var(--pt-radius) !important; }

/* Account */
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation a { display: block; padding: 0.7rem 0; border-bottom: 1px solid var(--pt-line); color: var(--pt-text); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--pt-lilac); }

/* Block-based cart and checkout */
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--pt-surface) !important; color: var(--pt-text) !important; border-color: var(--pt-line) !important;
}
.wc-block-components-text-input label, .wc-block-components-combobox label { color: var(--pt-muted) !important; }
.wc-block-components-totals-wrapper, .wc-block-components-order-summary, .wc-block-checkout__sidebar { border-color: var(--pt-line) !important; }
.wc-block-components-button:not(.is-link) { border-radius: var(--pt-radius); }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-color: var(--pt-line) !important; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: 0.4rem; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	min-width: 44px; padding: 0.7rem; border: 1px solid var(--pt-line); border-radius: var(--pt-radius); color: var(--pt-text);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--pt-btn-grad); background-size: 200% 100%; color: var(--pt-white); }
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--pt-surface); color: var(--pt-white); box-shadow: var(--pt-btn-glow); }

/* =====================================================================================
   Shop pages (views/shop.twig + woocommerce/content-product.php)
   Banner with sparks and a shimmering title, a ticker of product names, "Shop by
   collection" tiles, a sticky glass toolbar, and product cards where the second photo fades
   in, a quick-add bar slides up (tap a size to add it), and the photo flies into the cart.
   ===================================================================================== */

.shop-hero {
	position: relative; isolation: isolate; overflow: hidden;
	display: grid; place-items: center; min-height: clamp(340px, 40vw, 500px);
	padding: 4rem var(--pt-gutter) 4.5rem; text-align: center;
	background: var(--shop-banner) center / cover no-repeat, #1a0714;
}
.shop-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(ellipse 55% 70% at 50% 50%, rgb(10 3 12 / 0.82), rgb(18 5 20 / 0.5) 70%, rgb(18 5 20 / 0.35)),
		linear-gradient(to bottom, transparent 60%, var(--pt-base));
}
.shop-hero__inner { position: relative; z-index: 1; max-width: 760px; }
.shop-hero__eyebrow { margin: 0 0 0.8rem; color: var(--pt-lilac); font: 700 0.8rem/1 var(--pt-body); letter-spacing: 0.34em; text-transform: uppercase; }
.shop-hero__eyebrow::before, .shop-hero__eyebrow::after { content: "✦"; margin: 0 0.9em; font-size: 0.75em; letter-spacing: 0; }
.shop-hero__eyebrow a { display: inline-flex; align-items: center; gap: 0.5rem; color: inherit; text-decoration: none; }
.shop-hero__eyebrow a .pt-icon { width: 15px; height: 15px; rotate: 180deg; transition: translate 0.3s ease; }
.shop-hero__eyebrow a:hover { color: #fff; }
.shop-hero__eyebrow a:hover .pt-icon { translate: -4px 0; }
.shop-hero__eyebrow:has(a)::before, .shop-hero__eyebrow:has(a)::after { content: none; }
/* The title shimmers, like light catching foil. */
.shop-hero__title {
	margin: 0; font: 700 clamp(2.8rem, 8vw, 5.6rem)/1 var(--pt-banner) !important; text-transform: uppercase; letter-spacing: 0.06em;
	background: linear-gradient(100deg, var(--pt-text) 0 38%, #fff 45%, #d9b8ff 50%, #fff 55%, var(--pt-text) 62% 100%) 100% 0 / 300% 100% no-repeat;
	-webkit-background-clip: text; background-clip: text; color: transparent;
	filter: drop-shadow(0 3px 18px rgb(0 0 0 / 0.75)) drop-shadow(0 0 30px rgb(190 115 251 / 0.3));
	animation: pt-sweep 6s ease-in-out 0.6s infinite;
}
.shop-hero__title::after {
	content: "✦"; display: block; width: min(300px, 70%); margin: 1.1rem auto 0;
	font: 400 0.9rem/1 var(--pt-body); color: var(--pt-lilac); -webkit-text-fill-color: var(--pt-lilac);
	background: linear-gradient(90deg, transparent, #3d5bd8 15%, var(--pt-accent-deep) 44%, transparent 46% 54%, var(--pt-accent-deep) 56%, #3d5bd8 85%, transparent) center / 100% 1px no-repeat;
}
.shop-hero__intro { margin: 1.1rem auto 0; max-width: 44ch; color: #eadfce; font: 500 clamp(1.1rem, 2vw, 1.35rem)/1.5 var(--pt-display); font-style: italic; text-shadow: 0 2px 14px rgb(0 0 0 / 0.8); }

/* Ticker of product names. */
.shop-ticker {
	position: relative; overflow: hidden; padding: 0.95rem 0;
	border-block: 1px solid transparent;
	border-image: linear-gradient(90deg, transparent, var(--pt-accent-deep), transparent) 1;
	background: linear-gradient(90deg, rgb(61 91 216 / 0.08), rgb(190 115 251 / 0.12), rgb(218 112 214 / 0.08));
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.shop-ticker__track { display: flex; align-items: center; gap: 1.6rem; width: max-content; animation: pt-marquee 45s linear infinite; }
.shop-ticker:hover .shop-ticker__track { animation-play-state: paused; }
.shop-ticker span { font: 700 0.95rem/1 var(--pt-banner); letter-spacing: 0.12em; text-transform: uppercase; color: #eadfce; white-space: nowrap; }
.shop-ticker i { font-style: normal; color: var(--pt-lilac); text-shadow: 0 0 10px rgb(190 115 251 / 0.9); }
@keyframes pt-marquee { to { translate: -50% 0; } }

.shop-wrap { max-width: calc(var(--pt-wide) + 2 * var(--pt-gutter)); margin: 0 auto; padding: 0 var(--pt-gutter) var(--wp--preset--spacing--60, 5rem); }

/* Shop by collection. */
.shop-collections { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 1.5rem; margin-top: 3rem; }
.shop-tile {
	position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end;
	min-height: clamp(220px, 26vw, 320px); padding: 1.75rem; border-radius: 20px; text-decoration: none; color: var(--pt-text);
	background: #1c050d; box-shadow: 0 0 0 1px rgb(201 163 245 / 0.2), 0 20px 46px rgb(0 0 0 / 0.5);
	transition: transform 0.5s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s ease;
}
.shop-tile__img { position: absolute; inset: 0; z-index: -2; background: center / cover no-repeat; transition: scale 1.4s cubic-bezier(.2,.7,.2,1), filter 0.6s ease; filter: saturate(0.9) brightness(0.8); }
.shop-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(20deg, rgb(10 3 12 / 0.92), rgb(10 3 12 / 0.35) 55%, transparent); }
.shop-tile::after { /* gradient edge that lights up */
	content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none;
	background: conic-gradient(from var(--pt-angle, 0deg), #3d5bd8, var(--pt-accent-deep), var(--pt-accent), #3d5bd8);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
	opacity: 0; transition: opacity 0.4s ease;
}
@property --pt-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes pt-angle { to { --pt-angle: 360deg; } }
.shop-tile__text { display: grid; gap: 0.35rem; }
.shop-tile__count { color: var(--pt-lilac); font: 700 0.72rem/1 var(--pt-body); letter-spacing: 0.24em; text-transform: uppercase; }
.shop-tile__name { font: 700 clamp(1.7rem, 3.2vw, 2.4rem)/1.05 var(--pt-banner); text-transform: uppercase; letter-spacing: 0.04em; text-shadow: 0 2px 16px rgb(0 0 0 / 0.8); transition: letter-spacing 0.5s ease; }
.shop-tile__cta { display: inline-flex; align-items: center; gap: 0.45rem; margin-top: 0.3rem; color: #fff; font: 700 0.78rem/1 var(--pt-body); letter-spacing: 0.18em; text-transform: uppercase; }
.shop-tile__cta .pt-icon { width: 17px; height: 17px; transition: translate 0.35s cubic-bezier(.3,1.6,.5,1); }
.shop-tile:is(:hover, :focus-visible) { outline: none; transform: translateY(-5px); box-shadow: 0 0 40px rgb(190 115 251 / 0.3), 0 28px 60px rgb(0 0 0 / 0.6); }
.shop-tile:is(:hover, :focus-visible)::after { opacity: 1; animation: pt-angle 3s linear infinite; }
.shop-tile:is(:hover, :focus-visible) .shop-tile__img { scale: 1.08; filter: saturate(1.1) brightness(0.95); }
.shop-tile:is(:hover, :focus-visible) .shop-tile__name { letter-spacing: 0.08em; }
.shop-tile:is(:hover, :focus-visible) .shop-tile__cta .pt-icon { translate: 6px 0; }

/* Sticky toolbar: collections on the left, count and sort on the right. */
.shop-toolbar {
	position: sticky; top: calc(var(--pt-header-h) + var(--wp-admin--admin-bar--height, 0px) + 0.6rem); z-index: 40;
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	margin: 2.75rem 0 2rem; padding: 0.55rem 0.55rem 0.55rem 0.7rem; border-radius: 99px;
	background: rgb(16 5 20 / 0.86); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.22), 0 16px 36px rgb(0 0 0 / 0.5);
}
.shop-chips { display: flex; gap: 0.45rem; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.shop-chips::-webkit-scrollbar { display: none; }
.shop-chip {
	flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 1.05rem; border-radius: 99px;
	white-space: nowrap; text-decoration: none; color: var(--pt-text);
	font: 700 0.76rem/1 var(--pt-body); letter-spacing: 0.1em; text-transform: uppercase;
	box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.28);
	transition: box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease;
}
.shop-chip:is(:hover, :focus-visible) { outline: none; color: #fff; background: rgb(190 115 251 / 0.14); box-shadow: inset 0 0 0 1px var(--pt-lilac), 0 0 16px rgb(190 115 251 / 0.4); }
.shop-chip.is-current { color: #fff; background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 16px rgb(190 115 251 / 0.45); }
.shop-chip:active { scale: 0.95; }
.shop-toolbar__right { display: flex; align-items: center; gap: 1rem; flex: none; }
.shop-toolbar .woocommerce-result-count { margin: 0 !important; float: none !important; color: var(--pt-muted); font-size: 0.85rem; white-space: nowrap; }
.shop-toolbar .woocommerce-ordering { margin: 0 !important; float: none !important; }
.shop-toolbar .woocommerce-ordering select {
	width: auto; min-height: 40px; padding: 0 2.4rem 0 1rem; border-radius: 99px; cursor: pointer;
	color: var(--pt-text); font: 700 0.78rem/1 var(--pt-body); letter-spacing: 0.06em;
	border: 1px solid rgb(201 163 245 / 0.3);
	-webkit-appearance: none; appearance: none;
	background: rgb(255 255 255 / 0.04) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23c9a3f5' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") right 1rem center no-repeat;
}
.shop-toolbar .woocommerce-ordering select:focus { outline: none; border-color: var(--pt-lilac); box-shadow: 0 0 0 3px rgb(190 115 251 / 0.25); }
.shop-toolbar .woocommerce-ordering select option { background: #1a0714; color: var(--pt-text); }

/* The grid. */
.shop-grid .woocommerce-info { border-radius: 14px; }
.woocommerce ul.products:has(> .shop-card) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.25rem 1.75rem; }
@media (max-width: 1000px) { .woocommerce ul.products:has(> .shop-card) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; } }

/* A product card. */
.woocommerce ul.products li.shop-card {
	--mx: 50%; --my: 0%;
	position: relative; isolation: isolate; overflow: visible; padding: 0; border: 0; border-radius: 18px;
	background: linear-gradient(170deg, rgb(40 14 34 / 0.92), rgb(16 4 12 / 0.96));
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.14), 0 18px 40px rgb(0 0 0 / 0.45);
	transition: transform 0.45s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s ease, opacity 0.7s ease var(--pt-delay, 0s), translate 0.7s cubic-bezier(.2,.7,.2,1) var(--pt-delay, 0s);
}
.woocommerce ul.products li.shop-card::after { /* light that follows the pointer */
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; border-radius: inherit;
	background: radial-gradient(320px circle at var(--mx) var(--my), rgb(190 115 251 / 0.16), transparent 62%);
	opacity: 0; transition: opacity 0.4s ease;
}
ul.products.is-armed li.shop-card:not(.is-in) { opacity: 0; translate: 0 26px; }

.shop-card__media { position: relative; z-index: 2; }
.shop-card__imglink { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: 18px 18px 0 0; background: #efe7dd; }
.woocommerce ul.products li.shop-card .shop-card__img {
	position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; aspect-ratio: auto;
	transition: opacity 0.6s ease, scale 1.3s cubic-bezier(.2,.7,.2,1), filter 0.6s ease;
}
.woocommerce ul.products li.shop-card .shop-card__img--alt { opacity: 0; }
.shop-card.is-sold-out .shop-card__img { filter: grayscale(0.7) brightness(0.8); }

.shop-card__badges { position: absolute; top: 0.8rem; left: 0.8rem; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; pointer-events: none; }
.shop-badge {
	display: inline-flex; align-items: center; padding: 0.38rem 0.7rem; border-radius: 99px;
	font: 700 0.7rem/1 var(--pt-body); letter-spacing: 0.12em; text-transform: uppercase; color: #fff;
}
.shop-badge--sale { background: linear-gradient(110deg, #c0306b, #da70d6); box-shadow: 0 0 16px rgb(218 112 214 / 0.6); animation: pt-pulse-badge 2.4s ease-in-out infinite; }
@keyframes pt-pulse-badge { 50% { box-shadow: 0 0 26px rgb(218 112 214 / 0.95); } }
.shop-badge--new { background: rgb(12 4 16 / 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.5); color: var(--pt-lilac); }
.shop-badge--out { background: rgb(30 30 34 / 0.85); color: #ddd; }

/* Quick add: slides up over the bottom of the photo on hover or keyboard focus. */
.shop-card__quick {
	position: absolute; left: 0.7rem; right: 0.7rem; bottom: 0.7rem; z-index: 3;
	display: flex; flex-direction: column; gap: 0.45rem; padding: 0.55rem;
	border-radius: 14px; background: rgb(14 4 18 / 0.78); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.3), 0 12px 30px rgb(0 0 0 / 0.45);
	opacity: 0; translate: 0 14px; pointer-events: none;
	transition: opacity 0.35s ease, translate 0.45s cubic-bezier(.2,.8,.2,1);
}
.shop-card__quick-label { color: var(--pt-lilac); font: 700 0.62rem/1 var(--pt-body); letter-spacing: 0.24em; text-transform: uppercase; text-align: center; }
.shop-card__sizes { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem; }
.woocommerce ul.products li.shop-card .shop-card__quick .button { margin: 0; width: 100%; min-height: 44px; justify-content: center; font-size: 0.85rem; }
.woocommerce ul.products li.shop-card .shop-card__sizes .shop-size {
	width: auto; min-width: 44px; min-height: 40px; padding: 0 0.7rem; border-radius: 10px; font-size: 0.82rem; letter-spacing: 0.04em;
	background-image: linear-gradient(rgb(255 255 255 / 0.06), rgb(255 255 255 / 0.06)); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.35);
}
.woocommerce ul.products li.shop-card .shop-card__sizes .shop-size:is(:hover, :focus-visible) { background-image: var(--pt-btn-sheen), var(--pt-btn-grad); box-shadow: var(--pt-btn-glow); }
.shop-size.is-out { display: inline-grid; place-items: center; min-width: 44px; min-height: 40px; padding: 0 0.7rem; border-radius: 10px; color: rgb(255 255 255 / 0.35); font: 700 0.82rem/1 var(--pt-body); text-decoration: line-through; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.12); }
/* Adding... / Added ✦ */
.woocommerce ul.products li.shop-card .button.loading { opacity: 1; color: transparent !important; }
.woocommerce ul.products li.shop-card .button.loading::after {
	content: ""; position: absolute; top: 50%; left: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%;
	border: 2px solid rgb(255 255 255 / 0.35); border-top-color: #fff; animation: pt-spin 0.8s linear infinite;
}
.woocommerce ul.products li.shop-card .button.added::after { content: " ✓"; margin-left: 0.3em; }
.woocommerce ul.products li.shop-card a.added_to_cart { display: none !important; } /* the toast offers "View cart" instead */

.shop-card__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 0.35rem; padding: 1rem 1.2rem 1.25rem; }
.shop-card__cat { margin: 0; color: var(--pt-lilac); font: 700 0.66rem/1.2 var(--pt-body); letter-spacing: 0.2em; text-transform: uppercase; }
.woocommerce ul.products li.shop-card .shop-card__title { margin: 0; padding: 0 !important; font: 700 1.3rem/1.2 var(--pt-display) !important; }
.shop-card__link { color: var(--pt-text); text-decoration: none; background: linear-gradient(90deg, #3d5bd8, var(--pt-accent-deep), var(--pt-accent)) 0 100% / 0% 1.5px no-repeat; transition: background-size 0.5s cubic-bezier(.2,.7,.2,1), color 0.3s ease; }
.shop-card__link::after { content: ""; position: absolute; inset: -100% 0 0; z-index: 1; } /* whole card clickable (photo included) */
.shop-card__link:focus-visible { outline: none; }
.woocommerce ul.products li.shop-card .price { padding: 0; margin: 0; font: 700 1.05rem/1.3 var(--pt-body); }
.woocommerce ul.products li.shop-card .price ins { color: #fff; }
.woocommerce ul.products li.shop-card .price del { margin-right: 0.35rem; font-weight: 400; }

/* Hover / focus. */
.woocommerce ul.products li.shop-card:is(:hover, :focus-within) {
	transform: translateY(-6px);
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.5), 0 0 40px rgb(190 115 251 / 0.22), 0 28px 60px rgb(0 0 0 / 0.6);
}
.woocommerce ul.products li.shop-card:has(.shop-card__link:focus-visible) { outline: 2px solid var(--pt-lilac); outline-offset: 3px; }
.woocommerce ul.products li.shop-card:is(:hover, :focus-within)::after { opacity: 1; }
.woocommerce ul.products li.shop-card:is(:hover, :focus-within) .shop-card__img { scale: 1.06; }
.woocommerce ul.products li.shop-card.has-alt:is(:hover, :focus-within) .shop-card__img--alt { opacity: 1; }
.shop-card:is(:hover, :focus-within) .shop-card__quick { opacity: 1; translate: 0 0; pointer-events: auto; }
.shop-card:is(:hover, :focus-within) .shop-card__link { color: #fff; background-size: 100% 1.5px; }

/* Phones and tablets: no hover, so the quick-add sits under the photo, always showing. */
@media (hover: none) {
	.shop-card__quick { position: static; opacity: 1; translate: none; pointer-events: auto; margin: 0.6rem 0.6rem 0; background: rgb(255 255 255 / 0.03); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.18); -webkit-backdrop-filter: none; backdrop-filter: none; }
	.woocommerce ul.products li.shop-card:active { transform: scale(0.985); transition-duration: 0.12s; }
}
@media (max-width: 700px) {
	.shop-toolbar { flex-direction: column; align-items: stretch; gap: 0.6rem; padding: 0.55rem; border-radius: 22px; position: static; }
	.shop-toolbar__right { justify-content: space-between; }
	.shop-chips { margin-inline: -0.55rem; padding-inline: 0.55rem; }
	.shop-chip { min-height: 44px; }
	.shop-card__body { padding: 0.8rem 0.85rem 1rem; }
	.woocommerce ul.products li.shop-card .shop-card__title { font-size: 1.08rem !important; }
	.shop-card__cat { font-size: 0.6rem; letter-spacing: 0.14em; }
	.shop-card__quick { margin: 0.5rem 0.5rem 0; padding: 0.4rem; }
	.woocommerce ul.products li.shop-card .shop-card__sizes .shop-size { min-width: 40px; padding: 0 0.45rem; }
	.shop-card__quick-label { display: none; }
}

/* The product photo that flies into the cart. */
.pt-fly { position: fixed; z-index: 200; pointer-events: none; border-radius: 14px; object-fit: cover; box-shadow: 0 0 30px rgb(190 115 251 / 0.7); }
.site-action--cart.is-receiving { animation: pt-cart-catch 0.6s cubic-bezier(.3,1.8,.5,1); }
@keyframes pt-cart-catch { 40% { scale: 1.25; box-shadow: 0 0 26px rgb(218 112 214 / 0.9); } }

/* The "is in your cart ✦ View cart" note can be clicked. */
.pt-toast.has-link { pointer-events: auto; display: inline-flex; align-items: center; gap: 0.6rem; max-width: calc(100vw - 2rem); }
.pt-toast a { color: var(--pt-lilac); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.pt-toast a:hover { color: #fff; }

/* Phones: sizes share one row; the sort menu stays inside the toolbar. */
@media (max-width: 700px) {
	.shop-card__sizes { flex-wrap: nowrap; gap: 0.3rem; }
	.woocommerce ul.products li.shop-card .shop-card__sizes .shop-size,
	.shop-card__sizes .shop-size.is-out { flex: 1 1 0; min-width: 0; padding: 0; }
	.shop-toolbar__right { gap: 0.6rem; min-width: 0; }
	.shop-toolbar .woocommerce-result-count { font-size: 0.78rem; white-space: normal; }
	.shop-toolbar .woocommerce-ordering { min-width: 0; flex: 0 1 auto; }
	.shop-toolbar .woocommerce-ordering select { max-width: 100%; }
}

/* Size letters sit in the middle of their buttons. */
.woocommerce ul.products li.shop-card .shop-card__sizes .shop-size { display: inline-flex; align-items: center; justify-content: center; line-height: 1; }

/* =====================================================================================
   Bouncy collection switching (main.js swaps the grid in place).
   ===================================================================================== */

/* The highlight is one pill that slides, overshoots and settles under the chosen chip. */
.shop-chips { position: relative; }
.shop-chips__pill {
	position: absolute; top: 0; left: 0; height: 100%; width: 0; z-index: 0; pointer-events: none;
	border-radius: 99px; background: var(--pt-btn-grad); background-size: 200% 100%;
	box-shadow: 0 0 18px rgb(190 115 251 / 0.55);
	opacity: 0;
	transition: translate 0.55s cubic-bezier(.34,1.56,.4,1), width 0.55s cubic-bezier(.34,1.56,.4,1), opacity 0.2s ease;
}
.shop-chips.has-pill .shop-chips__pill { opacity: 1; }
.shop-chip { position: relative; z-index: 1; }
.shop-chips.has-pill .shop-chip.is-current { background: transparent; box-shadow: none; }
.shop-chips.is-squish .shop-chips__pill { animation: pt-squish 0.55s cubic-bezier(.3,1.6,.5,1); }
@keyframes pt-squish { 30% { scale: 1.12 0.82; } 60% { scale: 0.96 1.06; } }
.shop-chip:active { scale: 0.92; transition: scale 0.1s; }

/* Cards leave: they drop and shrink away one after another. */
.shop-grid.is-leaving li.shop-card,
.shop-grid.is-leaving .woocommerce-info,
.shop-grid.is-leaving .woocommerce-pagination {
	animation: pt-card-out 0.32s cubic-bezier(.5,0,.75,0) both;
	animation-delay: calc(var(--i, 0) * 45ms);
	pointer-events: none;
}
@keyframes pt-card-out { to { opacity: 0; transform: translateY(18px) scale(0.88) rotate(-1.5deg); } }

/* New cards arrive: a springy pop, one after another. */
.shop-grid .is-popping {
	animation: pt-card-in 0.75s cubic-bezier(.2,.9,.3,1) both;
	animation-delay: calc(var(--i, 0) * 70ms);
}
@keyframes pt-card-in {
	0%   { opacity: 0; transform: translateY(44px) scale(0.84) rotate(1.5deg); }
	55%  { opacity: 1; transform: translateY(-10px) scale(1.035) rotate(-0.4deg); }
	75%  { transform: translateY(3px) scale(0.99); }
	100% { opacity: 1; transform: none; }
}

/* The banner words and count change with a little lift. */
.shop-hero__inner.is-changing, .shop-toolbar__right.is-changing { animation: pt-swap-text 0.6s cubic-bezier(.3,1.5,.5,1) both; }
@keyframes pt-swap-text { from { opacity: 0; transform: translateY(14px) scale(0.97); } }
.shop-collections.is-hiding { animation: pt-tiles-out 0.35s ease both; }
@keyframes pt-tiles-out { to { opacity: 0; transform: scale(0.96); } }
.shop-collections.is-popping { animation: pt-card-in 0.7s cubic-bezier(.2,.9,.3,1) both; }

/* While the next collection loads, a soft shimmer runs along the toolbar's edge. */
.shop-toolbar.is-loading { box-shadow: 0 0 0 1px rgb(201 163 245 / 0.22), 0 16px 36px rgb(0 0 0 / 0.5), 0 0 24px rgb(190 115 251 / 0.35); }

@media (prefers-reduced-motion: reduce) {
	.shop-chips__pill { transition: none; }
	.shop-grid.is-leaving li.shop-card, .shop-grid .is-popping, .shop-hero__inner.is-changing { animation: none !important; }
}

/* Waiting for the next collection: a twinkling star where the cards will appear. */
.shop-grid { position: relative; }
.shop-grid.is-waiting::before {
	content: "✦"; position: absolute; top: 5rem; left: 50%; translate: -50% 0;
	font: 400 2.4rem/1 var(--pt-body); color: #fff;
	text-shadow: 0 0 18px rgb(190 115 251 / 0.95), 0 0 40px rgb(218 112 214 / 0.7);
	animation: pt-twinkle 1.1s ease-in-out infinite;
}

/* =====================================================================================
   Single product page (views/woocommerce.twig, inc/product.php, main.js)
   ===================================================================================== */

.product-page { position: relative; isolation: isolate; overflow: hidden; }
.product-page__glow { /* a soft glow of the product photo behind the top of the page */
	position: absolute; left: -10%; right: -10%; top: -120px; height: 900px; z-index: -1; pointer-events: none;
	background: var(--product-glow, none) center / cover no-repeat;
	filter: blur(80px) saturate(1.5) brightness(0.5); opacity: 0.7;
	-webkit-mask-image: linear-gradient(180deg, #000 40%, transparent);
	mask-image: linear-gradient(180deg, #000 40%, transparent);
	animation: pt-glow-drift 26s ease-in-out infinite alternate;
}
.product-page__inner { padding-top: 1.5rem; padding-bottom: var(--wp--preset--spacing--60, 5rem); }
.single-product .woocommerce-breadcrumb { margin-bottom: 1.75rem !important; font-size: 0.8rem !important; letter-spacing: 0.06em; }

/* Two columns: gallery, and the details that stay beside it as you scroll. */
.single-product div.product {
	position: relative; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem); 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 > :is(.woocommerce-tabs, .related, .upsells, .up-sells) { grid-column: 1 / -1; }
.single-product div.product > .summary {
	position: sticky; top: calc(var(--pt-header-h) + var(--wp-admin--admin-bar--height, 0px) + 1.5rem);
	animation: pt-rise 0.9s cubic-bezier(.2,.8,.2,1) 0.15s both;
}
@media (max-width: 899px) {
	.single-product div.product { grid-template-columns: minmax(0, 1fr); }
	.single-product div.product > .summary { position: static; }
}

/* Gallery. */
.single-product .woocommerce-product-gallery { position: relative; animation: pt-rise 0.9s cubic-bezier(.2,.8,.2,1) both; }
.single-product .woocommerce-product-gallery .flex-viewport,
.single-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
	border-radius: 22px; overflow: hidden; background: #efe7dd;
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.3), 0 0 60px rgb(190 115 251 / 0.2), 0 34px 70px rgb(0 0 0 / 0.6);
}
.single-product .woocommerce-product-gallery__image img { width: 100%; height: auto; display: block; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 1rem; right: 1rem; z-index: 9; width: 46px; height: 46px; border-radius: 50%; overflow: hidden; text-indent: -999px;
	background: rgb(12 4 16 / 0.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	box-shadow: inset 0 0 0 1px rgb(234 219 255 / 0.45);
	transition: scale 0.35s cubic-bezier(.3,1.6,.5,1), box-shadow 0.3s ease;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	content: ""; position: absolute; inset: 0; border: 0; width: auto; height: auto; transform: none; border-radius: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/%3E%3C/svg%3E") center / 20px no-repeat;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after { display: none; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger:hover { scale: 1.1; box-shadow: inset 0 0 0 1px var(--pt-lilac), 0 0 18px rgb(190 115 251 / 0.6); }
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.65rem; margin-top: 0.9rem !important; padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product div.images .flex-control-thumbs li img {
	border-radius: 12px; opacity: 0.55; cursor: pointer; aspect-ratio: 1; object-fit: cover;
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.2);
	transition: opacity 0.3s ease, transform 0.35s cubic-bezier(.3,1.6,.5,1), box-shadow 0.3s ease;
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 0.9; transform: translateY(-3px); }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; box-shadow: 0 0 0 2px var(--pt-lilac), 0 0 16px rgb(190 115 251 / 0.5); }

/* Sale badge on the photo. */
.single-product div.product > .onsale.product-sale {
	position: absolute; top: 1.1rem; left: 1.1rem; right: auto; z-index: 10; margin: 0;
	min-width: 0; min-height: 0; padding: 0.5rem 0.9rem; line-height: 1; border-radius: 99px;
	color: #fff; font: 700 0.78rem/1 var(--pt-body); letter-spacing: 0.12em; text-transform: uppercase;
	background: linear-gradient(110deg, #c0306b, #da70d6); box-shadow: 0 0 18px rgb(218 112 214 / 0.65);
	animation: pt-pulse-badge 2.4s ease-in-out infinite;
}

/* The details. */
.product-eyebrow { margin: 0 0 0.8rem; font: 700 0.78rem/1 var(--pt-body); letter-spacing: 0.3em; text-transform: uppercase; }
.product-eyebrow a { color: var(--pt-lilac); text-decoration: none; }
.product-eyebrow a::before { content: "✦"; margin-right: 0.7em; font-size: 0.85em; }
.product-eyebrow a:hover { color: #fff; }
.single-product div.product .product_title {
	margin: 0 0 0.9rem; font: 700 clamp(2.2rem, 4vw, 3.3rem)/1.05 var(--pt-display) !important; text-wrap: balance;
	text-shadow: 0 2px 20px rgb(0 0 0 / 0.5);
}
.single-product div.product .summary > p.price { margin: 0 0 1.1rem; font: 700 1.75rem/1.2 var(--pt-body) !important; color: #fff !important; }
.single-product div.product .summary > p.price del { font-size: 0.65em; font-weight: 400; margin-right: 0.4rem; }
.single-product div.product .summary > p.price ins { background: linear-gradient(90deg, #eadbff, var(--pt-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.woocommerce-product-details__short-description { margin-bottom: 1.5rem; color: #e6d8c6; font: 500 1.2rem/1.6 var(--pt-display); font-style: italic; }
.woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

/* The buying panel. */
.single-product div.product form.cart {
	display: block; margin: 0 0 1.5rem; padding: 1.35rem; border-radius: 20px;
	background: linear-gradient(170deg, rgb(36 12 32 / 0.85), rgb(14 4 12 / 0.9)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.22), 0 24px 50px rgb(0 0 0 / 0.45);
}
.single-product div.product form.cart:not(.variations_form),
.single-product .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.75rem; }
.single-product table.variations { width: 100%; margin: 0 0 1rem; border: 0; }
.single-product table.variations tr { display: block; margin-bottom: 0.9rem; }
.single-product table.variations :is(th, td) { display: block; padding: 0 !important; border: 0 !important; text-align: left; background: none; }
.single-product table.variations th label { display: block; margin-bottom: 0.6rem; color: var(--pt-lilac); font: 700 0.72rem/1 var(--pt-body); letter-spacing: 0.24em; text-transform: uppercase; }
.single-product table.variations .reset_variations { display: inline-block; margin-top: 0.6rem; color: var(--pt-muted); font-size: 0.8rem; text-decoration: underline; text-underline-offset: 3px; }
.pt-swatched { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }

/* Size (and other option) buttons. */
.pt-swatches { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pt-swatch {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-width: 54px; min-height: 48px; padding: 0 1rem; border: 0; border-radius: 12px; cursor: pointer;
	color: var(--pt-text); font: 700 0.95rem/1 var(--pt-body); letter-spacing: 0.04em;
	background: rgb(255 255 255 / 0.04); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.32);
	transition: box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease, opacity 0.3s ease;
}
.pt-swatch:is(:hover, :focus-visible) { outline: none; color: #fff; background: rgb(190 115 251 / 0.14); box-shadow: inset 0 0 0 1px var(--pt-lilac), 0 0 16px rgb(190 115 251 / 0.4); }
.pt-swatch[aria-pressed="true"] { color: #fff; background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 0 1px rgb(234 219 255 / 0.6), 0 0 22px rgb(190 115 251 / 0.6); }
.pt-swatch.is-unavailable { opacity: 0.4; text-decoration: line-through; }
.pt-swatch:disabled { display: none; }
.pt-swatch__dot { width: 18px; height: 18px; border-radius: 50%; background: conic-gradient(#3d5bd8, var(--pt-accent-deep), var(--pt-accent), #3d5bd8); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35); }
.is-bounce { animation: pt-boing 0.5s cubic-bezier(.3,1.8,.5,1); }
@keyframes pt-boing { 0% { scale: 1; } 30% { scale: 0.88; } 65% { scale: 1.08; } 100% { scale: 1; } }

.single-product .woocommerce-variation-price { margin: 0 0 0.9rem; }
.single-product .woocommerce-variation-price .price { font: 700 1.4rem/1.2 var(--pt-body) !important; color: #fff !important; }
.single-product .woocommerce-variation-availability p { margin: 0 0 0.8rem; color: var(--pt-lilac); font-size: 0.9rem; }

/* Quantity stepper. */
.single-product div.product form.cart .quantity {
	display: inline-flex; align-items: center; float: none; margin: 0 !important; padding: 0.25rem; border-radius: 99px;
	background: rgb(255 255 255 / 0.04); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.3);
}
.single-product .quantity:has(input[type="hidden"]) { display: none !important; }
.qty-step {
	display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
	color: var(--pt-text); font: 400 1.35rem/1 var(--pt-body); background: transparent;
	transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.qty-step:is(:hover, :focus-visible) { outline: none; color: #fff; background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 14px rgb(190 115 251 / 0.55); }
.single-product div.product form.cart .quantity .qty {
	width: 3rem; min-height: 42px; padding: 0; border: 0; background: transparent; box-shadow: none;
	color: #fff; font: 700 1.1rem/1 var(--pt-body); text-align: center; -moz-appearance: textfield;
}
.single-product .quantity .qty::-webkit-inner-spin-button, .single-product .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.single-product div.product form.cart .single_add_to_cart_button {
	position: relative; flex: 1 1 200px; float: none; min-height: 52px; margin: 0;
	font-size: 1rem; letter-spacing: 0.1em; text-transform: uppercase;
}
.single-product div.product form.cart .single_add_to_cart_button.disabled { opacity: 0.55; filter: grayscale(0.4); cursor: not-allowed; }
.single-product div.product form.cart .single_add_to_cart_button.loading { color: transparent !important; }
.single-product div.product form.cart .single_add_to_cart_button.loading::after {
	content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%;
	border: 2px solid rgb(255 255 255 / 0.35); border-top-color: #fff; animation: pt-spin 0.8s linear infinite;
}
.single-product div.product form.cart .single_add_to_cart_button.added::after { content: " ✓"; }
.product-note { flex-basis: 100%; display: flex; align-items: center; gap: 0.45rem; margin: 0.2rem 0 0; color: var(--pt-lilac); font-size: 0.88rem; }
.product-note .pt-icon { width: 16px; height: 16px; flex: none; }

/* Meta and share. */
.single-product .product_meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin: 0 0 1.25rem; color: var(--pt-muted); font-size: 0.82rem; letter-spacing: 0.04em; }
.single-product .product_meta .sku_wrapper { display: none; }
.single-product .product_meta a { color: var(--pt-lilac); }
.product-share { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; }
.product-share__label { margin-right: 0.3rem; color: var(--pt-muted); font: 700 0.7rem/1 var(--pt-body); letter-spacing: 0.24em; text-transform: uppercase; }
.product-share .share-btn { min-height: 40px; font-size: 0.7rem; }

/* Tabs: a pill switcher with a sliding highlight. */
.single-product .woocommerce-tabs { margin-top: clamp(3rem, 7vw, 5rem); text-align: center; }
.woocommerce div.product .woocommerce-tabs ul.tabs.wc-tabs {
	position: relative; display: inline-flex; gap: 0.25rem; margin: 0 auto 2rem; padding: 0.35rem; border: 0; border-radius: 99px;
	background: rgb(16 5 20 / 0.8); box-shadow: 0 0 0 1px rgb(201 163 245 / 0.22);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li { position: relative; z-index: 1; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 0.7rem 1.3rem; border-radius: 99px; color: var(--pt-text); font: 700 0.78rem/1 var(--pt-body); letter-spacing: 0.12em; text-transform: uppercase; transition: color 0.3s ease; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: #fff; box-shadow: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs:not(.has-pill) li.active a { background: var(--pt-btn-grad); }
.tabs-pill {
	position: absolute; top: 0.35rem; bottom: 0.35rem; left: 0; z-index: 0; width: 0; border-radius: 99px; pointer-events: none;
	background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 16px rgb(190 115 251 / 0.5);
	transition: translate 0.55s cubic-bezier(.34,1.56,.4,1), width 0.55s cubic-bezier(.34,1.56,.4,1);
}
.single-product .woocommerce-tabs .panel { max-width: 760px; margin: 0 auto; text-align: left; color: #e6d8c6; font-size: 1.05rem; line-height: 1.8; animation: pt-swap-text 0.5s cubic-bezier(.3,1.4,.5,1) both; }
.single-product .woocommerce-tabs .panel table.shop_attributes { border: 0; }
.single-product .woocommerce-tabs .panel table.shop_attributes :is(th, td) { padding: 0.8rem 1rem; background: none; border-color: rgb(201 163 245 / 0.15) !important; font-style: normal; }

/* "You may also like". */
.single-product .related.products, .single-product .upsells.products { margin-top: clamp(3.5rem, 7vw, 5.5rem); }
.single-product :is(.related, .upsells) > h2 {
	margin: 0 0 2.25rem; text-align: center; font: 700 clamp(1.6rem, 3vw, 2.2rem)/1.1 var(--pt-banner) !important; text-transform: uppercase; letter-spacing: 0.06em;
}
.single-product :is(.related, .upsells) > h2::after {
	content: "✦"; display: block; width: min(240px, 60%); margin: 0.8rem auto 0; font: 400 0.85rem/1 var(--pt-body); color: var(--pt-lilac);
	background: linear-gradient(90deg, transparent, #3d5bd8 15%, var(--pt-accent-deep) 44%, transparent 46% 54%, var(--pt-accent-deep) 56%, #3d5bd8 85%, transparent) center / 100% 1px no-repeat;
}

/* Phones: the sticky buy bar. */
.buybar { display: none; }
@media (max-width: 781px) {
	.buybar {
		position: fixed; left: 0.6rem; right: 0.6rem; bottom: 0.6rem; z-index: 90;
		display: flex; align-items: center; gap: 0.7rem; padding: 0.55rem 0.55rem 0.55rem 0.6rem; border-radius: 18px;
		background: rgb(16 5 20 / 0.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
		box-shadow: 0 0 0 1px rgb(201 163 245 / 0.3), 0 -6px 30px rgb(0 0 0 / 0.5);
		translate: 0 140%; transition: translate 0.5s cubic-bezier(.34,1.4,.5,1);
	}
	.buybar[hidden] { display: none; }
	.buybar.is-shown { translate: 0 0; }
	.buybar__img { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; flex: none; }
	.buybar__text { min-width: 0; flex: 1; }
	.buybar__name { margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 700 0.95rem/1.2 var(--pt-display); color: #fff; }
	.buybar__price { margin: 0.15rem 0 0; font: 700 0.85rem/1.2 var(--pt-body); color: var(--pt-lilac); }
	.buybar__price del { color: var(--pt-muted); font-weight: 400; margin-right: 0.3rem; }
	.buybar__price ins { text-decoration: none; }
	.buybar__button { flex: none; min-height: 46px; padding: 0 1rem; font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; }
	.single-product .product-page__inner { padding-bottom: 7rem; }
}

/* =====================================================================================
   Add to cart: brighter than every other button, so it's the one your eye lands on.
   Violet -> fuchsia -> pink (white text stays at about 4.5:1 or better on every stop),
   a soft glow that breathes, and a sheen that sweeps across every few seconds.
   ===================================================================================== */

:root {
	--pt-cart-grad: linear-gradient(110deg, #7c3aed 0%, #b02bd6 35%, #c026d3 55%, #d0266f 100%);
	--pt-cart-glow: 0 0 0 1px rgb(255 255 255 / 0.18), 0 6px 22px rgb(192 38 211 / 0.55), 0 0 40px rgb(208 38 111 / 0.3);
	--pt-cart-glow-hot: 0 0 0 2px rgb(255 220 250 / 0.85), 0 8px 30px rgb(192 38 211 / 0.8), 0 0 60px rgb(208 38 111 / 0.55);
}
.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button):not(.shop-size),
.woocommerce .shop-card__quick a.button.product_type_variable,
.buybar .buybar__button {
	position: relative; overflow: hidden; isolation: isolate;
	color: #fff !important;
	background-color: #b02bd6 !important;
	background-image: var(--pt-cart-grad) !important;
	background-size: 115% 100% !important; background-position: 0% 0 !important;
	box-shadow: var(--pt-cart-glow) !important;
	text-shadow: 0 1px 2px rgb(60 0 50 / 0.45);
	animation: pt-cart-breathe 3.2s ease-in-out infinite;
	transition: background-position 0.6s ease, box-shadow 0.3s ease, transform 0.15s ease, filter 0.3s ease !important;
}
/* The sweeping sheen. */
.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button):not(.shop-size)::before,
.buybar .buybar__button::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(110deg, transparent 35%, rgb(255 255 255 / 0.45) 50%, transparent 65%) -160% 0 / 55% 100% no-repeat;
	animation: pt-cart-sheen 4.5s ease-in-out 1s infinite;
}
@keyframes pt-cart-sheen { 0%, 62% { background-position: -160% 0; } 100% { background-position: 260% 0; } }
@keyframes pt-cart-breathe { 50% { box-shadow: 0 0 0 1px rgb(255 255 255 / 0.25), 0 8px 28px rgb(192 38 211 / 0.7), 0 0 52px rgb(208 38 111 / 0.42); } }

.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button):not(.shop-size):is(:hover, :focus-visible),
.woocommerce .shop-card__quick a.button.product_type_variable:is(:hover, :focus-visible),
.buybar .buybar__button:is(:hover, :focus-visible) {
	outline: none;
	background-position: 100% 0 !important;
	box-shadow: var(--pt-cart-glow-hot) !important;
	filter: brightness(1.12) saturate(1.15);
	transform: translateY(-1px);
}
.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button):not(.shop-size):active,
.buybar .buybar__button:active { transform: scale(0.97); filter: brightness(1.25); }

/* Before a size is chosen it stays bright, just a touch softer, with no breathing. */
.single-product div.product form.cart .single_add_to_cart_button.disabled { opacity: 0.82 !important; filter: saturate(0.85) !important; animation: none; }

/* "Added": a quick flash of light. */
.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button).added { animation: pt-cart-flash 0.7s ease-out, pt-cart-breathe 3.2s ease-in-out 0.7s infinite; }
@keyframes pt-cart-flash { 0% { filter: brightness(1.6); box-shadow: 0 0 0 3px #fff, 0 0 70px rgb(255 150 230 / 0.9); } 100% { filter: none; } }

@media (prefers-reduced-motion: reduce) {
	.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button), .buybar .buybar__button { animation: none !important; }
	.woocommerce :is(a, button).button:is(.single_add_to_cart_button, .add_to_cart_button)::before, .buybar .buybar__button::before { animation: none !important; }
}

/* =====================================================================================
   Cart, checkout and thank-you (WooCommerce blocks + views/page.twig header)
   ===================================================================================== */

/* Header: Cart -> Details -> Done, with a glowing line that fills as you go. */
.commerce-head { position: relative; padding-top: clamp(2rem, 5vw, 3.5rem); padding-bottom: 1.5rem; text-align: center; }
.commerce-head::before {
	content: ""; position: absolute; left: 50%; top: 0; z-index: -1; width: min(900px, 100%); height: 360px; translate: -50% -30%; pointer-events: none;
	background: radial-gradient(ellipse at center, rgb(122 58 216 / 0.22), transparent 65%);
}
.commerce-steps {
	--pt-step: 1;
	position: relative; display: grid; grid-template-columns: repeat(3, 1fr); max-width: 520px; margin: 0 auto 2rem; padding: 0; list-style: none;
}
.commerce-steps::before, .commerce-steps::after { /* the track, and the part already travelled */
	content: ""; position: absolute; top: 19px; left: 16.66%; height: 2px; border-radius: 2px;
}
.commerce-steps::before { right: 16.66%; background: rgb(201 163 245 / 0.2); }
.commerce-steps::after {
	width: calc((66.66%) * (var(--pt-step) - 1) / 2);
	background: linear-gradient(90deg, #3d5bd8, var(--pt-accent-deep), var(--pt-accent)); box-shadow: 0 0 12px rgb(190 115 251 / 0.8);
	transform-origin: 0 50%; animation: pt-track 1.1s cubic-bezier(.3,.8,.3,1) 0.2s both;
}
@keyframes pt-track { from { transform: scaleX(0); } }
.commerce-step { position: relative; z-index: 1; display: grid; justify-items: center; gap: 0.55rem; }
.commerce-step a { display: contents; color: inherit; text-decoration: none; }
.commerce-step__dot {
	display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
	font: 700 0.95rem/1 var(--pt-body); color: var(--pt-muted);
	background: #12060f; box-shadow: inset 0 0 0 1.5px rgb(201 163 245 / 0.3);
	transition: transform 0.35s cubic-bezier(.3,1.6,.5,1);
}
.commerce-step__label { color: var(--pt-muted); font: 700 0.72rem/1 var(--pt-body); letter-spacing: 0.2em; text-transform: uppercase; }
.commerce-step.is-done .commerce-step__dot { color: #fff; background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 14px rgb(190 115 251 / 0.6); }
.commerce-step.is-current .commerce-step__dot { color: #fff; background: var(--pt-cart-grad); box-shadow: 0 0 0 4px rgb(192 38 211 / 0.25), 0 0 22px rgb(192 38 211 / 0.7); animation: pt-pulse-dot 2.4s ease-in-out infinite; }
.commerce-step.is-current .commerce-step__label, .commerce-step.is-done .commerce-step__label { color: #fff; }
@keyframes pt-pulse-dot { 50% { box-shadow: 0 0 0 8px rgb(192 38 211 / 0.08), 0 0 30px rgb(192 38 211 / 0.85); } }
.commerce-step a:hover .commerce-step__dot { transform: scale(1.12); }
.commerce-title { margin: 0 !important; font: 700 clamp(2.4rem, 5.5vw, 3.8rem)/1.05 var(--pt-banner) !important; text-transform: uppercase; letter-spacing: 0.05em; animation: pt-ink-in 1.4s cubic-bezier(.3,.6,.2,1) both; }
.commerce-sub { margin: 0.8rem auto 0; color: #e1d3c1; font: 500 1.2rem/1.5 var(--pt-display); font-style: italic; }
.commerce-head--step3 .commerce-title::after { content: " ✦"; color: var(--pt-lilac); text-shadow: 0 0 16px rgb(190 115 251 / 0.9); }

/* ---- Cart ---- */
.wp-block-woocommerce-cart { margin-top: 1rem; }
.wp-block-woocommerce-cart table.wc-block-cart-items { border-collapse: separate !important; border-spacing: 0 14px; margin-top: -14px; }
.wp-block-woocommerce-cart .wc-block-cart-items__header th {
	padding-bottom: 0 !important; border: 0 !important; color: var(--pt-lilac) !important;
	font: 700 0.7rem/1 var(--pt-body) !important; letter-spacing: 0.24em; text-transform: uppercase;
}
.wp-block-woocommerce-cart .wc-block-cart-items__row td {
	padding: 1.1rem !important; border: 0 !important; vertical-align: middle;
	background: linear-gradient(170deg, rgb(40 14 34 / 0.85), rgb(16 4 12 / 0.92));
	box-shadow: 0 1px 0 rgb(201 163 245 / 0.14) inset, 0 -1px 0 rgb(201 163 245 / 0.14) inset;
	transition: background 0.3s ease;
}
.wp-block-woocommerce-cart .wc-block-cart-items__row td:first-child { border-radius: 16px 0 0 16px; box-shadow: 1px 0 0 rgb(201 163 245 / 0.14) inset, 0 1px 0 rgb(201 163 245 / 0.14) inset, 0 -1px 0 rgb(201 163 245 / 0.14) inset; }
.wp-block-woocommerce-cart .wc-block-cart-items__row td:last-child { border-radius: 0 16px 16px 0; box-shadow: -1px 0 0 rgb(201 163 245 / 0.14) inset, 0 1px 0 rgb(201 163 245 / 0.14) inset, 0 -1px 0 rgb(201 163 245 / 0.14) inset; }
.wp-block-woocommerce-cart .wc-block-cart-items__row:hover td { background: linear-gradient(170deg, rgb(52 18 44 / 0.9), rgb(20 5 16 / 0.95)); }
.wp-block-woocommerce-cart .wc-block-cart-item__image img { width: 96px; max-width: none; aspect-ratio: 1; object-fit: cover; border-radius: 12px; box-shadow: 0 8px 20px rgb(0 0 0 / 0.45); transition: transform 0.5s cubic-bezier(.3,1.4,.5,1); }
.wp-block-woocommerce-cart .wc-block-cart-items__row:hover .wc-block-cart-item__image img { transform: scale(1.05) rotate(-2deg); }
.wp-block-woocommerce-cart .wc-block-components-product-name {
	color: #fff !important; text-decoration: none !important; font: 700 1.2rem/1.25 var(--pt-display) !important;
	background: linear-gradient(90deg, #3d5bd8, var(--pt-accent-deep), var(--pt-accent)) 0 100% / 0% 1.5px no-repeat; transition: background-size 0.4s ease;
}
.wp-block-woocommerce-cart .wc-block-components-product-name:hover { background-size: 100% 1.5px; }
.wp-block-woocommerce-cart .wc-block-cart-item__prices, .wp-block-woocommerce-cart .wc-block-components-product-metadata { color: var(--pt-muted); font-size: 0.88rem; }
.wp-block-woocommerce-cart .wc-block-components-product-details { margin: 0.2rem 0 0; color: var(--pt-lilac); font-size: 0.82rem; letter-spacing: 0.04em; }
.wp-block-woocommerce-cart .wc-block-cart-item__total { color: #fff; font: 700 1.1rem/1.2 var(--pt-body); }
.wc-block-components-sale-badge { border: 0 !important; border-radius: 99px !important; color: #fff !important; background: linear-gradient(110deg, #c0306b, #da70d6) !important; font-weight: 700; }

/* Quantity: a glass pill with glowing − / +. */
.wc-block-components-quantity-selector {
	width: auto !important; min-width: 0; border: 0 !important; border-radius: 99px !important; overflow: hidden;
	background: rgb(255 255 255 / 0.05) !important; box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.3);
}
.wc-block-components-quantity-selector::after { display: none !important; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
	width: 2.6rem !important; min-width: 0 !important; min-height: 38px !important; padding: 0 !important;
	color: #fff !important; background: transparent !important; border: 0 !important; box-shadow: none !important; font: 700 1rem/1 var(--pt-body) !important;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: 38px !important; color: var(--pt-text) !important; opacity: 1 !important; font-size: 1.15rem !important; border-radius: 50% !important;
	transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:not(:disabled):is(:hover, :focus-visible) {
	color: #fff !important; background: var(--pt-btn-grad) !important; background-size: 200% 100% !important; box-shadow: 0 0 12px rgb(190 115 251 / 0.55); outline: none;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { opacity: 0.35 !important; }
.wp-block-woocommerce-cart .wc-block-cart-item__remove-link {
	display: inline-grid !important; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: var(--pt-muted) !important;
	box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.22); transition: color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, rotate 0.35s ease;
}
.wp-block-woocommerce-cart .wc-block-cart-item__remove-link:is(:hover, :focus-visible) { color: #fff !important; background: rgb(208 38 111 / 0.25); box-shadow: inset 0 0 0 1px #ff6b9b, 0 0 14px rgb(255 61 127 / 0.5); rotate: -8deg; outline: none; }
.wp-block-woocommerce-cart .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 0.6rem; margin-top: 0.6rem; }

/* The summary card stays beside the items as you scroll. */
.wp-block-woocommerce-cart .wc-block-cart__sidebar, .wp-block-woocommerce-checkout .wc-block-checkout__sidebar { align-self: flex-start; }
@media (min-width: 782px) {
	.wp-block-woocommerce-cart .wc-block-cart__sidebar, .wp-block-woocommerce-checkout .wc-block-checkout__sidebar.is-sticky,
	.wp-block-woocommerce-checkout .wc-block-checkout__sidebar { position: sticky !important; top: calc(var(--pt-header-h) + var(--wp-admin--admin-bar--height, 0px) + 1.25rem) !important; }
}
.wp-block-woocommerce-cart-totals-block, .wp-block-woocommerce-checkout .wc-block-checkout__sidebar {
	padding: 1.5rem !important; border-radius: 20px;
	background: linear-gradient(170deg, rgb(36 12 32 / 0.92), rgb(14 4 12 / 0.95));
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.25), 0 0 50px rgb(190 115 251 / 0.12), 0 28px 60px rgb(0 0 0 / 0.5);
}
.wp-block-woocommerce-cart .wc-block-cart__totals-title {
	display: block !important; margin: 0 0 0.6rem !important; padding: 0 !important; text-align: left !important; color: #fff !important;
	font: 700 1.15rem/1.2 var(--pt-banner) !important; letter-spacing: 0.08em !important; text-transform: uppercase !important;
}
.wc-block-components-totals-wrapper { border-color: rgb(201 163 245 / 0.15) !important; }
.wc-block-components-panel__button { color: var(--pt-lilac) !important; font-weight: 700 !important; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { color: #fff; font: 700 1.05rem/1.2 var(--pt-body) !important; letter-spacing: 0.06em; text-transform: uppercase; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font: 700 1.6rem/1.1 var(--pt-body) !important;
	background: linear-gradient(90deg, #eadbff, var(--pt-accent)); -webkit-background-clip: text; background-clip: text; color: transparent !important;
}
/* "Proceed to checkout" and "Place order": the bright buy buttons. */
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
	position: relative; overflow: hidden; isolation: isolate; min-height: 56px !important; border: 0 !important; border-radius: 14px !important;
	color: #fff !important; font: 700 1rem/1 var(--pt-body) !important; letter-spacing: 0.1em; text-transform: uppercase;
	background: var(--pt-cart-grad) !important; background-size: 115% 100% !important;
	box-shadow: var(--pt-cart-glow) !important; text-shadow: 0 1px 2px rgb(60 0 50 / 0.45);
	animation: pt-cart-breathe 3.2s ease-in-out infinite;
	transition: background-position 0.6s ease, box-shadow 0.3s ease, transform 0.15s ease, filter 0.3s ease;
}
.wc-block-cart__submit-button::before, .wc-block-components-checkout-place-order-button::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(110deg, transparent 35%, rgb(255 255 255 / 0.45) 50%, transparent 65%) -160% 0 / 55% 100% no-repeat;
	animation: pt-cart-sheen 4.5s ease-in-out 1s infinite;
}
.wc-block-cart__submit-button:is(:hover, :focus-visible), .wc-block-components-checkout-place-order-button:is(:hover, :focus-visible) {
	outline: none; background-position: 100% 0 !important; box-shadow: var(--pt-cart-glow-hot) !important; filter: brightness(1.12) saturate(1.15); transform: translateY(-1px);
}
.wc-block-cart__submit-button:active, .wc-block-components-checkout-place-order-button:active { transform: scale(0.98); }
.wc-block-cart__submit-button .wc-block-components-button__text::after { content: " →"; }
.wc-block-cart__payment-options { margin-top: 0.9rem; opacity: 0.75; }

/* Empty cart. */
.wp-block-woocommerce-empty-cart-block { text-align: center; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	margin: 1rem 0 0.5rem !important; font: 700 clamp(1.6rem, 3vw, 2.2rem)/1.2 var(--pt-display) !important; color: #fff;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before {
	content: "✦"; display: block; width: auto; height: auto; margin: 0 auto 1rem; background: none !important; mask: none !important; -webkit-mask: none !important;
	font: 400 2.4rem/1 var(--pt-body); color: #fff; text-shadow: 0 0 16px rgb(190 115 251 / 0.95), 0 0 40px rgb(218 112 214 / 0.6);
	animation: pt-twinkle 2.4s ease-in-out infinite;
}
.wp-block-woocommerce-empty-cart-block .wp-block-separator { max-width: 260px; margin: 2.5rem auto !important; border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--pt-accent-deep), transparent); }
.wp-block-woocommerce-empty-cart-block h2:not(.wc-block-cart__empty-cart__title) { font: 700 1.4rem/1.2 var(--pt-banner) !important; text-transform: uppercase; letter-spacing: 0.06em; }

/* ---- Checkout ---- */
.wp-block-woocommerce-checkout .wc-block-checkout__form { counter-reset: pt-step; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step {
	counter-increment: pt-step; position: relative; margin: 0 0 1.25rem !important; padding: 1.4rem 1.4rem 1.2rem 4.4rem !important; border-radius: 18px;
	background: linear-gradient(170deg, rgb(36 12 32 / 0.7), rgb(14 4 12 / 0.8));
	box-shadow: 0 0 0 1px rgb(201 163 245 / 0.18);
	transition: box-shadow 0.4s ease;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step::before {
	content: counter(pt-step) !important; position: absolute !important; top: 1.25rem !important; left: 1.2rem !important; display: grid !important; place-items: center;
	width: 34px !important; height: 34px !important; border-radius: 50%; border: 0 !important;
	color: #fff; font: 700 0.95rem/1 var(--pt-body); background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 0 14px rgb(190 115 251 / 0.5);
	transition: transform 0.4s cubic-bezier(.3,1.6,.5,1);
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step::after { display: none !important; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step:focus-within { box-shadow: 0 0 0 1px rgb(201 163 245 / 0.5), 0 0 34px rgb(190 115 251 / 0.2); }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step:focus-within::before { transform: scale(1.12); }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title { color: #fff !important; font: 700 1.05rem/1.2 var(--pt-banner) !important; letter-spacing: 0.08em; text-transform: uppercase; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__container { padding: 0 !important; }

/* Fields: glow on focus; the label turns lilac. */
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select { border-radius: 12px !important; transition: border-color 0.25s ease, box-shadow 0.25s ease !important; }
.wc-block-components-text-input input:focus, .wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.wc-block-components-textarea:focus, .wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--pt-lilac) !important; box-shadow: 0 0 0 3px rgb(190 115 251 / 0.25), 0 0 18px rgb(190 115 251 / 0.25) !important; outline: none !important;
}
.wc-block-components-text-input.is-active label, .wc-block-components-text-input input:focus + label { color: var(--pt-lilac) !important; }
.wc-block-components-text-input.has-error input, .wc-block-components-combobox.has-error input { border-color: #ff8fab !important; }
.wc-block-components-validation-error { color: #ff9fb8 !important; }
.wc-block-components-address-form__address_2-toggle, .wc-block-components-address-card__edit { color: var(--pt-lilac) !important; }
.wc-block-components-address-card { border-color: rgb(201 163 245 / 0.25) !important; border-radius: 12px !important; background: rgb(255 255 255 / 0.03); }

/* Checkboxes and payment choices. */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border-radius: 6px !important; border: 1.5px solid rgb(201 163 245 / 0.5) !important; background: transparent !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--pt-btn-grad) !important; border-color: transparent !important; box-shadow: 0 0 12px rgb(190 115 251 / 0.6); }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option {
	border-radius: 14px !important; margin-bottom: 0.6rem; background: rgb(255 255 255 / 0.03);
	box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.22) !important; transition: box-shadow 0.3s ease, background 0.3s ease;
}
.wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option:has(.wc-block-components-radio-control__option-checked) {
	background: rgb(190 115 251 / 0.1); box-shadow: inset 0 0 0 1.5px var(--pt-lilac), 0 0 20px rgb(190 115 251 / 0.25) !important;
}
.wc-block-components-radio-control__input { border-color: rgb(201 163 245 / 0.6) !important; }
.wc-block-components-radio-control__input:checked { border-color: var(--pt-lilac) !important; }
.wc-block-components-radio-control__input:checked::before { background: var(--pt-accent) !important; box-shadow: 0 0 8px rgb(218 112 214 / 0.9); }
.wc-block-checkout__terms { color: var(--pt-muted); font-size: 0.88rem; }
.wc-block-checkout__terms a { color: var(--pt-lilac); }

/* Order summary in the checkout sidebar. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title-text { color: #fff; font: 700 1.1rem/1.2 var(--pt-banner) !important; letter-spacing: 0.08em; text-transform: uppercase; }
.wc-block-components-order-summary-item__image img { border-radius: 10px !important; }
.wc-block-components-order-summary-item__quantity {
	border: 0 !important; color: #fff !important; background: var(--pt-cart-grad) !important; box-shadow: 0 0 10px rgb(192 38 211 / 0.6) !important; font-weight: 700;
}
.wc-block-components-order-summary-item__description .wc-block-components-product-name { color: #fff; font: 700 1rem/1.25 var(--pt-display); }
.wc-block-components-order-summary-item__total-price { color: #fff; font-weight: 700; }

/* Notices. */
.wc-block-components-notice-banner {
	border: 0 !important; border-radius: 14px !important; color: var(--pt-text) !important;
	background: rgb(255 255 255 / 0.04) !important; box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.3);
}
.wc-block-components-notice-banner.is-error { box-shadow: inset 0 0 0 1px #ff6b9b, 0 0 20px rgb(255 61 127 / 0.15); }
.wc-block-components-notice-banner.is-success { box-shadow: inset 0 0 0 1px var(--pt-lilac), 0 0 20px rgb(190 115 251 / 0.2); }
.wc-block-components-notice-banner > svg { border-radius: 50%; }
.wc-block-components-notice-banner.is-error > svg { background: #d0266f !important; fill: #fff; }
.wc-block-components-notice-banner.is-success > svg { background: var(--pt-accent-deep) !important; fill: #fff; }

/* ---- Thank you (order received) ---- */
.woocommerce-order, .wp-block-woocommerce-order-confirmation-status { position: relative; }
.woocommerce-order { max-width: 900px; margin: 0 auto; }
.woocommerce-order .woocommerce-thankyou-order-received, .wc-block-order-confirmation-status p:first-child {
	padding: 1.25rem; border-radius: 16px; text-align: center; color: #fff;
	font: 500 1.25rem/1.5 var(--pt-display); font-style: italic;
	background: rgb(190 115 251 / 0.1); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.4), 0 0 30px rgb(190 115 251 / 0.2);
	animation: pt-dialog-in 0.8s cubic-bezier(.2,.8,.2,1) 0.3s both;
}
.woocommerce-order ul.order_details, .wc-block-order-confirmation-summary-list {
	display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0.75rem; margin: 1.5rem 0 2rem !important; padding: 0 !important; list-style: none;
}
.woocommerce-order ul.order_details::before, .woocommerce-order ul.order_details::after { display: none !important; }
.woocommerce-order ul.order_details li, .wc-block-order-confirmation-summary-list-item {
	float: none !important; margin: 0 !important; padding: 1rem 1.1rem !important; border: 0 !important; border-radius: 14px;
	color: var(--pt-muted); font-size: 0.72rem !important; letter-spacing: 0.18em; text-transform: uppercase;
	background: linear-gradient(170deg, rgb(36 12 32 / 0.85), rgb(14 4 12 / 0.9)); box-shadow: 0 0 0 1px rgb(201 163 245 / 0.2);
	animation: pt-card-in 0.7s cubic-bezier(.2,.9,.3,1) both;
}
.woocommerce-order ul.order_details li:nth-child(2) { animation-delay: 0.08s; } .woocommerce-order ul.order_details li:nth-child(3) { animation-delay: 0.16s; }
.woocommerce-order ul.order_details li:nth-child(4) { animation-delay: 0.24s; } .woocommerce-order ul.order_details li:nth-child(5) { animation-delay: 0.32s; }
.woocommerce-order ul.order_details li strong, .wc-block-order-confirmation-summary-list-item__value {
	display: block; margin-top: 0.45rem; color: #fff; font: 700 1rem/1.3 var(--pt-body) !important; letter-spacing: 0; text-transform: none;
}
.woocommerce-order h2, .wp-block-woocommerce-order-confirmation-totals-wrapper h2, .wp-block-woocommerce-order-confirmation-billing-wrapper h2 {
	font: 700 1.3rem/1.2 var(--pt-banner) !important; text-transform: uppercase; letter-spacing: 0.06em;
}
.woocommerce-order section, .wc-block-order-confirmation-totals, .wc-block-order-confirmation-billing-address {
	margin-bottom: 1.5rem; padding: 1.4rem; border-radius: 18px; border: 0 !important;
	background: linear-gradient(170deg, rgb(36 12 32 / 0.8), rgb(14 4 12 / 0.9)); box-shadow: 0 0 0 1px rgb(201 163 245 / 0.18);
}

/* Phones. */
@media (max-width: 781px) {
	.commerce-steps { margin-bottom: 1.5rem; }
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step { padding: 3.6rem 1.1rem 1.1rem !important; }
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step::before { top: 1rem !important; left: 1.1rem !important; }
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading { margin-left: 2.8rem !important; margin-top: -2.55rem !important; }
	.wp-block-woocommerce-cart .wc-block-cart-item__image img { width: 72px; }
}

/* The price cell stretches to the full height of its row like the others. */
@media (min-width: 700px) {
	.wp-block-woocommerce-cart .wc-block-cart-items__row td.wc-block-cart-item__total { display: table-cell !important; vertical-align: middle; text-align: right; }
}
@media (min-width: 700px) {
	.wp-block-woocommerce-cart .wc-block-cart-items__header-image, .wp-block-woocommerce-cart .wc-block-cart-items__row td.wc-block-cart-item__image { width: 128px !important; }
}

/* Country / State dropdowns match the other fields; one card for the order summary, not two. */
.wc-blocks-components-select .wc-blocks-components-select__container {
	border: 0 !important; border-radius: 12px !important; background: var(--pt-surface) !important; box-shadow: inset 0 0 0 1px var(--pt-line) !important;
}
.wc-blocks-components-select .wc-blocks-components-select__container:focus-within { box-shadow: inset 0 0 0 1px var(--pt-lilac), 0 0 0 3px rgb(190 115 251 / 0.25) !important; }
.wc-blocks-components-select .wc-blocks-components-select__select { border: 0 !important; box-shadow: none !important; background: transparent !important; }
.wc-blocks-components-select .wc-blocks-components-select__label { color: var(--pt-muted) !important; }
.wc-blocks-components-select .wc-blocks-components-select__expand { fill: var(--pt-lilac) !important; }
.wp-block-woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__content { border: 0 !important; box-shadow: none !important; background: transparent !important; }

/* Empty cart: "Browse store" as a button, and the "New in store" picks as cards. */
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title + p a,
.wp-block-woocommerce-empty-cart-block p.has-text-align-center a {
	display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; padding: 0.85rem 1.5rem; border-radius: 12px;
	color: #fff !important; text-decoration: none !important; font: 700 0.85rem/1 var(--pt-body); letter-spacing: 0.1em; text-transform: uppercase;
	background: var(--pt-btn-grad); background-size: 200% 100%; box-shadow: 0 6px 18px rgb(74 43 196 / 0.4);
	transition: box-shadow 0.3s ease, background-position 0.6s ease;
}
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title + p a::after, .wp-block-woocommerce-empty-cart-block p.has-text-align-center a::after { content: "→"; }
.wp-block-woocommerce-empty-cart-block p.has-text-align-center a:hover { background-position: 100% 0; box-shadow: var(--pt-btn-glow); }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 1.5rem; margin: 2rem 0 0 !important; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
	position: relative; display: flex; flex-direction: column; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 0 1.1rem !important; border: 0 !important;
	border-radius: 16px; overflow: hidden; text-align: center;
	background: linear-gradient(170deg, rgb(40 14 34 / 0.92), rgb(16 4 12 / 0.96)); box-shadow: 0 0 0 1px rgb(201 163 245 / 0.14), 0 16px 34px rgb(0 0 0 / 0.45);
	transition: transform 0.45s cubic-bezier(.2,.7,.2,1), box-shadow 0.4s ease;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover { transform: translateY(-6px); box-shadow: 0 0 0 1px rgb(201 163 245 / 0.5), 0 0 34px rgb(190 115 251 / 0.22), 0 24px 50px rgb(0 0 0 / 0.6); }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image { margin: 0 0 0.9rem !important; overflow: hidden; background: #efe7dd; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: scale 1.2s cubic-bezier(.2,.7,.2,1); }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product:hover .wc-block-grid__product-image img { scale: 1.06; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title { padding: 0 1rem; color: #fff !important; text-decoration: none; font: 700 1.1rem/1.25 var(--pt-display) !important; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-link { text-decoration: none !important; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-price { margin: 0.4rem 0 0.9rem; color: var(--pt-lilac); font-weight: 700; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart { margin-top: auto; padding: 0 1rem; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link { width: 100%; }
.wp-block-woocommerce-empty-cart-block .wc-block-grid__product-onsale {
	position: absolute; top: 0.8rem; left: 0.8rem; z-index: 2; margin: 0; padding: 0.35rem 0.7rem; border: 0 !important; border-radius: 99px;
	color: #fff; font: 700 0.68rem/1 var(--pt-body); letter-spacing: 0.12em; text-transform: uppercase; background: linear-gradient(110deg, #c0306b, #da70d6);
}

/* Phones (WooCommerce's narrow cart layout): the card is the row itself. */
.wc-block-cart.is-mobile table.wc-block-cart-items { border-spacing: 0; margin-top: 0; }
.wc-block-cart.is-mobile .wc-block-cart-items__row {
	grid-template-columns: 64px minmax(0, 1fr) auto !important; gap: 0 0.85rem; align-items: start;
	margin-bottom: 12px; padding: 0.9rem !important; border-radius: 16px;
	background: linear-gradient(170deg, rgb(40 14 34 / 0.88), rgb(16 4 12 / 0.94)); box-shadow: inset 0 0 0 1px rgb(201 163 245 / 0.16);
}
.wc-block-cart.is-mobile .wc-block-cart-items__row td { padding: 0 !important; background: none !important; box-shadow: none !important; border-radius: 0 !important; }
.wc-block-cart.is-mobile .wc-block-cart-items__row td.wc-block-cart-item__image { grid-column: 1; width: auto !important; }
.wc-block-cart.is-mobile .wc-block-cart-item__image img { width: 64px !important; }
.wc-block-cart.is-mobile .wc-block-cart-items__row td.wc-block-cart-item__product { grid-column: 2; min-width: 0; }
.wc-block-cart.is-mobile .wc-block-cart-items__row td.wc-block-cart-item__total { grid-column: 3; grid-row: 1; display: block !important; text-align: right; font-size: 0.98rem; }
.wc-block-cart.is-mobile .wc-block-components-product-name { font-size: 1.05rem !important; }
