/* ==========================================================================
   TCB Site 2.0.0 — Templates: single product, product category archives,
   single post / Tasty Recipes, blog + category archives. Scope: body.tcb-tpl
   ========================================================================== */

body.tcb-tpl .site-main { font-family: var(--tcb-font-body); color: var(--tcb-ink); }

/* ---------- Breadcrumb ---------- */
.tcb-crumbs {
	font: 600 var(--tcb-step--1)/1.4 var(--tcb-font-body);
	color: var(--tcb-muted);
	margin: 1rem 0 1.25rem;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
	align-items: center;
}
.tcb-crumbs a { color: var(--tcb-muted); text-decoration: underline; text-underline-offset: 3px; display: inline-flex; min-height: 32px; align-items: center; }
.tcb-crumbs .breadcrumb_last,
.tcb-crumbs > span:last-child { color: var(--tcb-ink); }
.tcb-crumbs__sep { color: var(--tcb-muted); }

/* ==========================================================================
   Single product
   ========================================================================== */
body.tcb-tpl--product .product-details-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.5rem, 1rem + 2vw, 3rem);
	align-items: start;
}
@media (min-width: 900px) {
	body.tcb-tpl--product .product-details-wrapper { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	body.tcb-tpl--product .product-details-wrapper > .woocommerce-tabs,
	body.tcb-tpl--product .product-details-wrapper > .related-wrapper { grid-column: 1 / -1; }
}
body.tcb-tpl--product .woocommerce-product-gallery,
body.tcb-tpl--product .summary.entry-summary { width: auto; float: none; margin: 0; }
body.tcb-tpl--product .woocommerce-product-gallery__image img {
	border-radius: var(--tcb-r-lg);
	background: var(--tcb-cream);
	width: 100%;
	height: auto;
}
body.tcb-tpl--product .product_title {
	font-family: var(--tcb-font-display);
	font-size: var(--tcb-step-4);
	font-weight: 800;
	line-height: 1.04;
	letter-spacing: -0.035em;
	margin: 0 0 1rem;
}
/* Snippet 6 "Order Now" button: token styling (it uses inline styles, hence !important). */
body.tcb-tpl--product .tcb-order-now-wrap .tcb-order-now {
	background: var(--tcb-yellow) !important;
	color: var(--tcb-ink) !important;
	border: 2px solid var(--tcb-ink) !important;
	border-radius: var(--tcb-r-pill) !important;
	box-shadow: 0 4px 0 var(--tcb-ink) !important;
	font-family: var(--tcb-font-body) !important;
	font-weight: 800 !important;
}
body.tcb-tpl--product .tcb-order-now-wrap p { color: var(--tcb-muted) !important; }

/* "Order on" row */
.tcb-orderon { margin: 1.25rem 0 1.5rem; }
.tcb-orderon__h { margin: 0 0 0.5rem; font: 800 var(--tcb-step--1)/1.2 var(--tcb-font-body); letter-spacing: 0.06em; text-transform: uppercase; color: var(--tcb-muted); }
.tcb-orderon__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
@media (min-width: 480px) { .tcb-orderon__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tcb-orderon__list li { margin: 0; }
.tcb-orderon__link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.5rem 0.75rem;
	border: 2px solid var(--tcb-ink);
	border-radius: var(--tcb-r-sm);
	background: var(--tcb-cream);
	color: var(--tcb-ink);
	font-weight: 800;
	text-decoration: none;
	text-align: center;
	box-shadow: 0 3px 0 var(--tcb-ink);
	transition: transform var(--tcb-dur-press) var(--tcb-ease-out), box-shadow var(--tcb-dur-press) var(--tcb-ease-out);
}
.tcb-orderon__link:active { transform: translateY(2px); box-shadow: 0 1px 0 var(--tcb-ink); }
.tcb-orderon__link--call { background: var(--tcb-ink); color: var(--tcb-cream); }
.tcb-orderon__link:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: 3px; }

/* Description + tabs */
body.tcb-tpl--product .woocommerce-tabs ul.tabs { border: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0 0 1rem; }
body.tcb-tpl--product .woocommerce-tabs ul.tabs li { margin: 0; border: 0; }
body.tcb-tpl--product .woocommerce-tabs ul.tabs li a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.4rem 1rem;
	border-radius: var(--tcb-r-pill);
	border: 2px solid var(--tcb-ink);
	font-weight: 800;
	color: var(--tcb-ink);
}
body.tcb-tpl--product .woocommerce-tabs ul.tabs li.active a { background: var(--tcb-ink); color: var(--tcb-yellow); }
body.tcb-tpl--product .woocommerce-Tabs-panel { font-size: var(--tcb-step-0); line-height: 1.7; max-width: 70ch; }

/* Related products → cards */
body.tcb-tpl--product .related.products > h2,
body.tcb-tpl--product-archive .page-title,
body.tcb-tpl--product-archive .woocommerce-products-header__title {
	font-family: var(--tcb-font-display);
	font-weight: 800;
	letter-spacing: -0.03em;
}
body.tcb-tpl--product .related.products > h2 { font-size: var(--tcb-step-3); margin: 2rem 0 1rem; }

/* ---------- Product cards (related + archives) ---------- */
body.tcb-tpl ul.products {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(0.75rem, 0.5rem + 1vw, 1.25rem);
	margin: 0;
	padding: 0;
}
@media (min-width: 900px) { body.tcb-tpl ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { body.tcb-tpl--product ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
body.tcb-tpl ul.products::before,
body.tcb-tpl ul.products::after { display: none; }
body.tcb-tpl ul.products li.product {
	width: auto;
	float: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	background: var(--tcb-cream);
	border: 2px solid var(--tcb-ink);
	border-radius: var(--tcb-r);
	box-shadow: 0 4px 0 var(--tcb-ink);
	overflow: hidden;
	transition: transform var(--tcb-dur-ui) var(--tcb-ease-out), box-shadow var(--tcb-dur-ui) var(--tcb-ease-out);
}
@media (hover: hover) and (pointer: fine) {
	body.tcb-tpl ul.products li.product:hover { transform: translateY(-3px); box-shadow: 0 7px 0 var(--tcb-ink); }
}
body.tcb-tpl ul.products li.product img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; margin: 0; background: var(--tcb-paper); }
body.tcb-tpl ul.products li.product .woocommerce-card__header { padding: 0.75rem 0.9rem 1rem; }
body.tcb-tpl ul.products li.product .woocommerce-loop-product__title {
	font: 800 var(--tcb-step-0)/1.25 var(--tcb-font-display);
	color: var(--tcb-ink);
	margin: 0;
}
body.tcb-tpl ul.products li.product .price { display: none; } /* ordering is on the apps; prices live there */

/* ==========================================================================
   Product category archives
   ========================================================================== */
body.tcb-tpl--product-archive .woocommerce-products-header__title { font-size: var(--tcb-step-4); line-height: 1.04; margin: 1rem 0 0.75rem; }
body.tcb-tpl--product-archive .term-description { font-size: var(--tcb-step-0); line-height: 1.65; max-width: 65ch; color: #3f372f; }
body.tcb-tpl--product-archive .cg-cat-image { border-radius: var(--tcb-r-lg); }
.tcb-catchips { margin: 1rem 0 1.5rem; }
.tcb-catchips ul { list-style: none; margin: 0; padding: 0 0 0.25rem; display: flex; gap: 0.5rem; overflow-x: auto; scrollbar-width: thin; overscroll-behavior-x: contain; }
.tcb-catchips li { flex: none; margin: 0; }
.tcb-catchips a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0.35rem 0.9rem;
	border-radius: var(--tcb-r-pill);
	border: 2px solid var(--tcb-ink);
	background: var(--tcb-white);
	color: var(--tcb-ink);
	font: 700 var(--tcb-step--1)/1 var(--tcb-font-body);
	text-decoration: none;
	white-space: nowrap;
}
.tcb-catchips a[aria-current="page"] { background: var(--tcb-ink); color: var(--tcb-yellow); }
.tcb-catchips a:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: 2px; }

/* ==========================================================================
   Single post / Tasty Recipes
   ========================================================================== */
body.tcb-tpl--post .site-main > .post,
body.tcb-tpl--post .site-main > article { max-width: 760px; margin-inline: auto; }
body.tcb-tpl--post .entry-title {
	font-family: var(--tcb-font-display);
	font-size: var(--tcb-step-4);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.035em;
	margin: 1rem 0 0.5rem;
}
body.tcb-tpl--post .posted-on { color: var(--tcb-muted); font-size: var(--tcb-step--1); }
body.tcb-tpl--post .wp-post-image { width: 100%; height: auto; border-radius: var(--tcb-r-lg); margin-bottom: 1rem; }
body.tcb-tpl--post .entry-content { font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem); line-height: 1.75; }
body.tcb-tpl--post .entry-content > * { max-width: 68ch; }
body.tcb-tpl--post .entry-content h2 { font-family: var(--tcb-font-display); font-size: var(--tcb-step-3); letter-spacing: -0.025em; margin: 2.25rem 0 0.75rem; line-height: 1.12; }
body.tcb-tpl--post .entry-content h3 { font-family: var(--tcb-font-display); font-size: var(--tcb-step-2); margin: 1.75rem 0 0.5rem; }
body.tcb-tpl--post .entry-content li { margin-bottom: 0.5rem; }
body.tcb-tpl--post .entry-content a:not([class]) { color: var(--tcb-red-deep); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.tcb-tpl--post .tasty-recipes-quick-links { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: 1.5rem; }
body.tcb-tpl--post .tasty-recipes-quick-links a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.4rem 1rem;
	border-radius: var(--tcb-r-pill);
	border: 2px solid var(--tcb-ink);
	color: var(--tcb-ink);
	font-weight: 800;
	text-decoration: none;
}
body.tcb-tpl--post .tasty-recipes-quick-links a { background-color: var(--tcb-white); color: var(--tcb-ink); }
body.tcb-tpl--post .tasty-recipes-quick-links a.tasty-recipes-jump-link { background: var(--tcb-yellow); color: var(--tcb-ink); }
body.tcb-tpl--post .tasty-recipes-quick-links > span { display: none; }

/* Tasty Recipes card */
body.tcb-tpl--post .tasty-recipes {
	max-width: 760px;
	border: 2px solid var(--tcb-ink) !important;
	border-radius: var(--tcb-r-lg);
	box-shadow: 0 6px 0 var(--tcb-ink);
	background: var(--tcb-cream);
	padding: clamp(1rem, 0.5rem + 2vw, 2rem);
	font-family: var(--tcb-font-body);
}
body.tcb-tpl--post .tasty-recipes h2,
body.tcb-tpl--post .tasty-recipes h3 { font-family: var(--tcb-font-display); letter-spacing: -0.02em; }
body.tcb-tpl--post .tasty-recipes-ingredients li,
body.tcb-tpl--post .tasty-recipes-instructions li { line-height: 1.6; margin-bottom: 0.5rem; }
body.tcb-tpl--post .tasty-recipes .tasty-recipes-buttons a,
body.tcb-tpl--post .tasty-recipes a.button {
	min-height: 44px;
	border-radius: var(--tcb-r-pill);
	font-weight: 800;
}

/* ==========================================================================
   Blog + category archives (Shoptimizer .grid layout)
   ========================================================================== */
body.tcb-tpl--post-archive .page-header .page-title { font-family: var(--tcb-font-display); font-size: var(--tcb-step-4); font-weight: 800; letter-spacing: -0.035em; line-height: 1.05; margin: 1rem 0 0.5rem; }
body.tcb-tpl--post-archive .taxonomy-description { max-width: 65ch; font-size: var(--tcb-step-0); line-height: 1.65; color: #3f372f; }
body.tcb-tpl--post-archive .site-main.grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: clamp(1rem, 0.75rem + 1vw, 1.5rem);
}
body.tcb-tpl--post-archive .site-main.grid > .page-header,
body.tcb-tpl--post-archive .site-main.grid > .navigation,
body.tcb-tpl--post-archive .site-main.grid > nav { grid-column: 1 / -1 !important; }
/* 2.1.3: Shoptimizer's blog CSS gives pagination/cards fixed column spans (span 3), which forced
   three implicit columns on phones (0px / 148px / 148px). Reset spans so the auto-fill grid decides. */
body.tcb-tpl--post-archive .site-main.grid > article { grid-column: auto !important; }
body.tcb-tpl--post-archive .site-main.grid > article {
	width: auto;
	float: none;
	margin: 0;
	display: flex;
	flex-direction: column;
	background: var(--tcb-cream);
	border: 2px solid var(--tcb-ink);
	border-radius: var(--tcb-r);
	box-shadow: 0 4px 0 var(--tcb-ink);
	overflow: hidden;
}
body.tcb-tpl--post-archive article .post-thumbnail img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
body.tcb-tpl--post-archive article .blog-loop-content-wrapper { padding: 1rem 1.1rem 1.25rem; }
body.tcb-tpl--post-archive article .entry-title { font: 800 var(--tcb-step-1)/1.2 var(--tcb-font-display); margin: 0 0 0.35rem; letter-spacing: -0.015em; }
body.tcb-tpl--post-archive article .entry-title a { color: var(--tcb-ink); text-decoration: none; }
body.tcb-tpl--post-archive article .entry-title a:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: 2px; }
body.tcb-tpl--post-archive article .posted-on { color: var(--tcb-muted); font-size: var(--tcb-step--1); }
body.tcb-tpl--post-archive article .entry-content { font-size: 15px; line-height: 1.6; color: #3f372f; }
body.tcb-tpl--post-archive article .entry-content p { margin: 0.5rem 0 0; }

/* The site's Additional CSS styles these links with !important (orange #c9652d + white = 3.96:1);
   beating it needs !important too. */
body.tcb-tpl--post.single-post .entry-content .tasty-recipes-quick-links a.tasty-recipes-jump-link {
	background: var(--tcb-yellow) !important;
	border: 2px solid var(--tcb-ink) !important;
	color: var(--tcb-ink) !important;
}
body.tcb-tpl--post.single-post .entry-content .tasty-recipes-quick-links a.tasty-recipes-print-link,
body.tcb-tpl--post.single-post .entry-content .tasty-recipes-quick-links a.tasty-recipes-rating-link {
	border: 2px solid var(--tcb-ink) !important;
	color: var(--tcb-ink) !important;
	background: var(--tcb-white) !important;
	border-radius: var(--tcb-r-pill) !important;
}
body.tcb-tpl--post.single-post .entry-content .tasty-recipes-quick-links a.tasty-recipes-jump-link { border-radius: var(--tcb-r-pill) !important; }

/* Designer pass 2 */
.tcb-orderon__list li:last-child { grid-column: span 2; }
.tcb-orderon__link--call { white-space: nowrap; }
@media (min-width: 480px) { .tcb-orderon__list li:last-child { grid-column: span 2; } }
body.tcb-tpl ul.products li.product a { color: var(--tcb-ink); text-decoration: none; }
body.tcb-tpl ul.products li.product a:focus-visible { outline: 3px solid var(--tcb-ink); outline-offset: -3px; }
body.tcb-tpl--post.single-post .entry-content .tasty-recipes-quick-links a { white-space: nowrap; padding: 0.4rem 1rem !important; }

/* 2.0.2 — breadcrumb placement */
body.tcb-tpl--product .product-details-wrapper > .tcb-crumbs { grid-column: 1 / -1; margin: 0; }
.tcb-crumbs { width: 100%; box-sizing: border-box; flex-wrap: wrap; white-space: normal; }
.tcb-crumbs > span { display: inline; }
body.tcb-tpl--product-archive .tcb-crumbs { margin: 1rem 0 0.25rem; }
