/**
 * Nylah's theme — main stylesheet.
 *
 * Mobile-first. WCAG 2.2 AA: visible focus, sufficient contrast, no colour-only
 * meaning, reduced-motion support. Tested at 320/375/390/768/1024/1440.
 *
 * Contents:
 *   1. Design tokens
 *   2. Reset & base
 *   3. Accessibility helpers
 *   4. Layout primitives
 *   5. Buttons & forms
 *   6. Header / nav
 *   7. Footer
 *   8. Homepage sections
 *   9. Blog / archive / single
 *  10. WooCommerce
 *  11. WhatsApp float
 *  12. Utilities & motion
 */

/* ------------------------------------------------------------------ *
 * 1. Design tokens
 * ------------------------------------------------------------------ */
:root {
	--nyl-charcoal: #282829;
	--nyl-charcoal-soft: #3D3D3F;
	--nyl-cream: #F3F0E9;
	--nyl-cream-deep: #E7E1D3;
	--nyl-white: #FDFCFA;
	--nyl-red: #CC111E;
	--nyl-red-bright: #ED1C24;
	--nyl-orange: #F3832F;
	--nyl-orange-deep: #C96A1E;
	--nyl-coral: #F75C68;

	--color-bg: var(--nyl-cream);
	--color-surface: var(--nyl-white);
	--color-surface-alt: var(--nyl-cream-deep);
	--color-text: var(--nyl-charcoal);
	--color-text-soft: #4b5160;
	--color-heading: var(--nyl-charcoal);
	--color-accent: var(--nyl-red);
	--color-accent-strong: var(--nyl-orange-deep);
	--color-border: #d8d2c4;
	--color-focus: var(--nyl-orange-deep);

	/* Brand type: Arial is a documented Nylah's brand font and web-safe; it leads
	   the stack as a compatible stand-in for Effra (not freely web-licensed). */
	--font-sans: Arial, "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", sans-serif;
	--font-heading: var(--font-sans);
	--font-serif: var(--font-sans);

	--step--1: clamp(0.83rem, 0.8rem + 0.15vw, 0.9rem);
	--step-0: clamp(1rem, 0.96rem + 0.2vw, 1.1rem);
	--step-1: clamp(1.2rem, 1.1rem + 0.5vw, 1.4rem);
	--step-2: clamp(1.5rem, 1.3rem + 1vw, 1.85rem);
	--step-3: clamp(1.9rem, 1.55rem + 1.75vw, 2.6rem);
	--step-4: clamp(2.4rem, 1.85rem + 2.75vw, 3.5rem);

	--space-2xs: 0.5rem;
	--space-xs: 0.75rem;
	--space-s: 1rem;
	--space-m: 1.5rem;
	--space-l: 2.5rem;
	--space-xl: 4rem;
	--space-2xl: 6rem;

	--radius-s: 8px;
	--radius-m: 16px;
	--radius-pill: 999px;

	--wrap: 1200px;
	--wrap-reading: 720px;

	--shadow-s: 0 1px 2px rgba(37, 42, 52, 0.06), 0 2px 8px rgba(37, 42, 52, 0.06);
	--shadow-m: 0 6px 24px rgba(37, 42, 52, 0.1);
}

/* ------------------------------------------------------------------ *
 * 2. Reset & base
 * ------------------------------------------------------------------ */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background-color: var(--color-bg);
	color: var(--color-text);
	font-family: var(--font-serif);
	font-size: var(--step-0);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-serif);
	color: var(--color-heading);
	line-height: 1.15;
	font-weight: 600;
	margin: 0 0 0.5em;
	text-wrap: balance;
}

p {
	margin: 0 0 1em;
}

a {
	color: var(--color-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

a:hover,
a:focus-visible {
	color: var(--color-accent-strong);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol {
	padding-left: 1.2em;
}

button {
	font-family: inherit;
}

.eyebrow,
.hero__eyebrow,
.entry-eyebrow {
	font-family: var(--font-sans);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: var(--step--1);
	font-weight: 600;
	color: var(--color-accent);
	margin: 0 0 var(--space-2xs);
}

/* ------------------------------------------------------------------ *
 * 3. Accessibility helpers
 * ------------------------------------------------------------------ */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
	padding: 0.75rem 1.25rem;
	border-radius: 0 0 var(--radius-s) 0;
	font-family: var(--font-sans);
}

.skip-link:focus {
	left: 0;
	color: var(--nyl-white);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--color-focus);
	outline-offset: 2px;
	border-radius: 2px;
}

.placeholder-note {
	font-family: var(--font-sans);
	font-size: var(--step--1);
	color: var(--nyl-coral);
	background: rgba(199, 125, 46, 0.12);
	border: 1px dashed var(--nyl-orange);
	padding: 0.35em 0.6em;
	border-radius: var(--radius-s);
	display: inline-block;
}

/* ------------------------------------------------------------------ *
 * 4. Layout primitives
 * ------------------------------------------------------------------ */
.wrap {
	width: 100%;
	max-width: var(--wrap);
	margin-inline: auto;
	padding-inline: var(--space-s);
}

.wrap--reading {
	max-width: var(--wrap-reading);
}

.site-main {
	display: block;
}

section[class] {
	padding-block: var(--space-xl);
}

.section-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-s);
	margin-bottom: var(--space-l);
}

.section-header__title {
	font-size: var(--step-3);
	margin: 0;
}

.section-header__intro {
	flex-basis: 100%;
	color: var(--color-text-soft);
	max-width: 46ch;
	margin: 0;
}

.section-header__link {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: var(--step--1);
	white-space: nowrap;
}

.section-empty,
.section-empty p {
	color: var(--color-text-soft);
	font-style: italic;
}

/* ------------------------------------------------------------------ *
 * 5. Buttons & forms
 * ------------------------------------------------------------------ */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: var(--step-0);
	line-height: 1.2;
	padding: 0.85em 1.6em;
	border-radius: var(--radius-pill);
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.btn--primary {
	background-color: var(--nyl-red);
	color: var(--nyl-white);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	background-color: var(--nyl-orange-deep);
	color: var(--nyl-white);
	transform: translateY(-1px);
}

.btn--secondary {
	background-color: transparent;
	color: var(--nyl-charcoal);
	border-color: var(--nyl-charcoal);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
	background-color: var(--nyl-charcoal);
	color: var(--nyl-white);
}

.btn--text {
	background: transparent;
	color: var(--color-accent);
	padding-inline: 0.25em;
	border-radius: var(--radius-s);
}

.btn--text:hover,
.btn--text:focus-visible {
	color: var(--color-accent-strong);
	text-decoration: underline;
}

.btn[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}

input[type="text"],
input[type="email"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
textarea,
select {
	width: 100%;
	font: inherit;
	font-family: var(--font-sans);
	padding: 0.7em 0.9em;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-s);
	background: var(--color-surface);
	color: var(--color-text);
}

label {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: var(--step--1);
}

.search-form__row {
	display: flex;
	gap: var(--space-2xs);
	margin-top: var(--space-2xs);
}

.search-form__input {
	flex: 1;
}

/* ------------------------------------------------------------------ *
 * 6. Header / nav
 * ------------------------------------------------------------------ */
.announcement {
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
	font-family: var(--font-sans);
	font-size: var(--step--1);
}

.announcement__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-s);
	padding-block: 0.6em;
	text-align: center;
}

.announcement__text {
	margin: 0;
}

.announcement__dismiss {
	background: transparent;
	border: 0;
	color: inherit;
	font-size: 1.4em;
	line-height: 1;
	cursor: pointer;
	min-width: 44px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.3em;
}

.site-header {
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
	position: sticky;
	top: 0;
	z-index: 50;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: var(--space-s);
	padding-block: var(--space-xs);
}

.site-branding {
	margin-right: auto;
}

.site-title {
	font-size: var(--step-1);
	margin: 0;
}

.site-title a {
	color: var(--color-heading);
	text-decoration: none;
}

.custom-logo {
	max-height: 56px;
	width: auto;
}

.nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 44px;
	background: transparent;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-s);
	padding: 0.5em 0.8em;
	font-family: var(--font-sans);
	font-weight: 600;
	cursor: pointer;
	color: var(--color-text);
}

.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
	display: block;
	width: 20px;
	height: 2px;
	background: currentColor;
	position: relative;
}

.nav-toggle__bar::before,
.nav-toggle__bar::after {
	content: "";
	position: absolute;
	left: 0;
}

.nav-toggle__bar::before { top: -6px; }
.nav-toggle__bar::after { top: 6px; }

.main-navigation .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.main-navigation a {
	font-family: var(--font-sans);
	font-weight: 600;
	color: var(--color-text);
	text-decoration: none;
	display: block;
	padding: 0.6em 0;
}

.main-navigation a:hover,
.main-navigation a:focus-visible {
	color: var(--color-accent);
}

.site-header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-s);
}

.header-account {
	font-family: var(--font-sans);
	font-weight: 600;
	text-decoration: none;
	color: var(--color-text);
	white-space: nowrap;
}
.header-account:hover,
.header-account:focus-visible { color: var(--nyl-red); }

.header-cart {
	font-family: var(--font-sans);
	font-weight: 600;
	text-decoration: none;
	color: var(--color-text);
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
}

.header-cart__count {
	background: var(--nyl-red);
	color: var(--nyl-white);
	border-radius: var(--radius-pill);
	min-width: 1.5em;
	height: 1.5em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--step--1);
	padding-inline: 0.4em;
}

/* Mobile nav: collapsed by default, toggled open. */
@media (max-width: 900px) {
	.main-navigation {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: var(--color-bg);
		border-bottom: 1px solid var(--color-border);
		padding: var(--space-s);
		display: none;
		box-shadow: var(--shadow-m);
	}

	.main-navigation.is-open {
		display: block;
	}

	.main-navigation .menu {
		display: flex;
		flex-direction: column;
	}

	.main-navigation a {
		border-bottom: 1px solid var(--color-border);
	}
}

@media (min-width: 901px) {
	.nav-toggle {
		display: none;
	}

	.main-navigation .menu {
		display: flex;
		gap: var(--space-m);
		align-items: center;
	}

	.site-header__inner {
		gap: var(--space-m);
	}
}

/* ------------------------------------------------------------------ *
 * 7. Footer
 * ------------------------------------------------------------------ */
.site-footer {
	background: var(--nyl-charcoal);
	color: #d9dbe1;
	margin-top: var(--space-2xl);
	font-family: var(--font-sans);
}

.site-footer a {
	color: #e8e5dd;
	text-decoration: none;
}

.site-footer a:hover,
.site-footer a:focus-visible {
	color: var(--nyl-white);
	text-decoration: underline;
}

.site-footer__inner {
	display: grid;
	gap: var(--space-l);
	padding-block: var(--space-xl);
	grid-template-columns: 1fr;
}

.site-footer__name {
	font-family: var(--font-serif);
	font-size: var(--step-1);
	color: var(--nyl-white);
	margin: 0 0 var(--space-2xs);
}

.site-footer__contact {
	font-style: normal;
	line-height: 1.9;
}

.site-footer__menus {
	display: grid;
	gap: var(--space-l);
	grid-template-columns: repeat(2, 1fr);
}

.footer-col__title {
	color: var(--nyl-white);
	font-family: var(--font-sans);
	font-size: var(--step-0);
	margin: 0 0 var(--space-xs);
}

.footer-col__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5em;
}

.social-links {
	list-style: none;
	display: flex;
	gap: var(--space-xs);
	padding: 0;
	margin: var(--space-s) 0 0;
}

.social-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4em;
	height: 2.4em;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--radius-pill);
	font-weight: 700;
}

.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	justify-content: space-between;
	align-items: center;
	padding-block: var(--space-m);
	font-size: var(--step--1);
}

.footer-legal__menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-m);
	padding: 0;
	margin: 0;
}

@media (min-width: 768px) {
	.site-footer__inner {
		grid-template-columns: 1.2fr 2fr;
	}

	.site-footer__menus {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ------------------------------------------------------------------ *
 * 8. Homepage sections
 * ------------------------------------------------------------------ */

/* Hero */
.hero {
	background: linear-gradient(180deg, var(--nyl-cream) 0%, var(--nyl-cream-deep) 100%);
}

.hero__inner {
	display: grid;
	gap: var(--space-l);
	align-items: center;
}

.hero__heading {
	font-size: var(--step-4);
	margin-bottom: var(--space-s);
}

.hero__subheading {
	font-size: var(--step-1);
	color: var(--color-text-soft);
	max-width: 42ch;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	margin-top: var(--space-m);
}

.hero__image,
.hero__placeholder,
.story__placeholder,
.founder__placeholder,
.flavors__placeholder {
	border-radius: var(--radius-m);
	box-shadow: var(--shadow-m);
}

.hero__placeholder,
.story__placeholder,
.founder__placeholder {
	aspect-ratio: 4 / 3;
	/* Clean brand panel (visitors see no placeholder text; only editors do). */
	background: linear-gradient(135deg, var(--nyl-cream) 0%, var(--nyl-cream-deep) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-m);
	text-align: center;
}

@media (min-width: 768px) {
	.hero__inner {
		grid-template-columns: 1.1fr 1fr;
	}
}

/* Trust strip */
.trust {
	background: var(--nyl-charcoal);
	color: #e8e5dd;
}

.trust__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-m);
	grid-template-columns: 1fr;
}

.trust__title {
	color: var(--nyl-white);
	font-size: var(--step-0);
	font-family: var(--font-sans);
	margin: 0 0 0.25em;
}

.trust__desc {
	margin: 0;
	font-size: var(--step--1);
	color: #c9ccd4;
}

@media (min-width: 600px) {
	.trust__list { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.trust__list { grid-template-columns: repeat(5, 1fr); }
}

/* Grid helpers used by several sections */
.featured__grid,
.flavors__grid,
.serving__list,
.impact__grid,
.journal__grid,
.social-proof__grid,
.b2b__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--space-m);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.flavors__grid,
	.serving__list,
	.impact__grid,
	.journal__grid,
	.social-proof__grid,
	.b2b__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.flavors__grid { grid-template-columns: repeat(3, 1fr); }
	.serving__list { grid-template-columns: repeat(4, 1fr); }
	.journal__grid { grid-template-columns: repeat(3, 1fr); }
}

/* Flavors */
.flavors { background: var(--color-surface); }

.flavors__card {
	display: block;
	text-decoration: none;
	color: var(--color-text);
	background: var(--nyl-cream);
	border-radius: var(--radius-m);
	overflow: hidden;
	box-shadow: var(--shadow-s);
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.flavors__card:hover,
.flavors__card:focus-visible {
	transform: translateY(-3px);
	box-shadow: var(--shadow-m);
}

.flavors__media img,
.flavors__placeholder {
	aspect-ratio: 1 / 1;
	width: 100%;
	object-fit: cover;
	display: block;
	background: var(--nyl-cream-deep);
}

.flavors__name {
	display: block;
	font-family: var(--font-sans);
	font-weight: 700;
	padding: var(--space-s) var(--space-s) 0;
}

.flavors__desc {
	display: block;
	padding: 0.25em var(--space-s) var(--space-s);
	color: var(--color-text-soft);
	font-size: var(--step--1);
}

/* Story */
.story__inner {
	display: grid;
	gap: var(--space-l);
	align-items: center;
}

.story__image {
	border-radius: var(--radius-m);
	box-shadow: var(--shadow-m);
	width: 100%;
}

.story__heading { font-size: var(--step-3); }

@media (min-width: 768px) {
	.story__inner { grid-template-columns: 1fr 1.1fr; }
}

/* Serving */
.serving { background: var(--nyl-cream-deep); }

.serving__item {
	background: var(--color-surface);
	border-radius: var(--radius-m);
	padding: var(--space-m);
	box-shadow: var(--shadow-s);
}

.serving__num {
	font-family: var(--font-sans);
	font-weight: 700;
	color: var(--nyl-orange-deep);
	font-size: var(--step-1);
}

.serving__title { font-size: var(--step-1); margin: 0.25em 0; }
.serving__desc { margin: 0; color: var(--color-text-soft); font-size: var(--step--1); }

/* Founder */
.founder { background: var(--color-surface); }

.founder__inner {
	display: grid;
	gap: var(--space-l);
	align-items: center;
}

.founder__image {
	border-radius: var(--radius-m);
	box-shadow: var(--shadow-m);
	width: 100%;
}

.founder__placeholder { aspect-ratio: 1 / 1; }

/* Homepage photos fill the same box as their placeholder panels. */
.hero__image,
.story__image,
.founder__image {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
}

.story__image { object-position: center 35%; }

.founder__image { aspect-ratio: 1 / 1; }

.founder__content { margin: 0; }

.founder__quote {
	font-size: var(--step-2);
	line-height: 1.4;
	margin: 0 0 var(--space-s);
	border-left: 4px solid var(--nyl-orange);
	padding-left: var(--space-s);
}

.founder__name { display: block; font-family: var(--font-sans); font-weight: 700; }
.founder__role { display: block; color: var(--color-text-soft); font-family: var(--font-sans); font-size: var(--step--1); }

@media (min-width: 768px) {
	.founder__inner { grid-template-columns: 0.8fr 1.2fr; }
}

/* Impact */
.impact { background: var(--nyl-red); color: var(--nyl-white); text-align: center; }
.impact .section-header__title { color: var(--nyl-white); }
.impact__value { display: block; font-size: var(--step-4); font-weight: 700; }
.impact__label { display: block; font-family: var(--font-sans); font-size: var(--step--1); color: #F3F0E9; }

/* Journal */
.journal-card {
	background: var(--color-surface);
	border-radius: var(--radius-m);
	overflow: hidden;
	box-shadow: var(--shadow-s);
	height: 100%;
}

.journal-card__media img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.journal-card__body { padding: var(--space-m); }
.journal-card__title { font-size: var(--step-1); margin: 0 0 0.4em; }
.journal-card__title a { text-decoration: none; color: var(--color-heading); }
.journal-card__title a:hover { color: var(--color-accent); }
.journal-card__excerpt { margin: 0; color: var(--color-text-soft); font-size: var(--step--1); }

/* Social proof */
.social-proof { background: var(--nyl-cream-deep); }
.testimonial {
	margin: 0;
	background: var(--color-surface);
	border-radius: var(--radius-m);
	padding: var(--space-m);
	box-shadow: var(--shadow-s);
	height: 100%;
}
.testimonial__quote { font-size: var(--step-1); margin: 0 0 var(--space-s); }
.testimonial__author { display: block; font-family: var(--font-sans); font-weight: 700; }
.testimonial__role { display: block; color: var(--color-text-soft); font-size: var(--step--1); }

/* Where to buy */
.where-to-buy { text-align: center; }
.where-to-buy__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	justify-content: center;
	margin-bottom: var(--space-l);
}
.where-to-buy .section-header { justify-content: center; text-align: center; }

/* B2B */
.b2b { background: var(--color-surface); }
.b2b-card {
	background: var(--nyl-cream);
	border-radius: var(--radius-m);
	padding: var(--space-l);
	box-shadow: var(--shadow-s);
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--space-s);
}
.b2b-card__title { font-size: var(--step-2); margin: 0; }
.b2b-card__desc { margin: 0; color: var(--color-text-soft); flex: 1; }

/* Partner */
.partner { background: linear-gradient(135deg, var(--nyl-coral) 0%, var(--nyl-orange-deep) 100%); color: var(--nyl-white); }
.partner__inner {
	display: grid;
	gap: var(--space-m);
	align-items: center;
}
.partner__heading { color: var(--nyl-white); font-size: var(--step-3); }
.partner__body { color: #f6ede2; margin: 0; max-width: 46ch; }
.partner__actions { display: flex; flex-wrap: wrap; gap: var(--space-s); }
.partner .btn--secondary { border-color: var(--nyl-white); color: var(--nyl-white); }
.partner .btn--secondary:hover,
.partner .btn--secondary:focus-visible { background: var(--nyl-white); color: var(--nyl-charcoal); }
.partner .btn--text { color: #fbeede; }

@media (min-width: 768px) {
	.partner__inner { grid-template-columns: 1.4fr 1fr; }
	.partner__actions { justify-content: flex-end; }
}

/* Newsletter */
.newsletter { background: var(--nyl-charcoal); color: #e8e5dd; }
.newsletter__inner {
	display: grid;
	gap: var(--space-l);
	align-items: start;
}
.newsletter__heading { color: var(--nyl-white); font-size: var(--step-3); }
.newsletter__body { color: #c9ccd4; }
.newsletter__field { margin-bottom: var(--space-s); }
.newsletter__consent {
	display: flex;
	gap: 0.6em;
	align-items: flex-start;
	margin-bottom: var(--space-s);
	font-size: var(--step--1);
	font-weight: 400;
}
.newsletter__consent input { width: auto; margin-top: 0.25em; }
.newsletter__consent label { font-weight: 400; color: #c9ccd4; }
.newsletter__label { color: var(--nyl-white); display: block; margin-bottom: 0.35em; }

@media (min-width: 768px) {
	.newsletter__inner { grid-template-columns: 1fr 1fr; }
}

/* ------------------------------------------------------------------ *
 * 9. Blog / archive / single
 * ------------------------------------------------------------------ */
.page-header { margin-block: var(--space-l); }
.page-header__title { font-size: var(--step-3); }

.post-list {
	display: grid;
	gap: var(--space-l);
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.post-list { grid-template-columns: repeat(2, 1fr); }
	.has-no-sidebar .post-list { grid-template-columns: repeat(3, 1fr); }
}

.post-card {
	background: var(--color-surface);
	border-radius: var(--radius-m);
	overflow: hidden;
	box-shadow: var(--shadow-s);
}

.post-card__media img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
}

.post-card__body { padding: var(--space-m); }
.post-card__title { font-size: var(--step-1); margin: 0.2em 0 0.4em; }
.post-card__title a { text-decoration: none; color: var(--color-heading); }
.post-card__meta { font-family: var(--font-sans); font-size: var(--step--1); color: var(--color-text-soft); }
.post-card__excerpt { color: var(--color-text-soft); }

.single-article,
.page-article { padding-block: var(--space-l); }

.entry-title { font-size: var(--step-4); }

.entry-meta {
	font-family: var(--font-sans);
	font-size: var(--step--1);
	color: var(--color-text-soft);
	display: flex;
	gap: 0.5em;
	align-items: center;
	margin-bottom: var(--space-m);
}

.entry-media {
	margin: var(--space-m) 0;
}

.entry-media img {
	border-radius: var(--radius-m);
	width: 100%;
}

.entry-content {
	font-size: var(--step-0);
}

.entry-content > * {
	max-width: var(--wrap-reading);
}

.entry-content img { border-radius: var(--radius-s); margin-block: var(--space-s); }

.entry-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5em; padding: 0; }
.entry-tags a {
	font-family: var(--font-sans);
	font-size: var(--step--1);
	background: var(--nyl-cream-deep);
	padding: 0.3em 0.7em;
	border-radius: var(--radius-pill);
	text-decoration: none;
}

.post-navigation {
	display: flex;
	justify-content: space-between;
	gap: var(--space-m);
	margin-block: var(--space-l);
	font-family: var(--font-sans);
}

.nav-subtitle { display: block; font-size: var(--step--1); color: var(--color-text-soft); }

/* Layout with sidebar */
.widget-area {
	margin-top: var(--space-l);
}

.widget { margin-bottom: var(--space-l); }
.widget__title { font-size: var(--step-1); }

/* Pagination */
.pagination {
	margin-block: var(--space-l);
}
.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	font-family: var(--font-sans);
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.6em;
	height: 2.6em;
	padding-inline: 0.6em;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-s);
	text-decoration: none;
}
.pagination .page-numbers.current {
	background: var(--nyl-red);
	color: var(--nyl-white);
	border-color: var(--nyl-red);
}

/* Comments */
.comments-area { margin-top: var(--space-xl); max-width: var(--wrap-reading); }
.comment-list { list-style: none; padding: 0; }
.comment-list ol { list-style: none; }
.comment-body { padding: var(--space-s) 0; border-bottom: 1px solid var(--color-border); }

/* 404 & no results */
.error-404__actions { display: flex; flex-wrap: wrap; gap: var(--space-s); margin-top: var(--space-m); }

/* ------------------------------------------------------------------ *
 * 10. WooCommerce
 * ------------------------------------------------------------------ */
.wrap--wc { padding-block: var(--space-l); }

.woocommerce ul.products {
	display: grid;
	gap: var(--space-m);
	grid-template-columns: repeat(2, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 768px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}

.woocommerce ul.products li.product {
	background: var(--color-surface);
	border-radius: var(--radius-m);
	padding: var(--space-s);
	box-shadow: var(--shadow-s);
	text-align: center;
}

.woocommerce ul.products li.product img { border-radius: var(--radius-s); margin-bottom: var(--space-xs); }

.woocommerce .price { font-family: var(--font-sans); font-weight: 700; color: var(--nyl-charcoal); }

/* Branded empty-shop state (replaces WooCommerce's plain "No products found"). */
.nylahs-empty-shop {
	max-width: 36rem;
	margin: var(--space-l) auto;
	padding: var(--space-l);
	text-align: center;
	background: var(--nyl-cream-deep);
	border-radius: var(--radius-m);
	color: var(--color-text);
}
.nylahs-empty-shop p { margin: 0 0 var(--space-s); }
.nylahs-empty-shop p:last-child { margin-bottom: 0; }

.woocommerce span.onsale,
.nylahs-badge {
	background: var(--nyl-orange-deep);
	color: var(--nyl-white);
	font-family: var(--font-sans);
	border-radius: var(--radius-pill);
	padding: 0.2em 0.7em;
	font-size: var(--step--1);
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce #respond input#submit {
	background: var(--nyl-red);
	color: var(--nyl-white);
	border-radius: var(--radius-pill);
	font-family: var(--font-sans);
	font-weight: 600;
	padding: 0.7em 1.3em;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--nyl-orange-deep);
}

/* PDP fact blocks */
.pdp-facts {
	margin-top: var(--space-l);
	border-top: 1px solid var(--color-border);
	max-width: 42rem;
}

.pdp-facts__item {
	border-bottom: 1px solid var(--color-border);
	padding-block: var(--space-2xs);
}

.pdp-facts__label {
	font-family: var(--font-sans);
	font-weight: 700;
	cursor: pointer;
	padding-block: var(--space-2xs);
	list-style-position: inside;
}

.pdp-facts__value { padding-block: var(--space-2xs) var(--space-s); color: var(--color-text-soft); }
.pdp-facts__lead { font-weight: 600; color: var(--nyl-charcoal); margin-top: 0; }
.pdp-facts__note { font-size: var(--step--1); color: var(--color-text-soft); margin-bottom: 0; }
.pdp-facts__contact { margin-bottom: 0; }
.pdp-facts__contact a { color: var(--nyl-red); font-weight: 600; }
.pdp-facts__dietary { list-style: none; margin: 0 0 var(--space-2xs); padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pdp-facts__dietary li {
	background: var(--nyl-cream-deep);
	color: var(--nyl-charcoal);
	border-radius: var(--radius-pill);
	padding: 0.25em 0.7em;
	font-weight: 600;
	font-size: var(--step--1);
}

/* Verified dietary/marketing badges under the product title. */
.pdp-badges {
	list-style: none;
	margin: 0.5rem 0 0.75rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}
.pdp-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	background: var(--nyl-cream-deep);
	color: var(--nyl-charcoal);
	border-radius: var(--radius-pill);
	padding: 0.3em 0.8em;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: var(--step--1);
}
.pdp-badge::before { content: "✓"; color: var(--nyl-red); font-weight: 700; }

/* PDP flavour story + related recipes */
.pdp-flavor-story { color: var(--color-text-soft); margin: 0.25rem 0 1rem; }
.pdp-recipes { margin-top: var(--space-l); max-width: 42rem; }
.pdp-recipes__title { font-family: var(--font-sans); color: var(--nyl-red); font-size: var(--step-0); }
.pdp-recipes__grid { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pdp-recipes__item a {
	display: inline-block;
	background: var(--nyl-cream-deep);
	color: var(--nyl-charcoal);
	border-radius: var(--radius-pill);
	padding: 0.35em 0.9em;
	font-weight: 600;
	text-decoration: none;
}
.pdp-recipes__item a:hover { background: var(--nyl-red); color: var(--nyl-white); }

/* Branded product image placeholder (no fake packaging) */
.nylahs-img-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	aspect-ratio: 1 / 1;
	width: 100%;
	padding: var(--space-m);
	text-align: center;
	border-radius: var(--radius-m);
	background: linear-gradient(135deg, var(--nyl-cream) 0%, var(--nyl-cream-deep) 100%);
	border: 1px solid var(--color-border);
	color: var(--nyl-charcoal);
}
.nylahs-img-placeholder__name { font-family: var(--font-sans); font-weight: 700; }
.nylahs-img-placeholder__note {
	font-size: var(--step--1);
	color: var(--nyl-red);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.wc-checkout-note {
	background: var(--nyl-cream-deep);
	border-radius: var(--radius-s);
	padding: var(--space-s);
	font-family: var(--font-sans);
	font-size: var(--step--1);
}

/* B2B / form fallback */
.b2b-page__form,
.stockists-page__list { margin-top: var(--space-l); }

.form-unavailable {
	background: var(--nyl-cream-deep);
	border-radius: var(--radius-m);
	padding: var(--space-l);
}

.form-unavailable__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	align-items: center;
}

/* ------------------------------------------------------------------ *
 * 11. WhatsApp float
 * ------------------------------------------------------------------ */
.wa-float {
	position: fixed;
	right: var(--space-s);
	bottom: var(--space-s);
	z-index: 60;
	display: flex;
	align-items: center;
}

.wa-float__link {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	background: #25D366;
	color: #7E0A12;
	font-family: var(--font-sans);
	font-weight: 700;
	text-decoration: none;
	padding: 0.7em 1.1em;
	border-radius: var(--radius-pill);
	box-shadow: var(--shadow-m);
}

.wa-float__link:hover,
.wa-float__link:focus-visible {
	color: #7E0A12;
	background: #1fbb59;
}

.wa-float__dismiss {
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
	border: 2px solid var(--color-bg);
	border-radius: var(--radius-pill);
	width: 1.9em;
	height: 1.9em;
	line-height: 1;
	font-size: 1em;
	cursor: pointer;
	margin-left: -0.6em;
	margin-top: -1.6em;
}

@media (max-width: 480px) {
	.wa-float__text { display: none; }
}

/* When the Chef Nylah assistant is enabled it occupies the bottom-right corner
 * (its launcher is fixed there). Lift the WhatsApp float above it so the two
 * never overlap. Falls back gracefully where :has() is unsupported. */
body:has(.nyl-asst__launcher) .wa-float {
	bottom: calc(var(--space-s) + 4.25rem);
}

/* ------------------------------------------------------------------ *
 * 12. Utilities & motion
 * ------------------------------------------------------------------ */
.entry-eyebrow a { text-decoration: none; }

.form-unavailable p:last-child { margin-bottom: 0; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* ------------------------------------------------------------------ *
 * Dark-scheme friendliness for system preference.
 * The brand stays warm; we lift surfaces and text for legibility.
 * ------------------------------------------------------------------ */
@media (prefers-color-scheme: dark) {
	:root {
		--color-bg: #1E1E1F;
		--color-surface: #282829;
		--color-surface-alt: #2c313d;
		--color-text: #ece9e1;
		--color-text-soft: #b9bcc5;
		--color-heading: #f6f3ec;
		--color-accent: #7fb28c;
		--color-accent-strong: #F3A15C;
		--color-border: #3a4150;
		--color-focus: #F3A15C;
	}

	body { background-color: var(--color-bg); color: var(--color-text); }

	.hero { background: linear-gradient(180deg, #20252f 0%, #1E1E1F 100%); }
	.site-header { background: var(--color-bg); }
	.flavors,
	.founder,
	.b2b,
	.where-to-buy { background: var(--color-bg); }
	.flavors__card,
	.serving__item,
	.testimonial,
	.journal-card,
	.post-card { background: var(--color-surface); }
	.placeholder-note { background: rgba(224, 164, 92, 0.14); }
}

/* --- Cookie consent notice ------------------------------------------------ */
.nyl-consent {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 60;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	align-items: center;
	justify-content: center;
	padding: 0.9rem 1.25rem;
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
	box-shadow: 0 -6px 20px rgba(40, 40, 41, 0.25);
}
.nyl-consent__text { margin: 0; font-size: 0.9rem; max-width: 60ch; }
.nyl-consent__text a { color: var(--nyl-orange); text-decoration: underline; }
.nyl-consent__actions { display: flex; gap: 0.5rem; }
.nylahs-btn--sm { padding: 0.4rem 0.9rem; font-size: 0.85rem; }
.nylahs-btn--ghost {
	background: transparent;
	border: 1px solid rgba(253, 252, 250, 0.5);
	color: var(--nyl-white);
}

/* --- Product page: Buy Now + WhatsApp enquiry ----------------------------- */
.nylahs-buy-now {
	margin-inline-start: 0.5rem;
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
}
.nylahs-buy-now:hover { background: #1E1E1F; }
.nylahs-pdp-whatsapp { margin-top: 0.85rem; }
.nylahs-whatsapp-enquiry {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 600;
	color: var(--nyl-red);
	text-decoration: none;
}
.nylahs-whatsapp-enquiry::before { content: "\1F4AC"; }
.nylahs-whatsapp-enquiry:hover { text-decoration: underline; }
.nylahs-pdp-whatsapp--restock { margin-top: 0.5rem; }

/* --- Stock availability pills (shop grid + PDP) --------------------------- */
.nylahs-stock {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: var(--step--1);
	line-height: 1;
	border-radius: var(--radius-pill);
	padding: 0.32em 0.75em;
	letter-spacing: 0.01em;
}

.nylahs-stock::before {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-radius: 50%;
	background: currentColor;
	flex: 0 0 auto;
}

/* In stock — confident green-free brand treatment (charcoal text on soft cream). */
.nylahs-stock--in {
	background: var(--nyl-cream-deep);
	color: var(--nyl-charcoal);
}

/* Low stock — orange accent, still clearly orderable. */
.nylahs-stock--low {
	background: #fdecd9;
	color: var(--nyl-orange-deep);
}

/* Made to order / backorder. */
.nylahs-stock--backorder {
	background: var(--nyl-cream-deep);
	color: var(--nyl-charcoal-soft);
}

/* Sold out — Nylah's red, unmistakable. */
.nylahs-stock--out {
	background: var(--nyl-red);
	color: var(--nyl-white);
}

/* Shop grid: availability line under the product title. */
.nylahs-stock-line { margin: 0.35rem 0 0.25rem; }

/* Dim and label sold-out product cards on the grid. */
.woocommerce ul.products li.product.nylahs-oos { opacity: 0.82; }
.woocommerce ul.products li.product.nylahs-oos img { filter: grayscale(0.35); }

/* PDP: give the availability pill breathing room above the add-to-cart area. */
.nylahs-pdp-stock { margin: 0.25rem 0 0.9rem; }
.nylahs-pdp-stock .nylahs-stock { font-size: var(--step-0); padding: 0.4em 0.9em; }

/* --- FAQ accordion ([nylahs_faqs]) --------------------------------------- */
.nylahs-faq {
	max-width: 46rem;
	margin-inline: auto;
}

.nylahs-faq__item {
	border-bottom: 1px solid var(--color-border);
}

.nylahs-faq__q {
	font-family: var(--font-sans);
	font-weight: 700;
	font-size: var(--step-0);
	color: var(--nyl-charcoal);
	cursor: pointer;
	padding: var(--space-s) 0;
	list-style-position: inside;
}

.nylahs-faq__item[open] .nylahs-faq__q { color: var(--nyl-red); }

.nylahs-faq__a {
	color: var(--color-text-soft);
	padding: 0 0 var(--space-s);
}

.nylahs-faq__a > :first-child { margin-top: 0; }
.nylahs-faq__a > :last-child { margin-bottom: 0; }

/* --- Meet the Team grid ([nylahs_team]) ---------------------------------- */
.nylahs-team {
	display: grid;
	gap: var(--space-l);
	grid-template-columns: 1fr;
	margin-top: var(--space-m);
}
@media (min-width: 560px) { .nylahs-team { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .nylahs-team { grid-template-columns: repeat(3, 1fr); } }

.nylahs-team__card {
	background: var(--color-surface);
	border-radius: var(--radius-m);
	box-shadow: var(--shadow-s);
	padding: var(--space-s);
	text-align: center;
}
.nylahs-team__photo {
	border-radius: var(--radius-m);
	overflow: hidden;
	margin-bottom: var(--space-xs);
	aspect-ratio: 1 / 1;
}
.nylahs-team__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nylahs-team__name { font-family: var(--font-sans); color: var(--nyl-charcoal); margin: 0.25rem 0 0.1rem; }
.nylahs-team__role { font-weight: 700; color: var(--nyl-red); margin: 0 0 0.4rem; font-size: var(--step--1); }
.nylahs-team__bio { color: var(--color-text-soft); margin: 0; }

/* --- Recipe details (single recipe page) --------------------------------- */
.nylahs-recipe { margin-top: var(--space-l); max-width: 42rem; }

.nylahs-recipe__facts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-s);
	margin-bottom: var(--space-m);
	padding: var(--space-s);
	background: var(--nyl-cream-deep);
	border-radius: var(--radius-m);
}
.nylahs-recipe__fact { display: flex; flex-direction: column; min-width: 5rem; }
.nylahs-recipe__fact-label {
	font-size: var(--step--1);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-text-soft);
}
.nylahs-recipe__fact-value { font-weight: 700; color: var(--nyl-charcoal); }

.nylahs-recipe__heading {
	font-family: var(--font-sans);
	color: var(--nyl-red);
	margin: var(--space-m) 0 var(--space-xs);
}

.nylahs-recipe__ingredients { padding-inline-start: 1.25rem; }
.nylahs-recipe__ingredients li { margin-bottom: 0.35rem; }

.nylahs-recipe__method { padding-inline-start: 1.25rem; }
.nylahs-recipe__method li { margin-bottom: 0.6rem; padding-inline-start: 0.25rem; }

/* --- Language switcher & suggestion --------------------------------------- */
.lang-switch { display: inline-flex; }
.lang-switch__list {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.lang-switch__item a {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: var(--step--1);
	text-decoration: none;
	color: var(--color-text);
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 0.15rem 0.4rem;
	border-radius: var(--radius-s, 6px);
	line-height: 1;
}
.lang-switch__item a:hover,
.lang-switch__item a:focus-visible { color: var(--nyl-red); }
.lang-switch__item.is-current a {
	color: var(--nyl-red);
	background: var(--nyl-cream-deep);
}

.nyl-lang-suggest {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: 60;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	align-items: center;
	justify-content: center;
	padding: 0.9rem 1.25rem;
	background: var(--nyl-charcoal);
	color: var(--nyl-white);
	box-shadow: 0 -6px 20px rgba(40, 40, 41, 0.25);
}
.nyl-lang-suggest__text { margin: 0; font-size: 0.9rem; }
.nyl-lang-suggest__dismiss {
	background: none;
	border: 0;
	color: var(--nyl-white);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
	padding: 0 0.25rem;
	opacity: 0.8;
}
.nyl-lang-suggest__dismiss:hover,
.nyl-lang-suggest__dismiss:focus-visible { opacity: 1; }
