/* Auto-built main.bundle.css */

/**
 * Main front-end stylesheet entry.
 *
 * Architecture (inverted triangle):
 * 1. Variables / tokens
 * 2. Fonts
 * 3. Base elements
 * 4. Typography & links
 * 5. Accessibility
 * 6. Layout
 * 7. Components
 * 8. Blocks
 * 9. Utilities / motion
 *
 * @package Nest_Narrow
 */
/* Base */
/* ===== base/_variables.css ===== */
/**
 * Design tokens — Nest & Narrow
 *
 * Calm Scandinavian linen palette: one muted sage CTA family,
 * warm stone secondaries, taupe accents, linen neutrals.
 * Quiet luxury for small-space organization — not a kitchen brand.
 *
 * Prefix: --nn-*
 */

:root {
	/* -------------------------------------------------------------------------
	 * Color — Primary (Muted sage)
	 * Single family for CTAs, links, focus — the brand hero color.
	 * ---------------------------------------------------------------------- */
	--nn-color-primary-50: #f3f6f4;
	--nn-color-primary-100: #e8ede9;
	--nn-color-primary-200: #cfdad3;
	--nn-color-primary-500: #4f6f5c;
	--nn-color-primary-600: #3f5949;
	--nn-color-primary-700: #33483b;



	/* Secondary (Warm stone) — quiet UI, chips, labels */
	--nn-color-secondary-100: #f1eee8;
	--nn-color-secondary-200: #e4e0d8;
	--nn-color-secondary-500: #7a756c;
	--nn-color-secondary-600: #5e5a53;

	/* Accent (Warm taupe) — tags / rare highlight only, never next to primary CTAs */
	--nn-color-accent-100: #f6f0e6;
	--nn-color-accent-500: #a89070;
	--nn-color-accent-600: #8c7559;

	/* Semantic (toned into the warm system) */
	--nn-color-success-100: #eaf1ea;
	--nn-color-success-500: #4a6b4e;
	--nn-color-warning-100: #f7f0e4;
	--nn-color-warning-500: #9a6b12;
	--nn-color-error-100: #f8ece9;
	--nn-color-error-500: #a63d32;
	--nn-color-info-100: #ebeef0;
	--nn-color-info-500: #4a5d68;

	/* Neutrals — shared warm undertone (never cool gray) */
	--nn-color-neutral-0: #ffffff;
	--nn-color-neutral-50: #f6f4f0;
	--nn-color-neutral-100: #f1eee8;
	--nn-color-neutral-200: #e4e0d8;
	--nn-color-neutral-300: #d5cec4;
	--nn-color-neutral-500: #8a8279;
	--nn-color-neutral-700: #6b6760;
	--nn-color-neutral-900: #2a2926;
	--nn-color-neutral-950: #1f1e1c;

	/* Backgrounds — quiet gallery cream */
	--nn-color-bg-canvas: #f6f4f0;
	--nn-color-bg-surface: #ffffff;
	--nn-color-bg-sunken: #efece6;
	--nn-color-bg-soft: #f1eee8;
	--nn-color-bg-tint: #e8ede9;
	--nn-color-bg-sage: #efece6;
	--nn-color-bg-overlay: rgba(31, 28, 26, 0.48);
	--nn-color-bg-ink: #2a2926;

	/* Borders */
	--nn-color-border-default: #e4e0d8;
	--nn-color-border-strong: #d5cec4;
	--nn-color-border-focus: #4f6f5c;
	--nn-color-border-error: #a63d32;

	/* Text */
	--nn-color-text-primary: #2a2926;
	--nn-color-text-secondary: #6b6760;
	--nn-color-text-muted: #8a8279;
	--nn-color-text-inverse: #ffffff;
	--nn-color-text-link: #3f5949;
	--nn-color-text-link-hover: #33483b;

	/* -------------------------------------------------------------------------
	 * Typography
	 * ---------------------------------------------------------------------- */
	--nn-font-serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
	--nn-font-sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
	--nn-font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, monospace;

	--nn-font-weight-regular: 400;
	--nn-font-weight-semibold: 600;
	--nn-font-weight-bold: 700;

	--nn-fs-xs: 0.8125rem;
	--nn-fs-sm: 0.875rem;
	--nn-fs-md: 1rem;
	--nn-fs-lg: 1.125rem;
	--nn-fs-xl: 1.25rem;
	--nn-fs-2xl: 1.5rem;
	--nn-fs-3xl: 1.875rem;
	--nn-fs-4xl: 2.5rem;
	--nn-fs-display: clamp(2.25rem, 2rem + 1vw, 3rem);

	--nn-lh-tight: 1.15;
	--nn-lh-snug: 1.3;
	--nn-lh-normal: 1.5;
	--nn-lh-relaxed: 1.7;

	/* -------------------------------------------------------------------------
	 * Spacing (8-point)
	 * ---------------------------------------------------------------------- */
	--nn-space-0: 0;
	--nn-space-0-5: 0.25rem;
	--nn-space-1: 0.5rem;
	--nn-space-1-5: 0.75rem;
	--nn-space-2: 1rem;
	--nn-space-3: 1.5rem;
	--nn-space-4: 2rem;
	--nn-space-5: 2.5rem;
	--nn-space-6: 3rem;
	--nn-space-8: 4rem;
	--nn-space-10: 5rem;
	--nn-space-12: 6rem;
	--nn-space-16: 8rem;

	/* -------------------------------------------------------------------------
	 * Layout
	 * ---------------------------------------------------------------------- */
	--nn-container-narrow: 45rem;
	--nn-container-recipe: 45rem;
	--nn-container-default: 70rem;
	--nn-container-wide: 80rem;
	--nn-content-measure: 70ch;
	--nn-gutter-mobile: 1rem;
	--nn-gutter-tablet: 1.25rem;
	--nn-gutter-desktop: 1.5rem;

	--nn-bp-sm: 640px;
	--nn-bp-md: 768px;
	--nn-bp-lg: 1024px;
	--nn-bp-xl: 1280px;
	--nn-bp-2xl: 1440px;

	/* -------------------------------------------------------------------------
	 * Radius & shadow (premium = soft depth, not heavy drop)
	 * ---------------------------------------------------------------------- */
	/* Sharp editorial corners — not soft app UI */
	--nn-radius-sm: 2px;
	--nn-radius-md: 2px;
	--nn-radius-lg: 2px;
	--nn-radius-xl: 4px;
	--nn-radius-full: 9999px;

	--nn-shadow-sm: 0 1px 2px rgba(44, 40, 37, 0.04);
	--nn-shadow-md: 0 8px 24px rgba(44, 40, 37, 0.06);
	--nn-shadow-lg: 0 16px 40px rgba(44, 40, 37, 0.08);
	--nn-shadow-btn: none;
	--nn-shadow-btn-hover: none;

	/* -------------------------------------------------------------------------
	 * Motion
	 * ---------------------------------------------------------------------- */
	--nn-duration-fast: 150ms;
	--nn-duration-normal: 220ms;
	--nn-duration-slow: 320ms;
	--nn-easing-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
	--nn-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);

	/* -------------------------------------------------------------------------
	 * Z-index
	 * ---------------------------------------------------------------------- */
	--nn-z-base: 1;
	--nn-z-header: 100;
	--nn-z-dropdown: 200;
	--nn-z-sticky: 300;
	--nn-z-overlay: 400;
	--nn-z-modal: 500;
	--nn-z-toast: 600;
	/* Above Grow / third-party bottom widgets (often 1e6–5e6) so Accept is tappable on mobile */
	--nn-z-cookie: 10000001;

	/* -------------------------------------------------------------------------
	 * Focus ring
	 * ---------------------------------------------------------------------- */
	--nn-focus-ring: 0 0 0 2px var(--nn-color-bg-surface), 0 0 0 4px var(--nn-color-primary-500);

	/* Form controls */
	--nn-control-height: 2.875rem;
	--nn-control-radius: var(--nn-radius-md);
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--nn-duration-fast: 0.01ms;
		--nn-duration-normal: 0.01ms;
		--nn-duration-slow: 0.01ms;
	}
}

/*
 * Kadence ships a cool blue default palette (#2B6CB0).
 * Remap on html + body so highlight / button tokens never paint menu
 * dropdowns or expand toggles as blue bars over brand terracotta.
 */
html,
:root,
body,
body.nn-theme {
	--global-palette1: #4f6f5c;
	--global-palette2: #3f5949;
	--global-palette3: #2a2926;
	--global-palette4: #6b6760;
	--global-palette5: #8a8279;
	--global-palette6: #d5cec4;
	--global-palette7: #f1eee8;
	--global-palette8: #f6f4f0;
	--global-palette9: #ffffff;
	--global-palette-highlight: #4f6f5c;
	--global-palette-highlight-alt: #3f5949;
	--global-palette-highlight-alt2: #ffffff;
	--global-palette-btn-bg: #4f6f5c;
	--global-palette-btn-bg-hover: #3f5949;
	--global-palette-btn: #ffffff;
	--global-palette-btn-hover: #ffffff;
	--global-palette-btn-sec-bg: #f1eee8;
	--global-palette-btn-sec-bg-hover: #3f5949;
	--global-palette-btn-sec: #2a2926;
	--global-palette-btn-sec-hover: #ffffff;
}

/* ===== base/_fonts.css ===== */
/**
 * Font loading.
 *
 * Default: system fallback stacks (already in --nn-font-*).
 * When self-hosted WOFF2 files are added under assets/fonts/, uncomment
 * @font-face rules below. Do not load Google Fonts from the CDN in production
 * without an explicit performance review.
 *
 * Recommended files (variable or static subsets):
 * - source-serif-4-latin-*.woff2
 * - source-sans-3-latin-*.woff2
 *
 * Use font-display: swap; preload only the primary body 400 file.
 */

/* Example (enable when files are present):

@font-face {
	font-family: "Source Sans 3";
	src: url("../../fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Source Sans 3";
	src: url("../../fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Source Sans 3";
	src: url("../../fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Source Serif 4";
	src: url("../../fonts/source-serif-4-latin-600-normal.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Source Serif 4";
	src: url("../../fonts/source-serif-4-latin-700-normal.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

*/

/* ===== base/_base.css ===== */
/**
 * Base element styles.
 * Intentionally light — Kadence owns most structural chrome.
 * We only enforce design-system readability on document content.
 */

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body.nn-theme {
	background-color: var(--nn-color-bg-canvas);
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-sans);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-regular);
	line-height: var(--nn-lh-relaxed);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

@media (min-width: 1024px) {
	body.nn-theme {
		font-size: var(--nn-fs-lg);
	}
}

/* Images */
body.nn-theme img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

body.nn-theme img:not([width]):not([height]) {
	/* Prefer explicit dimensions in content to protect CLS */
}

/* Media */
body.nn-theme figure {
	margin: 0 0 var(--nn-space-3);
}

body.nn-theme figcaption {
	margin-top: var(--nn-space-1);
	font-size: var(--nn-fs-sm);
	line-height: 1.4;
	color: var(--nn-color-text-secondary);
}

/* Lists */
body.nn-theme .entry-content ul,
body.nn-theme .entry-content ol,
body.nn-theme .nn-prose ul,
body.nn-theme .nn-prose ol {
	padding-left: 1.25em;
	margin: 0 0 var(--nn-space-3);
}

body.nn-theme .entry-content li,
body.nn-theme .nn-prose li {
	margin-bottom: var(--nn-space-1);
}

/* Tables */
body.nn-theme table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 var(--nn-space-3);
	font-size: var(--nn-fs-sm);
}

body.nn-theme th,
body.nn-theme td {
	padding: var(--nn-space-1) var(--nn-space-1-5);
	border: 1px solid var(--nn-color-border-default);
	text-align: left;
	vertical-align: top;
}

body.nn-theme th {
	background: var(--nn-color-bg-sunken);
	font-weight: var(--nn-font-weight-semibold);
}

/* Blockquote */
body.nn-theme blockquote {
	margin: 0 0 var(--nn-space-3);
	padding: var(--nn-space-1) 0 var(--nn-space-1) var(--nn-space-3);
	border-left: 3px solid var(--nn-color-primary-500);
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-xl);
	line-height: var(--nn-lh-normal);
	color: var(--nn-color-text-primary);
}

body.nn-theme blockquote cite {
	display: block;
	margin-top: var(--nn-space-1);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-style: normal;
	color: var(--nn-color-text-secondary);
}

/* Code */
body.nn-theme code,
body.nn-theme kbd,
body.nn-theme samp {
	font-family: var(--nn-font-mono);
	font-size: 0.9em;
}

body.nn-theme :not(pre) > code {
	padding: 0.1em 0.35em;
	background: var(--nn-color-bg-sunken);
	border-radius: var(--nn-radius-sm);
}

body.nn-theme pre {
	margin: 0 0 var(--nn-space-3);
	padding: var(--nn-space-2);
	overflow-x: auto;
	background: var(--nn-color-bg-sunken);
	border-radius: var(--nn-radius-sm);
	font-family: var(--nn-font-mono);
	font-size: var(--nn-fs-sm);
	line-height: var(--nn-lh-normal);
}

body.nn-theme pre code {
	padding: 0;
	background: transparent;
}

/* HR */
body.nn-theme hr {
	border: 0;
	border-top: 1px solid var(--nn-color-border-default);
	margin: var(--nn-space-6) 0;
}

/* Selection */
body.nn-theme ::selection {
	background: var(--nn-color-primary-100);
	color: var(--nn-color-text-primary);
}

/* ===== base/_typography.css ===== */
/**
 * Typography scale for content headings and brand type roles.
 * Scopes under body.nn-theme to limit cascade conflicts with Kadence chrome.
 */

body.nn-theme .entry-content h1,
body.nn-theme .entry-content h2,
body.nn-theme .entry-content h3,
body.nn-theme .entry-content h4,
body.nn-theme .entry-content h5,
body.nn-theme .entry-content h6,
body.nn-theme .nn-prose h1,
body.nn-theme .nn-prose h2,
body.nn-theme .nn-prose h3,
body.nn-theme .nn-prose h4,
body.nn-theme .nn-display,
body.nn-theme .nn-h1,
body.nn-theme .nn-h2,
body.nn-theme .nn-h3 {
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-serif);
	font-weight: var(--nn-font-weight-bold);
	line-height: var(--nn-lh-tight);
	text-wrap: balance;
}

body.nn-theme .entry-content h1,
body.nn-theme .nn-h1 {
	font-size: clamp(1.875rem, 1.6rem + 1vw, 2.5rem);
	letter-spacing: -0.015em;
	line-height: 1.18;
	margin: 0 0 var(--nn-space-3);
}

body.nn-theme .entry-content h2,
body.nn-theme .nn-h2 {
	font-size: clamp(1.5rem, 1.35rem + 0.6vw, 1.75rem);
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: var(--nn-space-6) 0 var(--nn-space-2);
}

body.nn-theme .entry-content h3,
body.nn-theme .nn-h3 {
	font-size: clamp(1.25rem, 1.15rem + 0.4vw, 1.375rem);
	font-weight: var(--nn-font-weight-semibold);
	line-height: var(--nn-lh-snug);
	margin: var(--nn-space-4) 0 var(--nn-space-1-5);
}

body.nn-theme .entry-content h4,
body.nn-theme .nn-h4 {
	font-family: var(--nn-font-sans);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.01em;
	line-height: 1.35;
	margin: var(--nn-space-3) 0 var(--nn-space-1);
}

@media (min-width: 1024px) {
	body.nn-theme .entry-content h4,
	body.nn-theme .nn-h4 {
		font-size: var(--nn-fs-lg);
	}
}

body.nn-theme .nn-display {
	font-size: var(--nn-fs-display);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: -0.02em;
	line-height: var(--nn-lh-tight);
	margin: 0 0 var(--nn-space-3);
}

body.nn-theme .entry-content p,
body.nn-theme .nn-prose p {
	margin: 0 0 var(--nn-space-3);
	max-width: var(--nn-content-measure);
}

body.nn-theme .nn-text-sm {
	font-size: var(--nn-fs-sm);
	line-height: 1.45;
}

body.nn-theme .nn-text-meta {
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-regular);
	letter-spacing: 0.01em;
	color: var(--nn-color-text-secondary);
}

body.nn-theme .nn-text-muted {
	color: var(--nn-color-text-muted);
}

body.nn-theme .nn-lede {
	font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
	line-height: 1.6;
	color: var(--nn-color-text-secondary);
	max-width: var(--nn-content-measure);
}

/* ===== base/_links.css ===== */
/**
 * Link styles for content areas.
 *
 * Exclude buttons / CTAs — solid dark buttons must keep light text
 * (e.g. "Jump to recipe"), not the terracotta content-link color.
 */

body.nn-theme .entry-content a:not(.nn-btn):not(.wp-block-button__link):not(.nn-recipe-sticky__btn):not(.nn-recipe-rating__link):not(.wprm-recipe-jump):not(.wprm-recipe-print):not(.wprm-recipe-pin):not(.kb-button):not(.button),
body.nn-theme .nn-prose a:not(.nn-btn):not(.wp-block-button__link):not(.nn-recipe-rating__link):not(.button) {
	color: var(--nn-color-text-link);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color var(--nn-duration-fast) var(--nn-easing-standard);
}

body.nn-theme .entry-content a:not(.nn-btn):not(.wp-block-button__link):not(.nn-recipe-sticky__btn):not(.nn-recipe-rating__link):not(.wprm-recipe-jump):not(.wprm-recipe-print):not(.wprm-recipe-pin):not(.kb-button):not(.button):hover,
body.nn-theme .nn-prose a:not(.nn-btn):not(.wp-block-button__link):not(.nn-recipe-rating__link):not(.button):hover {
	color: var(--nn-color-text-link-hover);
}

body.nn-theme .entry-content a:not(.nn-btn):not(.wp-block-button__link):focus-visible,
body.nn-theme .nn-prose a:not(.nn-btn):not(.wp-block-button__link):focus-visible {
	border-radius: 2px;
}

/* Quiet links (cards, nav-like UI) */
body.nn-theme a.nn-link-quiet {
	color: inherit;
	text-decoration: none;
}

body.nn-theme a.nn-link-quiet:hover {
	color: var(--nn-color-text-link);
}

/* ===== base/_a11y.css ===== */
/**
 * Accessibility helpers: focus, skip links, screen-reader text, reduced motion.
 */

/* WordPress screen-reader text (ensure present even if parent omits) */
body.nn-theme .screen-reader-text,
body.nn-theme .nn-sr-only {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

body.nn-theme .screen-reader-text:focus,
body.nn-theme .nn-sr-only:focus,
body.nn-theme .nn-skip-link:focus {
	background-color: var(--nn-color-bg-surface);
	border-radius: var(--nn-radius-sm);
	box-shadow: var(--nn-shadow-md);
	clip: auto !important;
	clip-path: none;
	color: var(--nn-color-text-primary);
	display: block;
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-md);
	font-weight: var(--nn-font-weight-semibold);
	height: auto;
	left: var(--nn-space-2);
	line-height: normal;
	padding: var(--nn-space-1-5) var(--nn-space-2);
	text-decoration: none;
	top: var(--nn-space-2);
	width: auto;
	z-index: var(--nn-z-toast);
}

/* Global focus-visible — never remove without replacement */
body.nn-theme :focus {
	outline: none;
}

body.nn-theme :focus-visible {
	outline: 2px solid var(--nn-color-primary-500);
	outline-offset: 2px;
}

body.nn-theme a:focus-visible,
body.nn-theme button:focus-visible,
body.nn-theme .nn-btn:focus-visible,
body.nn-theme input:focus-visible,
body.nn-theme select:focus-visible,
body.nn-theme textarea:focus-visible,
body.nn-theme summary:focus-visible {
	outline: 2px solid var(--nn-color-primary-500);
	outline-offset: 2px;
	box-shadow: var(--nn-focus-ring);
}

/* Reduced motion: neutralize decorative transforms */
@media (prefers-reduced-motion: reduce) {
	body.nn-theme *,
	body.nn-theme *::before,
	body.nn-theme *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	body.nn-theme .nn-card:hover .nn-card__media img {
		transform: none;
	}
}

/* Layout */
/* ===== layout/_containers.css ===== */
/**
 * Container utilities aligned to design-system max widths.
 * Prefer these inside patterns and template parts; let Kadence own site shell.
 */

.nn-container {
	width: 100%;
	margin-inline: auto;
	padding-inline: var(--nn-gutter-mobile);
	max-width: var(--nn-container-default);
}

.nn-container--narrow {
	max-width: var(--nn-container-narrow);
}

.nn-container--recipe {
	max-width: var(--nn-container-recipe);
}

.nn-container--wide {
	max-width: var(--nn-container-wide);
}

.nn-container--full {
	max-width: none;
}

@media (min-width: 768px) {
	.nn-container {
		padding-inline: var(--nn-gutter-tablet);
	}
}

@media (min-width: 1024px) {
	.nn-container {
		padding-inline: var(--nn-gutter-desktop);
	}
}

/* Section vertical rhythm */
.nn-section {
	padding-block: var(--nn-space-6);
}

@media (min-width: 768px) {
	.nn-section {
		padding-block: var(--nn-space-8);
	}
}

@media (min-width: 1024px) {
	.nn-section {
		padding-block: var(--nn-space-10);
	}
}

.nn-section--tight {
	padding-block: var(--nn-space-4);
}

.nn-section--canvas {
	background: var(--nn-color-bg-canvas);
}

.nn-section--surface {
	background: var(--nn-color-bg-surface);
}

.nn-section--sunken {
	background: var(--nn-color-bg-sunken);
}

.nn-section--primary-soft {
	background: var(--nn-color-primary-50);
}

.nn-section--secondary-soft {
	background: var(--nn-color-secondary-100);
}

/* ===== layout/_grid.css ===== */
/**
 * Lightweight grid helpers for patterns and future archives.
 * Do not rebuild Kadence row/column systems — use for brand components only.
 */

.nn-grid {
	display: grid;
	gap: var(--nn-space-2);
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nn-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--nn-space-3);
	}
}

@media (min-width: 1024px) {
	.nn-grid--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--nn-space-3);
	}

	.nn-grid--4 {
		/* Prefer 3-up for recipe photography; 4-up available for dense utility */
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: var(--nn-space-3);
	}
}

.nn-stack {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-2);
}

.nn-stack--md {
	gap: var(--nn-space-3);
}

.nn-stack--lg {
	gap: var(--nn-space-4);
}

.nn-cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nn-space-1) var(--nn-space-2);
}

.nn-cluster--center {
	justify-content: center;
}

.nn-cluster--between {
	justify-content: space-between;
}

/* ===== layout/_shell.css ===== */
/**
 * Global content shell + layout modes + ad-ready regions.
 */

.nn-shell__inner {
	display: block;
}

.nn-shell--with-sidebar .nn-shell__inner {
	display: grid;
	gap: var(--nn-space-4);
}

@media (min-width: 1024px) {
	.nn-shell--with-sidebar .nn-shell__inner {
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: var(--nn-space-6);
		align-items: start;
	}
}

.nn-shell__sidebar {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-3);
}

/* Body layout modes */
body.nn-layout-narrow .nn-content-width,
body.nn-layout-narrow .content-area .entry-content {
	max-width: var(--nn-container-recipe);
}

body.nn-layout-wide .nn-content-width {
	max-width: var(--nn-container-wide);
}

/* Ad slots — reserve height for CLS protection */
.nn-ad-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: var(--nn-space-4) 0;
	border: 1px dashed var(--nn-color-border-strong);
	border-radius: var(--nn-radius-sm);
	background: var(--nn-color-neutral-50);
	color: var(--nn-color-text-muted);
	font-size: var(--nn-fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nn-ad-slot--in-content {
	min-height: 280px;
}

.nn-ad-slot--sidebar {
	min-height: 250px;
}

.nn-ad-slot--sticky {
	min-height: 100px;
	position: sticky;
	top: 5.5rem;
}

.nn-ad-slot--footer {
	min-height: 90px;
}

.nn-ad-slot--live-ready {
	border: 0;
	background: transparent;
	min-height: 0;
	margin: 0;
}

.nn-ad-slot__label {
	opacity: 0.8;
}

/* Utility pages */
.nn-page-header {
	padding-top: var(--nn-space-4);
	padding-bottom: var(--nn-space-2);
}

.nn-utility-page {
	padding-bottom: var(--nn-space-8);
}

/* -------------------------------------------------------------------------
 * Premium page hero (About, etc.)
 * ---------------------------------------------------------------------- */

.nn-page-hero {
	position: relative;
	padding: clamp(2.35rem, 5.5vw, 4rem) 0 clamp(1.85rem, 3.5vw, 2.75rem);
	overflow: hidden;
	border-bottom: 1px solid #e4e0d8;
}

.nn-page-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 75% 65% at 12% 15%, rgba(168, 90, 56, 0.12), transparent 55%),
		radial-gradient(ellipse 55% 50% at 92% 85%, rgba(106, 107, 82, 0.1), transparent 50%),
		linear-gradient(165deg, #fffdf9 0%, #f6f4f0 48%, #efece6 100%);
	pointer-events: none;
}

.nn-page-hero__inner {
	position: relative;
	z-index: 1;
}

.nn-page-hero__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	max-width: 42rem;
	margin: 0 auto;
	text-align: center !important;
	padding: clamp(1.65rem, 3.8vw, 2.6rem) clamp(1.25rem, 3vw, 2.15rem);
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(232, 226, 217, 0.95);
	border-radius: 16px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.85) inset,
		0 16px 36px rgba(44, 40, 37, 0.06);
	backdrop-filter: blur(6px);
}

.nn-page-hero__kicker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 0 auto 0.9rem;
	padding: 0.35rem 0.9rem;
	border-radius: 999px;
	background: #e8ede9;
	color: #3f5949;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center !important;
}

.nn-page-hero__kicker-dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: #4f6f5c;
	box-shadow: 0 0 0 3px rgba(168, 90, 56, 0.2);
}

.nn-page-hero__title {
	margin: 0 auto 0.9rem;
	max-width: 18ch;
	width: 100%;
	font-family: var(--nn-font-serif, Georgia, 'Times New Roman', serif);
	font-size: clamp(2.15rem, 5vw, 3.1rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.025em;
	color: #2a2926;
	text-wrap: balance;
	text-align: center !important;
}

.nn-page-hero__deck {
	max-width: 34rem;
	width: 100%;
	margin: 0 auto 1.25rem;
	color: #6b6760;
	font-size: 1.0625rem;
	line-height: 1.7;
	text-align: center !important;
}

.nn-page-hero__deck p {
	margin: 0;
	text-align: center !important;
}

.nn-page-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	justify-content: center;
	align-items: center;
	width: 100%;
}

.nn-page-hero__actions .nn-btn {
	min-height: 2.6rem;
}

/* About page body — center the full story, not only the hero */
.nn-page--about,
.nn-page--about .nn-utility-page--about {
	text-align: center !important;
}

.nn-page--about .nn-about-body,
.nn-page--about .entry-content.nn-about-body {
	padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
	padding-bottom: clamp(2rem, 4vw, 3.5rem);
	text-align: center !important;
	max-width: 40rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.nn-page--about .nn-about-body > *,
.nn-page--about .nn-about-body h1,
.nn-page--about .nn-about-body h2,
.nn-page--about .nn-about-body h3,
.nn-page--about .nn-about-body h4,
.nn-page--about .nn-about-body p,
.nn-page--about .nn-about-body .wp-block-heading,
.nn-page--about .nn-about-body .wp-block-paragraph,
.nn-page--about .nn-about-body li {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.nn-page--about .nn-about-body > h2:first-child,
.nn-page--about .nn-about-body > .wp-block-heading:first-child {
	margin-top: 0;
}

/* Soft rule under first body section for a calmer read */
.nn-page--about .nn-about-body > h2,
.nn-page--about .nn-about-body > .wp-block-heading {
	font-family: var(--nn-font-serif, Georgia, serif);
	font-weight: 600;
	letter-spacing: -0.015em;
	max-width: 28rem;
}

.nn-page--about .nn-about-body p,
.nn-page--about .nn-about-body .wp-block-paragraph {
	max-width: 36rem;
}

.nn-page--about .nn-about-body ul,
.nn-page--about .nn-about-body ol {
	list-style-position: inside;
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: 32rem;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

.nn-page--about .nn-about-body .wp-block-buttons,
.nn-page--about .nn-about-body .wp-block-button {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

.nn-404__inner {
	padding-block: var(--nn-space-8);
	text-align: center;
}

.nn-404__search {
	max-width: 28rem;
	margin: var(--nn-space-3) auto;
	text-align: left;
}

.nn-404__cats,
.nn-404__searches {
	text-align: left;
	margin-top: var(--nn-space-4);
}

/* Hide decorative placeholders on print */
@media print {
	.nn-ad-slot,
	.nn-announcement,
	.nn-back-to-top,
	.nn-cookie-notice,
	.nn-search-overlay,
	.nn-mobile-nav {
		display: none !important;
	}
}

/* ===== layout/_homepage.css ===== */
/**
 * Homepage layout modules.
 * Calm magazine hub — no carousels, minimal motion, mobile-first.
 *
 * Body class: .home (WP) + .nn-is-front (theme)
 */

/* -------------------------------------------------------------------------
 * Section rhythm
 * ---------------------------------------------------------------------- */

.nn-home-section {
	padding-block: var(--nn-space-6);
}

@media (min-width: 768px) {
	.nn-home-section {
		padding-block: var(--nn-space-8);
	}
}

@media (min-width: 1024px) {
	.nn-home-section {
		padding-block: var(--nn-space-10);
	}
}

.nn-home-section--tight {
	padding-block: var(--nn-space-4);
}

.nn-home-section--canvas {
	background: var(--nn-color-bg-canvas);
}

.nn-home-section--surface {
	background: var(--nn-color-bg-surface);
}

.nn-home-section--sunken {
	background: var(--nn-color-bg-sunken);
}

.nn-home-section--soft {
	background: var(--nn-color-primary-50);
}

.nn-home-section--sage {
	background: var(--nn-color-secondary-100);
}

/* -------------------------------------------------------------------------
 * Section header (title + view all)
 * ---------------------------------------------------------------------- */

.nn-home-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--nn-space-2);
	margin-bottom: var(--nn-space-3);
}

.nn-home-head__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: clamp(1.5rem, 1.35rem + 0.6vw, 1.75rem);
	font-weight: var(--nn-font-weight-bold);
	line-height: 1.25;
	color: var(--nn-color-text-primary);
	letter-spacing: -0.01em;
}

.nn-home-head__deck {
	margin: 0.35rem 0 0;
	max-width: 36rem;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--nn-color-text-secondary);
}

.nn-home-head__link {
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-link);
	text-decoration: none;
	white-space: nowrap;
	min-height: 2.75rem;
	display: inline-flex;
	align-items: center;
}

.nn-home-head__link:hover {
	color: var(--nn-color-text-link-hover);
	text-decoration: underline;
}

/* -------------------------------------------------------------------------
 * Hero — useful first screen, not a giant empty image
 * ---------------------------------------------------------------------- */

.nn-home-hero {
	padding-block: var(--nn-space-6);
	background: var(--nn-color-bg-canvas);
}

@media (min-width: 1024px) {
	.nn-home-hero {
		padding-block: var(--nn-space-8);
	}
}

.nn-home-hero__grid {
	display: grid;
	gap: var(--nn-space-4);
	align-items: center;
}

@media (min-width: 900px) {
	.nn-home-hero__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: var(--nn-space-6);
	}
}

.nn-home-hero__eyebrow {
	margin: 0 0 var(--nn-space-1);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-secondary-600);
}

.nn-home-hero__title {
	margin: 0 0 var(--nn-space-2);
	font-family: var(--nn-font-serif);
	font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
	font-weight: var(--nn-font-weight-bold);
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--nn-color-text-primary);
	text-wrap: balance;
}

.nn-home-hero__lede {
	margin: 0 0 var(--nn-space-3);
	max-width: 36rem;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem);
	line-height: 1.6;
	color: var(--nn-color-text-secondary);
}

.nn-home-hero__search {
	margin: 0 0 var(--nn-space-3);
	max-width: 32rem;
}

.nn-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1-5);
	margin: 0 0 var(--nn-space-2);
}

.nn-home-hero__media {
	margin: 0;
	border-radius: var(--nn-radius-xl);
	overflow: hidden;
	background: var(--nn-color-neutral-100);
	aspect-ratio: 4 / 3;
	box-shadow: var(--nn-shadow-sm);
	border: 1px solid var(--nn-color-border-default);
}

.nn-home-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nn-home-hero__media-caption {
	margin: var(--nn-space-1) 0 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

.nn-home-hero__media-caption a {
	color: var(--nn-color-text-link);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-home-hero__media-caption a:hover {
	text-decoration: underline;
}

/* Quick search chips under hero search */
.nn-home-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	margin: var(--nn-space-2) 0 0;
	padding: 0;
	list-style: none;
}

.nn-home-chips a {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.3rem 0.75rem;
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	color: var(--nn-color-text-primary);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-home-chips a:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
}

/* -------------------------------------------------------------------------
 * Category exploration grid
 * ---------------------------------------------------------------------- */

.nn-home-cats {
	display: grid;
	gap: var(--nn-space-2);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
	.nn-home-cats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--nn-space-3);
	}
}

@media (min-width: 1024px) {
	.nn-home-cats {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.nn-home-cat {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition:
		box-shadow var(--nn-duration-normal) var(--nn-easing-standard),
		border-color var(--nn-duration-normal) var(--nn-easing-standard);
}

.nn-home-cat:hover,
.nn-home-cat:focus-within {
	box-shadow: var(--nn-shadow-md);
	border-color: var(--nn-color-border-strong);
}

.nn-home-cat__media {
	aspect-ratio: 1 / 1;
	background: var(--nn-color-neutral-100);
	overflow: hidden;
}

.nn-home-cat__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nn-home-cat__body {
	padding: var(--nn-space-2);
	text-align: center;
}

.nn-home-cat__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.3;
	color: var(--nn-color-text-primary);
}

/* -------------------------------------------------------------------------
 * Collection strip (text-forward, fast)
 * ---------------------------------------------------------------------- */

.nn-home-collections {
	display: grid;
	gap: var(--nn-space-2);
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.nn-home-collections {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--nn-space-3);
	}
}

@media (min-width: 1024px) {
	.nn-home-collections {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.nn-home-collection {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	text-decoration: none;
	color: inherit;
	min-height: 100%;
	transition: border-color var(--nn-duration-fast) var(--nn-easing-standard),
		box-shadow var(--nn-duration-normal) var(--nn-easing-standard);
}

.nn-home-collection:hover,
.nn-home-collection:focus-visible {
	border-color: var(--nn-color-primary-500);
	box-shadow: var(--nn-shadow-sm);
}

.nn-home-collection__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: 1.125rem;
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-primary);
}

.nn-home-collection__text {
	margin: 0;
	font-size: var(--nn-fs-sm);
	line-height: 1.45;
	color: var(--nn-color-text-secondary);
}

/* -------------------------------------------------------------------------
 * Seasonal spotlight
 * ---------------------------------------------------------------------- */

.nn-home-seasonal {
	display: grid;
	gap: var(--nn-space-4);
	align-items: center;
}

@media (min-width: 900px) {
	.nn-home-seasonal {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	}
}

.nn-home-seasonal__panel {
	padding: var(--nn-space-3);
}

@media (min-width: 768px) {
	.nn-home-seasonal__panel {
		padding: var(--nn-space-4);
	}
}

.nn-home-seasonal__list {
	margin: var(--nn-space-2) 0 0;
	padding: 0;
	list-style: none;
}

.nn-home-seasonal__list li {
	border-bottom: 1px solid var(--nn-color-border-default);
}

.nn-home-seasonal__list a {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.5rem 0;
	color: var(--nn-color-text-primary);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-home-seasonal__list a:hover {
	color: var(--nn-color-text-link);
}

/* -------------------------------------------------------------------------
 * Single Blog entry — one cohesive feature link (listicles under Blog)
 * ---------------------------------------------------------------------- */

.nn-home-blog-section > .nn-home-blog,
.nn-home-section .nn-home-blog {
	max-width: 1100px;
	margin-inline: auto;
}

a.nn-home-blog,
.nn-home-blog {
	display: grid;
	grid-template-columns: 1fr;
	align-items: stretch;
	gap: 0;
	text-align: left;
	text-decoration: none !important;
	color: inherit;
	background: #fff;
	border: 1px solid rgba(44, 40, 37, 0.1);
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(44, 40, 37, 0.05);
	transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

@media (min-width: 768px) {
	a.nn-home-blog,
	.nn-home-blog {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
		min-height: 15.5rem;
	}
}

a.nn-home-blog:hover,
a.nn-home-blog:focus-visible {
	border-color: rgba(44, 40, 37, 0.18);
	box-shadow: 0 14px 36px rgba(44, 40, 37, 0.09);
	transform: translateY(-1px);
	outline: none;
}

.nn-home-blog__media {
	margin: 0;
	min-height: 11.5rem;
	background: #efece6;
	overflow: hidden;
}

@media (min-width: 768px) {
	.nn-home-blog__media {
		min-height: 100%;
	}
}

.nn-home-blog__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 11.5rem;
	object-fit: cover;
	object-position: center;
	transition: transform 0.35s ease;
}

@media (min-width: 768px) {
	.nn-home-blog__media img {
		min-height: 100%;
		position: absolute;
		inset: 0;
	}

	.nn-home-blog__media {
		position: relative;
	}
}

a.nn-home-blog:hover .nn-home-blog__media img {
	transform: scale(1.03);
}

.nn-home-blog__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	padding: clamp(1.35rem, 3vw, 2.15rem) clamp(1.25rem, 3vw, 2.1rem);
	text-align: left;
	background: #fff;
}

.nn-home-blog__kicker {
	margin: 0 0 0.4rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6b645c;
	line-height: 1.3;
}

.nn-home-blog__title {
	margin: 0 0 0.55rem;
	font-family: var(--nn-font-serif);
	font-size: clamp(1.4rem, 2.4vw, 1.85rem);
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.2;
	color: var(--nn-color-text-primary, #2a2926);
	text-wrap: balance;
}

.nn-home-blog__text {
	margin: 0 0 1.1rem;
	max-width: 28rem;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: #6b6760;
}

.nn-home-blog__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.1rem;
	font-family: var(--nn-font-sans, system-ui, sans-serif);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #4f6f5c;
	line-height: 1.2;
}

.nn-home-blog__cta-arrow {
	display: inline-block;
	transition: transform 0.2s ease;
}

a.nn-home-blog:hover .nn-home-blog__cta-arrow {
	transform: translateX(3px);
}

/* Legacy nested-card markup (if still in content) */
.nn-home-blog--card .nn-home-blog__grid {
	display: contents;
}

.nn-home-blog__actions {
	margin: 0;
}

/* -------------------------------------------------------------------------
 * About — centered photo + story (full-width band)
 * ---------------------------------------------------------------------- */

.nn-home-about,
.nn-home-about--centered,
.nn-home-about--split {
	max-width: 720px;
	margin-inline: auto;
	text-align: center !important;
}

.nn-home-about__inner,
.nn-home-about__copy,
.nn-home-about__grid {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	width: 100% !important;
	max-width: 40rem !important;
	margin-inline: auto !important;
	gap: 0 !important;
}

.nn-home-about__media,
.nn-home-about__media.aligncenter {
	margin: 0 auto 1.35rem !important;
	width: 100% !important;
	max-width: 36rem !important;
	border-radius: var(--nn-radius-lg);
	overflow: hidden;
}

.nn-home-about__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: center;
	margin-inline: auto;
}

.nn-home-about__kicker,
.nn-home-about p.nn-home-about__kicker {
	margin: 0 0 0.5rem !important;
	width: 100% !important;
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nn-color-secondary-600);
	text-align: center !important;
}

.nn-home-about__title,
.nn-home-about h2.nn-home-about__title,
.nn-home-about .nn-home-head__title {
	margin: 0 auto 0.85rem !important;
	max-width: 22rem !important;
	width: 100% !important;
	text-align: center !important;
}

.nn-home-about__text,
.nn-home-about p.nn-home-about__text {
	margin: 0 auto 1.35rem !important;
	max-width: 32rem !important;
	width: 100% !important;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--nn-color-text-secondary);
	text-align: center !important;
}

.nn-home-about__actions,
.nn-home-about .wp-block-buttons {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	margin-inline: auto !important;
}

/* -------------------------------------------------------------------------
 * Newsletter — light visual band
 * ---------------------------------------------------------------------- */

.nn-home-newsletter__card {
	text-align: center;
	max-width: 36rem;
	margin-inline: auto;
	padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.25rem, 3vw, 2rem);
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid rgba(44, 40, 37, 0.1);
	border-radius: var(--nn-radius-lg);
}

.nn-home-newsletter__icon {
	display: flex;
	justify-content: center;
	margin: 0 0 0.85rem;
	color: #7a756c;
}

.nn-home-newsletter__icon svg {
	display: block;
}

.nn-home-newsletter__kicker {
	margin: 0 0 0.45rem !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6b645c !important;
}

.nn-home-newsletter__title {
	margin: 0 0 0.65rem !important;
}

.nn-home-newsletter__text {
	margin: 0 auto 1.35rem !important;
	max-width: 28rem;
}

/* Legacy multi-guide row (hidden on front; kept for non-home archives if any) */
.nn-home-guides {
	display: grid;
	gap: var(--nn-space-3);
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.nn-home-guides {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.nn-home-guide {
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	height: 100%;
}

.nn-home-guide__kicker {
	margin: 0 0 0.35rem;
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-secondary-600);
}

.nn-home-guide__title {
	margin: 0 0 0.5rem;
	font-family: var(--nn-font-serif);
	font-size: 1.25rem;
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.3;
}

.nn-home-guide__title a {
	color: var(--nn-color-text-primary);
	text-decoration: none;
}

.nn-home-guide__title a:hover {
	color: var(--nn-color-text-link);
}

.nn-home-guide__text {
	margin: 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
	line-height: 1.5;
}

/* -------------------------------------------------------------------------
 * Trust / about strip
 * ---------------------------------------------------------------------- */

.nn-home-trust {
	text-align: center;
	max-width: 40rem;
	margin-inline: auto;
}

.nn-home-trust__title {
	margin: 0 0 var(--nn-space-2);
	font-family: var(--nn-font-serif);
	font-size: clamp(1.5rem, 1.35rem + 0.5vw, 1.75rem);
}

.nn-home-trust__text {
	margin: 0 0 var(--nn-space-3);
	color: var(--nn-color-text-secondary);
	line-height: 1.65;
}

/* -------------------------------------------------------------------------
 * Homepage recipe query cards — align with nn-card when core query used
 * ---------------------------------------------------------------------- */

.home .wp-block-post-template,
.nn-is-front .wp-block-post-template,
.nn-home-query {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--nn-space-3);
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.home .wp-block-post-template.is-flex-container.columns-2,
	.home .wp-block-post-template.columns-2,
	.nn-home-query--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.home .wp-block-post-template.is-flex-container.columns-3,
	.home .wp-block-post-template.columns-3,
	.nn-home-query--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Soft card treatment for query loop items on homepage */
.nn-is-front .wp-block-post,
.home .wp-block-query .wp-block-post {
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	overflow: hidden;
	height: 100%;
	transition: box-shadow var(--nn-duration-normal) var(--nn-easing-standard);
}

.nn-is-front .wp-block-post:hover,
.home .wp-block-query .wp-block-post:hover {
	box-shadow: var(--nn-shadow-md);
}

.nn-is-front .wp-block-post-featured-image,
.home .wp-block-post-featured-image {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.nn-is-front .wp-block-post-featured-image img,
.home .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nn-is-front .wp-block-post-title,
.home .wp-block-query .wp-block-post-title {
	font-family: var(--nn-font-serif);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.3;
	margin: 0;
	padding: var(--nn-space-2) var(--nn-space-2) var(--nn-space-1);
}

.nn-is-front .wp-block-post-title a,
.home .wp-block-query .wp-block-post-title a {
	color: var(--nn-color-text-primary);
	text-decoration: none;
}

.nn-is-front .wp-block-post-title a:hover {
	color: var(--nn-color-text-link);
}

.nn-is-front .wp-block-post-excerpt,
.home .wp-block-query .wp-block-post-excerpt {
	padding: 0 var(--nn-space-2) var(--nn-space-2);
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

/* -------------------------------------------------------------------------
 * Mid-page ad band (reserved, non-disruptive)
 * ---------------------------------------------------------------------- */

.nn-home-ad {
	padding-block: var(--nn-space-3);
}

.nn-home-ad .nn-ad-slot {
	margin-block: 0;
	max-width: 45rem;
	margin-inline: auto;
}

/* -------------------------------------------------------------------------
 * CTA band
 * ---------------------------------------------------------------------- */

.nn-home-cta-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--nn-space-1-5);
}

/* Reduce hero padding when announcement present */
body.nn-has-announcement.nn-is-front .nn-home-hero {
	padding-top: var(--nn-space-4);
}

/* ===== layout/_archives.css ===== */
/**
 * Archive / discovery system layouts.
 * Magazine hubs: hero + filters + grid + related modules.
 */

/* -------------------------------------------------------------------------
 * Recipe "Browse by category" chips — desktop only (mobile: filters + menu)
 * ---------------------------------------------------------------------- */

/*
 * Default (mobile-first): hide recipe category chips always,
 * then re-enable only at ≥1024px. Uses body.blog (WP posts page = Recipes).
 */
.nn-archive-cat-browse--desktop-only,
.nn-archive--home .nn-archive-cat-browse,
.nn-archive--index .nn-archive-cat-browse,
body.blog .nn-archive-cat-browse,
body.blog .nn-cat-chips {
	display: none !important;
}

/* Desktop: show recipe category chips. */
@media (min-width: 1024px) {
	.nn-archive-cat-browse--desktop-only,
	.nn-archive--home .nn-archive-cat-browse,
	.nn-archive--index .nn-archive-cat-browse,
	body.blog .nn-archive-cat-browse,
	body.blog .nn-cat-chips {
		display: block !important;
	}

	body.blog .nn-cat-chips,
	.nn-archive--home .nn-cat-chips,
	.nn-archive--index .nn-cat-chips {
		display: flex !important;
	}
}

/* Blog hub topic chips stay available on all breakpoints (must win over body.blog if ever combined). */
.nn-blog-hub .nn-archive-cat-browse,
.nn-archive--blog .nn-archive-cat-browse,
.nn-blog-hub .nn-cat-chips,
.nn-archive--blog .nn-cat-chips {
	display: block !important;
}

.nn-blog-hub .nn-cat-chips,
.nn-archive--blog .nn-cat-chips {
	display: flex !important;
}

/* -------------------------------------------------------------------------
 * Shell
 * ---------------------------------------------------------------------- */

.nn-archive {
	padding-bottom: var(--nn-space-8);
}

.nn-archive__inner {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-6);
	padding-block: var(--nn-space-4) var(--nn-space-8);
}

/* -------------------------------------------------------------------------
 * Hero
 * ---------------------------------------------------------------------- */

.nn-archive-hero {
	padding: var(--nn-space-6) 0 var(--nn-space-4);
	background: var(--nn-color-bg-canvas);
	border-bottom: 1px solid var(--nn-color-border-default);
}

.nn-archive-hero__kicker {
	margin: 0 0 var(--nn-space-1);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-secondary-600);
}

.nn-archive-hero__title {
	margin: 0 0 var(--nn-space-1-5);
	font-family: var(--nn-font-serif);
	font-size: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem);
	font-weight: var(--nn-font-weight-bold);
	line-height: 1.18;
	letter-spacing: -0.02em;
	color: var(--nn-color-text-primary);
	text-wrap: balance;
}

.nn-archive-hero__count {
	margin: 0 0 var(--nn-space-2);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-secondary);
}

.nn-archive-hero__deck {
	max-width: 42rem;
	color: var(--nn-color-text-secondary);
	font-size: 1.0625rem;
	line-height: 1.65;
}

.nn-archive-hero__deck p:last-child {
	margin-bottom: 0;
}

/* Premium meal-category heroes (Dinner, Desserts, etc.) */
.nn-archive-hero--premium {
	position: relative;
	padding: clamp(2.35rem, 5.5vw, 4rem) 0 clamp(1.85rem, 3.5vw, 2.75rem);
	overflow: hidden;
	background: transparent;
	border-bottom: 1px solid #e4e0d8;
}

.nn-archive-hero--premium .nn-archive-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 75% 65% at 8% 10%, rgba(168, 90, 56, 0.13), transparent 55%),
		radial-gradient(ellipse 60% 55% at 95% 90%, rgba(106, 107, 82, 0.1), transparent 50%),
		linear-gradient(165deg, #fffdf9 0%, #f6f4f0 50%, #efece6 100%);
	pointer-events: none;
}

.nn-archive-hero--premium .nn-archive-hero__inner {
	position: relative;
	z-index: 1;
}

.nn-archive-hero--premium .nn-archive-hero__card {
	max-width: 44rem;
	padding: clamp(1.5rem, 3.5vw, 2.35rem) clamp(1.25rem, 3vw, 2rem);
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(232, 226, 217, 0.95);
	border-radius: 16px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.85) inset,
		0 16px 36px rgba(44, 40, 37, 0.06);
	backdrop-filter: blur(6px);
}

.nn-archive-hero--premium .nn-archive-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 0.85rem;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	background: #e8ede9;
	color: #3f5949;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.nn-archive-hero__kicker-dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: #4f6f5c;
	box-shadow: 0 0 0 3px rgba(168, 90, 56, 0.2);
}

.nn-archive-hero--premium .nn-archive-hero__title {
	margin: 0 0 0.85rem;
	font-size: clamp(2.1rem, 4.5vw, 3rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -0.025em;
}

.nn-archive-hero--premium .nn-archive-hero__deck {
	max-width: 36rem;
	margin: 0 0 1.15rem;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: #6b6760;
}

.nn-archive-hero--premium .nn-archive-hero__deck p {
	margin: 0 0 0.5rem;
}

.nn-archive-hero--premium .nn-archive-hero__deck .nn-archive-hint {
	display: none; /* keep hero clean — CTAs cover Blog / all recipes */
}

.nn-archive-hero__meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.15rem;
}

.nn-archive-hero--premium .nn-archive-hero__count {
	margin: 0;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	background: #efece6;
	color: #6b6760;
	font-size: 0.8125rem;
	font-weight: 700;
}

.nn-archive-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.nn-archive-hero__actions .nn-btn {
	min-height: 2.5rem;
}

@media (max-width: 639px) {
	.nn-archive-hero--premium .nn-archive-hero__card {
		text-align: center;
	}

	.nn-archive-hero--premium .nn-archive-hero__deck {
		margin-left: auto;
		margin-right: auto;
	}

	.nn-archive-hero--premium .nn-archive-hero__meta-row {
		justify-content: center;
		flex-direction: column;
	}

	.nn-archive-hero__actions {
		justify-content: center;
	}
}

/* Author hero */
.nn-archive-author {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-3);
	align-items: center;
}

.nn-archive-author__avatar img {
	display: block;
	border-radius: var(--nn-radius-full);
	width: 5rem;
	height: 5rem;
	object-fit: cover;
}

/* -------------------------------------------------------------------------
 * Section heads
 * ---------------------------------------------------------------------- */

.nn-archive-section-head {
	margin-bottom: var(--nn-space-2);
}

.nn-archive-section-head__title {
	margin: 0 0 0.35rem;
	font-family: var(--nn-font-serif);
	font-size: clamp(1.35rem, 1.2rem + 0.5vw, 1.65rem);
	font-weight: var(--nn-font-weight-bold);
	color: var(--nn-color-text-primary);
}

.nn-archive-section-head__deck {
	margin: 0;
	color: var(--nn-color-text-secondary);
	font-size: 1.0625rem;
}

/* -------------------------------------------------------------------------
 * Filters
 * ---------------------------------------------------------------------- */

.nn-archive-filters {
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
}

.nn-archive-filters__search {
	margin-bottom: var(--nn-space-2);
}

.nn-archive-filters__row {
	display: grid;
	gap: var(--nn-space-2);
	grid-template-columns: 1fr;
	align-items: end;
}

@media (min-width: 640px) {
	.nn-archive-filters__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.nn-archive-filters__row {
		grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
	}
}

.nn-archive-filters__field .nn-form__label {
	display: block;
	margin-bottom: 0.35rem;
}

.nn-archive-filters__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	align-items: center;
}

/* -------------------------------------------------------------------------
 * Grid
 * ---------------------------------------------------------------------- */

.nn-archive-grid {
	display: grid;
	gap: var(--nn-space-3);
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 640px) {
	.nn-archive-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.nn-archive-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.nn-archive-grid__item {
	min-width: 0;
}

/* -------------------------------------------------------------------------
 * Subnav / chips
 * ---------------------------------------------------------------------- */

.nn-archive-subnav__label {
	margin: 0 0 var(--nn-space-1-5);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--nn-color-text-secondary);
}

.nn-archive-subnav__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nn-archive-subnav__count {
	opacity: 0.75;
	font-weight: var(--nn-font-weight-regular);
	margin-left: 0.2rem;
}

.nn-archive-related-tax__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1) var(--nn-space-3);
	margin: var(--nn-space-2) 0 0;
	padding: 0;
	list-style: none;
}

.nn-archive-related-tax__list a {
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-link);
	text-decoration: none;
	min-height: 2.5rem;
	display: inline-flex;
	align-items: center;
}

.nn-archive-related-tax__list a:hover {
	text-decoration: underline;
}

/* -------------------------------------------------------------------------
 * Recipe index Aâ€“Z
 * ---------------------------------------------------------------------- */

.nn-index-az-nav {
	padding: var(--nn-space-2) 0;
	border-block: 1px solid var(--nn-color-border-default);
	position: sticky;
	top: 0;
	z-index: var(--nn-z-header);
	background: var(--nn-color-bg-canvas);
}

.nn-index-az-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
	justify-content: center;
}

.nn-index-az-nav a,
.nn-index-az-nav__empty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	min-height: 2.25rem;
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
	border-radius: var(--nn-radius-sm);
}

.nn-index-az-nav a {
	color: var(--nn-color-text-primary);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
}

.nn-index-az-nav a:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
}

.nn-index-az-nav__empty {
	color: var(--nn-color-text-muted);
}

.nn-index-az__group {
	scroll-margin-top: 5rem;
	padding: var(--nn-space-3) 0;
	border-bottom: 1px solid var(--nn-color-border-default);
}

.nn-index-az__letter {
	margin: 0 0 var(--nn-space-1-5);
	font-family: var(--nn-font-serif);
	font-size: 1.5rem;
	color: var(--nn-color-primary-600);
}

.nn-index-az__list {
	columns: 1;
	gap: var(--nn-space-4);
	margin: 0;
	padding: 0 0 0 1.1em;
}

@media (min-width: 640px) {
	.nn-index-az__list {
		columns: 2;
	}
}

@media (min-width: 1024px) {
	.nn-index-az__list {
		columns: 3;
	}
}

.nn-index-az__list li {
	break-inside: avoid;
	margin-bottom: 0.35rem;
}

.nn-index-az__list a {
	color: var(--nn-color-text-primary);
	text-decoration: none;
	font-weight: var(--nn-font-weight-semibold);
}

.nn-index-az__list a:hover {
	color: var(--nn-color-text-link);
	text-decoration: underline;
}

.nn-index-browse__sub {
	margin: var(--nn-space-3) 0 var(--nn-space-1);
	font-family: var(--nn-font-sans);
	font-size: 1rem;
	font-weight: var(--nn-font-weight-bold);
}

/* -------------------------------------------------------------------------
 * Search suggestions
 * ---------------------------------------------------------------------- */

.nn-search-suggestions .nn-chip-group {
	list-style: none;
	margin: var(--nn-space-2) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
}

/* -------------------------------------------------------------------------
 * Newsletter on archives
 * ---------------------------------------------------------------------- */

.nn-archive-newsletter {
	margin-top: var(--nn-space-2);
}

/* Seasonal landing content */
.nn-seasonal-landing__content {
	padding-block: var(--nn-space-4);
}

/* -------------------------------------------------------------------------
 * Blog hub — premium hero + feature (1.20.2)
 * ---------------------------------------------------------------------- */

.nn-blog-hub__hero {
	position: relative;
	padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(2rem, 4vw, 3rem);
	overflow: hidden;
	border-bottom: 1px solid #e4e0d8;
}

.nn-blog-hub__hero-bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 80% 70% at 15% 20%, rgba(168, 90, 56, 0.12), transparent 55%),
		radial-gradient(ellipse 70% 60% at 90% 80%, rgba(106, 107, 82, 0.1), transparent 50%),
		linear-gradient(165deg, #fffdf9 0%, #f6f4f0 48%, #efece6 100%);
	pointer-events: none;
}

.nn-blog-hub__hero-inner {
	position: relative;
	z-index: 1;
}

.nn-blog-hub__hero-card {
	max-width: 42rem;
	margin: 0 auto;
	text-align: center;
	padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 3vw, 2rem);
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(232, 226, 217, 0.95);
	border-radius: 16px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 18px 40px rgba(44, 40, 37, 0.06);
	backdrop-filter: blur(6px);
}

.nn-blog-hub__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 0.85rem;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	background: #e8ede9;
	color: #3f5949;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nn-blog-hub__eyebrow-dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: #4f6f5c;
	box-shadow: 0 0 0 3px rgba(168, 90, 56, 0.2);
}

.nn-blog-hub__title {
	margin: 0 auto 0.9rem;
	max-width: 16ch;
	font-family: var(--nn-font-serif, Georgia, 'Times New Roman', serif);
	font-size: clamp(2.15rem, 5vw, 3.15rem);
	line-height: 1.12;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #2a2926;
}

.nn-blog-hub__deck {
	max-width: 34rem;
	margin: 0 auto 1.35rem;
	color: #6b6760;
	font-size: 1.0625rem;
	line-height: 1.7;
}

.nn-blog-hub__deck p {
	margin: 0 0 0.5rem;
}

.nn-blog-hub__deck p:last-child {
	margin-bottom: 0;
}

.nn-blog-hub__hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	justify-content: center;
	margin-bottom: 1rem;
}

.nn-blog-hub__hero-actions .nn-btn {
	min-height: 2.75rem;
}

.nn-blog-hub__meta {
	margin: 0;
	font-size: 0.875rem;
	color: #8a8279;
	letter-spacing: 0.01em;
}

.nn-blog-hub__body {
	padding-top: clamp(1.75rem, 3.5vw, 2.5rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.nn-blog-hub__section-title {
	margin: 0 0 0.9rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: 1.4rem;
	font-weight: 600;
	color: #2a2926;
}

.nn-blog-hub__topics {
	margin-bottom: 1.85rem;
	padding: 1.15rem 1.25rem 1.25rem;
	background: #fff;
	border: 1px solid #e4e0d8;
	border-radius: 12px;
}

/* Blog list grid — compact multi-column cards (not full-bleed giants) */
.nn-blog-hub__grid,
.nn-card-grid--archive.nn-blog-hub__grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1rem;
	align-items: stretch;
}

@media (min-width: 640px) {
	.nn-blog-hub__grid,
	.nn-card-grid--archive.nn-blog-hub__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

@media (min-width: 1024px) {
	.nn-blog-hub__grid,
	.nn-card-grid--archive.nn-blog-hub__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

/* Shorter, scannable blog card photos */
.nn-blog-hub .nn-card--title-overlay .nn-card__media,
.nn-blog-hub .nn-card .nn-card__media {
	aspect-ratio: 16 / 10 !important;
	max-height: 11.5rem;
	position: relative;
	overflow: hidden;
	background: #efece6;
}

.nn-blog-hub .nn-card__media-placeholder,
.nn-card__media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 8rem;
	background:
		linear-gradient(135deg, #efece6 0%, #e2d8cc 55%, #d7cbbb 100%);
}

@media (min-width: 640px) {
	.nn-blog-hub .nn-card--title-overlay .nn-card__media,
	.nn-blog-hub .nn-card .nn-card__media {
		max-height: 10.5rem;
	}
}

.nn-blog-hub .nn-card--title-overlay .nn-card__media-title {
	font-size: clamp(0.95rem, 0.88rem + 0.35vw, 1.12rem);
	top: 0.65rem;
	left: 0.7rem;
	right: 0.7rem;
	-webkit-line-clamp: 2;
	max-height: 2.8em;
	color: #fff !important;
	z-index: 3;
}

.nn-blog-hub .nn-card--title-overlay .nn-card__media-scrim {
	height: 58%;
	z-index: 2;
}

.nn-blog-hub .nn-card--title-overlay .nn-card__media img {
	z-index: 0;
}

/* Blog hub mobile: body titles under grid cards */
@media (max-width: 767px) {
	.nn-blog-hub .nn-card--title-overlay .nn-card__body--mobile-title {
		display: flex !important;
	}
}

/* Featured list card — image + copy (no text inside image link). */
.nn-blog-feature {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	margin: 0 0 1.75rem;
	background: #fff;
	border: 1px solid #e4e0d8;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 12px 36px rgba(44, 40, 37, 0.06);
}

@media (min-width: 768px) {
	.nn-blog-feature {
		grid-template-columns: 1.05fr 1fr;
		align-items: stretch;
		max-height: none;
	}
}

.nn-blog-feature__media {
	position: relative;
	display: block;
	background: linear-gradient(145deg, #e8ede9, #efece6);
	min-height: 12rem;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}

.nn-blog-feature__media-hit {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	text-decoration: none !important;
	background: transparent;
}

.nn-blog-feature__media img,
.nn-blog-feature__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nn-blog-feature__placeholder {
	min-height: 12rem;
	background:
		radial-gradient(circle at 30% 30%, rgba(168, 90, 56, 0.15), transparent 50%),
		linear-gradient(135deg, #e8ede9, #efece6);
}

.nn-blog-feature__copy {
	padding: 1.25rem 1.25rem 1.4rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.75rem;
	min-width: 0;
}

@media (min-width: 768px) {
	.nn-blog-feature__copy {
		padding: 1.75rem 1.85rem;
		gap: 0.85rem;
	}
}

.nn-blog-feature__kicker {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #4f6f5c;
	line-height: 1.3;
}

.nn-blog-feature__title {
	margin: 0;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: clamp(1.25rem, 2.6vw, 1.85rem);
	line-height: 1.3;
	font-weight: 700;
	color: #2a2926;
}

.nn-blog-feature__title a,
.nn-blog-feature__title a:visited,
.nn-blog-feature__title a:hover,
.nn-blog-feature__title a:focus {
	color: inherit !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: none !important;
	background: none !important;
	-webkit-text-fill-color: currentColor;
}

.nn-blog-feature__title a:hover {
	color: #4f6f5c !important;
}

.nn-blog-feature__excerpt {
	margin: 0;
	color: #6b6760;
	line-height: 1.6;
	font-size: 0.98rem;
}

.nn-blog-feature__copy .nn-btn {
	align-self: flex-start;
	margin: 0.15rem 0 0;
	text-decoration: none !important;
}

@media (max-width: 767px) {
	.nn-blog-feature {
		max-height: none !important;
	}

	.nn-blog-feature__media {
		min-height: 11.5rem;
		max-height: 14rem;
	}

	.nn-blog-feature__copy {
		padding: 1.1rem 1.15rem 1.3rem;
		gap: 0.7rem;
	}

	.nn-blog-feature__title {
		font-size: 1.28rem;
		line-height: 1.32;
	}

	.nn-blog-feature__excerpt {
		font-size: 0.94rem;
		line-height: 1.55;
	}
}

/* Guides category archive — match Blog hub premium density */
.nn-archive--guides .nn-archive-section-head {
	margin-bottom: 1.25rem;
}

.nn-archive--guides .nn-card-grid--archive,
.nn-archive--guides .nn-archive-grid {
	gap: 1.15rem;
}

.nn-blog-hub__guides {
	margin: 0 0 1.85rem;
	padding: 1.2rem 1.25rem 1.35rem;
	background: #f7f4ef;
	border: 1px solid #e4e0d8;
	border-radius: 12px;
}

.nn-blog-hub__guides-deck {
	margin: 0.35rem 0 0.65rem;
	color: #5c564e;
	font-size: 0.98rem;
	line-height: 1.45;
}

.nn-blog-hub__guides-link {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
}

.nn-blog-hub__guides-list {
	margin: 0 0 1rem;
	padding-left: 1.15rem;
	display: grid;
	gap: 0.45rem;
}

.nn-blog-hub__guides-grid {
	margin-top: 0.35rem;
}

.nn-home-kitchen-guides__list {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
	display: grid;
	gap: 0.4rem;
}

@media (min-width: 768px) {
	.nn-home-kitchen-guides__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 768px) {
	.nn-blog-hub__guides-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.35rem 1.5rem;
	}
}

.nn-blog-hub__guides-list a {
	text-decoration: none;
	font-weight: 600;
	color: #3d3832;
}

.nn-blog-hub__guides-list a:hover,
.nn-blog-hub__guides-list a:focus {
	color: #4f6f5c;
	text-decoration: underline;
}

.nn-guide-related {
	margin: 2rem 0 1.25rem;
	padding: 1.15rem 1.2rem;
	border-top: 1px solid #e4e0d8;
}

.nn-guide-related__title {
	margin: 0 0 0.75rem;
	font-size: 1.25rem;
}

.nn-guide-related__list {
	margin: 0;
	padding-left: 1.15rem;
	display: grid;
	gap: 0.4rem;
}

.nn-guide-related__more {
	margin: 0.85rem 0 0;
}

.nn-blog-hub__grid-section {
	margin-bottom: 2rem;
}

.nn-blog-hub__newsletter {
	margin-top: 2.25rem;
	padding: 0.25rem;
}

.nn-blog-hub__newsletter .nn-newsletter-inline,
.nn-blog-hub__newsletter .nn-archive-newsletter {
	border-radius: 14px;
}

/* Logo polish */
.nn-site-header__logo {
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 0.6rem;
	object-fit: contain;
	background: transparent;
	box-shadow: none;
	border: none;
}
/* -------------------------------------------------------------------------
 * Newsletter landing hub (1.20.7)
 * ---------------------------------------------------------------------- */

.nn-newsletter-hub {
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.nn-newsletter-hub__hero {
	position: relative;
	padding: clamp(2.5rem, 6vw, 4.25rem) 0 clamp(2.25rem, 4vw, 3.25rem);
	overflow: hidden;
	border-bottom: 1px solid #e4e0d8;
}

.nn-newsletter-hub__hero-bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 70% 60% at 10% 0%, rgba(168, 90, 56, 0.14), transparent 55%),
		radial-gradient(ellipse 60% 50% at 100% 100%, rgba(106, 107, 82, 0.1), transparent 50%),
		linear-gradient(165deg, #fffdf9 0%, #f6f4f0 55%, #efece6 100%);
	pointer-events: none;
}

.nn-newsletter-hub__hero-inner {
	position: relative;
	z-index: 1;
}

.nn-newsletter-hub__hero-grid {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

@media (min-width: 900px) {
	.nn-newsletter-hub__hero-grid {
		grid-template-columns: 1.15fr 0.95fr;
		gap: 2.5rem;
	}
}

.nn-newsletter-hub__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 0.85rem;
	padding: 0.35rem 0.85rem;
	border-radius: 999px;
	background: #e8ede9;
	color: #3f5949;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nn-newsletter-hub__eyebrow-dot {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: #4f6f5c;
	box-shadow: 0 0 0 3px rgba(168, 90, 56, 0.2);
}

.nn-newsletter-hub__title {
	margin: 0 0 0.9rem;
	max-width: 14ch;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: clamp(2.1rem, 4.5vw, 3.1rem);
	line-height: 1.12;
	font-weight: 600;
	letter-spacing: -0.02em;
	color: #2a2926;
}

.nn-newsletter-hub__lede {
	margin: 0 0 1.25rem;
	max-width: 34rem;
	font-size: 1.0625rem;
	line-height: 1.7;
	color: #6b6760;
}

.nn-newsletter-hub__perks {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.55rem;
}

.nn-newsletter-hub__perks li {
	position: relative;
	padding-left: 1.35rem;
	font-size: 0.98rem;
	line-height: 1.5;
	color: #2a2926;
}

.nn-newsletter-hub__perks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45rem;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 50%;
	background: #4f6f5c;
}

.nn-newsletter-hub__card {
	padding: clamp(1.5rem, 3vw, 2rem);
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid #e4e0d8;
	border-radius: 16px;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.85) inset,
		0 18px 40px rgba(44, 40, 37, 0.07);
}

.nn-newsletter-hub__card-kicker {
	margin: 0 0 0.35rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #4f6f5c;
}

.nn-newsletter-hub__card-title {
	margin: 0 0 1.1rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.25;
	color: #2a2926;
}

.nn-newsletter-form--hub .nn-newsletter-form__form {
	flex-direction: column;
	gap: 0.75rem;
}

.nn-newsletter-form--hub .nn-newsletter-form__field,
.nn-newsletter-form--hub .nn-newsletter-form__form .nn-btn {
	width: 100%;
	flex: 1 1 auto;
}

.nn-newsletter-hub__card-fine {
	margin: 0.85rem 0 0;
	font-size: 0.8rem;
	color: #8a8279;
	text-align: center;
}

.nn-newsletter-hub__benefits {
	padding: clamp(2.25rem, 5vw, 3.5rem) 0;
}

.nn-newsletter-hub__section-title {
	margin: 0 0 1.25rem;
	text-align: center;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: clamp(1.45rem, 2.5vw, 1.85rem);
	font-weight: 600;
	color: #2a2926;
}

.nn-newsletter-hub__benefit-grid {
	display: grid;
	gap: 1rem;
}

@media (min-width: 768px) {
	.nn-newsletter-hub__benefit-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25rem;
	}
}

.nn-newsletter-hub__benefit {
	padding: 1.35rem 1.25rem 1.45rem;
	background: #fff;
	border: 1px solid #e4e0d8;
	border-radius: 12px;
	height: 100%;
}

.nn-newsletter-hub__benefit-icon {
	display: inline-block;
	margin-bottom: 0.65rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #4f6f5c;
}

.nn-newsletter-hub__benefit h3 {
	margin: 0 0 0.45rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: 1.2rem;
	font-weight: 600;
	color: #2a2926;
}

.nn-newsletter-hub__benefit p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	color: #6b6760;
}

.nn-newsletter-hub__promise {
	padding: 0.5rem 0 2.5rem;
}

.nn-newsletter-hub__quote {
	margin: 0;
	padding: 1.75rem 1.5rem;
	text-align: center;
	background: #efece6;
	border-radius: 14px;
	border: 1px solid #e4e0d8;
}

.nn-newsletter-hub__quote p {
	margin: 0 0 0.85rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: clamp(1.15rem, 2vw, 1.4rem);
	line-height: 1.55;
	font-style: italic;
	color: #2a2926;
}

.nn-newsletter-hub__quote footer {
	font-size: 0.875rem;
	font-style: normal;
	color: #6b6560;
	font-weight: 600;
}

.nn-newsletter-hub__next {
	padding-bottom: 0.5rem;
}

.nn-newsletter-hub__next-grid {
	display: grid;
	gap: 1rem;
}

@media (min-width: 700px) {
	.nn-newsletter-hub__next-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.nn-newsletter-hub__next-card {
	display: block;
	padding: 1.5rem 1.35rem;
	background: #fff;
	border: 1px solid #e4e0d8;
	border-radius: 12px;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.nn-newsletter-hub__next-card:hover {
	border-color: #d5cec4;
	box-shadow: 0 12px 28px rgba(44, 40, 37, 0.06);
	transform: translateY(-2px);
}

.nn-newsletter-hub__next-kicker {
	margin: 0 0 0.35rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #4f6f5c;
}

.nn-newsletter-hub__next-card h2 {
	margin: 0 0 0.4rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: 1.35rem;
	font-weight: 600;
	color: #2a2926;
}

.nn-newsletter-hub__next-card p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.55;
	color: #6b6760;
}

/* ===== layout/_visual-polish.css ===== */
/**
 * Visual polish — modern food-magazine front end.
 * Elevates core blocks + homepage so the site looks finished without custom photos.
 *
 * @package Nest_Narrow
 * @since   1.11.0
 * @since   1.12.0 Brand header, topbar, stronger spice.
 */

/* -------------------------------------------------------------------------
 * Brand header (always-on top menu) — single header only
 * ---------------------------------------------------------------------- */

/* Hide Kadence masthead hard (double-menu fix). Critical CSS in head also applies. */
body.nn-has-brand-header #masthead,
body.nn-has-brand-header .site-header-wrap,
body.nn-hide-kadence-header #masthead,
body.nn-hide-kadence-header .site-header-wrap,
body:has([data-rbc-header]) #masthead,
body:has([data-rbc-header]) .site-header-wrap,
body:has(.nn-site-header) #masthead,
body:has(.nn-site-header) .site-header-wrap {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	pointer-events: none !important;
}

.nn-topbar {
	/* Single terracotta family — no sage/honey rainbow */
	background: linear-gradient(
		90deg,
		var(--nn-color-primary-700, #33483b) 0%,
		var(--nn-color-primary-500, #4f6f5c) 55%,
		var(--nn-color-primary-600, #3f5949) 100%
	);
	color: #f6f4f0;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.nn-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.25rem;
	padding-block: 0.35rem;
}

.nn-topbar__pill {
	opacity: 0.95;
}

.nn-topbar__link {
	color: #fff !important;
	text-decoration: none !important;
	white-space: nowrap;
	border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}

.nn-topbar__link:hover {
	border-bottom-color: #fff;
}

.nn-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.94) !important;
	backdrop-filter: saturate(1.25) blur(12px);
	-webkit-backdrop-filter: saturate(1.25) blur(12px);
	border-bottom: 1px solid var(--nn-color-border-default);
	box-shadow: 0 4px 18px rgba(44, 40, 37, 0.06);
}

.nn-site-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 4.25rem;
	padding-block: 0.5rem;
}

.nn-site-header__brand {
	flex-shrink: 0;
	min-width: 0;
}

.nn-site-header__title {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-family: var(--nn-font-serif) !important;
	font-weight: 700 !important;
	font-size: clamp(1.15rem, 1rem + 0.55vw, 1.45rem) !important;
	color: var(--nn-color-text-primary) !important;
	text-decoration: none !important;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.nn-site-header__mark {
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	background: linear-gradient(
		135deg,
		var(--nn-color-primary-500, #4f6f5c),
		var(--nn-color-primary-600, #3f5949)
	);
	box-shadow: 0 0 0 3px rgba(168, 90, 56, 0.16);
	flex-shrink: 0;
}

.nn-site-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
	min-width: 0;
}

.nn-primary-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.nn-primary-nav > li {
	margin: 0 !important;
	list-style: none !important;
}

.nn-primary-nav > li > a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	font-family: var(--nn-font-sans) !important;
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	color: var(--nn-color-text-primary) !important;
	text-decoration: none !important;
	transition: background 0.15s ease, color 0.15s ease;
}

.nn-primary-nav > li > a:hover,
.nn-primary-nav > li.current-menu-item > a,
.nn-primary-nav > li.current_page_item > a {
	background: var(--nn-color-primary-50);
	color: var(--nn-color-primary-600) !important;
}

.nn-site-header__actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-shrink: 0;
}

.nn-header-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.5rem 1.15rem;
	border-radius: 999px;
	background: var(--nn-color-primary-500);
	color: #fff !important;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	box-shadow: var(--nn-shadow-btn, 0 8px 20px rgba(168, 90, 56, 0.2));
	white-space: nowrap;
	transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.nn-header-cta:hover {
	background: var(--nn-color-primary-600);
	color: #fff !important;
	box-shadow: var(--nn-shadow-btn-hover, 0 14px 28px rgba(168, 90, 56, 0.24));
	transform: translateY(-1px);
}

.nn-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: 999px;
	background: #fff;
	color: var(--nn-color-text-primary);
	cursor: pointer;
}

.nn-icon-btn:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
}

/* Utility visibility */
.nn-u-hide-mobile {
	/* shown by default */
}

.nn-u-hide-desktop {
	display: none !important;
}

@media (max-width: 900px) {
	.nn-site-header__nav {
		display: none !important;
	}

	.nn-u-hide-mobile {
		display: none !important;
	}

	.nn-u-hide-desktop {
		display: inline-flex !important;
	}

	.nn-topbar__pill {
		font-size: 0.75rem;
	}
}

@media (min-width: 901px) {
	.nn-u-hide-desktop {
		display: none !important;
	}
}

/* -------------------------------------------------------------------------
 * Global canvas + type
 * ---------------------------------------------------------------------- */

body.nn-theme,
body.home,
body {
	background-color: var(--nn-color-bg-canvas) !important;
	color: var(--nn-color-text-primary);
}

body.nn-theme,
body.nn-theme p,
body.nn-theme li,
body.nn-theme input,
body.nn-theme button,
body.nn-theme .entry-content {
	font-family: var(--nn-font-sans);
}

body.nn-theme h1,
body.nn-theme h2,
body.nn-theme h3,
body.nn-theme h4,
body.nn-theme .entry-content h1,
body.nn-theme .entry-content h2,
body.nn-theme .entry-content h3,
body.nn-theme .wp-block-post-title,
body.nn-theme .wp-block-heading {
	font-family: var(--nn-font-serif);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--nn-color-text-primary);
	line-height: 1.2;
}

/* Hide setup helper line on the public site */
.nn-home-welcome {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * Kadence header / chrome — make it feel branded
 * ---------------------------------------------------------------------- */

.site-header,
#masthead,
.nn-site-header,
header.wp-block-template-part,
.kadence-header-main {
	background: rgba(255, 255, 255, 0.92) !important;
	backdrop-filter: saturate(1.2) blur(10px);
	-webkit-backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 1px solid var(--nn-color-border-default);
	box-shadow: 0 1px 0 rgba(44, 40, 37, 0.04);
}

.site-branding .site-title,
.site-branding .site-title a,
.kb-header .site-title,
.site-header .site-title a {
	font-family: var(--nn-font-serif) !important;
	font-weight: 700 !important;
	font-size: clamp(1.15rem, 1rem + 0.6vw, 1.45rem) !important;
	color: var(--nn-color-text-primary) !important;
	letter-spacing: -0.02em;
	text-decoration: none !important;
}

.header-navigation .menu-item > a,
.primary-menu > li > a,
#site-navigation a,
.main-navigation a {
	font-family: var(--nn-font-sans) !important;
	font-weight: 600 !important;
	font-size: 0.9375rem !important;
	color: var(--nn-color-text-primary) !important;
	letter-spacing: 0.01em;
}

.header-navigation .menu-item > a:hover,
.primary-menu > li > a:hover,
#site-navigation a:hover {
	color: var(--nn-color-primary-600) !important;
}

/* -------------------------------------------------------------------------
 * Buttons — WP core + Kadence + theme
 * ---------------------------------------------------------------------- */

.wp-block-button__link,
.kb-button,
.button:not(.components-button),
body.nn-theme .wp-element-button {
	font-family: var(--nn-font-sans) !important;
	font-weight: 600 !important;
	border-radius: 999px !important;
	padding: 0.85rem 1.4rem !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
	box-shadow: 0 1px 2px rgba(44, 40, 37, 0.08);
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.wp-element-button.has-primary-background-color {
	background: var(--nn-color-primary-500) !important;
	color: #fff !important;
	border: none !important;
}

.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: var(--nn-color-primary-600) !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(180, 83, 42, 0.28);
	color: #fff !important;
}

.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent !important;
	border: 1.5px solid var(--nn-color-primary-500) !important;
	color: var(--nn-color-primary-600) !important;
	box-shadow: none;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--nn-color-primary-50) !important;
}

/* -------------------------------------------------------------------------
 * Homepage shell
 * ---------------------------------------------------------------------- */

.nn-home,
.nn-home-page,
.nn-home-content {
	max-width: none;
}

.nn-home-content > .wp-block-group,
.nn-home-section {
	margin-inline: auto;
}

/* Soft alternating bands already via modifiers — deepen polish */
.nn-home-section--sunken {
	background: linear-gradient(180deg, #f1eee8 0%, #f7f2eb 100%);
	border-block: 1px solid rgba(212, 206, 198, 0.55);
}

.nn-home-section--soft {
	background: linear-gradient(180deg, #fcf4f0 0%, #f6f4f0 100%);
}

.nn-home-section--sage {
	/* Warm stone wash — not mint (mint + terracotta clashed) */
	background: linear-gradient(180deg, #f0eee8 0%, #f6f4ee 100%);
}

/* -------------------------------------------------------------------------
 * Hero — modern search-first first screen
 * ---------------------------------------------------------------------- */

.nn-home-hero,
.nn-home-hero--modern {
	position: relative;
	padding-block: clamp(2.75rem, 5vw, 5rem) !important;
	/* Terracotta-only soft glows on cream — one color family */
	background:
		radial-gradient(ellipse 90% 70% at 0% 0%, rgba(168, 90, 56, 0.1), transparent 55%),
		radial-gradient(ellipse 60% 50% at 100% 20%, rgba(168, 90, 56, 0.05), transparent 50%),
		var(--nn-color-bg-canvas, #f6f4f0) !important;
	overflow: hidden;
}

/* Kill WP block "global padding" flattening the hero */
.nn-home-hero.has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.nn-home-hero__grid {
	position: relative;
	z-index: 1;
	display: grid !important;
	gap: clamp(1.75rem, 3vw, 3rem) !important;
	align-items: center !important;
}

@media (min-width: 900px) {
	.nn-home-hero__grid {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
	}
}

.nn-home-hero__copy {
	max-width: 34rem;
}

/* Hero brand eyebrow retired — logo already carries the name. */
.nn-home-hero__eyebrow {
	display: none !important;
}

.nn-home-hero__title {
	margin: 0 0 1rem !important;
	font-family: var(--nn-font-serif) !important;
	font-size: clamp(2.15rem, 1.55rem + 2.3vw, 3.25rem) !important;
	font-weight: 700 !important;
	line-height: 1.12 !important;
	letter-spacing: -0.02em !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	background: none !important;
	max-width: min(100%, 22rem) !important;
	text-wrap: balance;
	overflow: visible !important;
}

.nn-home-hero__lede {
	margin: 0 0 1.5rem !important;
	font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.25rem) !important;
	color: #6b6760 !important;
	max-width: 32rem;
	line-height: 1.55 !important;
}

/* Search as the main control */
.nn-home-hero__search {
	margin: 0 0 1.25rem !important;
	max-width: 28rem;
}

.nn-home-hero__search .wp-block-search__inside-wrapper {
	display: flex !important;
	align-items: stretch !important;
	border-radius: 999px !important;
	border: 1px solid #d4cec6 !important;
	background: #fff !important;
	overflow: hidden;
	min-height: 3.35rem;
	box-shadow: 0 10px 30px rgba(44, 40, 37, 0.08) !important;
}

.nn-home-hero__search .wp-block-search__input {
	border: 0 !important;
	box-shadow: none !important;
	padding: 0.85rem 1.15rem !important;
	font-size: 1rem !important;
	background: transparent !important;
}

.nn-home-hero__search .wp-block-search__button {
	border: 0 !important;
	border-radius: 0 999px 999px 0 !important;
	margin: 0 !important;
	padding: 0 1.25rem !important;
	background: var(--nn-color-primary-500, #4f6f5c) !important;
	color: #fff !important;
	font-weight: 600 !important;
	letter-spacing: 0.02em !important;
}

.nn-home-hero__search .wp-block-search__button:hover {
	background: var(--nn-color-primary-600, #3f5949) !important;
}

.nn-home-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	list-style: none;
	margin: 0.85rem 0 0 !important;
	padding: 0 !important;
}

.nn-home-chips a {
	display: inline-flex;
	align-items: center;
	min-height: 2.15rem;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid #e7e2db;
	color: #6b6760;
	font-size: 0.8125rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.nn-home-chips a:hover {
	border-color: var(--nn-color-primary-500, #4f6f5c);
	color: var(--nn-color-primary-600, #3f5949);
	background: #fff;
	transform: translateY(-1px);
}

/* Only two CTAs — clean, not a button pile */
.nn-home-hero__actions {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.75rem !important;
	margin: 0 0 1.25rem !important;
}

.nn-home-hero__actions .wp-block-button {
	margin: 0 !important;
}

/* Hero/newsletter button faces are owned by homepage-clean (editorial CTAs). */
.nn-home-hero__actions .wp-block-button__link,
.nn-btn--hero-primary .wp-block-button__link {
	/* no competing pill styles — see _homepage-clean.css */
}

.nn-home-hero__proof {
	display: flex !important;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: #8a8279 !important;
}

.nn-home-hero__proof span {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.nn-home-hero__proof span::before {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: var(--nn-color-secondary-500, #7a756c);
}

/* Aside / photo */
.nn-home-hero__aside {
	position: relative;
}

.nn-home-hero__media {
	margin: 0 !important;
	border-radius: 1.5rem !important;
	overflow: hidden !important;
	box-shadow:
		0 4px 8px rgba(44, 40, 37, 0.05),
		0 24px 48px rgba(44, 40, 37, 0.14) !important;
	aspect-ratio: 4 / 3;
	background: linear-gradient(145deg, #f8e8e0, #e7ede1);
	border: 1px solid rgba(255, 255, 255, 0.7);
}

.nn-home-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Hero float — no overlay; pure white labels over the photo */
.nn-home-hero__float {
	position: absolute;
	left: 1rem;
	right: auto;
	bottom: 1rem;
	width: auto;
	max-width: min(20rem, calc(100% - 2rem));
	padding: 0;
	border-radius: 0;
	border: 0;
	background: none;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.nn-home-hero__float-kicker {
	display: none !important;
}

.nn-home-hero__float-title {
	margin: 0 !important;
	font-family: var(--nn-font-serif) !important;
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem) !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
}

.nn-home-hero__float-title a {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: none !important;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45) !important;
}

.nn-home-hero__float-title a:hover {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 0.95;
}

.nn-home-hero__media-caption {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * Trust bar
 * ---------------------------------------------------------------------- */

.nn-trust-bar {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem 1rem;
	margin: 0;
	padding: 0.25rem 0;
	list-style: none;
	text-align: center;
}

@media (min-width: 768px) {
	.nn-trust-bar {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.nn-trust-bar > span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	border-radius: 999px;
	background: var(--nn-color-bg-sunken);
	font-family: var(--nn-font-sans);
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--nn-color-text-secondary);
	letter-spacing: 0.01em;
}

.nn-trust-bar > span::before {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--nn-color-secondary-500);
	flex-shrink: 0;
}

/* -------------------------------------------------------------------------
 * Section headers
 * ---------------------------------------------------------------------- */

.nn-home-head__title {
	font-size: clamp(1.65rem, 1.4rem + 0.9vw, 2.1rem) !important;
	letter-spacing: -0.025em !important;
}

.nn-home-head__deck {
	color: var(--nn-color-text-secondary);
	font-size: 1.0625rem !important;
}

.nn-home-head__link {
	color: var(--nn-color-primary-600) !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	border-bottom: 2px solid rgba(180, 83, 42, 0.25);
}

.nn-home-head__link:hover {
	border-bottom-color: var(--nn-color-primary-500);
}

/* -------------------------------------------------------------------------
 * Query loops → modern recipe cards (core post-template)
 * ---------------------------------------------------------------------- */

.nn-home-query .wp-block-post-template,
.nn-home-query ul.wp-block-post-template {
	display: grid !important;
	/* Single column of wide cards (horizontal layout handled in homepage-clean) */
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 1.25rem !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

@media (min-width: 640px) {
	.nn-home-query--3 .wp-block-post-template,
	.nn-home-query .wp-block-post-template.is-flex-container.columns-3,
	.nn-home-query .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

@media (min-width: 960px) {
	.nn-home-query--3 .wp-block-post-template,
	.nn-home-query .wp-block-post-template {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

.nn-home-query .wp-block-post,
.nn-home-query li.wp-block-post {
	display: flex !important;
	flex-direction: column;
	/* Override WP is-flex-container columns-N width: calc(33%…) so titles don't go 1 letter/line */
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--nn-color-border-default);
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 2px 4px rgba(44, 40, 37, 0.04);
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	margin: 0 !important;
	padding: 0 !important;
	height: 100%;
}

.nn-home-query .wp-block-post:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px rgba(44, 40, 37, 0.12);
	border-color: rgba(180, 83, 42, 0.35);
}

/* Soft “new” accent bar on first card */
.nn-home-query .wp-block-post:first-child {
	box-shadow: 0 2px 4px rgba(44, 40, 37, 0.04), 0 0 0 1px rgba(180, 83, 42, 0.12);
}

/* Featured image area */
.nn-home-query .wp-block-post-featured-image {
	margin: 0 !important;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background:
		linear-gradient(145deg, #f8e8e0 0%, #e7ede1 45%, #f8efdc 100%);
	position: relative;
}

.nn-home-query .wp-block-post-featured-image a {
	display: block;
	height: 100%;
}

.nn-home-query .wp-block-post-featured-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block;
	transition: transform 0.35s ease;
}

.nn-home-query .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

/* Empty featured image placeholder */
.nn-home-query .wp-block-post-featured-image:not(:has(img))::after,
.nn-home-query .wp-block-post-featured-image:empty::after {
	content: "Recipe";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--nn-font-serif);
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--nn-color-primary-600);
	letter-spacing: -0.02em;
	opacity: 0.55;
	background:
		radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.55), transparent 50%),
		linear-gradient(145deg, #f8e8e0 0%, #e7ede1 50%, #f8efdc 100%);
}

.nn-home-query .wp-block-post-title {
	margin: 0 !important;
	padding: 1rem 1.1rem 1.15rem !important;
	font-family: var(--nn-font-serif) !important;
	font-size: 1.125rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	flex: 1 1 auto;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	white-space: normal !important;
}

.nn-home-query .wp-block-post-title a {
	color: var(--nn-color-text-primary) !important;
	text-decoration: none !important;
	display: block !important;
	width: 100% !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	white-space: normal !important;
}

.nn-home-query .wp-block-post-title a:hover {
	color: var(--nn-color-primary-600) !important;
}

/* Archive / blog cards too */
.nn-archive .wp-block-post,
body.blog .wp-block-post,
body.archive .wp-block-post {
	/* leave archives to their own templates; mild boost if query used */
}

/* -------------------------------------------------------------------------
 * Category / collection tiles
 * ---------------------------------------------------------------------- */

.nn-home-categories .wp-block-columns,
.nn-home-collections .wp-block-columns {
	gap: 1rem !important;
}

.nn-home-categories .wp-block-image,
.nn-home-collections .wp-block-image,
.nn-home-categories figure,
.nn-card__media {
	border-radius: 0.9rem;
	overflow: hidden;
}

.nn-home-categories a,
.nn-home-collections a {
	text-decoration: none;
	font-weight: 700;
	color: var(--nn-color-text-primary);
}

/* -------------------------------------------------------------------------
 * Newsletter / CTA bands — light sage by default (see _homepage-fix.css)
 * Dark gradient removed: it fought pattern markup and caused random text colors.
 * ---------------------------------------------------------------------- */

/* -------------------------------------------------------------------------
 * Footer
 * ---------------------------------------------------------------------- */

.site-footer,
#colophon,
footer.site-footer {
	background: #2a2926 !important;
	color: rgba(250, 247, 242, 0.82) !important;
	border-top: none !important;
	padding-block: 2.5rem !important;
}

.site-footer a,
#colophon a {
	color: #f6f4f0 !important;
}

.site-footer a:hover {
	color: #f8e8e0 !important;
}

/* -------------------------------------------------------------------------
 * Content width rhythm
 * ---------------------------------------------------------------------- */

.nn-home .wp-block-group.alignwide,
.nn-home .entry-content > .wp-block-group {
	max-width: 70rem;
}

.entry-content > * {
	max-width: 45rem;
}

.entry-content > .alignwide,
.entry-content > .wp-block-query,
.entry-content > .wp-block-columns,
.entry-content > .nn-home-section,
.entry-content > .wp-block-group {
	max-width: 70rem;
}

/* Single post polish */
body.single-post .entry-content {
	font-size: 1.125rem;
	line-height: 1.7;
}

body.single-post .entry-title {
	font-family: var(--nn-font-serif);
	font-size: clamp(2rem, 1.6rem + 1.5vw, 2.75rem);
	letter-spacing: -0.025em;
}

/* -------------------------------------------------------------------------
 * Mobile
 * ---------------------------------------------------------------------- */

@media (max-width: 782px) {
	.nn-home-hero__title {
		max-width: none;
	}

	.nn-home-query .wp-block-post-title {
		font-size: 1.05rem !important;
		padding: 0.85rem 0.95rem 1rem !important;
	}
}

/* ===== layout/_homepage-fix.css ===== */
/**
 * Homepage color + overflow fixes.
 *
 * Goals:
 * - Predictable cream/white section backgrounds (no random bands)
 * - Solid text colors (no transparent/gradient-clip text)
 * - No title clipping (no ch-based max-width, no overflow hide on text)
 * - Newsletter / dark bands only when intentionally dark
 * - Beat Kadence boxed content + WP global padding on the front page
 *
 * @package Nest_Narrow
 * @since   1.14.0
 */

/* -------------------------------------------------------------------------
 * Front page shell — kill boxed “random white card” feel
 * ---------------------------------------------------------------------- */

body.nn-is-front,
body.home.nn-theme {
	background: #f6f4f0 !important;
	color: #2a2926 !important;
}

body.nn-is-front .content-bg,
body.nn-is-front .entry-content-wrap,
body.nn-is-front .content-container,
body.nn-is-front .site-container .content-wrap,
body.nn-is-front .entry.single-entry,
body.nn-is-front .entry-content-wrap,
body.nn-is-front .content-style-boxed .entry.single-entry,
body.nn-is-front .wp-site-blocks,
body.nn-is-front #inner-wrap,
body.nn-is-front .site-main {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
}

body.nn-is-front .nn-home-page,
body.nn-is-front .nn-home-content,
body.nn-is-front .entry-content.nn-home-content {
	max-width: none !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	color: #2a2926 !important;
}

/* Default text on homepage is always dark charcoal — never inherit weird colors */
body.nn-is-front .nn-home-content,
body.nn-is-front .nn-home-content p,
body.nn-is-front .nn-home-content li,
body.nn-is-front .nn-home-content span:not(.wp-block-button__link) {
	color: #2a2926;
}

body.nn-is-front .nn-home-content p,
body.nn-is-front .nn-home-content .nn-home-head__deck,
body.nn-is-front .nn-home-content .nn-home-hero__lede {
	color: #6b6760 !important;
	max-width: none !important; /* override entry-content 70ch which can feel cut off */
}

/* Headings always solid dark (override gradient/transparent clip) */
body.nn-is-front .nn-home-content h1,
body.nn-is-front .nn-home-content h2,
body.nn-is-front .nn-home-content h3,
body.nn-is-front .nn-home-content h4,
body.nn-is-front .nn-home-content .wp-block-heading,
body.nn-is-front .nn-home-content .nn-home-hero__title,
body.nn-is-front .nn-home-content .nn-home-head__title {
	color: #2a2926 !important;
	background: none !important;
	-webkit-background-clip: unset !important;
	background-clip: unset !important;
	-webkit-text-fill-color: #2a2926 !important;
	max-width: none !important;
	overflow: visible !important;
	text-overflow: unset !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	hyphens: manual !important;
	line-height: 1.15 !important;
}

/* -------------------------------------------------------------------------
 * Sections — predictable alternating backgrounds only
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-section,
body.nn-is-front .nn-home-content > .wp-block-group {
	background: #f6f4f0;
	color: #2a2926;
}

/* Explicit modifiers */
body.nn-is-front .nn-home-section--surface {
	background: #f6f4f0 !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-section--tight.nn-home-section--surface {
	background: #efece6 !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-section--sunken {
	background: #f1eee8 !important;
	color: #2a2926 !important;
	border-block: 1px solid #e7e2db;
}

body.nn-is-front .nn-home-section--soft {
	background: #fcf4f0 !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-section--sage {
	background: var(--nn-color-bg-sage, #f0eee8) !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-section--canvas {
	background: #f6f4f0 !important;
	color: #2a2926 !important;
}

/* Even sections without modifiers: alternate softly by position among direct children */
body.nn-is-front .nn-home-content > .wp-block-group:nth-child(even):not(.nn-home-hero):not(.nn-home-section--sage):not(.nn-home-section--sunken):not(.nn-home-section--soft) {
	background: #ffffff;
}

/* Full-bleed feel: section padding, not random side boxes */
body.nn-is-front .nn-home-section,
body.nn-is-front .nn-home-hero {
	padding-left: clamp(1rem, 3vw, 1.5rem) !important;
	padding-right: clamp(1rem, 3vw, 1.5rem) !important;
	box-sizing: border-box;
}

/* Kill WP block global padding fighting layout */
body.nn-is-front .nn-home-content .has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

body.nn-is-front .nn-home-content .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
	max-width: min(70rem, 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* -------------------------------------------------------------------------
 * Hero title — never clip words
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero__title {
	max-width: 18ch !important; /* wider than before; still nice measure */
	max-width: min(100%, 22rem) !important; /* rem wins for real wrapping */
	font-size: clamp(2.1rem, 1.5rem + 2.2vw, 3.25rem) !important;
	line-height: 1.12 !important;
	letter-spacing: -0.02em !important;
	overflow: visible !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	background: none !important;
}

body.nn-is-front .nn-home-hero__copy {
	max-width: 36rem !important;
	overflow: visible !important;
}

body.nn-is-front .nn-home-hero__grid,
body.nn-is-front .nn-home-hero__aside,
body.nn-is-front .nn-home-hero__media {
	/* media can clip images; text areas must not */
	min-width: 0;
}

body.nn-is-front .nn-home-hero__copy,
body.nn-is-front .nn-home-hero__actions,
body.nn-is-front .nn-home-hero__proof {
	overflow: visible !important;
}

/* Hero stays cream — don't let nth-child white override */
body.nn-is-front .nn-home-hero,
body.nn-is-front .nn-home-hero--modern {
	background:
		radial-gradient(ellipse 90% 70% at 0% 0%, rgba(180, 83, 42, 0.1), transparent 55%),
		radial-gradient(ellipse 70% 55% at 100% 15%, rgba(95, 115, 72, 0.12), transparent 52%),
		#f6f4f0 !important;
	color: #2a2926 !important;
}

/* -------------------------------------------------------------------------
 * Links — consistent terracotta, never random theme blue
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-content a:not(.wp-block-button__link):not(.nn-header-cta):not(.nn-topbar__link) {
	color: var(--nn-color-primary-600, #3f5949);
}

body.nn-is-front .nn-home-content a:not(.wp-block-button__link):hover {
	color: #33483b;
}

body.nn-is-front .nn-home-head__link {
	color: var(--nn-color-primary-600, #3f5949) !important;
}

body.nn-is-front .nn-home-chips a {
	color: #6b6760 !important;
	background: #ffffff !important;
	border-color: #e7e2db !important;
}

body.nn-is-front .nn-home-chips a:hover {
	color: var(--nn-color-primary-600, #3f5949) !important;
	border-color: var(--nn-color-primary-500, #4f6f5c) !important;
}

/* -------------------------------------------------------------------------
 * Cards / post titles — no clamp clipping
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-query .wp-block-post-title,
body.nn-is-front .nn-home-query .wp-block-post-title a {
	color: #2a2926 !important;
	-webkit-line-clamp: unset !important;
	display: block !important;
	overflow: visible !important;
	white-space: normal !important;
	line-height: 1.3 !important;
}

body.nn-is-front .nn-home-cat__title {
	color: #2a2926 !important;
	overflow: visible !important;
}

/* Card media may crop images only */
body.nn-is-front .nn-home-query .wp-block-post-featured-image,
body.nn-is-front .nn-home-cat__media,
body.nn-is-front .nn-home-hero__media {
	overflow: hidden;
}

/* -------------------------------------------------------------------------
 * Newsletter — light sage band with dark text (matches pattern markup)
 * Previous dark-gradient override caused white/dark clash.
 * ---------------------------------------------------------------------- */

body.nn-is-front #newsletter,
body.nn-is-front .nn-home-section--sage,
body.nn-is-front .nn-cta--sage {
	background: var(--nn-color-bg-sage, #f0eee8) !important;
	color: #2a2926 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin-block: 0 !important;
}

body.nn-is-front #newsletter h2,
body.nn-is-front #newsletter .wp-block-heading,
body.nn-is-front #newsletter p,
body.nn-is-front #newsletter li,
body.nn-is-front .nn-cta--sage h2,
body.nn-is-front .nn-cta--sage p,
body.nn-is-front .nn-cta--sage li,
body.nn-is-front .nn-cta__title,
body.nn-is-front .nn-cta__text {
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	background: none !important;
}

body.nn-is-front #newsletter .has-text-muted-color,
body.nn-is-front #newsletter .has-small-font-size {
	color: #6b6760 !important;
}

/* Optional dark CTA only if class is present */
body.nn-is-front .nn-cta--dark,
body.nn-is-front .nn-home-section--dark {
	background: #2a2926 !important;
	color: #f6f4f0 !important;
}

body.nn-is-front .nn-cta--dark h2,
body.nn-is-front .nn-cta--dark p,
body.nn-is-front .nn-cta--dark li,
body.nn-is-front .nn-home-section--dark h2,
body.nn-is-front .nn-home-section--dark p {
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
}

/* -------------------------------------------------------------------------
 * Trust bar
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-trust-bar > span {
	background: #f1eee8 !important;
	color: #6b6760 !important;
}

/* -------------------------------------------------------------------------
 * Buttons — identical face for hero + newsletter (no outline special-case)
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero__actions .wp-block-button .wp-block-button__link,
body.nn-is-front .nn-home-hero__actions .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front .nn-home-hero__actions .is-style-outline .wp-block-button__link,
body.nn-is-front #newsletter .wp-block-button .wp-block-button__link,
body.nn-is-front #newsletter .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front .nn-cta .wp-block-button .wp-block-button__link,
body.nn-is-front .nn-cta .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front #about .wp-block-button .wp-block-button__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 3.125rem !important;
	padding: 0.95rem 1.9rem !important;
	border-radius: 2px !important;
	border: 1px solid #2a2926 !important;
	background: #2a2926 !important;
	background-image: none !important;
	background-color: #2a2926 !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	box-shadow: none !important;
	font-family: "Source Sans 3", system-ui, sans-serif !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}

body.nn-is-front .nn-home-hero__actions .wp-block-button .wp-block-button__link:hover,
body.nn-is-front .nn-home-hero__actions .wp-block-button.is-style-outline .wp-block-button__link:hover,
body.nn-is-front .nn-home-hero__actions .is-style-outline .wp-block-button__link:hover,
body.nn-is-front #newsletter .wp-block-button .wp-block-button__link:hover,
body.nn-is-front #newsletter .wp-block-button.is-style-outline .wp-block-button__link:hover,
body.nn-is-front .nn-cta .wp-block-button .wp-block-button__link:hover,
body.nn-is-front #about .wp-block-button .wp-block-button__link:hover {
	background: #4f6f5c !important;
	background-image: none !important;
	background-color: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Float caption styles live in homepage-clean (editorial bottom strip). */
/* Intentionally no white sticker overrides here. */

/* -------------------------------------------------------------------------
 * About / CTA row — stay light
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-about,
body.nn-is-front .nn-home-cta-row,
body.nn-is-front #about,
body.nn-is-front #next {
	background: #ffffff !important;
	color: #2a2926 !important;
}

/* -------------------------------------------------------------------------
 * Mobile: never truncate hero or section titles
 * ---------------------------------------------------------------------- */

@media (max-width: 782px) {
	body.nn-is-front .nn-home-hero__title {
		max-width: 100% !important;
		font-size: clamp(1.85rem, 7.5vw, 2.35rem) !important;
	}

	body.nn-is-front .nn-home-head {
		flex-direction: column;
		align-items: flex-start !important;
	}

	body.nn-is-front .nn-home-head__title {
		max-width: 100% !important;
	}
}

/* ===== layout/_homepage-clean.css ===== */
/**
 * Homepage — clean, airy, modern (single source of truth for front page).
 *
 * Intentionally overrides earlier polish/fix layers so spacing and type
 * feel calm instead of dense or choppy.
 *
 * @package Nest_Narrow
 * @since   1.15.0
 */

/* -------------------------------------------------------------------------
 * Page foundation
 * ---------------------------------------------------------------------- */

body.nn-is-front,
body.home.nn-theme {
	background: var(--nn-color-bg-canvas, #f6f4f0) !important;
	color: var(--nn-color-text-primary, #2a2926) !important;
}

body.nn-is-front .site-main,
body.nn-is-front .nn-home,
body.nn-is-front .nn-home-page,
body.nn-is-front .entry-content.nn-home-content,
body.nn-is-front .content-bg,
body.nn-is-front .entry-content-wrap,
body.nn-is-front .content-container,
body.nn-is-front .content-wrap {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.nn-is-front .nn-home-content {
	display: block;
	color: #2a2926 !important;
}

/* Reset WP block spacing that stacks everything tight */
body.nn-is-front .nn-home-content > * {
	margin-block: 0 !important;
}

body.nn-is-front .nn-home-content .has-global-padding {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* -------------------------------------------------------------------------
 * Sections — generous breathing room
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-section,
body.nn-is-front .nn-home-hero {
	padding: clamp(3.5rem, 7vw, 6.5rem) clamp(1.25rem, 4vw, 2rem) !important;
	box-sizing: border-box;
	background: var(--nn-color-bg-canvas, #f6f4f0) !important;
	color: var(--nn-color-text-primary, #2a2926) !important;
	border: 0 !important;
	/* Radius/shadow handled by magazine-polish on inner cards; sections stay full-bleed */
	border-radius: 0 !important;
}

/* Soft alternate only for marked surface sections */
body.nn-is-front .nn-home-section--surface {
	/* Warm paper, not stark white */
	background: #f6f4f0 !important;
}

/* Trust strip keeps stone band even when also marked --surface in content */
body.nn-is-front .nn-home-section--tight.nn-home-section--surface {
	background: #efece6 !important;
}

body.nn-is-front .nn-home-section--sunken {
	background: var(--nn-color-bg-sunken, #f1eee8) !important;
}

/* Warm stone band — not mint green (clashed with terracotta) */
body.nn-is-front .nn-home-section--sage {
	background: var(--nn-color-bg-sage, #f0eee8) !important;
}

/* Constrain inner content width without crushing text */
body.nn-is-front .nn-home-section > .wp-block-group,
body.nn-is-front .nn-home-section.is-layout-constrained > *,
body.nn-is-front .nn-home-hero.is-layout-constrained > .nn-home-hero__grid,
body.nn-is-front .nn-home-content .is-layout-constrained > :where(:not(.alignfull)) {
	max-width: 68rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100%;
}

/* -------------------------------------------------------------------------
 * Mobile homepage — center content (WP flex often leaves blocks right-leaning)
 * ---------------------------------------------------------------------- */

@media (max-width: 782px) {
	body.nn-is-front .nn-home-content,
	body.nn-is-front .nn-home-hero,
	body.nn-is-front .nn-home-section,
	body.nn-is-front .nn-home-head,
	body.nn-is-front .nn-home-hero__copy {
		text-align: center !important;
	}

	/*
	 * Mobile hero order:
	 * eyebrow → title → photo (+ Browse recipes) → lede → search → buttons → proof
	 * Desktop layout unchanged (two-column grid below 960px breakpoint stays column, order only under 782).
	 */
	body.nn-is-front .nn-home-hero__grid {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 1.25rem !important;
	}

	body.nn-is-front .nn-home-hero__copy {
		display: contents !important;
	}

	body.nn-is-front .nn-home-hero__eyebrow {
		order: 1 !important;
	}

	body.nn-is-front .nn-home-hero__title {
		order: 2 !important;
		margin-bottom: 0.35rem !important;
	}

	body.nn-is-front .nn-home-hero__aside {
		order: 3 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0.35rem auto 0.5rem !important;
	}

	body.nn-is-front .nn-home-hero__lede {
		order: 4 !important;
	}

	body.nn-is-front .nn-home-hero__search {
		order: 5 !important;
	}

	body.nn-is-front .nn-home-hero__actions {
		order: 6 !important;
	}

	body.nn-is-front .nn-home-hero__proof {
		order: 7 !important;
	}

	body.nn-is-front .nn-home-hero__grid,
	body.nn-is-front .nn-home-hero__copy,
	body.nn-is-front .nn-home-hero__actions,
	body.nn-is-front .nn-home-hero__proof,
	body.nn-is-front .nn-home-hero__search,
	body.nn-is-front .nn-home-head,
	body.nn-is-front .nn-home-query,
	body.nn-is-front .nn-trust-bar {
		margin-left: auto !important;
		margin-right: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		justify-content: center !important;
		align-items: center !important;
	}

	body.nn-is-front .nn-home-hero__actions,
	body.nn-is-front .nn-home-hero__proof,
	body.nn-is-front .nn-trust-bar,
	body.nn-is-front .nn-home-head.is-layout-flex,
	body.nn-is-front .wp-block-buttons {
		display: flex !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		align-items: center !important;
	}

	body.nn-is-front .has-text-align-right,
	body.nn-is-front .has-text-align-left {
		text-align: center !important;
	}

	body.nn-is-front .is-content-justification-right,
	body.nn-is-front .is-content-justification-left,
	body.nn-is-front .is-content-justification-space-between {
		justify-content: center !important;
	}

	body.nn-is-front .nn-home-head__deck,
	body.nn-is-front .nn-home-hero__lede,
	body.nn-is-front .nn-home-content p {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	/* Horizontal recipe cards stack cleanly on small screens */
	body.nn-is-front .nn-home-query .wp-block-post,
	body.nn-is-front .nn-home-query li.wp-block-post {
		flex-direction: column !important;
		text-align: left !important; /* titles read better left-aligned in cards */
	}

	body.nn-is-front .nn-home-query .wp-block-post-featured-image,
	body.nn-is-front .nn-home-query .wp-block-post-featured-image[style] {
		width: 100% !important;
		max-width: 100% !important;
		flex: none !important;
		min-height: 0 !important;
		aspect-ratio: 4 / 5 !important;
		max-height: none !important;
	}
}

/* -------------------------------------------------------------------------
 * Type — calm, readable, not cramped
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-content h1,
body.nn-is-front .nn-home-content h2,
body.nn-is-front .nn-home-content h3,
body.nn-is-front .nn-home-content .wp-block-heading {
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	background: none !important;
	background-clip: unset !important;
	-webkit-background-clip: unset !important;
	max-width: none !important;
	overflow: visible !important;
	font-family: "Source Serif 4", Georgia, serif !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
	line-height: 1.2 !important;
	margin: 0 0 1rem !important;
	text-wrap: balance;
}

body.nn-is-front .nn-home-content p,
body.nn-is-front .nn-home-content li {
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
	font-family: "Source Sans 3", system-ui, sans-serif !important;
	font-size: 1.125rem !important;
	line-height: 1.7 !important;
	max-width: 38rem !important;
	margin: 0 0 1rem !important;
}

body.nn-is-front .nn-home-content a:not(.wp-block-button__link) {
	color: var(--nn-color-primary-600, #3f5949) !important;
	text-decoration: none;
}

body.nn-is-front .nn-home-content a:not(.wp-block-button__link):hover {
	color: #33483b !important;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* -------------------------------------------------------------------------
 * Hero — simple, open, modern
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero,
body.nn-is-front .nn-home-hero--modern {
	padding-top: clamp(3rem, 6vw, 5.5rem) !important;
	padding-bottom: clamp(3.5rem, 7vw, 6rem) !important;
	background: #f6f4f0 !important;
}

body.nn-is-front .nn-home-hero__grid {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: clamp(2.5rem, 5vw, 4rem) !important;
	align-items: center !important;
}

@media (min-width: 960px) {
	body.nn-is-front .nn-home-hero__grid {
		grid-template-columns: 1.05fr 0.95fr !important;
		gap: clamp(2.5rem, 4vw, 4.5rem) !important;
	}
}

body.nn-is-front .nn-home-hero__copy {
	max-width: 34rem !important;
}

/* Brand eyebrow removed from hero — logo already carries the name */
body.nn-is-front .nn-home-hero__eyebrow,
body.nn-is-front p.nn-home-hero__eyebrow,
body.nn-is-front .nn-home-content p.nn-home-hero__eyebrow {
	display: none !important;
}

body.nn-is-front .nn-home-hero__title {
	margin: 0 0 1.25rem !important;
	font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem) !important;
	line-height: 1.12 !important;
	max-width: 100% !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
}

body.nn-is-front .nn-home-hero__lede {
	margin: 0 0 2rem !important;
	font-size: 1.1875rem !important;
	line-height: 1.65 !important;
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
	max-width: 32rem !important;
}

/* Search */
body.nn-is-front .nn-home-hero__search {
	margin: 0 0 1.5rem !important;
	max-width: 28rem !important;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__inside-wrapper {
	border-radius: 999px !important;
	border: 1px solid #e0dad2 !important;
	background: #fff !important;
	min-height: 3.25rem !important;
	box-shadow: 0 6px 20px rgba(44, 40, 37, 0.06) !important;
	overflow: hidden;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__input {
	border: 0 !important;
	padding: 0.9rem 1.2rem !important;
	font-size: 1rem !important;
	color: #2a2926 !important;
	background: transparent !important;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__button {
	background: var(--nn-color-primary-500, #4f6f5c) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-radius: 999px !important;
	box-shadow: var(--nn-shadow-btn) !important;
	border: 0 !important;
	padding: 0 1.25rem !important;
	font-weight: 600 !important;
}

/* Chips — fewer visual edges */
body.nn-is-front .nn-home-chips {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.5rem !important;
	margin: 1rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.nn-is-front .nn-home-chips a {
	display: inline-flex !important;
	align-items: center !important;
	min-height: 2.25rem !important;
	padding: 0.35rem 0.9rem !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid #e7e2db !important;
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
}

body.nn-is-front .nn-home-chips a:hover {
	border-color: var(--nn-color-primary-500, #4f6f5c) !important;
	color: var(--nn-color-primary-600, #3f5949) !important;
	-webkit-text-fill-color: var(--nn-color-primary-600, #3f5949) !important;
}

/*
 * Homepage CTA layout only — faces live in _buttons.css + _premium-pass.css
 * (espresso editorial buttons, not app pills).
 */
body.nn-is-front .nn-home-hero__actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.75rem !important;
	margin: 0 0 1.75rem !important;
	align-items: center !important;
}

body.nn-is-front .nn-home-hero__actions .wp-block-button,
body.nn-is-front #newsletter .wp-block-button,
body.nn-is-front #about .wp-block-button {
	margin: 0 !important;
}

/* Proof line styles moved to _editorial-bold.css (badge treatment). */

/* Room for text inside rounded category cards */
body.nn-is-front .nn-home-cat__body {
	padding: 1.35rem 1.35rem 1.5rem !important;
}

/* Hero image */
body.nn-is-front .nn-home-hero__aside {
	position: relative;
}

body.nn-is-front .nn-home-hero__media {
	margin: 0 !important;
	border-radius: 1.25rem !important;
	overflow: hidden !important;
	aspect-ratio: 4 / 3;
	box-shadow: 0 16px 40px rgba(44, 40, 37, 0.1) !important;
	border: 0 !important;
	background: #e7e2db;
}

body.nn-is-front .nn-home-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/*
 * Hero photo caption — editorial bottom strip (not a floating white sticker).
 * Works with existing homepage HTML classes.
 */
body.nn-is-front .nn-home-hero__aside {
	isolation: isolate;
}

body.nn-is-front .nn-home-hero__float {
	position: absolute !important;
	left: 1rem !important;
	right: auto !important;
	bottom: 1rem !important;
	width: auto !important;
	max-width: min(20rem, calc(100% - 2rem)) !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	border: 0 !important;
	/* No gradient / no glass panel — clean text over the photo */
	background: none !important;
	background-image: none !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	pointer-events: none;
}

body.nn-is-front .nn-home-hero__float a {
	pointer-events: auto;
}

@media (min-width: 640px) {
	body.nn-is-front .nn-home-hero__float {
		left: 1.25rem !important;
		bottom: 1.25rem !important;
	}
}

/* Remove “New this week” (legacy homepage content may still include it) */
body.nn-is-front .nn-home-hero__float-kicker {
	display: none !important;
}

body.nn-is-front .nn-home-hero__float-title,
body.nn-is-front .nn-home-hero__float-title a {
	margin: 0 !important;
	font-family: var(--nn-font-serif, "Source Serif 4", Georgia, serif) !important;
	font-size: clamp(1.1rem, 1rem + 0.4vw, 1.3rem) !important;
	font-weight: 600 !important;
	letter-spacing: -0.015em !important;
	line-height: 1.25 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	max-width: none !important;
	text-decoration: none !important;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45) !important;
}

body.nn-is-front .nn-home-hero__float-title a {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	border-bottom: 1px solid transparent !important;
	transition: border-color 0.2s ease, opacity 0.2s ease;
}

body.nn-is-front .nn-home-hero__float-title a:hover {
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-bottom-color: rgba(255, 255, 255, 0.65) !important;
	opacity: 0.95;
}

body.nn-is-front .nn-home-hero__float-arrow {
	font-size: 1.05em;
	line-height: 1;
	opacity: 0.9;
	transition: transform 0.2s ease;
}

body.nn-is-front .nn-home-hero__float-title a:hover .nn-home-hero__float-arrow {
	transform: translateX(3px);
}

/* -------------------------------------------------------------------------
 * Trust bar — warm stone band (matches homepage canvas, not a white slab)
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-section--tight,
body.nn-is-front .nn-home-section--tight.nn-home-section--surface {
	padding-block: 1.35rem !important;
	/* Soft stone wash between hero cream and next section */
	background: #efece6 !important;
	border-block: 1px solid rgba(44, 40, 37, 0.08) !important;
	box-shadow: none !important;
}

body.nn-is-front .nn-trust-bar {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 0.65rem 0.35rem !important;
	margin: 0 auto !important;
	padding: 0.15rem 0.5rem !important;
	max-width: 52rem;
}

/* Trust bar card treatment lives in _editorial-bold.css */

/* Brittany band — Love & Lemons / HBH style split */
body.nn-is-front .nn-home-brittany,
.nn-home-brittany {
	max-width: 68rem;
	margin: 0 auto;
	padding: 0.5rem 0.75rem;
}

body.nn-is-front .nn-home-brittany__split,
.nn-home-brittany__split {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: clamp(1.25rem, 3vw, 2.75rem);
	align-items: center;
	padding: clamp(1rem, 2.5vw, 1.75rem);
	background: #fffdf9;
	border: 1px solid #eadfd3;
	border-radius: 22px;
	box-shadow: 0 18px 40px rgba(44, 40, 37, 0.07);
}

body.nn-is-front .nn-home-brittany__media,
.nn-home-brittany__media {
	margin: 0;
	overflow: hidden;
	border-radius: 16px;
	aspect-ratio: 4 / 5;
	background: #efece6;
}

body.nn-is-front .nn-home-brittany__media img,
.nn-home-brittany__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.nn-is-front .nn-home-brittany__body,
.nn-home-brittany__body {
	padding: 0.35rem 0.5rem 0.35rem 0;
	text-align: left;
}

body.nn-is-front .nn-home-brittany__eyebrow,
.nn-home-brittany__eyebrow {
	margin: 0 0 0.55rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #4f6f5c;
}

body.nn-is-front .nn-home-brittany__title,
.nn-home-brittany__title {
	margin: 0 0 0.85rem;
	font-family: "Source Serif 4", Georgia, serif !important;
	font-size: clamp(1.85rem, 1.4rem + 1.6vw, 2.6rem) !important;
	font-weight: 700 !important;
	letter-spacing: -0.03em !important;
	line-height: 1.12 !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-brittany__text,
.nn-home-brittany__text {
	margin: 0 0 1.25rem;
	max-width: 34rem;
	font-size: 1.08rem;
	line-height: 1.65;
	color: #4a453f;
}

body.nn-is-front .nn-home-brittany__links,
.nn-home-brittany__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1.15rem;
	margin: 0;
}

body.nn-is-front .nn-home-brittany__btn,
.nn-home-brittany__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6rem;
	padding: 0.55rem 1.2rem;
	border-radius: 999px;
	background: #4f6f5c;
	color: #fff !important;
	font-size: 0.9rem;
	font-weight: 700;
	text-decoration: none !important;
	box-shadow: 0 8px 18px rgba(168, 90, 56, 0.24);
}

body.nn-is-front .nn-home-brittany__btn:hover,
.nn-home-brittany__btn:hover {
	background: #934c2f;
}

body.nn-is-front .nn-home-brittany__link,
.nn-home-brittany__link {
	color: #5c564e;
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(168, 90, 56, 0.35);
}

body.nn-is-front .nn-home-brittany__link:hover,
.nn-home-brittany__link:hover {
	color: #4f6f5c;
	border-bottom-color: #4f6f5c;
}

@media (max-width: 859px) {
	body.nn-is-front .nn-home-brittany__split,
	.nn-home-brittany__split {
		grid-template-columns: 1fr;
		gap: 1.15rem;
		padding: 1rem;
	}

	body.nn-is-front .nn-home-brittany__media,
	.nn-home-brittany__media {
		aspect-ratio: 16 / 11;
		max-height: 16rem;
	}

	body.nn-is-front .nn-home-brittany__body,
	.nn-home-brittany__body {
		padding: 0.15rem 0.15rem 0.35rem;
	}
}

/* -------------------------------------------------------------------------
 * Section headers
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-head {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	gap: 1rem 1.5rem !important;
	margin: 0 0 2rem !important;
	padding: 0 !important;
}

body.nn-is-front .nn-home-head__title {
	margin: 0 0 0.5rem !important;
	font-size: clamp(1.65rem, 1.4rem + 0.9vw, 2.15rem) !important;
	line-height: 1.2 !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
}

body.nn-is-front .nn-home-head__deck {
	margin: 0 !important;
	font-size: 1.0625rem !important;
	line-height: 1.6 !important;
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
	max-width: 32rem !important;
}

body.nn-is-front .nn-home-head__link {
	font-size: 0.9375rem !important;
	font-weight: 600 !important;
	color: var(--nn-color-primary-600, #3f5949) !important;
	border-bottom: 1px solid rgba(148, 63, 31, 0.3);
	padding-bottom: 0.1rem;
	white-space: nowrap;
}

/* -------------------------------------------------------------------------
 * Categories — 4-up, airy
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-cats {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1.25rem !important;
}

@media (min-width: 768px) {
	body.nn-is-front .nn-home-cats {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 1.5rem !important;
	}
}

body.nn-is-front .nn-home-cat {
	display: flex !important;
	flex-direction: column !important;
	background: #fff !important;
	border: 1px solid #eee9e2 !important;
	border-radius: 1rem !important;
	overflow: hidden !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	height: 100%;
}

body.nn-is-front .nn-home-cat:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(44, 40, 37, 0.08) !important;
}

body.nn-is-front .nn-home-cat__media {
	aspect-ratio: 1 !important;
	background: #f0ebe4 !important;
	overflow: hidden !important;
}

body.nn-is-front .nn-home-cat__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

body.nn-is-front .nn-home-cat__body {
	padding: 1rem 0.85rem 1.15rem !important;
	text-align: center !important;
}

body.nn-is-front .nn-home-cat__title {
	display: block !important;
	font-family: "Source Serif 4", Georgia, serif !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	margin: 0 !important;
}

/* -------------------------------------------------------------------------
 * Homepage recipe/blog grids — photography-first magazine mosaic
 * Inspired by Half Baked Harvest / Love & Lemons: tall food photos first.
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-query,
body.nn-is-front .nn-home-query.nn-home-query--3,
body.nn-is-front .nn-home-query.nn-home-query--list,
body.nn-is-front .nn-home-query.nn-home-query--magazine {
	max-width: 72rem !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.nn-is-front .nn-home-query .wp-block-post-template,
body.nn-is-front .nn-home-query ul.wp-block-post-template,
body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1.15rem 1.1rem !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	flex-direction: unset !important;
	flex-wrap: unset !important;
	align-items: stretch !important;
}

@media (min-width: 900px) {
	body.nn-is-front .nn-home-query .wp-block-post-template,
	body.nn-is-front .nn-home-query ul.wp-block-post-template,
	body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 1.5rem 1.35rem !important;
	}

	body.nn-is-front .nn-home-query--magazine .wp-block-post.nn-home-query__feature,
	body.nn-is-front .nn-home-query--magazine li.wp-block-post.nn-home-query__feature {
		grid-column: span 2 !important;
	}
}

body.nn-is-front .nn-home-query .wp-block-post,
body.nn-is-front .nn-home-query li.wp-block-post,
body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container > li,
body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container.columns-2 > li,
body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container.columns-3 > li,
body.nn-is-front .nn-home-query .wp-block-post-template.is-flex-container.columns-4 > li {
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	flex: none !important;
	box-sizing: border-box !important;
	float: none !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	overflow: visible !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
	transition: transform 0.25s ease;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
}

body.nn-is-front .nn-home-query .wp-block-post:hover,
body.nn-is-front .nn-home-query li.wp-block-post:hover {
	transform: translateY(-3px);
}

body.nn-is-front .nn-home-query .wp-block-post-featured-image,
body.nn-is-front .nn-home-query .wp-block-post-featured-image[style] {
	width: 100% !important;
	max-width: 100% !important;
	flex: none !important;
	margin: 0 0 0.85rem !important;
	overflow: hidden !important;
	border-radius: 1rem !important;
	aspect-ratio: 4 / 5 !important;
	max-height: none !important;
	height: auto !important;
	min-height: 0 !important;
	background: #efece6 !important;
	box-shadow: 0 10px 28px rgba(44, 40, 37, 0.08) !important;
}

body.nn-is-front .nn-home-query .wp-block-post-featured-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	transition: transform 0.35s ease;
}

body.nn-is-front .nn-home-query .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

body.nn-is-front .nn-home-query .wp-block-post-title,
body.nn-is-front .nn-home-query h2.wp-block-post-title,
body.nn-is-front .nn-home-query h3.wp-block-post-title {
	margin: 0 !important;
	padding: 0 0.15rem !important;
	font-family: "Source Serif 4", Georgia, serif !important;
	font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.28rem) !important;
	font-weight: 700 !important;
	line-height: 1.28 !important;
	letter-spacing: -0.02em !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-query .wp-block-post-title a {
	color: inherit !important;
	text-decoration: none !important;
}

body.nn-is-front .nn-home-query--magazine .wp-block-post.nn-home-query__feature .wp-block-post-title,
body.nn-is-front .nn-home-query--magazine li.wp-block-post.nn-home-query__feature .wp-block-post-title {
	font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.65rem) !important;
}

/* Section breathing room — less “stacked widgets”, more magazine */
body.nn-is-front .nn-home-section {
	padding-block: clamp(2rem, 1.4rem + 2vw, 3.25rem) !important;
}

body.nn-is-front .nn-home-head__title {
	font-size: clamp(1.65rem, 1.3rem + 1.2vw, 2.35rem) !important;
}

body.nn-is-front .nn-home-head__deck {
	max-width: 36rem;
	color: #5c564e !important;
	font-size: 1.02rem !important;
	line-height: 1.55 !important;
}

/* Legacy horizontal-card constraints removed — magazine portrait grid owns homepage cards. */

body.nn-is-front .nn-home-query .wp-block-post-featured-image a {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
}

body.nn-is-front .nn-home-query .wp-block-post-featured-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}

body.nn-is-front .nn-home-query .wp-block-post-title,
body.nn-is-front .nn-home-query h2.wp-block-post-title,
body.nn-is-front .nn-home-query h3.wp-block-post-title {
	margin: 0 !important;
	padding: 0 0.1rem !important;
	font-family: "Source Serif 4", Georgia, serif !important;
	font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.28rem) !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	hyphens: manual !important;
	white-space: normal !important;
	display: block !important;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden !important;
}

body.nn-is-front .nn-home-query .wp-block-post-title a {
	color: inherit !important;
	-webkit-text-fill-color: inherit !important;
	text-decoration: none !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	white-space: normal !important;
}

@media (min-width: 640px) {
	/* Horizontal cards: don't clamp with -webkit-box; allow natural 2–3 lines */
	body.nn-is-front .nn-home-query .wp-block-post-title,
	body.nn-is-front .nn-home-query h2.wp-block-post-title {
		overflow: visible !important;
		-webkit-line-clamp: unset;
		line-clamp: unset;
		display: flex !important;
	}
}

/* -------------------------------------------------------------------------
 * Newsletter — soft sage, open layout
 * ---------------------------------------------------------------------- */

body.nn-is-front #newsletter,
body.nn-is-front .nn-home-section--sage {
	background: var(--nn-color-bg-sage, #f0eee8) !important;
	text-align: center;
}

body.nn-is-front #newsletter .nn-cta,
body.nn-is-front #newsletter .nn-cta--sage {
	max-width: 36rem !important;
	margin: 0 auto !important;
	padding: 0 !important;
	background: transparent !important;
}

body.nn-is-front #newsletter h2,
body.nn-is-front #newsletter .nn-cta__title {
	margin: 0 0 1rem !important;
	font-size: clamp(1.75rem, 1.5rem + 1vw, 2.25rem) !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
}

body.nn-is-front #newsletter p,
body.nn-is-front #newsletter li {
	margin-left: auto !important;
	margin-right: auto !important;
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
}

body.nn-is-front #newsletter ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 1.75rem !important;
	display: grid !important;
	gap: 0.5rem !important;
}

body.nn-is-front #newsletter li {
	max-width: none !important;
	margin: 0 !important;
	font-size: 1rem !important;
}

body.nn-is-front #newsletter .wp-block-button__link {
	min-width: 14rem !important;
}

/* Hide helper editor notes on front */
body.nn-is-front #newsletter .has-small-font-size {
	display: none !important;
}

/* -------------------------------------------------------------------------
 * About — centered photo + story (overrides any left/split leftovers)
 * ---------------------------------------------------------------------- */

body.nn-is-front #about,
body.nn-is-front .nn-home-about,
body.nn-is-front .nn-home-about--centered,
body.nn-is-front .nn-home-about--split {
	background: #f6f4f0 !important;
	text-align: center !important;
	max-width: none !important;
	/* WP 6.x constrained layout defaults to start */
	justify-items: center !important;
}

body.nn-is-front #about.is-layout-constrained,
body.nn-is-front #about .is-layout-constrained,
body.nn-is-front #about .is-layout-flow {
	justify-items: center !important;
	justify-content: center !important;
	align-items: center !important;
	text-align: center !important;
}

body.nn-is-front #about .nn-home-about__inner,
body.nn-is-front #about .nn-home-about__copy,
body.nn-is-front #about .nn-home-about__grid {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	width: 100% !important;
	max-width: 40rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
	gap: 0 !important;
	/* Kill WP constrained-layout left-start + global padding asymmetry */
	padding-left: 0 !important;
	padding-right: 0 !important;
	float: none !important;
}

body.nn-is-front #about .nn-home-about__media,
body.nn-is-front #about .nn-home-about__media-wrap,
body.nn-is-front #about figure.nn-home-about__media {
	margin: 0 auto 1.35rem !important;
	width: 100% !important;
	max-width: 36rem !important;
	border-radius: 8px !important;
	overflow: hidden !important;
	float: none !important;
}

body.nn-is-front #about .nn-home-about__media img,
body.nn-is-front #about figure.nn-home-about__media img {
	display: block !important;
	width: 100% !important;
	aspect-ratio: 16 / 10 !important;
	object-fit: cover !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.nn-is-front #about .nn-home-about__kicker,
body.nn-is-front #about p.nn-home-about__kicker,
body.nn-is-front #about .nn-home-about__title,
body.nn-is-front #about h2.nn-home-about__title,
body.nn-is-front #about h2.nn-home-head__title,
body.nn-is-front #about .wp-block-heading,
body.nn-is-front #about h2,
body.nn-is-front #about .nn-home-about__text,
body.nn-is-front #about p.nn-home-about__text,
body.nn-is-front #about p {
	text-align: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
}

body.nn-is-front #about .nn-home-about__kicker,
body.nn-is-front #about p.nn-home-about__kicker {
	margin-top: 0 !important;
	margin-bottom: 0.5rem !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #6b645c !important;
	width: 100% !important;
}

body.nn-is-front #about .nn-home-about__title,
body.nn-is-front #about h2.nn-home-about__title,
body.nn-is-front #about h2.nn-home-head__title,
body.nn-is-front #about .wp-block-heading,
body.nn-is-front #about h2 {
	max-width: 22rem !important;
	width: 100% !important;
	margin-top: 0 !important;
	margin-bottom: 0.85rem !important;
	font-weight: 600 !important;
}

body.nn-is-front #about .nn-home-about__text,
body.nn-is-front #about p.nn-home-about__text {
	max-width: 32rem !important;
	width: 100% !important;
	margin-top: 0 !important;
	margin-bottom: 1.35rem !important;
	font-size: 1.0625rem !important;
	line-height: 1.65 !important;
	color: #6b6760 !important;
}

body.nn-is-front #about .wp-block-buttons,
body.nn-is-front #about .nn-home-about__actions {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* -------------------------------------------------------------------------
 * Blog — one cohesive feature link (image + copy + text CTA)
 * ---------------------------------------------------------------------- */

body.nn-is-front section#blog {
	display: block !important;
}

body.nn-is-front a.nn-home-blog,
body.nn-is-front .nn-home-blog {
	display: grid !important;
	grid-template-columns: 1fr !important;
	gap: 0 !important;
	align-items: stretch !important;
	max-width: 1100px !important;
	margin: 0 auto !important;
	padding: 0 !important;
	text-align: left !important;
	text-decoration: none !important;
	color: inherit !important;
	background: #fff !important;
	border: 1px solid rgba(44, 40, 37, 0.1) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	box-shadow: 0 8px 24px rgba(44, 40, 37, 0.05) !important;
}

@media (min-width: 768px) {
	body.nn-is-front a.nn-home-blog,
	body.nn-is-front .nn-home-blog {
		grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
		min-height: 15.5rem !important;
	}
}

body.nn-is-front .nn-home-blog__media {
	margin: 0 !important;
	padding: 0 !important;
	min-height: 11.5rem !important;
	position: relative !important;
	background: #efece6 !important;
}

body.nn-is-front .nn-home-blog__media img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 11.5rem !important;
	max-height: none !important;
	object-fit: cover !important;
}

@media (min-width: 768px) {
	body.nn-is-front .nn-home-blog__media {
		min-height: 100% !important;
	}

	body.nn-is-front .nn-home-blog__media img {
		position: absolute !important;
		inset: 0 !important;
		min-height: 100% !important;
	}
}

body.nn-is-front .nn-home-blog__copy {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	padding: clamp(1.35rem, 3vw, 2.15rem) clamp(1.25rem, 3vw, 2.1rem) !important;
	text-align: left !important;
	background: #fff !important;
	max-width: none !important;
}

body.nn-is-front .nn-home-blog__kicker {
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	color: #6b645c !important;
	margin: 0 0 0.4rem !important;
	text-align: left !important;
}

body.nn-is-front .nn-home-blog__title {
	margin: 0 0 0.55rem !important;
	font-size: clamp(1.4rem, 2.4vw, 1.85rem) !important;
	line-height: 1.2 !important;
	text-align: left !important;
	color: #2a2926 !important;
}

body.nn-is-front .nn-home-blog__text {
	margin: 0 0 1.1rem !important;
	max-width: 28rem !important;
	color: #6b6760 !important;
	text-align: left !important;
	font-size: 1.0625rem !important;
}

body.nn-is-front .nn-home-blog__cta {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: #4f6f5c !important;
	-webkit-text-fill-color: #4f6f5c !important;
}

/* Keep blog feature left-aligned even when mobile homepage centers sections */
@media (max-width: 782px) {
	body.nn-is-front #blog,
	body.nn-is-front #blog .nn-home-blog,
	body.nn-is-front #blog .nn-home-blog__copy,
	body.nn-is-front #blog .nn-home-blog__kicker,
	body.nn-is-front #blog .nn-home-blog__title,
	body.nn-is-front #blog .nn-home-blog__text {
		text-align: left !important;
	}
}

/* -------------------------------------------------------------------------
 * Newsletter — light visual card
 * ---------------------------------------------------------------------- */

body.nn-is-front #newsletter .nn-home-newsletter__card,
body.nn-is-front .nn-home-newsletter__card {
	text-align: center !important;
	max-width: 36rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.25rem, 3vw, 2rem) !important;
	background: rgba(255, 255, 255, 0.55) !important;
	border: 1px solid rgba(44, 40, 37, 0.1) !important;
	border-radius: 8px !important;
}

body.nn-is-front .nn-home-newsletter__icon {
	display: flex !important;
	justify-content: center !important;
	margin: 0 0 0.85rem !important;
	color: #7a756c !important;
}

body.nn-is-front .nn-home-newsletter__kicker {
	margin: 0 0 0.45rem !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #6b645c !important;
}

/* -------------------------------------------------------------------------
 * Hide leftover dense modules if still present in old content
 * ---------------------------------------------------------------------- */

body.nn-is-front #ad-slot,
body.nn-is-front .nn-home-ad,
body.nn-is-front #seasonal,
body.nn-is-front #collections,
body.nn-is-front #family,
body.nn-is-front #popular,
body.nn-is-front #guides,
body.nn-is-front #next,
body.nn-is-front .nn-home-cta-row {
	/* Prefer removal via content refresh; soft-hide as safety net */
}

/* If anchors match old dense sections — hide them for calm UX.
 * Keep section#blog (single Blog entry) visible. */
body.nn-is-front section#seasonal,
body.nn-is-front section#collections,
body.nn-is-front section#family-favorites,
body.nn-is-front section#most-popular,
body.nn-is-front section#guides,
body.nn-is-front section#next,
body.nn-is-front section#editors-picks,
body.nn-is-front section#ad {
	display: none !important;
}

body.nn-is-front section#blog,
body.nn-is-front .nn-home-blog {
	display: block !important;
}

/* Components */
/* ===== components/_buttons.css ===== */
/**
 * Editorial button system — Nest & Narrow
 *
 * Magazine CTAs: quiet uppercase tracking, espresso primary,
 * terracotta on hover. No candy pills, no heavy app shadows.
 */

/* -------------------------------------------------------------------------
 * Core .nn-btn
 * ---------------------------------------------------------------------- */

.nn-btn {
	--nn-btn-bg: #2a2926;
	--nn-btn-fg: #f6f4f0;
	--nn-btn-border: #2a2926;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 3rem;
	padding: 0.9rem 1.75rem;
	border: 1px solid var(--nn-btn-border);
	border-radius: 2px;
	background: var(--nn-btn-bg);
	background-image: none;
	color: var(--nn-btn-fg);
	font-family: var(--nn-font-sans, "Source Sans 3", system-ui, sans-serif);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: none;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease,
		transform 0.2s ease;
}

.nn-btn:hover {
	--nn-btn-bg: #4f6f5c;
	--nn-btn-border: #4f6f5c;
	--nn-btn-fg: #fff;
	background: var(--nn-btn-bg);
	background-image: none;
	color: var(--nn-btn-fg);
	text-decoration: none;
	box-shadow: none;
	transform: none;
}

.nn-btn:active {
	--nn-btn-bg: #33483b;
	--nn-btn-border: #33483b;
	transform: translateY(1px);
}

.nn-btn:focus-visible {
	outline: 2px solid #4f6f5c;
	outline-offset: 3px;
	box-shadow: none;
}

.nn-btn:disabled,
.nn-btn[aria-disabled="true"],
.nn-btn.is-disabled {
	background: #e4e0d8;
	border-color: #e4e0d8;
	color: #8a8279;
	cursor: not-allowed;
	pointer-events: none;
	transform: none;
}

/* Outline / secondary */
.nn-btn--outline,
.nn-btn--secondary {
	--nn-btn-bg: transparent;
	--nn-btn-fg: #2a2926;
	--nn-btn-border: #2a2926;
	background: transparent;
	background-image: none;
	box-shadow: none;
}

.nn-btn--outline:hover,
.nn-btn--secondary:hover {
	--nn-btn-bg: #2a2926;
	--nn-btn-fg: #f6f4f0;
	--nn-btn-border: #2a2926;
	background: #2a2926;
	background-image: none;
	color: #f6f4f0;
}

/* Soft — rare use */
.nn-btn--soft {
	--nn-btn-bg: #e8ede9;
	--nn-btn-fg: #33483b;
	--nn-btn-border: #e8ede9;
	background: #e8ede9;
	box-shadow: none;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 0.9375rem;
}

.nn-btn--soft:hover {
	--nn-btn-bg: #e8cfc0;
	--nn-btn-fg: #33483b;
	--nn-btn-border: #e8cfc0;
}

/* Text link style */
.nn-btn--text {
	min-height: auto;
	padding: 0.35rem 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	background-image: none;
	color: #2a2926;
	box-shadow: none;
	text-transform: none;
	letter-spacing: 0.02em;
	font-size: 0.9375rem;
	font-weight: 600;
	border-bottom: 1px solid #cfc7bc;
}

.nn-btn--text:hover {
	background: transparent;
	color: #4f6f5c;
	border-bottom-color: #4f6f5c;
	transform: none;
}

/* Semantic aliases */
.nn-btn--recipe,
.nn-btn--newsletter,
.nn-btn--hero-primary {
	/* inherit primary editorial face */
}

/*
 * Solid dark CTAs (Jump to recipe, newsletter, etc.) — always light text.
 * Wins over .entry-content a { color: terracotta } and any Kadence link tint.
 */
body.nn-theme a.nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft):not(.nn-btn--pin):not(.nn-btn--print),
body.nn-theme .nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft):not(.nn-btn--pin):not(.nn-btn--print),
body.nn-theme a.nn-btn--recipe,
body.nn-theme .nn-btn--recipe,
body.nn-theme a.nn-btn--newsletter,
body.nn-theme .nn-btn--newsletter,
body.nn-theme a.nn-btn--hero-primary,
body.nn-theme .nn-btn--hero-primary,
body.nn-theme .nn-recipe-actions a.nn-btn--recipe,
body.nn-theme .entry-content a.nn-btn--recipe,
body.nn-theme .entry-content a.nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft) {
	background: #2a2926 !important;
	background-color: #2a2926 !important;
	background-image: none !important;
	border-color: #2a2926 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: none !important;
}

body.nn-theme a.nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft):not(.nn-btn--pin):not(.nn-btn--print):hover,
body.nn-theme .nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft):not(.nn-btn--pin):not(.nn-btn--print):hover,
body.nn-theme a.nn-btn--recipe:hover,
body.nn-theme .nn-btn--recipe:hover,
body.nn-theme a.nn-btn--newsletter:hover,
body.nn-theme .nn-btn--newsletter:hover,
body.nn-theme .entry-content a.nn-btn--recipe:hover,
body.nn-theme .entry-content a.nn-btn:not(.nn-btn--outline):not(.nn-btn--secondary):not(.nn-btn--text):not(.nn-btn--soft):hover {
	background: #4f6f5c !important;
	background-color: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: none !important;
}

.nn-btn--pin,
.nn-btn--print {
	/* prefer outline in markup */
}

/* Sizes */
.nn-btn--sm {
	min-height: 2.5rem;
	padding: 0.65rem 1.25rem;
	font-size: 0.75rem;
	letter-spacing: 0.09em;
}

.nn-btn--lg {
	min-height: 3.25rem;
	padding: 1rem 2rem;
	font-size: 0.875rem;
}

.nn-btn--block {
	display: flex;
	width: 100%;
}

.nn-btn__icon {
	display: inline-flex;
	flex-shrink: 0;
	width: 1.1rem;
	height: 1.1rem;
}

.nn-btn__icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
}

/* -------------------------------------------------------------------------
 * Global WP / Kadence buttons — match editorial system
 * ---------------------------------------------------------------------- */

body.nn-theme .wp-block-button__link,
body.nn-theme .button:not(.components-button):not(.nn-icon-btn):not(.nn-menu-toggle):not(.nn-mobile-nav__submenu-toggle),
body.nn-theme button[type="submit"],
body.nn-theme input[type="submit"],
body.nn-theme .kb-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 3rem !important;
	padding: 0.9rem 1.75rem !important;
	border-radius: 2px !important;
	font-family: var(--nn-font-sans, "Source Sans 3", system-ui, sans-serif) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition:
		background-color 0.25s ease,
		border-color 0.25s ease,
		color 0.25s ease !important;
}

body.nn-theme .wp-block-button:not(.is-style-outline) .wp-block-button__link,
body.nn-theme .button:not(.components-button):not(.nn-icon-btn):not(.nn-btn--outline):not(.nn-menu-toggle):not(.nn-mobile-nav__submenu-toggle),
body.nn-theme button[type="submit"],
body.nn-theme input[type="submit"] {
	background: #2a2926 !important;
	background-image: none !important;
	background-color: #2a2926 !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	border: 1px solid #2a2926 !important;
	box-shadow: none !important;
}

body.nn-theme .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
body.nn-theme .button:not(.components-button):not(.nn-icon-btn):hover,
body.nn-theme button[type="submit"]:hover,
body.nn-theme input[type="submit"]:hover {
	background: #4f6f5c !important;
	background-image: none !important;
	background-color: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

/*
 * Outline style sitewide = same as primary espresso fill.
 * Homepage previously mixed outline (white) with solid (black) so
 * "Get weekly ideas" never matched "Join the newsletter".
 */
body.nn-theme .wp-block-button.is-style-outline .wp-block-button__link {
	background: #2a2926 !important;
	background-image: none !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	border: 1px solid #2a2926 !important;
	box-shadow: none !important;
}

body.nn-theme .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Homepage CTAs — one identical face for every button */
body.nn-is-front .nn-home-hero__actions,
body.nn-is-front #newsletter .wp-block-buttons,
body.nn-is-front #about .wp-block-buttons,
body.nn-is-front .nn-cta .wp-block-buttons {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.75rem !important;
	align-items: center !important;
}

body.nn-is-front #newsletter .wp-block-buttons,
body.nn-is-front #about .wp-block-buttons,
body.nn-is-front .nn-cta .wp-block-buttons {
	justify-content: center !important;
}

body.nn-is-front .nn-home-hero__actions .wp-block-button,
body.nn-is-front #newsletter .wp-block-button,
body.nn-is-front #about .wp-block-button {
	margin: 0 !important;
}

body.nn-is-front .nn-home-hero__actions .wp-block-button__link,
body.nn-is-front .nn-home-hero__actions .is-style-outline .wp-block-button__link,
body.nn-is-front .nn-home-hero__actions .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front #newsletter .wp-block-button__link,
body.nn-is-front #newsletter .is-style-outline .wp-block-button__link,
body.nn-is-front #about .wp-block-button__link,
body.nn-is-front .nn-cta .wp-block-button__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 3.125rem !important;
	padding: 0.95rem 1.9rem !important;
	border-radius: 2px !important;
	border: 1px solid #2a2926 !important;
	background: #2a2926 !important;
	background-image: none !important;
	background-color: #2a2926 !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	box-shadow: none !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}

body.nn-is-front .nn-home-hero__actions .wp-block-button__link:hover,
body.nn-is-front .nn-home-hero__actions .is-style-outline .wp-block-button__link:hover,
body.nn-is-front .nn-home-hero__actions .wp-block-button.is-style-outline .wp-block-button__link:hover,
body.nn-is-front #newsletter .wp-block-button__link:hover,
body.nn-is-front #newsletter .is-style-outline .wp-block-button__link:hover,
body.nn-is-front #about .wp-block-button__link:hover,
body.nn-is-front .nn-cta .wp-block-button__link:hover {
	background: #4f6f5c !important;
	background-color: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

body.nn-is-front #newsletter .wp-block-button__link {
	min-width: 14rem !important;
}

/* ===== components/_cards.css ===== */
/**
 * Card components: recipe, category, collection, author, newsletter, affiliate, related.
 */

.nn-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	overflow: hidden;
	transition:
		box-shadow var(--nn-duration-normal) var(--nn-easing-standard),
		border-color var(--nn-duration-normal) var(--nn-easing-standard);
}

.nn-card:hover,
.nn-card:focus-within {
	box-shadow: var(--nn-shadow-md);
	border-color: var(--nn-color-border-strong);
}

.nn-card__media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--nn-color-neutral-100);
}

.nn-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--nn-duration-normal) var(--nn-easing-standard);
}

@media (hover: hover) and (pointer: fine) {
	.nn-card:hover .nn-card__media img {
		transform: scale(1.03);
	}
}

.nn-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-1);
	padding: var(--nn-space-2);
	flex: 1;
}

@media (min-width: 1024px) {
	.nn-card__body {
		padding: var(--nn-space-3);
	}
}

.nn-card__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-semibold);
	line-height: var(--nn-lh-snug);
	color: var(--nn-color-text-primary);
}

@media (min-width: 1024px) {
	.nn-card__title {
		font-size: var(--nn-fs-lg);
	}
}

.nn-card__title a {
	color: inherit;
	text-decoration: none;
}

.nn-card__title a:hover {
	color: var(--nn-color-text-link);
}

/* 2-line clamp */
.nn-card__title--clamp {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

/* Blog hub cards: bold title pinned to the TOP of the hero image */
.nn-card--title-overlay .nn-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	/* Establish a real height box for absolute children (iOS Safari). */
	isolation: isolate;
}

.nn-card--title-overlay .nn-card__media-link {
	display: block;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	color: inherit;
	text-decoration: none;
	z-index: 0;
}

.nn-card--title-overlay .nn-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.nn-card--title-overlay .nn-card__media-scrim {
	position: absolute;
	inset: 0 0 auto 0;
	height: 48%;
	background: linear-gradient(
		180deg,
		rgba(20, 16, 12, 0.78) 0%,
		rgba(20, 16, 12, 0.35) 55%,
		rgba(20, 16, 12, 0) 100%
	);
	pointer-events: none;
	z-index: 1;
}

.nn-card--title-overlay .nn-card__media-title {
	position: absolute;
	top: 0.85rem;
	left: 0.9rem;
	right: 0.9rem;
	z-index: 2;
	margin: 0;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.28rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -0.015em;
	color: #fff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	/* Avoid mobile engines collapsing clamped boxes to 0 height. */
	max-height: 4.2em;
	pointer-events: none;
}

.nn-card--title-overlay:hover .nn-card__media-title {
	color: #fff !important;
}

/* Mobile: always show a solid title under the image (overlay is unreliable on some phones). */
.nn-card--title-overlay .nn-card__body--mobile-title {
	display: none;
}

@media (max-width: 767px) {
	.nn-card--title-overlay .nn-card__body--mobile-title {
		display: flex;
		padding-top: 0.75rem;
		padding-bottom: 0.85rem;
	}

	.nn-card--title-overlay .nn-card__body--mobile-title .nn-card__title {
		font-size: 1.05rem;
		line-height: 1.3;
		color: var(--nn-color-text-primary, #2a2926);
	}

	/* Keep overlay text as a secondary layer when it paints; body title is the guarantee. */
	.nn-card--title-overlay .nn-card__media-title {
		font-size: clamp(0.95rem, 2.8vw, 1.1rem);
		top: 0.55rem;
		left: 0.65rem;
		right: 0.65rem;
		-webkit-line-clamp: 2;
		max-height: 2.8em;
	}

	.nn-card--title-overlay .nn-card__media-scrim {
		height: 55%;
	}
}

.nn-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nn-space-1) var(--nn-space-1-5);
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

.nn-card__meta li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.nn-card__chip {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.55rem;
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-primary-100);
	color: var(--nn-color-primary-700);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.3;
	text-decoration: none;
	margin: 0;
}

.nn-card__chip a {
	color: inherit;
	text-decoration: none;
}

.nn-card__chip a:hover {
	text-decoration: underline;
}

.nn-card__chip--sage {
	background: var(--nn-color-secondary-100);
	color: var(--nn-color-secondary-600);
}

.nn-card__chip--honey {
	background: var(--nn-color-accent-100);
	color: var(--nn-color-neutral-900);
}

/* Category — 1:1 */
.nn-card--category .nn-card__media {
	aspect-ratio: 1 / 1;
}

/* Collection — 16:9 */
.nn-card--collection .nn-card__media {
	aspect-ratio: 16 / 9;
}

/* Featured — larger title */
.nn-card--featured .nn-card__media {
	aspect-ratio: 16 / 9;
}

.nn-card--featured .nn-card__title {
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
}

/* Author */
.nn-card--author {
	flex-direction: row;
	align-items: flex-start;
	gap: var(--nn-space-2);
	padding: var(--nn-space-3);
}

.nn-card--author .nn-card__media,
.nn-author-callout__media {
	flex: 0 0 4.5rem;
	width: 4.5rem;
	height: 4.5rem;
	min-width: 4.5rem;
	min-height: 4.5rem;
	aspect-ratio: 1 / 1 !important;
	border-radius: var(--nn-radius-full);
	overflow: hidden;
	background: var(--nn-color-neutral-100, #f1eee8);
	/* Override generic card 4:3 media */
	align-self: flex-start;
}

.nn-card--author .nn-card__media img,
.nn-author-callout__media img,
.nn-author-avatar {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center !important;
	border-radius: 50%;
	/* Kill lazy-load blank SVG flash */
	background: var(--nn-color-neutral-100, #f1eee8);
}

.nn-card--author .nn-card__body {
	padding: 0;
	min-width: 0;
}

@media (max-width: 639px) {
	.nn-card--author {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.nn-card--author .nn-card__media,
	.nn-author-callout__media {
		align-self: center;
	}
}

/* Newsletter */
.nn-card--newsletter {
	padding: var(--nn-space-4);
	background: var(--nn-color-primary-50);
	border-color: var(--nn-color-primary-100);
}

.nn-card--newsletter .nn-card__body {
	padding: 0;
	gap: var(--nn-space-2);
}

/* Affiliate */
.nn-card--affiliate .nn-card__media {
	aspect-ratio: 1 / 1;
	background: var(--nn-color-neutral-50);
}

.nn-card--affiliate .nn-card__media img {
	object-fit: contain;
	padding: var(--nn-space-2);
}

.nn-card__disclaimer {
	margin: 0;
	font-size: var(--nn-fs-xs);
	color: var(--nn-color-text-muted);
}

/* ===== components/_forms.css ===== */
/**
 * Form controls: search, newsletter, contact, filters, validation.
 */

.nn-form {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-2);
}

.nn-form__row {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-0-5);
}

.nn-form__label {
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-primary);
}

.nn-form__hint {
	margin: 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

.nn-form__error {
	margin: 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-error-500, #a63d32);
}

.nn-input,
.nn-form input[type="text"],
.nn-form input[type="email"],
.nn-form input[type="search"],
.nn-form textarea,
.nn-form select {
	width: 100%;
	min-height: var(--nn-control-height, 2.75rem);
	padding: 0.55rem 0.85rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-control-radius, 4px);
	background: #fff;
	font-size: 1rem;
	color: var(--nn-color-text-primary);
}

.nn-chip-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nn-chip {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.35rem 0.85rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-bg-surface);
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	cursor: pointer;
	transition:
		background-color var(--nn-duration-fast) var(--nn-easing-standard),
		border-color var(--nn-duration-fast) var(--nn-easing-standard),
		color var(--nn-duration-fast) var(--nn-easing-standard);
}

.nn-chip:hover {
	border-color: var(--nn-color-border-strong);
}

.nn-chip[aria-pressed="true"],
.nn-chip.is-selected {
	background: var(--nn-color-primary-100);
	border-color: var(--nn-color-primary-100);
	color: var(--nn-color-primary-700);
}

.nn-chip__count {
	display: inline-block;
	margin-left: 0.4rem;
	padding: 0.05rem 0.4rem;
	border-radius: 999px;
	background: rgba(44, 40, 37, 0.06);
	color: var(--nn-color-text-secondary, #6b6760);
	font-size: 0.75em;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.4;
	vertical-align: middle;
}

/* Native WP form fallbacks inside brand surfaces */
.nn-surface .search-form input[type="search"],
.nn-surface .wpcf7 input[type="text"],
.nn-surface .wpcf7 input[type="email"],
.nn-surface .wpcf7 textarea {
	border-radius: var(--nn-control-radius);
	border-color: var(--nn-color-border-default);
	min-height: var(--nn-control-height);
	font-size: 1rem;
}

/* -------------------------------------------------------------------------
 * Newsletter signup form
 * Stack visible fields in .nn-newsletter-form__stack so hidden inputs
 * never cause mobile overlap with the Subscribe button.
 * ---------------------------------------------------------------------- */

.nn-newsletter-form {
	width: 100%;
	max-width: 28rem;
}

.nn-newsletter-form__form {
	position: relative;
	margin: 0;
}

/* Spam honeypot + hidden inputs — never show to humans */
.nn-newsletter-form__form > input[type="hidden"],
.nn-newsletter-form__hp,
.nn-newsletter-form__hp label,
.nn-newsletter-form__hp input {
	position: absolute !important;
	left: -10000px !important;
	top: 0 !important;
	width: 1px !important;
	height: 1px !important;
	max-width: 1px !important;
	max-height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	/* display:none is fine — bots still often fill named fields via form APIs */
	display: none !important;
	visibility: hidden !important;
}

/* Only name/email/button live here — always stacked on small screens */
.nn-newsletter-form__stack {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
}

.nn-newsletter-form__field {
	display: block;
	flex: 1 1 12rem;
	margin: 0;
	min-width: 0;
}

.nn-newsletter-form__field input {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: 2.85rem;
	margin: 0;
	padding: 0.55rem 0.85rem;
	border: 1px solid var(--nn-color-border-default, #e4e0d8);
	border-radius: 4px;
	background: #fff;
	font-size: 1rem;
	line-height: 1.35;
	color: var(--nn-color-text-primary, #2a2926);
}

.nn-newsletter-form__stack .nn-btn {
	flex: 0 0 auto;
	box-sizing: border-box;
	min-height: 2.85rem;
	margin: 0;
}

/* Mobile / archive CTAs: force single column + clear gap under email */
@media (max-width: 1023px) {
	.nn-newsletter-form__stack,
	.nn-archive-newsletter .nn-newsletter-form__stack,
	.nn-newsletter-inline .nn-newsletter-form__stack,
	.nn-cta .nn-newsletter-form__stack,
	.nn-blog-hub__newsletter .nn-newsletter-form__stack {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 0 !important;
	}

	.nn-newsletter-form__field {
		flex: none !important;
		width: 100% !important;
		margin: 0 0 1rem !important;
	}

	.nn-newsletter-form__stack .nn-btn {
		flex: none !important;
		width: 100% !important;
		margin: 0 !important;
	}
}

/* Desktop side-by-side only when wide enough */
@media (min-width: 1024px) {
	.nn-newsletter-form__stack {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}

	.nn-newsletter-form__field {
		flex: 1 1 auto;
		margin: 0;
	}

	.nn-newsletter-form__stack .nn-btn {
		flex: 0 0 auto;
		width: auto;
	}

	/* Keep name+email stacks full width when name field is present */
	.nn-newsletter-form--hub .nn-newsletter-form__stack {
		flex-direction: column;
	}

	.nn-newsletter-form--hub .nn-newsletter-form__stack .nn-btn {
		width: 100%;
	}
}

/* -------------------------------------------------------------------------
 * Footer compact form — single combined email + button bar.
 * Desktop footer columns are narrow; avoid stacked empty white fields.
 * ---------------------------------------------------------------------- */

.nn-newsletter-form--compact,
.nn-site-footer__col--newsletter .nn-newsletter-form {
	max-width: 100%;
	width: 100%;
	background: transparent;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

/* Honeypot must never take layout space (desktop or mobile) */
.nn-newsletter-form--compact .nn-newsletter-form__hp,
.nn-site-footer__col--newsletter .nn-newsletter-form__hp,
.nn-newsletter-form--compact .nn-newsletter-form__hp label,
.nn-site-footer__col--newsletter .nn-newsletter-form__hp label,
.nn-newsletter-form--compact .nn-newsletter-form__hp input,
.nn-site-footer__col--newsletter .nn-newsletter-form__hp input,
.nn-newsletter-form--compact .nn-newsletter-form__form > input[type="hidden"],
.nn-site-footer__col--newsletter .nn-newsletter-form__form > input[type="hidden"] {
	display: none !important;
	visibility: hidden !important;
	position: absolute !important;
	left: -10000px !important;
	top: 0 !important;
	width: 1px !important;
	height: 1px !important;
	max-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	pointer-events: none !important;
}

.nn-newsletter-form--compact .nn-newsletter-form__form,
.nn-site-footer__col--newsletter .nn-newsletter-form__form {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	min-height: 0 !important;
}

/* Combined control: email field + join button as one unit */
.nn-newsletter-form--compact .nn-newsletter-form__stack,
.nn-site-footer__col--newsletter .nn-newsletter-form__stack {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	grid-template-rows: auto !important;
	gap: 0 !important;
	align-items: stretch !important;
	width: 100% !important;
	min-height: 2.85rem;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--nn-color-border-default, #d9d2c8);
	border-radius: 4px;
	background: #fff;
	overflow: hidden;
	box-shadow: none;
}

.nn-newsletter-form--compact .nn-newsletter-form__field,
.nn-site-footer__col--newsletter .nn-newsletter-form__field {
	display: block !important;
	flex: none !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	grid-column: 1;
	grid-row: 1;
}

.nn-newsletter-form--compact .nn-newsletter-form__field input,
.nn-site-footer__col--newsletter .nn-newsletter-form__field input {
	display: block !important;
	width: 100% !important;
	min-height: 2.85rem !important;
	height: 2.85rem !important;
	margin: 0 !important;
	padding: 0.55rem 0.85rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-size: 0.9375rem !important;
	line-height: 1.3 !important;
}

.nn-newsletter-form--compact .nn-newsletter-form__stack .nn-btn,
.nn-site-footer__col--newsletter .nn-newsletter-form__stack .nn-btn {
	grid-column: 2;
	grid-row: 1;
	flex: none !important;
	width: auto !important;
	min-width: 6.5rem;
	min-height: 2.85rem !important;
	height: 2.85rem !important;
	margin: 0 !important;
	padding: 0 1rem !important;
	border: 0 !important;
	border-radius: 0 !important;
	border-left: 1px solid rgba(44, 40, 37, 0.12) !important;
	white-space: nowrap;
	align-self: stretch;
}

.nn-newsletter-form--compact .nn-newsletter-form__fine,
.nn-site-footer__col--newsletter .nn-newsletter-form__fine {
	margin: 0.5rem 0 0 !important;
	padding: 0 !important;
	background: transparent !important;
	min-height: 0 !important;
}

/* No empty status box when msg is absent */
.nn-newsletter-form--compact .nn-newsletter-form__msg:empty,
.nn-site-footer__col--newsletter .nn-newsletter-form__msg:empty {
	display: none !important;
}

.nn-newsletter-form__fine {
	margin: 0.65rem 0 0;
	font-size: var(--nn-fs-xs, 0.75rem);
	color: var(--nn-color-text-secondary);
}

.nn-newsletter-form__msg {
	margin: 0 0 0.65rem;
	padding: 0.55rem 0.75rem;
	border-radius: 4px;
	font-size: var(--nn-fs-sm, 0.875rem);
}

.nn-newsletter-form__msg.is-ok {
	background: #e8f0e4;
	color: #3d5a32;
}

.nn-newsletter-form__msg.is-err {
	background: #f8e8e6;
	color: #8a2f2f;
}

.nn-cta .nn-newsletter-form {
	margin-inline: auto;
}

/* ===== components/_navigation.css ===== */
/**
 * Navigation helpers layered on Kadence menus.
 * Prefer Kadence header builder; these classes polish brand consistency.
 */

body.nn-theme .nn-nav a {
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-md);
	font-weight: var(--nn-font-weight-semibold);
	letter-spacing: 0.01em;
	text-decoration: none;
}

body.nn-theme .nn-breadcrumbs,
body.nn-theme .rank-math-breadcrumb {
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	line-height: 1.45;
	color: var(--nn-color-text-secondary);
	margin: 0 0 var(--nn-space-2);
}

body.nn-theme .nn-breadcrumbs a,
body.nn-theme .rank-math-breadcrumb a {
	color: var(--nn-color-text-secondary);
	text-decoration: none;
}

body.nn-theme .nn-breadcrumbs a:hover,
body.nn-theme .rank-math-breadcrumb a:hover {
	color: var(--nn-color-text-link);
	text-decoration: underline;
}

/* Pagination — always a horizontal row (mobile resets often force vertical lists) */
body.nn-theme .nn-pagination,
body.nn-theme .navigation.pagination,
body.nn-theme nav.pagination {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 0.4rem;
	align-items: center !important;
	justify-content: center !important;
	margin: var(--nn-space-6) 0;
	width: 100%;
	max-width: 100%;
}

/* Core outputs <ul class="page-numbers"> when type=list */
body.nn-theme .nn-pagination ul.page-numbers,
body.nn-theme .navigation.pagination ul.page-numbers,
body.nn-theme .nn-pagination .nav-links,
body.nn-theme .navigation.pagination .nav-links {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 0.4rem;
	align-items: center !important;
	justify-content: center !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	max-width: 100%;
}

body.nn-theme .nn-pagination .page-numbers li,
body.nn-theme .navigation.pagination .page-numbers li,
body.nn-theme .nn-pagination ul.page-numbers > li,
body.nn-theme .navigation.pagination ul.page-numbers > li {
	display: inline-flex !important;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

/* Links/spans (also have class page-numbers — do not treat them as the flex row) */
body.nn-theme .nn-pagination a.page-numbers,
body.nn-theme .nn-pagination span.page-numbers,
body.nn-theme .nn-pagination a,
body.nn-theme .nn-pagination span:not(.screen-reader-text),
body.nn-theme .navigation.pagination a.page-numbers,
body.nn-theme .navigation.pagination span.page-numbers,
body.nn-theme .navigation.pagination a,
body.nn-theme .navigation.pagination span:not(.screen-reader-text) {
	display: inline-flex !important;
	flex-direction: row !important;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	width: auto !important;
	padding: 0.35rem 0.65rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-sm);
	background: var(--nn-color-bg-surface);
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none !important;
	line-height: 1;
	box-sizing: border-box;
}

@media (max-width: 767px) {
	body.nn-theme .nn-pagination,
	body.nn-theme .navigation.pagination,
	body.nn-theme .nn-pagination ul.page-numbers,
	body.nn-theme .navigation.pagination ul.page-numbers {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
	}

	body.nn-theme .nn-pagination .page-numbers li,
	body.nn-theme .navigation.pagination .page-numbers li {
		display: inline-flex !important;
		width: auto !important;
	}

	body.nn-theme .nn-pagination a.page-numbers,
	body.nn-theme .nn-pagination span.page-numbers,
	body.nn-theme .navigation.pagination a.page-numbers,
	body.nn-theme .navigation.pagination span.page-numbers {
		min-width: 2.4rem;
		min-height: 2.4rem;
	}
}

body.nn-theme .nn-pagination a:hover,
body.nn-theme .nn-pagination a:focus-visible,
body.nn-theme .navigation.pagination a:hover,
body.nn-theme .navigation.pagination a:focus-visible {
	border-color: var(--nn-color-primary-500, #4f6f5c);
	color: var(--nn-color-primary-500, #4f6f5c);
}

body.nn-theme .nn-pagination .current,
body.nn-theme .nn-pagination .page-numbers .current,
body.nn-theme .navigation.pagination .current {
	background: var(--nn-color-primary-500, #4f6f5c);
	border-color: var(--nn-color-primary-500, #4f6f5c);
	color: var(--nn-color-text-inverse, #fff);
	pointer-events: none;
}

body.nn-theme .nn-pagination .dots,
body.nn-theme .navigation.pagination .dots {
	border-color: transparent;
	background: transparent;
}

/* ===== components/_header.css ===== */
/**
 * Header polish + optional brand header bar.
 * Prefer Kadence sticky header settings; these styles support brand partials.
 */

.nn-site-header {
	background: var(--nn-color-bg-surface);
	border-bottom: 1px solid var(--nn-color-border-default);
	position: sticky;
	top: 0;
	z-index: var(--nn-z-header);
	box-shadow: 0 1px 0 rgba(44, 40, 37, 0.03);
}

/* Premium header CTA */
.nn-header-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.5rem 1.15rem;
	border-radius: 0.55rem;
	border: 1px solid #965031;
	background: #4f6f5c;
	background-image: none;
	color: #fff !important;
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-decoration: none !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.16) inset,
		0 4px 12px rgba(168, 90, 56, 0.2);
	white-space: nowrap;
	transition:
		background var(--nn-duration-normal) var(--nn-easing-standard),
		box-shadow var(--nn-duration-normal) var(--nn-easing-standard),
		transform var(--nn-duration-fast) var(--nn-easing-standard);
}

.nn-header-cta:hover {
	background: #3f5949;
	background-image: none;
	border-color: #7a4128;
	color: #fff !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.1) inset,
		0 8px 18px rgba(139, 74, 46, 0.26);
	transform: translateY(-1px);
}

.nn-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-bg-surface);
	color: var(--nn-color-text-primary);
	cursor: pointer;
	transition:
		border-color var(--nn-duration-fast) var(--nn-easing-standard),
		color var(--nn-duration-fast) var(--nn-easing-standard),
		background var(--nn-duration-fast) var(--nn-easing-standard);
}

.nn-icon-btn:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
	background: var(--nn-color-primary-50);
}

.nn-site-header__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nn-space-2);
	min-height: 4rem;
	padding-block: var(--nn-space-1);
}

@media (min-width: 1024px) {
	.nn-site-header__bar {
		min-height: 4.5rem;
	}
}

.nn-site-header__brand {
	display: flex;
	align-items: center;
	min-width: 0;
}

.nn-site-header__brand .custom-logo-link,
.nn-site-header__title--wordmark {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	text-decoration: none;
	background: transparent !important;
	box-shadow: none !important;
}

.nn-site-header__brand .custom-logo-link img,
.nn-site-header__brand img,
.nn-site-header__title--wordmark picture,
.nn-site-header__title--wordmark img {
	display: block;
	max-height: 2.75rem;
	width: auto;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
}

/* Full wordmark — true transparent PNG/WebP on white header surface */
.nn-site-header__brand .custom-logo-link img,
.nn-site-header__logo--wordmark,
.nn-site-header__title--wordmark img {
	max-height: 3.25rem !important;
	width: auto !important;
	height: auto !important;
	max-width: min(220px, 48vw) !important;
	object-fit: contain !important;
	object-position: left center;
	padding: 0;
	/* Avoid cream-plate filters; asset alpha handles blending */
	mix-blend-mode: normal;
	opacity: 1;
	filter: none;
	isolation: isolate;
}

.nn-site-header__title {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	font-family: var(--nn-font-serif);
	font-size: 1.2rem;
	font-weight: var(--nn-font-weight-bold);
	color: var(--nn-color-text-primary);
	text-decoration: none;
	min-width: 0;
	line-height: 0;
}

.nn-site-header__title--wordmark {
	gap: 0;
	padding: 0.15rem 0;
}

/* Mark-only logo (square). Wordmark uses --wordmark and must not inherit fixed size. */
.nn-site-header__logo:not(.nn-site-header__logo--wordmark) {
	display: block;
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 0.55rem;
	object-fit: contain;
	flex-shrink: 0;
	background: transparent;
	box-shadow: none;
	border: none;
}

.nn-site-header__logo--wordmark {
	display: block;
	width: auto !important;
	height: auto !important;
	max-height: 3.25rem !important;
	max-width: min(220px, 48vw) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	object-fit: contain !important;
	/* Tall wordmark (chair + type) — keep compact in bar */
	aspect-ratio: auto;
}

.nn-site-header__title-text {
	line-height: 1.15;
	letter-spacing: -0.01em;
}

.nn-site-header__mark {
	display: inline-block;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.55rem;
	background: linear-gradient(145deg, #e8ede9 0%, #efece6 45%, #e8cfc0 100%);
	border: 1px solid #e4e0d8;
	flex-shrink: 0;
	position: relative;
}

.nn-site-header__mark::after {
	content: "";
	position: absolute;
	inset: 28% 22% 30% 22%;
	border: 2px solid #4f6f5c;
	border-radius: 2px 2px 0 0;
	border-bottom: none;
	clip-path: polygon(0 40%, 50% 0, 100% 40%, 100% 100%, 0 100%);
}

@media (max-width: 639px) {
	.nn-site-header__title {
		font-size: 1.05rem;
		gap: 0.5rem;
	}

	.nn-site-header__logo:not(.nn-site-header__logo--wordmark),
	.nn-site-header__mark {
		width: 2.15rem;
		height: 2.15rem;
	}

	.nn-site-header__logo--wordmark,
	.nn-site-header__title--wordmark img,
	.nn-site-header__brand .custom-logo-link img {
		max-height: 2.65rem !important;
		max-width: min(168px, 52vw) !important;
	}
}

.nn-site-header__nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.nn-primary-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.15rem 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nn-primary-nav > li > a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.35rem 0.7rem;
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-sans);
	font-size: 0.9375rem;
	font-weight: var(--nn-font-weight-semibold);
	letter-spacing: 0.01em;
	text-decoration: none;
	border-radius: var(--nn-radius-sm);
}

.nn-primary-nav > li > a:hover,
.nn-primary-nav > li.current-menu-item > a {
	color: var(--nn-color-text-link);
}

/* Recipes / Blog dropdowns — never inherit Kadence blue highlight */
.nn-primary-nav > li {
	position: relative;
}

.nn-primary-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 60;
	min-width: 13.5rem;
	max-height: min(70vh, 28rem);
	overflow-y: auto;
	margin: 0;
	padding: 0.45rem 0;
	list-style: none !important;
	background: #fff !important;
	border: 1px solid #e4e0d8 !important;
	border-radius: 10px;
	box-shadow: 0 14px 36px rgba(44, 40, 37, 0.12);
	/* Warm scrollbar — avoid OS blue thumb */
	scrollbar-width: thin;
	scrollbar-color: #d5cec4 transparent;
}

.nn-primary-nav .sub-menu::-webkit-scrollbar {
	width: 8px;
}

.nn-primary-nav .sub-menu::-webkit-scrollbar-thumb {
	background: #d5cec4;
	border-radius: 4px;
}

.nn-primary-nav .sub-menu::-webkit-scrollbar-track {
	background: transparent;
}

.nn-primary-nav > li:hover > .sub-menu,
.nn-primary-nav > li:focus-within > .sub-menu,
.nn-primary-nav > li.nn-open > .sub-menu {
	display: block;
}

.nn-primary-nav .sub-menu > li {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}

.nn-primary-nav .sub-menu a,
.nn-primary-nav .sub-menu a:visited {
	display: block;
	padding: 0.5rem 1rem;
	color: #2a2926 !important;
	background: transparent !important;
	background-image: none !important;
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none !important;
	white-space: nowrap;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.nn-primary-nav .sub-menu a:hover,
.nn-primary-nav .sub-menu a:focus {
	background: #f6f4f0 !important;
	color: #4f6f5c !important;
	outline: none;
}

.nn-primary-nav .sub-menu a:focus-visible {
	outline: 2px solid #4f6f5c;
	outline-offset: -2px;
}

/* Mobile drawer: nested lists stay open/stacked */
@media (max-width: 1023px) {
	.nn-primary-nav .sub-menu {
		position: static;
		display: none;
		box-shadow: none;
		border: 0;
		border-left: 2px solid #e4e0d8;
		border-radius: 0;
		margin: 0 0 0 0.75rem;
		padding: 0.15rem 0;
		max-height: none;
		background: transparent;
	}

	.nn-primary-nav > li.nn-open > .sub-menu,
	.nn-mobile-nav .nn-primary-nav > li:hover > .sub-menu {
		display: block;
	}

	.nn-primary-nav .menu-item-has-children > a {
		position: relative;
		padding-right: 2rem;
	}
}

/* -------------------------------------------------------------------------
 * Category filter chips (Recipes / Blog browse)
 * Desktop: tidy wrap. Mobile: horizontal scroll so they never jumble.
 * ---------------------------------------------------------------------- */

.nn-archive-cat-browse {
	margin-bottom: 0.75rem;
}

/* Recipe chip desktop-only rules live in layout/_archives.css (mobile-first). */

.nn-archive-cat-browse__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.65rem;
}

.nn-archive-cat-browse__head .nn-archive-section-head__title {
	margin: 0;
}

.nn-archive-cat-browse__hint {
	display: none;
	margin: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #8a8279;
	white-space: nowrap;
}

.nn-cat-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.55rem;
	margin: 0;
	padding: 0;
}

.nn-cat-chips .nn-chip {
	flex: 0 0 auto;
	white-space: nowrap;
	text-decoration: none;
	line-height: 1.25;
	box-sizing: border-box;
}

.nn-cat-chips .nn-chip.is-active,
.nn-chip.is-active {
	background: #2a2926;
	border-color: #2a2926;
	color: #f6f4f0;
}

.nn-cat-chips .nn-chip.is-active .nn-chip__count {
	background: rgba(250, 247, 243, 0.18);
	color: #f6f4f0;
}

/* Mobile: swipeable row — prevents a jumbled multi-line chip pile */
@media (max-width: 767px) {
	.nn-archive-cat-browse--scroll {
		position: relative;
		/* Stay inside the page; negative bleed was clipping chips off the right edge. */
		margin-inline: 0;
		padding-inline: 0;
		max-width: 100%;
		overflow: hidden;
	}

	.nn-archive-cat-browse--scroll .nn-archive-cat-browse__head {
		padding-inline: 0;
		margin-bottom: 0.75rem;
	}

	.nn-archive-cat-browse--scroll .nn-archive-cat-browse__hint {
		display: block;
	}

	.nn-archive-cat-browse--scroll .nn-cat-chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x proximity;
		scroll-padding-inline: 0 1.5rem;
		gap: 0.5rem;
		/* Extra end padding so the last chip is fully scrollable into view */
		padding: 0.25rem 1.75rem 0.9rem 0;
		margin: 0;
		max-width: 100%;
		box-sizing: border-box;
		/* Soft fade on the right only (hint that more topics exist) */
		mask-image: linear-gradient(
			to right,
			#000 0,
			#000 calc(100% - 2.25rem),
			transparent 100%
		);
		-webkit-mask-image: linear-gradient(
			to right,
			#000 0,
			#000 calc(100% - 2.25rem),
			transparent 100%
		);
		scrollbar-width: thin;
		scrollbar-color: rgba(44, 40, 37, 0.25) transparent;
	}

	.nn-archive-cat-browse--scroll .nn-cat-chips::-webkit-scrollbar {
		height: 4px;
	}

	.nn-archive-cat-browse--scroll .nn-cat-chips::-webkit-scrollbar-thumb {
		background: rgba(44, 40, 37, 0.22);
		border-radius: 999px;
	}

	.nn-archive-cat-browse--scroll .nn-cat-chips .nn-chip {
		scroll-snap-align: start;
		min-height: 2.5rem;
		padding: 0.4rem 0.95rem;
		font-size: 0.8125rem;
		text-decoration: none !important;
	}

	/* Blog hub: keep topic chips fully on-page; wrap instead of edge-clipping scroll */
	.nn-blog-hub .nn-archive-cat-browse--scroll,
	.nn-archive--blog .nn-archive-cat-browse--scroll {
		margin-inline: 0 !important;
		max-width: 100% !important;
		overflow: visible !important;
	}

	.nn-blog-hub .nn-archive-cat-browse--scroll .nn-cat-chips,
	.nn-archive--blog .nn-archive-cat-browse--scroll .nn-cat-chips {
		flex-wrap: wrap !important;
		overflow: visible !important;
		mask-image: none !important;
		-webkit-mask-image: none !important;
		padding: 0.15rem 0 0.35rem !important;
		scroll-snap-type: none !important;
		row-gap: 0.5rem;
		column-gap: 0.45rem;
	}

	.nn-blog-hub .nn-archive-cat-browse--scroll .nn-archive-cat-browse__hint,
	.nn-archive--blog .nn-archive-cat-browse--scroll .nn-archive-cat-browse__hint {
		display: none !important;
	}

	.nn-blog-hub .nn-cat-chips .nn-chip,
	.nn-archive--blog .nn-cat-chips .nn-chip {
		white-space: normal !important;
		max-width: 100%;
		line-height: 1.3;
		text-decoration: none !important;
	}

	/* Non-scroll browse sections still get cleaner wrap spacing */
	.nn-archive-cat-browse:not(.nn-archive-cat-browse--scroll) .nn-cat-chips {
		gap: 0.45rem;
	}

	.nn-archive-cat-browse:not(.nn-archive-cat-browse--scroll) .nn-cat-chips .nn-chip {
		min-height: 2.4rem;
		padding: 0.35rem 0.8rem;
		font-size: 0.8125rem;
	}

	/* Index “Browse by type” category lists */
	.nn-archive-subnav__list {
		gap: 0.45rem;
	}

	.nn-archive-subnav__list a {
		display: inline-flex;
		align-items: center;
		min-height: 2.4rem;
		padding: 0.35rem 0.8rem;
		border: 1px solid var(--nn-color-border-default, #e4e0d8);
		border-radius: 999px;
		background: var(--nn-color-bg-surface, #fff);
		font-size: 0.8125rem;
		font-weight: 600;
		text-decoration: none;
		white-space: nowrap;
	}
}

@media (min-width: 768px) {
	.nn-archive-cat-browse__hint {
		display: none !important;
	}

	.nn-cat-chips {
		gap: 0.5rem 0.6rem;
	}
}

.nn-site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--nn-space-0-5);
}

/* Soft polish for Kadence sticky headers using brand canvas */
body.nn-theme .site-header-wrap,
body.nn-theme #masthead {
	/* Leave structure to Kadence; ensure readable type where inherited */
}

/* Breadcrumbs placement */
.nn-breadcrumbs {
	padding: var(--nn-space-2) 0 0;
	margin-bottom: var(--nn-space-1);
}

.nn-breadcrumbs__trail {
	margin: 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

.nn-breadcrumbs__sep {
	margin: 0 0.35rem;
	color: var(--nn-color-text-muted);
}

@media (max-width: 639px) {
	.nn-breadcrumbs {
		/* Prevent long trails from wrapping into clutter — allow natural wrap */
		overflow-wrap: anywhere;
	}
}

/* ===== components/_footer.css ===== */
/**
 * Premium footer framework.
 * Desktop: full multi-column. Mobile: short strip only.
 */

.nn-site-footer {
	background: var(--nn-color-bg-sunken);
	border-top: 1px solid var(--nn-color-border-default);
	color: var(--nn-color-text-secondary);
	font-size: var(--nn-fs-sm);
	margin-top: var(--nn-space-8);
}

.nn-site-footer__mobile {
	display: none;
}

.nn-site-footer__main {
	padding-block: var(--nn-space-8);
}

.nn-site-footer__grid {
	display: grid;
	gap: var(--nn-space-4);
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.nn-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.nn-site-footer__grid {
		grid-template-columns: 1.3fr 1fr 1fr 1.1fr;
		gap: var(--nn-space-5);
	}
}

.nn-site-footer__name {
	margin: 0 0 var(--nn-space-1);
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-xl);
	font-weight: var(--nn-font-weight-bold);
	color: var(--nn-color-text-primary);
}

.nn-site-footer__name--with-logo {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-family: var(--nn-font-serif, Georgia, serif);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--nn-color-text-primary, #2a2926);
	margin: 0 0 0.75rem;
}

.nn-site-footer__mark {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 0.5rem;
	object-fit: contain;
	flex-shrink: 0;
	background: transparent;
}

.nn-site-footer__logo,
.nn-site-footer__logo--wordmark {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
	margin-bottom: var(--nn-space-1-5);
	background: transparent !important;
	box-shadow: none !important;
}

.nn-site-footer__logo img,
.nn-site-footer__logo picture,
.nn-site-footer__logo--wordmark img {
	display: block;
	max-height: 4rem;
	width: auto;
	height: auto;
	max-width: 200px;
	object-fit: contain;
	object-position: left center;
	margin-bottom: 0;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	/* Transparent wordmark on sunken footer — no cream plate */
	mix-blend-mode: normal;
	filter: none;
}

.nn-site-footer__tagline,
.nn-site-footer__text {
	margin: 0 0 var(--nn-space-2);
	max-width: 28rem;
	line-height: 1.55;
}

.nn-site-footer__heading {
	margin: 0 0 var(--nn-space-1-5);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-text-primary);
}

.nn-site-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nn-site-footer__menu a {
	display: inline-flex;
	min-height: 2.25rem;
	align-items: center;
	color: var(--nn-color-text-primary);
	text-decoration: none;
}

.nn-site-footer__menu a:hover {
	color: var(--nn-color-text-link);
	text-decoration: underline;
}

.nn-site-footer__legal {
	border-top: 1px solid var(--nn-color-border-default);
	padding-block: var(--nn-space-3);
}

.nn-footer-legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1) var(--nn-space-3);
	justify-content: center;
	margin: 0 0 var(--nn-space-2);
	padding: 0;
	list-style: none;
}

.nn-footer-legal a {
	color: var(--nn-color-text-primary);
	text-decoration: none;
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-semibold);
}

.nn-footer-legal a:hover {
	color: var(--nn-color-text-link);
	text-decoration: underline;
}

.nn-site-footer__copy {
	margin: 0;
	text-align: center;
	font-size: var(--nn-fs-xs);
	color: var(--nn-color-text-muted);
}

/* -------------------------------------------------------------------------
 * Mobile: short footer only (hide Explore / Company / newsletter signup)
 * Use 1023px so large phones + portrait tablets stay compact.
 * ---------------------------------------------------------------------- */

@media (max-width: 1023px) {
	.nn-site-footer {
		margin-top: 1.25rem !important;
	}

	/* Kill the tall desktop grid completely on mobile */
	.nn-site-footer__main,
	.nn-site-footer__legal--desktop {
		display: none !important;
	}

	.nn-site-footer__mobile {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		gap: 0.7rem;
		padding: 1rem 1rem 1.1rem;
		text-align: center;
	}

	.nn-site-footer__mobile-brand {
		margin: 0 !important;
		font-size: 1rem !important;
		justify-content: center;
	}

	.nn-site-footer__mobile-brand .nn-site-footer__mark {
		width: 1.65rem;
		height: 1.65rem;
	}

	.nn-site-footer__mobile-nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.25rem 0.9rem;
	}

	.nn-site-footer__mobile-nav a {
		color: #2a2926;
		font-size: 0.875rem;
		font-weight: 600;
		text-decoration: none;
		line-height: 1.35;
		padding: 0.15rem 0;
	}

	.nn-site-footer__mobile-legal {
		margin: 0;
		font-size: 0.7rem;
		color: #8a8279;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.25rem 0.4rem;
	}

	.nn-site-footer__mobile-legal a {
		color: #6b6560;
		text-decoration: none;
		font-weight: 600;
	}

	.nn-site-footer__mobile-copy {
		margin: 0 !important;
		font-size: 0.68rem !important;
	}
}

@media (min-width: 1024px) {
	.nn-site-footer__mobile {
		display: none !important;
	}
}

/* ===== components/_cta.css ===== */
/**
 * Call-to-action, FAQ, empty state, social proof shells used by patterns.
 */

.nn-cta {
	padding: var(--nn-space-4);
	border-radius: var(--nn-radius-xl);
	background: var(--nn-color-primary-50);
	border: 1px solid var(--nn-color-primary-100);
	text-align: center;
}

@media (min-width: 768px) {
	.nn-cta {
		padding: var(--nn-space-6);
	}
}

.nn-cta__title {
	margin: 0 0 var(--nn-space-1-5);
	font-family: var(--nn-font-serif);
	font-size: clamp(1.5rem, 1.35rem + 0.6vw, 1.75rem);
	font-weight: var(--nn-font-weight-bold);
	color: var(--nn-color-text-primary);
}

.nn-cta__text {
	margin: 0 auto var(--nn-space-3);
	max-width: 40rem;
	color: var(--nn-color-text-secondary);
}

.nn-cta--sage {
	background: var(--nn-color-secondary-100);
	border-color: var(--nn-color-secondary-100);
}

/* FAQ */
.nn-faq {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-1-5);
}

.nn-faq details {
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	background: var(--nn-color-bg-surface);
	padding: var(--nn-space-2) var(--nn-space-3);
}

.nn-faq summary {
	cursor: pointer;
	font-family: var(--nn-font-sans);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-primary);
	list-style-position: outside;
}

.nn-faq summary:focus-visible {
	outline: 2px solid var(--nn-color-primary-500);
	outline-offset: 2px;
}

.nn-faq details[open] summary {
	margin-bottom: var(--nn-space-1-5);
}

.nn-faq details p {
	margin: 0;
	color: var(--nn-color-text-secondary);
}

/* Empty state */
.nn-empty {
	padding: var(--nn-space-6) var(--nn-space-3);
	text-align: center;
	border: 1px dashed var(--nn-color-border-strong);
	border-radius: var(--nn-radius-lg);
	background: var(--nn-color-bg-surface);
}

.nn-empty__title {
	margin: 0 0 var(--nn-space-1);
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-2xl);
}

.nn-empty__text {
	margin: 0 0 var(--nn-space-3);
	color: var(--nn-color-text-secondary);
}

/* Social proof */
.nn-testimonial {
	padding: var(--nn-space-4);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
}

.nn-testimonial__quote {
	margin: 0 0 var(--nn-space-2);
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-xl);
	line-height: var(--nn-lh-normal);
	color: var(--nn-color-text-primary);
}

.nn-testimonial__meta {
	margin: 0;
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-secondary);
}

/* Ad placeholder (foundation only — no network scripts) */
.nn-ad-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 90px;
	padding: var(--nn-space-2);
	border: 1px dashed var(--nn-color-border-strong);
	border-radius: var(--nn-radius-sm);
	background: var(--nn-color-neutral-50);
	color: var(--nn-color-text-muted);
	font-size: var(--nn-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

/* Trust bar */
.nn-trust-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--nn-space-2) var(--nn-space-4);
	padding: var(--nn-space-3) 0;
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-secondary);
	text-align: center;
}

.nn-trust-bar span {
	display: inline-flex;
	align-items: center;
	gap: var(--nn-space-1);
}

/* ===== components/_announcement.css ===== */
/**
 * Announcement bar.
 */

.nn-announcement {
	background: var(--nn-color-primary-500);
	color: var(--nn-color-text-inverse);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	line-height: 1.4;
}

.nn-announcement__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--nn-space-2);
	padding-block: 0.55rem;
	position: relative;
}

.nn-announcement__text {
	margin: 0;
	text-align: center;
	padding-inline: var(--nn-space-4);
}

.nn-announcement__link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.nn-announcement__link:hover {
	color: inherit;
	opacity: 0.92;
}

.nn-announcement__dismiss {
	position: absolute;
	right: var(--nn-space-1);
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 1.35rem;
	line-height: 1;
	min-width: 2.5rem;
	min-height: 2.5rem;
	cursor: pointer;
	border-radius: var(--nn-radius-sm);
}

.nn-announcement.is-dismissed {
	display: none;
}

/* ===== components/_search.css ===== */
/**
 * Search form + overlay experience.
 */

.nn-search-form__controls {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-1-5);
}

@media (min-width: 640px) {
	.nn-search-form__controls {
		flex-direction: row;
		align-items: stretch;
	}

	.nn-search-form__input {
		flex: 1;
	}
}

/* Overlay */
.nn-search-overlay {
	position: fixed;
	inset: 0;
	z-index: var(--nn-z-modal);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: var(--nn-space-6) var(--nn-space-2);
}

.nn-search-overlay[hidden] {
	display: none !important;
}

.nn-search-overlay__backdrop {
	position: absolute;
	inset: 0;
	background: var(--nn-color-bg-overlay);
}

.nn-search-overlay__panel {
	position: relative;
	z-index: 1;
	width: 100%;
	margin-top: min(12vh, 6rem);
	padding: var(--nn-space-4);
	background: var(--nn-color-bg-surface);
	border-radius: var(--nn-radius-xl);
	box-shadow: var(--nn-shadow-lg);
}

.nn-search-overlay__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nn-space-2);
	margin-bottom: var(--nn-space-3);
}

.nn-search-overlay__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-2xl);
	font-weight: var(--nn-font-weight-bold);
}

.nn-search-overlay__popular {
	margin-top: var(--nn-space-4);
}

.nn-search-overlay__popular-label {
	margin: 0 0 var(--nn-space-1-5);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-secondary);
}

.nn-search-overlay__popular-list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nn-search-overlay__popular-list a {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.35rem 0.85rem;
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-primary-100);
	color: var(--nn-color-primary-700);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-search-overlay__popular-list a:hover {
	background: var(--nn-color-primary-50);
	color: var(--nn-color-primary-700);
}

.nn-search-overlay__hint {
	margin: var(--nn-space-3) 0 0;
}

.nn-search-results-header {
	margin-bottom: var(--nn-space-4);
}

.nn-search-results-header__form {
	margin-top: var(--nn-space-3);
	max-width: 36rem;
}

.nn-search-suggestions {
	margin-top: var(--nn-space-4);
}

.nn-search-suggestions .nn-chip-group {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.nn-search-open {
	overflow: hidden;
}

/* ===== components/_mobile-nav.css ===== */
/**
 * Mobile navigation drawer.
 */

.nn-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: var(--nn-z-modal);
}

.nn-mobile-nav[hidden] {
	display: none !important;
}

.nn-mobile-nav__backdrop {
	position: absolute;
	inset: 0;
	background: var(--nn-color-bg-overlay);
}

.nn-mobile-nav__panel {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-3);
	width: min(22rem, 92vw);
	height: 100%;
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	box-shadow: var(--nn-shadow-lg);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

@media (prefers-reduced-motion: no-preference) {
	.nn-mobile-nav:not([hidden]) .nn-mobile-nav__panel {
		animation: nn-slide-in var(--nn-duration-normal) var(--nn-easing-standard);
	}
}

@keyframes nn-slide-in {
	from {
		transform: translateX(100%);
	}
	to {
		transform: translateX(0);
	}
}

.nn-mobile-nav__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nn-space-2);
}

.nn-mobile-nav__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: var(--nn-fs-xl);
	font-weight: var(--nn-font-weight-bold);
}

.nn-mobile-nav__menu,
.nn-mobile-nav__utility-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nn-mobile-nav__menu > li > a,
.nn-mobile-nav__utility-menu > li > a {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--nn-color-border-default);
	color: var(--nn-color-text-primary);
	font-family: var(--nn-font-sans);
	font-size: 1.0625rem;
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

/*
 * Recipes / Blog parents: CSS grid keeps label + chevron on one row.
 * Flex-wrap was dropping the arrow under the label on current-menu pages
 * (Recipes / Blog) when the link stretched full width.
 */
.nn-mobile-nav__menu > li.menu-item-has-children {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 2.5rem;
	grid-template-rows: auto auto;
	align-items: center;
	column-gap: 0.35rem;
	row-gap: 0;
	border-bottom: 1px solid var(--nn-color-border-default);
}

.nn-mobile-nav__menu > li.menu-item-has-children > a {
	grid-column: 1;
	grid-row: 1;
	width: auto !important;
	max-width: 100%;
	min-width: 0;
	border-bottom: 0;
	padding-right: 0.25rem;
}

.nn-mobile-nav__menu > li.menu-item-has-children > .nn-mobile-nav__submenu-toggle {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
}

.nn-mobile-nav__menu > li.menu-item-has-children > .sub-menu {
	grid-column: 1 / -1;
	grid-row: 2;
}

/*
 * Expand control next to Recipes / Blog.
 * Must beat Kadence `button { background: var(--global-palette-btn-bg) }`
 * (default blue #2B6CB0) and global CTA padding — those were the "blue bars".
 */
.nn-mobile-nav button.nn-mobile-nav__submenu-toggle,
.nn-mobile-nav__submenu-toggle {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 2.5rem !important;
	min-width: 2.5rem !important;
	max-width: 2.5rem !important;
	height: 2.5rem !important;
	min-height: 2.5rem !important;
	margin: 0.15rem 0 !important;
	padding: 0 !important;
	border: 1px solid #e4e0d8 !important;
	border-radius: 8px !important;
	background: #f6f4f0 !important;
	background-color: #f6f4f0 !important;
	background-image: none !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	line-height: 1 !important;
	cursor: pointer !important;
	text-decoration: none !important;
}

.nn-mobile-nav button.nn-mobile-nav__submenu-toggle:hover,
.nn-mobile-nav button.nn-mobile-nav__submenu-toggle:focus,
.nn-mobile-nav__submenu-toggle:hover,
.nn-mobile-nav__submenu-toggle:focus {
	background: #efece6 !important;
	background-color: #efece6 !important;
	background-image: none !important;
	color: #4f6f5c !important;
	-webkit-text-fill-color: #4f6f5c !important;
	border-color: #d9c4b4 !important;
	outline: 2px solid rgba(168, 90, 56, 0.35);
	outline-offset: 1px;
	transform: none !important;
	box-shadow: none !important;
}

.nn-mobile-nav__submenu-toggle:focus:not(:focus-visible) {
	outline: none;
}

/* Chevron lives in the button text (JS); keep ::before as fallback. */
.nn-mobile-nav__submenu-toggle::before {
	content: none;
}

.nn-mobile-nav__submenu-toggle .nn-mobile-nav__chevron {
	display: block;
	font-size: 1.35rem; /* larger tap-target glyph on mobile */
	line-height: 1;
	pointer-events: none;
	font-weight: 700;
}

.nn-mobile-nav__menu > li.nn-open > .nn-mobile-nav__submenu-toggle {
	background: #e8ede9 !important;
	background-color: #e8ede9 !important;
	border-color: #d9c4b4 !important;
	color: #3f5949 !important;
	-webkit-text-fill-color: #3f5949 !important;
}

.nn-mobile-nav__menu > li.nn-open > .nn-mobile-nav__submenu-toggle .nn-mobile-nav__chevron {
	transform: rotate(180deg);
}

/*
 * Subcategories stay collapsed until parent is opened.
 * Must NOT auto-open on .current-menu-item / .current-menu-ancestor
 * (Recipes + Blog pages were showing every child expanded).
 */
.nn-mobile-nav__menu .sub-menu,
.nn-mobile-nav__menu ul.sub-menu,
.nn-mobile-nav__menu > li.menu-item-has-children > .sub-menu,
.nn-mobile-nav__menu > li.current-menu-item > .sub-menu,
.nn-mobile-nav__menu > li.current-menu-ancestor > .sub-menu,
.nn-mobile-nav__menu > li.current-menu-parent > .sub-menu,
.nn-mobile-nav__menu > li.current_page_item > .sub-menu,
.nn-mobile-nav__menu > li.current_page_ancestor > .sub-menu,
.nn-mobile-nav__menu > li.current_page_parent > .sub-menu {
	display: none !important;
	visibility: hidden !important;
	width: 100%;
	max-height: 0 !important;
	overflow: hidden !important;
	list-style: none;
	margin: 0;
	padding: 0;
	border-left: 0;
	border-bottom: 0;
}

.nn-mobile-nav__menu > li.nn-open > .sub-menu,
.nn-mobile-nav__menu > li.menu-item-has-children.nn-open > .sub-menu,
.nn-mobile-nav__menu > li.current-menu-item.nn-open > .sub-menu,
.nn-mobile-nav__menu > li.current-menu-ancestor.nn-open > .sub-menu {
	display: block !important;
	visibility: visible !important;
	max-height: none !important;
	overflow: visible !important;
	margin: 0 0 0.35rem;
	padding: 0.15rem 0 0.35rem 0.85rem;
	border-left: 2px solid #e4e0d8;
}

.nn-mobile-nav__menu .sub-menu a,
.nn-mobile-nav__menu .sub-menu a:visited {
	display: flex;
	min-height: 2.5rem;
	align-items: center;
	padding: 0.25rem 0;
	color: var(--nn-color-text-secondary, #6b6760) !important;
	background: transparent !important;
	font-weight: var(--nn-font-weight-regular);
	font-size: 0.95rem;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(232, 226, 217, 0.65);
	box-shadow: none !important;
}

.nn-mobile-nav__menu .sub-menu a:hover,
.nn-mobile-nav__menu .sub-menu a:focus {
	color: var(--nn-color-primary-600, #4f6f5c) !important;
	background: transparent !important;
}

.nn-mobile-nav__cta {
	margin-top: auto;
	padding-top: var(--nn-space-2);
}

body.nn-menu-open {
	overflow: hidden;
}

/* ===== components/_share.css ===== */
/**
 * Social share + utility chrome.
 */

.nn-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--nn-space-1-5) var(--nn-space-2);
	margin: var(--nn-space-3) 0;
}

.nn-share__label {
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-secondary);
}

.nn-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nn-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-bg-surface);
	color: var(--nn-color-text-primary);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-share__btn:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
}

/* Icon button (header tools) */
.nn-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: var(--nn-radius-md);
	background: transparent;
	color: var(--nn-color-text-primary);
	cursor: pointer;
	transition: background-color var(--nn-duration-fast) var(--nn-easing-standard);
}

.nn-icon-btn:hover {
	background: var(--nn-color-neutral-100);
}

.nn-icon {
	display: block;
}

/* Header utilities */
.nn-header-utility {
	display: flex;
	align-items: center;
	gap: var(--nn-space-1);
}

.nn-header-utility__link {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.35rem 0.65rem;
	color: var(--nn-color-primary-600);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
	white-space: nowrap;
}

.nn-header-utility__link:hover {
	color: var(--nn-color-primary-700);
	text-decoration: underline;
}

@media (max-width: 639px) {
	.nn-header-utility__link--newsletter {
		/* Keep search prominent on very small screens */
		display: none;
	}
}

/* Back to top */
.nn-back-to-top {
	position: fixed;
	right: var(--nn-space-2);
	bottom: var(--nn-space-2);
	z-index: var(--nn-z-sticky);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-bg-surface);
	color: var(--nn-color-text-primary);
	box-shadow: var(--nn-shadow-md);
	cursor: pointer;
}

.nn-back-to-top[hidden] {
	display: none !important;
}

.nn-back-to-top:hover {
	border-color: var(--nn-color-primary-500);
	color: var(--nn-color-primary-600);
}

/* Alerts */
.nn-alert {
	padding: var(--nn-space-2) var(--nn-space-3);
	border-radius: var(--nn-radius-md);
	border: 1px solid var(--nn-color-border-default);
	margin: 0 0 var(--nn-space-3);
}

.nn-alert__text {
	margin: 0;
	font-size: var(--nn-fs-sm);
}

.nn-alert--error {
	background: var(--nn-color-error-100);
	border-color: var(--nn-color-error-500);
	color: var(--nn-color-error-500);
}

.nn-alert--success {
	background: var(--nn-color-success-100);
	border-color: var(--nn-color-success-500);
	color: var(--nn-color-success-500);
}

.nn-alert--warning {
	background: var(--nn-color-warning-100);
	border-color: var(--nn-color-warning-500);
	color: var(--nn-color-warning-500);
}

.nn-alert--info {
	background: var(--nn-color-info-100);
	border-color: var(--nn-color-info-500);
	color: var(--nn-color-info-500);
}

/* Loading */
.nn-loading {
	display: inline-flex;
	align-items: center;
	gap: var(--nn-space-1-5);
	color: var(--nn-color-text-secondary);
	font-size: var(--nn-fs-sm);
}

.nn-loading[hidden] {
	display: none !important;
}

.nn-loading__spinner {
	width: 1.1rem;
	height: 1.1rem;
	border: 2px solid var(--nn-color-border-strong);
	border-top-color: var(--nn-color-primary-500);
	border-radius: 50%;
	animation: nn-spin 0.7s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.nn-loading__spinner {
		animation: none;
		border-top-color: var(--nn-color-border-strong);
	}
}

@keyframes nn-spin {
	to {
		transform: rotate(360deg);
	}
}

/* Cookie notice — must sit above Grow / floating widgets on mobile */
.nn-cookie-notice {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--nn-z-cookie, 10000001);
	padding: var(--nn-space-2);
	/* Safe area for notched phones + keep above OS chrome */
	padding-bottom: max(var(--nn-space-2), env(safe-area-inset-bottom, 0px));
	background: var(--nn-color-bg-surface);
	border-top: 1px solid var(--nn-color-border-default);
	box-shadow: 0 -8px 28px rgba(44, 40, 37, 0.18);
	pointer-events: auto;
	isolation: isolate;
}

.nn-cookie-notice[hidden] {
	display: none !important;
}

.nn-cookie-notice__inner {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-2);
	padding-block: var(--nn-space-2);
	max-width: 100%;
}

@media (min-width: 768px) {
	.nn-cookie-notice__inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.nn-cookie-notice__title {
	margin: 0 0 0.25rem;
	font-weight: var(--nn-font-weight-semibold);
}

.nn-cookie-notice__text {
	margin: 0;
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

.nn-cookie-notice__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-2);
	align-items: center;
	/* Full-width Accept row on small screens so Grow cannot steal the tap */
	width: 100%;
}

@media (max-width: 767px) {
	.nn-cookie-notice__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.nn-cookie-notice__actions .nn-btn--text {
		order: 2;
		text-align: center;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.nn-cookie-notice__actions [data-rbc-cookie-accept] {
		order: 1;
		width: 100%;
		min-height: 48px;
		font-weight: 700;
		font-size: 1rem;
		padding: 0.85rem 1.25rem;
		touch-action: manipulation;
	}
}

/* Mid-recipe newsletter (inline, non-blocking) */
.nn-newsletter-mid {
	display: block;
	margin: 1.1rem 0 1.35rem;
	padding: 0;
	max-width: 100%;
	clear: both;
}

.nn-newsletter-mid__inner {
	display: block;
	padding: 0.85rem 1rem 0.95rem;
	background: #f6f4f0;
	border: 1px solid #e4e0d8;
	border-left: 3px solid #4f6f5c;
	border-radius: 0.65rem;
	box-sizing: border-box;
}

.nn-newsletter-mid__kicker {
	margin: 0 0 0.2rem;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6b6560;
	line-height: 1.3;
}

.nn-newsletter-mid__title {
	margin: 0 0 0.3rem;
	font-size: 1.1rem;
	line-height: 1.3;
	color: #2a2926;
	font-weight: 700;
}

.nn-newsletter-mid__text {
	margin: 0 0 0.65rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #5c5651;
}

.nn-newsletter-mid .nn-newsletter-form {
	max-width: 100%;
}

.nn-newsletter-mid .nn-newsletter-form__stack {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: stretch;
}

.nn-newsletter-mid .nn-newsletter-form__field {
	flex: 1 1 12rem;
	min-width: 0;
	margin: 0;
}

.nn-newsletter-mid .nn-newsletter-form__field input,
.nn-newsletter-mid input[type="email"] {
	display: block;
	width: 100%;
	box-sizing: border-box;
	min-height: 2.5rem;
	padding: 0.5rem 0.75rem;
	border: 1px solid #e0d9cf;
	border-radius: 0.45rem;
	background: #fff;
	font-size: 1rem;
	color: #2a2926;
}

.nn-newsletter-mid .nn-btn--newsletter {
	flex: 0 0 auto;
	white-space: nowrap;
	min-height: 2.5rem;
}

.nn-newsletter-mid .nn-newsletter-form__fine {
	margin: 0.4rem 0 0;
	font-size: 0.75rem;
	color: #6b6560;
}

@media (max-width: 560px) {
	.nn-newsletter-mid .nn-newsletter-form__stack {
		flex-direction: column;
	}

	.nn-newsletter-mid .nn-btn--newsletter {
		width: 100%;
	}
}

body.nn-theme #nn-recipe-card,

body.nn-theme p.nn-after-recipe-card,
body.nn-theme .nn-recipe__content > #nn-recipe-card + p,
body.nn-theme .nn-prose > #nn-recipe-card + p,

/* Hide mid/end blocks when printing a recipe */
@media print {
	.nn-newsletter-mid,
	.nn-newsletter-end {
		display: none !important;
	}
}

/* Newsletter popup (off by default; kept for optional re-enable) */
.nn-exit-intent {
	position: fixed;
	inset: 0;
	z-index: var(--nn-z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--nn-space-2);
}

.nn-exit-intent[hidden] {
	display: none !important;
}

.nn-exit-intent__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(44, 40, 37, 0.55);
	backdrop-filter: blur(2px);
}

.nn-exit-intent__panel {
	position: relative;
	z-index: 1;
	width: min(24.5rem, 100%);
	max-height: min(90vh, 36rem);
	overflow: auto;
	padding: clamp(1.25rem, 4vw, 1.75rem) clamp(1.1rem, 4vw, 1.6rem) 1.25rem;
	background: var(--nn-color-bg-surface, #f6f4f0);
	border: 1px solid var(--nn-color-border-default, #e4e0d8);
	border-radius: var(--nn-radius-xl, 1rem);
	box-shadow: 0 18px 48px rgba(44, 40, 37, 0.22);
	text-align: center;
}

.nn-exit-intent__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	z-index: 2;
}

.nn-newsletter-popup__eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nn-color-text-muted, #6b6560);
}

.nn-newsletter-popup__title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.35rem, 3.5vw, 1.65rem);
	line-height: 1.25;
	color: var(--nn-color-text, #2a2926);
}

.nn-newsletter-popup__text {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--nn-color-text-muted, #5c5651);
}

.nn-newsletter-popup__form .nn-newsletter-form__stack {
	display: grid;
	gap: 0.55rem;
}

.nn-newsletter-popup__form .nn-newsletter-form__field input,
.nn-newsletter-popup__form .nn-newsletter-form input[type="email"],
.nn-newsletter-popup__form .nn-newsletter-form input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--nn-color-border-default, #e0d9cf);
	border-radius: 0.55rem;
	background: #fff;
	font-size: 1rem;
}

.nn-newsletter-popup__form .nn-btn--newsletter {
	width: 100%;
	min-height: 2.85rem;
	justify-content: center;
}

.nn-newsletter-popup__form .nn-newsletter-form__fine {
	margin: 0.55rem 0 0;
	font-size: 0.78rem;
	color: var(--nn-color-text-muted, #6b6560);
}

.nn-newsletter-popup__status {
	margin: 0.75rem 0 0;
	font-size: 0.92rem;
	line-height: 1.4;
}

.nn-newsletter-popup__status.is-ok {
	color: #3d5a3a;
}

.nn-newsletter-popup__status.is-err {
	color: #8b3a2e;
}

.nn-newsletter-popup__nope {
	margin: 0.65rem 0 0;
}

.nn-newsletter-popup__nope .nn-btn--text {
	color: var(--nn-color-text-muted, #6b6560);
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.nn-nl-popup-open {
	overflow: hidden;
}

@media (max-width: 480px) {
	.nn-exit-intent {
		align-items: flex-end;
		padding: 0;
	}

	.nn-exit-intent__panel {
		width: 100%;
		max-height: 85vh;
		border-radius: 1rem 1rem 0 0;
		padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.nn-exit-intent__backdrop {
		backdrop-filter: none;
	}
}

/* Related */
.nn-related {
	margin: var(--nn-space-8) 0 var(--nn-space-4);
}

.nn-related__header {
	margin-bottom: var(--nn-space-3);
}

/* Newsletter end */
.nn-newsletter-end {
	margin: var(--nn-space-6) 0;
}

/* Flyout (desktop recipes panel) */
.nn-flyout {
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	box-shadow: var(--nn-shadow-md);
}

.nn-flyout__grid {
	display: grid;
	gap: var(--nn-space-3);
}

@media (min-width: 768px) {
	.nn-flyout__grid {
		grid-template-columns: 1.2fr 1fr;
	}
}

.nn-flyout__heading {
	margin: 0 0 var(--nn-space-1-5);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-text-secondary);
}

.nn-flyout__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nn-flyout__menu a {
	display: block;
	padding: 0.4rem 0;
	color: var(--nn-color-text-primary);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-flyout__menu a:hover {
	color: var(--nn-color-text-link);
}

.nn-flyout__text {
	margin: 0 0 var(--nn-space-2);
	color: var(--nn-color-text-secondary);
	font-size: var(--nn-fs-sm);
}

.nn-flyout__col--feature {
	padding: var(--nn-space-2);
	background: var(--nn-color-primary-50);
	border-radius: var(--nn-radius-md);
}

/* Social links footer */
.nn-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nn-space-1);
	margin: var(--nn-space-2) 0 0;
	padding: 0;
	list-style: none;
}

.nn-social-links__item {
	display: inline-flex;
	min-height: 2.25rem;
	align-items: center;
	padding: 0.25rem 0.65rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-full);
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

/* ===== components/_editorial.css ===== */
/**
 * Editorial content modules used inside posts (callouts, notes, guides).
 * Loaded on front-end and editor for parity.
 */

.nn-editorial-section {
	margin-block: var(--nn-space-4);
}

.nn-callout {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	border-radius: var(--nn-radius-lg);
	border: 1px solid var(--nn-color-border-default);
	background: var(--nn-color-bg-surface);
	border-left-width: 4px;
	border-left-color: var(--nn-color-primary-500);
}

.nn-callout__title {
	margin: 0 0 var(--nn-space-1) !important;
	font-family: var(--nn-font-sans) !important;
	font-size: 1.0625rem !important;
	font-weight: var(--nn-font-weight-bold) !important;
	letter-spacing: 0.01em;
	color: var(--nn-color-text-primary);
}

.nn-callout__text {
	margin: 0 0 var(--nn-space-1-5);
	color: var(--nn-color-text-secondary);
}

.nn-callout ul {
	margin: 0;
	padding-left: 1.2em;
	color: var(--nn-color-text-primary);
}

.nn-callout--tip {
	background: var(--nn-color-primary-50);
	border-left-color: var(--nn-color-primary-500);
}

.nn-callout--note {
	background: var(--nn-color-secondary-100);
	border-left-color: var(--nn-color-secondary-500);
}

/* Brittany household-proof note — same family as note, slightly warmer */
.nn-brittany-note {
	background: #f6f4f0;
	border-left-color: #4f6f5c;
}

.nn-brittany-note .nn-callout__title {
	color: #3f5949;
	font-size: 0.9375rem !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.nn-cluster-links {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	border: 1px solid rgba(44, 40, 37, 0.1);
	border-radius: var(--nn-radius-lg, 8px);
	background: #f6f4f0;
}

.nn-cluster-links h3 {
	margin: 0 0 0.5rem !important;
	font-size: 1.0625rem !important;
}

.nn-cluster-links ul {
	margin: 0.35rem 0 0.75rem;
	padding-left: 1.15em;
}

.nn-cluster-links li {
	margin: 0.25rem 0;
}

.nn-callout--warning {
	background: var(--nn-color-warning-100);
	border-left-color: var(--nn-color-warning-500);
}

.nn-callout--success {
	background: var(--nn-color-success-100);
	border-left-color: var(--nn-color-success-500);
}

.nn-callout--info {
	background: var(--nn-color-info-100);
	border-left-color: var(--nn-color-info-500);
}

.nn-callout--disclosure {
	background: var(--nn-color-bg-sunken);
	border-left-color: var(--nn-color-neutral-500);
	font-size: var(--nn-fs-sm);
}

.nn-pros-cons {
	display: grid;
	gap: var(--nn-space-3);
	margin: var(--nn-space-4) 0;
}

@media (min-width: 768px) {
	.nn-pros-cons {
		grid-template-columns: 1fr 1fr;
	}
}

.nn-pros-cons__col {
	padding: var(--nn-space-3);
	border-radius: var(--nn-radius-lg);
	border: 1px solid var(--nn-color-border-default);
	background: var(--nn-color-bg-surface);
}

.nn-pros-cons__col--pros {
	border-top: 3px solid var(--nn-color-success-500);
}

.nn-pros-cons__col--cons {
	border-top: 3px solid var(--nn-color-error-500);
}

.nn-featured-quote {
	margin: var(--nn-space-6) 0;
	padding: var(--nn-space-4) var(--nn-space-3);
	text-align: center;
	background: var(--nn-color-bg-sunken);
	border-radius: var(--nn-radius-xl);
}

.nn-featured-quote p {
	margin: 0 auto;
	max-width: 40rem;
	font-family: var(--nn-font-serif);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	line-height: 1.45;
	color: var(--nn-color-text-primary);
}

.nn-pinterest-reminder {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-2);
	align-items: flex-start;
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	border: 1px dashed var(--nn-color-primary-500);
	border-radius: var(--nn-radius-lg);
	background: var(--nn-color-primary-50);
}

@media (min-width: 640px) {
	.nn-pinterest-reminder {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.nn-step-list {
	counter-reset: nn-step;
	list-style: none;
	margin: 0 0 var(--nn-space-4);
	padding: 0;
}

.nn-step-list > li {
	position: relative;
	counter-increment: nn-step;
	margin: 0 0 var(--nn-space-3);
	padding: var(--nn-space-3) var(--nn-space-3) var(--nn-space-3) 3.5rem;
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
	background: var(--nn-color-bg-surface);
}

.nn-step-list > li::before {
	content: counter(nn-step);
	position: absolute;
	left: var(--nn-space-2);
	top: var(--nn-space-3);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-primary-500);
	color: var(--nn-color-text-inverse);
	font-family: var(--nn-font-sans);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-bold);
}

.nn-disclosure-inline {
	margin: var(--nn-space-3) 0;
	padding: var(--nn-space-2);
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
	background: var(--nn-color-bg-sunken);
	border-radius: var(--nn-radius-md);
}

.nn-template-note {
	margin: 0 0 var(--nn-space-3);
	padding: var(--nn-space-2);
	border-left: 3px solid var(--nn-color-accent-500);
	background: var(--nn-color-accent-100);
	font-size: var(--nn-fs-sm);
	color: var(--nn-color-text-secondary);
}

/* -------------------------------------------------------------------------
 * Long-form guide chrome
 * ---------------------------------------------------------------------- */

.nn-guide {
	padding-bottom: var(--nn-space-8);
}

.nn-guide-header {
	padding-top: var(--nn-space-3);
	padding-bottom: var(--nn-space-3);
}

.nn-guide-header__kicker {
	margin: 0 0 var(--nn-space-1);
	font-size: var(--nn-fs-sm);
	font-weight: var(--nn-font-weight-semibold);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.nn-guide-header__kicker a {
	color: var(--nn-color-secondary-600);
	text-decoration: none;
}

.nn-guide-header__kicker a:hover {
	text-decoration: underline;
}

.nn-guide-header__title {
	margin: 0 0 var(--nn-space-2);
	text-wrap: balance;
}

.nn-guide-header__summary {
	margin: 0 0 var(--nn-space-2);
}

.nn-guide-header__byline {
	margin: 0;
}

/*
 * Guide / listicle hero — center in the content column.
 * Figure already carries .nn-container; force full-width image + no float.
 */
body.single-post .nn-guide-hero,
.nn-guide-hero {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: var(--nn-container-recipe, 45rem) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: var(--nn-space-4);
	text-align: center;
	clear: both;
}

body.single-post .nn-guide-hero__img,
body.single-post .nn-guide-hero img,
body.single-post .nn-guide-hero img.wp-post-image,
.nn-guide-hero__img,
.nn-guide-hero img,
.nn-guide-hero img.wp-post-image {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--nn-radius-xl);
	border: 1px solid var(--nn-color-border-default);
}

/* Keep prose column centered under the header */
.nn-guide__content {
	max-width: var(--nn-content-measure);
	margin-left: auto;
	margin-right: auto;
}

/*
 * Roundup / listicle dish photos (Pinterest-tall 2:3 sources).
 * Crop to a wide frame so desktop readers see the food at a glance
 * instead of a full-viewport tower of image.
 */
.nn-guide__content figure.wp-block-image,
.nn-guide__content .wp-block-image,
.nn-single--editorial .entry-content figure.wp-block-image,
.nn-single--editorial .entry-content .wp-block-image,
body.single-post.nn-theme .nn-guide__content figure.wp-block-image {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 1.25rem auto !important;
	overflow: hidden !important;
	border-radius: var(--nn-radius-lg, 10px);
	background: var(--nn-color-neutral-100, #efece6);
}

.nn-guide__content figure.wp-block-image img,
.nn-guide__content .wp-block-image img,
.nn-single--editorial .entry-content figure.wp-block-image img,
.nn-single--editorial .entry-content .wp-block-image img,
body.single-post.nn-theme .nn-guide__content figure.wp-block-image img,
body.single-post.nn-theme .nn-guide__content .wp-block-image img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	/* Wide crop — food reads clearly without endless scroll */
	aspect-ratio: 16 / 10 !important;
	max-height: min(22rem, 48vh) !important;
	object-fit: cover !important;
	object-position: center 40% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Desktop: slightly shorter so more of the list is above the fold */
@media (min-width: 768px) {
	.nn-guide__content figure.wp-block-image img,
	.nn-guide__content .wp-block-image img,
	.nn-single--editorial .entry-content figure.wp-block-image img,
	.nn-single--editorial .entry-content .wp-block-image img,
	body.single-post.nn-theme .nn-guide__content figure.wp-block-image img,
	body.single-post.nn-theme .nn-guide__content .wp-block-image img {
		aspect-ratio: 16 / 9 !important;
		max-height: min(20rem, 42vh) !important;
		object-position: center 35% !important;
	}
}

/* Featured hero on roundups — keep wide, not portrait-tall */
body.single-post .nn-guide-hero,
.nn-guide-hero {
	max-height: min(26rem, 50vh);
	overflow: hidden;
}

body.single-post .nn-guide-hero__img,
body.single-post .nn-guide-hero img,
.nn-guide-hero__img,
.nn-guide-hero img {
	aspect-ratio: 16 / 10 !important;
	max-height: min(26rem, 50vh) !important;
	object-fit: cover !important;
	object-position: center 40% !important;
	height: auto !important;
}

/* Also center recipe intro heroes (after Jump / Print / Share) */
body.single-post .nn-recipe-hero-image,
.nn-recipe-hero-image {
	display: block !important;
	float: none !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center;
	clear: both;
}

body.single-post .nn-recipe-hero-image__img,
body.single-post .nn-recipe-hero-image img,
.nn-recipe-hero-image__img,
.nn-recipe-hero-image img {
	display: block !important;
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.nn-editorial-after-content {
	margin-top: var(--nn-space-6);
}

/* Table of contents */
.nn-toc {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-sunken);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
}

.nn-toc__title {
	margin: 0 0 var(--nn-space-1-5) !important;
	font-family: var(--nn-font-sans) !important;
	font-size: 0.9375rem !important;
	font-weight: var(--nn-font-weight-bold) !important;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--nn-color-text-secondary);
}

.nn-toc ol,
.nn-toc ul {
	margin: 0;
	padding-left: 1.25em;
}

.nn-toc a {
	color: var(--nn-color-text-link);
	font-weight: var(--nn-font-weight-semibold);
	text-decoration: none;
}

.nn-toc a:hover {
	text-decoration: underline;
}

/* Key takeaways */
.nn-takeaways {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	background: var(--nn-color-secondary-100);
	border-radius: var(--nn-radius-lg);
	border-left: 4px solid var(--nn-color-secondary-500);
}

.nn-takeaways__title {
	margin: 0 0 var(--nn-space-1-5) !important;
	font-family: var(--nn-font-sans) !important;
	font-size: 1.0625rem !important;
	font-weight: var(--nn-font-weight-bold) !important;
}

.nn-takeaways ul {
	margin: 0;
	padding-left: 1.2em;
}

/* Checklist / shopping list */
.nn-checklist,
.nn-shopping-list {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
}

.nn-checklist__title,
.nn-shopping-list__title {
	margin: 0 0 var(--nn-space-1-5) !important;
	font-family: var(--nn-font-serif) !important;
	font-size: 1.25rem !important;
}

.nn-checklist ul,
.nn-shopping-list ul {
	margin: 0;
	padding-left: 1.25em;
	list-style: none;
}

.nn-checklist li,
.nn-shopping-list li {
	position: relative;
	padding-left: 0.25rem;
	margin-bottom: 0.5rem;
}

.nn-checklist li::marker,
.nn-shopping-list li::marker {
	content: "☐ ";
	color: var(--nn-color-primary-500);
}

/* Quick facts */
.nn-quick-facts {
	display: grid;
	gap: var(--nn-space-2);
	grid-template-columns: 1fr;
	margin: var(--nn-space-4) 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.nn-quick-facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.nn-quick-facts li {
	padding: var(--nn-space-2);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-md);
}

.nn-quick-facts__label {
	display: block;
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--nn-color-text-secondary);
	margin-bottom: 0.2rem;
}

.nn-quick-facts__value {
	font-weight: var(--nn-font-weight-semibold);
	color: var(--nn-color-text-primary);
}

/* Best pick banner */
.nn-best-pick {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	background: var(--nn-color-primary-50);
	border: 1px solid var(--nn-color-primary-100);
	border-radius: var(--nn-radius-lg);
}

.nn-best-pick__badge {
	display: inline-flex;
	margin: 0 0 var(--nn-space-1);
	padding: 0.2rem 0.55rem;
	border-radius: var(--nn-radius-full);
	background: var(--nn-color-primary-500);
	color: var(--nn-color-text-inverse);
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

/* Recipe callout (link to a recipe mid-article) */
.nn-recipe-callout {
	display: flex;
	flex-direction: column;
	gap: var(--nn-space-2);
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-3);
	background: var(--nn-color-bg-surface);
	border: 1px solid var(--nn-color-border-default);
	border-radius: var(--nn-radius-lg);
}

@media (min-width: 640px) {
	.nn-recipe-callout {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}

.nn-recipe-callout__label {
	margin: 0 0 0.25rem;
	font-size: var(--nn-fs-xs);
	font-weight: var(--nn-font-weight-bold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nn-color-secondary-600);
}

.nn-recipe-callout__title {
	margin: 0;
	font-family: var(--nn-font-serif);
	font-size: 1.25rem;
	font-weight: var(--nn-font-weight-semibold);
}

.nn-recipe-callout__title a {
	color: var(--nn-color-text-primary);
	text-decoration: none;
}

.nn-recipe-callout__title a:hover {
	color: var(--nn-color-text-link);
}

/* Lead magnet / download */
.nn-lead-magnet {
	margin: var(--nn-space-4) 0;
	padding: var(--nn-space-4);
	text-align: center;
	background: var(--nn-color-accent-100);
	border-radius: var(--nn-radius-xl);
	border: 1px solid var(--nn-color-border-default);
}

/* Tables in guides */
.nn-guide__content table,
.nn-is-editorial .entry-content table {
	font-size: var(--nn-fs-sm);
}

.nn-guide__content th,
.nn-is-editorial .entry-content th {
	background: var(--nn-color-bg-sunken);
}

/* Heading anchors for TOC */
.nn-guide__content h2 {
	scroll-margin-top: 5rem;
}

/* Utilities */
/* ===== utilities/_utilities.css ===== */
/**
 * Sparse utility classes. Prefer components over utility soup.
 */

.nn-u-text-center { text-align: center; }
.nn-u-text-left { text-align: left; }
.nn-u-text-right { text-align: right; }

.nn-u-mt-0 { margin-top: 0; }
.nn-u-mb-0 { margin-bottom: 0; }
.nn-u-mb-2 { margin-bottom: var(--nn-space-2); }
.nn-u-mb-3 { margin-bottom: var(--nn-space-3); }
.nn-u-mb-4 { margin-bottom: var(--nn-space-4); }
.nn-u-mt-4 { margin-top: var(--nn-space-4); }
.nn-u-mt-6 { margin-top: var(--nn-space-6); }

.nn-u-visually-eq {
	/* Equal height card grid children */
	height: 100%;
}

.nn-u-measure {
	max-width: var(--nn-content-measure);
}

.nn-u-mx-auto {
	margin-inline: auto;
}

.nn-u-hidden {
	display: none !important;
}

@media (max-width: 1023px) {
	.nn-u-hide-mobile {
		display: none !important;
	}
}

@media (min-width: 1024px) {
	.nn-u-hide-desktop {
		display: none !important;
	}
}

/* ===== utilities/_animations.css ===== */
/**
 * Subtle motion utilities. Respects prefers-reduced-motion via token collapse.
 */

.nn-fade-in {
	animation: nn-fade-in var(--nn-duration-slow) var(--nn-easing-standard) both;
}

@keyframes nn-fade-in {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.nn-transition {
	transition:
		color var(--nn-duration-fast) var(--nn-easing-standard),
		background-color var(--nn-duration-fast) var(--nn-easing-standard),
		border-color var(--nn-duration-fast) var(--nn-easing-standard),
		box-shadow var(--nn-duration-normal) var(--nn-easing-standard),
		transform var(--nn-duration-normal) var(--nn-easing-standard);
}

/* Final premium pass — always last so it wins over stacked homepage layers */
/* ===== layout/_premium-pass.css ===== */
/**
 * Premium design pass — Nest & Narrow
 *
 * Loaded last. Quiet luxury: more air, less chrome, espresso + cream + terracotta.
 * Magazine kitchen brand — not a startup UI kit.
 */

/* -------------------------------------------------------------------------
 * Global canvas & type
 * ---------------------------------------------------------------------- */

body.nn-theme,
body.home,
body.nn-is-front {
	background-color: #f6f4f0 !important;
	color: #2a2926;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.nn-theme .entry-content,
body.nn-theme .nn-prose {
	font-size: 1.0625rem;
	line-height: 1.75;
	color: #3d3833;
}

body.nn-theme .entry-content p,
body.nn-theme .nn-prose p {
	max-width: 38rem;
}

body.nn-theme .entry-content h1,
body.nn-theme .nn-h1,
body.nn-theme .nn-recipe-header__title {
	letter-spacing: -0.025em;
	font-weight: 600;
	line-height: 1.12;
}

body.nn-theme .entry-content h2,
body.nn-theme .nn-h2 {
	letter-spacing: -0.02em;
	font-weight: 600;
}

body.nn-theme a:not(.wp-block-button__link):not(.nn-btn):not(.nn-header-cta) {
	text-underline-offset: 0.18em;
}

/* -------------------------------------------------------------------------
 * Top bar — whisper, not banner
 * ---------------------------------------------------------------------- */

.nn-topbar {
	background: #2a2926 !important;
	color: rgba(250, 247, 243, 0.82) !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase;
}

.nn-topbar__link {
	color: #f6f4f0 !important;
	border-bottom-color: rgba(250, 247, 243, 0.35) !important;
	font-weight: 600 !important;
}

.nn-topbar__link:hover {
	border-bottom-color: #f6f4f0 !important;
	color: #fff !important;
}

/* -------------------------------------------------------------------------
 * Header — gallery quiet
 * ---------------------------------------------------------------------- */

.nn-site-header {
	background: rgba(247, 243, 237, 0.92) !important;
	backdrop-filter: blur(14px) saturate(1.1);
	-webkit-backdrop-filter: blur(14px) saturate(1.1);
	border-bottom: 1px solid rgba(44, 40, 37, 0.08) !important;
	box-shadow: none !important;
}

.nn-site-header__bar {
	min-height: 4.5rem !important;
}

.nn-site-header__title,
.nn-site-header__title-text {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
}

.nn-site-header__mark {
	background: #4f6f5c !important;
	box-shadow: none !important;
}

.nn-primary-nav > li > a {
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase;
	color: #3d3833 !important;
	min-height: 2.5rem !important;
	padding: 0.35rem 0.65rem !important;
}

.nn-primary-nav > li > a:hover,
.nn-primary-nav > li.current-menu-item > a,
.nn-primary-nav > li.current_page_item > a {
	color: #4f6f5c !important;
}

.nn-header-cta {
	min-height: 2.5rem !important;
	padding: 0.55rem 1.15rem !important;
	border-radius: 2px !important;
	border: 1px solid #2a2926 !important;
	background: #2a2926 !important;
	background-image: none !important;
	color: #f6f4f0 !important;
	font-size: 0.6875rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	box-shadow: none !important;
}

.nn-header-cta:hover {
	background: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

.nn-icon-btn {
	border-color: rgba(44, 40, 37, 0.12) !important;
	background: transparent !important;
	border-radius: 2px !important;
}

.nn-icon-btn:hover {
	border-color: #2a2926 !important;
	color: #2a2926 !important;
	background: transparent !important;
}

/* -------------------------------------------------------------------------
 * Homepage hero
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero,
body.nn-is-front .nn-home-hero--modern,
body.nn-is-front .nn-home-section {
	background: #f6f4f0 !important;
}

body.nn-is-front .nn-home-hero {
	padding-top: clamp(3rem, 6vw, 5.5rem) !important;
	padding-bottom: clamp(3.5rem, 7vw, 6rem) !important;
}

/* Brand eyebrow removed from hero — logo already carries the name */
body.nn-is-front .nn-home-hero__eyebrow,
body.nn-is-front p.nn-home-hero__eyebrow {
	display: none !important;
}

body.nn-is-front .nn-home-hero__title {
	font-weight: 600 !important;
	letter-spacing: -0.03em !important;
	line-height: 1.08 !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	max-width: 14ch !important;
}

body.nn-is-front .nn-home-hero__lede {
	font-size: 1.125rem !important;
	line-height: 1.65 !important;
	color: #6b6760 !important;
	-webkit-text-fill-color: #6b6760 !important;
	max-width: 32rem !important;
}

/* Search — refined bar */
body.nn-is-front .nn-home-hero__search .wp-block-search__inside-wrapper {
	border: 1px solid rgba(44, 40, 37, 0.14) !important;
	border-radius: 2px !important;
	background: #fff !important;
	box-shadow: none !important;
	overflow: hidden !important;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__input {
	font-size: 1rem !important;
	padding: 0.95rem 1.1rem !important;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__button {
	background: #2a2926 !important;
	color: #f6f4f0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	font-size: 0.75rem !important;
	padding: 0 1.25rem !important;
}

body.nn-is-front .nn-home-hero__search .wp-block-search__button:hover {
	background: #4f6f5c !important;
}

/* Chips — hairline */
body.nn-is-front .nn-home-chips a,
.nn-home-chips a {
	background: transparent !important;
	border: 1px solid rgba(44, 40, 37, 0.16) !important;
	border-radius: 2px !important;
	color: #6b6760 !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	min-height: 2rem !important;
	padding: 0.3rem 0.75rem !important;
}

body.nn-is-front .nn-home-chips a:hover,
.nn-home-chips a:hover {
	border-color: #2a2926 !important;
	color: #2a2926 !important;
	background: #fff !important;
	transform: none !important;
}

/* Proof line */
body.nn-is-front .nn-home-hero__proof {
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	color: #8a8279 !important;
	-webkit-text-fill-color: #8a8279 !important;
	gap: 1rem 1.5rem !important;
}

body.nn-is-front .nn-home-hero__proof span::before {
	content: "" !important;
	display: none !important;
}

/* Hero media */
body.nn-is-front .nn-home-hero__media {
	border-radius: 2px !important;
	box-shadow: none !important;
	border: 1px solid rgba(44, 40, 37, 0.06) !important;
}

/* Hero float — no gradient; matching white labels */
body.nn-is-front .nn-home-hero__float {
	border-radius: 0 !important;
	background: none !important;
	background-image: none !important;
	border: 0 !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

body.nn-is-front .nn-home-hero__float-kicker {
	display: none !important;
}

body.nn-is-front .nn-home-hero__float-title,
body.nn-is-front .nn-home-hero__float-title a {
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45) !important;
}

/* Section heads */
body.nn-is-front .nn-home-head__title,
body.nn-is-front .nn-home-content h2.nn-home-head__title {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
	font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.85rem) !important;
}

body.nn-is-front .nn-home-head__deck {
	font-size: 0.9375rem !important;
	color: #8a8279 !important;
	-webkit-text-fill-color: #8a8279 !important;
}

body.nn-is-front .nn-home-head__link {
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: #2a2926 !important;
	border-bottom: 1px solid rgba(44, 40, 37, 0.25);
	text-decoration: none !important;
	padding-bottom: 0.1rem;
}

body.nn-is-front .nn-home-head__link:hover {
	color: #4f6f5c !important;
	border-bottom-color: #4f6f5c !important;
}

/* Trust bar */
body.nn-is-front .nn-home-section--tight,
body.nn-is-front .nn-trust-bar {
	border-color: rgba(44, 40, 37, 0.08) !important;
}

body.nn-is-front .nn-trust-bar > span {
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: #8a8279 !important;
	-webkit-text-fill-color: #8a8279 !important;
}

body.nn-is-front .nn-trust-bar > span::before {
	background: #cfc7bc !important;
}

/* Latest recipe cards */
body.nn-is-front .nn-home-query .wp-block-post,
body.nn-is-front .nn-home-query li.wp-block-post {
	border: 1px solid rgba(44, 40, 37, 0.08) !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	background: #fff !important;
}

body.nn-is-front .nn-home-query .wp-block-post:hover {
	transform: none !important;
	border-color: rgba(44, 40, 37, 0.18) !important;
	box-shadow: 0 12px 32px rgba(44, 40, 37, 0.06) !important;
}

body.nn-is-front .nn-home-query .wp-block-post-title,
body.nn-is-front .nn-home-query h2.wp-block-post-title {
	font-weight: 600 !important;
	letter-spacing: -0.015em !important;
}

/* Newsletter band */
body.nn-is-front #newsletter,
body.nn-is-front .nn-home-section--sage {
	background: #efece6 !important;
}

body.nn-is-front #newsletter .nn-cta,
body.nn-is-front #newsletter .nn-cta--sage {
	background: transparent !important;
	border: 0 !important;
}

body.nn-is-front #newsletter h2,
body.nn-is-front #newsletter .nn-cta__title {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
}

/* About — open canvas; story is centered */
body.nn-is-front #about,
body.nn-is-front .nn-home-about {
	background: #f6f4f0 !important;
	text-align: center !important;
}

body.nn-is-front .nn-home-about--split,
body.nn-is-front .nn-home-about--centered {
	background: transparent !important;
}

/* -------------------------------------------------------------------------
 * Cards sitewide
 * ---------------------------------------------------------------------- */

.nn-card {
	border-radius: 2px !important;
	border-color: rgba(44, 40, 37, 0.08) !important;
	box-shadow: none !important;
}

.nn-card:hover,
.nn-card:focus-within {
	box-shadow: 0 14px 36px rgba(44, 40, 37, 0.07) !important;
	border-color: rgba(44, 40, 37, 0.16) !important;
}

.nn-card__title {
	font-weight: 600 !important;
	letter-spacing: -0.015em !important;
}

.nn-card__chip {
	border-radius: 2px !important;
	font-size: 0.6875rem !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
}

/* -------------------------------------------------------------------------
 * Recipe single
 * ---------------------------------------------------------------------- */

.nn-recipe-header__kicker,
.nn-recipe-header__kicker a {
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #4f6f5c !important;
}

.nn-recipe-header__title {
	font-weight: 600 !important;
	letter-spacing: -0.025em !important;
}

.nn-recipe-header__summary {
	font-size: 1.125rem !important;
	line-height: 1.65 !important;
	color: #6b6760 !important;
}

.nn-recipe-meta {
	gap: 1rem 1.5rem !important;
}

.nn-recipe-meta__label {
	font-size: 0.6875rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	color: #8a8279 !important;
}

.nn-recipe-meta__value {
	font-weight: 500 !important;
	color: #2a2926 !important;
}

.nn-recipe-hero-image {
	border-radius: 2px;
	overflow: hidden;
}

.nn-recipe-hero-image__img {
	border-radius: 2px;
}

/* Recipe actions use editorial buttons */
.nn-recipe-actions {
	gap: 0.65rem !important;
	margin-top: 1.5rem !important;
}

.nn-recipe-actions .nn-btn {
	min-height: 2.75rem;
	padding: 0.75rem 1.35rem;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}

.nn-recipe-actions a.nn-btn--recipe,
.nn-recipe-actions .nn-btn--recipe {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}

.nn-recipe-actions a.nn-btn--recipe:hover,
.nn-recipe-actions .nn-btn--recipe:hover {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}

/* Sticky mobile bar */





/* -------------------------------------------------------------------------
 * CTA / newsletter components
 * ---------------------------------------------------------------------- */

.nn-cta {
	background: #efece6 !important;
	border: 1px solid rgba(44, 40, 37, 0.06) !important;
	border-radius: 2px !important;
	padding: clamp(2rem, 4vw, 3rem) !important;
}

.nn-cta--sage {
	background: #efece6 !important;
	border-color: rgba(44, 40, 37, 0.06) !important;
}

.nn-cta__title {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
}

/* -------------------------------------------------------------------------
 * Footer
 * ---------------------------------------------------------------------- */

.nn-site-footer {
	background: #2a2926 !important;
	color: rgba(250, 247, 243, 0.78) !important;
	border-top: 0 !important;
}

.nn-site-footer a {
	color: rgba(250, 247, 243, 0.88) !important;
}

.nn-site-footer a:hover {
	color: #fff !important;
}

.nn-site-footer__heading {
	font-size: 0.75rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	color: rgba(250, 247, 243, 0.55) !important;
}

/* -------------------------------------------------------------------------
 * Mobile nav
 * ---------------------------------------------------------------------- */

.nn-mobile-nav__panel {
	background: #f6f4f0 !important;
	box-shadow: -12px 0 40px rgba(44, 40, 37, 0.12) !important;
}

.nn-mobile-nav__title {
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
}

.nn-mobile-nav__menu > li > a {
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.02em !important;
	border-bottom-color: rgba(44, 40, 37, 0.08) !important;
	text-transform: none !important;
}

.nn-mobile-nav__cta .nn-btn {
	width: 100%;
}

/* -------------------------------------------------------------------------
 * Kill leftover “startup UI” effects
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-query .wp-block-post:hover .wp-block-post-featured-image img {
	transform: none !important;
}

body.nn-theme .wp-block-button__link {
	/* ensure no theme.json radius wins */
	border-radius: 2px !important;
}

/*
 * Nuclear match: every homepage CTA link identical
 * (overrides leftover outline / terracotta hero rules)
 */
body.nn-is-front .wp-block-button .wp-block-button__link,
body.nn-is-front .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front .is-style-outline .wp-block-button__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 3.125rem !important;
	padding: 0.95rem 1.9rem !important;
	border-radius: 2px !important;
	border: 1px solid #2a2926 !important;
	background: #2a2926 !important;
	background-image: none !important;
	background-color: #2a2926 !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	box-shadow: none !important;
	font-family: "Source Sans 3", system-ui, sans-serif !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}

body.nn-is-front .wp-block-button .wp-block-button__link:hover,
body.nn-is-front .wp-block-button.is-style-outline .wp-block-button__link:hover,
body.nn-is-front .is-style-outline .wp-block-button__link:hover {
	background: #4f6f5c !important;
	background-color: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	box-shadow: none !important;
	transform: none !important;
}

/* ===== layout/_magazine-polish.css ===== */
/**
 * Magazine polish — Nest & Narrow
 *
 * Loaded last. Turns the flat “quiet” homepage into a premium editorial
 * experience: richer type, soft cards, lift on hover, luminous hero.
 * Still calm Scandinavian — polished, not loud startup chrome.
 */

/* -------------------------------------------------------------------------
 * Global type & canvas
 * ---------------------------------------------------------------------- */

body.nn-theme,
body.home,
body.nn-is-front {
	background:
		radial-gradient(1200px 500px at 10% -10%, rgba(79, 111, 92, 0.08), transparent 60%),
		radial-gradient(900px 420px at 100% 0%, rgba(168, 144, 112, 0.08), transparent 55%),
		#f6f4f0 !important;
}

body.nn-theme .entry-content,
body.nn-theme .nn-prose,
body.nn-is-front .entry-content {
	font-size: 1.125rem;
	line-height: 1.8;
	color: #3a3834;
}

body.nn-theme h1,
body.nn-theme .nn-h1,
body.nn-is-front .nn-home-hero__title,
body.nn-is-front h1.nn-home-hero__title {
	font-family: var(--nn-font-serif, "Source Serif 4", Georgia, serif) !important;
	font-weight: 600 !important;
	letter-spacing: -0.035em !important;
	line-height: 1.08 !important;
	color: #1f1e1c !important;
	text-wrap: balance;
}

body.nn-theme h2,
body.nn-is-front .nn-home-head__title,
body.nn-is-front h2.nn-home-head__title {
	font-family: var(--nn-font-serif, "Source Serif 4", Georgia, serif) !important;
	font-weight: 600 !important;
	letter-spacing: -0.025em !important;
	line-height: 1.15 !important;
	color: #1f1e1c !important;
}

body.nn-is-front .nn-home-head__deck,
body.nn-is-front .nn-home-hero__lede {
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem) !important;
	line-height: 1.65 !important;
	color: #5c5852 !important;
	max-width: 36rem;
}

/* -------------------------------------------------------------------------
 * Soft section shells (undo flat zero-radius)
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-section,
body.nn-is-front .nn-home-hero {
	border-radius: 0 !important; /* full-bleed sections stay edge-to-edge */
}

body.nn-is-front .nn-home-section--surface {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(250, 247, 242, 0.95)) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
}

body.nn-is-front .nn-home-section--tight.nn-home-section--surface {
	background: linear-gradient(180deg, #f3efe8, #efece6) !important;
	border-block: 1px solid rgba(42, 41, 38, 0.06) !important;
}

/* -------------------------------------------------------------------------
 * Hero — luminous editorial
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero,
body.nn-is-front .nn-home-hero--modern {
	position: relative;
	overflow: hidden;
	padding-top: clamp(3.75rem, 8vw, 7rem) !important;
	padding-bottom: clamp(3.75rem, 8vw, 7rem) !important;
	background:
		radial-gradient(900px 480px at 85% 20%, rgba(79, 111, 92, 0.14), transparent 60%),
		radial-gradient(700px 400px at 0% 100%, rgba(168, 144, 112, 0.12), transparent 55%),
		linear-gradient(165deg, #f8f6f1 0%, #f3efe8 48%, #efece6 100%) !important;
}

body.nn-is-front .nn-home-hero__title {
	font-size: clamp(2.4rem, 1.6rem + 3.2vw, 4rem) !important;
	margin-bottom: 1rem !important;
}

body.nn-is-front .nn-home-hero__lede {
	margin-bottom: 1.75rem !important;
}

body.nn-is-front .nn-home-hero__media,
body.nn-is-front .nn-home-hero__media img,
body.nn-is-front figure.nn-home-hero__media,
body.nn-is-front .nn-home-hero__aside img {
	border-radius: 1.35rem !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.65) inset,
		0 18px 50px rgba(42, 41, 38, 0.14),
		0 4px 14px rgba(42, 41, 38, 0.08) !important;
	overflow: hidden;
}

body.nn-is-front .nn-home-hero__aside {
	position: relative;
}

body.nn-is-front .nn-home-hero__float {
	position: absolute !important;
	left: 1.25rem !important;
	right: 1.25rem !important;
	bottom: 1.25rem !important;
	padding: 0.95rem 1.15rem !important;
	border-radius: 1rem !important;
	background: rgba(255, 255, 255, 0.82) !important;
	backdrop-filter: blur(12px) saturate(1.15);
	-webkit-backdrop-filter: blur(12px) saturate(1.15);
	border: 1px solid rgba(255, 255, 255, 0.7) !important;
	box-shadow: 0 10px 30px rgba(42, 41, 38, 0.12) !important;
}

body.nn-is-front .nn-home-hero__float-title,
body.nn-is-front .nn-home-hero__float-title a {
	font-family: var(--nn-font-serif, Georgia, serif) !important;
	font-size: 1.05rem !important;
	font-weight: 600 !important;
	color: #2a2926 !important;
	text-decoration: none !important;
}

/* Search + chips */
body.nn-is-front .nn-search-form--hero,
body.nn-is-front .nn-home-hero__search .wp-block-search__inside-wrapper {
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.1) !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 10px 28px rgba(42, 41, 38, 0.08) !important;
	overflow: hidden;
}

body.nn-is-front .nn-home-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 1rem 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.nn-is-front .nn-home-chips a {
	display: inline-flex;
	align-items: center;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(79, 111, 92, 0.18);
	color: #3f5949 !important;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none !important;
	transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
}

body.nn-is-front .nn-home-chips a:hover {
	background: #4f6f5c;
	border-color: #4f6f5c;
	color: #fff !important;
	transform: translateY(-1px);
}

body.nn-is-front .nn-home-hero__proof {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1rem;
	margin-top: 1.5rem !important;
	color: #6b6760 !important;
	font-size: 0.8125rem !important;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body.nn-is-front .nn-home-hero__proof span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

body.nn-is-front .nn-home-hero__proof span::before {
	content: "";
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: #4f6f5c;
	box-shadow: 0 0 0 3px rgba(79, 111, 92, 0.15);
}

/* -------------------------------------------------------------------------
 * Buttons — pill, glossy, confident
 * ---------------------------------------------------------------------- */

body.nn-theme .wp-block-button__link,
body.nn-theme .nn-btn .wp-block-button__link,
body.nn-is-front .nn-btn--hero-primary .wp-block-button__link,
body.nn-theme .button,
body.nn-theme .kb-button {
	border-radius: 999px !important;
	padding: 0.9rem 1.45rem !important;
	font-weight: 650 !important;
	letter-spacing: 0.01em;
	background: linear-gradient(180deg, #5a7d68 0%, #4f6f5c 100%) !important;
	border: 0 !important;
	color: #fff !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 10px 24px rgba(79, 111, 92, 0.28) !important;
	transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

body.nn-theme .wp-block-button__link:hover,
body.nn-theme .nn-btn .wp-block-button__link:hover,
body.nn-is-front .nn-btn--hero-primary .wp-block-button__link:hover {
	transform: translateY(-2px);
	filter: brightness(1.03);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.25) inset,
		0 14px 30px rgba(79, 111, 92, 0.34) !important;
	color: #fff !important;
}

body.nn-theme .wp-block-button.is-style-outline .wp-block-button__link,
body.nn-is-front .is-style-outline .wp-block-button__link {
	background: rgba(255, 255, 255, 0.7) !important;
	color: #3f5949 !important;
	border: 1px solid rgba(79, 111, 92, 0.35) !important;
	box-shadow: 0 6px 18px rgba(42, 41, 38, 0.06) !important;
}

/* -------------------------------------------------------------------------
 * Trust bar
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-trust-bar {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.85rem;
	align-items: stretch;
}

body.nn-is-front .nn-trust-bar > span {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.95rem 0.85rem;
	border-radius: 1rem;
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid rgba(42, 41, 38, 0.07);
	box-shadow: 0 8px 20px rgba(42, 41, 38, 0.05);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #3f5949;
}

@media (max-width: 800px) {
	body.nn-is-front .nn-trust-bar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* -------------------------------------------------------------------------
 * Category cards — soft tiles with lift
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-cats {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.15rem !important;
}

body.nn-is-front a.nn-home-cat {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 1.25rem !important;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.07) !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.8) inset,
		0 14px 34px rgba(42, 41, 38, 0.08) !important;
	text-decoration: none !important;
	color: inherit !important;
	transform: translateY(0);
	transition: transform 200ms ease, box-shadow 200ms ease;
}

body.nn-is-front a.nn-home-cat:hover {
	transform: translateY(-6px);
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.85) inset,
		0 22px 44px rgba(42, 41, 38, 0.14) !important;
}

body.nn-is-front .nn-home-cat__media {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: #e8ede9;
}

body.nn-is-front .nn-home-cat__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 320ms ease;
}

body.nn-is-front a.nn-home-cat:hover .nn-home-cat__media img {
	transform: scale(1.05);
}

body.nn-is-front .nn-home-cat__body {
	padding: 1rem 1.05rem 1.15rem;
	background: linear-gradient(180deg, #fff, #faf8f4);
}

body.nn-is-front .nn-home-cat__title {
	font-family: var(--nn-font-serif, Georgia, serif) !important;
	font-size: 1.15rem !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em;
	color: #2a2926 !important;
}

@media (max-width: 900px) {
	body.nn-is-front .nn-home-cats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* -------------------------------------------------------------------------
 * Guide / post cards sitewide
 * ---------------------------------------------------------------------- */

body.nn-theme .nn-card,
body.nn-theme article.nn-card,
body.nn-theme .nn-post-card,
body.nn-is-front .wp-block-post,
body.nn-theme .wp-block-post {
	border-radius: 1.2rem !important;
	overflow: hidden;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.07) !important;
	box-shadow: 0 12px 30px rgba(42, 41, 38, 0.07) !important;
	transition: transform 180ms ease, box-shadow 180ms ease;
}

body.nn-theme .nn-card:hover,
body.nn-theme .wp-block-post:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(42, 41, 38, 0.12) !important;
}

body.nn-theme .nn-card img,
body.nn-theme .wp-block-post-featured-image img {
	border-radius: 0 !important;
}

body.nn-theme .wp-block-post-title,
body.nn-theme .nn-card__title {
	font-family: var(--nn-font-serif, Georgia, serif) !important;
	letter-spacing: -0.02em;
}

/* -------------------------------------------------------------------------
 * Newsletter / CTA bands
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-newsletter,
body.nn-is-front .nn-newsletter,
body.nn-theme .nn-cta,
body.nn-is-front .nn-home-cta {
	border-radius: 1.5rem !important;
	background:
		radial-gradient(600px 260px at 100% 0%, rgba(168, 144, 112, 0.18), transparent 60%),
		linear-gradient(145deg, #3f5949 0%, #4f6f5c 55%, #5a7d68 100%) !important;
	color: #f6f4f0 !important;
	box-shadow: 0 20px 48px rgba(63, 89, 73, 0.28) !important;
	padding: clamp(2rem, 4vw, 3rem) !important;
	border: 0 !important;
}

body.nn-is-front .nn-home-newsletter h2,
body.nn-is-front .nn-home-newsletter p,
body.nn-theme .nn-cta h2,
body.nn-theme .nn-cta p {
	color: #f6f4f0 !important;
}

/* -------------------------------------------------------------------------
 * About media
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-about__media,
body.nn-is-front .nn-home-about__media img {
	border-radius: 1.35rem !important;
	box-shadow: 0 18px 44px rgba(42, 41, 38, 0.12) !important;
}

body.nn-is-front .nn-home-about__kicker {
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: #4f6f5c !important;
}

/* -------------------------------------------------------------------------
 * Header / footer chrome polish
 * ---------------------------------------------------------------------- */

body.nn-theme .site-header,
body.nn-theme .nn-site-header,
body.nn-theme #masthead,
body.nn-theme .kadence-header-row {
	background: rgba(246, 244, 240, 0.86) !important;
	backdrop-filter: blur(16px) saturate(1.15);
	-webkit-backdrop-filter: blur(16px) saturate(1.15);
	border-bottom: 1px solid rgba(42, 41, 38, 0.06) !important;
	box-shadow: 0 8px 24px rgba(42, 41, 38, 0.04) !important;
}

body.nn-theme .site-footer,
body.nn-theme .nn-site-footer,
body.nn-theme #colophon {
	background: #2a2926 !important;
	color: rgba(246, 244, 240, 0.82) !important;
}

body.nn-theme .site-footer a,
body.nn-theme .nn-site-footer a {
	color: #f6f4f0 !important;
}

/* -------------------------------------------------------------------------
 * Single / page content polish
 * ---------------------------------------------------------------------- */

body.nn-theme.single .entry-header .entry-title,
body.nn-theme.page .entry-header .entry-title,
body.nn-theme .nn-page-hero__title {
	font-family: var(--nn-font-serif, Georgia, serif) !important;
	font-size: clamp(2rem, 1.5rem + 2vw, 3rem) !important;
	letter-spacing: -0.03em !important;
	line-height: 1.12 !important;
}

body.nn-theme .entry-content > .wp-block-image img,
body.nn-theme .featured-image img,
body.nn-theme .post-thumbnail img {
	border-radius: 1.15rem !important;
	box-shadow: 0 16px 40px rgba(42, 41, 38, 0.1) !important;
}

body.nn-theme .entry-content blockquote {
	border-left: 3px solid #4f6f5c !important;
	background: rgba(79, 111, 92, 0.06);
	border-radius: 0 1rem 1rem 0;
	padding: 1rem 1.25rem !important;
	font-family: var(--nn-font-serif, Georgia, serif);
}

/* Slightly roomier containers on desktop */
@media (min-width: 960px) {
	body.nn-is-front .nn-home-hero__grid {
		gap: 2.5rem !important;
		align-items: center;
	}
}

/* ===== layout/_editorial-bold.css ===== */
/**
 * Bold editorial magazine pass — Nest & Narrow
 *
 * Intentionally loud (for a calm brand): badge proof row, oversized type,
 * roomy card padding so text never kisses curved corners.
 * Loaded absolute last.
 */

/* -------------------------------------------------------------------------
 * Type scale — magazine, not blog
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero__eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem !important;
	padding: 0.4rem 0.85rem !important;
	border-radius: 999px !important;
	background: #2a2926 !important;
	color: #f6f4f0 !important;
	-webkit-text-fill-color: #f6f4f0 !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	max-width: max-content !important;
}

body.nn-is-front .nn-home-hero__title,
body.nn-is-front h1.nn-home-hero__title {
	font-size: clamp(2.75rem, 1.5rem + 4vw, 4.6rem) !important;
	line-height: 1.02 !important;
	letter-spacing: -0.045em !important;
	font-weight: 700 !important;
	color: #141312 !important;
	-webkit-text-fill-color: #141312 !important;
	margin: 0 0 1.15rem !important;
	max-width: 11ch;
}

body.nn-is-front .nn-home-hero__lede {
	font-size: clamp(1.15rem, 1rem + 0.55vw, 1.4rem) !important;
	line-height: 1.55 !important;
	color: #4a4640 !important;
	-webkit-text-fill-color: #4a4640 !important;
	max-width: 34rem !important;
	margin-bottom: 1.75rem !important;
}

body.nn-is-front .nn-home-head__title,
body.nn-is-front h2.nn-home-head__title {
	font-size: clamp(2rem, 1.4rem + 1.8vw, 2.85rem) !important;
	letter-spacing: -0.03em !important;
	color: #141312 !important;
	-webkit-text-fill-color: #141312 !important;
}

/* -------------------------------------------------------------------------
 * PROOF BADGES — the plain line, redesigned
 * New class: .nn-proof-badges (escapes old quiet CSS)
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-proof-badges,
body.nn-is-front ul.nn-proof-badges {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.65rem !important;
	list-style: none !important;
	margin: 1.75rem 0 0 !important;
	padding: 0 !important;
	max-width: none !important;
}

body.nn-is-front .nn-proof-badges li,
body.nn-is-front .nn-proof-badge {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.55rem !important;
	margin: 0 !important;
	padding: 0.7rem 1rem 0.7rem 0.75rem !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid rgba(79, 111, 92, 0.22) !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.9) inset,
		0 8px 22px rgba(42, 41, 38, 0.08) !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.01em !important;
	line-height: 1.2 !important;
	text-transform: none !important;
}

body.nn-is-front .nn-proof-badge__icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 1.55rem;
	height: 1.55rem;
	border-radius: 50%;
	background: #4f6f5c !important;
	color: #fff !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	flex: 0 0 auto;
}

/* Kill legacy quiet proof styles if old markup remains */
body.nn-is-front .nn-home-hero__proof {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.65rem !important;
	margin-top: 1.75rem !important;
	padding: 0 !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
	-webkit-text-fill-color: inherit !important;
}

body.nn-is-front .nn-home-hero__proof span {
	display: inline-flex !important;
	align-items: center !important;
	padding: 0.7rem 1.05rem !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid rgba(79, 111, 92, 0.22) !important;
	box-shadow: 0 8px 22px rgba(42, 41, 38, 0.08) !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
}

body.nn-is-front .nn-home-hero__proof span::before {
	content: "✓" !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	margin-right: 0.45rem !important;
	border-radius: 50%;
	background: #4f6f5c !important;
	color: #fff !important;
	font-size: 0.7rem !important;
	opacity: 1 !important;
}

body.nn-is-front .nn-home-hero__proof span:first-child::before {
	display: inline-flex !important;
}

/* -------------------------------------------------------------------------
 * Trust strip — real cards, not plain text
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-trust-bar {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 0.85rem !important;
	max-width: 70rem !important;
	margin: 0 auto !important;
	padding: 0 !important;
	justify-content: stretch !important;
}

body.nn-is-front .nn-trust-bar > span {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	min-height: 3.5rem !important;
	padding: 1rem 1.1rem !important;
	border-radius: 1rem !important;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.08) !important;
	border-left: 1px solid rgba(42, 41, 38, 0.08) !important;
	box-shadow: 0 10px 28px rgba(42, 41, 38, 0.07) !important;
	color: #3f5949 !important;
	-webkit-text-fill-color: #3f5949 !important;
	font-size: 0.8rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
}

body.nn-is-front .nn-trust-bar > span::before {
	display: none !important;
	content: none !important;
}

body.nn-is-front .nn-trust-bar > span + span {
	border-left: 1px solid rgba(42, 41, 38, 0.08) !important;
}

@media (max-width: 800px) {
	body.nn-is-front .nn-trust-bar {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* -------------------------------------------------------------------------
 * Room cards — roomy padding inside curves
 * ---------------------------------------------------------------------- */

body.nn-is-front a.nn-home-cat {
	border-radius: 1.5rem !important;
	overflow: hidden !important;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.08) !important;
	box-shadow: 0 16px 40px rgba(42, 41, 38, 0.1) !important;
}

body.nn-is-front .nn-home-cat__body {
	padding: 1.35rem 1.35rem 1.5rem !important; /* was cramped */
	text-align: left !important;
	background: #fff !important;
}

body.nn-is-front .nn-home-cat__title {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.nn-is-front .nn-home-cats {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.35rem !important;
}

/* -------------------------------------------------------------------------
 * Guide cards — more inner air
 * ---------------------------------------------------------------------- */

body.nn-theme .nn-card,
body.nn-is-front .nn-card,
body.nn-is-front .wp-block-post .nn-card,
body.nn-is-front .wp-block-group.nn-card {
	border-radius: 1.5rem !important;
	overflow: hidden !important;
	background: #fff !important;
	border: 1px solid rgba(42, 41, 38, 0.08) !important;
	box-shadow: 0 16px 40px rgba(42, 41, 38, 0.09) !important;
}

body.nn-is-front .nn-card > .wp-block-group,
body.nn-is-front .nn-card .wp-block-group {
	padding: 1.35rem 1.4rem 1.55rem !important;
}

body.nn-is-front .nn-card .wp-block-post-title,
body.nn-is-front .nn-card__title,
body.nn-is-front .nn-card .wp-block-post-title a {
	font-size: 1.35rem !important;
	line-height: 1.25 !important;
	letter-spacing: -0.02em !important;
	font-weight: 700 !important;
}

/* -------------------------------------------------------------------------
 * Hero media — stronger presence
 * ---------------------------------------------------------------------- */

body.nn-is-front .nn-home-hero {
	background:
		radial-gradient(1000px 520px at 90% 0%, rgba(79, 111, 92, 0.18), transparent 55%),
		radial-gradient(800px 420px at 0% 80%, rgba(42, 41, 38, 0.06), transparent 50%),
		linear-gradient(160deg, #fbfaf7 0%, #f3efe8 55%, #ebe6de 100%) !important;
	padding-top: clamp(4rem, 9vw, 7.5rem) !important;
	padding-bottom: clamp(4rem, 9vw, 7.5rem) !important;
}

body.nn-is-front .nn-home-hero__media,
body.nn-is-front .nn-home-hero__media img,
body.nn-is-front figure.nn-home-hero__media {
	border-radius: 1.75rem !important;
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.7) inset,
		0 28px 60px rgba(42, 41, 38, 0.18) !important;
}

body.nn-is-front .nn-home-hero__float {
	left: 1.5rem !important;
	right: 1.5rem !important;
	bottom: 1.5rem !important;
	padding: 1.1rem 1.25rem !important;
	border-radius: 1.15rem !important;
}

/* Search field — more presence */
body.nn-is-front .nn-home-hero__search .wp-block-search__inside-wrapper,
body.nn-is-front .nn-search-form--hero {
	min-height: 3.35rem !important;
	border-radius: 999px !important;
	border: 1px solid rgba(42, 41, 38, 0.12) !important;
	box-shadow: 0 14px 36px rgba(42, 41, 38, 0.1) !important;
	background: #fff !important;
}

body.nn-is-front .nn-home-chips a {
	padding: 0.55rem 1rem !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1px solid rgba(79, 111, 92, 0.25) !important;
	color: #3f5949 !important;
	-webkit-text-fill-color: #3f5949 !important;
	font-weight: 700 !important;
	box-shadow: 0 6px 16px rgba(42, 41, 38, 0.06) !important;
}

body.nn-is-front .nn-home-chips a:hover {
	background: #4f6f5c !important;
	border-color: #4f6f5c !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

/* Buttons */
body.nn-is-front .nn-btn--hero-primary .wp-block-button__link,
body.nn-is-front .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	padding: 1rem 1.6rem !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	border-radius: 999px !important;
	background: #2a2926 !important; /* ink CTA = bolder magazine */
	box-shadow: 0 14px 32px rgba(42, 41, 38, 0.28) !important;
}

body.nn-is-front .nn-btn--hero-primary .wp-block-button__link:hover,
body.nn-is-front .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: #4f6f5c !important;
}

body.nn-is-front .is-style-outline .wp-block-button__link {
	padding: 1rem 1.5rem !important;
	border-radius: 999px !important;
	background: #fff !important;
	border: 1.5px solid #2a2926 !important;
	color: #2a2926 !important;
	-webkit-text-fill-color: #2a2926 !important;
	box-shadow: 0 8px 20px rgba(42, 41, 38, 0.06) !important;
}

/* Newsletter band stays sage but punchier */
body.nn-is-front .nn-home-newsletter,
body.nn-is-front .nn-cta {
	border-radius: 1.75rem !important;
	padding: clamp(2.5rem, 5vw, 3.75rem) !important;
}

body.nn-is-front .nn-home-newsletter h2,
body.nn-is-front .nn-cta h2 {
	font-size: clamp(1.85rem, 1.3rem + 1.5vw, 2.6rem) !important;
	letter-spacing: -0.03em !important;
}

/* Note: brand fonts are enqueued from PHP (Source Serif 4 + Source Sans 3). */
