/* ==========================================================================
   WINKT – WooCommerce
   ========================================================================== */

.shop-body { padding-top: clamp(32px, 5vw, 56px); padding-bottom: var(--section); }
.shop-body--product { padding-top: 28px; }

/* ---------- Buttons ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button,
.wc-block-components-button:not(.is-link),
.wp-element-button.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 0;
	padding: 0.85em 1.5em;
	border: var(--stroke) solid var(--ink) !important;
	border-radius: 999px !important;
	background: var(--violet-deep) !important;
	color: var(--white) !important;
	font: 700 1rem/1.1 var(--f-body) !important;
	text-decoration: none;
	box-shadow: 0 4px 0 var(--ink);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	cursor: pointer;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 0 var(--ink);
	color: var(--white) !important;
}
.woocommerce a.button:active,
.woocommerce button.button:active { transform: translateY(3px); box-shadow: 0 1px 0 var(--ink); }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #place_order,
.woocommerce a.checkout-button,
.wc-block-cart__submit-button.wc-block-components-button,
.wc-block-components-checkout-place-order-button.wc-block-components-button {
	background: var(--sun) !important;
	color: var(--ink) !important;
	font-size: 1.0625rem !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #place_order:hover,
.woocommerce a.checkout-button:hover,
.wc-block-cart__submit-button.wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button.wc-block-components-button:hover { color: var(--ink) !important; }

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.disabled { opacity: 0.55; transform: none; box-shadow: 0 4px 0 var(--ink); }

/* ---------- Notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper .wc-block-components-notice-banner,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin: 0 0 28px;
	padding: 16px 20px !important;
	border: 2px solid var(--ink) !important;
	border-radius: 18px !important;
	background: var(--lilac) !important;
	color: var(--ink) !important;
	font-weight: 600;
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message { background: var(--green-soft) !important; border-color: var(--green) !important; }
.woocommerce-error { background: var(--red-soft) !important; border-color: var(--tomato) !important; flex-direction: column; align-items: flex-start; }
.woocommerce-message .button,
.woocommerce-info .button { order: 2; margin-left: auto; padding: 0.55em 1.1em; font-size: 0.9375rem !important; box-shadow: 0 3px 0 var(--ink); }
.wc-block-components-notice-banner > svg { fill: currentColor; background: none !important; }

/* ---------- Breadcrumbs ---------- */
.winkt-crumbs { font-size: 0.9375rem; color: var(--ink-soft); margin-bottom: 24px; }
.winkt-crumbs a { color: var(--ink-soft); font-weight: 600; text-decoration: none; }
.winkt-crumbs a:hover { color: var(--violet-deep); text-decoration: underline; }
.winkt-crumbs .sep { margin: 0 8px; opacity: 0.6; }

/* ---------- Shop archive ---------- */
.woocommerce .woocommerce-result-count { color: var(--ink-soft); margin: 0 0 28px; }
.woocommerce .woocommerce-ordering { margin: 0 0 28px; }
.woocommerce .woocommerce-ordering select,
.woocommerce form .form-row select,
.woocommerce-page form .form-row select {
	padding: 10px 40px 10px 14px;
	border: 2px solid var(--lilac-2);
	border-radius: 12px;
	background-color: var(--white);
	color: var(--ink);
	font: 600 0.9375rem var(--f-body);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: clamp(20px, 2.4vw, 32px);
	margin: 0;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	position: relative;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: var(--ink); text-decoration: none; }
.woocommerce ul.products li.product a img {
	width: 100%;
	aspect-ratio: 9 / 10;
	object-fit: cover;
	margin: 0 0 20px;
	border-radius: 4px 10px 10px 4px;
	box-shadow: 0 18px 32px -14px rgba(27, 20, 100, 0.55), 0 6px 10px -6px rgba(27, 20, 100, 0.35);
	transition: transform 0.25s ease;
}
.woocommerce ul.products li.product a:hover img { transform: translateY(-6px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	margin: 0 0 6px;
	font-family: var(--f-display);
	font-size: 1.375rem;
	font-weight: 800;
	line-height: 1.15;
	color: var(--ink);
}
.winkt-loop-sub { margin: 0 0 12px; font-size: 0.9375rem; line-height: 1.45; color: var(--ink-soft); }
.woocommerce ul.products li.product .price { margin: auto 0 16px; color: var(--ink); font-size: 1.125rem; font-weight: 700; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin-top: 0; padding: 0.6em 1.15em; font-size: 0.9375rem !important; box-shadow: 0 3px 0 var(--ink); }
.woocommerce ul.products li.product .added_to_cart { margin-top: 10px; font-weight: 700; color: var(--green); }

.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: -14px !important;
	right: -12px !important;
	left: auto !important;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 66px; height: 66px;
	min-width: 0; min-height: 0;
	margin: 0 !important;
	padding: 0;
	border: var(--stroke) solid var(--ink);
	border-radius: 50%;
	background: var(--tomato);
	color: var(--white);
	font-family: var(--f-display);
	font-weight: 900;
	font-size: 1rem;
	line-height: 1;
	transform: rotate(-12deg);
}

.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; margin-top: 48px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid; place-items: center;
	min-width: 44px; height: 44px;
	border: 2px solid var(--ink);
	border-radius: 50%;
	color: var(--ink);
	font-weight: 700;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: var(--white); }

/* ---------- Single product ---------- */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 32px clamp(40px, 6vw, 96px);
	align-items: start;
}
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product > .summary { grid-column: auto; }
.woocommerce div.product > span.onsale { display: none; }

.woocommerce div.product div.images,
.woocommerce div.product div.summary { float: none !important; width: auto !important; margin: 0 !important; }

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border-radius: 6px 14px 14px 6px; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .flex-viewport {
	border-radius: 6px 14px 14px 6px;
}
.woocommerce div.product div.images .flex-viewport,
.woocommerce div.product div.images > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child {
	box-shadow: 0 30px 50px -24px rgba(27, 20, 100, 0.6), 0 10px 18px -10px rgba(27, 20, 100, 0.4);
}
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 10px;
	margin-top: 16px;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px !important; float: none !important; }
.woocommerce div.product div.images .flex-control-thumbs li img {
	border-radius: 10px;
	border: 2px solid transparent;
	opacity: 0.65;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--violet); }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 14px; right: 14px;
	background: var(--white);
	border: 2px solid var(--ink);
	width: 40px; height: 40px;
}

.winkt-series {
	display: inline-block;
	margin: 0 0 14px;
	padding: 6px 16px;
	border: 2px solid var(--ink);
	border-radius: 999px;
	background: var(--lilac);
	font-family: var(--f-display);
	font-style: italic;
	font-weight: 800;
	font-size: 0.9375rem;
}
.woocommerce div.product .product_title {
	font-size: clamp(2.25rem, 4.6vw, 3.75rem);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.025em;
	margin: 0 0 14px;
	text-wrap: balance;
}
.winkt-subtitle { font-size: 1.1875rem; line-height: 1.45; color: var(--ink-soft); margin: 0 0 6px; max-width: 40ch; }
.winkt-byline { font-weight: 700; margin: 0 0 18px; }

.winkt-rating { display: flex; align-items: center; gap: 10px; margin: 0 0 20px; font-size: 0.9375rem; color: var(--ink-soft); font-weight: 600; }
.winkt-stars { position: relative; display: inline-block; line-height: 0; }
.winkt-stars svg { width: 20px; height: 20px; display: inline-block; }
.winkt-stars__base { color: var(--lilac-2); display: flex; }
.winkt-stars__fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--sun-deep); display: flex; white-space: nowrap; }
.winkt-stars__fill svg { flex: none; }

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 14px;
	color: var(--ink);
	font-family: var(--f-display);
	font-weight: 900;
	font-size: 2.25rem;
	line-height: 1;
}
.woocommerce div.product p.price del { font-size: 1.375rem; font-weight: 600; }
.woocommerce div.product p.price ins { color: var(--tomato); }

.winkt-offer-note {
	margin: 0 0 22px;
	padding: 12px 16px;
	background: var(--sun);
	border: 2px solid var(--ink);
	border-radius: 14px;
	font-weight: 700;
	font-size: 0.9375rem;
}
.winkt-offer-note p { margin: 0; }
.winkt-bundle-progress {
	margin: 0 0 24px;
	padding: 12px 16px;
	border: 2px solid var(--ink);
	border-radius: 14px;
	background: var(--sun);
	color: var(--ink);
	font-weight: 700;
}
.winkt-offer-note p + p { margin-top: 4px; }

.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1.125rem; line-height: 1.6; margin-bottom: 24px; max-width: 52ch; }

.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 14px; margin: 0 0 18px; }
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .button { float: none; font-size: 1.0625rem !important; padding: 0.9em 2em; }
.woocommerce .quantity .qty {
	width: 84px;
	height: 100%;
	min-height: 52px;
	padding: 8px;
	border: var(--stroke) solid var(--ink);
	border-radius: 999px;
	background: var(--white);
	color: var(--ink);
	font: 700 1.0625rem var(--f-body);
	text-align: center;
}
.woocommerce div.product .stock { color: var(--green); font-weight: 700; }
.woocommerce div.product .out-of-stock { color: var(--tomato); }

.winkt-ebook-note { font-size: 0.9375rem; color: var(--ink-soft); margin: 0 0 24px; }

.winkt-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 1px;
	margin: 0;
	background: var(--line);
	border: 1px solid var(--line);
	border-radius: 16px;
	overflow: hidden;
}
.winkt-facts > div { background: var(--white); padding: 12px 16px; }
.winkt-facts dd { white-space: nowrap; }
.winkt-facts dt { font-size: 0.8125rem; color: var(--ink-soft); font-weight: 600; }
.winkt-facts dd { margin: 2px 0 0; font-weight: 700; }

/* Details below */
.winkt-book-details {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
	gap: 40px clamp(40px, 6vw, 88px);
	align-items: start;
	margin-top: clamp(40px, 6vw, 72px);
	padding-top: clamp(40px, 6vw, 72px);
	border-top: 2px solid var(--line);
}
.winkt-block + .winkt-block { margin-top: clamp(40px, 5vw, 56px); }
.winkt-block h2 { font-size: clamp(1.625rem, 3vw, 2.25rem); }
.winkt-block--desc .winkt-prose p { font-size: 1.125rem; }

.winkt-features { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.winkt-features li {
	position: relative;
	padding: 20px 22px 20px 64px;
	background: var(--lilac);
	border-radius: 18px;
}
.winkt-features li::before {
	content: "!";
	position: absolute;
	left: 18px; top: 18px;
	display: grid; place-items: center;
	width: 32px; height: 32px;
	border: 2px solid var(--ink);
	border-radius: 50% 50% 50% 8px;
	background: var(--sun);
	font-family: var(--f-display);
	font-weight: 900;
	color: var(--ink);
}
.winkt-features h3 { font-size: 1.1875rem; margin: 2px 0 4px; }
.winkt-features p { margin: 0; color: var(--ink-soft); }

.winkt-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.winkt-quote {
	margin: 0;
	padding: 24px 24px 20px;
	border: var(--stroke) solid var(--ink);
	border-radius: 28px 28px 28px 8px;
	background: var(--white);
}
.winkt-quote blockquote { margin: 0 0 12px; }
.winkt-quote blockquote p { margin: 0; font-family: var(--f-display); font-style: italic; font-weight: 700; font-size: 1.3125rem; line-height: 1.3; }
.winkt-quote figcaption { font-size: 0.9375rem; font-weight: 700; color: var(--ink-soft); }

.winkt-book-details__side {
	position: sticky;
	top: calc(var(--header-h) + 24px);
	padding: 28px;
	background: var(--lilac);
	border-radius: 24px;
}
.winkt-book-details__side h2 { font-size: 1.5rem; margin-bottom: 14px; }
.winkt-details-table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.winkt-details-table th,
.winkt-details-table td { padding: 10px 0; border-bottom: 1px solid var(--lilac-2); text-align: left; vertical-align: top; }
.winkt-details-table tr:last-child th,
.winkt-details-table tr:last-child td { border-bottom: 0; }
.winkt-details-table th { width: 46%; padding-right: 12px; font-weight: 600; color: var(--ink-soft); }
.winkt-details-table td { font-weight: 700; }

.winkt-series-more { margin-top: clamp(56px, 8vw, 96px); padding-top: clamp(40px, 6vw, 72px); border-top: 2px solid var(--line); }
.winkt-series-more h2 { margin-bottom: 32px; }
.winkt-shelf--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1000px; }
.winkt-shelf--compact .winkt-book__title { font-size: 1.1875rem; }
.winkt-shelf--compact .winkt-book__price { margin-bottom: 0; }

/* Product reviews */
.woocommerce #reviews #comments h2 { font-size: 1.625rem; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border-color: var(--lilac-2); border-radius: 16px; }
.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: var(--sun-deep); }
.woocommerce #reviews h2,
.woocommerce #review_form #reply-title { display: block; font-family: var(--f-display); font-weight: 800; font-size: 1.375rem; margin-bottom: 8px; }
.woocommerce #review_form #respond { padding: 28px; background: var(--lilac); border-radius: 24px; }
.woocommerce #review_form #respond p { margin-bottom: 14px; }
.woocommerce #review_form #respond label { display: block; font-weight: 700; font-size: 0.9375rem; margin-bottom: 6px; }
.woocommerce #review_form #respond .comment-form-cookies-consent label { display: inline; font-weight: 500; }
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond textarea {
	width: 100%;
	padding: 12px 16px;
	border: 2px solid var(--lilac-2);
	border-radius: 14px;
	background: var(--white);
	color: var(--ink);
	font: 500 1rem/1.4 var(--f-body);
}
.woocommerce #review_form #respond input:focus,
.woocommerce #review_form #respond textarea:focus { outline: none; border-color: var(--violet-deep); box-shadow: 0 0 0 4px rgba(153, 51, 255, 0.18); }
.woocommerce #review_form #respond .comment-form-author,
.woocommerce #review_form #respond .comment-form-email { display: inline-block; width: calc(50% - 8px); vertical-align: top; }
.woocommerce #review_form #respond .comment-form-author { margin-right: 12px; }
@media (max-width: 560px) {
	.woocommerce #review_form #respond .comment-form-author,
	.woocommerce #review_form #respond .comment-form-email { display: block; width: 100%; margin-right: 0; }
}

/* ---------- Forms (account, checkout classic) ---------- */
.woocommerce form .form-row label { font-weight: 700; font-size: 0.9375rem; color: var(--ink); }
.woocommerce form .form-row .input-text,
.woocommerce-page form .form-row .input-text,
.woocommerce form .form-row textarea,
.woocommerce-page form .form-row textarea,
.woocommerce .select2-container .select2-selection--single,
.woocommerce-cart table.cart td.actions .coupon .input-text {
	min-height: 50px;
	padding: 12px 16px;
	border: 2px solid var(--lilac-2);
	border-radius: 14px;
	background: var(--white);
	color: var(--ink);
	font: 500 1rem/1.4 var(--f-body);
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; color: var(--ink); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce-cart table.cart td.actions .coupon .input-text:focus { outline: none; border-color: var(--violet-deep); box-shadow: 0 0 0 4px rgba(153, 51, 255, 0.18); }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--tomato); }
.woocommerce form .form-row .required { color: var(--tomato); text-decoration: none; }
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password {
	margin: 0 0 32px;
	padding: clamp(24px, 3vw, 36px);
	border: 2px solid var(--lilac-2);
	border-radius: 24px;
	background: var(--white);
}
.woocommerce .col2-set,
.woocommerce-page .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.woocommerce .col2-set::before,
.woocommerce .col2-set::after { display: none; }
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2 { float: none; width: auto; max-width: none; }
.woocommerce #customer_login h2 { font-size: 1.75rem; }
.woocommerce .woocommerce-form-login__rememberme { display: block; margin: 8px 0 16px; }
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"] { accent-color: var(--violet-deep); }

/* ---------- Classic cart ---------- */
.woocommerce table.shop_table {
	border: 2px solid var(--lilac-2);
	border-radius: 20px;
	border-collapse: separate;
	overflow: hidden;
	margin-bottom: 32px;
}
.woocommerce table.shop_table th { background: var(--lilac); font-weight: 700; color: var(--ink); padding: 14px 16px; }
.woocommerce table.shop_table td { border-top: 1px solid var(--lilac-2); padding: 16px; color: var(--ink); }
.woocommerce table.shop_table td.product-name a { color: var(--ink); font-weight: 700; text-decoration: none; }
.woocommerce table.cart img { width: 72px; border-radius: 6px; }
.woocommerce a.remove { color: var(--tomato) !important; border: 2px solid currentColor; line-height: 0.9; }
.woocommerce a.remove:hover { background: var(--tomato); color: var(--white) !important; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	max-width: 480px;
	margin-left: auto;
	padding: 28px;
	background: var(--lilac);
	border-radius: 24px;
}
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 1.75rem; }
.woocommerce .cart-collaterals .cart_totals table.shop_table { background: var(--white); }
.woocommerce .wc-proceed-to-checkout a.checkout-button { display: flex; width: 100%; }
.woocommerce-cart table.cart td.actions .coupon .input-text { width: 180px; margin-right: 8px; }

/* ---------- Classic checkout ---------- */
.woocommerce-checkout h3 { font-size: 1.625rem; }
.woocommerce-checkout #order_review_heading { margin-top: 32px; }
.woocommerce-checkout #payment {
	background: var(--lilac) !important;
	border-radius: 24px !important;
	padding: 8px;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--lilac-2); }
.woocommerce-checkout #payment div.payment_box { background: var(--white) !important; border-radius: 14px; color: var(--ink); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--white) !important; }
.woocommerce #payment #place_order { width: 100%; margin-top: 12px; }

/* ---------- Block cart & checkout ---------- */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-family: var(--f-body); color: var(--ink); }
.wc-block-components-title,
.wc-block-cart .wc-block-cart__totals-title,
.wc-block-components-checkout-step__title {
	font-family: var(--f-display) !important;
	font-weight: 800 !important;
	text-transform: none !important;
	letter-spacing: -0.01em;
	color: var(--ink);
}
.wc-block-cart .wc-block-cart__totals-title { font-size: 1.375rem !important; }
.wc-block-components-checkout-step__title { font-size: 1.5rem !important; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	padding: 24px !important;
	background: var(--lilac);
	border-radius: 24px;
}
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-components-sidebar .wc-block-components-panel { color: var(--ink); }
.wc-block-cart-items { border-collapse: separate; }
.wc-block-cart-items th { color: var(--ink-soft) !important; font-weight: 700 !important; text-transform: none !important; }
.wc-block-cart-items .wc-block-cart-items__row { border-color: var(--lilac-2) !important; }
.wc-block-cart-item__image img { border-radius: 6px; box-shadow: 0 8px 16px -10px rgba(27, 20, 100, 0.6); }
.wc-block-components-product-name { color: var(--ink) !important; font-family: var(--f-display); font-weight: 800; font-size: 1.125rem !important; text-decoration: none !important; }
.wc-block-components-product-price__value.is-discounted,
.wc-block-components-product-badge,
.wc-block-components-sale-badge { color: var(--tomato) !important; border-color: var(--tomato) !important; }
.wc-block-components-quantity-selector { border-radius: 999px !important; border: 2px solid var(--ink) !important; overflow: hidden; }
.wc-block-components-quantity-selector::after { display: none; }
.wc-block-components-quantity-selector input { color: var(--ink) !important; font-weight: 700 !important; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { color: var(--ink) !important; }
.wc-block-cart-item__remove-link { color: var(--ink-soft) !important; }
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value { color: var(--ink); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-family: var(--f-display); font-weight: 900 !important; font-size: 1.375rem !important; }
.wc-block-components-text-input input,
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="text"],
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea,
.wc-block-components-form .wc-block-components-text-input input {
	border: 2px solid var(--lilac-2) !important;
	border-radius: 14px !important;
	color: var(--ink) !important;
	background: var(--white) !important;
}
.wc-block-components-text-input.is-active input,
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--violet-deep) !important;
	box-shadow: 0 0 0 3px rgba(153, 51, 255, 0.18) !important;
}
.wc-block-components-text-input label,
.wc-blocks-components-select__label { color: var(--ink-soft) !important; }
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option { color: var(--ink); }
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked { border-color: var(--violet-deep) !important; }
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked::before { background: var(--violet-deep) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: var(--violet-deep) !important; border-color: var(--violet-deep) !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--white) !important; }
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button { width: 100%; min-height: 56px; }
.wc-block-components-checkout-return-to-cart-button { color: var(--ink) !important; font-weight: 700; }
.wc-block-components-totals-coupon__button { min-height: 0; }
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 { font-family: var(--f-display); font-weight: 900; color: var(--ink); }
.wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }

/* ---------- My account ---------- */
/* Flex, not grid: notices printed straight into .woocommerce (e.g. "added to your basket")
   sit full width on top instead of taking the navigation's column. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 32px 40px;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > * {
	flex: 1 1 100%;
	order: -1;
	margin-bottom: 0;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation {
	flex: 0 0 240px;
	order: 0;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content {
	flex: 1 1 0;
	min-width: 0;
	order: 1;
}
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-message:focus,
.woocommerce-info:focus,
.woocommerce-error:focus,
.woocommerce-notices-wrapper:focus { outline: none; }
/* Notices printed outside the account area (e.g. a store-notices block) move to the top, full width. */
.woocommerce-account .page-content { display: flex; flex-direction: column; }
.woocommerce-account .page-content > [class*="notice"] { order: -1; width: 100%; max-width: none; margin: 0 0 28px; }
.woocommerce-account [class*="notice"]:focus { outline: none; }
.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 10px;
	background: var(--lilac);
	border-radius: 20px;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 11px 16px;
	border-radius: 12px;
	color: var(--ink);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--white); }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--violet-deep); color: var(--white); }
.woocommerce-MyAccount-content > p:first-child { font-size: 1.125rem; }
.woocommerce-account .addresses .title h2,
.woocommerce-account .addresses .title h3 { font-size: 1.5rem; }
.woocommerce-account .addresses .title .edit { font-weight: 700; }
.woocommerce-account .woocommerce-Address { padding: 24px; background: var(--lilac); border-radius: 20px; }
.woocommerce .woocommerce-customer-details address {
	max-width: 520px;
	padding: 20px 24px;
	border: 2px solid var(--lilac-2);
	border-radius: 20px;
	font-style: normal;
	line-height: 1.7;
}
.woocommerce-account .woocommerce-Address address { font-style: normal; }

/* Order received */
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0 0 32px; }
.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li {
	float: none;
	margin: 0;
	padding: 14px 18px;
	border: 2px solid var(--lilac-2);
	border-radius: 16px;
	font-size: 0.8125rem;
	text-transform: none;
	color: var(--ink-soft);
}
.woocommerce ul.order_details li strong { font-size: 1rem; color: var(--ink); }
.woocommerce .woocommerce-thankyou-order-received { font-family: var(--f-display); font-size: 1.75rem; font-weight: 800; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); }
	.woocommerce div.product div.images { position: static; max-width: 460px; }
	.winkt-book-details { grid-template-columns: minmax(0, 1fr); }
	.winkt-book-details__side { position: static; }
	.winkt-shelf--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-MyAccount-content { flex: 1 1 100%; }
	.woocommerce .col2-set,
	.woocommerce-page .col2-set { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.woocommerce ul.products { gap: 36px 16px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.125rem; }
	.winkt-loop-sub { display: none; }
	.woocommerce ul.products li.product .button { width: 100%; }
	.winkt-shelf--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce div.product form.cart .button { flex: 1; }
	.woocommerce span.onsale { width: 52px; height: 52px; font-size: 0.8125rem; }
}
