/*
Theme Name: Demobase Child (Kind Nutrients)
Theme URI: https://kindnutrients.net/
Description: Kind Nutrients build of the Demobase Child theme (KN r01: brand palette, Inter headings, Kind Nutrients logo and favicon, store front page, SKU buy buttons). For kindnutrients.wpenginepowered.com only; never upload to demobase1. 15 switchable templates: 3 blog indexes, 3 single posts, 3 contact pages, 3 product layouts and 3 product-category layouts. Ported from the r01 mockups.
Author: Web Design Worker
Template: twentytwentyfour
Version: 1.5.1
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: demobase-child
*/

/* ------------------------------------------------------------------
   Tokens (TT4 palette is inherited from the parent theme.json)
------------------------------------------------------------------ */
:root {
	--db-border: var(--wp--custom--demobase--border);
	--db-rule: var(--wp--custom--demobase--rule);
	--db-muted: var(--wp--custom--demobase--muted);
	--db-muted-2: var(--wp--custom--demobase--muted-2);
	--db-gap: var(--wp--custom--demobase--gap, clamp(1.25rem, 3vw, 2.5rem));
	--db-section: var(--wp--custom--demobase--section, clamp(2.5rem, 6vw, 5rem));
	--db-serif: var(--wp--preset--font-family--heading, "Cardo", Georgia, serif);
	--db-sans: var(--wp--preset--font-family--body, "Inter", system-ui, sans-serif);
	--db-a1: var(--wp--preset--color--accent);
	--db-a2: var(--wp--preset--color--accent-2);
	--db-a3: var(--wp--preset--color--secondary, var(--wp--preset--color--accent-3));
	--db-a4: var(--wp--preset--color--accent-4);
	--db-a5: var(--wp--preset--color--accent-5);
	--db-ink: var(--wp--preset--color--contrast);
	--db-base: var(--wp--preset--color--base);
	--db-white: var(--wp--preset--color--base-2);
	/* r06: brand slots + the last hard-coded greys as tokens */
	--db-primary: var(--wp--preset--color--primary, var(--db-ink));
	--db-secondary: var(--wp--preset--color--secondary, var(--wp--preset--color--accent-3));
	--db-input: var(--wp--custom--demobase--input);
	--db-dark-border: var(--wp--custom--demobase--dark-border);
	--db-dark-2: var(--wp--custom--demobase--dark-2);
	/* r07: shadow comes from theme.json (settings.shadow.presets "raised", tinted from the contrast slot) */
	--db-shadow-raised: var(--wp--preset--shadow--raised);
}

/* ------------------------------------------------------------------
   Utilities
------------------------------------------------------------------ */
.db-muted, .db-muted a { color: var(--db-muted); }
.db-muted-dark { color: var(--db-muted-2); }
.db-small { font-size: 0.9rem; }
.db-xs { font-size: 0.78rem; }
.db-lead { font-size: 1.25rem; max-width: 560px; }
.db-m0 { margin: 0 !important; }
.db-eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75rem !important; font-weight: 500; margin: 0; }
.db-accent-2-text { color: var(--db-a2); }
.db-sticky { position: sticky; top: 2rem; align-self: flex-start; }
.db-band { padding-top: var(--db-section); padding-bottom: var(--db-section); }
.db-main > .db-band:last-child, .db-main > .wp-block-group.alignfull:last-child { margin-bottom: 0; }
.db-main { padding-bottom: 0; }

/* Cards / boxes */
.db-box { background: var(--db-white); border: 1px solid var(--db-border); padding: 1.75rem; }
.db-box h4, .db-box .wp-block-heading { margin-top: 0; font-size: 1.2rem; }
.db-box-dark { border: 0; }
.db-box-sand { border: 0; }
.db-box-dark .db-muted-dark, .db-box-dark .db-small { color: var(--db-muted-2); }
.db-btn-full .wp-block-button__link, .wp-block-button.db-btn-full { width: 100%; text-align: center; }
.db-btn-accent .wp-block-button__link { background: var(--db-a3); border-color: var(--db-a3); color: var(--db-white); }
.wp-block-read-more.db-btn { display: inline-block; background: var(--db-primary); color: var(--db-base); padding: 0.8rem 1.5rem; text-decoration: none; font-size: 0.95rem; }
.db-pill .wp-block-button__link { border-radius: 99px; padding: 0.45rem 1rem; font-size: 0.85rem; }
.db-chip .wp-block-button__link { border-radius: 0; padding: 0.45rem 0.9rem; font-size: 0.85rem; border: 1px solid var(--db-input); background: var(--db-white); color: var(--db-ink); }

/* Image placeholders (CSS only, no external requests) */
.db-ph { position: relative; background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); overflow: hidden; min-height: 160px; display: flex; align-items: flex-end; }
.db-ph--sage { background: linear-gradient(135deg, var(--db-a4), var(--db-a5)); }
.db-ph--stone { background: linear-gradient(135deg, var(--db-a5), var(--db-a1)); }
.db-ph--sand { background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); }
.db-ph--dark { background: linear-gradient(135deg, var(--db-ink), var(--db-dark-2)); color: var(--db-white); }
.db-r43 { aspect-ratio: 4/3; } .db-r169 { aspect-ratio: 16/9; } .db-r21 { aspect-ratio: 21/9; } .db-r34 { aspect-ratio: 3/4; } .db-r11 { aspect-ratio: 1; }
.db-ph-label { font-size: 0.7rem !important; color: color-mix(in srgb, var(--db-ink) 55%, transparent); margin: 0.6rem !important; }
.db-ph--dark .db-ph-label { color: color-mix(in srgb, var(--db-white) 60%, transparent); }
.wp-block-post-featured-image.db-thumb img { background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); }

/* Pills (categories list rendered as pills) */
ul.db-pills, .db-pills ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0; }
.db-pills li a { display: inline-block; padding: 0.25rem 0.8rem; border: 1px solid var(--db-ink); border-radius: 99px; font-size: 0.8rem; text-decoration: none; color: var(--db-ink); }
.db-pills li a:hover, .db-pills li.current-cat a { background: var(--db-ink); color: var(--db-base); }
ul.db-textfilter { list-style: none; display: flex; flex-wrap: wrap; gap: 1.5rem; padding: 0; margin: 2rem 0 0; font-size: 0.9rem; }
.db-textfilter a { color: var(--db-muted); text-decoration: none; }
.db-textfilter .current-cat a, .db-textfilter a:hover { color: var(--db-ink); font-weight: 600; }
.db-tag a, .db-pills-terms a { display: inline-block; padding: 0.25rem 0.7rem; border: 1px solid var(--db-ink); border-radius: 99px; font-size: 0.78rem; text-decoration: none; color: var(--db-ink); margin: 0 0.2rem 0.2rem 0; }
.db-tag .wp-block-post-terms__separator, .db-pills-terms .wp-block-post-terms__separator { display: none; }
.db-catlist { padding-left: 1rem; margin: 0; line-height: 2; font-size: 0.95rem; }

/* Meta lines */
.db-meta, .db-meta > * { font-size: 0.8rem; color: var(--db-muted); gap: 0.35rem 0.6rem !important; }
.db-meta a { color: var(--db-muted); text-decoration: none; }
.db-meta > * + *::before { content: "·"; margin-right: 0.6rem; }
.db-meta > .wp-block-avatar::before, .db-meta > .wp-block-avatar + *::before { content: none; margin: 0; }

/* ------------------------------------------------------------------
   Header / footer
------------------------------------------------------------------ */
.db-hdr { border-bottom: 1px solid var(--db-border); background: var(--db-base); padding-top: 0.9rem; padding-bottom: 0.9rem; }
.db-logo { font: 500 1.05rem var(--db-sans) !important; margin: 0; display: flex; align-items: center; gap: 0.55rem; }
.db-logo::before { content: ""; width: 26px; height: 26px; border-radius: 50%; background: var(--db-ink); display: inline-block; flex: none; }
.db-logo a { text-decoration: none; }
.db-nav { font-size: 0.95rem; gap: 1.6rem !important; }
.db-nav a { text-decoration: none; }
.db-nav .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; }
.db-hdr-tools { gap: 0.75rem !important; }
.db-ftr { border-top: 1px solid var(--db-border); padding-top: 3.5rem; padding-bottom: 2rem; font-size: 0.9rem; margin-top: 0; }
.db-ftr-h { font-family: var(--db-sans) !important; font-size: 0.85rem !important; font-weight: 600 !important; }
.db-ftr-list { list-style: none; padding: 0; margin: 0; line-height: 2; color: var(--db-muted); }
.db-ftr-list a { text-decoration: none; color: var(--db-muted); }
.db-ftr-tag { max-width: 320px; margin-top: 1rem; }
.db-rule { border: 0; border-top: 1px solid var(--db-rule) !important; margin: 2rem auto !important; opacity: 1; }

/* ------------------------------------------------------------------
   Blog index
------------------------------------------------------------------ */
.db-titlerow { padding-top: var(--db-section); padding-bottom: 2rem; }
.db-featured .db-hero-post { align-items: center; }
.db-hero-text .wp-block-post-title { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.db-latest-label { margin-top: 3.5rem !important; }
.db-card-title { font-size: 1.35rem !important; margin: 0.8rem 0 0.3rem; }
.db-card-title a, .db-list-title a, .db-min-title a { text-decoration: none; }
.db-card .wp-block-post-excerpt__excerpt { margin: 0 0 0.4rem; }
.db-titleband { padding-top: 3rem; padding-bottom: 3rem; }
.db-titleband .db-crumb, .db-crumb { font-size: 0.8rem; color: var(--db-muted); padding: 1.2rem 0 0.6rem; }
.db-two-col { padding-top: var(--db-section); padding-bottom: var(--db-section); gap: var(--db-gap); }
.db-listrow { gap: 1.75rem !important; padding-bottom: 2rem; margin-bottom: 2rem !important; border-bottom: 1px solid var(--db-rule); }
.db-list-title { font-size: 1.7rem !important; margin: 0.4rem 0 0.6rem; }
.db-sidebar { gap: 1rem !important; }
.db-popular li { display: flex; gap: 0.75rem; align-items: center; margin-bottom: 0.8rem; font-size: 0.9rem; }
.db-popular { padding: 0; list-style: none; }
.db-popular .wp-block-latest-posts__featured-image img { width: 64px; height: 64px; object-fit: cover; }
.db-minimal { max-width: 860px; margin-left: auto !important; margin-right: auto !important; padding: 6rem var(--db-gap) 5rem; }
.db-huge { font-size: clamp(3rem, 7vw, 5.5rem) !important; }
.db-minimal-list { margin-top: 3rem; }
.db-minrow { display: grid; grid-template-columns: 110px 1fr auto; gap: 1.5rem; align-items: baseline; padding: 1.4rem 0; border-bottom: 1px solid var(--db-rule); }
.db-minrow > * { margin: 0 !important; }
.db-min-title { font-size: 1.6rem !important; margin: 0 0 0.25rem !important; }
.db-pagination { margin-top: 3rem; gap: 0.4rem; font-size: 0.9rem; }
.db-pagination .page-numbers { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--db-rule); text-decoration: none; }
.db-pagination .page-numbers.current { background: var(--db-primary); color: var(--db-white); border-color: var(--db-ink); }
.db-minimal-list .wp-block-query-pagination-next { border: 1px solid var(--db-ink); padding: 0.6rem 1.2rem; text-decoration: none; }
.db-newsletter { padding-top: var(--db-section); padding-bottom: var(--db-section); margin-top: var(--db-section); }

/* ------------------------------------------------------------------
   Single posts
------------------------------------------------------------------ */
.db-post-head { padding-top: var(--db-section); padding-bottom: 2.5rem; text-align: center; max-width: 860px; margin-left: auto !important; margin-right: auto !important; }
.db-standfirst { font-size: 1.25rem; }
.db-editorial-cols { padding-top: 3rem; padding-bottom: 3rem; }
.db-toc { padding: 1.25rem; }
.db-toc-list { margin: 0.6rem 0 0; padding-left: 1.1rem; font-size: 0.85rem; line-height: 1.9; }
.db-toc-list a { text-decoration: none; }
.db-prose p { font-size: 1.15rem; line-height: 1.75; }
.db-prose h2 { margin-top: 2.2rem; font-size: 2rem; }
.db-postnav { margin-top: 2rem; font-size: 0.9rem; }
.db-postnav a { text-decoration: none; }
.db-post-h1 { font-size: clamp(2.2rem, 4vw, 3.4rem) !important; margin-top: 0.5rem; }
.db-authorbox { gap: 1.25rem !important; margin-top: 3rem !important; }
.db-author-name { font-family: var(--db-serif); font-size: 1.3rem; }
.db-comments { margin-top: 3rem; }
.db-comment { border-bottom: 1px solid var(--db-rule); padding: 1rem 0; }
.db-longform-head { max-width: 1000px; margin-left: auto !important; margin-right: auto !important; padding: 7rem var(--db-gap) 3rem; }
.db-giant { font-size: clamp(3rem, 8vw, 6.2rem) !important; line-height: 1.02 !important; }
.db-deck { font-family: var(--db-serif); font-size: 1.7rem; color: var(--db-muted); max-width: 760px; }
.db-longform p { font-size: 1.2rem; line-height: 1.8; }
.db-longform .has-drop-cap:not(:focus)::first-letter { font-family: var(--db-serif); font-size: 5.2rem; line-height: 0.8; padding: 0.35rem 0.6rem 0 0; font-weight: 400; }
.db-longform .wp-block-pullquote { margin-top: 3.5rem; margin-bottom: 3.5rem; text-align: center; }
.db-longform .wp-block-pullquote.db-pull-accent, .wp-block-pullquote.db-pull-accent { border: 0; color: var(--db-a3); }
.db-longform-end { padding-bottom: 5rem; text-align: center; }
.db-end-line { gap: 1rem !important; }
.wp-block-quote { background: transparent; }

/* ------------------------------------------------------------------
   Contact
------------------------------------------------------------------ */
.db-contact-split { padding-top: var(--db-section); padding-bottom: var(--db-section); gap: var(--db-gap); }
.db-map-ph { position: relative; aspect-ratio: 4/3; background-color: var(--db-base); background-image: linear-gradient(var(--db-rule) 1px, transparent 1px), linear-gradient(90deg, var(--db-rule) 1px, transparent 1px); background-size: 32px 32px; display: flex; align-items: flex-end; }
.db-map-pin { position: absolute; left: 50%; top: 45%; width: 22px; height: 22px; background: var(--db-a3); border-radius: 50% 50% 50% 0; transform: translate(-50%, -50%) rotate(-45deg); }
.db-sand-band { padding-top: 5rem; padding-bottom: 9rem; }
.db-raised-card { max-width: 720px; margin: -6rem auto 0 !important; background: var(--db-white); padding: 2.25rem; box-shadow: var(--db-shadow-raised); position: relative; }
.db-faq { max-width: 720px; margin: var(--db-section) auto !important; padding: 0 var(--db-gap); }
.db-faq summary { font-weight: 500; cursor: pointer; }
.db-channels-head { padding-top: var(--db-section); padding-bottom: 2rem; }
.db-h1-mid { font-size: clamp(2rem, 4vw, 3rem) !important; max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.db-tiles { padding-bottom: var(--db-section); }
.db-tile { text-align: center; height: 100%; }
.db-tile .wp-block-heading { margin: 0.8rem 0 0.4rem; }
.db-icon { width: 44px; height: 44px; border-radius: 50%; background: var(--db-a2); display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.db-icon--email { background: var(--db-a4); } .db-icon--visit { background: var(--db-a5); } .db-icon--chat { background: var(--db-a1); }
.db-chips { gap: 0.5rem !important; margin: 1.25rem 0; }

/* Contact Form 7 */
.db-form .wpcf7-form p { margin: 0 0 1rem; }
.db-form label { font-size: 0.82rem; font-weight: 500; display: block; }
.db-form input[type="text"], .db-form input[type="email"], .db-form input[type="tel"], .db-form select, .db-form textarea {
	font: inherit; font-size: 0.95rem; width: 100%; padding: 0.75rem 0.9rem; border: 1px solid var(--db-input); background: var(--db-white); border-radius: 0; margin-top: 0.35rem; box-sizing: border-box; }
.db-form textarea { min-height: 140px; }
.db-form input[type="submit"] { background: var(--db-primary); color: var(--db-base); border: 1px solid var(--db-primary); padding: 0.8rem 1.5rem; font: inherit; font-size: 0.95rem; cursor: pointer; border-radius: 0; }
.db-form .db-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

/* ------------------------------------------------------------------
   WooCommerce: product cards + single product
------------------------------------------------------------------ */
.db-pcard-row { gap: 0.75rem !important; margin-top: 0.75rem; }
.db-ptitle { font-family: var(--db-sans) !important; font-size: 0.95rem !important; font-weight: 500 !important; margin: 0 !important; }
.db-ptitle a { text-decoration: none; }
.db-pprice { font-size: 0.95rem; font-weight: 500; white-space: nowrap; }
.db-pprice del { color: var(--db-muted-2); font-weight: 400; margin-right: 0.3rem; }
.db-prating { font-size: 0.8rem; }
.wc-block-components-product-sale-badge, .wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge { background: var(--db-a3) !important; color: var(--db-white) !important; border: 0 !important; border-radius: 0 !important; font-size: 0.7rem !important; }
.wc-block-components-product-rating__stars, .wc-block-components-product-rating .star-rating span::before, .star-rating span::before { color: var(--db-a3); }
.db-product-cols { padding-top: 1rem; padding-bottom: var(--db-section); gap: var(--db-gap); }
.db-product-title { font-size: clamp(2rem, 3.5vw, 2.8rem) !important; margin: 0.4rem 0; }
.db-atc .single_add_to_cart_button, .db-atc button.button { background: var(--db-primary) !important; color: var(--db-base) !important; border-radius: 0 !important; padding: 0.8rem 1.5rem !important; }
.db-atc-accent .single_add_to_cart_button, .db-atc-accent button.button { background: var(--db-a3) !important; }
.db-atc .quantity input.qty { border: 1px solid var(--db-input); border-radius: 0; height: 46px; }
.db-accordions { margin-top: 1.5rem; border-top: 1px solid var(--db-rule); }
.db-related .wc-block-product-template { gap: var(--db-gap); }
.db-gallery-wide .woocommerce-product-gallery { width: 100% !important; float: none !important; }
.db-gallery-wide .woocommerce-product-gallery__image img { max-height: 620px; object-fit: cover; width: 100%; }
.db-gallery-wide .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-top: 0.75rem !important; }
.db-buybar { position: sticky; top: 0; z-index: 20; background: var(--db-white); border-top: 1px solid var(--db-border); border-bottom: 1px solid var(--db-border); padding: 0.75rem 1.25rem; margin-top: 1.5rem !important; }
body.admin-bar .db-buybar { top: 32px; }
.db-buybar-row { gap: 1rem !important; align-items: center; }
.db-buybar-thumb { width: 56px !important; flex: none; }
.db-buybar-thumb img { width: 56px; height: 56px; object-fit: cover; }
.db-buybar-title { font-size: 1.1rem !important; margin: 0 !important; }
.db-buybar-buy { gap: 1rem !important; align-items: center; }
.db-buybar-buy form.cart { margin: 0 !important; display: flex; gap: 0.5rem; align-items: center; }
.db-tabs-wrap { padding-top: var(--db-section); padding-bottom: var(--db-section); }
.db-story-hero { padding-top: 3rem; padding-bottom: 3rem; }
.db-story-hero-cols { align-items: center; gap: var(--db-gap); }
.db-benefits { padding-top: var(--db-section); padding-bottom: var(--db-section); }
.db-benefit { text-align: center; }
.db-dot { width: 44px; height: 44px; border-radius: 50%; background: var(--db-a4); margin: 0 auto 0.75rem; }
.db-story { align-items: center; gap: var(--db-gap); }
.db-reviews .wp-block-heading { color: var(--db-base); }
.db-review-card { border: 1px solid var(--db-dark-border); padding: 1.5rem; height: 100%; }
.db-review-text { font-family: var(--db-serif); font-size: 1.2rem; line-height: 1.35; }
.db-stars { color: var(--db-a3); letter-spacing: 0.1em; font-size: 0.9rem; }

/* ------------------------------------------------------------------
   WooCommerce: category archives
------------------------------------------------------------------ */
.db-sortbar { gap: 1rem !important; align-items: center; font-size: 0.85rem; }
.db-sortbar .woocommerce-ordering select { border: 1px solid var(--db-input); padding: 0.4rem 0.6rem; border-radius: 0; }
.db-cat-cols { gap: var(--db-gap); padding-bottom: var(--db-section); }
.db-filters-col .wp-block-woocommerce-product-filters { font-size: 0.9rem; }
.db-filter-h { font-family: var(--db-sans) !important; font-size: 0.85rem !important; font-weight: 600 !important; }
.db-filters-title { font-family: var(--db-sans) !important; font-size: 1rem !important; font-weight: 600 !important; }
.db-cat-hero { padding-top: 4rem; padding-bottom: 4rem; background-image: linear-gradient(135deg, var(--db-ink), var(--db-dark-2)); }
.db-cat-hero .db-crumb, .db-cat-hero .db-crumb a, .db-cat-hero .wc-block-breadcrumbs { color: var(--db-muted-2) !important; }
.db-cat-hero .wp-block-query-title { color: var(--db-base); }
.db-subcats { padding-top: 1.75rem; padding-bottom: 1rem; }
.db-filterbar { align-items: center; border-bottom: 1px solid var(--db-border); padding-bottom: 1rem; margin-bottom: 2rem !important; }
.db-promo { background: var(--db-a4); margin-top: 3rem !important; margin-bottom: 3rem !important; align-items: stretch; gap: 0 !important; }
.db-promo-text { padding: 2.5rem; }
.db-promo .db-ph { height: 100%; }
.db-plist-head { display: grid; grid-template-columns: 88px 1fr 160px 160px; gap: 1.25rem; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--db-muted); border-bottom: 1px solid var(--db-ink); padding: 0.75rem 0.75rem; margin-top: 2rem; }
.db-plist-head span:first-child { grid-column: span 2; }
.db-plist-head span:nth-child(2) { display: none; }
.db-plist-row { display: grid; grid-template-columns: 88px 1fr 160px 160px; gap: 1.25rem; align-items: center; padding: 1rem 0.75rem; border-bottom: 1px solid var(--db-rule); }
.db-plist li:nth-child(even) .db-plist-row, .db-plist > *:nth-child(even) .db-plist-row { background: var(--db-white); }
.db-plist-row > * { margin: 0 !important; }
.db-plist-img img { width: 88px; height: 88px; object-fit: cover; }
.db-plist-buy { text-align: right; }
.db-plist-btn .wp-block-button__link, .db-plist-btn .add_to_cart_button { background: var(--db-primary); color: var(--db-white); border-radius: 0; font-size: 0.8rem; padding: 0.45rem 0.9rem; }

/* ------------------------------------------------------------------
   Responsive
------------------------------------------------------------------ */
@media (max-width: 900px) {
	.db-hide-m { display: none !important; }
	.db-sticky { position: static; }
	.db-minrow { grid-template-columns: 80px 1fr; }
	.db-plist-head { display: none; }
	.db-plist-row { grid-template-columns: 72px 1fr; }
	.db-plist-rating, .db-plist-buy { grid-column: 2; text-align: left; }
	.db-filterbar { flex-wrap: wrap !important; }
	.db-buybar-row, .db-buybar-buy { flex-wrap: wrap !important; }
	.db-raised-card { margin-top: -4rem !important; padding: 1.5rem; }
}
@media (max-width: 600px) {
	.db-form .db-form-row { grid-template-columns: 1fr; }
	.db-minrow { grid-template-columns: 1fr; gap: 0.25rem; }
}

/* ------------------------------------------------------------------
   Fixes after the Playground render check
------------------------------------------------------------------ */
/* Featured-image placeholders are rendered server-side (functions.php, r02). */
.db-thumbcol .wp-block-post-featured-image { margin: 0; }
/* Header search as a plain icon */
.db-hdr-search .wp-block-search__button { background: transparent !important; color: var(--db-ink) !important; border: 0 !important; padding: 0.4rem !important; }
.db-hdr-search .wp-block-search__button svg { fill: currentColor; }
/* Dark surfaces: headings follow the text colour */
.db-box-dark .wp-block-heading, .db-reviews .wp-block-heading, .db-cat-hero .wp-block-heading { color: inherit; }
/* No gap between the last band and the footer */
.wp-site-blocks > footer, .wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0; }
.db-main { margin-block-end: 0; }
/* Longform: content column is full-width so wide blocks break out to 1000px */
.db-longform.alignfull { padding-left: var(--db-gap); padding-right: var(--db-gap); }
.wp-block-pullquote { border-radius: 0; }
/* Product B: gallery spans the wide width */
.db-gallery-wide .wp-block-woocommerce-product-image-gallery,
.db-gallery-wide .woocommerce-product-gallery,
.db-gallery-wide div.images { width: 100% !important; max-width: none !important; float: none !important; }
.db-gallery-wide .woocommerce-product-gallery__image--placeholder img,
.db-gallery-wide .woocommerce-product-gallery__image img { width: 100%; max-height: 620px; object-fit: cover; }
.db-gallery-wide .woocommerce-product-gallery__image--placeholder { background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); }
.db-gallery-wide .woocommerce-product-gallery__image--placeholder img { object-fit: contain; mix-blend-mode: multiply; }
/* Classic sale flash */
.woocommerce span.onsale, span.onsale { background: var(--db-a3) !important; color: var(--db-white) !important; border-radius: 0 !important; min-height: 0 !important; min-width: 0 !important; line-height: 1.4 !important; padding: 0.2rem 0.55rem !important; font-size: 0.7rem !important; font-weight: 500 !important; top: 0.7rem !important; left: 0.7rem !important; right: auto !important; }
/* Category title row */
.db-cat-titlerow { padding-top: 1rem; padding-bottom: 2rem; }
/* Pagination links */
.db-pagination a, .db-pagination .wp-block-query-pagination-next, .db-pagination .wp-block-query-pagination-previous { text-decoration: none; font-size: 0.9rem; }
.db-plist-head span:last-child { text-align: right; }

/* ------------------------------------------------------------------
   r02 fixes (audit r01)
------------------------------------------------------------------ */
/* 7. Featured-image placeholder (server-side figure when a post has no image) */
.db-thumb--ph { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; overflow: hidden; background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); }
.db-thumb--ph.db-ph-v1 { background: linear-gradient(135deg, var(--db-a4), var(--db-a5)); }
.db-thumb--ph.db-ph-v2 { background: linear-gradient(135deg, var(--db-a5), var(--db-a1)); }
.db-thumb--ph > a { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.db-thumb--ph svg { width: 44px; height: 44px; color: color-mix(in srgb, var(--db-ink) 45%, transparent); }
.db-thumb--ph.alignwide { max-width: var(--wp--style--global--wide-size, 1280px); margin-left: auto !important; margin-right: auto !important; }
.db-thumbcol .db-thumb--ph { height: 100%; }

/* 7. Blog A "All" pill */
.db-pills .cat-item-all a, .db-textfilter .cat-item-all a { font-weight: 500; }

/* 11. Popular posts: square placeholder when a post has no image */
.db-popular li:not(:has(img))::before { content: ""; flex: none; width: 64px; height: 64px; background: linear-gradient(135deg, var(--db-a1), var(--db-a2)); }
.db-popular li:nth-child(3n+2):not(:has(img))::before { background: linear-gradient(135deg, var(--db-a4), var(--db-a5)); }
.db-popular li:nth-child(3n):not(:has(img))::before { background: linear-gradient(135deg, var(--db-a5), var(--db-a1)); }
.db-popular .wp-block-latest-posts__featured-image { flex: none; margin: 0 !important; }
.db-popular li > a { text-decoration: none; }

/* 5. Blog B: sidebar boxes never wider than the column (search input set the min-content width) */
.db-sidebar { align-items: stretch !important; min-width: 0; }
.db-sidebar > * { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
.db-box .wp-block-search__inside-wrapper, .db-box .wp-block-search__input { min-width: 0; }
.wp-block-column { min-width: 0; }

/* 5. Post C: 21:9 placeholders no longer forced wider by min-height on small screens */
.db-ph.db-r21, .db-ph.db-r43, .db-ph.db-r169, .db-ph.db-r34, .db-ph.db-r11 { min-height: 0; }
.db-longform > .alignwide { max-width: min(1000px, 100%); }

/* 6. Newsletter: email + Subscribe */
.db-nl { max-width: 460px; margin: 1.25rem auto 0; }
.db-nl-card { margin: 0.75rem 0 0; max-width: none; }
.db-nl form, .db-nl .wpcf7-form { margin: 0; }
.db-nl-row, .db-nl .db-nl-row { display: flex; gap: 0.5rem; align-items: stretch; }
.db-nl-card .db-nl-row { flex-direction: column; }
.db-nl .wpcf7-form-control-wrap { flex: 1 1 auto; min-width: 0; }
.db-nl input[type="email"] { font: inherit; font-size: 0.9rem; width: 100%; padding: 0.75rem 0.9rem; border: 1px solid var(--db-input); background: var(--db-white); border-radius: 0; box-sizing: border-box; margin: 0; }
.db-nl button, .db-nl input[type="submit"] { font: inherit; font-size: 0.9rem; padding: 0.75rem 1.4rem; background: var(--db-primary); color: var(--db-base); border: 1px solid var(--db-primary); border-radius: 0; cursor: pointer; white-space: nowrap; margin: 0; }
.db-nl .wpcf7-spinner { position: absolute; }
.db-nl .wpcf7-response-output { margin: 0.75rem 0 0 !important; font-size: 0.85rem; }
.db-nl-note { margin: 0.5rem 0 0; font-size: 0.75rem; color: var(--db-muted); }
.db-nl label.screen-reader-text { position: absolute !important; }
@media (max-width: 600px) { .db-nl-row { flex-direction: column; } }

/* 4. Contact Form 7: honeypot, quiz, consent */
.db-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.db-form .wpcf7-quiz-label { display: block; font-size: 0.82rem; font-weight: 400; color: var(--db-muted); margin-top: 0.2rem; }
.db-form input.wpcf7-quiz { font: inherit; font-size: 0.95rem; width: 100%; max-width: 200px; padding: 0.75rem 0.9rem; border: 1px solid var(--db-input); border-radius: 0; margin-top: 0.35rem; box-sizing: border-box; }
.db-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.db-form .wpcf7-acceptance label { display: inline; font-weight: 400; font-size: 0.85rem; }
.db-chips .db-chip.is-active .wp-block-button__link { background: var(--db-ink); color: var(--db-base); border-color: var(--db-ink); }

/* 8. Post C: large display pull quotes, share + next essay end line */
.db-longform .wp-block-pullquote { padding: 2.5rem 0; }
.db-longform .wp-block-pullquote blockquote { margin: 0; }
.db-longform .wp-block-pullquote p { font-family: var(--db-serif); font-size: clamp(1.9rem, 4.2vw, 2.9rem) !important; line-height: 1.18 !important; margin: 0; }
.db-longform .wp-block-pullquote.db-pull-accent p { font-size: clamp(1.7rem, 3.4vw, 2.4rem) !important; }
.db-end-line { flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0.35rem 0.9rem !important; font-size: 0.9rem; color: var(--db-muted); }
.db-end-line > * { margin: 0 !important; }
.db-end-line > * + *::before { content: "·"; margin-right: 0.9rem; }
.db-end-line a { color: var(--db-ink); }
.db-share-links { display: inline; }
.db-share-links a + a { margin-left: 0.6rem; }

/* 2. Author box link */
.db-author-name a { text-decoration: none; }

/* 10/11. Rating fallback + Category List attribute columns */
.db-rating-empty { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; color: var(--db-muted); margin: 0.2rem 0; }
.db-rating-empty .db-stars-empty { color: var(--db-a3); letter-spacing: 0.08em; font-size: 0.95rem; }
.db-rating-count { font-size: 0.78rem; color: var(--db-muted); }
.db-plist-head, .db-plist-row { grid-template-columns: 88px minmax(0, 1fr) 110px 110px 140px 150px; }
.db-plist-head span:first-child { grid-column: span 2; }
.db-plist-head span:nth-child(2) { display: none; }
.db-plist-row .db-attr { font-size: 0.85rem; }
@media (max-width: 900px) {
	.db-plist-row { grid-template-columns: 72px minmax(0, 1fr); }
	.db-plist-row .db-attr { grid-column: 2; font-size: 0.78rem; color: var(--db-muted); }
	.db-plist-row .db-attr::before { content: attr(data-label) ": "; }
}
.db-nl-row > p { display: contents; }
.db-nl-row br { display: none; }
.db-plist-rating.db-rating-empty { flex-direction: column; align-items: flex-start; gap: 0.1rem; }
.db-plist-rating .db-rating-count { white-space: nowrap; }

/* ------------------------------------------------------------------
   r03: front page (templates/front-page.html)
------------------------------------------------------------------ */
.db-home { margin-top: 0; }
.db-home > * { margin-block-start: 0; }
.db-announce { padding: 0.55rem 1.25rem; }
.db-announce-text { margin: 0; font-size: 0.85rem; letter-spacing: 0.02em; }
.db-home-hero { text-align: left; }
.db-home-hero-inner { max-width: var(--wp--style--global--wide-size, 1280px); margin-left: auto; margin-right: auto; }
.db-home-hero-inner > * + * { margin-top: 1.1rem; }
.db-home-h1 { max-width: 14ch; margin-top: 0.75rem !important; }
.db-home-hero .db-muted { color: color-mix(in srgb, var(--db-ink) 72%, transparent); }
.db-home-section { padding-top: var(--db-section); }
.db-home-section.db-band { margin-top: var(--db-section); }
.db-home-head { margin-bottom: 1.75rem; gap: 1rem; }
.db-home-more { margin: 0; }
.db-home-more a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.db-home-products .wc-block-product-template,
.db-home-products ul.wp-block-woocommerce-product-template { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--db-gap); }
.db-home-products .wc-block-product-template > li { width: auto !important; margin: 0 !important; max-width: none !important; }
.db-home-products .wc-block-components-product-image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.db-home-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--db-gap); }
.db-home-cat { position: relative; }
.db-home-cat-img { aspect-ratio: 4 / 3; min-height: 0; }
.db-home-cat-title { margin: 1rem 0 0.25rem; font-size: 1.5rem; }
.db-home-cat-title a { color: inherit; text-decoration: none; }
.db-home-cat-title a::after { content: ""; position: absolute; inset: 0; }
.db-home-cat .db-small { margin: 0; }
.db-home-cat:hover .db-home-cat-title a { text-decoration: underline; }
.db-home-posts .wp-block-post-template { gap: var(--db-gap); }
.db-home-cta-row { gap: 1.5rem; }
.db-home-cta .db-muted-dark { margin-top: 0.5rem !important; }
.db-main.db-home > .db-home-cta { margin-top: 0; margin-bottom: 0; }
.db-home-cta h2, .db-home-cta .wp-block-heading { color: var(--db-base); }
.db-home-cats > *, .db-home-cat > * { margin-block-start: 0; }
.db-home-cat > .db-home-cat-title { margin-top: 1rem; }
@media (max-width: 781px) {
	.db-home-products .wc-block-product-template,
	.db-home-products ul.wp-block-woocommerce-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.db-home-cats { grid-template-columns: 1fr; }
	.db-home-cat-img { aspect-ratio: 16 / 9; }
	.db-home-products .db-pcard-row { flex-direction: column; gap: 0.2rem; }
	.db-home-posts .wp-block-post-template { grid-template-columns: 1fr !important; }
	.db-home-cta-row { flex-direction: column; align-items: flex-start !important; }
	.db-home-head { flex-wrap: wrap; }
}

/* ------------------------------------------------------------------
   r04 (after recheck r02)
------------------------------------------------------------------ */
/* Related products / You may also like: one row of 4 on desktop, 2 on mobile.
   The custom gap broke WooCommerce's auto-fill maths (3 + 1 wrap). */
.db-related .wc-block-product-template,
.db-related .wc-block-product-template.wc-block-product-template__responsive { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: var(--db-gap); }
.db-related .wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }
@media (max-width: 781px) {
	.db-related .wc-block-product-template,
	.db-related .wc-block-product-template.wc-block-product-template__responsive { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1.25rem; }
}
/* Category B: "All" pill */
.db-subcats .cat-item-all a { font-weight: 500; }
/* FAQ: + / − markers instead of the default triangle */
.db-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.db-faq summary::-webkit-details-marker { display: none; }
.db-faq summary::marker { content: ""; }
.db-faq summary::after { content: "+"; font-weight: 400; font-size: 1.35rem; line-height: 1; flex: none; }
.db-faq details[open] > summary::after { content: "\2212"; }
/* Inline image placeholder in post bodies */
.db-inline-img img { width: 100%; height: auto; }
/* Newsletter consent checkbox: always on its own line under the email + Subscribe row,
   whether the [acceptance] tag sits inside .db-nl-row or after it. */
.db-nl-row { flex-wrap: wrap; }
.db-nl-row .wpcf7-form-control-wrap[data-name="newsletter-email"] { flex: 1 1 12rem; }
.db-nl .wpcf7-form-control-wrap:has(.wpcf7-acceptance) { order: 10; flex: 1 0 100%; display: block; margin-top: 0.15rem; font-size: 0.8rem; line-height: 1.4; }
.db-nl.db-nl-card .wpcf7-form-control-wrap:has(.wpcf7-acceptance) { order: 0; }
.db-nl .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.db-nl .wpcf7-acceptance label { display: inline-flex; gap: 0.45rem; align-items: flex-start; cursor: pointer; }
.db-nl .wpcf7-acceptance input[type="checkbox"] { margin: 0.15rem 0 0; flex: none; width: 1rem; height: 1rem; accent-color: var(--db-ink); }
.db-nl-band .wpcf7-acceptance { color: inherit; }
.db-nl-card .db-nl-row .wpcf7-form-control-wrap[data-name="newsletter-email"] { flex: 0 0 auto; }
@media (max-width: 600px) { .db-nl-row .wpcf7-form-control-wrap[data-name="newsletter-email"] { flex: 0 0 auto; } }

/* ------------------------------------------------------------------
   r05 (v1.3.1): product card titles break only between words
------------------------------------------------------------------ */
.db-ptitle, .db-ptitle a { overflow-wrap: normal !important; word-wrap: normal !important; word-break: normal !important; hyphens: none !important; -webkit-hyphens: none !important; }
@media (max-width: 781px) {
	/* Title and price share the line when they fit; otherwise the price drops under the title. */
	.db-pcard-row { flex-wrap: wrap !important; row-gap: 0.2rem !important; }
	.db-pcard-row > .db-ptitle { flex: 1 1 auto; min-width: 0; }
	.db-pcard-row > .db-pprice { flex: 0 0 auto; }
}

/* ------------------------------------------------------------------
   r06 (v1.4.0): brand, Site Details, image + copy placeholders
------------------------------------------------------------------ */
/* Logo (Site Logo block; theme LOGO placeholder until one is set) */
.db-site-logo, .db-site-logo a { display: block; line-height: 0; }
.db-site-logo img { width: 180px; max-width: 42vw; height: auto; }
/* Footer contact details + social icons from Settings > Site Details */
.db-ftr-contact { margin: 0.5rem 0 0 !important; }
.db-ftr-contact a { color: inherit; }
ul.db-social { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0; margin: 0.9rem 0 0; }
.db-soon ul.db-social { justify-content: center; }
.db-social a { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; border: 1px solid var(--db-border); color: var(--db-ink); border-radius: 50%; }
.db-social a:hover { background: var(--db-primary); border-color: var(--db-primary); color: var(--db-white); }
/* Placeholder images: fill their slot, crop instead of stretching */
.db-ph-img { margin-bottom: 0 !important; }
.db-ph-img img { display: block; width: 100%; height: auto; }
.db-ph-img--hero img { aspect-ratio: 16 / 9; object-fit: cover; }
.db-ph-img--category-card img { aspect-ratio: 4 / 3; object-fit: cover; }
.db-ph-img--category-banner { margin-top: 1.75rem !important; }
.db-ph-img--category-banner img { aspect-ratio: 16 / 5; object-fit: cover; }
.db-ph-img--story img, .db-ph-img--map img { aspect-ratio: 4 / 3; object-fit: cover; }
.db-ph-img--promo img { aspect-ratio: 2 / 1; object-fit: cover; }
.db-ph-img--team-photo img, .db-ph-img--gallery img { aspect-ratio: 1; object-fit: cover; }
.db-thumb--img { overflow: hidden; }
.db-thumb--img img { display: block; }
.db-home-cat-img { background: none !important; min-height: 0 !important; padding: 0 !important; }
/* Home hero: text + Hero image */
.db-home-hero-cols { gap: var(--db-gap); align-items: center !important; }
.db-home-hero-cols .db-home-hero-inner { max-width: 560px; }
/* Copy placeholders (slot name + target length); class kept so they are easy to find */
.db-blog-intro { margin-top: 0.5rem !important; }
.db-cat-introwrap { margin-top: 0 !important; }
.db-cat-intro p { margin: 0.25rem 0 0; }
/* 404 */
.db-404 { text-align: center; max-width: 720px; margin-left: auto !important; margin-right: auto !important; padding-left: var(--db-gap); padding-right: var(--db-gap); }
.db-404-lead { margin-left: auto !important; margin-right: auto !important; }
.db-404-search { max-width: 460px; margin: 1.5rem auto !important; }
.db-404-search .wp-block-search__input { border: 1px solid var(--db-input); border-radius: 0; padding: 0.7rem 0.9rem; }
.db-404-search .wp-block-search__button { background: var(--db-primary); color: var(--db-white); border: 0; border-radius: 0; }
.db-404-btns { gap: 0.75rem !important; }
/* Coming soon (template only; WooCommerce coming-soon mode stays off) */
.db-soon-main { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; }
.db-soon { text-align: center; max-width: 640px; margin: 0 auto !important; padding-left: var(--db-gap); padding-right: var(--db-gap); }
.db-soon .db-site-logo { display: flex; justify-content: center; margin-bottom: 2rem; }
.db-soon-lead { margin-left: auto !important; margin-right: auto !important; }
.db-soon-foot { padding: 1.5rem 0; }
/* Starter pages (About / FAQ / Shipping / Returns / Thank You) */
.db-team .wp-block-column { text-align: center; }
.db-team .db-ph-img { margin-bottom: 0.75rem !important; }
.db-gallery-row { gap: var(--db-gap); }
@media (max-width: 781px) {
	.db-home-hero-cols { flex-direction: column-reverse; }
}

/* ------------------------------------------------------------------
   KN r01 (v1.5.0): Kind Nutrients store front, buttons, contact, product chart
------------------------------------------------------------------ */
.kn-eyebrow { color: var(--wp--preset--color--accent-3); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.8rem; margin: 0 0 0.4rem; }
.kn-hero { padding-top: clamp(2.5rem, 6vw, 4.5rem) !important; padding-bottom: clamp(2.5rem, 6vw, 4.5rem) !important; }
.kn-hero .kn-eyebrow { color: var(--wp--preset--color--accent-2); }
.kn-hero-h1 { color: var(--wp--preset--color--base); font-size: clamp(2.2rem, 4.6vw, 3.6rem) !important; margin: 0 0 1rem; }
.kn-hero-lead { color: #d9d9d9; font-size: 1.1rem; max-width: 34rem; }
.kn-hero-priceline { color: #cfcfcf; margin: 1.2rem 0 0.4rem; }
.kn-hero-price { color: var(--wp--preset--color--base); font-size: 2rem; font-weight: 800; margin-right: 0.4rem; }
.kn-hero-note { font-size: 0.95rem; }
.kn-hero-cols { align-items: center !important; gap: clamp(1.5rem, 4vw, 3rem) !important; }
.kn-hero-img img { border-radius: 14px; background: radial-gradient(circle at 50% 45%, var(--wp--preset--color--accent-5), var(--wp--preset--color--accent-4) 70%); width: 100%; height: auto; }
.kn-btn-green .wp-block-button__link { background: var(--wp--preset--color--accent-2) !important; color: var(--wp--preset--color--accent-4) !important; font-weight: 700; border: 2px solid var(--wp--preset--color--accent-2); }
.kn-btn-ghost .wp-block-button__link { color: var(--wp--preset--color--base) !important; border-color: var(--wp--preset--color--base) !important; background: transparent !important; }
.kn-tip { padding: 0.9rem 1.25rem !important; border-top: 3px solid var(--wp--preset--color--accent-2); }
.kn-tip-text { margin: 0; }
.kn-stages { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2.5vw, 1.75rem); margin-top: 1.5rem; }
.kn-stage-card { background: var(--wp--preset--color--base); border: 1px solid var(--db-border); border-radius: 14px; padding: 1.5rem; border-top: 4px solid var(--wp--preset--color--accent-2); }
.kn-stage-card h3 { margin: 0.4rem 0 0.5rem; }
.kn-stage-pill { display: inline-block; background: var(--wp--preset--color--accent-4); color: var(--wp--preset--color--base); border-radius: 999px; padding: 0.15rem 0.7rem; font-size: 0.78rem; font-weight: 600; margin: 0; }
.kn-stage-list { padding-left: 1.1rem; margin: 0.5rem 0 0; }
.kn-stage-list a { color: var(--wp--preset--color--accent-3); font-weight: 600; }
.kn-center-btns { margin-top: 1.75rem; }
.kn-value-cols { align-items: center !important; }
.kn-price-card { background: var(--wp--preset--color--accent); border-radius: 14px; padding: 1.5rem 1.75rem; }
.kn-price-list { list-style: none; padding: 0; margin: 0; }
.kn-price-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent); font-variant-numeric: tabular-nums; }
.kn-price-list li:last-child { border-bottom: 0; color: var(--wp--preset--color--accent-3); }
.kn-home-products .kn-card-btn .wp-block-button__link, .kn-home-products .kn-card-btn .button { font-size: 0.85rem; padding: 0.55rem 1.1rem; }
.kn-home-products .wc-block-components-product-image img { aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.db-ftr-logo img { width: 150px; height: auto; }
.kn-contact-card { background: var(--wp--preset--color--base-2); border-radius: 14px; padding: 1.5rem; }
.kn-chart { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kn-chart table { border-collapse: collapse; width: 100%; font-size: 0.85rem; }
.kn-chart th, .kn-chart td { border: 1px solid var(--db-border); padding: 6px 8px; text-align: center; }
.kn-chart thead th { background: var(--wp--preset--color--accent-4); color: var(--wp--preset--color--base); }
.kn-chart td.kn-st { background: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--accent-4); font-weight: 700; }
.kn-chart td.kn-pr { text-align: left; font-weight: 600; }
.page-template-page-no-title .kn-combo { margin-top: clamp(1rem, 3vw, 2rem); }
@media (max-width: 781px) {
	.kn-stages { grid-template-columns: 1fr; }
	.kn-hero-price { display: block; }
}

/* KN r01: header fits at 390 (wider KN logo) */
@media (max-width: 480px) {
	.db-site-logo img { max-width: 32vw; }
	.db-hdr-tools { gap: 0.4rem !important; }
	.db-hdr-row { gap: 0.5rem !important; }
}

/* KN COMBO START (generated by gen_kn_pages.py) */
.kn-combo{--kn-g:var(--wp--preset--color--accent-2);--kn-gd:var(--wp--preset--color--accent-3);--kn-k:var(--wp--preset--color--accent-4);--kn-tint:var(--wp--preset--color--accent);--kn-soft:var(--wp--preset--color--base-2);--kn-line:color-mix(in srgb,var(--wp--preset--color--contrast) 12%,transparent);font-family:var(--wp--preset--font-family--body);color:var(--wp--preset--color--contrast);line-height:1.6;max-width:1100px;margin:0 auto}
.kn-combo *{box-sizing:border-box}
.kn-combo img{max-width:100%;height:auto;display:block}
.kn-combo h1,.kn-combo h2,.kn-combo h3{font-family:var(--wp--preset--font-family--heading);font-weight:800;letter-spacing:-.02em}
.kn-combo h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;margin:0 0 .4em}
.kn-combo h3{font-size:1.1rem;margin:0 0 .3em}
.kn-combo section{padding:48px 20px}
.kn-combo .kn-eyebrow{color:var(--kn-gd);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem}
.kn-combo .kn-hero{background:var(--kn-k);color:var(--wp--preset--color--base);border-radius:16px;display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center;padding:48px 36px}
.kn-combo .kn-hero .kn-eyebrow{color:var(--kn-g)}
.kn-combo .kn-hero h1{font-size:clamp(2rem,4.4vw,2.8rem);line-height:1.08;margin:.2em 0 .4em;color:var(--wp--preset--color--base)}
.kn-combo .kn-hero h1 span{color:var(--kn-g)}
.kn-combo .kn-hero p{color:#ddd}
.kn-combo .kn-hero ul{list-style:none;padding:0;margin:16px 0}
.kn-combo .kn-hero li{padding:4px 0}.kn-combo .kn-hero li:before{content:"✓ ";color:var(--kn-g);font-weight:700}
.kn-combo .kn-heroimg{background:radial-gradient(circle at 50% 45%,var(--wp--preset--color--accent-5),var(--kn-k) 70%);border-radius:12px;padding:12px}
.kn-combo .kn-price{font-size:2rem;font-weight:800;color:var(--wp--preset--color--base);margin:6px 0 2px}
.kn-combo .kn-save{display:inline-block;background:var(--kn-g);color:var(--kn-k);font-weight:800;border-radius:999px;padding:2px 12px;font-size:.85rem;margin-left:8px;vertical-align:middle}
.kn-combo .kn-btn{display:inline-block;background:var(--kn-g);color:var(--kn-k)!important;text-decoration:none;font-weight:700;padding:14px 28px;border-radius:999px;margin:10px 10px 0 0}
.kn-combo .kn-btn.kn-ghost{background:transparent;border:2px solid var(--kn-g);color:var(--kn-g)!important}
.kn-combo .kn-btn.kn-sm{padding:8px 16px;font-size:.85rem;margin:8px 0 0}
.kn-combo .kn-btn.kn-dark{background:var(--kn-k);color:var(--wp--preset--color--base)!important}
.kn-combo .kn-tip{background:var(--kn-tint);border-left:5px solid var(--kn-g);padding:14px 18px;border-radius:8px;margin:24px 20px 0}
.kn-combo .kn-grid{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}
.kn-combo .kn-card{border:1px solid var(--kn-line);border-radius:14px;padding:22px;background:var(--wp--preset--color--base)}
.kn-combo .kn-card .kn-ic{width:42px;height:42px;border-radius:50%;background:var(--kn-g);color:var(--kn-k);display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:10px}
.kn-combo .kn-prod{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start}
.kn-combo .kn-prod img{border-radius:10px;background:#fff}
.kn-combo .kn-pill{display:inline-block;background:var(--kn-k);color:var(--wp--preset--color--base);font-size:.75rem;border-radius:999px;padding:2px 10px;margin:0 4px 6px 0}
.kn-combo .kn-pill.g{background:var(--kn-g);color:var(--kn-k)}
.kn-combo .kn-tags{font-size:.85rem;color:var(--kn-gd);font-weight:600}
.kn-combo .kn-single{font-size:.9rem;color:var(--wp--preset--color--contrast-2)}
.kn-combo .kn-single a{color:var(--kn-gd);font-weight:700}
.kn-combo .kn-dark{background:var(--kn-k);color:var(--wp--preset--color--base);border-radius:16px}
.kn-combo .kn-dark h2,.kn-combo .kn-dark h3{color:var(--wp--preset--color--base)}
.kn-combo .kn-dark .kn-eyebrow{color:var(--kn-g)}
.kn-combo .kn-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.kn-combo .kn-step{border-top:4px solid var(--kn-g);padding-top:12px}
.kn-combo .kn-step small{color:var(--kn-g);font-weight:700}
.kn-combo .kn-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.kn-combo table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}
.kn-combo th,.kn-combo td{border:1px solid var(--kn-line);padding:8px 10px;text-align:center}
.kn-combo thead th{background:var(--kn-k);color:var(--wp--preset--color--base)}
.kn-combo td.kn-st{background:var(--kn-g);color:var(--kn-k);font-weight:700}
.kn-combo td.kn-pr{text-align:left;font-weight:600}
.kn-combo .kn-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.kn-combo ol,.kn-combo ul{padding-left:1.2em}
.kn-combo details{border:1px solid var(--kn-line);border-radius:10px;padding:14px 18px;margin-bottom:10px;background:var(--wp--preset--color--base)}
.kn-combo summary{font-weight:700;cursor:pointer}
.kn-combo .kn-cmp{width:100%;min-width:0;font-size:.95rem}
.kn-combo .kn-cmp td{text-align:left}.kn-combo .kn-cmp td:last-child{text-align:right;font-variant-numeric:tabular-nums}
.kn-combo .kn-cmp tr.kn-tot td{font-weight:800;background:var(--kn-soft)}
.kn-combo .kn-cmp tr.kn-pack td{font-weight:800;background:var(--kn-tint)}
.kn-combo .kn-cta{text-align:center;background:var(--kn-g);color:var(--kn-k);border-radius:16px}
.kn-combo .kn-cta h2{color:var(--kn-k)}
.kn-combo .kn-fine{font-size:.8rem;color:var(--wp--preset--color--contrast-2);text-align:center}
.kn-combo .kn-soft{background:var(--kn-soft);border-radius:16px}
@media (max-width:820px){.kn-combo .kn-hero,.kn-combo .kn-two{grid-template-columns:1fr}.kn-combo .kn-grid{grid-template-columns:1fr 1fr}.kn-combo .kn-steps{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.kn-combo .kn-grid,.kn-combo .kn-steps{grid-template-columns:1fr}.kn-combo section{padding:32px 14px}.kn-combo .kn-hero{padding:28px 18px}.kn-combo .kn-prod{grid-template-columns:90px 1fr}.kn-combo .kn-btn{display:block;text-align:center;margin-right:0}}
/* KN COMBO END */
