/* DeConna Product Page — components + product/shop styling.
   Tokens read from Kadence global palette so the Customizer stays in control. */

:root {
	--dc-brand: var(--global-palette2, #00539f);
	--dc-brand-bright: var(--global-palette1, #00aeef);
	--dc-heading: var(--global-palette3, #0d1b2e);
	--dc-body: var(--global-palette4, #1e3a5f);
	--dc-muted: var(--global-palette5, #0a6e9e);
	--dc-page-bg: var(--global-palette8, #dcf6ff);
	--dc-panel-warm: var(--global-palette9, #fef5ec);
	--dc-border-cool: #b6e8fb;
	--dc-radius: 20px;
	--dc-shadow-sm: 0 2px 6px rgba(13, 26, 45, 0.09);
	--dc-shadow-md: 0 6px 16px rgba(13, 26, 45, 0.11);
	/* pill tints (navy text on tint — AA) */
	--dc-tint-cyan: #d6faf5;
	--dc-tint-green: #e1f3df;
	--dc-tint-blue: #dcf6ff;
	--dc-tint-pink: #fbd6e9;
}

/* ---------- Eyebrow ---------- */
.dc-eyebrow { margin-bottom: 6px; }
.dc-eyebrow a {
	color: var(--dc-muted);
	font-weight: 800;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
}
.dc-eyebrow a:hover { color: var(--dc-brand); }

/* ---------- Dietary pills ---------- */
.dc-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 2px 0 18px;
}
.dc-pill {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: 4px 12px;
	font-size: 12.5px;
	font-weight: 800;
	line-height: 1.4;
	color: #1d3a5f;
	text-decoration: none;
	background: var(--dc-tint-blue);
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s;
}
.dc-pill:hover {
	color: #1d3a5f;
	transform: translateY(-1px);
	box-shadow: var(--dc-shadow-sm);
}
.dc-pill--smart-snacks { background: var(--dc-tint-green); }
.dc-pill--gluten-free { background: var(--dc-tint-blue); }
.dc-pill--dairy-free { background: var(--dc-tint-cyan); }
.dc-pill--no-artificial-colors { background: var(--dc-tint-pink); }
.dc-pill--bestseller { background: #ffd94d; }
.dc-pill--more { background: #ffffff; box-shadow: var(--dc-shadow-sm); }

/* Small pills under the title on shop/category cards */
.dc-card-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 2px 0 4px;
}
.dc-card-pills .dc-pill {
	font-size: 10px;
	padding: 2px 8px;
	font-weight: 700;
	line-height: 1.5;
}

/* ---------- Quote block ---------- */
.dc-quote-block {
	background: var(--dc-page-bg);
	border: 1px solid var(--dc-border-cool);
	border-radius: var(--dc-radius);
	padding: 24px;
	margin: 8px 0 18px;
}
.dc-quote-title {
	font-size: 24px !important;
	margin: 0 0 14px !important;
	color: var(--dc-heading);
}
.dc-quote-buttons {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.dc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: 12px 24px;
	font-weight: 800;
	font-size: 15px;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s, background 0.2s;
}
.dc-btn--primary {
	background: var(--dc-brand);
	color: #fff;
}
.dc-btn--primary:hover {
	background: var(--dc-heading);
	color: #fff;
	transform: translateY(-1px);
	box-shadow: var(--dc-shadow-md);
}
.dc-btn--outline {
	background: #fff;
	color: var(--dc-brand);
	box-shadow: inset 0 0 0 2px var(--dc-brand);
}
.dc-btn--outline:hover {
	background: var(--dc-brand);
	color: #fff;
}
.dc-quote-meta {
	display: flex;
	gap: 18px;
	margin-top: 18px;
	flex-wrap: wrap;
	color: var(--dc-muted);
	font-size: 13.5px;
	font-weight: 600;
}
.dc-quote-meta span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.dc-quote-meta svg { flex: none; }

/* ---------- Panel shared ---------- */
.dc-panel-h {
	font-size: 19px !important;
	color: var(--dc-heading);
	margin: 0 0 10px !important;
}
.dc-ing-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 32px;
	align-items: start;
	text-align: left;
}
.dc-ing-main p { margin: 0 0 22px; line-height: 1.7; }
.dc-contains-card {
	background: #fff;
	border: 1px solid var(--dc-border-cool);
	border-radius: var(--dc-radius);
	padding: 24px;
	box-shadow: var(--dc-shadow-sm);
}
.dc-contains-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.dc-allergen-pill {
	display: inline-flex;
	border-radius: 999px;
	padding: 4px 14px;
	font-size: 13px;
	font-weight: 800;
	background: var(--dc-tint-pink);
	color: #1d3a5f;
}

/* ---------- Empty-state card ---------- */
.dc-empty-card {
	max-width: 620px;
	margin: 8px auto;
	background: #fff;
	border: 1px solid var(--dc-border-cool);
	border-radius: var(--dc-radius);
	padding: 30px;
	box-shadow: var(--dc-shadow-sm);
	display: flex;
	gap: 20px;
	align-items: flex-start;
	text-align: left;
}
.dc-empty-icon { color: var(--dc-brand); flex: none; }
.dc-empty-body h4 {
	font-size: 21px !important;
	margin: 0 0 8px !important;
	color: var(--dc-heading);
}
.dc-empty-body p {
	font-size: 15.5px;
	line-height: 1.65;
	margin: 0 0 16px;
}

/* ---------- Nutrition Facts label ---------- */
.dc-nf-label {
	max-width: 420px;
	margin: 0 auto;
	background: #fff;
	border: 2px solid var(--dc-heading);
	padding: 14px 16px;
	color: var(--dc-heading);
	text-align: left;
	font-size: 15px;
}
.dc-nf-title {
	font-family: var(--global-heading-font-family, inherit);
	font-weight: 700;
	font-size: 30px;
	line-height: 1.05;
}
.dc-nf-row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 0;
	border-bottom: 1px solid var(--dc-heading);
}
.dc-nf-thin { display: block; }
.dc-nf-serving {
	font-weight: 800;
	border-bottom: 8px solid var(--dc-heading);
}
.dc-nf-amount {
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	padding-top: 6px;
}
.dc-nf-calories {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	border-bottom: 4px solid var(--dc-heading);
	padding-bottom: 4px;
}
.dc-nf-calories span:first-child { font-size: 22px; font-weight: 800; }
.dc-nf-calories span:last-child { font-size: 28px; font-weight: 800; }
.dc-nf-dv {
	text-align: right;
	font-size: 12px;
	font-weight: 800;
	border-bottom: 1px solid var(--dc-heading);
	padding: 4px 0;
}
.dc-nf-bold .dc-nf-name { font-weight: 800; }
.dc-nf-indent { padding-left: 18px; }
.dc-nf-indent2 { padding-left: 32px; }
.dc-nf-pct { font-weight: 800; white-space: nowrap; }
.dc-nf-vit .dc-nf-pct { font-weight: 400; }
.dc-nf-protein { border-bottom: 8px solid var(--dc-heading); }
.dc-nf-foot {
	font-size: 12px;
	line-height: 1.45;
	padding-top: 8px;
	color: var(--dc-body);
}

/* ---------- Product page polish ---------- */
.single-product .product-title.title { text-wrap: pretty; }

/* Comfortable reading measure for the description tab */
.single-product .wp-block-kadence-wootemplate-blocks-description {
	max-width: 860px;
	margin-inline: auto;
}

/* Description tab headings in brand blue */
.single-product .wp-block-kadence-wootemplate-blocks-description h1,
.single-product .wp-block-kadence-wootemplate-blocks-description h2,
.single-product .wp-block-kadence-wootemplate-blocks-description h3,
.single-product .wp-block-kadence-wootemplate-blocks-description h4,
.single-product .wp-block-kadence-wootemplate-blocks-description h5 {
	color: var(--dc-brand);
}
.single-product .kt-tabs-title-list .kt-title-item a { font-weight: 600; }

/* Related products: consistent card hover */
.single-product ul.products li.product {
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s;
	border-radius: 12px;
}
.single-product ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: var(--dc-shadow-md);
}

/* ---------- Shop sidebar fixes ---------- */
/* Categories filter is redundant inside a category archive */
.tax-product_cat .wpc-filter-product_cat { display: none; }

/* Sidebar filter titles: no all-caps, brand heading font */
.sidebar-slug-product-filter .widget-title,
.sidebar-slug-product-filter .wpc-filter-title {
	text-transform: none;
	font-family: var(--global-heading-font-family, inherit);
	letter-spacing: 0;
}

/* Align the sidebar with the product toolbar instead of the breadcrumbs */
@media (min-width: 1025px) {
	.post-type-archive-product aside#secondary.primary-sidebar,
	.tax-product_cat aside#secondary.primary-sidebar {
		padding-top: 132px;
	}

	/* Filters live in the sidebar on desktop — hide the drawer toggle */
	.post-type-archive-product #filter-toggle,
	.tax-product_cat #filter-toggle {
		display: none;
	}
}

/* ---------- Responsive ---------- */
@media (max-width: 767px) {
	.dc-ing-grid { grid-template-columns: 1fr; gap: 20px; }
	.dc-quote-buttons { flex-direction: column; }
	.dc-btn { width: 100%; }
	.dc-empty-card { flex-direction: column; gap: 12px; }
	.dc-nf-label { max-width: 100%; }
}

/* ---------- Category hero band ---------- */
.dc-cat-hero {
	background-image: radial-gradient(rgba(255, 255, 255, 0.12) 1.5px, transparent 1.5px),
		linear-gradient(105deg, #0a4f8f 0%, #1d7fd0 100%);
	background-size: 26px 26px, cover;
}
.dc-cat-hero-inner {
	max-width: 1290px;
	margin: 0 auto;
	padding: 26px 24px 44px 24px;
}
.dc-cat-crumbs {
	font-size: 13px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.75);
	padding-bottom: 24px;
}
.dc-cat-crumbs a { color: rgba(255, 255, 255, 0.75); text-decoration: none; }
.dc-cat-crumbs a:hover { color: #ffffff; }
.dc-cat-crumbs .dc-crumb-current { color: #ffffff; }
.dc-cat-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 56px;
	align-items: center;
}
.dc-cat-hero-grid.dc-cat-hero-noimg { grid-template-columns: minmax(0, 1fr); }
.dc-cat-hero-copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}
.dc-cat-hero-copy h1 {
	color: #ffffff !important;
	font-size: 46px;
	line-height: 1.08;
	margin: 0;
	text-wrap: pretty;
}
.dc-cat-hero-desc,
.dc-cat-hero-desc p {
	color: rgba(255, 255, 255, 0.94) !important;
	font-size: 16.5px;
	line-height: 1.7;
	margin: 0;
	max-width: 560px;
}
.dc-cat-hero-desc a { color: #a4e7ff; }
.dc-cat-hero-buttons {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	padding-top: 6px;
}
.dc-btn--white {
	background: #ffffff;
	color: var(--dc-brand);
	gap: 8px;
}
.dc-btn--white:hover {
	background: #dcf6ff;
	color: var(--dc-brand);
	transform: translateY(-1px);
	box-shadow: var(--dc-shadow-md);
}
.dc-btn--ghost {
	color: #ffffff;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.85);
}
.dc-btn--ghost:hover {
	background: #ffffff;
	color: var(--dc-brand);
}
.dc-cat-hero-media {
	position: relative;
	display: flex;
	justify-content: center;
}
.dc-cat-hero-media img {
	width: 100%;
	max-width: 560px;
	height: auto;
	border-radius: 110px 26px 110px 26px;
	position: relative;
	z-index: 2;
}
.dc-dash {
	position: absolute;
	width: 90px;
	height: 60px;
	background: repeating-linear-gradient(55deg, rgba(228, 0, 124, 0.9) 0 7px, transparent 7px 18px);
	border-radius: 8px;
	z-index: 1;
}
.dc-dash--tl { top: -8px; left: -6px; }
.dc-dash--br { bottom: -10px; right: -6px; }

/* Hide the default archive title block on category pages (hero replaces it) */
.tax-product_cat header.product-archive-title,
.woocommerce-shop header.product-archive-title { display: none; }
/* Shop intro copy now lives in the hero band — hide the duplicate below
   (only the description: the products-header also holds the filter chips) */
.woocommerce-shop .woocommerce-products-header .page-description { display: none; }
/* Category pages sit on white below the hero */
.tax-product_cat #inner-wrap { background: #ffffff; }
.tax-product_cat aside#secondary.primary-sidebar { padding-top: 52px; }

/* ---------- Bottom category copy: cream box ---------- */
.tax-product_cat main div.clearfix {
	background: var(--dc-panel-warm);
	border: 1px solid #efe3d1;
	border-radius: 24px;
	padding: 48px 52px;
	margin-top: 44px;
}
/* !important: the theme's later .site-container rule resets margin to 0 auto */
.dc-bottom-wrap { margin: 0 auto 64px !important; }
.dc-bottom-wrap h2 { text-align: left !important; }
.dc-bottom-wrap div.clearfix { margin-top: 4px; }
.tax-product_cat main div.clearfix h2 {
	color: var(--dc-brand);
	font-size: 30px;
	margin: 14px 0 10px 0;
}
.tax-product_cat main div.clearfix p {
	font-size: 16px;
	line-height: 1.7;
}
.tax-product_cat main div.clearfix > *:first-child { margin-top: 0; }
.tax-product_cat main div.clearfix > *:last-child { margin-bottom: 0; }

/* ---------- Selected-filter chips (Filter Everything) ----------
   Colors keyed by pa_ingredients term id to match the dietary pills:
   1000072 smart-snacks, 70 gluten-free, 1000073 dairy-free,
   69 no-artificial-colors */
.wpc-custom-selected-terms { margin: 0 0 20px; }
ul.wpc-filter-chips-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
}
ul.wpc-filter-chips-list li.wpc-filter-chip { margin: 0; }
li.wpc-filter-chip a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: none !important;
	border-radius: 999px !important;
	padding: 5px 14px !important;
	font-size: 12.5px;
	font-weight: 700;
	color: #1d3a5f !important;
	background: var(--dc-tint-blue) !important;
	text-decoration: none;
}
li.wpc-chip-reset-all a {
	background: #ffffff !important;
	box-shadow: inset 0 0 0 1.5px #cfe3f0;
	color: var(--dc-brand) !important;
}
li.wpc-chip-pa_ingredients-1000072 a { background: var(--dc-tint-green) !important; }
li.wpc-chip-pa_ingredients-70 a { background: var(--dc-tint-blue) !important; }
li.wpc-chip-pa_ingredients-1000073 a { background: var(--dc-tint-cyan) !important; }
li.wpc-chip-pa_ingredients-69 a { background: var(--dc-tint-pink) !important; }

/* ---------- Pagination pills ---------- */
.woocommerce nav.woocommerce-pagination ul {
	border: none;
	display: flex;
	justify-content: center;
	gap: 8px;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	overflow: visible;
}
/* !important: Kadence styles the same selectors in a later stylesheet */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	width: 40px !important;
	height: 40px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 999px !important;
	background: #ffffff !important;
	color: var(--dc-brand) !important;
	font-weight: 800;
	font-size: 15px;
	box-shadow: inset 0 0 0 1.5px #cfe3f0 !important;
	border: none !important;
	padding: 0 !important;
	line-height: 1;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--dc-brand) !important;
	color: #ffffff !important;
	box-shadow: none !important;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: #dcf6ff !important;
	color: var(--dc-brand) !important;
}

/* ---------- Category hero responsive ---------- */
@media (max-width: 1024px) {
	.dc-cat-hero-grid { grid-template-columns: 1fr; gap: 28px; }
	.dc-cat-hero-copy h1 { font-size: 34px; }
}
@media (max-width: 767px) {
	.dc-cat-hero-buttons { flex-direction: column; align-self: stretch; }
	.dc-cat-hero-buttons .dc-btn { width: 100%; }
	.tax-product_cat main div.clearfix { padding: 28px 24px; }
}

/* Bottom box: copy + image grid */
.dc-bottom-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}
/* Portrait slot: any upload is cropped to 3:4 (per Darren) */
.dc-bottom-media {
	display: flex;
	justify-content: center;
}
.dc-bottom-media img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 16px;
}
@media (max-width: 900px) {
	.dc-bottom-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* Archive card titles: calmer size, max two lines.
   !important: woocommerce.min.css and Kadence load after this sheet and
   re-size the title / reset display. Bottom padding must be 0 or the
   clipped third line peeks through the padding window. */
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px !important;
	line-height: 1.3;
	display: -webkit-box !important;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	padding-bottom: 0 !important;
	margin-bottom: 6px !important;
	transition: color 0.18s ease;
}
.woocommerce ul.products li.product a:hover h2,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2:hover,
.woocommerce ul.products li.product .woocommerce-loop-product__title:hover {
	color: var(--dc-brand) !important;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

/* "Filters" widget title is redundant above the facet names */
.sidebar-slug-product-filter .wpc-filter-set-widget-title { display: none; }

/* Subcategory list in the sidebar */
.dc-subcats { margin-bottom: 28px; }
.dc-subcats-title {
	font-family: var(--global-heading-font-family, inherit);
	font-weight: 600;
	font-size: 16px;
	color: var(--dc-body);
	margin-bottom: 12px;
}
.dc-subcats ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.dc-subcats li { display: flex; align-items: center; gap: 8px; font-size: 14.5px; }
.dc-subcats a { text-decoration: none; font-weight: 600; }
.dc-subcat-count { color: #94b3cc; font-size: 13px; }
