/*
Theme Name: GEVUY
Theme URI: https://gevuy.shop/
Author: GEWALT LLC
Description: Block theme for the GEVUY trading card and tabletop game store. Built for WooCommerce and the Site Editor, with a central Store details screen and a distraction-free checkout.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gevuy
Tags: e-commerce, block-patterns, full-site-editing, wide-blocks, accessibility-ready
WC requires at least: 9.0
WC tested up to: 11.2
*/

/* =========================================================
   Tokens
   ========================================================= */

:root {
	/* brand:start (generated by brandify.py; edit the brand profile, not these lines) */
	--tk-holo: linear-gradient(135deg, #ff8fb3 0%, #ffd27a 35%, #ffb38a 68%, #e391ff 100%);
	--tk-glow-1: rgba(224, 36, 94, .30);
	--tk-glow-2: rgba(255, 181, 61, .18);
	--tk-glow-btn: rgba(255, 210, 122, .25);
	--tk-shadow-rgb: 42, 16, 32;
	--tk-tile-1: #E0245E;
	--tk-tile-2: #2A1020;
	--tk-tile-3: linear-gradient(135deg, #8E2C8C, #E0245E);
	--tk-tile-4: #B4541A;
	--tk-img-bg: linear-gradient(160deg, #FFEAF1, #FFF8FA);
	--tk-thumb-bg: #2B1222;
	--tk-text-2: #4A3240;
	--tk-faint: #9A8590;
	--tk-divider: #F1E4EA;
	--tk-display-stretch: 100%;
	/* brand:end */
	--tk-line-dark: rgba(255, 255, 255, .12);
	--tk-card-shadow: 0 1px 2px rgba(var(--tk-shadow-rgb), .06), 0 12px 30px rgba(var(--tk-shadow-rgb), .07);
	--tk-radius: 20px;
}

/* =========================================================
   Base
   ========================================================= */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

h1, h2, h3, h4, h5, h6,
.wp-block-site-title,
.wp-block-post-title,
.wp-block-query-title,
.wc-block-components-title {
	font-stretch: var(--tk-display-stretch);
	text-wrap: balance;
}
p { text-wrap: pretty; }

/* Dark bands sit directly under the header: remove the default gap WooCommerce's product wrapper gets. */
.wp-site-blocks > .woocommerce.product,
.wp-site-blocks > main { margin-block-start: 0; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--sun);
	outline-offset: 2px;
	border-radius: 6px;
	box-shadow: 0 0 0 5px var(--wp--preset--color--ink);
}
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink); }

/* Holographic outline (CTA panel, Add to cart). */
.tk-cta-panel,
.tk-buy-box .single_add_to_cart_button { position: relative; isolation: isolate; }
.tk-cta-panel::after,
.tk-buy-box .single_add_to_cart_button::after {
	content: "";
	position: absolute;
	inset: -2px;
	border-radius: inherit;
	padding: 2px;
	background: var(--tk-holo);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

/* Soft light behind dark showcase areas. */
.tk-hero,
.tk-pdp-top,
.tk-page-head { position: relative; overflow: hidden; isolation: isolate; }
.tk-hero::before,
.tk-pdp-top::before,
.tk-page-head::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(620px 400px at 78% 45%, var(--tk-glow-1), transparent 70%),
		radial-gradient(520px 320px at 92% 90%, var(--tk-glow-2), transparent 70%);
}
.tk-pdp-top::before {
	background:
		radial-gradient(560px 380px at 26% 55%, var(--tk-glow-1), transparent 70%),
		radial-gradient(440px 300px at 16% 95%, var(--tk-glow-2), transparent 70%);
}
.tk-page-head::before { background: radial-gradient(520px 260px at 85% 0%, var(--tk-glow-1), transparent 70%); }
.tk-hero::after,
.tk-page-head::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px);
	background-size: 26px 26px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 45%, #000);
	mask-image: linear-gradient(90deg, transparent, #000 45%, #000);
}

/* =========================================================
   Header (dark)
   ========================================================= */

.tk-announcement p { margin: 0; }
.tk-announcement a { color: inherit; }

.tk-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--tk-line-dark); }
body.admin-bar .tk-header { top: var(--wp-admin--admin-bar--height, 0); }
.tk-header .wp-block-site-logo img { height: auto; }

.tk-header .wp-block-navigation a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.tk-header .wp-block-navigation a:hover { color: var(--wp--preset--color--white); }
.tk-header .wp-block-navigation__responsive-container-open,
.tk-header .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--white); }
.tk-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.tk-header .wp-block-navigation__responsive-container.is-menu-open a { color: var(--wp--preset--color--white); font-size: 1.25rem; }

/* Search: dark pill (header, mobile, search results band) */
.tk-header-search .wp-block-search__inside-wrapper,
.tk-mobile-search .wp-block-search__inside-wrapper,
.tk-band-search .wp-block-search__inside-wrapper {
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 999px;
	padding: 3px 3px 3px 14px;
}
.tk-header-search .wp-block-search__inside-wrapper { min-width: 290px; }
.tk-header-search .wp-block-search__input,
.tk-mobile-search .wp-block-search__input,
.tk-band-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--white);
	min-width: 0;
	font-size: .9375rem;
}
.tk-header-search .wp-block-search__input::placeholder,
.tk-mobile-search .wp-block-search__input::placeholder,
.tk-band-search .wp-block-search__input::placeholder { color: var(--wp--preset--color--ink-soft); opacity: 1; }
.tk-header-search .wp-block-search__button,
.tk-mobile-search .wp-block-search__button,
.tk-band-search .wp-block-search__button {
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	color: var(--wp--preset--color--white);
	margin-left: 0;
	padding: .55rem .75rem;
}
.tk-header-search .wp-block-search__button svg,
.tk-mobile-search .wp-block-search__button svg,
.tk-band-search .wp-block-search__button svg { fill: currentColor; }

/* Account + cart: round icon buttons */
.tk-header-tools .wp-block-woocommerce-customer-account a,
.tk-header-tools .wc-block-mini-cart__button {
	width: 44px;
	height: 44px;
	padding: 0;
	display: grid;
	place-items: center;
	border-radius: 999px;
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .16);
	color: var(--wp--preset--color--white) !important;
}
.tk-header-tools .wp-block-woocommerce-customer-account a:hover,
.tk-header-tools .wc-block-mini-cart__button:hover { background: rgba(255, 255, 255, .14); }
.tk-header-tools .wp-block-woocommerce-customer-account svg { color: var(--wp--preset--color--white); width: 24px; height: 24px; }
.tk-header-tools .wp-block-woocommerce-customer-account svg path { fill: currentColor; }
.tk-header-tools .wc-block-mini-cart__icon { color: var(--wp--preset--color--white); fill: currentColor; }
.tk-header-tools .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--sun) !important;
	color: var(--wp--preset--color--ink) !important;
	font-weight: 800;
	border: 0;
}

.tk-mobile-search { display: none; }
@media (max-width: 781px) {
	.tk-header-search { display: none !important; }
	.tk-mobile-search { display: block; }
	.tk-header .wp-block-site-logo img { width: 140px !important; }
	.tk-header-tools .wp-block-woocommerce-customer-account { display: none; }
}

/* Search on light pages (404, blog search) */
.wp-block-search__button-inside:not(.tk-header-search):not(.tk-mobile-search):not(.tk-band-search) .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 3px;
	background: var(--wp--preset--color--white);
}
.wp-block-search__button-inside:not(.tk-header-search):not(.tk-mobile-search):not(.tk-band-search) .wp-block-search__input { border: 0; }
.wp-block-search__button-inside:not(.tk-header-search):not(.tk-mobile-search):not(.tk-band-search) .wp-block-search__button { border-radius: 10px; }

/* =========================================================
   Buttons
   ========================================================= */

.tk-btn-glow .wp-block-button__link { box-shadow: 0 0 0 3px rgba(255, 255, 255, .12), 0 10px 40px var(--tk-glow-btn); }
.tk-btn-glow .wp-block-button__link:hover { background: var(--wp--preset--color--sky) !important; color: var(--wp--preset--color--ink) !important; }
.tk-btn-ghost .wp-block-button__link { border: 1.5px solid rgba(255, 255, 255, .38) !important; }
.tk-btn-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .08) !important; color: #fff !important; }

/* =========================================================
   Homepage
   ========================================================= */

.tk-hero-title { font-size: clamp(2.6rem, 5.4vw, 4.6rem) !important; line-height: .98 !important; }
.tk-fan { position: relative; }
.tk-fan::before {
	content: "";
	position: absolute;
	left: 30%;
	top: 6%;
	width: 42%;
	height: 78%;
	border-radius: 24px;
	background: var(--tk-holo);
	filter: blur(46px);
	opacity: .45;
	z-index: 0;
}
.tk-fan figure { position: relative; z-index: 1; margin: 0; }
.tk-fan img { width: 100%; height: auto; display: block; aspect-ratio: 600 / 520; }

.tk-benefits { border-top: 1px solid var(--tk-line-dark); padding-bottom: calc(var(--wp--preset--spacing--40) + 32px) !important; }
.tk-benefits svg { width: 26px; height: 26px; color: var(--wp--preset--color--sun); display: block; margin-bottom: .5rem; }
@media (min-width: 782px) {
	.tk-benefits .wp-block-column + .wp-block-column { border-left: 1px solid var(--tk-line-dark); padding-left: var(--wp--preset--spacing--40); }
}

/* Light sheet that slides up over the dark area */
.tk-sheet { position: relative; margin-top: -32px !important; background: var(--wp--preset--color--paper); border-radius: 32px 32px 0 0; }

/* Category tiles */
.tk-categories .wc-block-product-categories-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 20px;
	padding: 0;
	margin: 0;
	list-style: none;
}
.tk-categories .wc-block-product-categories-list-item {
	position: relative;
	margin: 0;
	min-height: 190px;
	border-radius: 22px;
	overflow: hidden;
	background: var(--tk-tile-1);
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 24px;
	transition: transform .15s ease;
}
.tk-categories .wc-block-product-categories-list-item:hover { transform: translateY(-3px); }
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+2) { background: var(--tk-tile-2); }
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+3) { background: var(--tk-tile-3); }
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+4) { background: var(--tk-tile-4); }
.tk-categories .wc-block-product-categories-list-item::before {
	content: "";
	position: absolute;
	right: -8px;
	top: -14px;
	width: 104px;
	height: 146px;
	background: url(assets/images/tile-card-1.svg) center / contain no-repeat;
	transform: rotate(14deg);
	pointer-events: none;
}
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+2)::before { background-image: url(assets/images/tile-card-2.svg); }
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+3)::before { background-image: url(assets/images/tile-card-3.svg); }
.tk-categories .wc-block-product-categories-list-item:nth-child(4n+4)::before { background-image: url(assets/images/tile-card-4.svg); }
.tk-categories .wc-block-product-categories-list-item > a {
	color: #fff;
	text-decoration: none;
	font-family: var(--wp--preset--font-family--display);
	font-stretch: var(--tk-display-stretch);
	font-weight: 800;
	font-size: 1.5rem;
	line-height: 1.1;
}
.tk-categories .wc-block-product-categories-list-item > a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tk-categories .wc-block-product-categories-list-item-count { position: relative; color: rgba(255, 255, 255, .8); font-size: .875rem; margin-top: .35rem; }
.tk-categories .wc-block-product-categories-list-item-count::before { content: none !important; }
.tk-categories .wc-block-product-categories-list-item-count::after { content: " items" !important; }
.tk-categories .wc-block-product-categories-list--depth-1,
.tk-categories .wc-block-product-categories-list-item__image { display: none; }

/* Buying guide checklist (dark band) */
.tk-checklist { list-style: none; padding: 0; margin: 0; }
.tk-checklist li { padding: 1rem 0 1rem 2.25rem; border-top: 1px solid rgba(255, 255, 255, .14); position: relative; }
.tk-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.2rem;
	width: 16px;
	height: 22px;
	border-radius: 3px;
	border: 2px solid transparent;
	background: linear-gradient(var(--wp--preset--color--ink), var(--wp--preset--color--ink)) padding-box, var(--tk-holo) border-box;
}

/* Service panels */
.tk-panel { background: var(--wp--preset--color--white); border-radius: var(--tk-radius); padding: 28px !important; box-shadow: var(--tk-card-shadow); }
.tk-panel h3 { margin-top: 0; }

/* FAQ */
.tk-faq { background: var(--wp--preset--color--paper) !important; }
.tk-faq details {
	background: var(--wp--preset--color--white);
	border-radius: 14px;
	padding: 0 1.25rem;
	margin: 0 0 .6rem;
	box-shadow: 0 1px 2px rgba(var(--tk-shadow-rgb), .05);
}
.tk-faq summary {
	cursor: pointer;
	list-style: none;
	padding: 1.1rem 2.5rem 1.1rem 0;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--medium);
	position: relative;
}
.tk-faq summary::-webkit-details-marker { display: none; }
.tk-faq summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: var(--wp--preset--color--paper);
	font-weight: 700;
	font-size: 1.1rem;
	line-height: 1;
}
.tk-faq details[open] summary::after { content: "−"; background: var(--wp--preset--color--ink); color: #fff; }
.tk-faq details > :not(summary) { margin-top: 0; padding-bottom: 1.1rem; max-width: 68ch; color: var(--tk-text-2); }

/* Closing CTA panel */
.tk-cta-panel { border-radius: 28px; padding: clamp(1.75rem, 4vw, 3rem) clamp(1.5rem, 4vw, 3.25rem) !important; overflow: hidden; }
.tk-cta-panel::before {
	content: "";
	position: absolute;
	right: -80px;
	top: -120px;
	width: 380px;
	height: 300px;
	background: radial-gradient(closest-side, var(--tk-glow-1), transparent);
	z-index: -1;
}

/* =========================================================
   Product cards (all grids)
   ========================================================= */

.wc-block-product-template .wc-block-product {
	background: var(--wp--preset--color--white);
	border-radius: var(--tk-radius);
	padding: 14px;
	box-shadow: var(--tk-card-shadow);
	display: grid !important;
	grid-template-columns: 1fr auto;
	grid-template-areas: "img img" "title title" "price button";
	align-items: center;
	align-content: start;
	transition: transform .15s ease, box-shadow .15s ease;
}
.wc-block-product-template .wc-block-product:hover { transform: translateY(-3px); box-shadow: 0 1px 2px rgba(var(--tk-shadow-rgb), .06), 0 18px 40px rgba(var(--tk-shadow-rgb), .12); }
.wc-block-product-template .wc-block-product > .wc-block-components-product-image { grid-area: img; }
.wc-block-product-template .wc-block-product > .wp-block-post-title { grid-area: title; }
.wc-block-product-template .wc-block-product > .wp-block-woocommerce-product-price { grid-area: price; margin: 0 !important; }
.wc-block-product-template .wc-block-product > .wp-block-button,
.wc-block-product-template .wc-block-product > .wc-block-components-product-button { grid-area: button; margin: 0 !important; justify-self: end; }

.wc-block-product-template .wc-block-components-product-image {
	position: relative;
	margin: 0 !important;
	border-radius: 14px;
	background: var(--tk-img-bg);
	padding: 10% 14%;
	overflow: hidden;
}
.wc-block-product-template .wc-block-components-product-image::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 14px;
	padding: 2px;
	background: var(--tk-holo);
	-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 .2s ease;
	pointer-events: none;
}
.wc-block-product-template .wc-block-product:hover .wc-block-components-product-image::after { opacity: 1; }
.wc-block-product-template .wc-block-components-product-image img {
	aspect-ratio: 5 / 7 !important;
	object-fit: contain !important;
	width: 100%;
	height: auto;
	border-radius: 8px;
	filter: drop-shadow(0 12px 18px rgba(var(--tk-shadow-rgb), .18));
}
.wc-block-product-template .wp-block-post-title {
	font-family: var(--wp--preset--font-family--body);
	font-stretch: 100%;
	font-weight: 700;
	font-size: 1rem !important;
	line-height: 1.35;
	margin: 1rem 4px .5rem !important;
}
.wc-block-product-template .wp-block-post-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.wc-block-product-template .wp-block-post-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.wc-block-product-template .wc-block-components-product-price { font-weight: 800; font-size: 1.125rem !important; padding-left: 4px; }
.wc-block-product-template .wc-block-components-product-button__button,
.wc-block-product-template .wp-block-button__link {
	width: auto !important;
	min-width: 0;
	padding: .6rem .95rem !important;
	border-radius: 12px !important;
	font-size: .875rem !important;
	font-weight: 800;
	background: var(--wp--preset--color--ink) !important;
	color: #fff !important;
	white-space: nowrap;
}
.wc-block-product-template .wc-block-components-product-button__button:hover { background: var(--wp--preset--color--cobalt-dark) !important; }
.wc-block-product-template .wc-block-components-product-button .added_to_cart { display: none; }
@media (max-width: 600px) {
	.wc-block-product-template .wc-block-product { grid-template-areas: "img img" "title title" "price price" "button button"; padding: 10px; }
	.wc-block-product-template .wc-block-product > .wp-block-button,
	.wc-block-product-template .wc-block-product > .wc-block-components-product-button { justify-self: stretch; margin-top: .6rem !important; }
	.wc-block-product-template .wc-block-components-product-button__button { width: 100% !important; }
}

/* Badges and prices */
.wc-block-components-product-sale-badge,
.woocommerce span.onsale {
	background: var(--wp--preset--color--sun) !important;
	color: var(--wp--preset--color--ink) !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-weight: 800;
	font-size: .8125rem !important;
	padding: .3rem .7rem !important;
	z-index: 3;
}
.wc-block-components-product-price del,
.price del { color: var(--tk-faint); font-weight: 500; }
.wc-block-components-product-price ins,
.price ins { text-decoration: none; }

/* =========================================================
   Page / archive title band
   ========================================================= */

.tk-page-head .wp-block-post-title,
.tk-page-head .wp-block-query-title { color: var(--wp--preset--color--white); }
.tk-page-head .woocommerce-breadcrumb,
.tk-pdp-top .woocommerce-breadcrumb { color: var(--wp--preset--color--white); }
.tk-page-head .woocommerce-breadcrumb a,
.tk-pdp-top .woocommerce-breadcrumb a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.tk-page-head .woocommerce-breadcrumb a:hover,
.tk-pdp-top .woocommerce-breadcrumb a:hover { color: #fff; text-decoration: underline; }

/* =========================================================
   Single product
   ========================================================= */

.tk-pdp-cols { align-items: stretch !important; margin-bottom: 0 !important; }
.tk-product-gallery { padding-bottom: var(--wp--preset--spacing--50); }

.tk-product-gallery .woocommerce-product-gallery {
	position: relative;
	border-radius: 26px;
	background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .10), rgba(255, 255, 255, .02));
	border: 1px solid var(--tk-line-dark);
	overflow: hidden;
}
.tk-product-gallery .woocommerce-product-gallery::before {
	content: "";
	position: absolute;
	left: 25%;
	top: 14%;
	width: 50%;
	height: 60%;
	border-radius: 24px;
	background: var(--tk-holo);
	filter: blur(50px);
	opacity: .38;
	z-index: 0;
	pointer-events: none;
}
.tk-product-gallery .woocommerce-product-gallery__wrapper,
.tk-product-gallery .flex-viewport { position: relative; z-index: 1; }
.tk-product-gallery .woocommerce-product-gallery__image img {
	box-sizing: border-box;
	padding: 9% 14% 6%;
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 6;
	object-fit: contain;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .45));
}
.tk-product-gallery .woocommerce-product-gallery__trigger {
	position: absolute !important;
	right: 16px !important;
	top: 16px !important;
	z-index: 5;
	width: 44px !important;
	height: 44px !important;
	border-radius: 999px;
	background: rgba(255, 255, 255, .12) !important;
	border: 1px solid rgba(255, 255, 255, .2);
	display: grid;
	place-items: center;
	font-size: 0 !important;
	color: transparent !important;
	overflow: hidden;
	text-decoration: none;
}
.tk-product-gallery .woocommerce-product-gallery__trigger::after { display: none !important; }
.tk-product-gallery .woocommerce-product-gallery__trigger::before {
	content: "" !important;
	position: static !important;
	border: 0 !important;
	border-radius: 0 !important;
	transform: none !important;
	width: 18px !important;
	height: 18px !important;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}
.tk-product-gallery .woocommerce-product-gallery__trigger img,
.tk-product-gallery .woocommerce-product-gallery__trigger span { display: none !important; }
.tk-product-gallery .flex-control-thumbs {
	position: relative;
	z-index: 1;
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 !important;
	padding: 0 18px 18px !important;
	list-style: none;
}
.tk-product-gallery .flex-control-thumbs li { width: 76px !important; margin: 0 !important; float: none !important; }
.tk-product-gallery .flex-control-thumbs img {
	aspect-ratio: 5 / 6;
	object-fit: contain;
	padding: 6px;
	box-sizing: border-box;
	border-radius: 12px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .16);
	opacity: .65;
	cursor: pointer;
}
.tk-product-gallery .flex-control-thumbs img.flex-active,
.tk-product-gallery .flex-control-thumbs img:hover {
	opacity: 1;
	border: 2px solid transparent;
	background: linear-gradient(var(--tk-thumb-bg), var(--tk-thumb-bg)) padding-box, var(--tk-holo) border-box;
}
.tk-product-gallery .onsale { position: absolute !important; top: 18px !important; left: 18px !important; right: auto !important; z-index: 6; margin: 0 !important; min-width: 0 !important; min-height: 0 !important; line-height: 1.2 !important; }

/* Buy panel */
.tk-buy-box {
	align-self: flex-end !important;
	border-radius: 26px 26px 0 0;
	padding: clamp(1.5rem, 3vw, 2.25rem) !important;
	box-shadow: 0 -20px 60px rgba(0, 0, 0, .25);
}
.tk-buy-box .wp-block-post-title { color: var(--wp--preset--color--ink); }

.tk-chips { display: flex; flex-wrap: wrap; gap: 8px; font-size: 0; }
.tk-chips a {
	display: inline-block;
	font-size: .8125rem;
	font-weight: 700;
	padding: .35rem .75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--sky);
	color: var(--wp--preset--color--cobalt-dark);
	text-decoration: none;
}
.tk-chips .wp-block-post-terms__separator { display: none; }

.tk-buy-box .wp-block-woocommerce-product-meta { color: var(--wp--preset--color--muted); font-size: .9375rem; }
.tk-buy-box .wp-block-woocommerce-product-meta .wp-block-woocommerce-product-sku { margin: 0; }

.tk-buy-box .wp-block-woocommerce-product-price .wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--display);
	font-stretch: 110%;
	font-weight: 800;
	font-size: 2.25rem !important;
	line-height: 1.1;
	margin-top: .75rem;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .6rem;
}
.tk-buy-box .wc-block-components-product-price del { font-family: var(--wp--preset--font-family--body); font-stretch: 100%; font-size: 1.2rem; order: 2; }
.tk-buy-box .wc-block-components-product-price ins { order: 1; }

/* Add to cart form */
.tk-buy-box form.cart:not(.variations_form),
.tk-buy-box .single_variation_wrap .woocommerce-variation-add-to-cart {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
}
.tk-buy-box .quantity { margin: 0 !important; float: none !important; flex: none; width: auto !important; }
.tk-buy-box .quantity .qty {
	width: 5rem;
	min-height: 56px;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 14px;
	font-size: 1.0625rem;
	font-weight: 700;
	text-align: center;
	background: var(--wp--preset--color--white);
}
.tk-buy-box .single_add_to_cart_button {
	flex: 1 1 180px;
	min-height: 56px;
	background: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--white) !important;
	border: 0;
	border-radius: 14px;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 800;
	font-size: 1.0625rem;
	cursor: pointer;
}
.tk-buy-box .single_add_to_cart_button:hover { background: var(--wp--preset--color--cobalt-dark) !important; }
.tk-buy-box .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }

.tk-buy-box table.variations,
.tk-buy-box table.variations tbody,
.tk-buy-box table.variations tr { display: block; width: 100%; }
.tk-buy-box table.variations { border-collapse: collapse; margin: .5rem 0 .25rem; }
.tk-buy-box table.variations tr + tr { margin-top: 1rem; }
.tk-buy-box table.variations th,
.tk-buy-box table.variations td { display: block; text-align: left; padding: 0 0 .5rem; }
.tk-buy-box table.variations label { font-weight: 700; }
.tk-buy-box table.variations select {
	width: 100%;
	min-height: 48px;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 0 .75rem;
	background: var(--wp--preset--color--white);
	font-size: 1rem;
}
.tk-buy-box select.tk-select-hidden { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.tk-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.tk-pill {
	min-width: 120px;
	padding: .8rem 1.1rem;
	border-radius: 12px;
	border: 1.5px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
	font: 700 .9375rem/1.2 var(--wp--preset--font-family--body);
	cursor: pointer;
	text-align: left;
}
.tk-pill:hover { border-color: var(--wp--preset--color--ink); }
.tk-pill.is-selected { border: 2px solid var(--wp--preset--color--ink); box-shadow: 0 0 0 4px var(--wp--preset--color--sky); }
.tk-pill:disabled { opacity: .4; text-decoration: line-through; cursor: not-allowed; }
.tk-buy-box .reset_variations { font-size: .875rem; display: inline-block; margin-top: .25rem; }
.tk-buy-box .woocommerce-variation-price .price { font-size: 1.5rem; font-weight: 800; }
.tk-buy-box .woocommerce-variation { margin: .5rem 0 .75rem; }

.tk-buy-box .stock { font-weight: 700; margin: 0 0 .75rem; display: flex; align-items: center; gap: .5rem; }
.tk-buy-box .stock::before { content: ""; width: 8px; height: 8px; border-radius: 99px; background: currentColor; }
.tk-buy-box .stock.in-stock { color: #1D6B43; }
.tk-buy-box .stock.out-of-stock { color: #B42318; }

/* Delivery / returns / contact list */
.tk-service-list { list-style: none; padding: 0; margin: 1.5rem 0 0; border-top: 1px solid var(--tk-divider); font-size: .9375rem; }
.tk-service-list li {
	display: grid;
	grid-template-columns: 28px 1fr;
	gap: .25rem .85rem;
	padding: .9rem 0;
	border-bottom: 1px solid var(--tk-divider);
	color: var(--wp--preset--color--muted);
}
.tk-service-list svg { width: 22px; height: 22px; color: var(--wp--preset--color--cobalt); margin-top: 2px; }
.tk-service-list strong { display: block; color: var(--wp--preset--color--ink); }

/* Details tabs */
.tk-details .wc-tabs {
	display: inline-flex !important;
	flex-wrap: wrap;
	gap: 6px;
	padding: 6px !important;
	margin: 0 0 1.25rem !important;
	background: var(--wp--preset--color--white);
	border-radius: 16px;
	border: 0 !important;
	box-shadow: 0 1px 2px rgba(var(--tk-shadow-rgb), .06);
	list-style: none;
}
.tk-details .wc-tabs::before,
.tk-details .wc-tabs li::before,
.tk-details .wc-tabs li::after { display: none !important; }
.tk-details .wc-tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.tk-details .wc-tabs li a {
	display: block;
	padding: .7rem 1.2rem !important;
	border-radius: 11px;
	font-weight: 700;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}
.tk-details .wc-tabs li a:hover { color: var(--wp--preset--color--ink) !important; }
.tk-details .wc-tabs li.active a { background: var(--wp--preset--color--ink) !important; color: #fff !important; }
.tk-details .woocommerce-Tabs-panel {
	background: var(--wp--preset--color--white);
	border-radius: var(--tk-radius);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
	box-shadow: var(--tk-card-shadow);
	margin: 0 !important;
}
.tk-details .woocommerce-Tabs-panel > h2:first-child { display: none; }
.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }
.woocommerce-product-attributes th,
.woocommerce-product-attributes td { text-align: left; padding: .75rem 1rem .75rem 0; border-bottom: 1px solid var(--tk-divider); vertical-align: top; }
.woocommerce-product-attributes th { width: 35%; color: var(--wp--preset--color--muted); font-weight: 400; }
.woocommerce-product-attributes td p { margin: 0; font-style: normal; }
@media (max-width: 600px) {
	.tk-details .wc-tabs { display: flex !important; flex-wrap: nowrap; overflow-x: auto; }
	.tk-details .wc-tabs li a { white-space: nowrap; padding: .6rem .9rem !important; }
}
@media (max-width: 781px) {
	.tk-product-gallery { padding-bottom: 0; }
	.tk-buy-box { border-radius: 22px 22px 0 0; }
}

/* =========================================================
   Shop / archive
   ========================================================= */

.tk-shop-toolbar { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: 1rem; }
.wc-block-catalog-sorting select,
.woocommerce-ordering select {
	min-height: 44px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 0 .85rem;
	background: var(--wp--preset--color--white);
	font-size: .9375rem;
}
.wp-block-query-pagination a,
.wp-block-query-pagination .current {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 .5rem;
	border-radius: 12px;
	text-decoration: none;
	background: var(--wp--preset--color--white);
}
.wp-block-query-pagination .current { background: var(--wp--preset--color--ink); color: #fff; }

/* =========================================================
   Footer
   ========================================================= */

.tk-footer { position: relative; }
.tk-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--tk-holo); }
.tk-footer a { color: inherit; text-decoration: none; }
.tk-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.tk-footer .wp-block-navigation__container { gap: .6rem; }
.tk-footer .tk-business-card { font-style: normal; line-height: 1.7; }
.tk-business-card { font-style: normal; }
.tk-business-card span { display: block; }

/* =========================================================
   Cart and checkout
   ========================================================= */

.tk-checkout-header { border-bottom: 1px solid var(--tk-line-dark); }
.tk-checkout-header a { color: var(--wp--preset--color--ink-soft); }
.tk-checkout-header a:hover { color: #fff; }
.wc-block-components-button:not(.is-link) { border-radius: 14px; min-height: 54px; font-weight: 800; }
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button { background: var(--wp--preset--color--ink) !important; color: #fff !important; }
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover { background: var(--wp--preset--color--cobalt-dark) !important; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select { border-radius: 12px !important; border-color: #B9C1D3 !important; }
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper,
.wc-block-components-sidebar .wc-block-components-panel { border-color: var(--wp--preset--color--line); }
.wc-block-components-order-summary-item__image img { aspect-ratio: 5 / 7; object-fit: contain; background: var(--wp--preset--color--white); }

/* =========================================================
   Long-form pages
   ========================================================= */

.tk-prose h2 { margin-top: 2.5rem; }
.tk-prose li + li { margin-top: .35rem; }
.tk-prose .wp-block-table table { border-collapse: collapse; background: var(--wp--preset--color--white); }
.tk-prose .wp-block-table th,
.tk-prose .wp-block-table td { border: 1px solid var(--wp--preset--color--line); padding: .65rem .85rem; text-align: left; }
.tk-prose .wp-block-table thead { border-bottom: 2px solid var(--wp--preset--color--ink); }
.tk-confirm {
	background: #FFF4D6;
	border-left: 4px solid var(--wp--preset--color--sun);
	padding: .75rem 1rem;
	border-radius: 0 10px 10px 0;
	color: var(--wp--preset--color--ink);
}

/* =========================================================
   Utilities
   ========================================================= */

.tk-muted { color: var(--wp--preset--color--muted); }
.tk-on-dark a:not(.wp-block-button__link) { color: var(--wp--preset--color--white); }

.wp-block-woocommerce-checkout-order-summary-block,
.wp-block-woocommerce-cart-order-summary-block {
	background: var(--wp--preset--color--white);
	border-radius: var(--tk-radius) !important;
	box-shadow: var(--tk-card-shadow);
	border: 0 !important;
}
